Переход с конфигурации «1С:Зарплата и управление персоналом» редакции 2.5 на редакцию 3.1 — это не просто рядовое обновление, а глобальный перенос данных в совершенно новую систему с принципиально иной архитектурой. В процессе такого перехода технические специалисты часто сталкиваются с тем, что перенос «зависает»: шкала прогресса не двигается часами, файл базы данных mdf не растет, хотя все кнопки интерфейса остаются активными. Рассмотрим подробно, почему возникает эта проблема, как выявить ее причины с помощью журнала регистрации и какими способами можно существенно ускорить процесс переноса.
Если процесс переноса данных из информационной базы приостановился, первым делом проанализируем состояние системы через Журнал регистрации в базе-приемнике (ЗУП 3.1). Разберем ситуацию, когда в журнале с периодичностью несколько раз в минуту запускается исключительно одно и то же регламентное задание: Запуск процедуры "Обновление индекса ППД".
ППД — это механизм полнотекстового поиска данных в 1С. При импорте больших массивов информации (справочники физических лиц, сотрудников, кадровые и расчетные документы) система по умолчанию пытается в реальном времени индексировать каждую новую запись. Это приводит к следующим последствиям:
Чтобы избежать этой проблемы, перед началом переноса необходимо полностью отключить полнотекстовый поиск в целевой базе ЗУП 3.1. Для этого выполним следующие действия:
В случае работы в клиент-серверном варианте или при необходимости сделать это программно, можно воспользоваться следующим кодом:
ПолнотекстовыйПоиск.УстановитьРежимИспользования(РежимИспользованияПолнотекстовогоПоиска.НеИспользовать);
Также настоятельно рекомендуется на время переноса временно отключить все регламентные и фоновые задания, чтобы они не оттягивали на себя ресурсы сервера. Сделать это можно через консоль администрирования кластера 1С (установив блокировку регламентных заданий для базы-приемника) или программным путем:
РегламентныеЗаданияМенеджер = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из РегламентныеЗаданияМенеджер Цикл
Если Задание.Использование Тогда
Задание.Использование = Ложь;
Задание.Записать();
КонецЕсли;
КонецЦикла;
При запуске помощника перехода программа предлагает два варианта загрузки: прямое подключение к базе-источнику (через COM-соединение) или загрузка из ранее выгруженного файла данных. Посмотрим на особенности работы каждого варианта.
Прямое COM-подключение крайне требовательно к ресурсам и стабильности сети. При таком способе две системы работают одновременно: база ЗУП 2.5 сериализует объекты в COM-потоке, а ЗУП 3.1 их десериализует и записывает. Любое кратковременное прерывание связи, утечка памяти на стороне платформы или блокировка приводят к аварийному завершению без сохранения промежуточных результатов. Кроме того, скорость работы COM-соединения на больших базах является неудовлетворительной.
Перенос через файл — гораздо более надежная и быстрая альтернатива. Процесс разделяется на два независимых этапа: сначала данные полностью выгружаются в промежуточный XML-файл, а затем этот файл загружается в приемник. Это позволяет высвободить оперативную память сервера и избежать сетевых сбоев.
Выясним, где взять необходимую обработку для выгрузки данных, если мы решили отказаться от нестабильного COM-соединения в пользу переноса через файлы:
ВыгрузкаДанныхВУниверсальныйФормат.epf) на локальный диск компьютера. Сохраним ее в отдельный каталог..epf.При переносе данных перед нами встает выбор режима выгрузки. Проанализируем последствия каждого решения:
При этом варианте переносятся только актуальные данные по работающим сотрудникам на дату начала учета: их кадровая расстановка, действующие плановые начисления, остатки отпусков и взаиморасчетов. Сведения для расчета среднего заработка переносятся в виде специальных сжатых регистров за последние несколько лет.
Преимущества: Минимальный размер новой базы, высокая скорость переноса, отсутствие старых ошибок учета и «мусора» в новой системе.
Система пытается перенести все кадровые документы (приемы, переводы, увольнения) за прошлые периоды. Из-за концептуального различия архитектур (в редакции 2.5 кадровый учет и расчет зарплаты велись раздельно, а в 3.1 они объединены) этот процесс почти всегда приводит к многочисленным ошибкам, зацикливанию алгоритмов и логическим несоответствиям.
Рекомендация: Всегда выбирайте рекомендованный вариант переноса. Если вам необходима история за прошлые периоды, лучше оставить базу ЗУП 2.5 в режиме «только для чтения» в качестве архива.
Чтобы исключить падение производительности и ошибки при загрузке, базу-источник необходимо подготовить по следующим шагам:
ОтражениеЗарплатыВБухучете проведен.Тестирование и исправление с включенной проверкой логической и ссылочной целостности. Обнаруженные битые ссылки типа «Объект не найден» должны быть очищены или восстановлены.ФизическиеЛица и Сотрудники, а также корректность СНИЛС и ИНН. Перед переносом найдем и устраним все дубли физлиц в старой базе.Применив эти рекомендации, мы сможем минимизировать время простоя оборудования, избежать зависаний на этапе индексирования и гарантировать корректный и быстрый переход на современную редакцию 1С:ЗУП 3.1.