1 - Настройка правил выгрузки данных

Создать новый / отредактировать существующий документ «Установить правила выгрузки».

Заполнение:

  • «Правило выгрузки» — выбрать из справочника, при необходимости создать новое;
  • «Тип правила» («Рабочее», «Разовое» и т.п.) — информационное поле для удобства поиска правил с определенным типом / статусом;
  • «Тип приемника» — выбрать из вариантов:
    • «Таблица произвольной СУБД (ADO)» — не требует доп. настроек, используется по умолчанию;
    • «Таблица внешнего источника данных» — требует настройки внешнего источника в конфигураторе 1С;
  • «Вид правила» — от вида правила зависит способ получения данных.
    Виды правил выгрузки:
  • «Вкладка «SQL»:
    • база данных (см. рисунок ниже, 1) — выбрать из справочника баз данных базу-приемник;
    • таблица выгрузки (см. рисунок ниже, 2) — таблица-приемник. Эта таблица может уже существовать в базе-приемнике или можно ввести название еще несуществующей таблицы, а в последствии, когда ее поля будут описаны на вкладке «SQL» (см. рисунок ниже, 4) создать ее при помощи кнопки «Создать таблицу в SQL» (см. рисунок ниже, 3);
    • «Описание полей запроса и полей таблицы-приемника. Описывать поля запроса и поля выгрузки можно после соответствующих настроек для вида правила (см. ниже). Заполнять описание полей не обязательно, если предполагается получать данные разово в отчет или в файл;
    • версионирование для таблицы-приемника включается отдельной процедурой;
  • вкладка «Обработчики» — используется для настройки постобработки данных в особых случаях. Например, для преобразования / форматирования полученных значений; заполнения геокоординат по адресу и т.д.;
  • вкладка «Служебные поля» — используется для настройки аудиторских полей. После выбора режима, при создании таблицы поля будут добавлены в нее вместе с полями на вкладке SQL. По умолчанию используется режим — основной;
  • «Провести документ» — кнопка «Провести» / «Провести и закрыть». При проведении происходит запись («Период», «Регистратор», «Правило») в регистр «Правила выгрузки». Этот регистр служит для хранения истории документов-регистраторов для конкретного правила и получения актуального правила и актуального регистратора, что используется, например, в «Обработке выгрузки данных».

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

1.1 - Настройка служебных полей

В документе «Настройка правил выгрузки» перейти на вкладку «Служебные поля» и выбрать из выпадающего списка режим заполнения служебных полей:

При необходимости можно отредактировать — нажать:

или создать новый режим — нажать:

в выпадающем списке:

При создании добавить нужные поля. Для вывода различных значений можно использовать поле «ATTRIBUTE» (по умолчанию не содержит значения). Или добавить новое поле:

Значения можно выбрать из готового списка реквизитов справочника «Источники данных»:

или использовать выражения в контексте 1C, для вывода определенного значения:

Далее сохранить изменения и закрыть форму, нажав кнопку «Записать и закрыть».

Примечание. При редактировании режима изменения повлияют на все правила, где он используется.

1.2 - Настройка правила вида «Запрос»

Перечень дествий описан ниже.

Заполнить «Текст запроса» на языке 1C или SQL. Заполнить «Параметры запроса» (типичным параметром является период выгрузки, в этом случае установить параметры «ДатаНачала» и «ДатаКонца»). Для добавления параметра необходимо перейти на вкладку «Настройка параметров» и нажать ссылку «Настроить параметры»:

Откроется интерфейс, в котором возможно:

  • заполнить наименования параметров из запроса по кнопке «Заполнить из запроса» (см. рисунок выше, 1);
  • добавить строки параметров по кнопке «Добавить» (см. рисунок выше, 2) и заполнить поля: «Имя параметра», «Номер пакета / этапа» (если пакет / этап один, то выбрать «=1»), «Значение параметра» (см. рисунок выше, 3).
    Вместо значения параметра возможно, проставив соответствующий флаг, заполнить поле «Выражение для вычисления параметра» на языке 1С (см. рисунок выше, 4). Результат расчета выражения возможно проконтролировать в поле «Значение» (см. рисунок выше, 5).
    При необходимости следует запускать запрос более 1 раза с разными значениями параметров. Возможно заполнить значения параметров, объединенных в наборы / пакеты, заполняя для строк параметров объединяющий признак «Номер пакета». Это необходимо в случае, если из-за особенностей запроса его можно запускать, например, только помесячно, но требуется получить данные за несколько (N) месяцев — при этом запрос будет запускаться N раз с периодом 1 месяц.
    Для параметров типа «дата / дата-время» существует помощник заполнения наборов / пакетов, запускаемый по кнопке «Заполнить наборы параметров» (см. рисунок выше, 6).

В форме необходимо ввести период дат «с … по», периодичность (день / неделя / месяц / квартал), смещение (время в секундах, которое будет добавлено к параметру даты) и вид периода (начало / конец периода) и нажать кнопку «Заполнить»:

