Почему при синхронизации УТ 11 и БП 2 возникает ошибка «Поле объекта не обнаружено (ВалютаВзаиморасчетов)»?

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

В процессе обмена данными между конфигурациями Управление торговлей 11 и Бухгалтерия предприятия 2.0 часто возникают ошибки, связанные с несовпадением версий правил конвертации данных (ПКД). Одной из самых распространенных является ошибка: Поле объекта не обнаружено (ВалютаВзаиморасчетов). Давайте разберем, почему это происходит и как устранить проблему.

Разбор причин возникновения ошибки

Данная ошибка сигнализирует о том, что алгоритм выгрузки, прописанный в Правилах конвертации данных, пытается обратиться к свойству ВалютаВзаиморасчетов объекта Договор, которого в текущем релизе вашей конфигурации УТ 11 не существует. Чаще всего это происходит по двум причинам:

  1. Устаревшие правила обмена: Конфигурация УТ 11 постоянно развивается, и структура данных меняется. Если вы используете старый файл XML для обмена, он будет пытаться искать поля там, где их уже нет.
  2. Отсутствие данных в объекте: Даже при актуальных правилах, если документ в УТ 11 оформлен без указания договора или соглашения, система может пытаться обратиться к несуществующим полям, вызывая исключение при выполнении кода в обработчике ПриВыгрузкеСвойства.

Метод 1: Обновление правил обмена (Рекомендуемый путь)

Прежде чем вмешиваться в программный код, необходимо убедиться, что вы используете самые свежие правила обмена. Всегда начинайте с этого шага:

  1. Зайдите в каталог шаблонов обновлений 1С на вашем сервере (обычно папка tmplts).
  2. Найдите актуальный релиз конфигурации УТ 11.
  3. Внутри папки релиза найдите файл, обычно имеющий расширение .xml, который отвечает за обмен с Бухгалтерией предприятия.
  4. Загрузите этот файл в настройки синхронизации в обеих информационных базах.

Использование актуальных правил позволяет избежать «заплаток» в коде и обеспечивает стабильность работы механизма Конвертации данных 2.0.

Метод 2: Программная корректировка обработчика (Временное решение)

Если обновление правил невозможно или ошибка сохраняется из-за специфики вашей настройки учета, можно внести изменения непосредственно в модуль обработки КонвертацияОбъектовИнформационныхБаз. Этот метод позволяет «подменить» логику обращения к полю в процессе выгрузки.

Для исправления ситуации выполните следующие шаги:

  1. Откройте обработку КонвертацияОбъектовИнформационныхБаз в режиме Конфигуратора.
  2. Найдите процедуру ВыгрузитьСвойства.
  3. Перед строкой исполнения кода Выполнить(ПКС.ПриВыгрузке) вставьте следующий фрагмент:

Если ПКС.Наименование = "Договор --> ДоговорКонтрагента" И ПКС.Имя = "11" Тогда
    ПКС.ПриВыгрузке = СтрЗаменить(ПКС.ПриВыгрузке, "ВходящиеДанные.ВалютаВзаиморасчетов", "Источник.Соглашение.ВалютаВзаиморасчетов");
КонецЕсли;

Что мы сделали? Мы перехватили выполнение правила для конкретного ПКС (Правило Конвертации Свойства) и динамически заменили обращение к несуществующему полю ВходящиеДанные.ВалютаВзаиморасчетов на корректное обращение к объекту Источник.Соглашение.ВалютаВзаиморасчетов. Это позволяет системе получить значение валюты из Соглашения, что является корректным для текущей архитектуры УТ 11.

Советы по предотвращению ошибок в будущем

Для того чтобы обмен данными проходил успешно, мы рекомендуем придерживаться следующих правил:

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

← На главную