Как исправить ошибку «Поле объекта не обнаружено (ПродажаКомиссия)» при обмене данными с Бухгалтерией предприятия 3.0?

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

При выполнении обмена данными между устаревшими редакциями конфигураций (такими как Управление торговлей 10.3, Управление нашей фирмой 1.6, Розница 2.3 или даже Торговля и Склад 9.2) и современными релизами Бухгалтерия предприятия 3.0 (начиная с версии 3.0.81 и выше), пользователи часто сталкиваются с критической ошибкой загрузки. Процесс прерывается сообщением: «Поле объекта не обнаружено (ПродажаКомиссия)». Рассмотрим подробно, почему возникает эта ситуация и как ее исправить самостоятельно, даже если вы используете базовую версию программы или облачный сервис.

Выясним причину возникновения ошибки

Проанализируем техническую сторону вопроса. Ошибка возникает на стороне приемника (как правило, это Бухгалтерия предприятия) в момент обработки входящего сообщения обмена. В стеке вызова часто фигурирует обработка КонвертацияОбъектовИнформационныхБаз. Суть проблемы заключается в масштабном рефакторинге метаданных, который провела фирма «1С» в новых релизах БП 3.0.

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

Разберем по шагам наиболее эффективный метод решения проблемы — ручную корректировку правил конвертации объектов.

Шаг 1. Выгрузка текущих правил конвертации

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

  1. Перейдем в меню Сервис — Обмен данными с продуктами на платформе 1С:Предприятие 8.2 — Обмен данными.
  2. В открывшемся списке выберем нашу настройку синхронизации с Бухгалтерией предприятия 3.0.
  3. Нажмем кнопку изменения (редактирования) настройки.
  4. В верхней панели формы найдем пункт Параметры синхронизации данных и выберем подпункт Загрузить правила КОВЕРТАЦИИ объектов.
  5. В появившемся окне нажмем кнопку Сохранить правила в файл. Система предложит сохранить XML-файл (обычно он называется ExchangeRules.xml или CorrespondentExchangeRules.xml). Сохраним его в надежное место, предварительно создав резервную копию.

Шаг 2. Редактирование файла правил в текстовом редакторе

Для внесения правок нам не потребуется специализированная среда «Конвертация данных», достаточно обычного текстового редактора (например, Блокнота или Notepad++). Проанализируем структуру файла и внесем изменения.

Откроем сохраненный файл и воспользуемся поиском (Ctrl+F). Нам нужно найти все упоминания проблемного значения. Ищем строку:

ПродажаКомиссия

Как правило, в правилах конвертации свойств (ПКС) для перечислений вы обнаружите фрагмент кода или настройки сопоставления значений. В контексте документа ВозвратТоваровОтПокупателя необходимо найти узел, где значение приемника указано как ПродажаКомиссия. Рассмотрим пример того, что нужно найти:

<ЗначениеПриемника>ПродажаКомиссия</ЗначениеПриемника>

Заменим это значение на актуальное для новой версии Бухгалтерии. В большинстве случаев корректным значением будет Товары. Если же речь идет о виде операции в реализации, может потребоваться значение Продажа. Исправленный фрагмент должен выглядеть так:

<ЗначениеПриемника>Товары</ЗначениеПриемника>

Если в файле правил встречается инициализация переменной Значение через встроенный язык (внутри обработчиков), исправим и ее:


// Было:
Значение = "ПродажаКомиссия";

// Стало:
Значение = "Товары";

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

Шаг 3. Загрузка исправленных правил в информационную базу

Теперь нам нужно заставить программу использовать обновленные инструкции. Вернемся в интерфейс 1С, в то же окно, откуда мы выгружали правила.

  1. Нажмем кнопку Загрузить правила.
  2. Выберем наш отредактированный файл.
  3. Система выполнит чтение правил. Если ошибок в синтаксисе XML не допущено, появится сообщение о том, что правила успешно загружены.
  4. Нажмем Записать и закрыть.

Важный нюанс: Если ваша база находится во «Фреше» или ином облаке, вы не сможете менять конфигурацию БП, но вы всегда можете загрузить измененные правила в свою локальную базу (УТ или УНФ). Обмен при запуске со стороны локальной базы будет передавать эти правила во временном пакете, и загрузка в облако пройдет успешно.

Шаг 4. Перерегистрация данных и проверка обмена

Часто после исправления правил пользователи запускают обмен и снова видят ошибку. Это происходит потому, что документы, вызвавшие сбой, уже были подготовлены к выгрузке со «старым» внутренним представлением. Чтобы изменения вступили в силу, проделаем следующее:

  1. Воспользуемся обработкой Регистрация изменений для обмена (она доступна в меню настройки обмена).
  2. Найдем документы Возврат товаров от покупателя (или те, на которых возникала ошибка).
  3. Нажмем правой кнопкой мыши и выберем Отменить регистрацию для объектов за проблемный период.
  4. Затем снова выберем Зарегистрировать изменения для этих же документов.
  5. Запустим процесс синхронизации.

Альтернативное решение: Использование сценариев синхронизации

Разберем ситуацию, описанную некоторыми специалистами: ошибка Поле объекта не обнаружено часто проявляется именно в интерактивном режиме, когда вызывается форма сопоставления данных. Посмотрим на этот механизм: помощник интерактивного обмена пытается просканировать все метаданные для отображения пользователю, натыкается на несуществующее поле и «падает».

Если вам нужно срочно провести обмен, а времени на правку XML нет, попробуйте запустить обмен через Сценарии синхронизации данных. В этом режиме загрузка происходит в фоновом (автоматическом) режиме без вызова диалоговых окон сопоставления. Если объекты уже были ранее сопоставлены по уникальным идентификаторам или полям поиска, загрузка может пройти успешно, игнорируя визуальные ошибки интерфейса сопоставления.

Резюме

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

Помните, что перед любыми манипуляциями с правилами обмена необходимо создавать резервную копию информационной базы. Это позволит вам быстро вернуться к исходному состоянию в случае некорректного редактирования XML-структуры.

← На главную