Переход с устаревшей системы «Торговля и Склад 7.7» на современную «Управление торговлей 11.5» — это сложный многоэтапный процесс. Одной из наиболее частых преград становится ошибка при загрузке данных через универсальный обмен XML, когда система сообщает: Поле объекта не обнаружено (ИспользоватьСтатусыЗаказовНаВнутреннееПотребление). В рамках данной статьи мы подробно разберем причины возникновения этой ситуации и проанализируем пошаговые методы её решения.
Проанализируем ситуацию с технической точки зрения. Ошибка возникает на этапе загрузки файла в целевую базу (УТ 11.5). Суть проблемы заключается в том, что в последних релизах УТ 11.5 (начиная с 11.5.12 и выше) разработчики фирмы «1С» провели серьезный рефакторинг структуры метаданных. В частности, функциональная опция или константа ИспользоватьСтатусыЗаказовНаВнутреннееПотребление была либо полностью удалена из конфигурации, либо переименована, либо перенесена в другой блок параметров учета.
Типовые правила переноса, которые часто используются «по привычке» из старых архивов или папок обновлений, содержат жесткую ссылку на это поле. Когда обработка УниверсальныйОбменДаннымиXML пытается записать значение в несуществующий реквизит объекта НаборКонстант или ПараметрыУчета, выполнение кода прерывается критической ошибкой.
Первым делом проверим, откуда были взяты правила переноса. Часто пользователи совершают ошибку, используя старый файл Convert.xml. Разберем по шагам, где найти актуальные файлы для вашего релиза:
%AppData%\Roaming\1C\1cv8\tmplts\1c\trade\.11_5_17_183).AddFiles\Transfers\TiS77.Convert.xml (правила обмена) и ExtInfo.txt (обработка выгрузки для 7.7).Важно: Даже если вы используете последний релиз, 1С не всегда успевает обновить правила под изменения в метаданных. Если даже правила из дистрибутива выдают ту же ошибку, перейдем к более радикальным методам.
Если обновление правил не помогло, нам придется самостоятельно отредактировать файл правил обмена. Рассмотрим подробнее этот процесс:
ТиС 7.7 и УТ 11.5.Convert.xml через обработку «Загрузка правил обмена».ИспользоватьСтатусыЗаказовНаВнутреннееПотребление.ПослеЗагрузкиДанных.Чаще всего достаточно просто удалить упоминание этого поля из списка переносимых параметров. Рассмотрим пример кода, который может вызывать ошибку в обработчике:
// В обработчике "После загрузки правил обмена" или "После загрузки данных"
Если НЕ ЭтоПараметрДляОбъекта Тогда
// Здесь может быть обращение к Константы.ИспользоватьСтатусыЗаказовНаВнутреннееПотребление.Установить()
// Его нужно закомментировать или удалить
КонецЕсли;
После удаления проблемного поля сохраним правила и попробуем выполнить выгрузку/загрузку заново.
Опытные специалисты по внедрению 1С рекомендуют вообще исключить «Настройки параметров учета» из типового переноса. Проанализируем, почему это правильное решение:
Во-первых, логика учета в 7.7 и 11.5 кардинально различается. В 7.7 используется простой партионный учет, в то время как в 11.5 реализован сложный механизм «Партионный учет 2.2», направления деятельности и различные схемы обеспечения. Автоматический перенос настроек из старой базы часто приводит к некорректной инициализации функциональных опций в восьмерке.
Рассмотрим правильный алгоритм действий:
Этот подход гарантирует, что загрузка не «споткнется» о несуществующие поля метаданных, а система будет работать на чистых и корректных настройках.
Иногда ошибка вызвана тем, что в исходной базе 7.7 накоплены ошибки в данных, которые обработка пытается интерпретировать как параметры. Проанализируем необходимые регламентные операции перед выгрузкой:
Во-первых, обязательно выполним Тестирование и Исправление (ТиИ) базы 7.7. Особое внимание уделим проверке логической целостности и пересчету итогов.
Во-вторых, проверим справочник ЕдиницыИзмерения. В ТиС 7.7 часто встречаются элементы с битыми ссылками на «Базовую единицу». В 8-ке это приведет к ошибке при создании упаковок номенклатуры. Мы можем использовать простую проверку кодом в 7.7:
СпрЕд = СоздатьОбъект("Справочник.ЕдиницыИзмерения");
СпрЕд.ВыбратьЭлементы();
Пока СпрЕд.ПолучитьЭлемент() = 1 Цикл
Если ПустоеЗначение(СпрЕд.Владелец.БазоваяЕдиница) = 1 Тогда
Сообщить("У товара " + СпрЕд.Владелец.Наименование + " не заполнена базовая единица!");
КонецЕсли;
КонецЦикла;
Если типовой помощник перехода продолжает выдавать ошибки, разберем альтернативные варианты. Многие профессионалы отказываются от формата XML в пользу COM-соединения или загрузки через табличные документы.
Использование обработки ЗагрузкаДанныхИзТабличногоДокумента.epf позволяет выгрузить данные из ТиС 7.7 в Excel и аккуратно «затянуть» их в УТ 11. Это исключает влияние функциональных опций и констант на процесс загрузки справочников. Рассмотрим этот вариант, если вам нужно перенести только ключевые данные, не затрагивая настройки системы.
Подведем итог. Ошибка Поле объекта не обнаружено (ИспользоватьСтатусыЗаказовНаВнутреннееПотребление) — это следствие использования устаревших правил обмена для новых версий УТ 11.5. Наиболее эффективным решением является отказ от переноса параметров учета и их ручная настройка в целевой базе. Если же перенос настроек критичен — используйте «Конвертацию данных 2.1» для удаления обращения к данному полю из XML-схемы.
Помните, что переход с 7.7 — это не просто перенос таблиц, а смена архитектуры. Использование современных методик позволит вам избежать множества «граблей», о которых упоминали участники форума.