Результатом будут заполненные строки параметров для пакетов получения данных:

1.3 - Настройка правила вида «Произвольный код»

Такие правила используются для источников отличных от баз данных SQL / 1С, например, получения данных из web-сервисов и разрабатываются квалифицированным разработчиком 1С.

Требуется заполнить вкладки:

  • «Обработчик получения списка полей таблицы»;
  • «Обработчик получения данных»;
  • «Обработчик получения списка параметров»;
  • «Данные модуля»;
  • «Настройка параметров».

1.4 - Настройка правила вида «Загрузка из файла»

При загрузке из файла необходимо настроить правила работы с данным файлом. Для хранения этих правил создан справочник «Настройки загрузки из файла».

Примечание. Для получения данных через «ADO-ODBC» необходимо использовать правила выгрузки вида «Запрос».

Установка настроек загрузки из файла

Примечание. «Настройки загрузки из файла» удобно формировать с помощью обработок «Загрузка файла в БД» и «Загрузка файла в БД (мастер настройки)», которые подробно описаны в п. 14.1.

Открыть справочник можно из формы документа «Установить правила выгрузки», либо через меню «Главное» / «Настройки» / «Настройки загрузки из файла».

Необходимо создать новый элемент. В новом элементе нужно заполнить название настройки и следующие вкладки:

  • «Основная» — заполнить путь к файлу и список колонок, содержащихся в файле, название выходного поля, номер колонки в файле и тип данных.
  • «Правила исключения строк» — можно настроить правила отбора строк, которые не должны загружаться.
  • «Настройки» — установить настройки куда выгружать данные и режим записи, настройки получения данных из файла.
  • Дополнительно можно заполнить описание на вкладке «Описание» и использовать обработчики — специальные скрипты, которые можно внести в поле на вкладке «Обработчики».

1.5 - Настройка правила вида «Схема источника (СКД)» для 1С-источника

В качестве «Схемы источника» используется настройка отчета через систему компоновки данных (СКД) в базе определенной конфигурации 1С. Такой способ получения данных предполагает управление схемой СКД источника из Modus: ETL, передавая параметры и правила компоновки данных. Способ управления схемой СКД отчета в источнике используется, когда необходимые данные проблематично получить 1С-запросами, например, для среднесписочной численности работников.

Настройки отчета источника сохраняются в специальном справочнике «Отчеты конфигураций». Открыть справочник можно из формы документа «Установить правила выгрузки» (размещение: «Начальная страница» / «Сбор данных» / «Установка правил выгрузки»).

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

Раскройте раздел «Настройки схемы компоновки данных». И в выпадающем списке «Схема источника» нажмите «Показать все» и выберите нужный отчет:

Откроется справочник «Схемы компоновки данных источников». Для создания нового элемента нажмите кнопку «Создать»:

Настройка элемента справочника «Схемы компоновки данных источников»

При настройке элемента справочника «Схемы компоновки данных источников» используются настройки из базы-источника. Для получения этих настроек, в форме нового элемента необходимо выбрать «Расположение схемы» и нажать кнопку «Импортировать из источника»:

Сделайте необходимые установки в мастере для импорта отчета:

  • выберите базу-источник;
  • выберите тип метаданных («Отчет» или «Справочники»);
  • выберите требуемый объект для импорта (настроенный на СКД отчет);
  • в открывшемся списке схем отчета, настроенного на СКД, выберите схему отчета для импорта (если нужно получать данные по нескольким схемам, для каждой схемы настройте отдельный элемент справочника «Схемы компоновки данных источников»);
  • выберите вариант настроенного на СКД отчета, (если нужно получать данные по нескольким вариантам отчета, для каждого варианта настройте отдельный элемент справочника «Схемы компоновки данных источников»).

В результате работы мастера по импорту настроек отчета из СКД:

  • будет автоматически заполнено «Наименование элемента справочника», оно компонуется из названия базы-источника, названия отчета и названия варианта отчета. Таким образом легко идентифицировать импортированные настройки;
  • будут загружены все настройки из выбранного отчета, выбранной схемы и выбранного варианта на закладах «Отбор», «Параметры», «Порядок», «Условное форматирование», «Поля», «Настройки»;
  • будут заполнены информационные поля на закладке «Дополнительно»:

Если в исходном отчете дополнительно к схеме есть настройки в виде программного кода, требуется установить флаг «Отчет требует инициализации» на закладке «Дополнительно». Сама инициализация, т.е. получение и запуск программного кода, будет происходить при исполнении отчета (получении данных).

В импортированные настройки можно вносить изменения: добавлять и группировать поля. При добавлении поля можно использовать вложенные данные до второго уровня вложенности. Например, «Организация.ИНН».

Сохраните элемент справочника и выберите его из списка в документе «Установка правил выгрузки».

Настройка правила на основе схемы источника

