Как исправить ошибки синхронизации данных между 1С:Розница 2.2 и 1С:Управление торговлей 11.3?

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

При настройке и выполнении обмена данными между конфигурациями 1С:Розница 2.2 и 1С:Управление торговлей 11.3 специалисты часто сталкиваются с ситуацией, когда выгрузка данных из обеих баз проходит успешно, но на этапе приема возникают критические ошибки. Разберем основные причины сбоев, проанализируем журналы регистрации и рассмотрим пошаговые способы восстановления корректной синхронизации.

Причина 1. Ошибка «Тип не определен» при обмене по правилам конвертации (КД 2.0)

При использовании классического обмена по правилам в журнале регистрации могут появляться сообщения вида:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Тип не определен (ПеречислениеСсылка.ТипыОперацийЗаказаНаСборку)

или в базе Розницы:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Тип не определен (СправочникСсылка.ВидыАлкогольнойПродукции)

Выясним причину этой ошибки: в правилах конвертации (файл ExchangeRules.xml) присутствуют ссылки на объекты метаданных, которые либо были удалены, либо переименованы в используемом релизе конфигурации-приемника. Такая ситуация возникает, когда релизы баз не соответствуют версиям, под которые проектировались правила конвертации.

Разберем по шагам, как проверить и устранить данное несоответствие:

  1. Проверим заголовок правил обмена. Откроем файл ExchangeRules.xml в текстовом редакторе и найдем теги <Источник> и <Приемник>. В них жестко зафиксированы версии конфигураций, для которых предназначены текущие правила.
  2. Сверим релизы конфигураций. В обеих информационных базах перейдем в меню «Справка» — «О программе» и сопоставим номера релизов с требованиями из правил.
  3. Используем комплектные правила. Актуальные правила обмена и инструкцию по совместному использованию всегда следует брать из каталога шаблонов установленного релиза конфигурации (по пути вида C:\tmplts\1c\trade\<Релиз>\Синхронизация данных\Розница, ред 2.2 или C:\tmplts\1c\Retail\<Релиз>\Обмены данными\).
  4. Обновим правила в базе. В настройках синхронизации данных загрузим комплектные правила из файла и обязательно перезапустим сеанс 1С:Предприятия для сброса кэша структуры метаданных обмена.

Причина 2. Ошибка в общем модуле при загрузке документа «Отчет о розничных продажах» (EnterpriseData / КД 3.0)

Если синхронизация настроена через универсальный формат (EnterpriseData), на стороне «1С:Управление торговлей 11.3» при загрузке отчетов о продажах может возникать исключение:

{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль}: Значение не является значением объектного типа (Добавить)
НоваяСтрока = КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Добавить();

Проанализируем ситуацию: данная ошибка является программным дефектом некоторых релизов УТ 11.3. При конвертации объекта XDTO Документ.ОтчетОРозничныхПродажах в обработчике ПередЗаписьюПолученныхДанных алгоритм пытается добавить строку в коллекцию ДокументыСПодарочнымиСертификатами, однако само свойство в структуре ПараметрыКонвертации не было предварительно проинициализировано (имеет значение Неопределено).

Рассмотрим варианты исправления данной проблемы:

Вариант 1. Программная инициализация параметра через расширение или модуль конфигурации

Найдем в общем модуле МенеджерОбменаЧерезУниверсальныйФормат процедуру инициализации параметров (обработчик ПередКонвертациейОбъекта либо вызов в процедуре ПередКонвертациейУТКАУП). Перед обращением к свойству или в блоке инициализации контекста конвертации добавим проверку наличия и корректности типа коллекции:


Если Не КомпонентыОбмена.ПараметрыКонвертации.Свойство("ДокументыСПодарочнымиСертификатами") 
   Или КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами = Неопределено Тогда
    
    КомпонентыОбмена.ПараметрыКонвертации.Вставить("ДокументыСПодарочнымиСертификатами", Новый ТаблицаЗначений);
    КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Колонки.Добавить("Документ");
    КомпонентыОбмена.ПараметрыКонвертации.ДокументыСПодарочнымиСертификатами.Колонки.Добавить("ПодарочныйСертификат");
    
КонецЕсли;

Если требуется сохранить типовую конфигурацию на полной поддержке без снятия с замка, переопределим данный метод с помощью механизма расширений конфигурации, применив аннотацию &Перед или &Вместо для соответствующей процедуры общего модуля.

Вариант 2. Смена версии формата EnterpriseData

В параметрах подключения узла синхронизации перейдем в расширенные настройки формата обмена и выберем более раннюю поддерживаемую версию формата XDTO (например, EnterpriseData версии 1.4 или 1.3 вместо 1.5). В более ранних схемах алгоритм обработки подарочных сертификатов не обращается к неинициализированной таблице параметров.

Особенности обновления баз при подготовке к синхронизации

При выравнивании версий конфигураций необходимо учитывать следующие правила:

  1. Строгая последовательность релизов. При попытке обновить конфигурацию «Розница» через несколько релизов сразу может возникнуть ошибка Таблица не найдена "ВТТовары" в модуле ОбновлениеИнформационнойБазыЕГАИС. Это связано с тем, что не выполнились отложенные обработчики обновления данных. Обновление следует выполнять по цепочке релизов, указанной в файле ReadMe.txt каждого обновления.
  2. Завершение отложенных обработчиков. После каждого этапа обновления необходимо запустить базу в режиме «1С:Предприятие» и дождаться полного завершения процедур обновления в разделе «Администрирование» — «Обслуживание» — «Результаты обновления программы».
  3. Совместимость версий обмена. Для стабильной работы типового механизма синхронизации версии УТ 11 и Розницы 2.2 должны входить в рекомендуемую пару совместимости, опубликованную в сопроводительной документации к дистрибутиву конфигурации.
← На главную