При любом кадровом изменении в середине календарного месяца (перевод на другую должность, смена графика работы или размера тарифной ставки) программа 1С:ЗУП 3.1 автоматически разбивает период расчета на подпериоды. В результате в документе Начисление зарплаты и взносов образуются две строки основного начисления и две отдельные строки начисления Доплата до МРОТ. Из-за особенностей математической функции МАКС итоговая сумма зарплаты вместе с доплатой за месяц может оказаться выше положенной суммы МРОТ.
Разберем математическую логику вычисления. Стандартная формула доплаты до МРОТ имеет следующий вид:
МАКС(МРОТ * ВремяВДнях / НормаДней - РасчетнаяБаза, 0)
Проанализируем, что происходит при разбиении месяца кадровым документом на два интервала. Функция МАКС является нелинейной, поэтому математически результат расчета по частям не равен расчету за весь месяц целиком:
МАКС(A, 0) + МАКС(B, 0) >= МАКС(A + B, 0)
Рассмотрим пример: в первой половине месяца сотрудник работал по низкой тарифной ставке, и программа начислила ему доплату до половины МРОТ. Во второй половине месяца сотрудника перевели на высокую ставку, где его заработок превысил половину МРОТ, поэтому доплата за второй период составила 0. В результате суммирования двух строк сотрудник получает оплату за вторую половину месяца по высокому тарифу плюс доплату за первую половину месяца, что в сумме дает итоговый доход за месяц выше установленного МРОТ.
Рассмотрим несколько проверенных способов решения этой проблемы — от настройки типового функционала до применения внешних обработок и расширений.
Если причиной разбиения начисления стала смена графика в середине месяца, проверим настройки нормы времени при смене графика. Перейдем в настройки программы и зададим порядок расчета нормы времени. Чтобы платформа не рассчитывала норму отдельно по каждому графику, создадим документ Индивидуальный график на весь месяц. В этом случае норма времени будет определена единым значением за весь календарный месяц.
Разберем способ обхода ограничений формульного редактора. Создадим в справочнике показателей новый показатель со значением «Накапливается по отдельным значениям» и типом использования «Разовое использование». Добавим этот показатель в формулу вида расчета Доплата до МРОТ:
МАКС(МРОТ * ВремяВДнях / НормаДней - РасчетнаяБаза, 0) + НеРазделятьПоПериодам * 0
В настройках вида начисления установим выбор накапливаемых показателей «Все накопленные значения за месяц». Наличие такого показателя заставляет механизм расчета программы обращаться к данным за полный месяц и не делиться на подпериоды.
Проанализируем практический подход для сложных сменных графиков и частых переводов. Создадим внешний отчет или обработку, которая рассчитывает корректную доплату до МРОТ за полный календарный месяц с учетом всех кадровых перемещений. Начисление выполняется документом Разовое начисление или путем ввода планового начисления с фиксированной суммой, рассчитанной внешним отчетом.
Для автоматизации процесса создадим программное расширение конфигурации (без снятия базы с поддержки). Расширение перед проведением документа Начисление зарплаты и взносов находит сотрудников с несколькими строками доплаты до МРОТ, сворачивает их в одну строку и производит итоговый перерасчет с учетом всей расчетной базы за месяц.