При расчете заработной платы в конфигурации 1С:Зарплата и управление персоналом 3.1 (или ЗиКГУ) расчетчики часто сталкиваются с ситуацией, когда сумма РасчетнаяБаза для зависимого начисления (например, ежемесячной премии) не совпадает с арифметической суммой входящих в нее начислений. Особенно ярко это проявляется в месяцах, когда сотрудник находился в отпуске, на больничном или отсутствовал по иным причинам.
В этой статье мы подробно разберем, почему программа «режет» базу, как работает механизм «слоения» периодов и как проверить правильность расчетов с помощью типовых инструментов системы.
Рассмотрим типовую ситуацию. Сотруднику назначены следующие начисления:
Проанализируем пример из практики: сотрудник полмесяца был в отпуске. Ему начислили:
Казалось бы, база для премии должна составить: 8 608,70 + 1 100,00 + 430,44 = 10 139,14 руб. Однако программа при расчете премии показывает базу 9 660,88 руб. Куда исчезли почти 500 рублей? Давайте разбираться по шагам.
Главная особенность 1С:ЗУП 3 заключается в том, что расчетная база — это не просто статичная сумма. Это совокупность долей начислений, которые приходятся на «фактический период действия» того начисления, которое мы рассчитываем.
Когда мы начисляем премию, программа выполняет следующие действия:
Выясним причину на конкретных цифрах. Поскольку надбавка за секретность начислена за полный месяц (допустим, 22 рабочих дня), а премия начисляется только за время фактической работы (например, за 10 дней), программа берет в базу премии не всю сумму надбавки (1 100 руб.), а только ту ее часть, которая математически относится к рабочему периоду:
1 100 * (10 рабочих дней / 22 рабочих дня месяца) = 500 руб.
Остальные 600 рублей надбавки за секретность «висят» над периодом отпуска. А так как в период отпуска премия не действует (она вытеснена), эта часть базы просто игнорируется. Это и есть то самое «каскадное распределение» или «слоение», о котором упоминается в технической литературе.
Чтобы понять, почему премия рассчитывается именно так, проанализируем настройки видов расчета. Нам важны три вкладки в карточке начисления:
1. Вкладка «Расчет базы»
Здесь мы указываем список зависимых начислений. Важно обратить внимание на переключатель периода. Обычно стоит «Текущий месяц». Это значит, что программа будет собирать базу именно за те дни текущего месяца, в которые действует само начисление.
2. Вкладка «Приоритет»
Посмотрим на списки «Начисления, приоритет которых выше» (вытесняющие). Если у премии в этом списке есть «Отпуск», а у надбавки (которая входит в базу) — нет, то возникнет описанный выше разрыв. Премия будет «сжиматься» по периоду, а надбавка останется «растянутой» на весь месяц.
3. Формула расчета
Проверим формулу премии. Обычно она выглядит так:
ПроцентПремии / 100 * РасчетнаяБаза
Система автоматически подставляет в показатель РасчетнаяБаза сумму, уже скорректированную с учетом пересечения периодов.
Если вы сомневаетесь в расчетах, не нужно считать коэффициенты вручную. В программе предусмотрен инструмент прозрачного контроля. Разберем, как им пользоваться:
В этом окне вы увидите не одну строку, а детальный список. Программа покажет каждое базовое начисление и, что самое важное, период, за который оно включено в расчет. Там вы увидите, что надбавка за секретность вошла не одной строкой, а была виртуально «разрезана» периодом отпуска.
Если методология вашего предприятия требует, чтобы премия начислялась на всю сумму надбавки, невзирая на отпуск, можно рассмотреть несколько вариантов настройки:
Если мы уберем «Отпуск» из списка вытесняющих начислений для Премии, она начислится за полный месяц. В этом случае фактический период премии совпадет с фактическим периодом надбавки, и база соберется полностью. Внимание: это приведет к тому, что сумма премии не будет уменьшаться из-за отсутствий сотрудника.
Рассмотрим случай, когда надбавка за секретность тоже должна уменьшаться при отпуске. Если добавить «Отпуск» в приоритеты надбавки, она сама уменьшится пропорционально отработанному времени. Тогда база премии (8 608,70 + уменьшенная секретка + вредность) будет соответствовать ожиданиям «сумма к сумме», так как все начисления будут действовать в одном и том же интервале времени.
Если премия должна зависеть от суммы, начисленной в прошлом месяце, можно изменить период расчета базы на «Предыдущий месяц». В этом случае текущие вытеснения (отпуск этого месяца) не будут влиять на распределение базы прошлого месяца, но это изменит саму логику премирования.
Таким образом, мы выяснили, что поведение 1С:ЗУП 3 является логически обоснованным с точки зрения разработчиков: программа защищает от ситуации, когда сотруднику начисляется премия за периоды, в которые он фактически не работал, даже если базовые надбавки за эти периоды были выплачены в полном объеме.