Как исправить ошибку «Не определен Менеджер конвертации для версии формата обмена» при синхронизации 1С:УТ и 1С:Бухгалтерии?

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

При настройке и выполнении синхронизации данных между конфигурациями «1С:Управление торговлей» (редакции 11.2/11.3/11.4) и «1С:Бухгалтерия предприятия» (редакции 3.0) через универсальный формат EnterpriseData разработчики и администраторы нередко сталкиваются с аварийным завершением обмена.

В журнале регистрации или в окне сообщений об ошибках появляется исключительная ситуация следующего вида:


{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2697)}: Не определен Менеджер конвертации для версии формата обмена <1.0>.
ВызватьИсключение(ТекстОшибки);

Проанализируем механику работы обмена через формат EnterpriseData, разберем причины возникновения этой ошибки и рассмотрим способы ее устранения.

Причины возникновения ошибки

Универсальный формат обмена данными EnterpriseData развивается параллельно с выходом новых релизов конфигураций. Каждой версии формата (например, 1.0, 1.1, 1.2, 1.3, 1.5, 1.6 и т. д.) в конфигурации соответствуют свои пакеты XDTO и специальный общий модуль — менеджер конвертации, например МенеджерОбменаЧерезУниверсальныйФормат_1_2.

В процессе инициализации синхронизации происходит согласование версий:

  1. Базы обмениваются списками поддерживаемых форматов через процедуру определения версий в общем модуле ОбменДаннымиXDTOПереопределяемый.
  2. Выбирается максимальная поддерживаемая обеими базами версия формата.
  3. Если одна из конфигураций была обновлена до актуального релиза (например, «1С:Бухгалтерия предприятия 3.0»), разработчики типовых решений могли удалить поддержку устаревших версий (таких как 1.0 и 1.1) для оптимизации метаданных.
  4. Если база-источник (например, старый релиз «1С:Управление торговлей 11.2») пытается передать данные по протоколу версии 1.0, а в базе-приемнике соответствующий модуль конвертации отсутствует, вызывается исключение Не определен Менеджер конвертации.

Способ 1. Согласование версий формата через настройки синхронизации

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

Разберем по шагам порядок действий:

  1. Проверим поддерживаемые версии: Выясним, какие версии формата поддерживаются в используемом релизе УТ 11 (чаще всего релизы линейки 11.2 поддерживают форматы 1.1, 1.2 или 1.3).
  2. Создадим новую настройку со стороны обновленной базы: Рекомендуется инициировать создание настройки синхронизации со стороны более свежей базы (например, БП 3.0), указав версию формата обмена 1.2 или 1.3.
  3. Перенесем настройки в базу-корреспондент: Выгрузим файл настроек подключения и загрузим его в УТ 11. При прямом подключении (COM-соединение) параметры согласуются автоматически, но при возникновении трудностей лучше переключиться на обмен через общий каталог (сетевой каталог или FTP-ресурс).

Способ 2. Добавление недостающего менеджера конвертации (Backporting)

Если обновление устаревшей базы УТ 11 до актуального релиза невозможно из-за доработок, а свежая версия БП 3.0 уже не содержит старый менеджер формата, можно вернуть модуль конвертации в конфигурацию.

Рассмотрим порядок доработки конфигурации:

  1. Откроем в конфигураторе предыдущий релиз базы-приемника, где поддержка нужного формата еще присутствовала.
  2. Найдем и скопируем общий модуль вида МенеджерОбменаЧерезУниверсальныйФормат_1_0 в целевую базу.
  3. В общем модуле ОбменДаннымиXDTOПереопределяемый найдем процедуру регистрации версий формата и добавим строку регистрации возвращенной версии:
    
    Процедура ПриЗаполненииВерсийФормата(ВерсииФормата) Экспорт
        ВерсииФормата.Добавить("1.0");
        ВерсииФормата.Добавить("1.2");
        // Другие версии формата
    КонецПроцедуры
    
  4. Сохраним конфигурацию базы данных и повторим синхронизацию.

Способ 3. Диагностика ошибок через обмен файлами

При использовании прямого COM-подключения ошибки контекста серверных процедур могут маскироваться. Чтобы точно понять, на каком этапе происходит сбой, разберем переход на обмен через каталог:

  1. В настройках синхронизации выберем вариант передачи данных «Через сетевой каталог» или «Через каталог обмена».
  2. Выполним выгрузку из базы УТ 11. В каталоге будет сформирован файл сообщения обмена (XML).
  3. В заголовке сформированного XML-файла проверим тег версии формата: параметр FormatVersion должен соответствовать версиям, поддерживаемым приемником.
  4. Загрузим файл в базу БП 3.0 и проанализируем журнал регистрации в случае возникновения ошибок.

Устранение ошибки «Поле объекта не обнаружено» при переносе номенклатуры

После успешного запуска обмена и синхронизации справочников иногда возникает сопутствующая ошибка при перемещении элементов номенклатуры между группами: Поле объекта не обнаружено.

Выясним причину проблемы: при изменении родителя срабатывают типовые подписки на события синхронизации (например, ПередЗаписьюНоменклатурыДляОбмена), которые регистрируют изменения в планах обмена. Код обработчика может обращаться к реквизитам, характерным только для элементов номенклатуры (ставка НДС, единица измерения, тип номенклатуры), не выполняя проверку на группу.

Для исправления в модуле обработчика подписки необходимо добавить проверку на иерархию:


Если НЕ Источник.ЭтоГруппа Тогда
    // Обработка реквизитов, доступных только для элементов
    СтавкаНДС = Источник.СтавкаНДС;
Иначе
    // Логика обработки для папок (групп) номенклатуры
КонецЕсли;

Если требуется выполнить массовое перемещение номенклатуры в рабочей базе без остановки пользователей, можно временно отключить регистрацию изменений для узлов обмена с помощью установки свойства ОбменДанными.Загрузка = Истина в обработке группового изменения реквизитов, а затем зарегистрировать измененные группы вручную через обработку «Регистрация изменений для обмена данными».

← На главную