Почему в ЗУП 3.1 не начисляется аванс при наличии отсутствий?

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

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

Анализ причин сбоя начислений

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

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

Какие статусы блокируют аванс?

Проанализируем программный код, отвечающий за эту проверку. Система формирует массив состояний, при которых начисление аванса считается невозможным:


СостоянияИсключающиеАванс = Новый Массив;
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтпускНеоплачиваемыйПоРазрешениюРаботодателя);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтпускНеоплачиваемыйПоЗаконодательству);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ДополнительныйОтпускНеоплачиваемый);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтпускУчебныйНеоплачиваемый);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.БолезньБезОплаты);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтпускПоБеременностиИРодам);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтпускПоУходуЗаРебенком);
СостоянияИсключающиеАванс.Добавить(Перечисления.СостоянияСотрудника.ОтсутствиеПоНевыясненнымПричинам);

Как мы видим, ОтсутствиеПоНевыясненнымПричинам является одним из критических статусов. Когда программа производит расчет, она проверяет текущее состояние сотрудника в интервале выплаты. Если период отсутствия перекрывает рабочие дни, система просто «отсекает» сотрудника из расчета.

Особенности работы с датами документов

Важно понимать еще один нюанс: расчет аванса в ЗУП 3.1 привязан к дате документа. Алгоритм не всегда анализирует строго период с 1-го по 15-е число. Часто расчетный интервал строится исходя из даты документа. Если вы создаете документ 23-го числа, программа может проверять состояние сотрудника за период, непосредственно предшествующий этой дате, что приводит к отсутствию рабочих дней в расчетном окне.

Решение проблемы: пошаговая инструкция

Разберем, как поступить, если вы столкнулись с такой блокировкой:

  1. Проверьте вид документа отсутствия. Если у сотрудника установлен статус Отсутствие по невыясненной причине, попробуйте изменить его на другой, если реальная ситуация позволяет. Например, при болезни лучше использовать документ Больничный лист (даже если он не закрыт), так как он не всегда попадает под жесткое ограничение в зависимости от настроек вида начисления.
  2. Анализ периодов. Если сотрудник отсутствовал, но потом вышел на работу, убедитесь, что дата документа Начисление за первую половину месяца корректна и охватывает рабочее время.
  3. Корректировка через ручные операции. Если автоматика не срабатывает из-за статуса, который нельзя изменить (например, официальный отпуск), используйте документ Разовое начисление для выплаты фиксированной суммы аванса. Это позволит провести выплату вне рамок автоматического регламента, который блокирует стандартный документ Начисление за первую половину месяца.

Таким образом, использование статуса Отсутствие по невыясненным причинам является «опасным» с точки зрения автоматизации. Рекомендуем по возможности использовать более точные виды отсутствий, чтобы не создавать помех для работы механизмов расчета зарплаты в 1С.

← На главную