Настройка схемы компоновки данных:

  • на вкладке «Страница основная» выберите элемент справочника «Схема источника»;
  • набор параметров на вкладке «Настройка параметров» заполнится автоматически из настроек схемы отчета в выбранном элементе. Если в исходном варианте отчета на СКД в базе данных были внесены изменения в параметры, можно получить эти изменения при помощи кнопки «Обновить отчет» на вкладке «Страница основная».

Вкладка «SQL»:

  • поля запроса и выходные поля таблицы заполнены автоматически из настроек выбранного элемента справочника «Схемы компоновки данных источников»;
  • требуется заполнить типы полей.

На вкладке «Настройки представления полей» требуется указать, поля типа «ссылка» для автоматической генерации представления. При получении данных, ссылки будут заменены на строковые значения полей.

Остальные настройки аналогичны настройкам правила вида «Запрос».

Запуск правила вида «Схема источника» может быть только в автоматическом режиме через механизм «Состав выгрузки». Получить данные через сервис «Выгрузка в отчет» невозможно.

Ограничения при использовании СКД

Расположение схемы «База-источник»

Нельзя использовать СКД, у которых:

  • в настройках используется кросс-таблица;
  • в параметрах используются не примитивные типы (ссылки, массивы ссылок и т.п.);
  • есть набор данных — объект;
  • запросы в наборах данных требуют программной модификации / перезаполнения.

Расположение схемы «Локально в хранилище ETL»

Здесь действуют те же ограничения, что и в пп. 6.6.3.1, но так как схему можно изменить (создать с нуля), то эти ограничения можно обойти, например, вместо ссылок использовать код или наименование.

Для любых схем

Схему в ETL можно настраивать только в толстом клиенте.

Нельзя получить данные с видом правила «Схема источника» через агента ETL.

Особенности формирования схемы СКД:

Параметры для виртуальных таблиц следует указывать в фигурных скобках:

  • Период — для таблиц «СрезПоследних», «СрезПервых», «Остатки»;
  • НачалоПериода, КонецПериода — для таблиц «Обороты», «ОстаткиИОбороты».

Например:

ВЫБРАТЬ ИЗ
РегистрСведений.КурсыВалют.СрезПоследних({&ПараметрДата},
Валюта = &ПараметрВалюта)

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

2 - Настройка состава выгрузки данных

Для настройки связи правил выгрузки с набором источников данных, а также для уточнения параметров выгрузки и для возможности настраивать расписание получения данных (не обязательно) служит объект (справочник) «Составы выгрузок».

Размещение: через меню «Главная» / «Настройки» / «Составы выгрузок» или с начальной страницы:

Для создания нового элемента нажать кнопку «Создать» (рисунок выше, 1).

Возможна настройка запуска получения данных по расписанию и вручную. Для запуска получения данных с настроенным правилом выгрузки и набором данных (состав выгрузки) вручную, нужно выбрать «Состав выгрузки» и нажать кнопку «Направить задание в очередь» (рисунок выше, 2).

Недавно запущенные составы выгрузок можно увидеть в нижней части формы «Составы выгрузок» (рисунок выше, 3).

Порядок заполнения:

  • заполнить «Набор источников» и «Правила выгрузки» (см. рисунок выше, 2 и 3) – наименование выгрузки (рисунок выше, 1) заполнится автоматически из названия набора источников и правила выгрузки;
  • в поле «Таблица выгрузки (из правила)» отобразится таблица, в которую по умолчанию записываются данные. Потягивается из выбранного правила выгрузки (рисунок выше, 4).
  • в поле «Таблица выгрузки (альтернативная)» можно ввести альтернативную таблицу, в которую требуется получить данные, вместо таблицы по умолчанию. Таблица должна быть в БД (рисунок выше, 5).
  • установить режим записи данных (см. рисунок выше, 6):
    • Добавить – дополнить исходную таблицу новыми данными;
    • Очистить и добавить – очистить исходную таблицу и добавить туда полученные данные;
    • Скопировать и добавить – скопировать исходную таблицу (у таблицы-копии добавится к названию исходной таблицы суффикс, содержащий дату и время обновления данных), после этого очистить таблицу и добавить туда полученные данные;
  • установить флаг «Делить на потоки по параметрам» (см. рисунок выше, 7), если требуется разделить получение данных на потоки, зависящие от пакетов (наборов) параметров. Не используется при получении данных правилом выгрузки вида «Загрузка из файла».
  • установить требуемые параметры и пакеты параметров (см. рисунок выше, 8).

1. Параметры для получения данных

