При расчете заработной платы в программе «1С:Зарплата и управление персоналом 3.1» расчетчики часто сталкиваются с необходимостью назначения сотрудникам доплат за совмещение, переработки или работу в особых условиях. Очень часто такие доплаты имеют законодательное или локальное ограничение сверху (например, не более 11 500 рублей в месяц суммарно).
Если сотрудник замещал коллегу один раз за месяц, стандартная формула вида Мин((ДоплатаНов * ОтработаноЧасов / НормаЧасов), 11500) отрабатывает идеально. Но что делать, если в течение одного месяца у сотрудника было два, три или более периодов совмещения/переработок? Программа рассчитает каждый период отдельной строкой и применит ограничение к каждой строке изолированно. В результате совокупная сумма начислений превысит установленный лимит в 11 500 рублей. Рассмотрим подробнее, почему так происходит, и разберем по шагам рабочие способы решения этой проблемы без изменения типовой конфигурации.
Режим расчетов в программе 1С:ЗУП устроен так, что расчетный механизм документа НачислениеЗарплатыИВзносов производит вычисления построчно. Если у сотрудника в течение месяца менялись кадровые условия (подразделение, должность, график работы) или вводились разные документы-основания (например, несколько документов назначения доплаты на разные периоды), программа создает в табличной части несколько строк расчета.
При этом расчетная система вычисляет формулу для каждой строки отдельно. Система «не видит» в момент расчета первой строки, сколько будет начислено по второй и третьей. Функция Мин отрабатывает локально для каждой строки, из-за чего итоговая сумма начислений сотрудника за месяц оказывается существенно выше лимита.
Для решения этой проблемы мы можем использовать несколько методических приемов. Разберем три основных сценария настройки.
Это самый надежный и методологически верный способ, который позволяет автоматически собирать все «кусочки» начислений сотрудника за месяц в одну общую сумму и ограничивать ее лимитом. Мы разделим процесс расчета на два этапа: накопление неограниченной суммы и применение лимита к общему итогу.
Шаг 1. Создание технического (вспомогательного) начисления
Нам необходимо создать новое начисление, которое будет рассчитывать полную сумму доплаты без ограничений по всем периодам работы.
Доплата техническая (расчетная).Доход в натуральной форме (это позволит зафиксировать расчетную сумму в программе, но не выплачивать её напрямую сотруднику, чтобы избежать задвоения выплат).Результат рассчитывается и введем формулу расчета без функции ограничения:
ДоплатаНов * ОтработаноЧасов / НормаЧасов
Шаг 2. Настройка основного (итогового) начисления
Теперь создадим то начисление, которое реально пойдет к выплате сотруднику в конверте или на карту.
Доплата итоговая (с ограничением лимита).Повременная оплата труда и надбавки или Прочие начисления и выплаты. Обязательно укажем, что начисление выполняется Ежемесячно.
Мин(РасчетнаяБаза, 11500)
Доплата техническая (расчетная).Текущий месяц.Как это работает при расчете зарплаты?
Проанализируем алгоритм работы программы. При заполнении документа НачислениеЗарплатыИВзносов система сначала рассчитывает все строки технического начисления Доплата техническая (расчетная) за каждый период замещения отдельно. Например, сотруднику начислено три раза по 5 000 рублей. Итого техническая сумма составляет 15 000 рублей.
Затем программа переходит к расчету начисления Доплата итоговая (с ограничением лимита). Она суммирует техническое начисление в рамках показателя РасчетнаяБаза (получается 15 000 рублей), подставляет это значение в формулу основного начисления и находит минимум между 15 000 и 11 500. В итоге к выплате сотруднику начисляется ровно 11 500 рублей одной строкой. Переплата полностью исключается.
Если разделение начислений на несколько строк происходит из-за внутримесячных кадровых изменений (переводов между должностями, графиками работы), мы можем использовать системную настройку укрупнения расчетного периода.
В настройках вашего начисления перейдем на вкладку Основное и найдем флаг Начисляется в целом за месяц.
Если этот флаг установлен, программа принудительно объединит все показатели отработанного времени и нормы за месяц по сотруднику, рассчитает формулу один раз за весь месяц целиком и применит ограничение к общему результату.
Важный нюанс: Часто данный флаг заблокирован для редактирования в зависимости от выбранного назначения начисления. Разберем, как обойти это ограничение:
Начисления.Начисляется в целом за месяц и установим его значение в Да.После проведения этой настройки программа перестанет делить расчет формулы по строкам кадровых перемещений и выдаст единый верный результат с учетом лимита.
Если данные по суммам доплат собираются расчетчиком вручную на основании оперативных данных в течение месяца, мы можем настроить специальный накапливаемый показатель.
Выполним настройку по шагам:
ОбщаяДоплатаНов.Числовой.Данные для расчета зарплаты).
Мин(ОбщаяДоплатаНов, 11500)
При использовании этого способа расчетчики могут вносить суммы доплат сотруднику хоть каждый день. В конце месяца программа автоматически просуммирует все введенные значения этого показателя, сравнит итоговую сумму с лимитом 11 500 рублей и начислит верную величину.
Если выплата доплат должна производиться строго в межрасчетный период через документы РазовоеНачисление, то программа в любом случае проведет расчет по каждому документу отдельно, что приведет к переплате сверх лимита. В этом случае мы рекомендуем настроить компенсационное удержание или сторнирующее начисление в конце месяца.
Для этого можно создать дополнительное начисление, выполняемое при окончательном расчете зарплаты, с формулой:
? (РасчетнаяБаза > 11500, 11500 - РасчетнаяБаза, 0)
Где в качестве расчетной базы будут выступать все ранее проведенные разовые начисления по этой доплате. Если сумма разовых выплат превысила 11 500 рублей, программа автоматически начислит отрицательную корректирующую сумму, которая вернет итоговую выплату сотрудника к установленному лимиту.