Как настроить версии формата и объекты формата в Конвертации данных 3.0?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе с конфигурации «Конвертация данных 2.1» на «Конвертацию данных 3.0» разработчики часто сталкиваются с непониманием базовой архитектуры новой системы. Типичная ситуация: создается конвертация, загружается структура метаданных, но при попытке создать правило конвертации объекта выпадающий список «Объект формата» оказывается абсолютно пустым. Разберем детально, почему это происходит, как устроена работа с форматами данных EnterpriseData и какие требования предъявляются к базам-участникам обмена.

Архитектурный принцип КД 3.0: почему нет прямого обмена «Источник – Приемник»

В «Конвертации данных 2.1» правила создавались по схеме «Объект конфигурации А напрямую переносится в Объект конфигурации Б». В КД 3.0 концепция кардинально изменилась: обмен строится вокруг единого канонического формата — схемы XDTO (обычно это стандартизированный формат EnterpriseData).

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

  1. База-источник выгружает данные из своих объектов (справочников, документов) в промежуточный формат EnterpriseData (создаются правила выгрузки).
  2. Файл обмена представляет собой XML-документ, полностью валидный относительно схемы XDTO.
  3. База-приемник считывает данные из формата EnterpriseData и заполняет собственные объекты метаданных (создаются правила загрузки).

Если в КД 3.0 не загружен сам формат данных (XDTO-пакет) или он не привязан к конвертации, программа не знает, в какие сущности транслировать метаданные 1С. Именно по этой причине поле «Объект формата» остается пустым.

Пошаговый алгоритм: настройка формата и устранение пустого списка объектов

Разберем по шагам, как правильно подготовить форматы и настроить правила в КД 3.0.

  1. Получение схемы XDTO-пакета из конфигурации:

    Откроем конфигуратор типовой базы (например, «1С:Бухгалтерия предприятия» или «1С:Управление торговлей»). Перейдем в ветку метаданных Общие — XDTO-пакеты. Найдем пакет с именем вида EnterpriseData_1_3_... (рекомендуется использовать актуальные версии 1.3, 1.5 и выше). Нажмем по пакету правой кнопкой мыши и выберем команду «Экспорт XML-схемы», сохранив файл с расширением .xsd.

  2. Загрузка формата в КД 3.0:

    В информационной базе КД 3.0 перейдем в раздел «Форматы данных» и выполним загрузку сохраненной схемы XSD. Убедимся, что загрузились типы и свойства. Проверить это можно, открыв список Дерево объектов формата: там должны появиться структуры документов и справочников.

  3. Связывание конвертации с версией формата:

    Откроем карточку нашей конвертации. В табличной части поддерживаемых версий формата обязательно добавим строку с загруженной версией формата. Только после этого справочник типов формата станет доступен при создании правил конвертации объектов (ПКО).

  4. Создание правил конвертации:

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

Что делать, если в нетиповой конфигурации нет пакета EnterpriseData?

Если обмен настраивается для нетиповых, самописных баз или конфигураций без БСП, технология КД 3.0 требует обязательного внедрения инфраструктуры обмена. Сгенерированные правила КД 3.0 представляют собой программный модуль BSL (общий модуль менеджера обмена), который выполняется встроенной подсистемой обмена через универсальный формат.

В такой ситуации у разработчика есть два пути:

  1. Внедрение подсистемы обмена из БСП:

    Перенести в конфигурацию подсистему «Обмен данными» из Библиотеки стандартных подсистем (версии 2.3 и выше), загрузить XDTO-пакет EnterpriseData через Импорт XML-схемы и генерировать модуль обмена через КД 3.0.

  2. Создание собственного упрощенного XDTO-пакета:

    Если стандартный EnterpriseData избыточен, создадим в ветке XDTO-пакеты собственный формат данных с нужной структурой типов, экспортируем его в XSD и загрузим в КД 3.0 как пользовательский формат.

Альтернативные способы переноса данных между одинаковыми конфигурациями

Если задача заключается исключительно в разовом или периодическом переносе справочников между двумя абсолютно одинаковыми базами, использование КД 3.0 является избыточным. Рассмотрим более простые и эффективные альтернативы:

  1. Обработка «Выгрузка и загрузка данных XML»:

    Штатная универсальная обработка от фирмы «1С». Позволяет выгрузить любые объекты вместе со ссылочной целостностью в файл XML и загрузить в идентичную конфигурацию без написания правил и схем.

  2. Использование объекта «СериализаторXDTO»:

    Встроенный механизм платформы позволяет программно выгружать и считывать объекты 1С в XML одной строкой кода:

    
    // Пример программной записи объекта в XML-файл
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("C:\Exchange\data.xml");
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СсылкаНаОбъект.ПолучитьОбъект());
    ЗаписьXML.Закрыть();
    
    // Пример чтения объекта в базе-приемнике
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("C:\Exchange\data.xml");
    Объект = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
    Объект.Записать();
    ЧтениеXML.Закрыть();
    
  3. Планы обмена и распределенные базы:

    Для регулярного обмена между одинаковыми базами оптимально настроить типовой план обмена (РИБ) или разработать простой механизм регистрации изменений с последующей сериализацией в JSON или XML.

  4. Конвертация данных 2.1:

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

← На главную