Одной из наиболее распространённых задач является организация извлечения и доставки данных по скользящему окну из источника к получателю с секционированным хранением, без каких-либо предварительных преобразований.
Задача будет продемонстрирована на примере загрузки документа 1С «Заказ клиента». Для настройки загрузки данных из документа 1С потребуется выполнить несколько команд, так как документ в 1С имеет в структуре шапку и табличные части, в которых хранится вся информация.
В меню выбрать компонент «Staging», пункт «Команды», затем модель данных.
Для создания команды необходимо заполнить форму:
Для создания запроса к документу 1С нажмите кнопку «Создать».
В дереве объектов нужно найти нужный документ — «Заказ клиента». При раскрытии документа видна его структура: шапка (основные данные) и табличные части (детализированные данные). Для получения полной картины данных информации из одной шапки недостаточно — потребуется отдельно загрузить табличные части.
Следует выбрать документ и нажмите «Сформировать запрос». По умолчанию запрос формируется на встроенном языке 1С; если нужен SQL-запрос, переключите режим в соответствующий вариант перед генерацией.
При необходимости запрос может быть скорректирован.
На первом этапе настраивается загрузка данных шапки документа. Затем создается отдельная команда для загрузки табличной части — это обеспечит полноту и корректность данных в целевой системе.
После создания запроса производим его проверку: на этом этапе выполняется расчёт параметров, входящих в запрос, если таковые есть. Затем нажмите кнопку «Выполнить» и оцените полученные данные. Если данные соответствуют ожиданиям, нажмите «ОК».
Размер пакета данных установлен по умолчанию.
Для настройки секционирования включим опцию «Использовать секции» — появятся формы для настройки, где необходимо выполнить следующие действия:
Границы секционирования укажем через системные параметры, которые определяют начало месяца и конец месяца.
В сами параметры передаем число равное количеству дней с начала месяца по текущий день, и соответственно с конца месяца по текущий день.
Так как на тестовом источнике нет актуальных данных, то загрузим данные за 2022 год
Нажать кнопку «Создать». На этом процесс создания команды завершён.
Скопируем уже созданную команду и отредактируем её.
Для этого выбираем команду в таблице основного окна и нажимаем кнопку «Скопировать».
После этого форма создания/редактирования команды заполнится данными из выбранной команды — останется только отредактировать их:
Для этого необходимо понять, как шапка документа связана с его табличными частями. Используем тот же документ «Заказ клиент» и переходим в режим просмотра «ER-модели».
ER-модель позволит понять, по какому полю шапка и табличная часть связаны. Это необходимо для формирования запроса, так как табличная часть не имеет нужного поля с датой для настройки секционирования.
Перед формированием ER-модели необходимо выбрать «Режим визуализации» → «Детальная модель».
Выполняем запрос для построения модели.
После построения модели слева можно наблюдать структуру выбранного документа, а справа — справочники, на которые он ссылается, а также связи между ними.
Находим табличную часть «Товары» и шапку документа «Заказ клиента» для определения связи между ними.
Чтобы определить атрибуты, по которым связаны таблицы между собой необходимо воспользоваться прокруткой в таблицах и визуально отследить связь между атрибутами разных таблиц.
В 1С связь между шапкой документа и его табличной частью настраивается автоматически через атрибут «Ссылка» — системное поле-идентификатор документа.
Переходим к формированию запроса, переключив режим конструктора на «Код».
В дереве объектов 1С необходимо раскрыть документ «Заказ клиента» и выбрать в нём табличную часть «Товары». После чего нажать «Сформировать запрос».
Для добавления атрибута «Дата» к табличной части необходимо выполнить соединение с шапкой документа по атрибуту «Ссылка», после чего добавить в запрос атрибут «Дата» из шапки документа.
Проверим запрос и выполните его.
Необходимо убедиться, что атрибут «Дата» был добавлен и заполнен, после чего нажмите «ОК» для сохранения запроса и сохраняем команду.
Для их запуска переходим в пункт «Профили» и выбираем профиль.
Перед запуском профиля убедитесь, что включены только те команды, которые необходимы для загрузки. Чтобы запустить загрузку, нажмите кнопку «Загрузить» и подтвердить действие.
Для проверки данных в целевой системе перейти на вкладку «Данные» выбрать подключение. В древовидной структуре выделить таблицу, содержащую данные шапки, и нажать «Сформировать запрос».
Выполнить запрос и оценить полученные данные.
Для проверки данных из табличной части «Товары», выбираем нужную таблицу→ Сформировать запрос → Выполнить запрос и оценить полученные данные.
При реализации бизнес-логики необходимо в запросах учитывать взаимосвязь таблиц.
Настроенные команды могут запускаться на периодической основе — как в ручном режиме через веб-интерфейс, так и с помощью оркестратора. Результатом работы команды будет следующий сценарий:
Настройка загрузки документа 1С «Заказ клиента» с секционированным хранением данных завершена.