Внешние обработки в 1С через Адаптер

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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