Формула — это выражение, которое возвращает значение (строку, число, дату, список, логическое значение и т.д.).
Базовый вид:
Функция(параметр1, параметр2, ...)
Пример:
if(IsNull(This("Дата начала (План)")), Date(), This("Дата начала (План)"))
Используются:
1) Для вызова функции, например
Без скобок функция не выполняется.
2) Для группировки выражений
if((This("Инициатор.Название")=="Примерсофт"), ...)
Используются при:
Используются при создании массивов, например:
new Guid[] { Guid("..."), Guid("...") }
Используются внутри строк (например, при формировании параметров API или JSON), например:
param=[{2}]
Разделяет параметры функции, например:
if(условие, значение1, значение2)
GetList('GUID', 'фильтр', false)
ВНИМАНИЕ! Лишняя запятая приводит к ошибке.
Используются для:
Например:
This("Название")
Чаще используются:
Например:
Field('Название')
Parent('Быстрые ссылки', true)
Экранирование используется, если внутри строки необходимо поставить такие же кавычки, которыми эта строка ограничена.
Если строка заключена в " " — внутренние " нужно записывать как:
\"
1) В строковых фильтрах GetList
Неправильно:
"i => i.Id == Guid("123")"
Правильно:
"i => i.Id == Guid(\"123\")"
2) При формировании JSON внутри строки
Например:
"{\"id\":\"123\"}"
3) В iFormat и строковых шаблонах
Например:
iFormat("param=\"{0}\"", Id())
Если строка находится внутри другой строки — экранирование обязательно.
Если кавычка находится внутри уже открытой строки — требуется экранирование.
Используется для доступа к атрибуту связанного объекта, например:
This("Инициатор.Название")
This('source.contenttype.name')
Структура: объект → связанный объект → его свойство
Оператор | Значение |
== | равно |
!= | не равно |
> | больше |
< | меньше |
>= | больше или равно |
<= | меньше или равно |
⚠ В условиях используется ==, а не =.
Оператор | Значение |
! | НЕ |
&& | И |
Пример:
!IsUserAdmin()
Используется для объединения строк, например:
Shrink(Field('Название'), 5, 3, '-') + '_' + Hash(Field('Название'), 2)
Если один из элементов строка — выполняется конкатенация.
Используется в фильтрах GetLis, напримерt:
'i => i.ContentTypeId == Guid("...")'
Структура:
переменная => условие
Перед сохранением формулы необходимо проверить: