Как правильно обновить версию формата и настроить правила обмена в КД 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе с обменом данными через универсальный формат в КД 3.0 часто возникают ситуации, когда после обновления конфигурации (например, БП 3.0) и добавления новых реквизитов в документы, правила обмена перестают «видеть» объекты. Система начинает выдавать ошибки о том, что ПКО (правило конвертации объекта) не найдено, хотя оно присутствует в конфигурации правил. Давайте разберемся, почему это происходит и как исправить ситуацию.

Понимание принципа работы версий формата

Первое, что нужно уяснить: обмен в КД 3.0 базируется на пакетах XDTO. Система обмена данными всегда работает по принципу «наименьшего общего знаменателя». Это означает, что если в базе-источнике используется формат версии 1.21, а в базе-приемнике максимальная поддерживаемая версия — 1.17, обмен будет происходить по правилам версии 1.17.

Если вы пытаетесь выгрузить данные, используя структуру версии 1.21, а приемник «не знает» о ней, возникают конфликты. Именно поэтому система отбрасывает правила, которые она считает неактуальными для текущей версии формата обмена.

Решение проблемы: настройка регистра «Настройки обмена данными XDTO»

Ключевым звеном в управлении версиями обмена является регистр сведений Настройки обмена данными XDTO. Если вы изменили состав выгружаемых полей, недостаточно просто обновить правила в КД 3.0. Необходимо, чтобы система понимала, по какой именно версии формата нужно обрабатывать конкретный объект.

  1. Проверка записей в регистре: Зайдите в регистр Настройки обмена данными XDTO в базе-источнике. Проверьте, какая версия формата там указана для проблемного документа. Если там стоит 1.17, система будет игнорировать правила для 1.21.
  2. Ручная корректировка: Вы можете добавить или обновить записи в этом регистре программно. Важно, чтобы запись соответствовала актуальной версии формата, которую вы хотите использовать.

Пример добавления записи в регистр может выглядеть следующим образом:


// Пример логики для обновления версии формата для объекта
Запись = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи();
Запись.ОбъектМетаданных = Метаданные.Документы.СписаниеСРасчетногоСчета;
Запись.ВерсияФормата = "1.21";
Запись.Записать();

Синхронизация пакетов XDTO в обеих базах

Даже если вы настроили регистр в источнике, обмен не заработает корректно, если база-приемник не «понимает» новые данные. Помните следующие правила:

Почему обмен может завершиться ошибкой?

Рассмотрим ситуацию, когда вы успешно выгрузили данные из источника. Если на стороне приемника в XDTO не предусмотрена обработка нового свойства (например, «ВыплатыСамозанятым»), то процесс загрузки на стороне приемника прервется. Важно: правила конвертации — это только половина успеха. Вторая половина — это структура XDTO, которая определяет, какие данные могут быть приняты системой.

Алгоритм действий для успешного обмена:

  1. Актуализируйте пакеты XDTO в обеих базах.
  2. Проверьте, что запись в регистре Настройки обмена данными XDTO соответствует целевой версии (например, 1.21).
  3. Обновите правила конвертации объектов в КД 3.0, убедившись, что они соответствуют новой структуре пакета.
  4. Выполните повторную выгрузку и проверьте прием данных.

Соблюдая эти шаги, вы обеспечите стабильность обмена. Помните, что любые манипуляции с XDTO через расширения требуют повышенной осторожности, так как несовпадение схем данных — наиболее частая причина «падения» обмена.

← На главную