Переход с редакции 2.5 на 3.1 — это сложный процесс, который часто сопровождается техническими сбоями, особенно если выбран режим «краткого» переноса данных (начиная с определенной даты). В этой статье мы подробно разберем, почему возникают фатальные ошибки разбора XML, откуда берутся «лишние пробелы» в названиях справочников и как бороться с отсутствующими полями в объектах Перенос данных.
Рассмотрим ситуацию: при запуске типового переноса данные за январь и февраль загружаются успешно, но начиная с марта процесс прерывается критическими ошибками. Проанализируем наиболее часто встречающиеся сообщения:
Specification mandate value for attribute... указывает на то, что структура XML-файла нарушена. Это может произойти из-за наличия спецсимволов в исходных данных ЗУП 2.5 или некорректной работы платформы с временными файлами.Тип не определен (СправочникСсылка.Сотрудник и). Обратите внимание на лишний пробел. Это явный признак того, что при чтении файла произошел «сдвиг» указателя, и парсер XML некорректно считал строку.Поле объекта не обнаружено (ОснованиеВыслугиЛет) говорит о несоответствии правил обмена и текущей структуры конфигурации ЗУП 3.1. Это происходит, когда используются устаревшие правила выгрузки для более нового релиза приемника.Прежде чем приступать к исправлению данных, проанализируем используемые версии программ. В ранних релизах ветки 3.1.5 (например, 3.1.5.212) официально зарегистрировано множество ошибок, связанных именно с механизмом переноса. Рассмотрим список критических ошибок, которые могут влиять на ваш процесс:
Ошибка 30160408: При переносе данных о стаже ПФР возникает дублирование записей в регистре ЗаписиОСтажеДоНачалаЭксплуатации. Исправлено в версии 3.1.6.37.
Ошибка 10199377: Конфликт при записи данных о времени для расчета среднего заработка (ФСС), если у сотрудника пересекаются периоды табеля и больничного за счет работодателя. Исправлено в версии 3.1.8.110.
Ошибка 50010206: Ошибка выгрузки данных электронного документооборота, связанная с отсутствием соответствия для налоговых документов (КНД 1165050). Исправлено в версии 3.1.2.90.
Выясним причину: если ваш релиз ниже указанных, первым делом необходимо обновить ЗУП 3.1 до максимально доступного стабильного релиза (например, 3.1.7.87 или выше).
Разберем ситуацию, когда ошибки начинаются с конкретного месяца. Часто это связано с тем, что в базе ЗУП 2.5 в этом периоде содержатся записи с некорректными датами или ссылками. Проанализируем опыт коллег: иногда пользователи ошибаются при вводе года (например, вместо 2018 указывают 0218 или 1818).
Для поиска таких аномалий в ЗУП 2.5 рекомендуется использовать консоль запросов. Проверим основные регистры, на которые ругается перенос:
ВЫБРАТЬ
СтажПФР.Сотрудник,
СтажПФР.Период,
СтажПФР.ДатаОкончания
ИЗ
РегистрСведений.СтажПФР КАК СтажПФР
ГДЕ
(ГОД(СтажПФР.Период) < 1900 ИЛИ ГОД(СтажПФР.Период) > 2050)
ИЛИ (ГОД(СтажПФР.ДатаОкончания) < 1900 ИЛИ ГОД(СтажПФР.ДатаОкончания) > 2050)
Если запрос вернет строки, их необходимо исправить вручную в исходной базе перед повторным запуском переноса. Также выполните операцию «Тестирование и исправление» (ТиИ) со включенными проверками логической и ссылочной целостности.
Поскольку ошибка часто проявляется как «сбой разбора XML», разберем шаги по очистке технического «мусора»:
%AppData%\Local\1C\1cv8. Это исключит влияние старых определений типов метаданных.Temp. Перед каждой попыткой переноса полностью очищайте содержимое C:\Users\[ИмяПользователя]\AppData\Local\Temp.Выясним важный момент: типовой перенос часто использует правила, «зашитые» внутри конфигурации ЗУП 2.5. Однако они могут не знать о структурных изменениях в ЗУП 3.1. Рассмотрим, как применить актуальные правила:
В каталоге установки шаблонов вашей конфигурации ЗУП 3.1 (обычно это ...\1c\Zup\[Версия_Релиза]\...) найдите файл ВыгрузкаДанныхДляПереходаНаЗУП3.epf. Используйте именно эту внешнюю обработку для выгрузки из ЗУП 2.5. Она содержит наиболее актуальные алгоритмы сериализации данных в XML, адаптированные под структуру регистров новой программы.
Если вы выбрали режим, при котором переносятся только необходимые данные (не полная история), программа выполняет сложную свертку остатков. Рассмотрим алгоритм действий, если перенос все равно «падает» на марте:
Перенос данных, которые уже создались в ЗУП 3.1. Найдите документ с суффиксом СтажПФР или ЗП_СЗФСС за проблемный месяц. Проверьте, нет ли там дублирующихся строк по сотрудникам.Поле объекта не обнаружено (ОснованиеВыслугиЛет) сохраняется, значит, в вашей версии 3.1 этот реквизит был переименован или перемещен в другой регистр (например, из ЗаписиОСтажеДоНачалаЭксплуатации в данные перс. учета). В этом случае единственный надежный выход — обновить ЗУП 3.1 до релиза, выпущенного позже, чем ваш текущий ЗУП 2.5.Важное резюме: Основная причина появления пробелов и фатальных ошибок разбора XML в 90% случаев кроется в нестабильной работе платформы с временными файлами большого объема или наличии «мусорных» символов в строковых полях исходной базы. Тщательная очистка Temp, использование внешней обработки выгрузки и актуализация релизов позволяют обойти эти препятствия.