Как исправить ошибку «Поле объекта не обнаружено (НачалоПериода)» при переносе данных из УПП в ERP?

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

Переход с комплексной системы 1С:Управление производственным предприятием (УПП), ред. 1.3 на флагманское решение 1С:ERP Управление предприятием — это масштабный проект, с которым рано или поздно сталкивается любое крупное производство. Фирма «1С» предоставляет типовой инструмент для переноса остатков и справочной информации. Однако на практике специалисты регулярно сталкиваются с ситуацией, когда стандартный перенос прерывается критическими ошибками на самых первых этапах загрузки данных.

В этой статье мы подробно разберем одну из таких классических ошибок, возникающую при переносе кадровых документов (в частности, отпусков по уходу за ребенком), выясним техническую причину сбоя и рассмотрим два практических способа ее устранения.

---

Анализ технической проблемы и причин ее возникновения

В процессе загрузки данных в базу 1С:ERP система аварийно завершает работу, выдавая следующее сообщение об ошибке:


Объект = Отпуск по уходу за ребенком от 05.12.2017
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Поле объекта не обнаружено (НачалоПериода)
ПозицияМодуля = ОбщийМодуль.УчетПособийСоциальногоСтрахованияРасширенный.Модуль(53)
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1283)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта

Проанализируем архитектуру конфигураций. Дело в том, что зарплатный блок в 1С:УПП базируется на логике устаревшей конфигурации 1С:Зарплата и Управление Персоналом (ЗУП) редакции 2.5, в то время как блок расчета зарплаты и кадров в 1С:ERP построен на современной редакции ЗУП 3.1. Методология учета пособий, расчета среднего заработка для ФСС и структуры хранения кадровых данных в этих редакциях кардинально различаются.

Для корректного сопоставления данных в правилах обмена (написанных в программном продукте «1С:Конвертация данных 2.0») в обработчиках событий прописываются вызовы различных функций конфигурации-приемника (1С:ERP). В последних релизах ERP разработчики фирмы «1С» провели рефакторинг общего модуля УчетПособийСоциальногоСтрахованияРасширенный.

Функция, отвечающая за сбор сведений для расчета пособий, которая ранее называлась: УчетПособийСоциальногоСтрахованияРасширенный.ДанныеДляРасчетаСреднегоЗаработкаФСССотрудника, была переименована в: УчетПособийСоциальногоСтрахованияРасширенный.ДанныеДляРасчетаСреднегоЗаработкаФСССотрудникаСлужебный.

Прежняя функция либо была удалена, либо стала выполнять совершенно иные задачи, возвращая структуру данных, в которой отсутствует ожидаемое правилами обмена свойство НачалоПериода. Типовые правила обмена, поставляемые с ERP, попросту не успели обновить вслед за изменением кода самой конфигурации. В результате при попытке загрузить первый же документ отпуска по уходу за ребенком система пытается обратиться к старому методу, не находит нужного свойства и прерывает загрузку всей базы.

---

Вариант 1. Быстрое решение проблемы напрямую в файле данных (для разового переноса)

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

  1. Выполните типовую выгрузку данных из базы 1С:УПП с помощью стандартной обработки. На выходе вы получите zip-архив с файлом данных (обычно он имеет имя вида УППУП_ZUP...xml).
  2. Распакуйте полученный архив в любую рабочую папку на вашем компьютере.
  3. Откройте полученный .xml файл с помощью любого производительного текстового редактора, способного работать с большими файлами без зависаний (например, Notepad++, VS Code или Sublime Text). Использовать стандартный Блокнот Windows не рекомендуется, так как файл данных может весить несколько гигабайт.
  4. Вызовите окно поиска и замены (сочетание клавиш Ctrl + H).
  5. В поле «Найти» введите старое имя функции:
    ДанныеДляРасчетаСреднегоЗаработкаФСССотрудника
  6. В поле «Заменить на» введите новое актуальное имя функции:
    ДанныеДляРасчетаСреднегоЗаработкаФСССотрудникаСлужебный
  7. Нажмите кнопку «Заменить все». Редактор произведет автозамену во всех обработчиках событий, которые были выгружены внутрь XML-структуры.
  8. Сохраните изменения в файле и заархивируйте его обратно в формат .zip (либо оставьте в формате .xml).
  9. Запустите процесс загрузки в 1С:ERP, указав измененный файл. Загрузка документов по уходу за ребенком пройдет успешно без возникновения ошибок инициализации периода.