Для настройки параметров в «Составе выгрузки» переходим по ссылке «Настроить параметры» («Изменить параметры») (см. рисунок выше, 8):

  • по умолчанию набор и значения параметров заполняются из выбранного «Правила выгрузки», значения параметров в «Составе выгрузки» можно изменить;
  • если в правиле выгрузки требуется несколько параметров, то нужно добавить и заполнить их;
  • если необходимо использовать несколько запусков получения данных и соответственно несколько групп параметров (например, несколько раз запускать получение данных за разные месяцы), то каждой группе назначаем номер запуска (вручную, для каждого параметра из группы) (см. рисунок ниже, 1);
  • параметры можно задавать не только константой (см. рисунок ниже, 2) , но и вычисляемым выражением (см. рисунок ниже, 3), в этом случае проверить значение выражения можно в специальном поле. Для этого нужно установить курсор на выражение в параметре и его значение отобразиться в поле «Значение» (см. рисунок ниже, 6). Также можно вручную написать текст для вычисления выражения в поле «Выражение для вычисления параметра» (см. рисунок ниже, 4) и нажать на кнопку «=» (см. рисунок ниже, 5);
  • пока не включен флаг у выражения, оно не будет включаться в запрос получения данных, в этом случае будет использовано значение параметра в виде константы.

Рисунок 4. Вычисление выражения.

Параметры тип дата можно заполнить, используя функции для работы с датами:

  1. ТекущаяДата() — текущая (системная) дата;
  2. ДобавитьМесяц(<Дата>, <ЧислоМесяцев>) — добавляет (или вычитает) к указанной дате заданное число месяцев. Если <ЧислоМесяцев> принимает отрицательное значение, то число месяцев вычитается;
  3. НачалоГода(<Дата>) — определяет дату и время начала года для указанной даты;
  4. НачалоКвартала(<Дата>) — определяет дату и время начала квартала для указанной даты;
  5. НачалоМесяца(<Дата>) — определяет дату и время начала месяца для указанной даты;
  6. НачалоНедели(<Дата>) — определяет дату и время начала недели для указанной даты;
  7. НачалоДня(<Дата>) — определяет дату и время начала дня для указанной даты;
  8. НачалоЧаса(<Дата>) — определяет дату и время начала часа для указанной даты;
  9. НачалоМинуты(<Дата>) — определяет дату и время начала минуты для указанной даты;
  10. КонецГода(<Дата>) — определяет дату и время конца года для указанной даты;
  11. КонецКвартала(<Дата>) — определяет дату и время конца квартала для указанной даты;
  12. КонецМесяца(<Дата>) — определяет дату и время конца месяца для указанной даты;
  13. КонецНедели(<Дата>) — определяет дату и время конца недели для указанной даты;
  14. КонецДня(<Дата>) — определяет дату и время конца дня для указанной даты;
  15. КонецЧаса(<Дата>) — определяет дату и время конца часа для указанной даты;
  16. КонецМинуты(<Дата>) — определяет дату и время конца минуты для указанной даты.

2. Обработчики

Когда требуется дополнительно обработать данные или скорректировать параметры выполнения (до того как будет получен результат и записан в таблицу хранилища), используются обработчики — специальные скрипты, которые можно внести в поле на вкладке «Обработчики»:

  • «Перед постановкой в очередь» — используется в основном для обработки данных с помощью плагинов (вид правила – «Произвольный код»), если требуется дополнительная обработка данных до записи их в таблицу хранилища;
  • «После получения параметров» — для переопределения параметров и шаблонов запроса. Может использоваться, например, для инкрементального получения данных с даты последнего обновления — с помощью произвольного кода 1С возможно устанавливать параметр в составе выгрузки в значение, с учетом даты обновления данных, которое сохранено в определеном поле таблицы хранилища. Подробности для разработчика описаны в разделе «Подсказка»:

3. Дополнительные настройки

Необязательные настройки вынесены на закладку «Дополнительно».

Для установки автоматического запуска получения данных используется «Расписание запуска регламентного задания» (см. рисунок выше, 1). Как настроить расписание, подробно описывается в этой статье.

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

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

Агент для получения данных (см. рисунок выше, 4) выбирается, если требуется получение данных с помощью Агента ETL.

3 - Механизм извлечения данных с использованием обработок plug-in’ов (модулей получения данных)

Для придания большей гибкости конфигурации в части механизмов получения данных, так как именно эта часть является часто изменяемой, был разработан механизм «Модулей получения данных». На низком уровне он представляет из себя «Дополнительные обработки» библиотеки стандартных подсистем 1С, которые предоставляют стандартный API для простого использования в конфигурации программного продукта.

Последовательность настройки описана ниже.

  1. Создать обработку для получения данных (например, используя сторонние web-сервисы).
  2. Добавить внешнюю обработку в список «Дополнительных обработок».

При добавлении следует особое внимание обратить на режим работы: если предполагается работать с внешними ресурсами, то режим должен быть «Не безопасный».

  1. Добавить обработку в качестве «Модуля получения данных».

При создании нового «Модуля получения данных», в списке «Обработок» отображаются все «Дополнительные обработки». Заполнение таблицы с информацией об обработчиках, предоставляемых Модулем, заполняется с использованием программного интерфейса (API) дополнительной обработки.

