При настройке или выполнении регулярной синхронизации данных между конфигурациями «Управление торговлей 11» (УТ 11) и «Бухгалтерия предприятия 3.0» (БП 3.0) специалисты часто сталкиваются с критической ошибкой, которая полностью блокирует процесс выгрузки данных. Ошибка сопровождается техническим сообщением в журнале регистрации: Не найдено ПОД для объекта метаданных. Объект метаданных: Патенты. Давайте подробно разберем, почему возникает эта проблема и как ее устранить различными методами.
Анализируя структуру универсального формата обмена EnterpriseData, можно прийти к выводу, что проблема носит сугубо технический характер. Аббревиатура ПОД расшифровывается как Правило Обработки Данных. В механизме обмена за каждый объект метаданных (справочник, документ) отвечает определенное правило, которое описывает, как именно данные должны быть преобразованы в формат XML/XDTO для передачи в другую базу.
Ситуация со справочником Патенты возникла из-за рассинхронизации темпов разработки: объект Патенты был добавлен в метаданные конфигурации (например, при внедрении функционала учета для индивидуальных предпринимателей), но соответствующие правила обмена в модулях ОбменДаннымиXDTOСервер не были обновлены или были добавлены с ошибками. В итоге система «видит» объект, который нужно отправить, но «не знает», как его обработать, и выбрасывает исключение:
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6919)}: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку...
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(665)}: ПолучитьПравилоОбработкиДляОбъекта(КомпонентыОбмена, Объект, ПравилоОбработки);
Рассмотрим пошагово способы решения этой проблемы — от простых «обходных путей» до более сложных технических манипуляций.
Если вам необходимо срочно провести обмен (например, передать документы реализации или счета-фактуры), а данные по патентам не являются критически важными для текущего момента, мы можем временно исключить этот справочник из обмена. Проанализируем, как это сделать:
Патенты.Важный нюанс: После этих действий обмен должен пройти успешно. Однако, если вы создадите новый патент или измените существующий, он может снова автоматически зарегистрироваться к обмену. Поэтому этот метод требует периодического контроля, пока не будет установлено официальное исправление от «1С». Для выгрузки данных без прерывания сеанса из-за проблемных объектов можно использовать обработку выгрузки EnterpriseData с игнорированием ошибок.
Чтобы справочник Патенты не появлялся в списке выгрузки снова и снова, мы можем пойти дальше и настроить фильтрацию. В окне «Настройки синхронизации данных» выберем пункт Параметры синхронизации — Настроить правила отправки данных.
Если в вашей версии конфигурации доступна детальная настройка фильтров, попробуйте установить заведомо невыполнимое условие для справочника патентов. Однако чаще всего в типовых правилах EnterpriseData такая детальная настройка для справочников ограничена. В таком случае поможет только полное снятие с регистрации (Способ 1) или использование расширений.
Зачастую разработчики выпускают исправленные правила обмена (файлы .xml) быстрее, чем выходит полноценное обновление конфигурации. Посмотрим, как обновить логику обмена без обновления всей УТ 11:
ExchangeConfigs. Там обычно лежат файлы правил для различных версий формата.Это заставит систему использовать логику из внешнего файла, в котором ошибка с отсутствующим ПОД для патентов может быть уже исправлена.
Рассмотрим ситуацию, когда обновление конфигурации невозможно из-за доработок, а внешние правила не помогают. В сообществе 1С существуют готовые расширения-патчи. Суть их работы заключается в перехвате функции ПолучитьПравилоОбработкиДляОбъекта в модуле ОбменДаннымиXDTOСервер.
Программно это выглядит примерно так: в расширении создается процедура-префикс или процедура-вместо, которая проверяет тип объекта. Если тип объекта равен СправочникСсылка.Патенты, расширение просто возвращает пустую структуру или игнорирует вызов, предотвращая вызов исключения ВызватьИсключение.
Пример логики, которую можно внедрить через расширение:
&Вместо("ПолучитьПравилоОбработкиДляОбъекта")
Процедура ИСПР_ПолучитьПравилоОбработкиДляОбъекта(КомпонентыОбмена, ДанныеИлиТип, ПравилоОбработки)
Если ТипЗнч(ДанныеИлиТип) = Тип("СправочникОбъект.Патенты") Тогда
// Просто выходим, не вызывая ошибку
ПравилоОбработки = Неопределено;
Возврат;
КонецЕсли;
// Вызываем стандартный обработчик для остальных объектов
ПродолжитьВызов(КомпонентыОбмена, ДанныеИлиТип, ПравилоОбработки);
КонецПроцедуры
Иногда ошибка возникает из-за того, что в настройках обмена выбрана устаревшая версия формата (например, 1.7 или 1.8), в которой поддержка патентов еще не была предусмотрена на стороне приемника или источника. Проанализируем версию формата:
В новых версиях формата EnterpriseData состав объектов расширяется, и правила для справочника Патенты становятся стандартными, что устраняет конфликт «пустых правил».
Чтобы в будущем избежать подобных проблем при обмене между УТ 11 и БП 3.0, рекомендуем придерживаться следующих правил:
Подводя итог, отметим, что ошибка со справочником патентов — это классический «баг» релизов, связанный с переходом на новые системы налогообложения. Самым быстрым и безопасным способом для пользователя остается отмена регистрации изменений для данного справочника, а для системного администратора — установка соответствующего исправления (патча) через механизм расширений.