Как настроить доплату до оклада при отпуске, командировке и больничном в 1С:ЗУП 3.1 без ручного ввода?

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

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

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

Почему стандартные формулы дают сбой: анализ причин

Рассмотрим две ключевые проблемы, с которыми сталкиваются расчетчики при попытке настроить доплату «в лоб» через стандартные показатели ВремяВДнях или ОтработаноДней.

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

Универсальный штатный метод: использование технического начисления

Чтобы решить проблему расчета по рабочим дням без доработки конфигурации и без ручного заполнения документов, мы применим методологию «технического начисления» (аналогичный подход используется для настройки доплаты до МРОТ). Выясним суть этого метода: мы создадим специальное начисление, которое будет рассчитывать оклад только за рабочие дни неявки, а затем используем его в расчетной базе основной доплаты.

Шаг 1. Создание и настройка технического начисления

Для начала настроим вспомогательное техническое начисление, которое определит сумму оклада, приходящуюся на рабочие дни отпуска по графику сотрудника. Назовем его, например, Оклад на период отпуска (технический).

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

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

Шаг 2. Настройка основного начисления доплаты до оклада

Теперь создадим основное начисление доплаты, которое будет выплачиваться сотруднику на руки. Назовем его Доплата до оклада за дни отпуска.

  1. Создадим новое начисление. Назначение начисления выберем как Дополнительная оплата за уже оплаченное время.
  2. На вкладке Учет времени укажем вид времени: Отпуск основной.
  3. Формула расчета должна сравнивать оклад за рабочие дни отпуска с фактически начисленными отпускными. Для этого мы настроим расчетную базу. Введем формулу:
  4. Макс(0, ОкладНаПериодОтпускаТехнический - РасчетнаяБаза)
  5. На вкладке Расчет базы в список базовых начислений добавим только Отпуск основной (или все виды отпусков, за которые положена доплата). Период расчета базы установим как Текущий месяц.

Разберем по шагам логику расчета этой формулы на примере:

Допустим, у сотрудника оклад составляет 60 000 рублей при норме 20 рабочих дней в месяце. Он уходит в отпуск на 14 календарных дней, на которые приходится 10 рабочих дней по его графику. Фактическая сумма начисленных отпускных составила 22 000 рублей.

Настройка приоритетов при нескольких неявках в одном месяце

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

Важные нюансы работы с документом «Табель»

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

Альтернатива для больничных листов

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

  1. Перейдите в меню Настройка — Расчет зарплаты.
  2. Нажмите на ссылку Настройка состава начислений и удержаний.
  3. На вкладке Прочие начисления установите флажок Доплата за дни болезни.
  4. После применения настроек в списке начислений автоматически появится предопределенный вид расчета Доплата за дни болезни, который учитывает разницу между средним заработком по больничному листу и фактическим окладом сотрудника по рабочим дням.

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

← На главную