Обязательными обработчиками являются:

  • «Обработчик получения данных» — вызывается при обработке очереди получения данных.
  • «Обработчик получения параметров при постановке в очередь» — функция,которая формирует коллекцию параметров, в разрезе которых возможнопостроить очередь. Минимально коллекция должна быть из одного параметра, чтобы очередь могла состоять из одного элемента. Параметрами могут быть любые сущности, которые зависят не от пользователя (например, список «Организаций», по которым требуется получить информацию, или список «Видов спорта», по которым нужно получить список действующих тренеров).

Необязательными обработчиками являются:

  • «Обработчик получения списка полей таблицы» — функция формирования списка типизированных поле, которые являются полями результирующей таблицы данных. В контексте запроса – это поля запроса. Поля используются для сопоставления полей источника и полей приемника в документе «Установка правил выгрузки».
  • «Обработчик получения списка параметров пользователя» — функция, формирующая список параметров, которые нужно указать пользователю для корректного получения данных.
  1. Настроить правило выгрузки с использованием нового «Модуля получения данных». Для этого в «Виде запроса» выбираем «Произвольный код». На вкладке «Данные модуля» выбираем «Модуль получения данных».

После выбора «Модуля получения данных», автоматически будет заполнен список доступных «Идентификаторов групп обработчиков». Это строки табличной части «Модуля» для упрощенной настройки кода вызова обработчиков.

После заполнения Идентификатора будет предложено автоматически заполнить соответствующие страницы с программным кодом вызова обработчиков.

Важно! Программный код вызова обработчиков можно заполнить и вручную, механизм модулей — это лишь помощь в настройке.

Код может быть произвольным. Контекст вызова каждого обработчика можно посмотреть в «Подсказке» (символ «?» на форме).

  1. Настроить «Состав выгрузки» для правила (более подробно о настройке написано в п. 7).

Ниже приведен пример алгоритма работы получения данных с использованием «Модулей получения данных».

Пусть состав настроен для «Набора источников» который состоит из 6 «Источников» (здесь источник — это просто абстрактная сущность для деления данных на порции в очереди) и «Правила получения данных» по образовательным учреждениям с использованием механизма «Модуля получения данных».

  1. При формировании очереди вызывается обработчик «Перед постановкой в очередь» из состава выгрузки (в данном обработчике пусть получается список Идентификаторов образовательных учреждений, к примеру, список состоит из 1200 образовательных учреждений). Список из 1200 образовательных учреждений делится на 6 «Источников» и записывается очередь в разрезе Источников.
  2. При получении данных из очереди для каждого источника вызывается «Обработчик получения данных» из «Установки правила выгрузки данных» в контексте 200 образовательных учреждений из очереди, данные формализуются в виде таблицы значений и отдаются механизму сопоставления полей и записи в «Хранилище данных (DWH)».

4 - Настройка инкрементальной загрузки из 1С

Инкрементальная загрузка из 1С предназначена для получения измененных данных из 1С в целевое хранилище ETL. Регистрация изменений в базе источнике выполняется на узлах обмена, а в ETL выполняется получение только зарегистрированных к отправке данных. После успешного получения данных регистрация изменений очищается.

Перед настройкой база-источник должна быть подключена в ETL при помощи Адаптера ETL, а также между ETL и базой-источником должна проходить проверка соединения

Настройка на стороне источника

  1. Выбрать план обмена, который будет выполнять регистрацию сведений. Подробней про планы обмена можно прочитать по ссылке https://v8.1c.ru/platforma/plan-obmena/. Вам необходимо выбрать или создать такой план обмена, чтобы на нем регистрировались метаданные конфигурации, которые вы намерены получить. Можно выбирать любой план обмена, который есть в конфигурации, или создать свой при помощи доработки конфигурации или создания расширения, которое будет содержать новый план обмена.
  2. После выбора плана обмена, необходимо перейти в список узлов выбранного плана обмена и создать новый Узел обмена. Для каждого объекта метаданных необходимо создавать свой экземпляр узла, каждый экземпляр узла должен иметь уникальный код и наименование.
    Например, необходимо загружать изменения справочника «Контрагенты» и справочника «Номенклатура», тогда для каждого справочника вам нужно создать собственный элемент узла плана обмена.
  3. Установить код у предопределенного узла обмена «Этот узел». «Этот узел» это специальный узел обмена, который создается автоматически. Для того чтобы механизм инкрементальной загрузки работал корректно нужно указать любой код в его карточке. Проверить регистрацию на узлах можно при помощи стандартной обработки «Регистрация изменений для обмена», которая есть в типовых конфигурациях или при помощи внешней обработки https://its.1c.ru/db/metod8dev/content/5013/hdoc.

