Как исправить ошибки переноса данных из КА 1.1 / УПП в КА 2.4 при использовании правил конвертации

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

При переносе данных или настройке постоянного обмена между конфигурациями 1С:Комплексная автоматизация 1.1 (или 1С:Управление производственным предприятием 1.3) и 1С:Комплексная автоматизация 2.4 (или 1С:ERP 2.4) разработчики часто сталкиваются с ситуацией, когда поставляемые типовые правила конвертации рассчитаны на ветку 2.2 и содержат обращения к устаревшим или переименованным объектам метаданных. В результате при загрузке XML через обработку УниверсальныйОбменДаннымиXML возникает череда ошибок: «Поле объекта не обнаружено», «Тип не определен», «Переменная не определена».

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

1. Исправление ошибок в свойствах и типах метаданных

Проанализируем основные несовместимости структуры конфигураций, которые вызывают сбои при загрузке:

  1. Реквизит «ПараметрыПрописиНаРусском» справочника «Валюты»:

    В конфигурациях редакции 2.4 реквизит ПараметрыПрописиНаРусском был переименован в ПараметрыПрописи. В правилах конвертации объектов (ПКО) для справочника Валюты необходимо в правиле конвертации свойства (ПКС) заменить имя свойства-приемника на ПараметрыПрописи.

  2. Тип «СправочникСсылка.КлассификаторБанковРФ»:

    В БСП и конфигурациях редакции 2.4 классификатор банков переименован. Вместо КлассификаторБанковРФ используется объект метаданных КлассификаторБанков. В ПКО необходимо переопределить тип приемника.

  3. Переименование документов поступления:

    Документы вида ПоступлениеТоваровУслуг в версии 2.4 были переименованы в ПриобретениеТоваровУслуг (а не просто «ПриобретениеТоваров»). Аналогично документ КорректировкаПоступления стал называться КорректировкаПриобретения. При некорректном указании имени объекта приемника обработка загрузки падает с пустой ошибкой «Поле объекта не обнаружено» без указания конкретного идентификатора.

2. Исправление кода в обработчиках и алгоритмах правил

Рассмотрим ошибки, возникающие в обработчике события ПослеЗагрузкиДанных конвертации и во встроенных алгоритмах правил:

  1. Устаревшие реквизиты регистров сведений:

    В регистре сведений ПорядокОтраженияРасчетовСПартнерами реквизит СчетУчетаРасчетовПоВознаграждению перешел в категорию устаревших (УдалитьСчетУчетаРасчетовПоВознаграждению). Обращения к данному реквизиту в алгоритмах заполнения счетов учета следует закомментировать либо переписать с учетом актуальной учетной политики КА 2.4.

  2. Обращение к переименованным общим модулям:

    Ошибка «Переменная не определена (ПрисоединенныеФайлыСлужебный)» возникает из-за переименования сервисных модулей БСП. В конфигурации 2.4 функционал перенесен в модули РаботаСФайламиСлужебный и РаботаСФайламиСлужебныйВызовСервера. В коде обработчиков необходимо скорректировать вызовы методов.

  3. Методы логирования и протоколирования:

    Вызовы вида ОбщиеПроцедурыФункции.ЗаписатьВПротоколВыполнения() в 2.4 недоступны в прежнем виде, так как структура сервисных обработок изменилась (процедура вынесена в обработку КонвертацияОбъектовИнформационныхБаз). При адаптации правил эти строки можно временно закомментировать.

3. Диагностика скрытых ошибок в обработке загрузки

Если обработка выдает безымянную ошибку {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8358)}: Поле объекта не обнаружено, выясним причину с помощью отладки:

  1. В Конфигураторе перейдем в меню Отладка → Остановка по ошибке и включим признак Обрабатывать все ошибки.
  2. Повторим загрузку файла. Платформа остановится в точке возникновения исключения, что позволит вычислить имя проблемной переменной или свойства структуры в табло (например, пустое обращение к свойству или незаполненный параметр Параметры[ИмяПараметра]).
  3. Для комплексной корректировки правил загрузим актуальные метаданные конфигураций КА 1.1 и КА 2.4 (выгруженные обработкой MD83Exp.epf) в конфигурацию «Конвертация данных 2.1» и выполним автоматическую проверку правил обмена.

4. Сортировка документов и устранение ошибок контроля остатков

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

Это происходит из-за нарушения хронологической последовательности проведения (когда перемещения или списания проводятся раньше документов приобретения). Для решения этой проблемы в обработчике ПослеЗагрузкиДанных упорядочим массив документов по дате:


ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Документ");
ТЗ.Колонки.Добавить("Дата");

Для Каждого Документ Из Параметры.ДокументыДляПроведения Цикл
    НоваяСтрока = ТЗ.Добавить();
    НоваяСтрока.Документ = Документ;
    НоваяСтрока.Дата     = Документ.Дата;
КонецЦикла;

ТЗ.Сортировать("Дата Возр");
Параметры.ДокументыДляПроведения = ТЗ.ВыгрузитьКолонку("Документ");

Если ошибки нехватки товаров продолжают возникать, применим следующие меры:

  1. Отключение контроля остатков на время загрузки: В разделе НСИ и администрирование временно снимем флаг контроля остатков товаров организаций.
  2. Загрузка без проведения: В правилах обмена снимем признак автоматического проведения документов при загрузке. Проведение выполним пакетно после окончания обмена с помощью стандартной обработки проведения документов.

5. Настройка партионного учета

При появлении ошибки «Для операций, доступных с версии 2.2, требуется установить соответствующий режим партионного учета» необходимо проверить дату начала применения партионного учета версии 2.2.

  1. Перейдем в раздел: НСИ и администрирование → Настройка НСИ и разделов → Финансовый результат и контроллинг → Учет товаров → Партионный учет.
  2. Установим переключатель в положение Версия 2.2 и укажем дату начала применения, соответствующую началу самого раннего периода переносимых документов.
  3. Помним, что в КА 2.4 стоимостные партии и себестоимость рассчитываются фоновыми регламентными заданиями или в рамках процедуры Закрытие месяца (операции «Формирование движений по партиям и раздельному учету НДС» и «Расчет себестоимости товаров»), а не при оперативном проведении накладных.

Альтернативный вариант: двухэтапный переход

Если объем ручных правок в правилах слишком велик, надежным вариантом перехода является перенос данных в промежуточную чистую базу КА 2.2 по полностью совместимым типовым правилам с последующим штатным обновлением конфигурации до релиза КА 2.4 с помощью стандартных файлов обновлений (cfu/cf).

← На главную