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