В системе имеется возможность вычислять значения выражений в параметрах действий, для этого необходимо поставить знак =
в поле перед операциями.
=6^2 + {=Document:PROPERTY_NUM}/2
или =if({Document:ID}=5, "текст1", "текст2")
.
В каждом поле можно использовать сразу несколько разных вычислений. В случае, если нужно не только произвести вычисление, но так же вывести дополнительные данные (значение переменных, текст), то необходимо использовать оператор конкатенации (&
), а текст писать в кавычках ("
).
="Ответ:" & (1+3)
или ="Автор: " & {=Document:CREATED_BY} & ", " & "Конечный срок: " & Dateadd({=Document:DATE_CREATE}, "1d")
{{=...}}
. Например: Вам необходимо оформить документы до {{=DateAdd({=Document:CREATED}, '5d')}}
.
Доступны следующие операторы:
+
- сложение;-
- вычитание;*
- умножение;/
- деление;=
- равно;<>
- не равно;<
- меньше;>
- больше;<=
- меньше или равно;>=
- больше или равно;()
- порядок действий;&
- оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента;^
- возведение в степень;%
- вычисление процентов;true
- правда;false
- ложь;and
- логический оператор И;or
- логический оператор ИЛИ.
Пример:=if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")
not
- отрицание;min
- наименьшее значение;abs
- вычисление модуля;dateadd
- Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.
Синтаксис:=dateadd([начальная_дата], [что_добавлять])
;
Варианты написания:y
,year
,years
,m
,month
,months
,d
,day
,days
,h
,hour
,hours
,min
,minute
,minutes
,s
,second
,seconds
.
При написании можно использовать верхний или нижний регистр.
Примеры:=Dateadd({=Document:DATE_CREATE}, "-2d")
,=Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes")
.В случае, если необходимое для добавления количество единиц времени содержится в поле, переменной и т.п., то необходимо использовать оператор конкатенации
Например:&
.=DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")
-
datediff
- Позволяет вычислить разницу между двумя датами.Синтаксис:
=datediff([первая дата], [вторая дата], [как выводить разницу])
;Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач.
Примеры:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')
if
- условие.
Синтаксис:=if([условие], [результат_в_случае_выполнения_условия], [результат_в_случае_не_выполнения_условия])
;
Пример:=if ({=Variable:Variable1_printable}>0, "да", "нет")
При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов (она есть в этой статье).
intval
- возвращает целое значение переменной;
Пример:=intval("234j4hv5jhv43v53jk4vt5hj4")
вернет 234
substr
- возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей в php, более подробно о ее возможностях вы можете прочитать здесь.Синтаксис:
substr([входная строка], [с какого символа исходной строки начнется возвращаемая статья], [какой длины будет строка])
Имейте в виду, что строка начинает с символа под номером 0. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.
Пример:
{{=substr("0123456789", 3, 4)}}
вернет3456
.
Внимание! Если синтаксис выражения будет неправильным, то оно будет отображено как текст.-
merge
- Позволяет объединять массивы.Синтаксис:
= merge({=массив_1}, {=массив_2})
;Пример:
= merge({=Document:FILES}, {=Variable:file})
. AddWorkDays
- функция добавляет N рабочих дней к указанной дате.Синтаксис:
=addworkdays([дата, к которой будут добавляться дни], [количество добавляемых рабочих дней])
.Пример:
{{=addworkdays('07.03.2016', 1)}}
- результат:09.03.2016 00:00:00
, т.к. в настройках сайта 8 марта - выходной.{{=addworkdays('05.02.2016 16:14:00', 1)}}
- результат: т.к. 05.02.2016 - пятница, то результат:08.02.2016 16:14:00
- понедельник.isWorkDay
- проверяет, является ли дата рабочим днем (по Календарю).Синтаксис:
=if(isWorkDay([проверяемая дата]), [сообщение, если дата является рабочим днем], [сообщение, если не является])
.Пример:
{{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}}
- в параметре содержится дата28.04.2016
. Результат - Да, т.к. это рабочий день.isWorkTime
- аналогична функцииisWorkDay
, но для типов данных Дата/Время.Синтаксис:
=if(isWorkDay([проверяемая дата со временем]), [сообщение, если дата со временем является попадает на рабочее время], [сообщение, если не попадает])
.Пример:
{{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}}
- в параметре содержится дата со временем27.04.2016 15:00:00
. Результат - Да, т.к. это рабочее время.WorkDateAdd
- добавляет заданное количество рабочих дней, часов и минут к указанной дате.Синтаксис:
=WorkDateAdd([начальная_дата], [что_добавлять])
.Варианты написания:
d, day, days, h, hour, hours, i, min, minute, minutes
. Допустимо написание как в верхнем, так и в нижнем регистре.Пример:
=WorkDateAdd({=Template:Parameter1}, "2d")
- в параметре содержится дата28.04.2016
. Результат - 02.05.2016 09:00:00, т.к. 30.04 и 1.05 - это выходные дни, то они будут пропущены. 09:00:00 - начало рабочего дня. Настроить список выходных дней и начало рабочего дня можно в Настройках портала.date
- функция выдает дату в указанном формате. Синтаксис -date ('формат вывода', {нужная дата})
Пример:
{{=date("H:i, d.m", {=Variable:bbb})}}
получаем 13:18, 11.11.Функция позволяет выводить разные форматы даты и дней недели. Узнайте подробнее про все параметры.rand
- функция генерации случайного числа.Синтаксис:
=rand([минимальное значение],[максимальное значение])
Обязательным является только указание минимального значения. Если вы не хотите ограничивать верхнюю границу, то можете не указывать второй параметр, например =rand(17).Пример:
=rand(0,10)
- выбор числа от 0 до 10.floatval
- функция приведения к числу.Пример:
=floatval('122.34343The')
Round
- округляет число.Синтаксис:
=round([что округляем],[количество знаков после запятой])
По умолчанию количество знаков после запятой равно 0.Пример:
=round(10/3,2)
- получаем 3.33.=round(5/2)
- получаем 3.ceil
- округление числа в большую сторону.Пример:
=ceil(5.5)
получаем 6.floor
- округление числа в меньшую сторону.Пример:
=floor(5.5)
получаем 5.
Рекомендую также прочитать: