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