При работе с обменом данными через универсальный формат в КД 3.0 часто возникают ситуации, когда после обновления конфигурации (например, БП 3.0) и добавления новых реквизитов в документы, правила обмена перестают «видеть» объекты. Система начинает выдавать ошибки о том, что ПКО (правило конвертации объекта) не найдено, хотя оно присутствует в конфигурации правил. Давайте разберемся, почему это происходит и как исправить ситуацию.
Первое, что нужно уяснить: обмен в КД 3.0 базируется на пакетах XDTO. Система обмена данными всегда работает по принципу «наименьшего общего знаменателя». Это означает, что если в базе-источнике используется формат версии 1.21, а в базе-приемнике максимальная поддерживаемая версия — 1.17, обмен будет происходить по правилам версии 1.17.
Если вы пытаетесь выгрузить данные, используя структуру версии 1.21, а приемник «не знает» о ней, возникают конфликты. Именно поэтому система отбрасывает правила, которые она считает неактуальными для текущей версии формата обмена.
Ключевым звеном в управлении версиями обмена является регистр сведений Настройки обмена данными XDTO. Если вы изменили состав выгружаемых полей, недостаточно просто обновить правила в КД 3.0. Необходимо, чтобы система понимала, по какой именно версии формата нужно обрабатывать конкретный объект.
Настройки обмена данными XDTO в базе-источнике. Проверьте, какая версия формата там указана для проблемного документа. Если там стоит 1.17, система будет игнорировать правила для 1.21.Пример добавления записи в регистр может выглядеть следующим образом:
// Пример логики для обновления версии формата для объекта
Запись = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи();
Запись.ОбъектМетаданных = Метаданные.Документы.СписаниеСРасчетногоСчета;
Запись.ВерсияФормата = "1.21";
Запись.Записать();
Даже если вы настроили регистр в источнике, обмен не заработает корректно, если база-приемник не «понимает» новые данные. Помните следующие правила:
1.21 добавлено новое свойство, а в XDTO-пакете приемника его нет, при попытке десериализации XML произойдет ошибка парсинга.1.21 в базу-приемник (через конфигуратор) и обеспечить наличие соответствующих правил.Рассмотрим ситуацию, когда вы успешно выгрузили данные из источника. Если на стороне приемника в XDTO не предусмотрена обработка нового свойства (например, «ВыплатыСамозанятым»), то процесс загрузки на стороне приемника прервется. Важно: правила конвертации — это только половина успеха. Вторая половина — это структура XDTO, которая определяет, какие данные могут быть приняты системой.
Алгоритм действий для успешного обмена:
XDTO в обеих базах.Настройки обмена данными XDTO соответствует целевой версии (например, 1.21).КД 3.0, убедившись, что они соответствуют новой структуре пакета.Соблюдая эти шаги, вы обеспечите стабильность обмена. Помните, что любые манипуляции с XDTO через расширения требуют повышенной осторожности, так как несовпадение схем данных — наиболее частая причина «падения» обмена.