У системі є можливість обчислювати значення виразів в параметрах дій, для цього необхідно поставити знак =
в поле перед операціями.
=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
,i
,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 - початок робочого дня. Налаштувати список вихідних днів і початок робочого дня можна в Налаштуваннях порталу.-
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.
Також варто почитати: