Выполнение внешних обработок в базах-источниках 1С:Предприятие через адаптер
4 минутное чтение
Внимание: в Базе-источнике должен быть установлен Адаптер ETL не ниже 1.1.11.2.
Выполнение внешних обработок в базах-источниках 1С:Предприятие через адаптер представляет собой механизм получения данных с помощью обработок, встроенных в базы источники 1С. Предназначен для случаев, когда получение данных возможно только с помощью программного кода на языке 1С, либо требуется дополнительная программная обработка данных, полученных запросом/механизмами СКД.
Для выполнения внешних обработок в базах-источниках 1С:Предприятие через адаптер необходимо подготовить информационную базу - источник: разместить модуль получения данных. Обработки для получения данных можно добавлять через расширение или подключать как внешнюю обработку в информационную базу Подключение модуля на стороне ETL.
В ETL необходимо перейти в «Главное» / «Настройки» / «Модули получения данных»
В открывшемся окне списка создать новый элемент «Модуль получения данных из источника»
На форме элементе заполнить поля:
- Вид модуля = «Модуль на стороне базы-источника (1)
- База источник = Информационная система 1С:Предпиятие, в которой размещен модуль получения данных в п.1. (2)
- Вид объекта обработки - «Дополнительная обработка», если обработка добавлена как внешняя или «Обработка конфигурации», если обработка добавлена через расширение или находится внутри конфигурации (3)
- Обработка - имя модуля получения данных из п.1.Можно выбрать из списка (кнопка с тремя точками справа от поля)(4). После выбора обработки автоматически заполняется табличная часть с информацией по группам обработчиков. Принудительно обновить информацию в табличной части можно с помощью команды «Обновить данные по обработке». (5)
Настройка получения данных
Для получения данных необходимо создать в документ «Установка правил выгрузки». В документе указать:
- Вид правила = «Модули на стороне источника». (1)
- В группе «Настройки модуля» (2) на закладке «Данные модуля» в поле «Модуль получения данных» модуль добавленный в п.2. (3)
- В поле «Идентификатор группы обработчиков» выбрать группу обработчиков. (3)
Дальнейшая работа с документом (заполнение соответствия полей, настройка таблицы выгрузки) аналогична работе с другими видами правил.
Работа с составом выгрузки, пакетом обработки данных по установке правил аналогична работе с установкой правил по другим видам правил.
Создание обработки для получения данных
Для создания обработки получения данных, воспользуйтесь шаблоном, размещенном в текущей статье ниже При разработке обработки необходимо реализовать процедуры программного интерфейса:
- Инициализировать
- СписокПолейТаблицы
- Данные
- СписокПараметровПользователя
- ПараметрыПриПостановкеВОчередь
- Сведения о внешней обработке (если используется вариант подключения внешней обработки)
Выполнение произвольного кода на стороне информационной системы – источника
Внимание: Выполнение произвольного кода на стороне базы-источника может быть потенциально опасным, так как кодом, выполняемым на стороне приемника управляет другая система. Для промышленного использования рекомендуется избегать выполнения произвольного кода и создавать отдельную обработку на каждую процедуру получения данных.
Для решения задачи хранения кода на стороне ETL и передачи его для исполнения в базу источник создано расширение с обработкой-модулем(примером), в которой реализована концепция передачи произвольного кода через параметры.
Файлы для скачивания:
В обработке используется 2 параметра:
- КодПолученияСпискаПолей - параметр для хранения кода, с помощью которого Заполняется таблица соответствия полей в документе установки правил.
- КодПолученияДанных - параметр для хранения кода, с помощью которого будут получаться данные. Подготовлена тестовая обработка для ETL - «ЗаполнениеОбработчиков». С помощью этой обработки можно заполнить код для обработчиков выбранного Правила в более удобном интерфейсе. Последовательность действий для использования тестовой обработки:
- Обновить ETL до версии 1.6.9.8. Обновить в базе источнике Адаптер до версии 1.1.11.2.
- Добавить расширение «МодулиАдаптера» в базу источник.
- Пользователю в источнике, под которым ETL подключается к АдаптеруETL добавить роль хс_ИспользованиеМодулейПолученияДанных.
- В ETL в модулях подключить обработку-модуль (МА1_ПолучениеДанныхКодом) из расширения источника п.2
- Создать новый документ «Установка правил выгрузки», Вид правила = «Модули на стороне источника», выбрать модуль добавленный в п.3. Донастроить документ, сохранить и провести его. Т.к. обработчики для заполнения полей еще не установлены, следует в таблице соответствия полей добавить любую строку с любыми данными, далее она будет перезаполнена. Создавать никакую таблицу-приемник на текущем этапе не следует.
- Открыть обработку ЗаполнениеОбработчиков.epf, выбрать правило из п.4, заполнить обработчики(примеры обработчиков есть в папке Обработчики) и нажать «Записать параметры».
- Открыть заново документ установки правил выгрузки, нажать кнопку «Заполнить соответствие полей». При этом на стороне источника выполнится необходимый код обработчика и таблица соответствия заполнится(в примере будет 3 поля). Теперь можно донастроить правило сбора данных в части создания таблицы, установки нужных соответствий.
- Создать Состав выгрузки с правилом из п.4 и набором источников, в котором выбран источник с установленным расширением п.2.
- Запустить Состав выгрузки на исполнение и проверить, что таблица приемник заполнилась согласно коду-обработчику получения данных.