Как догрузить данные о начислениях из ЗУП 2.5 в ЗУП 3.1 после начала эксплуатации базы?

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

Переход с устаревшей конфигурации «Зарплата и управление персоналом», редакция 2.5 (ЗУП 2.5) на современную редакцию 3.1 (ЗУП 3.1) — процесс технически сложный и требующий строгого соблюдения методологии. Часто на практике возникает ситуация: пользователи выполнили первоначальный перенос данных (например, на 01.01.2020), начали вести кадровый учет или даже считать зарплату в новой базе ЗУП 3.1, но по каким-то причинам расчет за первый квартал параллельно продолжался в старой базе ЗУП 2.5. Теперь перед ИТ-специалистом встает задача: как «догрузить» документы начисления зарплаты за прошедший период в уже эксплуатируемую базу?

В этой статье мы подробно проанализируем архитектурные сложности этой задачи, разберем, почему стандартные механизмы не всегда подходят для «дозагрузки» документов, и рассмотрим рабочие сценарии решения этой проблемы.

Архитектурный конфликт: почему нельзя просто «догрузить» документы

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

  1. Разная структура регистров. В ЗУП 2.5 расчеты строились на регистрах расчета и жесткой связке с кадровыми приказами на уровне субконто и измерений. В ЗУП 3.1 расчет зарплаты неразрывно связан со специализированными кадровыми документами и плановыми начислениями. Если просто перенести документ НачислениеЗарплаты из старой базы, он не найдет соответствующих связей в новой конфигурации.
  2. Поведение стандартных правил обмена. Стандартные правила переноса от фирмы 1С разработаны таким образом, что они переносят расчетные данные за прошлые периоды не в виде документов НачислениеЗарплаты, а в технический документ ПереносДанных. Этот документ напрямую делает движения по необходимым регистрам расчета и накопления (учет доходов по НДФЛ, взносам, среднему заработку).
  3. Риск дублирования нормативно-справочной информации (НСИ). Если в ЗУП 3.1 уже создавались сотрудники вручную, то при автоматической загрузке документов за прошедший период велик риск получить дубли в справочниках ФизическиеЛица и Сотрудники. Это приведет к полному краху отчетности по НДФЛ и РСВ.

Выясним, какие варианты решения существуют в этой ситуации.

---

Сценарий А. Сдвиг даты начала эксплуатации (Рекомендуемый вариант)

Если в работающей базе ЗУП 3.1 за прошедший период (например, первый квартал) было введено немного уникальных данных, самым безопасным решением будет полный отказ от идеи «догрузки» документов. Рассмотрим этот алгоритм подробнее:

  1. Завершите все расчеты за первый квартал в старой базе ЗУП 2.5. Выплатите зарплату и обязательно сформируйте и сдайте регламентированную отчетность (6-НДФЛ, РСВ) именно из ЗУП 2.5.
  2. Создайте новую, абсолютно чистую базу ЗУП 3.1.
  3. Выполните типовой рекомендованный («краткий») перенос данных с помощью помощника перехода. Но при этом укажите новую дату начала эксплуатации — 01.04.2020 (вместо исходной 01.01.2020).

Что это даст? Программа автоматически перенесет актуальные кадровые данные на 1 апреля, остатки взаиморасчетов, а расчетные данные за первый квартал 2020 года (и за предшествующие два года) запишет в документы ПереносДанных. Это гарантирует корректный расчет среднего заработка для отпусков и больничных в будущем и избавит вас от ручной стыковки документов.

---

Сценарий Б. Разработка и использование нетиповых правил обмена (КД 2.0)

Если перенос на новую дату невозможен (например, в ЗУП 3.1 уже ведется слишком много оперативной работы), вам придется переносить документы за квартал с использованием правил конвертации данных. Готовых и идеально работающих правил под текущие релизы в открытом доступе нет, поэтому работу придется выполнять в программе «Конвертация данных 2.0».

Проанализируем ключевые настройки, которые необходимо выполнить программисту при создании таких правил:

  1. Настройка поиска по уникальным идентификаторам (GUID). Справочники ФизическиеЛица должны сопоставляться строго по уникальным идентификаторам, если базы имеют общую историю. Если данные вносились вручную, необходимо настроить сопоставление по полям СтраховойНомерПФР (СНИЛС) или комбинации ИНН + ФИО.
  2. Отказ от проведения документов при загрузке. Документы должны переноситься непроведенными. Проводить их нужно непосредственно в ЗУП 3.1 после ручной проверки кадровой истории. Для этого в правилах конвертации объектов (ПКО) для документов установите режим записи:

// В обработчике "ПриЗагрузке" для правил документов
РежимЗаписи = "Записать";

Рассмотрим пример кода, который часто применяется в обработчиках КД 2.0 перед загрузкой объектов для поиска физических лиц по СНИЛС, чтобы избежать появления дублей:


// Обработчик "ПоляПоиска" для ПКО ФизическиеЛица
Если СвойстваПоиска.Получить("СтраховойНомерПФР") <> Неопределено Тогда
    СНИЛС = СокрЛП(СвойстваПоиска["СтраховойНомерПФР"]);
    СНИЛС = СтрЗаменить(СНИЛС, "-", "");
    СНИЛС = СтрЗаменить(СНИЛС, " ", "");
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	ФизическиеЛица.Ссылка КАК Ссылка
        |ИЗ
        |	Справочник.ФизическиеЛица КАК ФизическиеЛица
        |ГДЕ
        |	ПОДСТРОКА(ФизическиеЛица.СтраховойНомерПФР, 1, 14) ПОДОБНО &СНИЛС";
    Запрос.УстановитьПараметр("СНИЛС", СНИЛС);
    
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        СсылкаНаОбъект = Выборка.Ссылка;
        ПрекратитьПоиск = Истина;
    КонецЕсли;
КонецЕсли;

---

Сценарий В. Перенос данных через технические таблицы «Перенос данных»

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

Разберем по шагам, как зафиксировать данные за 1 квартал через этот механизм:

  1. В базе ЗУП 2.5 запустите обработку выгрузки данных.
  2. Выберите период выгрузки — 1 квартал 2020 года.
  3. В правилах обмена укажите перенос расчетных данных. Обратите внимание, что документы НачислениеЗарплаты трансформируются в документы ПереносДанных с префиксами регистров (например, ЗП_СЭ — сведения о заработке для расчета среднего, НДФЛ — учет доходов для налога).
  4. Загрузите XML-файл в ЗУП 3.1 с помощью встроенной обработки Универсальный обмен данными в формате xml.

Важное предостережение: после загрузки таких документов проведение кадровых приказов в ЗУП 3.1 «задним числом» может привести к конфликту данных. Поэтому данный метод требует полной фиксации (блокировки) прошлых периодов для кадровиков.

---

Сценарий Г. Ручной ввод для небольших баз

Давайте проанализируем ситуацию с экономической точки зрения. Если в вашей организации работает до 50–70 сотрудников, написание, тестирование и отладка нетиповых правил обмена в «Конвертации данных 2.0» займет у программиста существенно больше времени (и обойдется дороже), чем ручной ввод.

В этом случае наиболее надежным методом будет ручное воссоздание кадровых документов за 1 квартал в ЗУП 3.1, а финансовые показатели (суммы начислений, удержаний и исчисленного НДФЛ) можно внести сводно за каждый месяц с помощью документов ПереносДанных по соответствующим регистрам:

Такой подход гарантирует 100% точность учета без риска занести в новую базу системный «мусор» из старой ЗУП 2.5.

← На главную