При настройке и выполнении обмена данными между конфигурациями 1С:Розница 2.2 и 1С:Управление торговлей 11.3 специалисты часто сталкиваются с ситуацией, когда выгрузка данных из обеих баз проходит успешно, но на этапе приема возникают критические ошибки. Разберем основные причины сбоев, проанализируем журналы регистрации и рассмотрим пошаговые способы восстановления корректной синхронизации.
При использовании классического обмена по правилам в журнале регистрации могут появляться сообщения вида:
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Тип не определен (ПеречислениеСсылка.ТипыОперацийЗаказаНаСборку)
или в базе Розницы:
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Тип не определен (СправочникСсылка.ВидыАлкогольнойПродукции)
Выясним причину этой ошибки: в правилах конвертации (файл ExchangeRules.xml) присутствуют ссылки на объекты метаданных, которые либо были удалены, либо переименованы в используемом релизе конфигурации-приемника. Такая ситуация возникает, когда релизы баз не соответствуют версиям, под которые проектировались правила конвертации.
Разберем по шагам, как проверить и устранить данное несоответствие:
ExchangeRules.xml в текстовом редакторе и найдем теги <Источник> и <Приемник>. В них жестко зафиксированы версии конфигураций, для которых предназначены текущие правила.C:\tmplts\1c\trade\<Релиз>\Синхронизация данных\Розница, ред 2.2 или C:\tmplts\1c\Retail\<Релиз>\Обмены данными\).Если синхронизация настроена через универсальный формат (EnterpriseData), на стороне «1С:Управление торговлей 11.3» при загрузке отчетов о продажах может возникать исключение:
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль}: Значение не является значением объектного типа (Добавить)
НоваяСтрока = КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Добавить();
Проанализируем ситуацию: данная ошибка является программным дефектом некоторых релизов УТ 11.3. При конвертации объекта XDTO Документ.ОтчетОРозничныхПродажах в обработчике ПередЗаписьюПолученныхДанных алгоритм пытается добавить строку в коллекцию ДокументыСПодарочнымиСертификатами, однако само свойство в структуре ПараметрыКонвертации не было предварительно проинициализировано (имеет значение Неопределено).
Рассмотрим варианты исправления данной проблемы:
Вариант 1. Программная инициализация параметра через расширение или модуль конфигурации
Найдем в общем модуле МенеджерОбменаЧерезУниверсальныйФормат процедуру инициализации параметров (обработчик ПередКонвертациейОбъекта либо вызов в процедуре ПередКонвертациейУТКАУП). Перед обращением к свойству или в блоке инициализации контекста конвертации добавим проверку наличия и корректности типа коллекции:
Если Не КомпонентыОбмена.ПараметрыКонвертации.Свойство("ДокументыСПодарочнымиСертификатами")
Или КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами = Неопределено Тогда
КомпонентыОбмена.ПараметрыКонвертации.Вставить("ДокументыСПодарочнымиСертификатами", Новый ТаблицаЗначений);
КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Колонки.Добавить("Документ");
КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Колонки.Добавить("ПодарочныйСертификат");
КонецЕсли;
Если требуется сохранить типовую конфигурацию на полной поддержке без снятия с замка, переопределим данный метод с помощью механизма расширений конфигурации, применив аннотацию &Перед или &Вместо для соответствующей процедуры общего модуля.
Вариант 2. Смена версии формата EnterpriseData
В параметрах подключения узла синхронизации перейдем в расширенные настройки формата обмена и выберем более раннюю поддерживаемую версию формата XDTO (например, EnterpriseData версии 1.4 или 1.3 вместо 1.5). В более ранних схемах алгоритм обработки подарочных сертификатов не обращается к неинициализированной таблице параметров.
При выравнивании версий конфигураций необходимо учитывать следующие правила:
Таблица не найдена "ВТТовары" в модуле ОбновлениеИнформационнойБазыЕГАИС. Это связано с тем, что не выполнились отложенные обработчики обновления данных. Обновление следует выполнять по цепочке релизов, указанной в файле ReadMe.txt каждого обновления.