Требования
- Термин “расширение формата обмена” означает добавление объектов к текущей версии формата, а не расширение конфигурации.
- Возможность расширения состава обмена появилась начиная с версии 3.1.3 (выпущена в 2020 году).
- Схема XSD пакета XDTO для расширения формата должна быть одинаковая в обеих конфигурациях баз 1С, между которыми выполняется обмен. Даже порядок объектов должен совпадать.
Порядок действий
- Создать XDTO-пакет в расширении, позаимствовать нужные объекты. Добавить собственные поля и объекты в расширение
- Доработка модулей конфигурации для запуска обмена через расширение формата
- Доработка получения данных
Шаг 1. Создание XDTO-пакета
- Допустим, для расширения формата выбрана версия ED 1.17.3. Необходимо добавить в расширение базовый XDTO-пакет ExchangeMessage, еще пакет EnterpriseData_1_17_3. Также нужно позаимствовать все типы, к которым будут добавляться дополнительные поля или новые объекты.
-
Пусть название расширения будет EnterpriseData_1_17_3_ext. URI пространства имен базовых XDTO-пакетов нужно добавить к директивы импорта:
-
Например, если к переносу будет добавляться новое ключевое поле справочника Номенклатура с названием ЕдиницаИзмеренияДополнительная, нужно позаимствовать следующие типы значений (см. ниже на скриншоте). В момент заимствования они добавятся в расширение вместе с подчиненными полями. В расширении эти подчиненные поля нужно удалить. Результат должен выглядеть следующим образом:
Может возникнуть затруднение - как именно добавлять в расширение типы значений XDTO-пакетов? Найти эту возможность в интерфейсе затруднительно. Ни в одной инструкции, в том числе на ИТС, такой информации нет.
Кнопка в интерфейсе находится в верхнем меню:

Шаг 2. Доработка модулей конфигурации для запуска обмена через расширение формата
В общем модуле ОбменДаннымиПереопределяемый нужно добавить код в процедуру ПриПолученииДоступныхРасширенийФормата:

ПКС добавляем с помощью следующего кода:

При отправке нужно добавить это новое поле в ключевые свойства номенклатуры:

Шаг 3. Доработка получения данных
Рекомендуется в базу 1С - приемник данных устанавливать то же самое расширение, т.к. состав и порядок объектов в XDTO-пакете отправки и получения данных должны совпадать.
Необходимо добавить алгоритм получения данных в ПКО. Код может выглядеть следующим образом:
