1. Разберемся, нужен ли нам новый план обмен и крупные доработки?
Большинство задач по корректировке существующего типового обмена данными не очень масштабные и сводятся к тому, что нужно:
● в существующих объектах обмена обмениваться еще несколькими реквизитами;
● добавить новые объекты к обмену;
● поменять правила обмена;
● поменять правила регистрации.
Первые два пункта потребуют корректировки пакета XDTO или создание нового пакета XDTO на основе имеющегося (чтобы облегчить дальнейшее обновление конфигурации). Кроме корректировки пакета XDTO, при добавлении нового объекта обмена потребуется включение его в состав плана обмена и включение типа данных в соответствующих подписках на событие (чтобы происходила регистрация к обмену).
Особенности создания нового пакета XDTO в расширении.
1) Находим существующий текущий пакет XDTO, последнюю версию. Например, это EnterpriseData_1_11_5 (у вас номер последней версии пакета будет уже другой). Этот пакет будем брать за основу. Сразу его добавлять в расширение нельзя, сначала нужно выполнить следующие пункты.
2) Находим и добавляем в расширение XDTO пакет ExchangeMessage (если этого не сделать и сразу добавить в расширение основной пакет, далее возможны проблемы)
3) В основной конфигурации делаем экспорт xml схемы пакета

Экспорт XML-схемы
4) В расширении делаем импорт xml схемы

Импорт XML-схемы
5) Переименовываем получившийся пакет, придумываем свой номер версии, он должен быть не менее текущего номера

Переименование пакета XDTO
6) Переименовываем URL пространство имен. В появившемся окне важно нажать “Да” (если на этот момент в расширении не будет добавленного пакета ExchangeMessage, то изменение пройдет некорректно)

Переименование URL

Выбор элемента, который нужно переименовать
7) В коде найти строки, добавляющие форматы обмена, сделать доработку на расширении для добавления вашего пакета (с директивой &После). Имя процедуры, имя модуля могут отличаться, советую по глобальному поиску поискать “1.11” (по номеру формата, который вы берете за основу).

Добавление версии для формата обмена
8) Возможно потребуется доработка формы узла плана обмена, для возможности выбора нового пакета, т.к. иногда на форме имена доступных форматов жестко прописаны.
Изменение правил обмена и правил регистрации делается в коде, в соответствующих общих модулях (МенеджерОбменаЧерезУниверсальныйФормат, МенеджерРегистрации), и сложностей это обычно не вызывает. Изменения могут быть в основной конфигурации или, как правило, на расширении.
Если предполагается использовать один обмен, либо несколько обменов, которые не противоречат друг другу (одни и те же объекты регистрируются аналогичным способом, правила обмена аналогичны), то, как правило, дорабатывают/создают новый пакет XDTO и дорабатывают код по правилам обмена и правилам регистрации. Глобальных доработок не требуется.
2. Новый план обмена нужен!
Когда же все таки нужен новый обмен, с созданием нового плана обмена, новых подписок на событие, новых общих модулей для правил обмена и правил регистрации?
Если нужно обмениваться данными с разными базами, по разным правилам, механизм обмена принципиально разный, и регистрируются к обмену различные объекты, по своим правилам для каждого обмена, правила обмена отличаются даже по одинаковым объектам (например, по справочникам “Контрагенты” и “Партнеры”, допустим, при одном обмене новые объекты создаются в случае, если они не найдены, а в другом нет), то все это можно решить только созданием нового плана обмена и сопутствующих ему объектов.
Рассмотрим шаги, которые потребуются при создании нового плана обмена на основе типового.
1) Находим типовой план обмена, который будем брать за основу, это план обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Копируем его, получившийся план обмена переименовываем по своему усмотрению.

Основной типовой план обмена
2) Меняем состав нового плана обмена.
3) Во всех модулях нового плана обмена ищем упоминание имени плана обмена, заменяем его на новое имя. Меняем везде - в модуле объекта, модуле менеджера, модулях форм. Изменений будет много. Например, вот код, который нужно менять:

Изменение имени плана обмена в коде
4) Для функционирования всех команд по работе с планом обмена, таких, как установка подключения, просмотр состава и т.д., нужно включить наш новый план обмена в тип команд.

Включение плана обмена в тип команд
Команды, которые вам потребуются:
ЗагрузитьПравилаКонвертацииОбъектов, ЗагрузитьПравилаРегистрацииОбъектов, НастройкиПодключения.
Возможно, вам потребуются другие команды, в зависимости от конфигурации.
5) Нужно “перепривязать” новый план обмена к новому менеджеру регистрации. Для начала создаем новый общий модуль копированием существующего общего модуля МенеджерРегистрации, переименовываем его. Затем в новом плане обмена в модуле менеджера заменяем подключением менеджера регистрации на свой модуль. Если вам подходит имеющийся модуль менеджера регистрации, то этот пункт можно пропустить.

Перепривязка плана обмена к новому менеджеру регистрации
6) Перепривязываем новый план обмена к новому формату (пакету XDTO), если это нужно. Указывается имя URL формата без номера версии, если при создании нового пакета XDTO меняли только номер версии, то тут изменений не будет, главное в пользовательском режиме при настройке выбрать нужный формат.

Перепривязка к новому формату XDTO
7) Нужны подписки на события для реализации механизма регистрации изменений. Потребуется либо изменение существующих подписок на события и соответствующих общих модулей, либо создание новых по аналогии с существующими. Можно создать новый общий модуль, создать новые подписки на событие по аналогии с существующими, код будет в новом общем модуле, и будет касаться только вашего нового плана обмена. Подписки на событие, которые нужно брать за основу (могут быть изменения в зависимости от конфигурации):
СинхронизацияДанныхЧерезУниверсальныйФорматРегистрация, СинхронизацияДанныхЧерезУниверсальныйФорматРегистрацияНабора, СинхронизацияДанныхЧерезУниверсальныйФорматРегистрацияУдаления
Вам потребуются процедуры вот такого плана:
Процедуры плана на изменение
8) Доработка кода в новом модуле с менеджером регистрации. Следует учитывать, что это новый механизм, по старым форматам регистрация идет по другому пути, как раньше, через xml правила регистрации из макета или отдельно загруженного файла. Начиная с формата “1.11” (и это прописано в коде), правила регистрации берутся из общего модуля, указанного в плане обмена в качестве менеджера регистрации
9) Доработка кода в новом модуле с правилами обмена. Этот пункт не должен вызывать сложностей, существует много литературы на эту тему.
В статье были рассмотрены те особенности доработки типового обмена, по которым не так много понятной информации в интернете. Это то, на что может уйти много времени, если разбираться во всем этом с нуля. Хотя на самом деле все не так сложно. Если понимать архитектуру типового решения, дальнейшие доработки правил обмена и правил регистрации не должны вызвать больших затруднений.