Формулы
  • 26 Apr 2023
  • 4 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Формулы

  • Dark
    Light
  • PDF

Article Summary

В настройках элементов системы вы уже встречали возможность установить значение - "Вычисляется по формуле". Мы расскажем, как и какие формулы вы можете применять.

Если формулы завязаны на других элементах, то для написания формулы нужно использовать ID нужных элементов. Их вы можете посмотреть в настройках элемента.

ID элемента

 Если при создании формулы вы укажите некорректные данные, то система подскажет, что что-то пошло не так.

Рассмотрим все операторы, доступные в системе.

Арифметические операторы

Если необходимо сделать из отрицательной переменной положительную и наоборот вы можете задать формулу формата:

-ID1 

Знакомые операторы+ - * /, позволяют выполнить привычные математические вычисления.

Логические операторы

С помощью логических операторов вы можете проверить выполнение одного или нескольких условий.

Операторы & (и), | (или), ! (отрицание). 

Приоритет можно выстраивать с помощью скобок ().

Например, вам нужно, чтобы условие включалось, если выбран ответ 1 (ID1) и 2(ID2) или, если не выбран ответ 5(ID5). Формула будет выглядеть следующим образом:

(ID1 & ID2) | !ID5

Таким образом, мы объединили первое условие в скобку и через знак |(или) проставили отрицание ID5

Операторы равенства и сравнения

Операторы равенства и сравнения позволяют сравнивать между собой переменные, возвращая значение true, если они равны, и значение false, если они не равны:

  • (==) - проверяет равны ли элементы.
  • (!=) - проверяет неравенство элементов.
  • (>) - больше ли первый элемент;
  • (<) - меньше ли первый элемент;
  • (>=) - больше или равен ли первый элемент;
  • (<=) - меньше или равен ли первый элемент.

Тернарный оператор

Условный оператор (?:) - тернарный условный оператор, вычисляет логическое выражение и возвращает результат вычисления одного из двух выражений в зависимости от того, выполняется условие или нет.

Записывается оператор следующим образом:

Условие ? Следствие : Альтернатива , где

Условие - само условие, которое проверяется,
Следствие - действие, если условие выполняется,
Альтернатива - действие, если условие не выполняется.

Например, в зависимости от ответа на вопрос "Учитывается ли НДС при расчете", должен выставиться % НДС 0 или 20. Настроит условие на вариант ответа "Да, учитывается"(ID1):

ID1 ? 20 : 0 ,

если ID1, то 20, иначе 0

Формулы с мультипликатором

При работе с мультипликатором у вас есть возможность использовать формулы для работы с репликами мультипликатора.

Название методаОписание методаПример реализации
getCount()Подсчет количества реплик мультипликатора.
Результатом методы является число.

ID1.getCount()

, где ID1 - id мультипликатора
min()Выбор минимального значения переменной в мультипликаторе.
Результатом является минимальное значение.

ID1.min("ID5")

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки

max()Выбор максимального значения переменной в мультипликаторе.
Результатом является максимальное значение.

ID1.max("ID5")

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки
sum()Подсчет суммы по переменной в мультипликаторе.
Результатом будет сумма всех значений указанной переменной.

ID1.sum("ID5")

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки
product()Вычисление произведения всех значений переменной в мультипликаторе

ID1.product("ID5")

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки
average()Подсчет среднего значения по переменной в мультипликаторе.
Результатом метода будет среднее значение.

ID1.average("ID5")

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки

containsString()
containsNumber()
containsBoolean()
Поиск наличия определенного значения в переменной мультипликатора.
Результатом работы метода будет true/false

ID1.containsString("ID5", "яблоко")

ID1.containsNumber("ID5", 100)

ID1.containsBoolean("ID5", true)

, где ID1 - id мультипликатора,а ID5 - id переменной для выборки

Формулы для работы с датами

Для работы с датами существуют специальные формулы. Для примера возьмем переменную ID1=8.08.2022 (понедельник).

ФормулаОписаниеПример - Результат
addDay(i)
addMonth(i)
addYear(i)
Добавление i дней/месяцев/годов  к дате, соответственноID1.addDay(2) - 10.08.2022
ID1.addMonth(2) - 08.10.2022
ID1.addYear(2) - 08.08.2024
getMonthName()
getMonthShortName()
Получение полного и короткого наименования месяцаID1.getMonthName() - Август
ID1.
getMonthShortName() - Авг
getDayName()
getDayShortName()
Получение полного и короткого наименования дня неделиID1.getDayName() - Понедельник
ID1.getDayShortName() - Пн
getDayOfWeek()Получение номера дня недели (исчисление начинается с 0)ID1.getDayOfWeek() - 0
getFirstDateOfWeek()Получение даты понедельника текущей неделиID1.getFirstDayOfWeek() - 

