При попытке настроить нетиповой или односторонний обмен данными в современных типовых конфигурациях 1С (включая 1С:Бухгалтерия предприятия 3.0) разработчики часто сталкиваются с неожиданной ситуацией: в составе метаданных планов обмена находятся только макеты с правилами регистрации объектов, а привычный макет ПравилаОбмена отсутствует.
Рассмотрим подробнее, с чем связаны такие изменения в архитектуре типовых решений, как теперь устроена конвертация данных и какими способами можно доработать или настроить собственный обмен.
Разберем эволюцию механизмов интеграции в решениях на платформе 1С:Предприятие 8.3. В старых конфигурациях и при использовании технологии Конвертация данных 2.0 (КД 2.1) правила конвертации объектов выгружались в виде XML-файлов и вшивались непосредственно в макеты планов обмена (например, ПравилаОбмена или ПравилаОбменаЗагрузка).
В современных конфигурациях фирма «1С» полностью перешла на Универсальный формат обмена (EnterpriseData) и концепцию Конвертации данных 3.0. Ключевые особенности этой архитектуры:
МенеджерОбменаЧерезУниверсальныйФормат.ПоОрганизации) хранятся исключительно XML-правила регистрации объектов (ПРО), указывающие, какие объекты и при каких условиях должны попадать в состав изменений для выгрузки.Проанализируем порядок работы с правилами при использовании формата EnterpriseData. В отличие от схемы КД 2.0, где конфигурации обменивались напрямую между своими структурами метаданных, в КД 3.0 используется промежуточный формат XDTO. Конвертация происходит в два этапа:
За обработку этих этапов отвечает программный код в модуле менеджера обмена. Поэтому правила конвертации хранятся в коде общего модуля МенеджерОбменаЧерезУниверсальныйФормат, а не в текстовых макетах.
Если требуется изменить стандартную логику выгрузки/загрузки или настроить нетиповой обмен, разберем по шагам правильный алгоритм действий:
ВыгрузкаТекстаМодуляМенеджераОбмена.epf выгружается текст модуля МенеджерОбменаЧерезУниверсальныйФормат.ОбменДаннымиПереопределяемый), что позволяет сохранить типовую конфигурацию на поддержке.Выясним, какие варианты есть у разработчика, если нужно организовать односторонний или произвольный обмен без сложной доработки EnterpriseData:
ВыгрузкаСтруктурыМетаданных.epf, настроить правила в «Конвертации данных 2.1» и использовать сформированный XML-файл в типовой обработке УниверсальныйОбменДаннымиXML или загрузить его в регистр сведений ПравилаДляОбменаДанными.AdditionalInfo, что позволяет передавать произвольные данные без изменения XDTO-схемы формата.