Подстановки
В ряде случаев бывает полезно использовать динамические константы, которые будут наполняться данными.
Для этого в строковой константе можно указывать выражения в квадратных скобках. Они заменяются на значения полей класса либо на служебные переменные.
Приведем несколько примеров:
1. Заголовок карточки: Задача [number]. Если класс содержит поле number, то при открытии карточки ее заголовок будет иметь вид Задача 123. 2. URL фрейма: https://www.rbc.ru/search/?project=rbcnews&query=[$$$CurrentUserInfo$$ $.ext.token]. Будет открыта указанная страница с передачей поля ext.token текущего пользователя. Может использоваться при авторизации во внешних системах.
3. Гиперссылка редактора callcenter/PhoneNumber: { "code": "eraEnvironment.get('EraGlobal')?.makeCall('[$value]');", "expressionKind": "code" } Значение [$value] будет заменено на номер телефона, а при клике на гиперссылке будет выполнен содержащий его javascript-код.
Служебные значения:
- $value – значение текущего поля
- $$$CurrentUserId$$$ – идентификатор текущего пользователя
- $$$CurrentUserRoles$$$ – список ролей текущего пользователя
- $$$CurrentDomain$$$ – имя текущего домена
- $$$CurrentUserInfo$$$ – объект текущего пользователя (содержащий среди прочего расширяемое поле ext)
Выражения
В качестве значений некоторых свойств элементов управления можно задавать не только константы, но и выражения. Выражения задаются в виде объекта, содержащего поле expressionKind:
- const – константа из поля const { "expressionKind": "const", "const": "dog" } эквивалентно значению "dog"
- code – выполнение кода из поля code, с предварительной подстановкой { "expressionKind": "code", "code": "eraEnvironment.get('EraGlobal')?.makeCall('[$value]');" }
- substitution – подстановка значений по шаблону value { "expressionKind": "substitution", "value": "[attachmentLink]/[name]" }
- property – значение свойства value { "expressionKind": "property", "value": "resource_id" }
- setting – значение параметра системы value { "expressionKind": "setting", "value": "callcenter.indicators.connections.current.duration.green" }
- function – значение функции functionKind { "expressionKind": "function", "functionKind": "tomorrow" }
Доступные типы функций:
enum EFunctionKind {
now = "now",
today = "today",
tomorrow = "tomorrow",
afterTomorrow = "afterTomorrow",
yesterday = "yesterday",
weekAgo = "weekAgo",
monthAgo = "monthAgo",
yearAgo = "yearAgo",
weekBegin = "weekBegin",
weekEnd = "weekEnd",
monthBegin = "monthBegin",
monthEnd = "monthEnd",
yearBegin = "yearBegin",
yearEnd = "yearEnd",
}
Выражения можно использовать в следующих свойствах объектов:
- editorOptions.link
- selectEditorOptions.items
- actionParameter.defaultValue
- actionParameter.optionsUI.defaultValue, .showInToolbar
- tableControlOptions.data.defaultFilter
- tableControlOptions.customColumn.link
- filterControlOptions.template.value.value
- filterControlOptions.field.defaultValue, .visible
- chartControlOptions.argumentAxis.visualRange.startValue, .endValue
- chartControlOptions.data.defaultFilter
- valueControlOptions.colorRule.value
- calendarControlOptions.startDayHour, .endDayHour, .cellDuration
- calendarControlOptions.allowInsert, .allowModify, .allowDelete