Формулы
    • 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?