Операторы, методы и функции
    • 04 Jul 2024
    • 6 Minutes to read
    • Contributors
    • Dark
      Light
    • PDF

    Операторы, методы и функции

    • Dark
      Light
    • PDF

    Article summary

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

    Арифметические операторы используются в формуле для выполнения арифметических операций, таких как сложение, вычитание, умножение, деление и нахождения остатка от деления. Эти операции могут быть унарными  (участвует одна переменная) и  бинарными  (участвуют 2 и более переменные).

    В арифметических операциях используются как целые числа, так и числа с плавающей запятой (дробное число).

    Оператор

    ПримерПояснение
    +
    Сложение
    ID1Унарная операция, сохраняющая значение выбранной переменной
    ID1 + ID2Бинарная операция нахождения суммы двух переменных
    -
    Вычитание-ID1Унарная операция, делающая из положительного значения отрицательное, и наоборот
    ID1 - ID2Бинарная операция нахождения разности двух переменных
    *
    УмножениеID1 * ID2Бинарная операция нахождения произведения двух переменных
    /
    ДелениеDI1 / ID2Бинарная операция деления двух переменных
    %
    Остаток от деленияID1 % ID2Бинарная операция нахождения остатка от деления
    💡    С помощью скобок можно задать приоритет в вычислениях или построить сложное выражение, например: 
    ((ID1 + ID2) * (ID3 - ID4)) / ID5

    ⚠️ В арифметических операциях не принимать участие переменные типа Изображение или Дата .

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

    Логические операторы используются только для условий и ответов на вопрос и позволяют составить логическое выражение для определения истинности (true) или ложности (false) высказываний. 

    Оператор
    Пример
    Пояснение
    !
    Унарный оператор логического отрицания
    !ID1
    Результат будет истинным, если не выбран вариант ответа с идентификатором ID1
    &
    Бинарное логическое И
    ID1 & ID2
    Результат будет истинным, если выбраны оба ответа ответа: ID1 и ID2
    |
    Бинарное логическое ИЛИ
    ID1 | ID2
    Результат будет истинным, если выбран ответ ID1 или ID2, либо выбраны оба ответа
    ||
    Бинарное исключающее ИЛИ
    ID1 || ID2
    Результат будет истинным, если выбран только ID1 или только ID2, но не оба

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

    (ID1 & ID2) | !ID5

    Мы выполнили первое условие в скобках и через знак |(или) проставили отрицание ID5.

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

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

    Оператор

    Примеры
    Пояснение
    ==
    Оператор равенстваID1 == ID2Результат будет истинным, если значения функций ID1 и ID2 равны.
    ID1 == 1Результат будет истинным, если значение переменной ID1 равно значению 1
    ID1 == "Hello, World!" Результат будет истинным, если значение переменной ID1 равно "Hello, World!"
    ID1 == ""Результат будет истинным, если переменная ID1 является пустой строкой
    ID1 == nullРезультат будет истинным, если переменная ID1 не содержит символов
    Оператор

    Примеры
    Пояснение
    !=


    Оператор неравенстваID1 != ID2Результат будет истинным, если значения переменных ID1 и ID2 не равны
    ID1 != 1Результат будет истинным, если значение переменной ID1 не равно числу 1
    ID1 != "Hello, World!"Результат будет истинным, если значение переменной ID1 не равно значению "Hello, World!"
    ID1 != ""Результат будет истинным, если переменная ID1 не является пустой строкой
    ID1 != nullРезультат будет истинным, если переменная ID1 содержит символы

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

    Оператор

    Пример
    Пояснение
    >
    Больше чем
    ID1 > ID2
    Результат будет истинным, если значение переменной ID1 больше значения переменной ID2
    <
    Меньше чем
    ID1 < ID2
    Результат будет истинным, если значение переменной ID1 меньше значения переменной ID2
    >=
    Больше или равно
    ID1 >= ID2
    Результат будет истинным, если значение переменной ID1 больше или равно значению переменной ID2
    <=
    Меньше или равно
    ID1 <= ID2
    Результат будет истинным, если значение переменной ID1 больше или равно значению переменной ID2

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

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

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

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

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

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

    ID1 ? 20 : 0

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

    Методы и функции для работы с мультипликатором

    Мультипликатор создает так называемые реплики (копии).

    Метод

    Пример
    Пояснение
    .getCount
    Подсчет количества реплик мультипликатора. Результатом будет являться число 
    формула  ID1.getCount()
    элемент схемы для вставки формулы: числовая переменная
    - ID1 – идентификатор мультипликатора
    Количество репликатора мультипликатора ID1
    формула  ID1.getCount()
    - ID1 – идентификатор  1-ого мультипликатора
    - ID2 – идентификатор  2-ого мультипликатора
    Создание реплик у 2-ого мультипликатора с помощью 1-ого мультипликатора
    .getPosition()
    Метод возращает индекс текущей реплики. Исчисление начинается с 0, но с помощью арифметических операций можно менять как начальное значение индекса, так и шаг
    формула  ID1.getPosition()
    - ID1 – идентификатор  мультипликатора
    Каждая новая реплика с шагом в 1. Исчисление начинается с 0

    Результат: 0, 1, 2, 3, 4 ... n

    формула  1 + ID1.getPosition()
    - ID1 – идентификатор  мультипликатора
    Каждая новая реплика с шагом в 1. Исчисление начинается с 1

    Результат: 1, 2, 3, 4, 5 ... n

    формула  100 * ID1.getPosition()
    - ID1 – идентификатор  мультипликатора
    Каждая новая реплика с шагом в 100. Исчисление начинается с 0
    Результат: 0, 100, 200, 300, 400 ... n
    Пример использования в вычисляемом мультипликаторе можно посмотреть в статье.
    .min()
    Выбор минимального значения переменной в мультипликаторе. Результатом является минимальное значение
    формула :  ID1.min("ID5")
     - ID1 - идентификатор мультипликатора
     - ID5 - переменная в мультипликаторе

    Наименьшее значение переменной ID5 в мультипликаторе ID1
    .max()
    Выбор максимального значения переменной в мультипликаторе. Результатом является максимальное значение
    формула  ID1.max("ID5")
     - ID1 - идентификатор мультипликатора
     - ID5 - переменная в мультипликаторе
    Наибольшее значение переменной ID5 в мультипликаторе ID1
    .sum()
    Подсчет суммы по переменной в мультипликаторе
    формула :  ID1.sum("ID5")
     - ID1 - идентификатор мультипликатора
     - ID5 - переменная в мультипликаторе
    Сумма всех реплик переменной ID5 в мультипликаторе ID1
    .product()
    Вычисление произведения всех значений переменной в мультипликаторе
    формула  ID1.product("ID5")
     - ID1 - мультипликатор идентификатора
     - ID5 - переменная в мультипликаторе
    Произведение всех значений переменной ID5 в мультипликаторе ID1
    .average()

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

    формула :  ID1.average("ID5")
     - ID1 - идентификатор мультипликатора
     - ID5 - переменная в мультипликаторе
    Среднее значение по переменной ID5 в мультипликаторе ID1
    .containsString()
    .containsNumber()
    .containsBoolean()
    Поиск наличия определенного значения в переменной мультипликатора. Результатом работы метода будет true/false
    формула для текстового значения 
    ID1.containsString("ID5", "яблоко")
    формула для числового значения: 
    ID1.containsNumber("ID5", 100)
    формула для логического значения :  
    ID1.containsBoolean("ID5", true)
     - ID1 идентификатор мультипликатора
    - ID5 - переменная в мультипликаторе
    - второе значение в скобках после запятой - искомое значение, по которому проходит проверка
    Если в любой реплике переменной ID5 найдено второе значение, которое указано в скобках после запятой, то возвращается значение true, в противном случае - false 

    Методы и функции для работы с датами

    Метод
    Описание
    Входные данные — Результат
    .addDay(n)
    .addMonth(n)
    .addYear(n)
    Добавление n-дней/месяцев/годов к дате
    ID1 = 8.08.2022 (понедельник)
    ID1.addDay(2) — 10.08.2022      
    ID1.addMonth(2) — 08.10.2022      
    ID1.addYear(2) — 08.08.2024
    .getMonthName()          
    .getMonthShortName()
    Получение полного наименования месяца
    Получение сокращенного наименования месяца
    ID1 = 8.08.2022 (понедельник)
    ID1.getMonthName() — Август
    ID1.getMonthShortName() Авг
    .getDayName()          
    .getDayShortName()
    Получение полного наименования дня недели
    Получение сокращенного наименования дня недели
    ID1 = 8.08.2022 (понедельник)
    ID1.getDayName() Понедельник 
    ID1.getDayShortName() Пн
    .getDayOfWeek()
    Получение номера дня недели (исчисление начинается с 0)
    ID1 = 8.08.2022 (понедельник)
    ID1.getDayOfWeek() — 0 
    .getFirstDateOfWeek()
    Получение даты понедельника текущей недели
    ID1 = 8.08.2022 (понедельник)
    ID1.getFirstDayOfWeek() — 
    Пн 08 авг 2022 14:17:50 GMT+0300 (Москва, стандартное время)
    .isLeapYear()
    Определение високосного года. Возвращает значение true/false
    ID1 = 8.08.2022 (понедельник)
    ID1.isLeapYear() — false
    .getFirstDayOfMonth()          
    .getLastDayOfMonth()
    Получение номера для недели, с которого начинается/каким заканчивается месяц
    ID1 = 8.08.2022 (понедельник)
    ID1.getFirstDayOfMonth()   0      
    ID1.getLastDayOfMonth()   3
    .getFirstDateOfMonth()          
    .getLastDateOfMonth()
    Получение первой/последней даты месяца в формате «Чт, 30 июня 2022, 00:00:00 GMT+0300 (Москва, стандартное время)»
    ID1 = 8.08.2022 (понедельник)
    ID1.getFirstDateOfMonth()  

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

    ID1.getLastDateOfMonth()  

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

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

    Пт, 01 июля 2022 00:00:00 GMT+0300 (Москва, стандартное время)

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

    Пт, 01 июля 2022 00:00:00 GMT+0300 (Москва, стандартное время)

    .getDaysInMonth()
    Получение количества дней в месяце
    ID1 = 8.08.2022 (понедельник)
    ID1.getDaysInMonth()  31
    .toISOString()
    Даты получения в формате ISO
    ID1 = 8.08.2022 (понедельник)
    ID1.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)
    Из даты ID2 будет отниматься дата ID1. Если ID2 меньше, то значение будет отрицательным
    .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()

    Получение значения года. Результатом будет число, равное году
    ID1 = 26.11.2022 (суббота)
    ID1.getYear() = 2022 
    .setYear()
    Установка значения года
    ID1 = 26.11.2022 (суббота)
    ID1.setYear(2025) = 26.11.2025
    Date.today().truncDay()
    Возвращает текущую дату
    Date.today().truncDay() — текущая дата

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

    Метод
    Пример — Результат
    .getLength()
    Нахождение длины строки
    ID1.getLength()

    ID1 = "Привет"

    Результат: 6

    .charAt(index)
    Вывод символа через указание индекса соответствующего символа (index)
    ID1.charAt(0)

    ID1 = "Привет"

    Результат: "П"

    .substring(start, end)
    Формула позволяет разбить введенное в переменную слово или значение на составные части (подстроки). Границы подстроки определяются начальным индексом (номером) символа start и конечным индексом end
    ID1.substring(0,2)

    ID1 = "Привет"

    Результат: "Пр"

    .substring(start)
    Формула позволяет разбить введенное в переменную слово или значение на составные части (подстроки). Подстрока формируется от начального индекса (номера) символа start и до конца строки
    ID1.substring(1)

    ID1 = "Привет"

    Результат: "ривет"

    Format.фио()
    Автоматический перевод полного ФИО в краткое ФИО с инициалами. 

    В скобках метода можно задавать:

    • порядок слов (например: "ФИО", "ИОФ", "ОФИ" и т.д.)
    • формат ФИО с помощью строчных/прописных букв. Строчные буквы сокращают слово до инициала, а прописные – оставляют в полной форме (например: “ФИо”, “фИо” и т.д.)

    Format.фио(ID1)

    ID1 = "Иванов Иван Иванович"

    Результат: "Иванов И.И."

    Format.фио(ID1, "ИОф")

    ID1 = "Иванов Иван Иванович"

    Результат:  «Иван Иванович И.»

    Format.фио(ID1, "фИО")

    ID1 = " Иванов Иван Иванович"

    Результат:  «И. Иван Иванович»

    Format.должностьПолностью()
    Объединяет наименование профессии с наименованием структурного подразделения, изменяя окончания слов в соответствии с правилами составления словосочетаний.
    Format.должностьПолностью(ID1, ID2)
    ID1 = "директор цеха", ID2 = "цех металлообработки"
    Результат: "директор цеха металлообработки"

    .contains()Метод, осуществляющий проверку, содержит ли строка подстроку или нет.  Результатом работы метода будет true/false
    ID1.contains("_")
    ID1 = "Подписание договора будет осуществлено в ____ гг."
    Результат: true

    Методы и функции для работы с числовыми переменными

    Метод

    Пример
    Пояснение
    .round(n)
    Округление чисел до n-знаков после запятой
    ID1.round(3)

    ID1 = 1,2785

    Результат:  1,279

    Другие полезные статьи по теме

    Что такое формула?


    Was this article helpful?