Как исправить ошибку «Тип не определен (СправочникСсылка.УпаковкиЕдиницыИзмерения)» при обмене данными между 1С:Розница и 1С:Управление торговлей?

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

При настройке или использовании типового обмена данными между конфигурациями 1С:Розница 2.2 и 1С:Управление торговлей 3.1 (в том числе локализаций для Казахстана) пользователи часто сталкиваются с аварийной остановкой процесса. Программа выдает диагностическое сообщение: Ошибка в базе-корреспонденте: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(8442)}: Тип не определен (СправочникСсылка.УпаковкиЕдиницыИзмерения). В этой статье мы подробно разберем, почему возникает эта ситуация, и как ее исправить, опираясь на практический опыт решения подобных инцидентов.

Выясним причину ошибки

Для начала проанализируем техническую сторону вопроса. Ошибка происходит в универсальном механизме обмена данными, который базируется на Библиотеке стандартных подсистем (БСП). Система пытается программно получить тип объекта метаданных по его строковому имени, используя встроенную функцию Тип().

Рассмотрим фрагмент кода, где обычно происходит сбой:


// В модуле обработки КонвертацияОбъектовИнформационныхБаз
СтруктураСвойств = Менеджеры[Тип(ТипИсточника)];

Если переменная ТипИсточника или ТипПриемника содержит строку "СправочникСсылка.УпаковкиЕдиницыИзмерения", а в текущей конфигурации справочник с таким именем отсутствует (например, он был переименован или удален в новом релизе), функция Тип() возвращает Неопределено. Это приводит к тому, что обращение к коллекции Менеджеры вызывает исключение, и обмен прерывается.

Почему справочник «исчез»? В старых редакциях УТ и Розницы справочник упаковок и единиц измерения часто назывался именно УпаковкиЕдиницыИзмерения. В процессе эволюции конфигураций разработчики 1С перешли к более сложной структуре, разделив упаковки номенклатуры и базовые единицы. В современных версиях этот справочник может называться УпаковкиНоменклатуры, а старый тип остается только в «памяти» настроек обмена или правилах.

Решение 1: Очистка регистра «Соответствия объектов информационных баз»

Как показывает практика, чаще всего проблема кроется не в самих правилах обмена (файле XML), а в накопленных данных о сопоставлении объектов. Проанализируем ситуацию: если ранее обмен работал, а потом перестал, значит в базе накопились записи, ссылающиеся на старые метаданные.

Выполним следующие шаги для исправления ситуации через регистр сведений:

  1. Откроем информационную базу (как Розницу, так и УТ) в режиме «1С:Предприятие».
  2. Перейдем в «Функции для технического специалиста» (или через «Все функции», если версия платформы старше).
  3. Найдем регистр сведений Соответствия объектов информационных баз.
  4. Установим отбор по полю Тип приемника или Тип источника, содержащему подстроку «Упаковки».
  5. Проанализируем найденные записи. Если мы видим строки, где явно указан тип СправочникСсылка.УпаковкиЕдиницыИзмерения, это и есть источник проблемы.
  6. Удалим эти ошибочные записи. При следующем обмене система попытается заново сопоставить объекты по полям поиска, но уже используя актуальные типы метаданных.

Важный момент: такие записи могут появиться, если в одной из баз обновление конфигурации прошло успешно, а во второй базе (корреспонденте) еще остались ссылки на старую структуру. Очистка регистра разрывает порочную связь с несуществующим типом.

Решение 2: Корректировка правил обмена в Конвертации Данных (КД 2.1)

Если очистка регистра не помогла или ошибка повторяется немедленно, необходимо проверить сами правила обмена. Рассмотрим ситуацию, когда правила (файл CorrespondentExchangeRules.xml) содержат жесткую ссылку на старый справочник.

Ранее мы видели пример структуры правил в формате XML:


<Группа>
    <Код>УпаковкиЕдиницыИзмерения</Код>
    <Наименование>УпаковкиЕдиницыИзмерения</Наименование>
    <Источник>СправочникСсылка.ЕдиницыИзмерения</Источник>
    <Приемник>СправочникСсылка.БазовыеЕдиницыИзмерения</Приемник>
</Группа>

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

  1. Загрузим текущие правила обмена в конфигурацию Конвертация данных 2.1.
  2. Выполним поиск по строке «УпаковкиЕдиницыИзмерения».
  3. Проверим все Правила выгрузки данных (ПВД) и Правила конвертации объектов (ПКО).
  4. Если обнаружено ПКО, где в качестве приемника или источника указан несуществующий справочник, его необходимо заменить на актуальный (например, СправочникСсылка.УпаковкиНоменклатуры).
  5. После внесения изменений выгрузим правила в XML-файл и загрузим их обратно в настройки синхронизации данных в 1С.

Однако помните, что ручная правка правил — это крайняя мера. Первым делом всегда стоит проверить наличие обновлений для обеих конфигураций, так как разработчики 1С выпускают актуальные правила вместе с релизами программ.

Решение 3: Очистка регистрации изменений

Иногда ошибка возникает из-за того, что в очереди на выгрузку «зависли» объекты, которые были зарегистрированы к обмену еще до обновления конфигурации. Проанализируем, как очистить очередь регистрации:

  1. Воспользуемся стандартной обработкой Регистрация изменений для обмена (входит в состав БСП).
  2. Выберем наш узел обмена.
  3. Найдем в списке объектов справочник Единицы измерения или Упаковки.
  4. Если для них зарегистрированы изменения, попробуем их отменить (удалить регистрацию) для всех записей этого типа.
  5. Попробуем выполнить обмен заново.

Это поможет, если система пытается отправить данные об объекте, структура которого изменилась, и приемник не может распознать старый формат типа.

Дополнительные рекомендации

Рассмотрим еще несколько важных аспектов, которые могут влиять на стабильность обмена:

Кэш метаданных: 1С кэширует структуру конфигурации для ускорения работы обмена. Если вы обновили программу, но ошибка Тип не определен сохраняется, попробуйте очистить серверный кэш (если база клиент-серверная) или удалить базу из списка и добавить ее заново (для очистки локального кэша).

Версии БСП: Обмен между Розницей и УТ сильно зависит от версии встроенной Библиотеки стандартных подсистем. Если одна база обновлена до последнего релиза, а вторая отстает на несколько лет, типовой обмен может работать некорректно. Старайтесь поддерживать актуальность обеих баз одновременно.

Особенности локализаций: Для пользователей в Казахстане (УТК и РТК) важно помнить, что релизы выходят с задержкой от российских версий. Если вы используете «универсальные» правила из интернета, они могут быть рассчитаны на более новую структуру метаданных, которой еще нет в вашей локализованной версии. Всегда проверяйте соответствие имен справочников в вашей конкретной конфигурации через дерево объектов метаданных в конфигураторе.

Подводя итог, можно сказать: наиболее эффективным и быстрым решением является анализ и очистка регистра соответствий объектов. Это позволяет устранить конфликты типов без необходимости глубокого погружения в разработку правил обмена в Конвертации данных.

← На главную