Как устранить ошибку «Неизвестный тип объекта метаданных "Документ.ЗаказКлиента"» при синхронизации УТ и БП?

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

При настройке или выполнении синхронизации данных между конфигурациями «1С:Управление торговлей 11» и «1С:Бухгалтерия предприятия 3.0» через прямое подключение (COM-соединение) пользователи и администраторы нередко сталкиваются с ошибкой: Неизвестный тип объекта метаданных "Документ.ЗаказКлиента". Разберем по шагам, почему возникает эта ошибка и какими способами ее можно исправить.

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

Способ 1. Корректная инициализация синхронизации и смена ведущей стороны

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

  1. Запуск синхронизации из базы-источника (УТ): когда процесс выгрузки и загрузки стартует на стороне УТ, платформа инициализирует COM-подключение к БП. При этом обращение к собственным метаданным (включая Документ.ЗаказКлиента) происходит в локальном контексте УТ, где этот объект существует, а в БП передаются уже преобразованные данные универсального формата (EnterpriseData).
  2. Запуск со стороны БП: если обмен инициируется из БП, и при этом правила или регистрация изменений содержат прямые обращения к типам УТ в локальном контексте, платформа не находит тип в дереве метаданных БП и генерирует исключение.

Рекомендуется запускать регламентную синхронизацию на стороне «1С:Управление торговлей» либо настроить автоматический фоновый запуск по расписанию именно в базе УТ.

Способ 2. Проверка и регистрация COM-соединителя с учетом разрядности

После перевода баз с файлового режима на клиент-серверный вариант (например, PostgreSQL) серверные вызовы и регламентные задания начинают выполняться службой ragent. Если сервер 1С 64-разрядный (x64), он требует наличия зарегистрированной 64-битной библиотеки COM-соединителя.

Посмотрим, как правильно зарегистрировать библиотеку в операционной системе Windows. Откроем командную строку от имени администратора и выполним регистрацию библиотеки нужной разрядности:

  1. Для 64-разрядного сервера 1С:Предприятия: regsvr32 "C:\Program Files\1cv8\8.3.X.XXXX\bin\comcntr.dll"
  2. Для 32-разрядного сервера или клиентского приложения: regsvr32 "C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\comcntr.dll"

Важно: убедимся, что версия регистрируемой библиотеки comcntr.dll в точности совпадает с версией платформы, на которой запущен сервер 1С.

Способ 3. Очистка устаревшей регистрации изменений узла обмена

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

Разберем порядок очистки:

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

Способ 4. Обновление типовых правил конвертации и регистрации

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

  1. В настройках синхронизации данных перейдем по гиперссылке «Параметры синхронизации данных».
  2. В меню настройки правил выберем пункт «Загрузить типовые правила» (или «Использовать правила из конфигурации»).
  3. Выполним перезагрузку правил конвертации данных (КД) и правил регистрации объектов (ПРО) из макетов конфигурации для обоих узлов обмена.

Способ 5. Переход на современный транспорт обмена (Альтернативное решение)

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

  1. Обмен через общий сетевой каталог или FTP: базы выгружают и загружают XML-сообщения по стандарту EnterpriseData автономно, каждая в своем собственном контексте метаданных.
  2. Подключение через веб-сервис: опубликуем одну из баз на веб-сервере (IIS или Apache) и укажем адрес публикации в мастере настройки синхронизации второй базы. Этот способ обеспечивает прямое взаимодействие баз без использования сторонних DLL.
← На главную