В процессе обмена данными между конфигурациями Управление торговлей 11 и Бухгалтерия предприятия 2.0 часто возникают ошибки, связанные с несовпадением версий правил конвертации данных (ПКД). Одной из самых распространенных является ошибка: Поле объекта не обнаружено (ВалютаВзаиморасчетов). Давайте разберем, почему это происходит и как устранить проблему.
Данная ошибка сигнализирует о том, что алгоритм выгрузки, прописанный в Правилах конвертации данных, пытается обратиться к свойству ВалютаВзаиморасчетов объекта Договор, которого в текущем релизе вашей конфигурации УТ 11 не существует. Чаще всего это происходит по двум причинам:
УТ 11 постоянно развивается, и структура данных меняется. Если вы используете старый файл XML для обмена, он будет пытаться искать поля там, где их уже нет.УТ 11 оформлен без указания договора или соглашения, система может пытаться обратиться к несуществующим полям, вызывая исключение при выполнении кода в обработчике ПриВыгрузкеСвойства.Прежде чем вмешиваться в программный код, необходимо убедиться, что вы используете самые свежие правила обмена. Всегда начинайте с этого шага:
1С на вашем сервере (обычно папка tmplts).УТ 11..xml, который отвечает за обмен с Бухгалтерией предприятия.Использование актуальных правил позволяет избежать «заплаток» в коде и обеспечивает стабильность работы механизма Конвертации данных 2.0.
Если обновление правил невозможно или ошибка сохраняется из-за специфики вашей настройки учета, можно внести изменения непосредственно в модуль обработки КонвертацияОбъектовИнформационныхБаз. Этот метод позволяет «подменить» логику обращения к полю в процессе выгрузки.
Для исправления ситуации выполните следующие шаги:
КонвертацияОбъектовИнформационныхБаз в режиме Конфигуратора.ВыгрузитьСвойства.Выполнить(ПКС.ПриВыгрузке) вставьте следующий фрагмент:
Если ПКС.Наименование = "Договор --> ДоговорКонтрагента" И ПКС.Имя = "11" Тогда
ПКС.ПриВыгрузке = СтрЗаменить(ПКС.ПриВыгрузке, "ВходящиеДанные.ВалютаВзаиморасчетов", "Источник.Соглашение.ВалютаВзаиморасчетов");
КонецЕсли;
Что мы сделали? Мы перехватили выполнение правила для конкретного ПКС (Правило Конвертации Свойства) и динамически заменили обращение к несуществующему полю ВходящиеДанные.ВалютаВзаиморасчетов на корректное обращение к объекту Источник.Соглашение.ВалютаВзаиморасчетов. Это позволяет системе получить значение валюты из Соглашения, что является корректным для текущей архитектуры УТ 11.
Для того чтобы обмен данными проходил успешно, мы рекомендуем придерживаться следующих правил:
УТ 11 некоторые документы могут проводиться без указания Договора, однако для БП 2.0 это поле является критически важным для бухгалтерского учета. Убедитесь, что все документы возвратов содержат корректно заполненные аналитики.УТ 11 и морально устаревшей БП 2.0 требует внимательного отношения к соответствию версий. Если функционал БП 2.0 ограничивает корректную передачу данных, рассмотрите возможность перехода на БП 3.0, где правила обмена поддерживаются производителем гораздо более активно.Следуя этим шагам, вы сможете восстановить работоспособность синхронизации и продолжить работу с обменом данными без критических ошибок.