Как исправить ошибку «Поле объекта не обнаружено» при обмене данными между УТ 11 и БП 2.0?

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

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

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта}: Ошибка получения значения свойства объекта (по имени свойства источника) ПКО = БанковскиеСчетаОрганизаций, ПКС = (ВыводитьСуммуБезКопеек --> СуммаБезКопеек), ОписаниеОшибки = Поле объекта не обнаружено (ВыводитьСуммуБезКопеек)

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

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

Проанализируем механику работы типового механизма обмена на базе Конвертации данных 2.1 (КД 2). Ошибка возникает из-за следующих факторов:

  1. Несоответствие метаданных и правил конвертации: в процессе обновления конфигураций разработчики типовых решений изменили или удалили реквизиты печатных форм (ВыводитьСуммуБезКопеек, ВариантВыводаМесяца, СуммаБезКопеек) в справочнике БанковскиеСчета. Если в правиле конвертации свойств (ПКС) включено прямое чтение свойства источника по имени, обработчик КонвертацияОбъектовИнформационныхБаз обращается к несуществующему реквизиту объекта через точку, что вызывает фатальное исключение платформы.
  2. Проблема «Нет транзакции» при некорректной правке XML: попытка вручную вырезать строки из XML-файла правил обмена часто приводит к нарушению целостности структуры документа или удалению связанных зависимостей. В таком случае загрузчик аварийно завершает обработку пакета внутри неявной транзакции записи, транзакция откатывается, а на этапе фиксации статуса обмена программа сообщает об отсутствии активной транзакции (ВТранзакции() = Ложь). При этом регистрация изменений с объектов может оказаться уже сброшенной.

Способ 1. Корректировка правил через конфигурацию «Конвертация данных 2.1»

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

  1. Выгрузка структуры метаданных:

    В каталоге установки конфигурации «Конвертация данных 2.1» находим внешние обработки выгрузки метаданных. Для базы УТ 11 (режим платформы 8.3) запускаем обработку MD83.epf и сохраняем структуру метаданных в XML-файл. Для базы БП 2.0 (режим совместимости 8.2) запускаем обработку MD82.epf (или MD83.epf) и аналогично сохраняем метаданные приемника.

  2. Загрузка метаданных и правил в КД 2.1:

    Открываем базу КД 2.1. Через пункт меню загружаем файлы метаданных для обеих конфигураций. Затем через обработку «Загрузка правил обмена данными» импортируем текущий XML-файл правил конвертации из поставки УТ или БП.

  3. Исправление правила конвертации свойства (ПКС):

    Переходим в дерево правил, находим ПКО БанковскиеСчетаОрганизаций (или БанковскиеСчета) и открываем вкладку Конвертация свойств. Находим проблемные строки для свойств ВыводитьСуммуБезКопеек и ВариантВыводаМесяца. У нас есть два варианта исправления:

    Вариант А (отключение выгрузки свойства): снимаем флаг передачи свойства (крайняя левая колонка активности ПКС), чтобы обработчик не пытался обращаться к реквизиту источника.

    Вариант Б (явная инициализация значения): в обработчике события ПередВыгрузкой для проблемного свойства принудительно задаем фиксированное значение, чтобы отвязать чтение от метаданных источника:

    
    // В обработчике "Перед выгрузкой" свойства ПКС
    Значение = Ложь;
    Отказ = Ложь;
    
  4. Сохранение и загрузка обновленных правил:

    В форме настройки правил нажимаем кнопку Сохранить правила конвертации, выгружаем готовый XML-файл и загружаем его в настройки синхронизации данных (план обмена) в базах УТ 11 и БП 2.0.

Способ 2. Корректное редактирование XML-файла правил вручную

Если нет возможности быстро развернуть базу КД 2.1, исправление можно внести напрямую в текстовом редакторе. Главное — строго соблюдать структуру XML-дерева.

  1. Открываем файл правил конвертации в текстовом редакторе.
  2. Выполняем поиск по имени приемника СуммаБезКопеек или имени источника ВыводитьСуммуБезКопеек внутри блока справочника банковских счетов.
  3. Находим полный узел свойства, который начинается с тега <Свойство ...> и заканчивается тегом </Свойство>. Нельзя удалять только отдельные теги внутри свойства. Полностью удаляем весь узел либо добавляем внутри него флаг отключения:
    
    <Свойство Отключить="true">
        <Источник Имя="ВыводитьСуммуБезКопеек" Вид="Реквизит" Тип="Булево"/>
        <Приемник Имя="СуммаБезКопеек" Вид="Реквизит" Тип="Булево"/>
    </Свойство>
    
  4. Аналогичную процедуру выполняем для свойства ВариантВыводаМесяца.
  5. Сохраняем файл в кодировке UTF-8 и загружаем его в настройку обмена.

Восстановление данных после неудачного обмена

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

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

Важное замечание по архитектуре обменов: обмен между УТ 11 и БП 2.0 работает исключительно на классической технологии КД 2.1 через XML-правила, так как конфигурация БП 2.0 не поддерживает формат EnterpriseData (КД 3.0). Для долгосрочной стабильности синхронизации рекомендуется перевод бухгалтерского контура на редакцию 1С:Бухгалтерия предприятия 3.0.

← На главную