Mon Aug 08 2022 14:17:50 GMT+0300 (Москва, стандартное время)

isLeapYear()Определение високосный ли год. Возвращает значение true/falseID1.isLeapYear() - false
getFirstDayOfMonth()
getLastDayOfMonth()
Получение номера для недели с которого начинается месяц или каким заканчиваетсяID1.getFirstDayOfMonth() - 0
ID1.
getLastDayOfMonth() - 3
getFirstDateOfMonth()
getLastDateOfMonth()
Получение первой/последней даты месяца в формате"Thu Jun 30 2022 00:00:00 GMT+0300 (Москва, стандартное время)"ID1.getFirstDateOfMonth() - 

Mon Aug 01 2022 00:00:00 GMT+0300 (Москва, стандартное время)

ID1.getLastDateOfMonth() -

Wed Aug 31 2022 00:00:00 GMT+0300 (Москва, стандартное время)

getFirstDateOfQuarter()Получение первой даты в квартале в формате"Fri Apr 01 2022 00:00:00 GMT+0300 (Москва, стандартное время)"ID1.getFirstDateOfQuarter() - 

Fri Jul 01 2022 00:00:00 GMT+0300 (Москва, стандартное время)

getFirstDateOfHalfYear()Получение первой даты в полугодии в формате"Fri Apr 01 2022 00:00:00 GMT+0300 (Москва, стандартное время)"ID1.getFirstDateOfHalfYear() - 

Fri Jul 01 2022 00:00:00 GMT+0300 (Москва, стандартное время)

getDaysInMonth()Получение количества дней в месяцеID1.getDaysInMonth() - 31
toISOString()Получение даты в формате ISOID1.toISOString() - 

2022-08-08T14:17:50.529+03:00

truncMonth()

truncYear()

Урезание даты до начала месяца/годаID1 = 26.11.2022
ID1.truncMonth() - 01.11.2022
ID1.truncYear() - 01.01.2022
diffDays()Расчет разницы между датами. Результатом формулы будет количество число - количество дней.ID1 = 26.11.2022
ID2 = 29.11.2022
ID2.diffDays(ID1) = 3
Из первой даты будет отниматься вторая. Если первая дата меньше, то значение будет отрицательным.
daysBetween()
hoursBetween()
minutesBetween()
secondsBetween()
Расчет разницы между датами. Результатом формул будет число - количество дней/часов/минут/секундID1 = 26.11.2022
ID2 = 29.11.2022
ID2.daysBetween(ID1) = 3
ID2.hoursBetween(ID1) =72
ID2.minutesBetween(ID1) =4 323
ID2.secondsBetween(ID1) =259 425
Из первой даты будет отниматься вторая. Если первая дата меньше, то значение будет отрицательным.
getYear()
setYear()
Получение значения года - Результат будет число = году

Установка значения года
ID1 = 26.11.2022
ID1.getYear() = 2022
ID1.setYear(2025) = 26.11.2025
Date.today().truncDay()
Возвращает текущую датуDate.today().truncDay() = Tue Dec 27 2022

Прочие формулы

ФормулаОписаниеПример - результат
substring
Формула позволяет разбить введенную в переменную слово или значение на составные частиПример: ID1.substring(0,1)
Описание: Из переменной ID1 взять с начала строки (0) количество символов равное 1
Результат: Вводим слово "Привет", формула вернет первый символ "П"

Формулы для работы с текстовыми переменными

Для текстовой переменной доступны формулы, позволяющие проверить при заполнении анкеты, является ли поле пустым. Эта проверка актуальна в случае, если в зависимости от того, заполнена переменная или нет, должно включаться какое-либо условие.

Формулы имеют следующий синтаксис:

ID.isEmpty(), ID == “” – условие включается, если переменная ID не содержит никаких символов

ID !== “” – условие включается, если переменная ID является непустой строкой (содержит хотя бы один символ).

Пример включения/выключения условия в зависимости от наличия текста в переменной:



Was this article helpful?