В пользовательских виджетах вы можете использовать динамический контекст — свойства, количество и типы которых не известны на этапе создания и публикации виджета. Набор таких свойств формируется с помощью скрипта, в котором выполняется запрос на сервер или во внешнюю систему.
Когда администратор системы размещает виджет с динамическим контекстом на форму или страницу и переходит к его настройкам, выполняется скрипт. Данные из внешней системы сохраняются в свойстве виджета и отображаются в его настройках для дальнейшей работы с ними.
Особенности виджета с динамическим контекстом
Для работы с динамическим контекстом в виджете используются:
- служебное свойство с типом Произвольный тип — позволяет сохранить полученные с помощью скрипта динамические свойства в формате .json;
- служебный виджет Динамический биндинг — размещается в окне настроек пользовательского виджета. Позволяет отобразить содержимое свойства с типом Произвольный тип как входные и выходные параметры для их сопоставления с контекстом страницы или формы, на которой размещён пользовательский виджет.
Пример виджета с динамическим контекстом
Рассмотрим использование пользовательского виджета Калькулятор, который создан для выполнения определённой бухгалтерской операции. Набор доступных операций и их параметры хранятся на сервере, администратор выбирает одну из них в настройках виджета. Работа администратора с таким виджетом выполняется в два этапа:
- Создание виджета с динамическим контекстом.
При этом задаются скрипты, позволяющие получить данные динамического контекста с сервера при размещении виджета в другом интерфейсе, например, на странице.
- Настройка виджета для работы пользователей с ним.
Выполняются следующие действия с динамическим контекстом:
- Администратор системы размещает виджет на странице, где пользователь будет выполнять расчёты. После этого вызывается скрипт инициализации формы настроек виджета. С сервера загружается список бухгалтерских операций и сохраняется в переменной с типом Категория.
- В окне настроек виджета администратор выбирает нужную операцию, расчёта которой будет выполняться в виджете. После этого снова выполнится скрипт. С сервера загрузится набор входных и выходных параметров выбранной операции. Полученные данные сохранятся в переменной с типом Произвольный тип.
- На форме настроек виджета параметры операции отобразятся в виджете Динамический биндинг. Администратор сопоставляет их с контекстом страницы для получения входных данных, внесённых пользователем, и отображения результата операции на странице.
Подробнее об этих этапах настроек читайте в статье «Создать виджет с динамическим контекстом».