Переход с устаревшей конфигурации «Зарплата и Управление Персоналом» редакции 2.5 на современную редакцию 3.1 — это важный шаг для любой организации. Однако в процессе миграции данных пользователи часто сталкиваются с неприятными сюрпризами. Один из наиболее распространенных сбоев связан с расчетом остатков отпусков и определением рабочих периодов, за которые эти отпуска предоставляются.
Типичная ситуация выглядит следующим образом: мы оформляем документ «Отпуск» на сотрудника в новой базе ЗУП 3.1. Например, дата начала отпуска — 24.12.2018. В старой базе ЗУП 2.5 программа четко видела, что данный отпуск предоставляется за рабочий период, начавшийся в 2016 году. Однако в новой ЗУП 3.1 программа упорно подставляет период с даты приема сотрудника на работу (например, с 2012 года). Создается ощущение, что сотрудник все эти годы не ходил в отпуск вовсе.
В этой статье мы подробно разберем, почему возникает эта проблема, как устроена логика учета отпусков в 1С:ЗУП 3.1 и какие практические шаги необходимо предпринять, чтобы исправить ситуацию и вернуть учет в корректное русло.
Для того чтобы понять корень проблемы, проанализируем различия в архитектуре учета двух редакций. В 1С:ЗУП 3.1 расчет остатков ежегодных отпусков и определение текущего рабочего года происходят динамически. Программа не просто хранит финальную цифру остатка, она анализирует всю цепочку кадровых событий и фактически использованных отпусков с самого начала работы сотрудника в организации.
Если в системе отсутствует жестко зафиксированная «отправная точка» (документ-срез, который определяет остаток отпуска на конкретную дату), программа вынуждена рассчитывать рабочий год с даты приема сотрудника на работу. При переносе данных из ЗУП 2.5 эта логика ломается по нескольким причинам:
При переходе на новую редакцию пользователям предлагается два варианта переноса: «Рекомендованный» (краткий) и «Полный» (с переносом кадровой истории и расчетов за прошлые годы).
При рекомендованном переносе в новой базе создается специальный документ — «Начальная штатная расстановка». В этом документе по ссылке «Отпуска» фиксируются остатки отпусков сотрудников в разрезе рабочих лет на дату начала эксплуатации новой программы (например, на 01.01.2018). Этот документ служит жесткой границей (точкой отсчета). Программа не заглядывает в кадровые события до этой даты и начинает все последующие расчеты рабочих лет строго от зафиксированных остатков.
При полном переносе документ «Начальная штатная расстановка» не создается. Вместо этого за прошлые периоды создаются документы «Перенос данных» (с кодами вида «НЗП» и др.). В этих документах заполняются регистры накопления по начислениям, удержаниям и отработанному времени. Однако если в исходной базе ЗУП 2.5 учет отпусков велся с ошибками, перенос этих регистров происходит некорректно. Регистр сведений Реестр отпусков может содержать записи, но регистр накопления Фактические отпуска при этом остается пустым, из-за чего автоматический расчет ломается.
Даже если остатки отпусков были успешно перенесены, границы рабочих лет в ЗУП 3.1 могут не совпадать с ЗУП 2.5 из-за разницы в учете отклонений. Рабочий год сотрудника должен сдвигаться на периоды, не включаемые в стаж для предоставления отпуска (ст. 121 ТК РФ). К таким периодам относятся:
Если в процессе переноса данные кадровые документы перенеслись некорректно или их периоды не сопоставились с регистрами стажа, ЗУП 3.1 не сдвинет рабочий год так, как это было сделано в ЗУП 2.5. Программа пересчитает все сдвиги заново на основе имеющихся в новой базе документов отклонений, что также приведет к смещению рабочих лет.
Пытаться вычистить и сопоставить вручную все исторические регистры за несколько лет после полного переноса — задача чрезвычайно трудоемкая и неэффективная. Наиболее надежный, быстрый и методологически верный способ решить проблему — принудительно зафиксировать правильные остатки отпусков и границы рабочих лет на дату начала ведения учета в новой программе.
Для этого выполним следующие действия по шагам:
В ЗУП 3.1 специализированный документ «Ввод остатков отпусков» по умолчанию может быть скрыт из панели разделов кадрового учета. Нам необходимо вывести его в интерфейс:
Создадим документ ввода остатков, который перекроет всю старую «кривую» историю и задаст верные параметры для дальнейших расчетов:
После проведения этого документа программа закроет все предыдущие периоды (включая дату приема с 2012 года) и при создании нового отпуска (например, от 24.12.2018) будет рассчитывать рабочий период, опираясь исключительно на данные, введенные в этом документе.
Чтобы убедиться, что введенные данные применились правильно и программа теперь видит корректную картину, воспользуемся специализированным кадровым отчетом:
В сформированной справке мы увидим подробную детализацию: на основе какого документа (в нашем случае это будет Ввод остатков отпусков) были начислены стартовые дни, сколько дней накопилось с момента ввода остатков, какие фактически использованные отпуска были зарегистрированы далее, и, главное, за какие именно рабочие года эти дни числятся за сотрудником.
Использование этого подхода позволяет оперативно решить проблему «улетающих» рабочих лет без необходимости сложного и рискованного редактирования перенесенных регистров накопления.