Глобальные переменные в оповещениях, уведомлениях, шаблонах стилей

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

  • в теме и теле оповещения;
  • в теме и теле уведомления;
  • в тексте шаблона стилей.

В теме и тексте выводится определенный атрибут и/или комментарий объекта, а не сам объект.

Права получателя оповещения и уведомления на просмотр атрибута или комментария, при передаче значения атрибута / комментария с помощью глобальной переменной, не проверяются.

В глобальных переменных не используются атрибуты типов: "Агрегирующий", "Набор ссылок на бизнес-объекты", "Набор элементов справочника", "Файл", "Логический" и "Обратная ссылка".

Конструкция глобальной переменной для получения значения атрибута

Переменные начинаются с символа $ и заключаются в фигурные скобки {}.

Конструкция переменной для получения значения атрибута объекта: ${объект.код атрибута объекта}

Конструкция переменной для получения значения атрибута связанного объекта: ${объект.код атрибута объекта?. код атрибута связанного объекта}

Знак "?" используется:

  • если атрибут не обязателен и его значение может быть пусто;
  • при выводе автора объекта, т.к. автор может быть "system".

Правила построения глобальной переменной для атрибута

Вещественное число, Дата, Дата/Время, Строка, Текст, Текст в формате RTF, Целое число, Элемент справочника

Правило построения глобальной переменной для системных и пользовательских атрибутов:

  1. Вначале определяется объект, атрибут которого необходимо отобразить:
    • subject — текущий объект. Относительно текущего объекта проверяется наступление события и выполнение условий действия.
    • oldSubject — объект subject до наступления события, инициировавшего отправку оповещения.
    • user — пользователь, инициализировавший событие (является объектом класса "Сотрудник (employee)", если событие инициализировал суперпользователь, то user=null).
    • ip — ip-адрес рабочего места пользователя user.
    • currentRecipient — сотрудник-получатель письма, см. Переменная "currentRecipient".
  2. Затем определяется атрибут данного объекта. Через разделительный знак "." (точка) указывается код атрибута класса объектов, определенного данной глобальной переменной. Код атрибута отображается в списке атрибутов класса/типа объектов в карточке класса/типа объектов на вкладке "Атрибуты".

При использовании пользовательского атрибута, в случае его удаления, скрипт перестает корректно работать.

Ссылка на бизнес-объект

Для ссылочного атрибута типа "Ссылка на бизнес-объект" выводится атрибут связанного объекта указанного типа. Через разделительный знак "." (точка) указывается код атрибута связанного объекта, например, "Название" (title).

Временной интервал

Значение атрибута типа "Временной интервал" имеет два элемента. Для вывода значения атрибута, его элементы необходимо предварительно определить в скрипте кастомизации, см. Скрипт кастомизации оповещения.

  • Длительность: определяется целыми числами.
  • Единица измерения: секунда (SECOND), минута (MINUTE), час (HOUR), день (DAY), неделя (WEEK).

Гиперссылка

Значение атрибута типа "Гиперссылка" имеет два элемента. Для вывода значения атрибута, его элементы необходимо предварительно определить в скрипте кастомизации, см. Скрипт кастомизации оповещения.

  • Название ссылки, в текстовом формате.
  • Адрес ссылки, URL адрес.

Если для гиперссылки заполнено название, то обязательно заполнен и адрес.

Пример. Получение значения пользовательского атрибута с кодом "link":

def hyperlinkVal = link;
// Название ссылки
def text = hyperlinkVal.text;
// URL ссылки
def url = hyperlinkVal.URL;

Счетчик времени

Атрибут типа "Счетчик времени" имеет два представления для отображения. Для вывода значения атрибутов их следует предварительно определить в скрипте кастомизации, см. Скрипт кастомизации оповещения.

  • Статус — текущее состояние счетчика, согласно его жизненному циклу.
  • Время — время, которое отсчитал счетчик с момента начала отсчета, в формате время чч:мм.

Обратный счетчик

Атрибут типа "Обратный счетчик" имеет четыре представления для отображения. Для вывода значения атрибутов их следует предварительно определить в скрипте кастомизации, см. Скрипт кастомизации оповещения.

  • Статус — текущее состояние счетчика, согласно его жизненному циклу.
  • Время окончания — время, когда истечет рассчитанный период времени, в формате дата/время.
  • Остаток времени — время, которое осталось до окончания отсчета, в формате время чч:мм.
  • Просроченность — пока ведется обратный отсчет, счетчик не просрочен. Просроченность принимает значение Да, если истек остаток времени счетчика (счетчик досчитал до "0").

Переменная "currentRecipient"

Переменная "currentRecipient" может использоваться только внутри темы и текста оповещения, но не в скрипте кастомизации и не в тексте шаблона стилей.

Переменная "currentRecipient" возвращает сотрудника-получателя оповещения:

  • сотрудника, указанного в поле "Кому: Сотрудники",
  • сотрудника, вычисленного при помощи роли, указанной в поле "Кому: Сотрудники";
  • сотрудника, добавленного с помощью метода "notification.toEmployee", см. Скрипт кастомизации оповещения.

Если оповещение отправляется на email, указанный в поле "Кому: E-mail адреса", то переменная "currentRecipient" не заполнена (null).

Если "currentRecipient" используется при формировании ссылки для выполнения действия в тексте оповещения, то сотруднику будет отправляться индивидуальное письмо — генерироваться индивидуальный ключ авторизации.

Переменная "currentRecipient" также может использоваться для вывода ФИО получателя в оповещение. Для этого рекомендуется использовать следующую конструкцию, которая выполняет проверку определения "currentRecipient". В результате выводится ФИО получателя (title) или пустое поле:

${currentRecipient ? currentRecipient.title : ""}

В настройках одного оповещения не допускается одновременное использование переменной currentRecipient и методов для заполнения поля "Копия" (notification.сс и notification.ссEmployee), см. Скрипт кастомизации оповещения. При сохранении настроек оповещения будет выведено сообщение об ошибке.