Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Разделяет параметры функции/оператора, например:
if(условие, значение1, значение2)Пример формулы:

Например

Code Block
if(IsNull(This("Дата начала (План)")), Date(), This("Дата начала (План)"))

ВНИМАНИЕ! Лишняя запятая приводит к ошибке.

Кавычки

Двойные кавычки " "

Используются для:

...

Используются для обозначение строковых литералов.

Например:This("Название")

Одинарные кавычки ' '

Чаще используются:

  • в Field()
  • в Parent()
  • в строковых фильтрах

...

Code Block
Field('Название')

...


Parent('Быстрые ссылки', true)

ВНИМАНИЕ! Рекомендуем использовать Одинарные кавычки ' '

Экранирование кавычек

...

1.

...

Когда требуется экранирование

Экранирование знаком "слэш" \ используется, если внутри строки необходимо поставить такие же кавычки, которыми эта строка ограничена.

Если строка заключена в " " — внутренние " ' ', то внутренние ' ' нужно записывать как:

Code Block
\

...

'

...

2.

...

Примеры, когда экранирование ОБЯЗАТЕЛЬНО

1) В строковых фильтрах GetList


Code Block
Неправильно:

...


'i => i.Id == Guid(

...

'84124eed-7049-46a8-bac9-a179ff00efe3')'


Code Block
Правильно:

...


'i => i.Id == Guid(\

...

'84124eed-7049-46a8-bac9-a179ff00efe3\')'

2) При формировании JSON внутри строки

Например:"

Code Block
'{\

...

'id\

...

':\

...

'84124eed-7049-46a8-bac9-a179ff00efe3\'}'

3) В iFormat и строковых шаблонах

Например:

Code Block
iFormat(

...

'param=\

...

'{0}\

...

'', Id())

Если строка находится внутри другой строки — экранирование обязательно.

...

3.

...

Когда экранирование НЕ требуется

  • В обычных вызовах функций, например:Guid("...")
    This("Название")
  • Если строка ограничена одинарными кавычкамиЕсли внутри строки использованы двойные кавычки, например:
    Code Block
    'i => i.Id == Guid("
    123
    84124eed-7049-46a8-bac9-a179ff00efe3")'

...

4.

...

Правило проверки:

Если кавычка находится внутри уже открытой строки — требуется экранирование.

...

Используется для доступа к атрибуту связанного объекта, например:

Code Block
This(

...

'Инициатор.Название

...

')

...


This('source.contenttype.name')

Структура: объект → связанный объект → его свойство

...

Используется для объединения строк, например:

Code Block
Shrink(Field('Название'), 5, 3, '-') + '_' + Hash(Field('Название'), 2)

Если один из элементов строка , то выполняется конкатенация.

...

Используется в фильтрах GetLis, напримерtнапример:

Code Block
'i => i.ContentTypeId == Guid("

...

84124eed-7049-46a8-bac9-a179ff00efe3")'

Структура:
переменная => условие

...