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