На стороне ETL

  1. Загрузить информацию о плане обмена. Для этого необходимо в разделе «Источники данных» выбрать источник данных, который соответствует вашей базе в его карточке, на вкладке «Дополнительные настройки» нажать «Загрузить узлы планов обмена».
  2. Создать новые правила выгрузки данных и в верхней части документа установить признак «Загрузка изменений по плану обмена (1С)».
  3. Написать запрос для получения данных. Запрос к данным должен получать только измененные данные. Для этого в языке запросов 1С есть специальная конструкция «<ИмяТаблицы.Изменения». Обращаясь к таблице изменений объекта метаданных, пользователь получает информацию о ссылках на измененные или удаленные объекты или ключи регистов сведений, по которым произошли изменения.

Например, текст запроса получения данных контрагентов имеет следующий вид:

   ВЫБРАТЬ
	Контрагенты.Ссылка,
	Контрагенты.ИНН,
	Контрагенты.КПП,
	Контрагенты.Наименование,
	Контрагенты.Ответственный
ИЗ
	Справочник.Контрагенты КАК Контрагенты

Для получения изменений его необходимо привести в следующий вид:

ВЫБРАТЬ
	Контрагенты.ИНН,
	Контрагенты.КПП,
	Контрагенты.Наименование,
	Контрагенты.Ответственный,
	КонтрагентыИзменения.Ссылка КАК Ссылка
ИЗ
	Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО КонтрагентыИзменения.Ссылка = Контрагенты.Ссылка
ГДЕ
	КонтрагентыИзменения.Узел = &ПланОбмена_Узел
	И &ПланОбмена_НомерПринятогоСообщения <> -1
  1. В запросе необходимо обязательно указать два обязательных параметра = &ПланОбмена_Узел, &ПланОбмена_НомерПринятогоСообщения.

    Для параметра &ПланОбмена\_НомерПринятогоСообщения рекомендуется устанавливать конструкцию-заглушку &ПланОбмена_НомерПринятогоСообщения <> -1.

  2. Выполнить оставшуюся настройку правил выгрузки, провести и закрыть документ.

  3. Создать состав выгрузки, указать созданные выше правила выгрузки. При выборе правила инкрементальной загрузки в форме появится раздел «Узлы обмена». В открывшейся таблице нужно нажать кнопку «Заполнить» и после загрузки списка узлов, заполнить колонку «Узел обмена».  

  4. Записать и закрыть состав выгрузки.

Рекомендации по написанию запросов инкрементальной загрузки

  1. Для получения изменений узла обмена нужно использовать таблицу изменений:

    1. для объектных типов (справочников, документов, планов видов характеристик и тд.) ключом изменения является ссылка;
    2. для регистров накопления, расчетов, бухгалтерии и зависимых регистров сведений — регистратор;
    3. для независимых регистров — комбинация измерений.
  2. Организовывать структуру таблиц-приемника нужно таким образом, чтобы таблицы всегда содержали колонку регистратора изменений или ключи независимого регистра сведений.

  3. В запросе не должно быть отборов. Изменение объекта может привести к тому что объект не будет получен из-за отбора, и в хранилище останется его неактуальная версия.

  4. Для получения данных нужно использовать ЛЕВОЕ соединение таблицы изменений с основной таблицей. Ключевые поля должны браться из таблицы изменений, остальные из основной таблицы.

Например, правила выгрузки содержат запрос:

ВЫБРАТЬ
	Контрагенты.ИНН,
	Контрагенты.КПП,
	Контрагенты.Наименование,
	Контрагенты.Ответственный,
	КонтрагентыИзменения.Ссылка КАК Ссылка
ИЗ
	Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО КонтрагентыИзменения.Ссылка = Контрагенты.Ссылка
ГДЕ
	КонтрагентыИзменения.Узел = &ПланОбмена_Узел
	И &ПланОбмена_НомерПринятогоСообщения <> -1

Если на узле зарегистрировано изменение данных и удаление вернутся следующие данные:

Ссылка ИНН КПП Наименование Ответственный
1 83b70f0d-f7f4-11e5-943d-00155d000f03 8813084210 495445951 ООО «Рога и Копыта»
2 511c9ecf-584c-11e8-944c-00155d000f02      

Выборка запроса вернула две строки: первая строка вернула информацию о измененном контрагенте, который существует в основных данных,вторая строка вернула только идентификатор измененного объекта, но не вернула другие данные. Это значит, что второй элемент выборки был удален. ИНН, КПП, Наименование и Ответственный имеют пустое значение (IS NULL).

  1. Предусмотрите, что удаленные объекты вернутся из запроса в виде заполненных ключевых полей без заполненных полей основной таблицы.
  2. Допускается получение данных записей зависимых регистров или по их таблице регистрации, или по таблице регистрации документа-регистратора.

Пример создания инкрементальной выгрузки

Получим данные по изменениям контрагентов из конфигурации «Документооборот 2.0». В качестве плана обмена выберем «Полный обмен данными». Перейдем в функции для технического специалиста, выберем план обмена «Полный обмен данными».

Убедимся, что в форме есть предопределенный узел с признаком «Этот узел», у которого заполнен код.

Создадим узел обмена «Контрагенты»:

