Как определить версию Конвертации данных (2.1 или 3.0) по файлу выгрузки XML и настроить обмен между УТ 10.3 и БП 3.0?

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

При работе с механизмами интеграции в конфигурациях «1С:Предприятие» регулярно возникает необходимость определить, с помощью какого инструмента были сформированы правила и сам файл обмена. В зависимости от версии инструмента — Конвертация данных 2.1 или Конвертация данных 3.0 — принципиально меняются логика загрузки, архитектура редактирования правил и порядок настройки интеграции. Рассмотрим подробнее, как отличить эти форматы по структуре XML, и разберем нюансы настройки обмена.

1. Определение версии Конвертации данных по заголовку XML-файла

Проанализируем структуру файлов выгрузки, создаваемых различными версиями системы:

Формат Конвертации данных 2.1 (КД 2.1):

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


<?xml version="1.0" encoding="UTF-8"?>
<ФайлОбмена ВерсияФормата="3.1" ...>
    <ПравилаОбмена>
        <ВерсияФормата>2.01</ВерсияФормата>
        ...

Значение атрибута ВерсияФормата="3.1" в теге ФайлОбмена указывает на версию подсистемы «Обмен данными» БСП, а тег ПравилаОбмена с версией 2.01 прямо подтверждает, что выгрузка выполнена по правилам Конвертации данных 2.1.

Формат Конвертации данных 3.0 (EnterpriseData / КД 3.0):

Файлы обмена, сформированные по концепции КД 3.0 (универсальный формат EnterpriseData), построены по совершенно иному стандарту XSD-схем. Корневым элементом выступает тег Message, а в заголовке прописывается пространство имен формата:


<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns:msg="http://www.1c.ru/SSL/Exchange/Message" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <msg:Header>
        <msg:Format>http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3</msg:Format>

Если в заголовке присутствует ссылка на пространство имен EnterpriseData, значит обмен работает через КД 3.0.

2. Возможность редактирования правил в конфигурации КД 3.0

Выясним, можно ли правила обмена формата КД 2.1 подгрузить и отредактировать в конфигурации «Конвертация данных 3.0».

Правила формата КД 2.1 нельзя дорабатывать в КД 3.0. Это обусловлено тем, что инструменты имеют принципиально разное назначение:

  1. Конфигурация «Конвертация данных 2.1» работает напрямую с объектами двух конкретных баз (источника и приемника) и генерирует XML-файл правил обмена.
  2. Конфигурация «Конвертация данных 3.0» настраивает сопоставление объектов конфигурации с единой промежуточной XSD-схемой EnterpriseData и формирует программный код модуля МенеджерОбменаЧерезУниверсальныйФормат.

Таким образом, для редактирования и отладки правил с тегом ПравилаОбмена необходимо использовать исключительно конфигурацию «Конвертация данных 2.1».

3. Специфика обмена между УТ 10.3 и БП 3.0

Рассмотрим ситуацию обмена между конфигурациями «Управление торговлей», ред. 10.3 (обычные формы) и «Бухгалтерия предприятия», ред. 3.0 (управляемые формы):

Конфигурация УТ 10.3 построена на обычных формах и штатно не содержит подсистему БСП с поддержкой формата EnterpriseData. По этой причине типовой обмен между УТ 10.3 и БП 3.0 осуществляется по правилам Конвертации данных 2.1 (через механизмы планов обмена или обработку «Универсальный обмен данными в формате XML»).

Если требуется организовать обмен по стандарту КД 3.0 для УТ 10.3, потребуется доработка конфигурации-источника — внедрение модулей БСП для работы с универсальным форматом и создание собственного менеджера обмена.

Для проверки и отладки файлов формата EnterpriseData в базе приемнике БП 3.0 можно воспользоваться встроенным инструментом. Перейдем в режим конфигуратора или через интерфейс: Главное меню — Все функции (или Сервис и настройки) — Обработки — Выгрузка загрузка EnterpriseData.

4. Назначение и настройка тега <ПоискПоТабличнымЧастям>

Проанализируем назначение тега ПоискПоТабличнымЧастям, который может встречаться в XML-файлах выгрузки КД 2.1.

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

В конфигурации Конвертация данных 2.1 эта логика настраивается в Правиле конвертации объектов (ПКО) следующим образом:

  1. Установкой флага «Поиск» у правил конвертации свойств (ПКС), входящих в состав табличных частей.
  2. Программным путем в обработчике события Поля поиска на стороне загрузки или выгрузки данных с помощью формирования структуры полей идентификации.
← На главную