При настройке расчета заработной платы в 1С:ЗУП часто возникает задача корректно рассчитать стоимость часа для оплаты сверхурочной работы. Проблема заключается в том, что при попытке создать формулу вида "Расчетная база / Фактически отработанное время за месяц * Количество сверхурочных часов", система может некорректно определять знаменатель — "Фактически отработанное время". Вместо общего количества отработанных часов (например, 148 часов за месяц), программа подставляет только часы сверхурочной работы (например, 15 часов), что приводит к завышенному результату.
Давайте вместе разберемся, почему так происходит, какие существуют обходные пути для решения этой задачи в старых версиях программы, и как использовать современный штатный функционал, появившийся в последних релизах 1С:ЗУП в связи с изменениями в законодательстве.
Корень проблемы кроется не в ошибке как таковой, а в логике работы предопределенных показателей расчета зарплаты в 1С:ЗУП. Когда мы создаем начисление для оплаты сверхурочных, мы обычно указываем на вкладке "Учет времени", что оно рассчитывается за вид времени "Сверхурочная работа" (С).
В этот момент происходит следующее:
ОтработаноСверхурочно или ОтработаноСверхурочноВПределах2Часов, корректно считывают часы из этих отфильтрованных строк.ВремяВЧасах или ОтработаноЧасов, который, как мы ожидаем, должен показать все часы за месяц, в контексте этого начисления также "видит" только отфильтрованные данные. То есть, он видит только часы сверхурочной работы.Из-за этого и возникает конфликт: при одновременном использовании в формуле показателей ОтработаноСверхурочно и ВремяВЧасах, оба они работают с одним и тем же урезанным набором данных о времени. Разработчики 1С создали показатель ОтработаноСверхурочно специально для того, чтобы реализовать сложную логику разделения оплаты на первые два часа (в полуторном размере) и последующие (в двойном). Эта специализация и накладывает ограничение на его использование в сложных формулах с другими временными показателями.
Это не баг, а программное ограничение. Показатель ОтработаноСверхурочно работает корректно только тогда, когда в учете времени для начисления выбраны исключительно сверхурочные.
До появления штатного механизма опытные консультанты и программисты использовали элегантный обходной путь, который позволял "обмануть" систему и заставить ее посчитать стоимость часа на основе правильных данных. Рассмотрим этот метод по шагам.
Суть метода: мы разделяем расчет на два этапа. На первом этапе мы создаем вспомогательное начисление, которое вычисляет правильную стоимость одного часа. На втором этапе мы используем эту стоимость для расчета итоговой суммы доплаты за сверхурочные.
Это техническое начисление, которое будет рассчитывать стоимость одного часа работы сотрудника с учетом всех необходимых надбавок и премий.
РасчетнаяБаза / (ОтработаноЧасов - ВремяВЧасах)
Проанализируем эту формулу. Поскольку в учете времени мы указали "С", то при расчете этого начисления показатель ВремяВЧасах будет равен количеству сверхурочных часов. Показатель ОтработаноЧасов в этом контексте может вести себя по-разному, но в данной комбинации разница (ОтработаноЧасов - ВремяВЧасах) даст нам именно количество часов по явке (Я). Таким образом, мы делим нужную нам расчетную базу на общее количество отработанных часов, получая верную стоимость часа.
Теперь создадим основное начисление, которое будет рассчитывать саму доплату.
РасчетнаяБаза:
(ОтработаноСверхурочноВПределах2Часов * 1.5 + (ОтработаноСверхурочно - ОтработаноСверхурочноВПределах2Часов) * 2) * РасчетнаяБаза
Внимание: в некоторых случаях может потребоваться вычесть единицу из коэффициента, если час уже оплачен в другом начислении. Формула может выглядеть так: (ОтработаноСверхурочноВПределах2Часов * 0.5 + (ОтработаноСверхурочно - ОтработаноСверхурочноВПределах2Часов) * 1) * РасчетнаяБаза. Выбор зависит от вашей системы оплаты.
Таким образом, когда в документе "Начисление зарплаты и взносов" появятся сверхурочные, программа сначала рассчитает строку с начислением "Стоимость часа надбавок", определив верную стоимость часа, а затем использует этот результат для расчета итоговой доплаты. Этот метод, хоть и сложен в настройке, позволяет обойти программные ограничения.
В связи со вступлением в силу Федерального закона от 22.04.2024 № 91-ФЗ, который требует включать в расчет доплаты за сверхурочные все компенсационные и стимулирующие выплаты, фирма "1С" добавила в ЗУП (начиная с версий 3.1.28.136 и 3.1.27.193) новый мощный механизм. Он делает все вышеописанные "танцы с бубном" ненужными.
Теперь для корректного расчета используются новые предопределенные показатели.
Этот способ подходит, если в базу для расчета сверхурочных входят оклад и другие плановые, постоянные начисления (ежемесячные премии, надбавки).
СтоимостьДняЧасаСовокупная * ВремяВЧасах * КоэффициентОплатыСверхурочных
Или еще проще, можно использовать стандартную предопределенную формулу, которая уже учитывает этот показатель.
Показатель СтоимостьДняЧасаСовокупная автоматически рассчитает стоимость часа на основе всех указанных вами плановых начислений и нормы времени сотрудника. Программа сама применит коэффициенты 1.5 и 2.
Если в расчет нужно включить разовые премии, которые не входят в совокупную тарифную ставку, используйте другой, еще более гибкий показатель.
СтоимостьДняЧасаСУчетомРазовыхНачислений.Этот механизм дает максимальный контроль, позволяя для каждого вида доплаты (за сверхурочные, за работу в выходные) определить свой уникальный состав разовых начислений для расчета базы.
Подведем итог: проблема с расчетом базы для сверхурочных в 1С:ЗУП имеет глубокие технические причины. Ранее для ее решения требовались сложные настройки с несколькими начислениями. Однако сегодня, благодаря обновлениям программы, настоятельно рекомендуется использовать штатные механизмы с показателями СтоимостьДняЧасаСовокупная и СтоимостьДняЧасаСУчетомРазовыхНачислений. Это не только проще в настройке, но и гарантирует соответствие вашего расчета последним требованиям законодательства.