При переносе данных или настройке постоянного обмена между конфигурациями 1С:Комплексная автоматизация 1.1 (или 1С:Управление производственным предприятием 1.3) и 1С:Комплексная автоматизация 2.4 (или 1С:ERP 2.4) разработчики часто сталкиваются с ситуацией, когда поставляемые типовые правила конвертации рассчитаны на ветку 2.2 и содержат обращения к устаревшим или переименованным объектам метаданных. В результате при загрузке XML через обработку УниверсальныйОбменДаннымиXML возникает череда ошибок: «Поле объекта не обнаружено», «Тип не определен», «Переменная не определена».
Разберем по шагам, какие изменения в структуре метаданных произошли в версии 2.4, как скорректировать правила обмена и как правильно настроить систему для проведения перенесенных документов.
Проанализируем основные несовместимости структуры конфигураций, которые вызывают сбои при загрузке:
Реквизит «ПараметрыПрописиНаРусском» справочника «Валюты»:
В конфигурациях редакции 2.4 реквизит ПараметрыПрописиНаРусском был переименован в ПараметрыПрописи. В правилах конвертации объектов (ПКО) для справочника Валюты необходимо в правиле конвертации свойства (ПКС) заменить имя свойства-приемника на ПараметрыПрописи.
Тип «СправочникСсылка.КлассификаторБанковРФ»:
В БСП и конфигурациях редакции 2.4 классификатор банков переименован. Вместо КлассификаторБанковРФ используется объект метаданных КлассификаторБанков. В ПКО необходимо переопределить тип приемника.
Переименование документов поступления:
Документы вида ПоступлениеТоваровУслуг в версии 2.4 были переименованы в ПриобретениеТоваровУслуг (а не просто «ПриобретениеТоваров»). Аналогично документ КорректировкаПоступления стал называться КорректировкаПриобретения. При некорректном указании имени объекта приемника обработка загрузки падает с пустой ошибкой «Поле объекта не обнаружено» без указания конкретного идентификатора.
Рассмотрим ошибки, возникающие в обработчике события ПослеЗагрузкиДанных конвертации и во встроенных алгоритмах правил:
Устаревшие реквизиты регистров сведений:
В регистре сведений ПорядокОтраженияРасчетовСПартнерами реквизит СчетУчетаРасчетовПоВознаграждению перешел в категорию устаревших (УдалитьСчетУчетаРасчетовПоВознаграждению). Обращения к данному реквизиту в алгоритмах заполнения счетов учета следует закомментировать либо переписать с учетом актуальной учетной политики КА 2.4.
Обращение к переименованным общим модулям:
Ошибка «Переменная не определена (ПрисоединенныеФайлыСлужебный)» возникает из-за переименования сервисных модулей БСП. В конфигурации 2.4 функционал перенесен в модули РаботаСФайламиСлужебный и РаботаСФайламиСлужебныйВызовСервера. В коде обработчиков необходимо скорректировать вызовы методов.
Методы логирования и протоколирования:
Вызовы вида ОбщиеПроцедурыФункции.ЗаписатьВПротоколВыполнения() в 2.4 недоступны в прежнем виде, так как структура сервисных обработок изменилась (процедура вынесена в обработку КонвертацияОбъектовИнформационныхБаз). При адаптации правил эти строки можно временно закомментировать.
Если обработка выдает безымянную ошибку {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8358)}: Поле объекта не обнаружено, выясним причину с помощью отладки:
Параметры[ИмяПараметра]).MD83Exp.epf) в конфигурацию «Конвертация данных 2.1» и выполним автоматическую проверку правил обмена.После загрузки документов при их автоматическом проведении могут возникать сообщения вида: «По организации ... не хватает ... шт товара ... на складе ...» даже при наличии остатков.
Это происходит из-за нарушения хронологической последовательности проведения (когда перемещения или списания проводятся раньше документов приобретения). Для решения этой проблемы в обработчике ПослеЗагрузкиДанных упорядочим массив документов по дате:
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Документ");
ТЗ.Колонки.Добавить("Дата");
Для Каждого Документ Из Параметры.ДокументыДляПроведения Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Документ = Документ;
НоваяСтрока.Дата = Документ.Дата;
КонецЦикла;
ТЗ.Сортировать("Дата Возр");
Параметры.ДокументыДляПроведения = ТЗ.ВыгрузитьКолонку("Документ");
Если ошибки нехватки товаров продолжают возникать, применим следующие меры:
При появлении ошибки «Для операций, доступных с версии 2.2, требуется установить соответствующий режим партионного учета» необходимо проверить дату начала применения партионного учета версии 2.2.
Если объем ручных правок в правилах слишком велик, надежным вариантом перехода является перенос данных в промежуточную чистую базу КА 2.2 по полностью совместимым типовым правилам с последующим штатным обновлением конфигурации до релиза КА 2.4 с помощью стандартных файлов обновлений (cfu/cf).