Переход с «1С:Зарплата и управление персоналом» редакции 2.5 на версию 3.1 — это сложный процесс, который часто сопровождается техническими нюансами. Одна из самых распространенных проблем, с которой сталкиваются специалисты, — это «пустой» отчет «Остатки отпусков» в новой базе. При этом в документах Перенос данных информация вроде бы присутствует, но система упорно не желает показывать накопленные дни отдыха сотрудников. Давайте вместе разберемся в причинах этой ситуации и найдем способы её решения.
Первым делом нам необходимо понять, как именно ЗУП 3.1 формирует отчет по остаткам. В старой редакции 2.5 логика была несколько иной. В новой версии программа опирается на сложную систему взаимосвязанных регистров. Разберем основные из них:
Перенос данных с кодом Ротп, это означает, что система «знает», когда и сколько сотрудник гулял. Однако для расчета остатка этого недостаточно.Проанализируем ситуацию: почему документ Перенос данных может содержать данные, но отчет их не видит? Чаще всего проблема заключается в том, что при переносе формируется документ с префиксом Ротп, но не формируется или формируется пустым документ с префиксом ОТП (который и отвечает за начальные остатки).
Рассмотрим по шагам, как убедиться в наличии необходимых данных в системе. Нам нужно проверить регистр сведений НачальныеОстаткиОтпусков. Если вы обнаружили, что он пуст, значит, штатный механизм обмена по какой-то причине проигнорировал эти данные в исходной базе или не смог их правильно интерпретировать из-за различий в метаданных актуальных обновлений.
Выясним причину «пустоты» через проверку документов переноса. В разделе «Администрирование» — «Перенос данных» найдите документы с кодом ОТП. Проанализируйте их содержимое. Если табличные части пусты, это подтверждает технический сбой при миграции. Такое часто случается, если в исходной базе 2.5 не была выполнена процедура исправления остатков отпусков перед выгрузкой.
Если штат сотрудников небольшой, самым надежным и «чистым» способом будет ручной ввод данных или использование типового документа. Рассмотрим этот алгоритм подробнее:
Создадим документ «Ввод начальных остатков отпусков». Этот объект специально предназначен для фиксации точки отсчета. Он делает записи сразу в несколько важных мест:
Остатки отпусков по рабочим годам.Процент доплаты за дни отпуска.При заполнении этого документа важно правильно указать дату остатков. Если вы переносите данные на 01.01.2024, то и остатки должны быть зафиксированы на эту дату. Помните, что если сформировать отчет на 31.12.2023, он всё еще будет пустым.
Если штат компании насчитывает сотни или тысячи сотрудников, ручной ввод невозможен. В этом случае нам придется «пилить» обработку, но не с нуля, а для дозаполнения существующих документов Перенос данных. Нам нужно перенести данные из отчета «Остатки отпусков» базы 2.5 в табличную часть документа ОТП в 3.1.
Посмотрим на пример логики, которую следует заложить в обработку для заполнения регистра ОстаткиОтпусковПоРабочимГодам:
// Пример заполнения структуры для записи в регистр
НоваяСтрока = ТаблицаОстатков.Добавить();
НоваяСтрока.Сотрудник = СсылкаНаСотрудника;
НоваяСтрока.РабочийГодС = ДатаНачалаРабочегоГода;
НоваяСтрока.РабочийГодПо = ДатаОкончанияРабочегоГода;
НоваяСтрока.Остаток = КоличествоДнейОстатка;
НоваяСтрока.ВидЕжегодногоОтпуска = Справочники.ВидыОтпусков.Основной;
Рассмотрим важный нюанс: при программном заполнении обязательно проверьте наличие записей в регистре Право на отпуска. Без установленного права (например, 28 дней основного отпуска) записи в регистре остатков могут игнорироваться системой при расчете будущих периодов.
Выясним, как тип переноса влияет на результат. При полном переносе (с историей) ЗУП 3.1 пытается рассчитать остатки математически, вычитая из всех положенных дней все использованные. Если в истории базы 2.5 были ручные корректировки, «переброски» между рабочими годами или ошибки в кадровых приказах, математика не сойдется, и отчет будет выдавать неверные данные или пустоту.
При кратком переносе (рекомендованном фирмой 1С) переносятся только итоговые цифры на дату среза. Если вы выбрали этот путь, но остатки не появились, значит, проблема в исходных данных 2.5. В этом случае рекомендуется вернуться в старую базу, сформировать там отчет «Остатки отпусков», убедиться в его корректности и, если нужно, воспользоваться обработкой «Исправление остатков отпусков» перед повторным выполнением миграции.
Подведем итог нашему исследованию. Если вы видите «фигу» в отчете по остаткам отпусков в ЗУП 3.1 после переноса:
Реестр отпусков — он лишь фиксирует факты отдыха, но не определяет право и остаток.Перенос данных с префиксом ОТП. Если он пуст — данные не перенеслись.Право на отпуска для каждого сотрудника указано количество положенных дней в году.Ввод начальных остатков отпусков как эталонный метод исправления данных.Важный технический момент: иногда после ручного заполнения или программной заливки данных в документы Перенос данных требуется «передернуть» проведение документа. Нажмите «Записать» и «Провести», чтобы записи попали в соответствующие регистры сведений и стали доступны для механизмов формирования отчетов.
Совместными усилиями мы проанализировали основные «подводные камни» перехода. Главное — помнить, что архитектура ЗУП 3.1 более строго относится к хронологии рабочих лет и правам на отпуск, чем её предшественница, поэтому корректность начальных данных является залогом правильного учета в будущем.