Изменим один элемент, и убедимся при помощи обработки «Регистрация изменения для обмена», что изменения зарегистрировались на узле.

В ETL, в источниках данных, обновим информацию о узлах обмена.

Создадим новое правило выгрузки данных, установим текст запроса:

ВЫБРАТЬ
	Контрагенты.ИНН,
	Контрагенты.КПП,
	Контрагенты.Наименование,
	Контрагенты.Ответственный,
	КонтрагентыИзменения.Ссылка КАК Ссылка
ИЗ
	Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО КонтрагентыИзменения.Ссылка = Контрагенты.Ссылка
ГДЕ
	КонтрагентыИзменения.Узел = &ПланОбмена_Узел
	И &ПланОбмена_НомерПринятогоСообщения <> -1

Перейдем в состав выгрузки и укажем правило, вкладке дополнительно выберем нужный узел обмена.

Направим задание в очередь, проверим полученные данные. Настройка инкрементального получения выполнена.

5 - Загрузка данных в таблицу из файлов JSON

Загрузка данных состоит из трёх этапов:

  1. подготовка источников данных;
  2. разбор файла «JSON»;
  3. создание правила выгрузки.

Подготовка источников данных

Для обработки файла «JSON» первым шагом необходимо настроить его как источник данных. Для этого перейдите в раздел «Источники данных» и создайте новый источник данных с типом «файл».

Далее, необходимо зарегистрировать набор источников. Подробнее про источники данных можно почитать тут.

Разбор файла JSON

Для подробного ознакомления с интерфейсом конструктора правил разбора «JSON» можно перейти по ссылке.

Необходимо перейти в «Конструктор правил выборки «JSON». Это можно сделать через раздел «Сервис».

После, необходимо загрузить файл «JSON» для того, чтобы ETL получил структуру файла. Необходимо нажать на кнопку «Загрузить JSON», загрузить сам файл и нажать на «Показывать данные».

Следующий этап — разбор файла. Для этого необходимо перенести столбцы в поле выбора. Если они расположены в массиве, нужно нажать на строчку и поставить точку итерации.

Правило разбора данных готово! Осталось его сохранить и использовать в правилах выгрузки.

Создание правила выгрузки

Подробно про правила выгрузки можно почитать тут.

Последовательность действий описана ниже.

  1. Создать новое правило выгрузки и выбрать вид правила «Произвольный код».
  1. Перейти в «Настройки произвольного кода» / «Данные модуля» и выбрать в «Модуль получения данных» значение «Разбор JSON по правилам», в «Идентификатор группа обработчиков» выбрать «Выбрать данные из файла» и подтвердить заполнение обработчиков. Результат можно посмотреть во вкладке «Получение списка полей».
  1. После заполнения раздела «Получение списка полей», необходимо записать правило выгрузки и перейти во вкладку «Настройки параметров».
  1. В «Настройках параметров выполнения» необходимо нажать на «Заполнить согласно модулю сбора» и для единственного параметра выбрать то правило разбора данных, которое было создано выше и сохранить настройки.

В настройках произвольного кода в разделе «Настройка параметров» появится новый параметр.

  1. Далее, необходимо заполнить соответствие полей и создать таблицу, в которую будут выгружены данные из файлов.

6 - Загрузка данных из Битрикс24

Для примера интеграции с Битрикс24 разработана дополнительная обработка «Загрузка из Битрикс». Для работы с обработкой ее необходимо разместить во внешних отчетах и обработках. Их настройка описывается в этой статье.

Для установки правил разбора можно использовать конструктор запросов к веб сервису. Тексты запросов можно посмотреть в режиме отладки.

Ссылка на архив

7 - Получение данных из web сервисов

Вместе с ETL поставляется модуль получения данных из различных web сервисов с помощью относительно простых http запросов.

Предварительная настройка правила выгрузки

Для получения данных из web сервиса при помощи простого http запроса выполните следующие предварительные действия.

  1. Создайте «Установку правила выгрузки» с новым правилом выгрузки.
  2. Задайте вид правила: «Произвольный код».
  3. Разверните группу формы «Произвольный код».
  4. Перейдите на вкладку «Данные модуля».
  5. В качестве модуля получения данных выберите «WEB сервис».
  6. Нажмите кнопку сохранить.

Открываем мастер настройки простого запроса кнопкой:

