Как исправить ошибку «Не найдено ПОД для объекта метаданных» при добавлении документа в универсальный формат обмена 1С

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

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

При попытке выполнить выгрузку система генерирует исключение вида:

{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(4908)}: Не найдено ПОД для объекта метаданных. Объект метаданных: ... ВызватьИсключение ТекстОшибки;

Проанализируем причины возникновения этой проблемы и разберем по шагам правильный алгоритм добавления собственного объекта в универсальный формат обмена (EnterpriseData).

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

В отличие от классического обмена по правилам конвертации КД 2, механизм синхронизации через универсальный формат (КД 3 / EnterpriseData) строго регламентирован программным кодом подсистемы БСП и XDTO-пакетами. Ошибка появляется в следующих ситуациях:

  1. Отсутствует правило обработки данных (ПОД): Объект добавлен в состав плана обмена в конфигураторе и зарегистрирован к выгрузке, но подсистема обмена не знает, как его обрабатывать, так как для него не определено ПОД.
  2. Отсутствует правило конвертации объекта (ПКО): Не прописано сопоставление свойств и реквизитов документа 1С со свойствами объекта формата EnterpriseData.
  3. Не обновлен справочник идентификаторов: После добавления нового метаданного в конфигурацию система не выполнила обновление справочника ИдентификаторыОбъектовМетаданных.

Пошаговое решение проблемы

Рассмотрим, как правильно доработать конфигурацию для успешной выгрузки нового документа.

Шаг 1. Обновление идентификаторов метаданных

Перед прописыванием правил необходимо убедиться, что платформа зарегистрировала новый объект в служебном справочнике. Для этого запустите информационную базу в режиме «1С:Предприятие» под правами администратора и выполните процедуру обновления идентификаторов объектов метаданных (или запустите базу с параметром командной строки /C ОбновитьИдентификаторыОбъектовМетаданных).

Шаг 2. Добавление ПОД и ПКО в модуль обмена

Логика формирования правил обработки и конвертации данных при работе с универсальным форматом описана в общем модуле МенеджерОбменаЧерезУниверсальныйФормат (или МенеджерОбменаЧерезУниверсальныйФорматПереопределяемый).

Для добавления нового документа выполним следующие действия:

  1. Найдем в модуле МенеджерОбменаЧерезУниверсальныйФормат процедуру формирования правил обработки данных (ПОД).
  2. Зарегистрируем ПОД для нашего объекта, указав, в какой объект формата EnterpriseData должен конвертироваться документ (или используем существующий аналог формата).
  3. В процедурах создания правил конвертации объектов (ПКО) пропишем сопоставление реквизитов и табличных частей.

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

Шаг 3. Использование расширения конфигурации (рекомендуемый способ)

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

Посмотрим на пример добавления ПОД в расширении для процедуры заполнения правил:


&После("ПриЗаполненииПравилОбработкиДанных")
Процедура Расш1_ПриЗаполненииПравилОбработкиДанных(ПравилаОбработкиДанных)
    
    // Добавляем ПОД для собственного документа
    ПОД = ПравилаОбработкиДанных.Добавить();
    ПОД.Имя = "Документ_ВашСобственныйДокумент_Выгрузка";
    ПОД.ОбъектВыборки = Метаданные.Документы.ВашСобственныйДокумент;
    ПОД.ПКО = "Документ_ВашСобственныйДокумент_ПКО";
    
КонецПроцедуры

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

Альтернативные варианты интеграции

Если задача заключается в переносе всего нескольких документов и справочников между двумя базами с похожей структурой, использование тяжелого механизма EnterpriseData не всегда оправдано. Разберем альтернативные подходы:

  1. HTTP/REST-сервисы и JSON: Создание легких HTTP-сервисов в базах-приемниках и источниках. Данные передаются в формате JSON напрямую при проведении документов. Это полностью исключает зависимость от XDTO-пакетов и КД 3.
  2. Собственный план обмена + КД 2 в расширении: В расширение добавляется отдельный план обмена. Правила конвертации и регистрации создаются в программе «1С:Конвертация данных 2.1» и загружаются в обработку универсального обмена данными. Основная конфигурация при этом остается на полной поддержке.

Резюме

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

← На главную