Скрипт вычисления элементов произвольного справочника

Категория скрипта "Вычисление элементов справочника".

Описание скрипта

Скрипт используется для формирования произвольного справочника в виде ассоциативного списка "ключ–значение".

Когда выполняется скрипт

  • При открытии формы заполнения параметров действия по событию.
  • При открытии формы добавления или редактирования контента со встроенным приложением, для которого запрашиваются дополнительные параметры.

Результат выполнения скрипта

Скрипт возвращает ассоциативный список "ключ–значение", если ключ и значение имеют тип "строка".

Скрипт возвращает пустое значение, если:

  • отсутствуют доступные для выбора значения;
  • хотя бы один ключ или значение имеют тип, отличный от типа "строка".

Переменные и их значения

Глобальные переменные:

  • user — пользователь, инициализировавший событие. Является объектом класса "Сотрудник" (employee). Если событие инициализировал суперпользователь, то user=null.
  • ip — ip-адрес рабочего места пользователя user. Если действие выполняется автоматически системой (а не пользователем), то переменная не определяется.
  • appVersion — версия приложения.
  • api — используется для обращения к методам api, например api.utils, api.ldap, api.timing, см. Методы API;
  • modules — используется для обращения к скриптовому модулю и конкретному методу, определенному в нем, с помощью конструкции: modules.{код модуля}.{имя метода}({параметры метода}...), см. Скрипт текста модуля;
  • logger — используется для отладки скриптов и позволяет вывести в лог на указанный уровень переданную строку, см. Отладочные сообщения.
  • utils — синоним api.utils.

Переменные контекста:

  • form — значения полей формы, на которой присутствует параметр типа "Элемент произвольного справочника" (представление объекта на клиенте).
  • attrCode — код параметра, для которого производится вычисление ассоциативного списка.
  • subject — ссылка на объект, к которому применяется действие по событию.
  • subjects — набор ссылок на объекты, к которым применяется действие по событию. Переменная доступна, если действие выполняется как массовая операция в списке;
  • cardObject — объект, из карточки которого было инициировано событие. Переменная доступна, если событие вызвано из карточки объекта.
  • source — способ вызова события: OBJECT_LIST из списка объектов и OBJECT_CARD из карточки объекта.

Контекстные переменные: subject, subjects, cardObject, source недоступны при выполнении скрипта в интерфейсе администратора (при открытии формы добавления или редактирования контента со встроенным приложением, для которого запрашиваются дополнительные параметры).

Пример скрипта

dictionary = [:]
for (ou in api.metainfo.getTypes('ou')) {
dictionary.put(ou.code, ou.title)
}
return dictionary