Формулы
  • 26 Nov 2022
  • 3 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Формулы

  • Dark
    Light
  • PDF

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

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

ID элемента

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

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

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

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

-ID1 

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

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

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

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

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

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

(ID1 & ID2) | !ID5

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

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

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

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

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

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

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

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

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

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

ID1 ? 20 : 0 ,

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

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

При работе с мультипликатором у вас есть возможность подсчитывать количество его экземпляров и считать сумму значений одной переменной

Подсчет количества экземпляров мультипликатора

ID1.getCount()


, где ID1 - id мультипликатора

Подсчет суммы по переменной в мультипликаторе


ID1.sum("ID5")


, где 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



Was this article helpful?