---

Вариант 2. Системное исправление правил обмена в «1С:Конвертация данных 2.0»

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

Рассмотрим алгоритм внесения изменений в правила:

  1. Откройте конфигурацию «Конвертация данных», редакция 2.0 (2.1).
  2. Выполните импорт ваших текущих правил обмена (обычно это XML-файл правил, который идет в комплекте поставки ERP в папке шаблонов конфигурации).
  3. Перейдите в раздел «Правила конвертации объектов» (ПКО) и найдите правило для документа ОтпускПоУходуЗаРебенком (или аналогичного кадрового документа, на котором спотыкается загрузка).
  4. Откройте свойства данного ПКО и перейдите на вкладку «Обработчики событий».
  5. Найдите предопределенный обработчик события ПослеЗагрузки (или ПослеЗагрузкиОбъекта).
  6. В коде обработчика найдите строку вызова проблемного метода общего модуля:
    
    // Пример старого вызова в обработчике правил:
    СведенияОПособии = УчетПособийСоциальногоСтрахованияРасширенный.ДанныеДляРасчетаСреднегоЗаработкаФСССотрудника(Параметры...);
    
  7. Отредактируйте строку кода, добавив суффикс Служебный:
    
    // Исправленный вариант вызова:
    СведенияОПособии = УчетПособийСоциальногоСтрахованияРасширенный.ДанныеДляРасчетаСреднегоЗаработкаФСССотрудникаСлужебный(Параметры...);
    
  8. Сохраните изменения в обработчике.
  9. Выполните выгрузку измененных правил обмена в XML-файл. Назовите его, например, ПравилаПереноса_УПП_ERP_Фикс.xml и используйте его при последующих выгрузках из УПП.

---

Дополнительные критические «затыки» при переносе УПП — ERP и пути их решения

Помимо вышеописанной ошибки с кадровыми документами, в процессе переноса данных из УПП в ERP ИТ-специалисты регулярно сталкиваются с другими методологическими и техническими трудностями. Рассмотрим наиболее частые из них:

1. Ошибка переполнения памяти (Out of Memory)
Базы УПП, накопленные за 10–15 лет работы предприятия, имеют колоссальный объем данных. Стандартный механизм выгрузки через формат XML сильно нагружает оперативную память сервера и клиента. Для решения этой проблемы рекомендуем:

2. Ошибки в ресурсных спецификациях (производственный блок)
При выгрузке спецификаций часто возникает ошибка Преобразование значения к типу Число не может быть выполнено. Это происходит из-за так называемых «зацикленных» спецификаций в УПП, когда спецификация нижнего уровня ссылается сама на себя или на родительскую спецификацию. Перед переносом обязательно запустите отчет по иерархии спецификаций в УПП и устраните логические петли.

3. Расхождение остатков взаиморасчетов по заказам
В ERP учет расчетов с контрагентами устроен гораздо строже, чем в УПП. Если в УПП велся поордерный или позаказный учет с ошибками (например, платежи закрывались без указания конкретных документов сделок), то при переносе остатков по расчетам в ERP данные могут «разъехаться». Рекомендуется перед переносом провести полную инвентаризацию и сверку взаиморасчетов в разрезе договоров и документов расчетов в УПП, закрыть «зависшие» авансы и скорректировать аналитику.

4. Проблема разделения сущностей «Партнеры» и «Контрагенты»
В УПП существовал единый справочник контрагентов. В ERP концепция разделена на управленческих «Партнеров» (с кем ведем бизнес-отношения) и регламентированных «Контрагентов» (юридических лиц). Если в ERP включено независимое ведение партнеров и контрагентов, при переносе без предварительной настройки сопоставления могут возникнуть дубли или некорректные связи. По возможности, перед переносом сопоставьте контрагентов УПП с уникальными ИНН/КПП.

← На главную