Выполнение внешних обработок в базах-источниках 1С:Предприятие через адаптер

Внимание: в Базе-источнике должен быть установлен Адаптер ETL не ниже 1.1.11.2.

Выполнение внешних обработок в базах-источниках 1С:Предприятие через адаптер представляет собой механизм получения данных с помощью обработок, встроенных в базы источники 1С. Предназначен для случаев, когда получение данных возможно только с помощью программного кода на языке 1С, либо требуется дополнительная программная обработка данных, полученных запросом/механизмами СКД.

Для выполнения внешних обработок в базах-источниках 1С:Предприятие через адаптер необходимо подготовить информационную базу - источник: разместить модуль получения данных. Обработки для получения данных можно добавлять через расширение или подключать как внешнюю обработку в информационную базу Подключение модуля на стороне ETL.

В ETL необходимо перейти в «Главное» / «Настройки» / «Модули получения данных»

В открывшемся окне списка создать новый элемент «Модуль получения данных из источника»

На форме элементе заполнить поля:

  1. Вид модуля = «Модуль на стороне базы-источника (1)
  2. База источник = Информационная система 1С:Предпиятие, в которой размещен модуль получения данных в п.1. (2)
  3. Вид объекта обработки - «Дополнительная обработка», если обработка добавлена как внешняя или «Обработка конфигурации», если обработка добавлена через расширение или находится внутри конфигурации (3)
  4. Обработка - имя модуля получения данных из п.1.Можно выбрать из списка (кнопка с тремя точками справа от поля)(4). После выбора обработки автоматически заполняется табличная часть с информацией по группам обработчиков. Принудительно обновить информацию в табличной части можно с помощью команды «Обновить данные по обработке». (5)

Настройка получения данных

Для получения данных необходимо создать в документ «Установка правил выгрузки». В документе указать:

  • Вид правила = «Модули на стороне источника». (1)
  • В группе «Настройки модуля» (2) на закладке «Данные модуля» в поле «Модуль получения данных» модуль добавленный в п.2. (3)
  • В поле «Идентификатор группы обработчиков» выбрать группу обработчиков. (3)

Дальнейшая работа с документом (заполнение соответствия полей, настройка таблицы выгрузки) аналогична работе с другими видами правил.

Работа с составом выгрузки, пакетом обработки данных по установке правил аналогична работе с установкой правил по другим видам правил.

Создание обработки для получения данных

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

  • Инициализировать
  • СписокПолейТаблицы
  • Данные
  • СписокПараметровПользователя
  • ПараметрыПриПостановкеВОчередь
  • Сведения о внешней обработке (если используется вариант подключения внешней обработки)

Выполнение произвольного кода на стороне информационной системы – источника

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

Для решения задачи хранения кода на стороне ETL и передачи его для исполнения в базу источник создано расширение с обработкой-модулем(примером), в которой реализована концепция передачи произвольного кода через параметры.

Файлы для скачивания:

В обработке используется 2 параметра:

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