Почему в 1С:ЗУП 3.1 во время отпуска по уходу за ребенком до 3 лет ошибочно начисляются дни отпуска и как это исправить?

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

Каждый бухгалтер и кадровик, работающий в программе 1С:Зарплата и управление персоналом 3.1, рано или поздно сталкивается с оформлением декретных отпусков. Казалось бы, процедура стандартная, но на практике пользователи часто обнаруживают неприятный сюрприз: в отчете «Справка об остатках отпусков» у сотрудницы, находящейся в отпуске по уходу за ребенком до 3 лет, продолжают накапливаться дни ежегодного оплачиваемого отпуска.

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

Механизм динамического расчета остатков отпусков в 1С:ЗУП 3.1

Для того чтобы понять природу ошибки, проанализируем, как программа рассчитывает остатки отпусков. В старых версиях программы (например, в 1С:ЗУП 2.5) остатки хранились в виде готовых рассчитанных значений в специальных регистрах. Начиная с версии 3.1, разработчики внедрили совершенно другой алгоритм — динамический расчет остатков «на лету».

Каждый раз, когда мы формируем отчет или открываем карточку сотрудника, программа обращается к базе данных и выполняет расчет с использованием информации из нескольких ключевых регистров:

  1. Права на отпуск: Эти данные фиксируются в регистре сведений Положенные виды ежегодных отпусков. Здесь программа проверяет, сколько дней отпуска (например, 28 календарных дней) положено сотруднику в год.
  2. Начальные остатки: При начале работы в программе данные берутся из регистра накопления Начальные остатки отпусков.
  3. Фактическое использование: Программа вычитает дни из документов фактических отпусков.
  4. Периоды сдвига рабочего года: Это ключевой момент для нашей проблемы. Программа считывает периоды отсутствий, которые по закону сдвигают рабочий год (отпуска без сохранения оплаты более 14 дней, прогулы и отпуска по уходу за ребенком). Эти данные хранятся в регистрах сведений Состояния сотрудников и Данные состояний сотрудников.

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

Методологическая ошибка «двух документов»

Основная и самая распространенная причина сбоя — это оформление двух последовательных документов Отпуск по уходу за ребенком.

С точки зрения Трудового кодекса РФ (ст. 256 ТК РФ), не существует двух разных отпусков — «до 1.5 лет» и «от 1.5 до 3 лет». Существует один неделимый отпуск по уходу за ребенком до достижения им возраста трех лет. Различаются лишь периоды выплаты пособий (до 1.5 лет выплачивается страховое пособие, далее — отпуск продолжается без него либо с иными выплатами).

Когда расчетчик создает в программе сначала один документ Отпуск по уходу за ребенком (до достижения 1.5 лет), а затем по истечении этого срока создает второй аналогичный документ (от 1.5 до 3 лет), в системе происходит следующее:

Особенности переноса данных и ввода начальных остатков

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

Рассмотрим ситуацию: сотрудница ушла в декрет еще в старой базе (например, в 2017 году), а учет в новой программе начался с 01.01.2019. На момент переноса она уже находилась в отпуске по уходу.

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

Как правильно оформлять операции в программе

Чтобы избежать подобных ошибок в будущем, придерживайтесь следующих правил работы в 1С:ЗУП 3.1:

  1. Оформляйте документ сразу на 3 года. Первичный документ Отпуск по уходу за ребенком всегда создавайте сразу до даты достижения ребенком 3 лет. При этом на вкладке «Пособия» укажите флаг «Выплачивать по...» и введите дату достижения 1.5 лет. Программа сама прекратит начисление пособия в нужный день, но состояние сотрудника («В отпуске по уходу за ребенком») останется активным до конца трехлетнего периода, и рабочий год будет сдвигаться корректно.
  2. Используйте механизм исправления. Если изначально документ был проведен только до 1.5 лет, не создавайте новый документ! Откройте исходный документ и скорректируйте дату окончания в поле «по...», либо воспользуйтесь ссылкой «Исправить» в левом нижнем углу документа для создания документа-исправления.
  3. Выход на работу на полставки. Если сотрудница во время декрета решает работать на условиях неполного рабочего времени, это регистрируется специальным документом Изменение условий оплаты отпуска по уходу за ребенком. Возврат из отпуска в этом случае делать не нужно.
  4. Окончательный возврат. Когда сотрудница полностью выходит на работу (например, по достижении 3 лет или досрочно), введите документ Возврат из отпуска по уходу. Именно он прекращает действие декретного состояния и возобновляет стандартный расчет стажа.

Пошаговый алгоритм исправления ошибки для автора темы

Выясним причину на конкретном примере из темы форума. У сотрудницы оформлено два документа отпуска по уходу (от 18.09.2017 и от 26.01.2019), введены начальные остатки на 01.01.2019, а возврат на работу зафиксирован с 11.02.2019. С 26.01.2019 по 10.02.2019 программа ошибочно начисляет дни отпуска.

Разберем по шагам, как исправить эту ситуацию в базе данных (все действия рекомендуется выполнять сначала на копии базы данных):

  1. Отмените проведение документов движения:
    • Найдите и распроведите документ Возврат из отпуска по уходу (от 11.02.2019).
    • Найдите, распроведите и полностью удалите второй (ошибочный) документ Отпуск по уходу за ребенком от 26.01.2019.
  2. Скорректируйте первый (исходный) документ декрета:
    • Найдите первичный документ Отпуск по уходу за ребенком от 18.09.2017.
    • Измените дату его окончания. Она должна быть установлена как 10.02.2019 (день, предшествующий дню фактического выхода на работу). Если период закрыт для редактирования, воспользуйтесь кнопкой «Исправить» внизу документа.
  3. Проверьте ввод начальных остатков:
    • Откройте документ ввода остатков отпусков (или документ Начальная штатная расстановка, если остатки вводились им) на дату 01.01.2019.
    • Найдите нашу сотрудницу. В табличной части «Права на отпуска» найдите колонку «Дней отсутствия».
    • Проверьте, чтобы там было заполнено точное количество дней, которое сотрудница пробыла в декрете с 18.09.2017 по 31.12.2018. Программа использует это число для корректного переноса сдвига рабочего года через границу даты начала ведения учета.
  4. Проведите документ возврата:
    • Проведите обратно документ Возврат из отпуска по уходу с датой возврата 11.02.2019. Это зафиксирует окончание декрета и возобновит стандартный учет рабочего стажа для отпуска.
  5. Проверьте результат:
    • Сформируйте отчет «Справка об остатках отпусков» по данной сотруднице.
    • Убедитесь, что за период с 26.01.2019 по 10.02.2019 лишние дни отпуска больше не начисляются, а рабочий год сдвинулся ровно на количество дней нахождения в законном отпуске по уходу за ребенком.

Соблюдение этих простых методологических правил позволит вам избежать путаницы в учете кадров и избавит от необходимости вручную корректировать остатки отпусков при увольнении или отправке сотрудников в ежегодные отпуска.

← На главную