﻿# Динамический биндинг

> [HTML Version](dynamic-binding.html)

Виджет является служебным и позволяет использовать динамические свойства, количество и тип которых не известен заранее. Такие данные можно получить с помощью скрипта из внешнего сервиса или сервера и сохранить в переменной с типом [Произвольный тип](360009707032.md#any).

Виджет **Динамический биндинг** отображает содержимое этой переменной как входные и выходные параметры для их сопоставления с текущим контекстом. Применяется только на пользовательских формах:

- в настройках блока [Действие в БП](extention-activities.md) с типом **Скрипт**;

**(dynamic-binding-1.png)**

- в настройках пользовательского виджета.

**(dynamic-binding-2.png)**

## Порядок работы с динамическими данными

Действия выполняются при настройке блока действия на схеме бизнес-процесса или пользовательского виджета:

1. С помощью скрипта выполняется запрос переменных из внешней системы. Например, можно получить данные о компаниях из внешнего сервиса.

2. Полученные данные сохраняются в переменную с типом **Произвольный тип**.

3. На пользовательской форме настроек в виджете **Динамический биндинг **данные из переменной с типом **Произвольный тип** отобразятся как входные и выходные параметры. После этого администратор системы может выполнить сопоставление параметров с текущим контекстом.

## Настроить виджет «Динамический биндинг»

Выполнение настроек с виджетом **Динамический биндинг **для действия типа **Скрипт **или пользовательского виджета аналогичны.

Рассмотрим порядок настроек на примере пользовательского виджета **Калькулятор**, в котором выполняется бухгалтерская операция. Количество и типы параметров операции запрашиваются скриптом с сервера. Чтобы отобразить эти параметры в настройках виджета: 

1. Перейдите в конструктор виджета **Калькулятор** и [создайте форму настроек](user-widgets-context.md#settings). Только на такой форме доступен виджет **Динамический биндинг**. Откроется конструктор формы настроек.

2. На вкладке **Контекст **добавьте переменную с типом **Произвольный тип**, в которой сохранятся данные, полученные с сервера запросом из скрипта.

3. На вкладке **Скрипты** добавьте скрипт, чтобы получить данные из внешней системы и сохранить их в переменной с типом **Произвольный тип**.  
Например, можно задать скрипт инициализации формы настроек виджета. Тогда при размещении готового виджета **Калькулятор** на форме или странице откроются его настройки и выполнится заданный скрипт.

4. Перейдите на вкладку **Шаблон** и разместите виджет **Динамический биндинг **на поле для моделирования. В этом виджете данные из переменной с типом **Произвольный тип** отобразятся для их сопоставления с контекстом формы или страницы. Выполните настройку виджета:

**(dynamic-binding-3.png)**

- **Контекст\*** — заполнится автоматически;

- **Динамические поля\*** — выберите свойство с типом **Произвольный тип **из контекста виджета **Калькулятор**.

5. Сохраните настройки виджета **Динамический биндинг**.

6. Сохраните настройки формы виджета **Калькулятор**.

Подробнее о примерах использования виджета **Динамический биндинг **читайте в статьях:

- [«Создать виджет с динамическим контекстом»](widget-with-dynamic-context.md);

- [«Биндинг переменных для действий в бизнес-процессах»](activities-features.md#script).