Как настроить формулу расчета сверхурочных в 1С:ЗУП с учетом всех начислений и отработанного времени?

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

При настройке расчета заработной платы в 1С:ЗУП часто возникает задача корректно рассчитать стоимость часа для оплаты сверхурочной работы. Проблема заключается в том, что при попытке создать формулу вида "Расчетная база / Фактически отработанное время за месяц * Количество сверхурочных часов", система может некорректно определять знаменатель — "Фактически отработанное время". Вместо общего количества отработанных часов (например, 148 часов за месяц), программа подставляет только часы сверхурочной работы (например, 15 часов), что приводит к завышенному результату.

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

Анализ проблемы: почему стандартные показатели работают не так, как ожидается?

Корень проблемы кроется не в ошибке как таковой, а в логике работы предопределенных показателей расчета зарплаты в 1С:ЗУП. Когда мы создаем начисление для оплаты сверхурочных, мы обычно указываем на вкладке "Учет времени", что оно рассчитывается за вид времени "Сверхурочная работа" (С).

В этот момент происходит следующее:

  1. Система при расчете этого начисления фильтрует общую таблицу данных о времени сотрудника и оставляет только строки, относящиеся к сверхурочной работе.
  2. Специализированные показатели, такие как ОтработаноСверхурочно или ОтработаноСверхурочноВПределах2Часов, корректно считывают часы из этих отфильтрованных строк.
  3. А вот универсальный показатель ВремяВЧасах или ОтработаноЧасов, который, как мы ожидаем, должен показать все часы за месяц, в контексте этого начисления также "видит" только отфильтрованные данные. То есть, он видит только часы сверхурочной работы.

Из-за этого и возникает конфликт: при одновременном использовании в формуле показателей ОтработаноСверхурочно и ВремяВЧасах, оба они работают с одним и тем же урезанным набором данных о времени. Разработчики 1С создали показатель ОтработаноСверхурочно специально для того, чтобы реализовать сложную логику разделения оплаты на первые два часа (в полуторном размере) и последующие (в двойном). Эта специализация и накладывает ограничение на его использование в сложных формулах с другими временными показателями.

Это не баг, а программное ограничение. Показатель ОтработаноСверхурочно работает корректно только тогда, когда в учете времени для начисления выбраны исключительно сверхурочные.

Решение для старых версий ЗУП: обходной путь через два начисления

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

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

Шаг 1. Создаем начисление "Стоимость часа надбавок"

Это техническое начисление, которое будет рассчитывать стоимость одного часа работы сотрудника с учетом всех необходимых надбавок и премий.

  1. Создайте новое начисление, например, "Стоимость часа надбавок по Я".
  2. На вкладке "Основное" укажите назначение начисления "Прочие начисления и выплаты".
  3. На вкладке "Учет времени" укажите, что это дополнительное начисление за уже оплаченное время, и в видах времени выберите "Сверхурочная работа" (С). Это ключевой момент.
  4. На вкладке "Расчет базы" укажите все начисления (премии, надбавки), которые должны войти в расчет стоимости часа.
  5. На вкладке "Формула" пропишите следующее выражение:
    
    РасчетнаяБаза / (ОтработаноЧасов - ВремяВЧасах)
    

Проанализируем эту формулу. Поскольку в учете времени мы указали "С", то при расчете этого начисления показатель ВремяВЧасах будет равен количеству сверхурочных часов. Показатель ОтработаноЧасов в этом контексте может вести себя по-разному, но в данной комбинации разница (ОтработаноЧасов - ВремяВЧасах) даст нам именно количество часов по явке (Я). Таким образом, мы делим нужную нам расчетную базу на общее количество отработанных часов, получая верную стоимость часа.

