Как в ЗУП 3.1 оформить основной отпуск одним документом за разные рабочие периоды

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе в 1С:Зарплата и управление персоналом 3.1 бухгалтеры и кадровики часто сталкиваются с ситуацией, когда сотрудник накопил дни отпуска за несколько лет (например, остатки за 2021, 2022 и 2023 годы). Возникает закономерный вопрос: как правильно отразить такой отпуск одним документом, чтобы программа корректно списала остатки по нужным периодам, а печатные формы соответствовали требованиям кадрового учета?

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

Механизм FIFO в учете остатков отпусков

Прежде всего, важно понять фундаментальное различие между версиями. В ЗУП 3.1 реализован принцип FIFO (First In, First Out). Это означает, что программа всегда списывает остатки отпусков, начиная с самого раннего рабочего года, за который у сотрудника есть неиспользованные дни.

Проанализируем ситуацию: в документе Отпуск в поле "Предоставляется за период работы" вы можете указать любой диапазон дат (даже охватывающий 5 лет). Однако это поле в шапке документа носит преимущественно информационный характер для печатных форм. Внутренний расчет остатков происходит следующим образом:

  1. Программа обращается к регистру накопления Фактические отпуска.
  2. Система находит самую раннюю дату начала рабочего года, по которой есть положительный остаток.
  3. Дни отпуска «поглощаются» последовательно: сначала закрывается самый старый период, затем следующий и так далее.

Таким образом, даже если вы укажете в шапке текущий год, программа «под капотом» все равно сначала спишет остатки за прошлые периоды. Проверить это можно, нажав в документе ссылку "Как сотрудник использовал отпуск?". Там вы увидите детальную расшифровку списания по годам.

Проблема разбивки в печатных формах (Т-6 и Т-60)

Основная сложность заключается в том, что отдел кадров часто требует видеть в приказе и справке-расчете конкретную разбивку: например, "5 дней за 2022 год и 23 дня за 2023 год". Типовой документ Отпуск в ЗУП 3.1 для основного отпуска не имеет табличной части (в отличие от дополнительных отпусков), где можно было бы указать периоды построчно.

Рассмотрим доступные варианты решения:

  1. Ввод нескольких документов: Вы можете создать два документа Отпуск, следующих друг за другом. Это обеспечит идеальную чистоту в печатных формах, но создаст проблемы расчетчику: разные номера приказов, необходимость отслеживания единого среднего заработка (дата начала события будет разной, если отпуска не начинаются в один день) и лишний документооборот.
  2. Использование документа "Отпуск сотрудников" (списком): Этот документ позволяет оформить один приказ по форме Т-6а на одного сотрудника несколькими строками. Каждая строка — это отдельный рабочий период. Программа сформирует несколько расчетных документов Отпуск, но номер приказа будет общим.
  3. Доработка печатной формы: Это наиболее рациональный путь для крупных организаций. Внешняя печатная форма может программно обращаться к данным расчета остатков и выводить в таблицу Т-60 информацию о том, за какие именно периоды были списаны дни, даже если в шапке документа указан общий период.

Особенности сторнирования при исправлениях

Выясним причину странного поведения программы при исправлении отпуска. Пользователи замечают, что при создании документа-исправления сторнировочные записи в регистре Фактические отпуска могут содержать некорректные периоды (период из нового документа вместо старого).

Это происходит из-за того, что механизм перерасчета в Управляемых Формах стремится привести состояние регистров к «новому» видению документа. Если вы меняете рабочий период в исправлении, система может «схлопнуть» движения. Чтобы избежать путаницы в справке об остатках отпусков, рекомендуется сначала сторнировать документ полностью в исходном периоде, а затем вводить новый, либо внимательно проверять движения регистра через "Движения документа".

Тонкая настройка расчета среднего заработка

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

Если вам необходимо изменить логику учета премий (чтобы премии процентом не уменьшались при расчете среднего), обратите внимание на общий модуль УчетСреднегоЗаработкаКлиентСервер. Рассмотрим пример функции-заглушки, которую можно модифицировать:


Функция УменьшатьПремииПроцентомНачисленныеЗаВремяНеВходящееВРасчетныйПериод()
    // В типовой конфигурации возвращает Истина
    // Если требуется не уменьшать премии процентом, значение можно изменить на Ложь
    Возврат Истина; 
КонецФункции

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

Выводы и рекомендации

Подведем итог нашему анализу:

Таким образом, ЗУП 3.1 предлагает более автоматизированный, хотя и менее гибкий "в лоб" подход к учету периодов по сравнению с 2.5. Понимание работы регистра Фактические отпуска позволяет эффективно использовать типовой функционал без лишних трудозатрат.

← На главную