При переходе с более ранних редакций конфигураций (например, 1С:Управление торговлей 11.1) на современные версии (1С:Управление торговлей 11.3, 11.4, 11.5 и 1С:Бухгалтерия предприятия 3.0) разработчики часто сталкиваются с неожиданной ситуацией: в макетах планов обмена больше нет привычных больших XML-файлов правил конвертации. Вместо этого в макете содержится короткий фрагмент кода или схемы. Разберем по шагам, почему изменилась архитектура обмена, где теперь хранятся правила и как их правильно дорабатывать.
Проанализируем технологическую причину таких изменений. В конфигурации УТ 11.1 обмен данными строился на базе технологии «1С:Конвертация данных 2.0». В этой концепции правила конвертации объектов выгружались в виде единого XML-файла и встраивались напрямую в макет соответствующего плана обмена.
Начиная с редакции УТ 11.2/11.3 и БП 3.0, типовые конфигурации фирмы «1С» были переведены на универсальный формат обмена EnterpriseData (концепция «1С:Конвертация данных 3.0»). В этой модели подход кардинально изменился:
Выясним точное местоположение программной логики обмена в конфигураторе. Код правил конвертации встроенных объектов в формат EnterpriseData вынесен в специализированные общие модули.
Основным модулем для формирования и разбора сообщений обмена является общий модуль МенеджерОбменаЧерезУниверсальныйФормат (или аналогичные версионные модули, например, с указанием конкретной версии формата МенеджерОбменаЧерезУниверсальныйФормат1_6, МенеджерОбменаЧерезУниверсальныйФормат1_10). Внутри этого модуля содержатся программные процедуры и функции, отвечающие за инициализацию правил, выгрузку свойств объектов в XML-пакеты XDTO и их обратную загрузку в реквизиты базы данных.
Рассмотрим, какими способами можно кастомизировать логику выгрузки и загрузки данных в современных конфигурациях.
В современных версиях платформы (начиная с БП 3.0.52 и актуальных релизов УТ) изменение логики обмена принято выполнять через механизм расширений. Для этого общий модуль менеджера обмена добавляется в расширение, после чего стандартные методы переопределяются или дополняются с использованием аннотаций &Вместо, &После или &Перед.
В библиотеке стандартных подсистем (БСП) предусмотрены специальные точки входа. Проанализируем модули МенеджерОбменаЧерезУниверсальныйФорматПереопределяемый и ОбменДаннымиПереопределяемый. В них содержатся экспортные процедуры, позволяющие перехватить данные непосредственно перед отправкой или после прочтения из формата без прямой модификации основного кода менеджера.
Если требуется спроектировать сложные правила с нуля или существенно изменить типовые, используется специализированная конфигурация «1С:Конвертация данных, редакция 3.0». На выходе она формирует не XML-файл, а готовый текст программного модуля для вставки в конфигурацию или расширение.
Рассмотрим подробнее вторую составляющую обмена — правила регистрации. Если вам требуется изменить только состав регистрируемых к отправке объектов или условия фильтрации (например, отправлять документы только по определенным организациям или подразделениям):
Правила для обмена данными.