Как исправить ошибку «Тип не определен (ПеречислениеСсылка.ВариантыОказанияУслуг)» при синхронизации УТ 11.4 и Розницы 2.2?

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

При настройке или выполнении регулярной синхронизации данных между конфигурациями «Управление торговлей» редакции 11.4 и «Розница» редакции 2.2 пользователи и администраторы часто сталкиваются со следующей критической ошибкой:

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

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

---

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

Для того чтобы понять, почему ломается обмен, проанализируем изменения в структуре метаданных конфигурации «Управление торговлей» начиная с релиза 11.4.5.54. В этой версии разработчики фирмы «1С» провели масштабный рефакторинг механизмов учета номенклатурных позиций с типом «Услуга».

В рамках оптимизации конфигурации предопределенное перечисление ВариантыОказанияУслуг было переименовано в УдалитьВариантыОказанияУслуг. Аналогичные изменения затронули и реквизиты справочников: например, реквизит ВариантОказанияУслуг в справочнике ВидыНоменклатуры стал называться УдалитьВариантОказанияУслуг.

Когда мы запускаем синхронизацию данных через КД 2.0 (Конвертация данных редакции 2.0), программа использует XML-файлы правил обмена. В конфигурации «Розница» версии 2.2.9.19 встроенные правила обмена все еще содержат обращения к старому типу метаданных — ПеречислениеСсылка.ВариантыОказанияУслуг.

В процессе загрузки данных на стороне «Управления торговлей» специализированный обработчик КонвертацияОбъектовИнформационныхБаз считывает правила обмена и пытается сопоставить типы данных источника и приемника. На строке 14921 происходит вызов стандартной функции платформы Тип():


// В обработке КонвертацияОбъектовИнформационныхБаз
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));

Поскольку в метаданных УТ 11.4.5 перечисления со старым именем больше не существует, функция возвращает значение Неопределено, что приводит к аварийному завершению работы и выводу сообщения об ошибке.

---

Вариант 1. Синхронное обновление конфигураций (Официальный путь)

Самый надежный и рекомендуемый способ решения проблемы — приведение релизов ваших информационных баз к совместимому состоянию. Разработчики регулярно обновляют правила синхронизации и включают их в состав дистрибутивов обновлений.

Проанализируем требования к совместимости релизов, которые содержатся в сопроводительных файлах к конфигурации «Розница»:

Таким образом, для восстановления работоспособности обмена стандартными средствами нам необходимо обновить конфигурацию «Розница» до релиза 2.2.9.20 или выше. После обновления метаданные и встроенные правила синхронизации автоматически придут в соответствие.

---

Вариант 2. Использование актуальных правил обмена из шаблонов УТ

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

Здесь важно разобраться в логике размещения файлов обмена, принятой у разработчиков 1С. Запомните важное правило: правила для обмена с базой-приемником всегда находятся в каталоге шаблонов базы-источника. Это означает следующее:

Выполним пошагово процесс извлечения и загрузки корректных правил:

  1. Перейдем в каталог шаблонов обновлений на компьютере, где установлена «Управление торговлей» версии 11.4.5.54. Обычно этот каталог располагается по следующему пути:
    C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1cv8\tmplts\1c\trade\11_4_5_54\
  2. Найдем в этой папке подкаталог с дополнительными файлами синхронизации:
    ...\AddFiles\Переходы с других конфигураций\Синхронизация данных\Розница, ред 2.2\
  3. В этой папке будет находиться архив Правила конвертации.zip. Распакуем его — внутри будут находиться файлы правил обмена (в формате XML), которые адаптированы под изменения релиза 11.4.5 и содержат корректные сопоставления типов (включая работу с удаленным перечислением).
  4. Запустим конфигурацию «Розница» в режиме «1С:Предприятие».
  5. Перейдем в меню Администрирование — Синхронизация данных — Настройки синхронизации данных.
  6. Откроем нашу настройку обмена с УТ, перейдем в параметры подключения и выберем пункт «Загрузить правила обмена».
  7. Укажем путь к распакованным файлам правил, которые мы только что извлекли из каталога шаблонов УТ, и выполним их загрузку.

После этого Розница начнет использовать корректные правила, которые учитывают новую структуру метаданных УТ 11.4.5, и ошибка сопоставления типов исчезнет.

---

Вариант 3. Ручное исправление правил обмена

Рассмотрим ситуацию, когда ваши базы значительно доработаны, правила обмена кастомизированы (например, через программу «1С:Конвертация данных 2.1»), и загрузка типовых правил сотрет ваши уникальные настройки. В этом случае мы можем исправить ошибку вручную прямо в XML-файле правил.

Выполним следующие шаги:

  1. В интерфейсе настройки синхронизации выгрузим текущие используемые правила обмена в файл на жесткий диск (получим XML-файл правил конвертации).
  2. Откроем полученный файл в любом продвинутом текстовом редакторе (рекомендуется использовать Notepad++, VS Code или встроенный текстовый редактор конфигуратора 1С).
  3. Воспользуемся функцией глобального поиска и замены (сочетание клавиш Ctrl + H).
  4. В поле «Найти» введем старый тип данных:
    ПеречислениеСсылка.ВариантыОказанияУслуг
  5. В поле «Заменить на» введем новое имя типа, которое теперь присутствует в УТ 11.4.5:
    ПеречислениеСсылка.УдалитьВариантыОказанияУслуг
  6. Нажмем кнопку «Заменить все».
  7. Дополнительно рекомендуется выполнить аналогичную замену для реквизитов справочника номенклатуры (если они задействованы в правилах):
    Найти: ВариантОказанияУслуг
    Заменить на: УдалитьВариантОказанияУслуг
  8. Сохраним изменения в XML-файле и загрузим его обратно в настройки синхронизации 1С.

Этот простой «костыль» позволит вам запустить обмен мгновенно, без изменения конфигураций и без потери ваших персональных настроек правил конвертации.

---

Вариант 4. Переход на универсальный формат обмена КД 3.0 (EnterpriseData)

Описанная выше проблема наглядно демонстрирует главный недостаток обменов, построенных по технологии КД 2.0: жесткую привязку правил конвертации к конкретным именам объектов метаданных в обеих базах. Любое переименование перечисления или реквизита разработчиками 1С неизбежно ломает весь процесс обмена данными.

Для того чтобы навсегда уйти от необходимости синхронно отслеживать и обновлять релизы конфигураций под требования правил обмена, мы рекомендуем перевести синхронизацию на технологию КД 3.0 (универсальный формат EnterpriseData).

Рассмотрим, как работает эта схема:

В этой схеме, если в УТ изменят имя перечисления на УдалитьВариантыОказанияУслуг, это затронет только внутренние правила самой УТ. База-отправитель (Розница) об этом изменении даже не узнает, так как она продолжает выгружать стандартный объект услуги в шину обмена, а УТ сама разберет его и запишет в измененные реквизиты. Это позволяет обновлять базы асинхронно и минимизирует риски возникновения подобных ошибок в будущем.

← На главную