При выполнении обмена данными между устаревшими редакциями конфигураций (такими как Управление торговлей 10.3, Управление нашей фирмой 1.6, Розница 2.3 или даже Торговля и Склад 9.2) и современными релизами Бухгалтерия предприятия 3.0 (начиная с версии 3.0.81 и выше), пользователи часто сталкиваются с критической ошибкой загрузки. Процесс прерывается сообщением: «Поле объекта не обнаружено (ПродажаКомиссия)». Рассмотрим подробно, почему возникает эта ситуация и как ее исправить самостоятельно, даже если вы используете базовую версию программы или облачный сервис.
Проанализируем техническую сторону вопроса. Ошибка возникает на стороне приемника (как правило, это Бухгалтерия предприятия) в момент обработки входящего сообщения обмена. В стеке вызова часто фигурирует обработка КонвертацияОбъектовИнформационныхБаз. Суть проблемы заключается в масштабном рефакторинге метаданных, который провела фирма «1С» в новых релизах БП 3.0.
В перечислении ВидыОперацийВозвратТоваровОтПокупателя (и некоторых смежных объектах) значение ПродажаКомиссия было признано устаревшим. В зависимости от версии оно либо получило префикс Удалить..., либо было полностью исключено из логики программы, а его функции переданы значению Товары или Продажа. Однако правила обмена, встроенные в старые версии УТ 10.3 или УНФ, продолжают транслировать это значение в файл выгрузки. Когда Бухгалтерия пытается сопоставить строковое значение из файла с текущим списком своих метаданных, она не находит совпадения, что и приводит к программному исключению.
Разберем по шагам наиболее эффективный метод решения проблемы — ручную корректировку правил конвертации объектов.
Поскольку ошибка заложена в логике сопоставления объектов, нам необходимо изменить сами правила, по которым работает обмен. Рассмотрим этот процесс на примере Управления торговлей 10.3, так как действия в других конфигурациях на обычных формах будут аналогичными.
Бухгалтерией предприятия 3.0.ExchangeRules.xml или CorrespondentExchangeRules.xml). Сохраним его в надежное место, предварительно создав резервную копию.Для внесения правок нам не потребуется специализированная среда «Конвертация данных», достаточно обычного текстового редактора (например, Блокнота или Notepad++). Проанализируем структуру файла и внесем изменения.
Откроем сохраненный файл и воспользуемся поиском (Ctrl+F). Нам нужно найти все упоминания проблемного значения. Ищем строку:
ПродажаКомиссия
Как правило, в правилах конвертации свойств (ПКС) для перечислений вы обнаружите фрагмент кода или настройки сопоставления значений. В контексте документа ВозвратТоваровОтПокупателя необходимо найти узел, где значение приемника указано как ПродажаКомиссия. Рассмотрим пример того, что нужно найти:
<ЗначениеПриемника>ПродажаКомиссия</ЗначениеПриемника>
Заменим это значение на актуальное для новой версии Бухгалтерии. В большинстве случаев корректным значением будет Товары. Если же речь идет о виде операции в реализации, может потребоваться значение Продажа. Исправленный фрагмент должен выглядеть так:
<ЗначениеПриемника>Товары</ЗначениеПриемника>
Если в файле правил встречается инициализация переменной Значение через встроенный язык (внутри обработчиков), исправим и ее:
// Было:
Значение = "ПродажаКомиссия";
// Стало:
Значение = "Товары";
После внесения правок сохраним файл. Рекомендуется сохранить его под новым именем, чтобы не перезаписать оригинал.
Теперь нам нужно заставить программу использовать обновленные инструкции. Вернемся в интерфейс 1С, в то же окно, откуда мы выгружали правила.
Важный нюанс: Если ваша база находится во «Фреше» или ином облаке, вы не сможете менять конфигурацию БП, но вы всегда можете загрузить измененные правила в свою локальную базу (УТ или УНФ). Обмен при запуске со стороны локальной базы будет передавать эти правила во временном пакете, и загрузка в облако пройдет успешно.
Часто после исправления правил пользователи запускают обмен и снова видят ошибку. Это происходит потому, что документы, вызвавшие сбой, уже были подготовлены к выгрузке со «старым» внутренним представлением. Чтобы изменения вступили в силу, проделаем следующее:
Возврат товаров от покупателя (или те, на которых возникала ошибка).Разберем ситуацию, описанную некоторыми специалистами: ошибка Поле объекта не обнаружено часто проявляется именно в интерактивном режиме, когда вызывается форма сопоставления данных. Посмотрим на этот механизм: помощник интерактивного обмена пытается просканировать все метаданные для отображения пользователю, натыкается на несуществующее поле и «падает».
Если вам нужно срочно провести обмен, а времени на правку XML нет, попробуйте запустить обмен через Сценарии синхронизации данных. В этом режиме загрузка происходит в фоновом (автоматическом) режиме без вызова диалоговых окон сопоставления. Если объекты уже были ранее сопоставлены по уникальным идентификаторам или полям поиска, загрузка может пройти успешно, игнорируя визуальные ошибки интерфейса сопоставления.
Мы проанализировали причину сбоя и выяснили, что она кроется в несовпадении версий метаданных. Подведем итоги наших действий:
ПродажаКомиссия в новых релизах БП 3.0.ПродажаКомиссия на Товары.Помните, что перед любыми манипуляциями с правилами обмена необходимо создавать резервную копию информационной базы. Это позволит вам быстро вернуться к исходному состоянию в случае некорректного редактирования XML-структуры.