Синтаксис формул — это набор правил, определяющих, как правильно записывать выражения, чтобы система могла их однозначно понять и вычислить.
Используются:
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')
Структура: объект → связанный объект → его свойство
Используется для объединения строк, например:
Shrink(Field('Название'), 5, 3, '-') + '_' + Hash(Field('Название'), 2)
Если один из элементов строка — выполняется конкатенация.
Используется в фильтрах GetLis, напримерt:
'i => i.ContentTypeId == Guid("...")'
Структура:
переменная => условие
Перед сохранением формулы необходимо проверить: