В системе можно вычислять значения выражений в параметрах действий. Например, складывать, умножать, вычислять проценты и многое другое.
Для выполнения вычислений нужно поставить знак =
в поле перед операциями.
=6^2 + {{Сумма}}/2
или =if({{ID}}=5, "текст1", "текст2")
. В каждом поле можно использовать сразу несколько разных вычислений. Если Вы хотите не только произвести вычисление, но и вывести дополнительные данные (значение переменных, текст), то доступно два варианта написания:
-
Вычисляемые значения можно просто размещать в тексте, поместив вычисление в конструкцию
{{=...}}
.Пример :Вам необходимо оформить документы до {{=DateAdd({{Дата создания элемента}}, '5d')}}
.
-
Либо можно использовать оператор конкатенации (
&
), а текст писать в кавычках ("
).
Уроки, обучение, полезные истории, кейсы и эксклюзивные эфиры — все в Telegram-канале для пользователей «Битрикс24 печатает»
Операторы
При вычислении значений выражений в параметрах действий вы можете использовать различные операторы и функции.Список доступных операторов
Оператор | Описание |
---|---|
+
|
Сложение. |
-
|
Вычитание. |
*
|
Умножение. |
/
|
Деление. |
=
|
Равно. |
<>
|
Не равно. |
<
|
Меньше. |
>
|
Больше. |
<=
|
Меньше или равно |
>=
|
Больше или равно. |
()
|
Порядок действий. |
&
|
Оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента. |
^
|
Возведение в степень. |
%
|
Вычисление процентов. |
true
|
Правда. |
false
|
Ложь. |
and
|
логический оператор И |
or
|
логический оператор ИЛИ.
Пример:
=if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no") |
not
|
Отрицание. |
Функции для вычислений
В действиях при проектировании бизнес-процесса можно использовать функции. Их можно выбрать из списка. Для этого напишите в поле знак =
и откроется список.
Список функций с примерами
Функция | Описание |
---|---|
abs
|
Вычисление модуля числа. |
dateadd
|
Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.
Синтаксис: Варианты написания и примеры
При написании можно использовать верхний или нижний регистр. Примеры:
{{=DateAdd({{Дата создания элемента}}, '-2d')}} , {{=DateAdd({{Дата создания элемента}}, '2 days 3 minutes')}} .
В случае, если необходимое для добавления количество единиц времени содержится в поле, переменной и т.п., то необходимо использовать оператор конкатенации Например:
{{=DateAdd({{Дата создания элемента}}, {=Variable:WHAT2ADD} & "y 10h")
|
datediff
|
Позволяет вычислить разницу между двумя датами.
Синтаксис: Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач. Примеры:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days') |
date
|
Функция выдает дату в указанном формате и работает аналогично функции Date в PHP.
Синтаксис - |
WorkDateAdd
|
Добавляет заданное количество рабочих дней, часов и минут к указанной дате.
Синтаксис: Варианты написания и примеры
Пример:
=WorkDateAdd({=Template:Parameter1}, "2d") - в параметре содержится дата 28.04.2016 .
Результат - 02.05.2016 09:00:00, т.к. 30.04 и 1.05 - это выходные дни, то они будут пропущены. 09:00:00 - начало рабочего дня. Настроить список выходных дней и начало рабочего дня можно в Настройках портала.
|
AddWorkDays
|
Функция добавляет N рабочих дней к указанной дате.
Синтаксис: Примеры:
{{=addworkdays('07.03.2016', 1)}} - результат: 09.03.2016 00:00:00 , т.к. в настройках сайта 8 марта - выходной.
|
isWorkDay
|
Проверяет, является ли дата рабочим днем (по Календарю).
Синтаксис: Пример:
{{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата 28.04.2016 . Результат - Да, т.к. это рабочий день. |
isWorkTime
|
Аналогична функции isWorkDay , но для типов данных Дата/Время.
Синтаксис: Пример:
{{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата со временем 27.04.2016 15:00:00 .
Результат - Да, т.к. это рабочее время.
|
toUserDate
|
Функция приводит любое время к времени сотрудника (с учетом его часового пояса).
toUserDate(user,date=now)Параметры:
|
GetUserDateOffset
|
Функция возвращает значение смещения часовой зоны пользователя в секундах (относительно серверного времени).
GetUserDateOffset(user)Параметр:
|
if
|
Условный оператор.
Синтаксис: Пример:
=if ({=Variable:Variable1_printable}>0, "да", "нет")
При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов (она есть в этой статье). |
intval
|
Возвращает целое значение переменной.
Пример:
=intval("234j4hv5jhv43v53jk4vt5hj4") вернет 234 |
floatval
|
Возвращает число (с плавающей точкой). |
numberformat
|
Форматирует число с разделением групп. |
min
|
Возвращает наименьшее значение. |
max
|
Возвращает наибольшее число. |
rand
|
Возвращает случайное число.
Синтаксис:
Обязательным является только указание минимального значения. Если вы не хотите ограничивать верхнюю границу, то можете не указывать второй параметр, например Пример:
=rand(0,10) - выбор числа от 0 до 10.
|
round
|
Округляет число.
Синтаксис: Примеры:
|
ceil
|
Округляет дробь в большую сторону.
Пример:
=ceil(5.5) получаем 6. |
floor
|
Округляет дробь в меньшую сторону.
Пример:
=floor(5.5) получаем 5. |
substr
|
Возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей в php, более подробно о ее возможностях вы можете прочитать здесь.
Синтаксис: Имейте в виду, что строка начинает с символа под номером 0. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д. Пример:
{{=substr("0123456789", 3, 4)}} вернет 3456 .
Внимание! Если синтаксис выражения будет неправильным, то оно будет отображено как текст.
|
strpos
|
Возвращает позицию первого вхождения подстроки. |
strlen
|
Возвращает длину строки. |
implode
|
Объединяет множественные значения в строку. Полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем (стандартный - просто запятая). Аналог implode в PHP. Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со значением glue между каждым элементом.
implode(glue,pieces) Параметры:
|
explode
|
Функция разбивает строку с помощью разделителя. Полезна, когда нужно разбить строку и присвоить части как значение множественной переменной. Аналог explode в PHP. Возвращает массив строк, полученных разбиением строки str с использованием delimiter в качестве разделителя.
explode(delimiter, str) Параметры:
|
randstring
|
Возвращает случайную строку. |
merge
|
Позволяет объединять массивы.
Синтаксис: Пример:
= merge({{Другие файлы}}, {=Variable:file}) . |
urlencode
|
URL-кодирование строки. |
strtolower
|
Преобразует строку в нижний регистр. |
strtoupper
|
Преобразует строку в верхний регистр. |
ucwords
|
Преобразует в верхний регистр первый символ каждого нового слова в строке. |
firstvalue
|
Возвращает первое значение множественного поля. |
swirl
|
Перемещает первое значение множественного поля в конец. На вход подается множественное поле, на выходе получаем значения сдвинутые на один шаг влево, т.е. первое значение встало в конец. Сдвиг всегда происходит на один шаг. |
shuffle
|
Перемешивает значение множественного поля. Аналог shuffle в PHP. На вход подается множественное поле, на выходе получаем перемешанные значения этого множественного поля.
Пример
Рассмотрим работу функций: В бизнес-процессе используется множественная переменная Пользователи, в которой хранится список сотрудников.
Сначала перемешаем список пользователей с помощью Затем сдвинем этот список с помощью swirl и возьмем первого с помощью firstvalue , это будет наш соисполнитель.
Далее заполним параметры задачи. После запуска бизнес-процесса в задачу будут добавлены произвольные сотрудники в качестве ответственного и соисполнителя. |
Рекомендую также прочитать: