При реализации интеграции между нетиповой конфигурацией на обычных формах и типовой 1С:Бухгалтерия предприятия 3.0 перед разработчиком встает принципиальный выбор архитектуры: использовать классическую Конвертацию данных 2.0 (2.1) или перейти на современную Конвертацию данных 3.0, работающую через формат EnterpriseData. Разберем ключевые различия этих инструментов, их сильные и слабые стороны, а также выберем оптимальный вариант под конкретные условия задачи.
Для понимания разницы проанализируем принципы работы каждого инструмента:
XML), в котором жестко описаны правила конвертации объектов (ПКО) и свойств (ПКС). Обработка УниверсальныйОбменДаннымиXML интерпретирует этот файл и выполняет алгоритмы на встроенном языке с помощью динамического исполнения кода. Если в одной из баз меняется реквизитный состав, правила требуют ручной корректировки.XDTO. Каждая база взаимодействует не с соседней конфигурацией, а со стандартизированным форматом EnterpriseData. Источник выгружает данные в формате XML/XDTO, а приемник считывает их и загружает в свои объекты по собственным правилам конвертации.Рассмотрим особенности применения КД 2.0 при наличии самописной базы на обычных формах:
УниверсальныйОбменДаннымиXML.Конвертация данных 3.0 предлагает мощный механизм интеграции, однако накладывает жесткие требования к архитектуре баз данных. Проанализируем ограничения:
EnterpriseData или упаковки данных в структуру ДополнительныеРеквизиты (AdditionalInfo).МенеджерОбменаЧерезУниверсальныйФормат). Это позволяет использовать штатные точки останова и замер производительности.Если поставлена цель использовать возможности КД 3.0 на стороне БП 3.0 (где правила уже встроены и поддерживаются разработчиками 1С), но в нетиповую базу внедрить БСП нельзя, рассмотрим альтернативный подход. Нетиповая база может напрямую формировать файл выгрузки по схеме EnterpriseData с помощью объектов платформы ЗаписьXML и ФабрикаXDTO.
Посмотрим на пример базовой сериализации данных через фабрику XDTO:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ПутьКФайлу, "UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
// Инициализируем корневой элемент сообщения формата EnterpriseData
ЗаписьXML.ЗаписатьНачалоЭлемента("Message", "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8");
// Пример формирования объекта XDTO для выгрузки контрагента
ТипКонтрагента = ФабрикаXDTO.Тип("http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8", "Справочник.Контрагенты");
ОбъектXDTO = ФабрикаXDTO.Создать(ТипКонтрагента);
ОбъектXDTO.Наименование = ВыборкаКонтрагентов.Наименование;
ОбъектXDTO.ИНН = ВыборкаКонтрагентов.ИНН;
ОбъектXDTO.КПП = ВыборкаКонтрагентов.КПП;
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO);
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
Сформированный файл загружается в БП 3.0 стандартной обработкой ВыгрузкаЗагрузкаEnterpriseData (раздел Все функции / Функции для технического специалиста - Обработки).
Подведем итог и определим порядок действий при выборе технологии:
УТ 11, ЗУП 3.1, БП 3.0), где БСП уже внедрена во все участники обмена.БП 3.0 необходимо обновлять на новые релизы без регулярной правки правил обмена.EnterpriseData без полного внедрения подсистем БСП.