Динамический контекст в виджетах

В пользовательских виджетах вы можете использовать динамический контекст — свойства, количество и типы которых не известны на этапе создания и публикации виджета. Набор таких свойств формируется с помощью скрипта, в котором выполняется запрос на сервер или во внешнюю систему.

Когда администратор системы размещает виджет с динамическим контекстом на форму или страницу и переходит к его настройкам, выполняется скрипт. Данные из внешней системы сохраняются в свойстве виджета и отображаются в его настройках для дальнейшей работы с ними.

Особенности виджета с динамическим контекстом

Для работы с динамическим контекстом в виджете используются:

  • служебное свойство с типом Произвольный тип — позволяет сохранить полученные с помощью скрипта динамические свойства в формате .json;
  • служебный виджет Динамический биндинг — размещается в окне настроек пользовательского виджета. Позволяет отобразить содержимое свойства с типом Произвольный тип как входные и выходные параметры для их сопоставления с контекстом страницы или формы, на которой размещён пользовательский виджет.

Пример виджета с динамическим контекстом

Рассмотрим использование пользовательского виджета Калькулятор, который создан для выполнения определённой бухгалтерской операции. Набор доступных операций и их параметры хранятся на сервере, администратор выбирает одну из них в настройках виджета. Работа администратора с таким виджетом выполняется в два этапа:

  1. Создание виджета с динамическим контекстом.

При этом задаются скрипты, позволяющие получить данные динамического контекста с сервера при размещении виджета в другом интерфейсе, например, на странице. 

  1. Настройка виджета для работы пользователей с ним.

Выполняются следующие действия с динамическим контекстом:

  1. Администратор системы размещает виджет на странице, где пользователь будет выполнять расчёты. После этого вызывается скрипт инициализации формы настроек виджета. С сервера загружается список бухгалтерских операций и сохраняется в переменной с типом Категория.
  2. В окне настроек виджета администратор выбирает нужную операцию, расчёта которой будет выполняться в виджете. После этого снова выполнится скрипт. С сервера загрузится набор входных и выходных параметров выбранной операции. Полученные данные сохранятся в переменной с типом Произвольный тип.
  3. На форме настроек виджета параметры операции отобразятся в виджете Динамический биндинг. Администратор сопоставляет их с контекстом страницы для получения входных данных, внесённых пользователем, и отображения результата операции на странице.

Подробнее об этих этапах настроек читайте в статье «Создать виджет с динамическим контекстом».