Перейти к основному содержимому

Универсальный обмен данными в формате XML

Выгрузка и загрузка данных по правилам обмена между конфигурациями 1С.

к сведению

Форк типовой обработки «Универсальный обмен данными в формате XML» от 1С и доработки sir-job (https://infostart.ru/public/1176839/). Разрешение автора.

Назначение

Инструмент предназначен для обмена данными между информационными базами 1С по правилам обмена — штатному механизму платформы, используемому в планах обмена и типовых конфигурациях. В отличие от инструмента «Выгрузка загрузка XML с фильтрами», данный инструмент работает по правилам конвертации (файлы XML правил обмена), что позволяет переносить данные между базами с различающейся структурой метаданных.

Области применения:

  • Настройка и выполнение синхронизации данных по правилам обмена
  • Перенос данных между базами с разной структурой метаданных (конвертация объектов и полей)
  • Отладка правил конвертации объектов (ПКО) и правил конвертации свойств (ПКС)
  • Разовые миграции данных с обработчиками событий обмена

Основные возможности

  • Полноценная поддержка правил обмена — загрузка правил конвертации из файла (XML), работа с ПКО, ПКС, ПВД, ПОД, алгоритмами и обработчиками событий
  • Три режима выгрузки:
    • В файл — классическая выгрузка в XML-файл
    • В файловую ИБ-приёмник — прямая выгрузка в файловую базу 1С (клиент-серверное подключение)
    • Через HTTP-сервис — выгрузка в базу-приёмник через HTTP-сервис /hs/tools-ui-1c/exchange (инструмент «Публикуемые функции»)
  • Фильтрация объектов выгрузки — настройка отборов и параметров правил выгрузки данных
  • Отладка алгоритмов обмена — три режима отладки: без отладки, процедурный вызов, непосредственная вставка кода в обработчик
  • Внешние обработчики событий — подключение внешней обработки с обработчиками событий для кастомной логики
  • Автоматическая загрузка — настройка автоматической загрузки данных при открытии обработки
  • Сжатие файла обмена — архивация файла обмена с поддержкой пароля
  • Транзакционная выгрузка/загрузка — настройка количества объектов на транзакцию, использование транзакций для планов обмена
  • Работа с планами обмена — интеграция с узлами планов обмена, удаление регистрации изменений после выгрузки
  • Протоколирование — детальный протокол обмена с информационными сообщениями и сообщениями об ошибках

Интерфейс

Главная форма

Главная форма инструмента с вкладками выгрузки и загрузки, настройками правил обмена и параметрами подключения

1. Панель переключения режима

В верхней части формы расположены основные вкладки:

  • «Выгрузка» — настройка и выполнение выгрузки данных
  • «Загрузка» — настройка и выполнение загрузки данных

А также дополнительные страницы:

  • «Удаляемые данные» — настройка правил очистки данных (ПОД)
  • «Параметры» — таблица параметров обмена для передачи значений в правила конвертации
  • «Регистрация изменений» — управление узлами планов обмена

2. Параметры выгрузки

  • «Имя файла правил» — путь к файлу правил обмена (XML)
  • «Имя файла данных» / «Имя файла обмена» — путь к файлу выгружаемых данных или каталог ИБ-приёмника
  • «Период выгрузки» — даты начала и окончания для фильтрации выгружаемых данных
  • «Режим выгрузки» — выбор режима:
    • Выгрузка в файл (по умолчанию) — создание XML-файла данных
    • Выгрузка в ИБ-приёмник — прямая запись в файловую базу 1С (требуется указать каталог базы, пользователя, пароль)
    • Выгрузка через веб-сервис — передача данных через HTTP-сервис (требуется указать адрес публикации приёмника)
  • «Архивировать файл» — сжатие файла обмена в ZIP
  • «Пароль для сжатия / распаковки» — пароль на ZIP-архив файла обмена

3. Дерево правил выгрузки

Центральный элемент — дерево объектов метаданных, для которых настроены правила выгрузки:

  • Отображает иерархию: тип объекта → объект метаданных
  • Флаг «Включить» — признак участия в выгрузке
  • Колонки с настройками отборов и параметров для каждого объекта

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

Содержит:

  • «Безопасный режим» — исполнение алгоритмов в безопасном режиме
  • «Выводить в окно сообщений» — информационные сообщения
  • «Выводить в протокол» — логирование информационных сообщений и ошибок
  • «Использовать транзакции» — групповая запись объектов в транзакциях
  • «Использовать транзакции для планов обмена» — транзакционная выгрузка по планам обмена
  • «Вести дополнительный контроль записи в XML» — автоматическое удаление недопустимых символов

5. Вкладка загрузки

Вкладка загрузки с настройками режима загрузки, протоколом и параметрами подключения

  • «Имя файла правил» — файл правил обмена (может не требоваться, если правила встроены в файл данных)
  • «Имя файла обмена» — путь к файлу данных для загрузки
  • «Безопасная загрузка» — загрузка по правилам из отдельного файла
  • «Загружать данные в режиме обмена» — при установке флага для загружаемых объектов устанавливается ОбменДанными.Загрузка = Истина
  • «Обрезать строки справа» — удаление пробелов справа при загрузке строк
  • «Записывать регистры наборами записей» — пакетная запись регистров
  • «Продолжить загрузку при возникновении ошибки» — обработка ошибок без прерывания
  • Итоги регистров — кнопки «Отключить итоги» / «Включить итоги» для ускорения загрузки больших объёмов

6. Параметры подключения ИБ-приёмника

При выборе режима «Выгрузка в ИБ-приёмник» или «Выгрузка через веб-сервис» становятся доступными поля:

  • Адрес публикации приёмника — URL веб-сервиса (для HTTP-режима)
  • Тип ИБ — файловая / клиент-серверная
  • Каталог ИБ / сервер + имя базы — параметры подключения
  • Пользователь / Пароль — учётные данные для подключения к базе-приёмнику
  • Версия платформы — версия платформы 1С базы-приёмника
  • Аутентификация Windows — использование NTLM-аутентификации

Панель настройки подключения к базе-приёмнику при прямой выгрузке

7. Отладка алгоритмов

Инструмент содержит три режима отладки алгоритмов обмена:

РежимОписание
0 — Без отладкиШтатное выполнение алгоритмов
1 — Процедурный вызовВызов алгоритмов как процедур с отслеживанием
2 — Процедурный вызов с параметрамиВызов обработчиков с передачей параметров
3 — Непосредственная вставка кодаПодстановка кода алгоритма непосредственно в код обработчика

Режим отладки позволяет разработчику правил обмена пошагово проверить корректность алгоритмов конвертации.


Работа с инструментом

Подготовка к обмену

Перед началом обмена необходимо подготовить файл правил обмена — XML-файл, содержащий правила конвертации объектов (ПКО), правил конвертации свойств (ПКС), правил выгрузки данных (ПВД), правил очистки данных (ПОД), а также алгоритмы и обработчики событий обмена. Правила создаются в конфигураторе через меню «Конвертация данных» или в специализированных конфигурациях (например, «Конвертация данных 2.0/2.1»).

Выгрузка данных

  1. Переключитесь на вкладку «Выгрузка»
  2. Укажите файл правил обмена
  3. Выберите режим выгрузки:
    • В файл — укажите путь к выходному XML-файлу
    • В ИБ-приёмник — укажите каталог файловой базы, пользователя и пароль
    • Через веб-сервис — укажите адрес публикации (например, http://server/base), настройте аутентификацию
  4. При необходимости задайте период выгрузки
  5. Настройте параметры правил выгрузки и отборы в дереве правил (подробнее — в разделе «Настройка отборов объектов» ниже)
  6. Нажмите «Выгрузить данные»
  7. После завершения откроется протокол обмена с детальной информацией

Настройка отборов выгружаемых объектов

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

Как настроить отбор:

  1. В дереве правил выгрузки выберите строку объекта метаданных (например, Справочник.Номенклатура)
  2. В колонке «Отбор» нажмите на ячейку — откроется редактор отборов СКД
  3. Добавьте необходимые условия отбора по любым реквизитам объекта:
    • Выберите поле (например, ЭтоГруппа, Наименование, Родитель)
    • Укажите вид сравнения: Равно, Не равно, В списке, Содержит, Заполнено и др.
    • Задайте значение отбора
  4. Для создания сложных условий объединяйте отборы в группы с логикой И / ИЛИ
  5. После сохранения отбора в колонке «Использовать отбор» автоматически установится флаг

Что происходит внутри:

При открытии редактора отборов инструмент:

  1. По строке дерева правил получает текст запроса из правил выгрузки данных (ПВД)
  2. Строит на его основе схему компоновки данных
  3. Инициализирует компоновщик настроек с доступными полями из схемы
  4. Загружает ранее сохранённые отборы (если есть)

Таким образом, доступные для отбора поля определяются автоматически на основе правил выгрузки — в отбор можно включить любое поле, присутствующее в ПВД для данного объекта.

Особенности:

  • Отборы сохраняются индивидуально для каждого объекта метаданных и восстанавливаются при повторном открытии обработки
  • Отбор можно отключить без потери настроек — снимите флаг «Использовать отбор»
  • Для быстрой очистки отбора используйте контекстное меню ячейки — кнопка «Очистить»
  • Отборы применяются только на этапе выгрузки, на загрузку они не влияют
  • Период выгрузки (даты начала/окончания) работает как дополнительный отбор для документов и периодических регистров — он задаётся отдельно в параметрах выгрузки, а не в индивидуальных отборах

Загрузка данных

  1. Переключитесь на вкладку «Загрузка»
  2. Укажите файл правил обмена (или снимите флаг, если правила встроены в файл данных)
  3. Укажите файл данных для загрузки
  4. Настройте параметры загрузки:
    • Режим обмена данными — установить ОбменДанными.Загрузка
    • Продолжать при ошибках — не прерывать загрузку при ошибках записи
    • Итоги регистров — отключить для ускорения
  5. Нажмите «Загрузить данные»

Прямая выгрузка через HTTP-сервис

Инструмент поддерживает прямую выгрузку данных через HTTP-сервис /hs/tools-ui-1c/exchange, который предоставляется HTTP-сервисом УИ_ПубликуемыеФункции (входит в состав подсистемы). Для использования:

  1. Убедитесь, что база-приёмник опубликована на веб-сервере и HTTP-сервис активен
  2. В обработке выберите режим «Выгрузка через веб-сервис»
  3. Укажите адрес публикации приёмника (например, http://server/ib-base)
  4. Настройте аутентификацию (пользователь/пароль)
  5. Нажмите «Тест подключения к веб-сервису» для проверки доступности
  6. Выполните выгрузку — данные будут переданы на приёмник и загружены автоматически

Работа HTTP-сервиса осуществляется по протоколу POST — файл данных передаётся в теле запроса, на стороне приёмника создаётся сессия обработки УИ_УниверсальныйОбменДаннымиXML, выполняющая загрузку.

Работа с планами обмена

На вкладке «Регистрация изменений» доступны:

  • Выбор узла плана обмена
  • Выгрузка изменений, зарегистрированных для узла
  • Тип удаления регистрации изменений после выгрузки:
    • Не удалять
    • Удалять успешно выгруженные
    • Удалять все (включая не прошедшие выгрузку)
    • Удалять кроме не выгруженных по ошибке
  • Количество объектов в транзакции при выгрузке для планов обмена

Программный интерфейс

Открытие обработки из кода

Обработка = Обработки.УИ_УниверсальныйОбменДаннымиXML.Создать();
Обработка.РежимОбмена = "Выгрузка"; // или "Загрузка"
Обработка.ИмяФайлаПравилОбмена = "C:\rules.xml";
Обработка.ИмяФайлаОбмена = "C:\data.xml";
Обработка.ДатаНачала = '20240101';
Обработка.ДатаОкончания = '20240630';
Обработка.ВыполнитьВыгрузку();

Программная загрузка

Обработка = Обработки.УИ_УниверсальныйОбменДаннымиXML.Создать();
Обработка.РежимОбмена = "Загрузка";
Обработка.ИмяФайлаОбмена = "C:\data.xml";
Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
Обработка.ВыполнитьЗагрузку();

Вызов HTTP-сервиса обмена

Адрес = "http://server/base/hs/tools-ui-1c/exchange";
Результат = УИ_КоннекторHTTP.Post(Адрес, ДвоичныеДанныеФайлаОбмена);

Формат файлов

  • Файл правил обмена — XML-файл, содержащий правила конвертации (ПКО, ПКС, ПВД, ПОД), алгоритмы и обработчики событий. Полностью совместим со стандартным форматом правил обмена 1С
  • Файл данных обмена — XML-файл с сериализованными данными, сжатый или обычный. Также может быть упакован в ZIP-архив. Формат соответствует механизму сериализации платформы 1С:Предприятие

Связанные инструменты