Описание настроек мастера

  1. Тип запроса — «POST» или «GET».
  2. Строка запроса — URL ресурса. Для GET запроса можно указать вместе с параметрами запроса.
  3. Таймаут — таймаут запроса в секундах. При превышении интервала — соединение разрывается, а запрос завершается ошибкой.
  4. Вкладка «Параметры» — параметры запроса. Таблица вида ключ-значение. Для «GET»-запроса таблица синхронизирована с URL сервиса, изменения в таблице влияют на URL, изменения URL в части параметров отражаются в таблице. Для «POST»-запроса данная вкладка доступна только при отсутствии тела запроса и по сути заменяет его, содержимое таблицы кодируется как JSON объект и размещается в теле.
  5. Вкладка «Тело запроса» — тело «POST-запроса.
  1. Вкладка «Заголовки» — таблица вида ключ-значение, содержит заголовки запроса.
  2. Кнопка «Типовые заголовки» — добавляет в таблице заголовков типовые заголовки.
  1. Вкладка «Куки» — таблица вида ключ-значение, позволяет сопровождать запрос куками.
    Конвертирует содержимое таблицы в строку вида key1=val1;key2=val2;key3=val3;....
  1. Вкладка «Редирект» — позволяет настроить прараметры редиректа:
    • «Переключатель «Выполнять переход» — включает / отключает функцию редиректа;
    • «Параметр «Максимум переходов» — ограничивает количество переходов при редиректе;
    • «Переключатель «Использовать заголовки основного запроса» — позволяет использовать в запросах перехода заголовки от основного запроса;
    • «Переключатель «Использовать логин и пароль основного запроса» — позволяет использовать в запросах перехода параметры аутентификации основного запроса.
  1. Вкладка «Авторизация» — позволяет настроить параметры авторизации для запроса.

    Поддерживаемые варианты:
  • «Basic access authentication» — логин и пароль;
  • заранее полученный токен. Можно указать имя ключа токена и место его размещения — тело / заголовки.
  • Токен получаемый предварительным запросом. Для этого варианта использования токена, нужно:
    • в секции «Получение»:
      1. поставить переключатель «Требуется автоматическое получение токена» в положение «Включено»;
      2. выбрать тип запроса авторизации «GET / POST»;
      3. указать URL запроса;
      4. можно указать значение логина, имя ключа логина и место его расположения;
      5. можно указать значение пароля, имя ключа пароля и место его расположения;
      6. иИмя ключа того параметра в котором ожидается токен, а также место его расположения.
    • в секции «Использование»:
      1. Указать имя ключа для полученного токена и его местоположение при запросе

Правило

Нижняя часть окна мастера отведена под функции работы с правилом разбора данных.
По кнопке «Открыть в конструкторе» мастер выполнит запрос по ранее настроенным параметрам и откроет полученные данные в конструкторе в режиме просмотра.

Если необходимо выполнить тестовый запрос нужно нажать кнопку:

Если запрос выполнится без ошибок, то мастер предложит сохранить полученные данные в файл.
Если во время выполнения запроса произошла ошибка — будет выведен лог исполнения вместе с подробным описанием ошибки.

Переключатель:

в верхней части окна, позволяет выполнять тестовые запросы в режиме отладки, при котором подробно фиксируются все параметры запроса, и по окончании выполнения показывается окно с полным списком имеющихся параметров.
Окно отладки:

Лог отладки

Лог отладки — инструмент для детального анализа процесса выполнения web запроса. Имеет в своём составе следующие компоненты:

  • «Консоль лога» — список событий с описаниями;
  • «Просмотр значений» — окно просмотра значения отдельных элементов запроса (тело запроса, тело ответа, заголовки запроса, заголовки ответа). Для отображения в окне просмотра значения, его нужно выбрать в списке запросов;
  • «Ответ как веб документ» — диалог для просмотра тела ответа в окне встроенного браузера;
  • «Список запросов» — таблица в которой строки — отдельные запросы, а колонки — значения элементов запроса доступные для просмотра (тело запроса, тело ответа, заголовки запроса, заголовки ответа). Для запроса без редиректа содержит одну строку. Если был осуществлён переход по адресам редиректа, то для каждого перехода (запроса) будет отдельная строка.

Повторное использование настроенного правила запроса к web сервису

По завершению этапа подготовки запроса к web сервису, необходимо настроить поля, которые впоследствии станут колонками в таблице хранилища. Эта таблица предназанчена для хранения даныых полученых из web сервиса.

Настройка повторной выгрузки

  1. Находясь в подготовленном окне запроса к web сервису, нажать кнопку «Открыть в конструкторе», произвести настройку полей и сохранить правило разбора.
  2. Закрыть окно «Конструктора» и окно «Источник данных: Web сервис».
  3. Перейти на вкладку «Настройка параметров». Если всё настроено верно, в данной вкладке отображаются порядка 20 строк параметров.

Стоит обратить внимание на строку 3 «ПравилоРазбора», если она пустая, необходимо перейти в параметры и из выпадающего списка выбрать настроенное ранее правило.

  1. Далее производится стандартная настройка правила выгрузки

Настройка источника

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

Состав выгрузки

По завершению всех настроек, источник и правило получения данных необходимо объединить в состав выгрузки.

Обратите внимание, что при выборе настроенного на web сервис правила, все параметры должны появится на вкладке «параметры запроса” данного состава выгрузки.

По завершению настройки состава, станет возможным многократный запрос к web сервису и сохранение полученных данных в таблицу хранилища.