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

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

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

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

Анализ базового решения с форума: формула с логическим условием

Для реализации этой логики участники форума предложили использовать формулу с логическим условием ?(). Давайте разберем эту конструкцию подробно. Предложенная формула выглядит следующим образом:


?(РасчетнаяБаза > Оклад * ДоляНеполногоРабочегоВремени, Оклад * ДоляНеполногоРабочегоВремени, РасчетнаяБаза) * ПроцентНадбавки / 100

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

  1. Конструкция ?(Условие, Выражение1, Выражение2) проверяет заданное условие. Если оно истинно, программа возвращает результат Выражение1, если ложно — Выражение2.
  2. Показатель Оклад * ДоляНеполногоРабочегоВремени определяет целевой лимит начисления за месяц. Если сотрудник работает на полную ставку, показатель ДоляНеполногоРабочегоВремени равен 1, и лимитом выступает его обычный оклад. Если сотрудник оформлен, например, на полставки (0.5), лимит пропорционально уменьшается.
  3. Программа сравнивает фактическую расчетную базу (РасчетнаяБаза), в которую входит только оплата по часовому тарифу или окладу за фактически отработанные часы, с рассчитанным лимитом.
  4. Если из-за переработок РасчетнаяБаза превышает оклад, программа отбрасывает фактическую базу и берет для расчета лимит (оклад).
  5. Если сотрудник отработал меньше нормы (например, из-за больничного), то РасчетнаяБаза окажется меньше оклада. Условие не выполнится, и программа рассчитает надбавку от фактической (уменьшенной) расчетной базы.

Данная формула полностью работоспособна, однако ее можно сделать более изящной и простой для чтения.

Оптимизированная альтернатива через математическую функцию МИН

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

МИН(РасчетнаяБаза, Оклад * ДоляНеполногоРабочегоВремени) * ПроцентНадбавки / 100

Проанализируем преимущества этого подхода:

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

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

В таких случаях система 1С:ЗУП автоматически разбивает расчет начисления на несколько периодов (строк в документе расчета). Это приводит к следующим последствиям:

Если на вашем предприятии кадровые изменения внутри месяца происходят часто, мы рекомендуем использовать двухэтапный расчет:

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

Особенности настройки для сотрудников на почасовой оплате

В сообщениях форума упоминается «оклад по часам» и «оплата по часовому тарифу». Это принципиально разные показатели в системе 1С:ЗУП 3.1. Разберем, как адаптировать формулу под разные формы оплаты труда:

  1. Оплата по окладу (по часам): Если сотрудникам назначено это типовое начисление, показатель Оклад в системе заполнен. Предложенная выше формула сработает без изменений.
  2. Оплата по часовому тарифу: У таких сотрудников в кадровых данных нет показателя Оклад, а используется показатель ТарифнаяСтавкаЧасовая. Если запустить формулу с показателем Оклад, программа выдаст ошибку или вернет нулевой результат.

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

МИН(РасчетнаяБаза, ТарифнаяСтавкаЧасовая * НормаЧасов) * ПроцентНадбавки / 100

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

Критически важные настройки карточки начисления

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

Настройка вкладки «Расчет базы»

Перейдем на вкладку «Расчет базы» в форме настройки начисления. Здесь крайне важно четко определить список базовых начислений:

Настройка вкладки «Приоритет» (Вытеснения)

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

Таким образом, комбинируя изящную формулу с функцией МИН и точечную настройку базовых начислений и приоритетов вытеснения, мы получаем гибкий и полностью автоматизированный инструмент расчета надбавки, который защищает компанию от переплат при сверхурочной работе сотрудников и корректно учитывает любые периоды их отсутствия.

← На главную