Как исправить ошибку «Поле объекта не обнаружено (ПравилаВыгрузкиПодразделений)» при обмене между УТ 11.5 и БП 2.0?

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

С выходом обновлений для конфигурации «Управление торговлей 11.5» многие пользователи столкнулись с критической проблемой при попытке выполнить привычную синхронизацию данных с «Бухгалтерией предприятия 2.0». Ошибка возникает внезапно, даже если настройки обмена не менялись месяцами. В этой статье мы подробно разберем причины возникновения этой коллизии и рассмотрим несколько способов её решения, от простого изменения настроек до программной правки правил конвертации.

Проанализируем ситуацию: почему перестал работать обмен

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

Ошибка в обработчике события ПередПолучениемИзмененныхОбъектов (конвертация) ОписаниеОшибки = Поле объекта не обнаружено (ПравилаВыгрузкиПодразделений)

Проанализируем причину этого сбоя. Конфигурация БП 2.0 (особенно редакция ПРОФ) официально снята с поддержки, за исключением версии КОРП. Разработчики фирмы «1С» в актуальных релизах УТ 11.5 обновили встроенные правила обмена, ориентируясь на актуальные механизмы БСП (Библиотеки стандартных подсистем). Проблема заключается в том, что правила обмена для БП 2.0 были унифицированы. Теперь они содержат обращения к реквизиту ПравилаВыгрузкиПодразделений, который присутствует в плане обмена версии КОРП, но отсутствует в версии ПРОФ.

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

Способ 1. Программная корректировка правил конвертации (Рекомендуемый)

Рассмотрим самый надежный способ, который позволит продолжить работу в БП 2.0 ПРОФ без радикальных изменений в конфигурации. Нам потребуется внести изменения непосредственно в XML-файл правил конвертации. Разберем этот процесс по шагам.

Шаг 1. Получение правил. Перейдем в настройки синхронизации данных в УТ 11.5. Выберем нашу настройку с БП 2.0 и найдем пункт «Загрузить правила конвертации объектов». В открывшемся окне выгрузим текущие правила в файл на диск (обычно это ExchangeRules.xml).

Шаг 2. Использование инструмента «Конвертация данных 2.1». Для корректной правки нам понадобится база с конфигурацией «Конвертация данных». Загрузим туда наши правила. После загрузки перейдем в дерево правил и найдем раздел «Глобальные обработчики».

Шаг 3. Локализация и исправление ошибки. Нам нужен обработчик события ПередПолучениемИзмененныхОбъектов. Проанализируем его код. Мы увидим строку, которая вызывает сбой:


Параметры.Вставить("ПравилаВыгрузкиПодразделений", УзелДляОбмена.ПравилаВыгрузкиПодразделений);

Эта строка безапелляционно обращается к реквизиту ПравилаВыгрузкиПодразделений. Чтобы сделать код универсальным, нам необходимо добавить проверку на существование этого реквизита в объекте УзелДляОбмена. Перепишем этот фрагмент следующим образом, используя функции общего назначения:


Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ПравилаВыгрузкиПодразделений", УзелДляОбмена) Тогда
    Параметры.Вставить("ПравилаВыгрузкиПодразделений", УзелДляОбмена.ПравилаВыгрузкиПодразделений);
Иначе
    // Если реквизита нет (версия ПРОФ), просто не добавляем этот параметр
    // Или можем вставить значение по умолчанию
    Параметры.Вставить("ПравилаВыгрузкиПодразделений", Неопределено);
КонецЕсли;

Шаг 4. Сохранение и загрузка. Сохраним измененные правила обратно в XML-файл. Вернемся в УТ 11.5 и в окне настройки правил выберем вариант «Использовать измененные правила из файла на диске». Загрузим наш исправленный файл. Теперь при попытке синхронизации ошибка исчезнет, так как код будет корректно обрабатывать отсутствие реквизита.

Способ 2. Обходной путь через изменение метаданных (Для опытных)

Если по каким-то причинам вы не хотите работать с «Конвертацией данных», рассмотрим альтернативный вариант — «костыль», который заключается в изменении метаданных БП 2.0. Посмотрим на ситуацию с другой стороны: если программа ищет поле, почему бы нам его не создать?

  1. Откроем конфигуратор БП 2.0.
  2. Найдем в дереве объектов ПланыОбмена тот, который используется для синхронизации с УТ 11.
  3. Добавим в него новый реквизит с именем ПравилаВыгрузкиПодразделений.
  4. Тип реквизита выберем ПеречислениеСсылка.ПравилаВыгрузкиПодразделений. Если такого перечисления в базе нет, его можно создать или использовать тип Число (для обмана проверки).

Важно: Этот метод требует снятия базы с полной поддержки. Мы не рекомендуем его, если вы планируете в будущем обновлять БП 2.0 типовыми средствами, однако это быстрое решение, если обмен нужно запустить «здесь и сейчас».

Способ 3. Переход на версию КОРП или БП 3.0

Рассмотрим долгосрочную перспективу. Поскольку ошибка возникла из-за того, что правила в УТ 11.5 теперь ориентированы на версию КОРП, самым правильным (с точки зрения вендора) решением будет приведение конфигурации-приемника в соответствие с ожиданиями источника.

Перевод БП 2.0 ПРОФ на БП 2.0 КОРП решает проблему автоматически, так как в КОРП-версии реквизит ПравилаВыгрузкиПодразделений штатно присутствует в плане обмена. Это позволит использовать типовые правила без каких-либо доработок. Однако стоит помнить, что версия 2.0 в целом является морально устаревшей.

Проанализируем также возможность перехода на Бухгалтерию предприятия 3.0. Это снимет все вопросы совместимости, так как обмен УТ 11.5 — БП 3.0 является основным сценарием, который поддерживается и тестируется разработчиками 1С в первую очередь.

Резюме и практические советы

Завершая наш разбор, подведем итоги. Причина ошибки — несоответствие обновленных правил в УправлениеТорговлей устаревшим метаданным БухгалтерияПредприятия.

Если вы решили исправлять правила конвертации (Способ 1), обратите внимание на следующие моменты:

Мы надеемся, что этот подробный разбор помог вам восстановить работоспособность обмена данными. Помните, что связка УТ 11.5 и БП 2.0 становится все более хрупкой, поэтому планирование перехода на современные конфигурации — это лучший совет для стабильной работы вашего бизнеса.

← На главную