Блок "Справочник"
Блок доступен начиная с версии 0.20
Назначение блока
Блок создает таблицу в базе данных с заданными полями и позволяет получать массив объектов (SQL-запрос формируется автоматически). Также поддерживается write-back для указанных полей.
Данная страница содержит описание настроек блока. Описание мастера настройки блока см. в разделе Мастер настройки справочника и Мастер данных блока.
Чтобы начать работать с блоком, его необходимо выбрать в библиотеке блоков и переместить в область графа.
Настройки блока
Работа с настройками осуществляется через локальное меню блока (пункт Настройки):
Модальное окно представлено ниже:
Общие настройки блоков описаны в отдельном разделе.
Раздел "Справочник"
| Наименование | Тип | Обязательное | Описание | Пример |
|---|---|---|---|---|
| Привязка дополнительных параметров | JSON | Нет | Привязки формируют раздел условий при расчете блока. Необходимы для параметризации запроса на извлечение данных из справочника |
Пример привязок
Для массива требуется, чтобы в параметре была структура со значениями через запятую (пример: 0,1,2,3).
Входы блока
Общие настройки входов блока описаны в отдельном разделе.
| Название входа | Тип | Обязательный | Описание |
|---|---|---|---|
| БД | Соединение с БД | Да | Соединение с базой данных, из которой необходимо извлекать данные |
| Дополнительные параметры | Ряд данных | Нет | Массив объектов или временных рядов, атрибуты которых могут быть использованы для параметризации запроса по извлечению данных (при расчете блока) |
Поддерживаются разные диалекты баз, а именно:
- PostgreSQL
- MSSQL
- Oracle
ClickHouse не поддерживается данным типом блока.
Выходы блока
Общие настройки выходов блока описаны в отдельном разделе.
| Название выхода | Тип | Описание |
|---|---|---|
| Объекты | Объект | Массив объектов с возможностью добавления переменных выходов |
Изменения в релизе 0.43
В релизе 0.43 изменился формат получения передачи объектов: теперь каждый блок самостоятельно запрашивает необходимые данные у справочника.
В связи с этим изменились и выходные данные блока. Сам выход стандартизирован под выход с типом "объект" (для обратной совместимости), но данные в выходе больше не передаются.
Режим отладки
В режиме отладки блока данные для удобства будут отображены в параметре "Данные".
{
"pkey": {},
"_params": {},
"attrs": {
"name": "Новый формат ответа справочника. Данные можно получить по отдельным запросам",
"hint": "Используйте 'CDictionary(<dict_id>, <revision_id>, <block_id>).get_origin_data()' для работы с данными справочников",
"hint2": "Для работы с данными справочников в старом формате используйте 'CDictionary(<dict_id>, <revision_id>, <block_id>).get_origin_data().to_old_format_json()'"
},
"child": [],
"_source": "7fa0f30a-9c1f-429b-b9dc-155e5794969f",
"dict_id": "72d32c42-81d2-49e2-aed8-0abd72c13b2e",
"revision_id": "89f739084052c024e233",
"replace_data": true,
"dictionary_type": "sql"
}
_source- идентификатор блока, в котором был создан справочник.dict_id- уникальный идентификатор объекта-справочника.revision_id- идентификатор ревизии данных.replace_data- флаг для получения данных из сервиса. Необходим в тех случаях, когда все поля, указанные выше, приходят в объекте. Если replace_data = True, то независимо от полученных данных, блок попытается запросить данные у сервиса.dictionary_type- тип справочника.
Для корректной работы справочника и последующих блоков не рекомендуется менять значения параметров.
{
"pkey": [<Набор первичных ключей>],
"vl": <Значение объекта>,
"attrs": [<Набор атрибутов - полей, не попавших ни в первичный ключ, ни в значение>],
"_params": {
<Опциональные параметры объекта>,
"vl": <Ключ поля, отвечающего за значение>
},
"_source": <Идентификатор блока-источника, поле заполняется калькулятором автоматически>
}
События блока
В блоке нет событий.
Описание работы блока
Блок формирует SQL-запрос к указанной таблице в базе данных (при необходимости подставляя в него Jinja-шаблон из настройки «Привязка дополнительных параметров») и выполняет его. Каждая полученная строка преобразуется в объект в соответствии с описанием полей, заданных в мастере.
Результат работы: массив объектов.
Если для одного или нескольких атрибутов включена настройка сохранения данных (write-back), то при изменении данных в визуализаторе, расположенном после данного блока, автоматически формируется запрос на добавление и/или обновление данных, после чего изменения сохраняются в таблицу.


