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

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

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

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

Выясняем причину: как программа рассчитывает показатели времени

Для начала проанализируем, как система 1С:ЗУП 3.1 определяет период действия начисления и рассчитывает временные показатели. Пользователи часто полагают, что достаточно указать вид времени «Явка» на вкладке «Учет времени» в настройках начисления, чтобы программа автоматически отсекла все периоды отсутствий. Однако это не так.

Логика программы строится на следующих правилах:

  1. Назначение вкладки «Учет времени»: Настройки в этом разделе (например, выбор вида времени «Явка» или «Рабочее время») всего лишь указывают системе, какие именно типы дней из графика или табеля сотрудника нужно подсчитывать. Но эта вкладка не ограничивает фактический период действия самого начисления.
  2. Связь показателей с периодом действия: Предопределенные показатели времени (такие как ВремяВДнях, ВремяВЧасах, ОтработаноДней) рассчитываются строго за фактический период действия конкретного начисления.
  3. Отсутствие настроенных приоритетов: Если для создаваемого начисления не настроены правила вытеснения, программа считает, что начисление действует весь месяц (с 1 по последнее число). Соответственно, показатель ВремяВДнях запрашивает данные за весь этот период и возвращает полную сумму рабочих дней по графику сотрудника, игнорируя введенный документ «Отпуск» или «Больничный лист» .

Способ 1. Настройка механизма вытеснения на вкладке «Приоритет»

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

  1. Перейдем в меню Настройки — Начисления и откроем карточку нужного начисления (например, премии).
  2. Перейдем на вкладку «Приоритет».
  3. В левой табличной части под названием «Начисления, приоритет которых выше» нажмем кнопку «Добавить».
  4. Выберем из списка те виды начислений, которые должны вытеснять наше начисление. В обязательном порядке добавим туда:
    • «Отпуск основной» (и другие виды используемых отпусков);
    • «Больничный» (за счет работодателя и за счет ФСС);
    • «Командировка»;
    • «Отпуск без сохранения оплаты» и другие виды отсутствий.

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

Если расчет премии должен производиться пропорционально дням от некоторой фиксированной суммы, в формуле начисления на вкладке «Основное» следует использовать классическую конструкцию:

СуммаПремии * ВремяВДнях / НормаДней

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

Способ 2. Расчет процентом от базы (альтернативный и надежный вариант)

Существует еще один очень удобный способ настройки подобных премий, который позволяет избежать сложного ручного подбора вытесняющих начислений на вкладке «Приоритет». Это расчет процентом от базы.</p

Рассмотрим эту логику подробнее. Нам известно, что основное начисление сотрудника (например, «Оплата по окладу») уже настроено в программе корректно: для него по умолчанию заданы все приоритеты вытеснения, и оклад всегда начисляется пропорционально отработанным дням.

Мы можем привязать расчет нашей премии к начисленному окладу. Для этого настроим начисление следующим образом:

  1. На вкладке «Основное» установим формулу расчета:
    РасчетнаяБаза * ПроцентПремии / 100
  2. На вкладке «Расчет базы» в список базовых начислений добавим «Оплата по окладу» (и другие основные начисления сотрудника, если это необходимо).

При таком подходе премия автоматически рассчитается только за фактически отработанное время, так как сам базовый оклад уже уменьшен пропорционально дням отсутствия (включая отпуска и больничные). Настраивать вкладку «Приоритет» для самой премии в этом случае не потребуется.

Важные ограничения платформы и нюансы настройки

При работе с механизмами вытеснения и показателями времени в 1С:ЗУП 3.1 следует учитывать несколько важных технических ограничений:

← На главную