Шаг 2. Создаем начисление "Доплата за сверхурочные (новый расчет)"

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

  1. Создайте новое начисление, например, "Доплата за сверхурочные (новый расчет)".
  2. Назначение начисления — "Сверхурочная работа".
  3. На вкладке "Формула" используйте стандартную логику, но в качестве множителя укажите РасчетнаяБаза:
    
    (ОтработаноСверхурочноВПределах2Часов * 1.5 + (ОтработаноСверхурочно - ОтработаноСверхурочноВПределах2Часов) * 2) * РасчетнаяБаза
    

    Внимание: в некоторых случаях может потребоваться вычесть единицу из коэффициента, если час уже оплачен в другом начислении. Формула может выглядеть так: (ОтработаноСверхурочноВПределах2Часов * 0.5 + (ОтработаноСверхурочно - ОтработаноСверхурочноВПределах2Часов) * 1) * РасчетнаяБаза. Выбор зависит от вашей системы оплаты.

  4. На вкладке "Расчет базы" этого начисления укажите только одно начисление — созданное на первом шаге "Стоимость часа надбавок по Я".

Таким образом, когда в документе "Начисление зарплаты и взносов" появятся сверхурочные, программа сначала рассчитает строку с начислением "Стоимость часа надбавок", определив верную стоимость часа, а затем использует этот результат для расчета итоговой доплаты. Этот метод, хоть и сложен в настройке, позволяет обойти программные ограничения.

Современное и правильное решение: используем штатный функционал 1С:ЗУП

В связи со вступлением в силу Федерального закона от 22.04.2024 № 91-ФЗ, который требует включать в расчет доплаты за сверхурочные все компенсационные и стимулирующие выплаты, фирма "1С" добавила в ЗУП (начиная с версий 3.1.28.136 и 3.1.27.193) новый мощный механизм. Он делает все вышеописанные "танцы с бубном" ненужными.

Теперь для корректного расчета используются новые предопределенные показатели.

Подход 1: Расчет на основе Совокупной тарифной ставки

Этот способ подходит, если в базу для расчета сверхурочных входят оклад и другие плановые, постоянные начисления (ежемесячные премии, надбавки).

  1. Перейдите в раздел "Настройка" → "Расчет зарплаты".
  2. Нажмите на ссылку "Настройка состава начислений и удержаний".
  3. На вкладке "Прочие начисления" убедитесь, что установлен флаг "Используется расчет совокупной тарифной ставки".
  4. Вернитесь в раздел "Расчет зарплаты" и перейдите по появившейся ссылке "Показатели, определяющие состав совокупной тарифной ставки". Здесь выберите все плановые начисления, которые должны участвовать в расчете.
  5. Откройте ваше начисление "Оплата сверхурочных часов" и измените его формулу на следующую:
    
    СтоимостьДняЧасаСовокупная * ВремяВЧасах * КоэффициентОплатыСверхурочных
    

    Или еще проще, можно использовать стандартную предопределенную формулу, которая уже учитывает этот показатель.

Показатель СтоимостьДняЧасаСовокупная автоматически рассчитает стоимость часа на основе всех указанных вами плановых начислений и нормы времени сотрудника. Программа сама применит коэффициенты 1.5 и 2.

Подход 2: Учет разовых начислений

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

  1. Откройте начисление "Оплата сверхурочных часов".
  2. В формуле расчета используйте новый показатель СтоимостьДняЧасаСУчетомРазовыхНачислений.
  3. Как только вы добавите этот показатель в формулу, в настройках вида начисления появится новая вкладка — "Расчет тарифной ставки".
  4. Перейдите на эту вкладку и в табличной части укажите все разовые начисления (например, "Премия квартальная"), которые должны быть учтены при расчете стоимости часа в этом месяце.

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

Подведем итог: проблема с расчетом базы для сверхурочных в 1С:ЗУП имеет глубокие технические причины. Ранее для ее решения требовались сложные настройки с несколькими начислениями. Однако сегодня, благодаря обновлениям программы, настоятельно рекомендуется использовать штатные механизмы с показателями СтоимостьДняЧасаСовокупная и СтоимостьДняЧасаСУчетомРазовыхНачислений. Это не только проще в настройке, но и гарантирует соответствие вашего расчета последним требованиям законодательства.

← На главную