В работе кадровых служб и расчетных отделов часто возникает задача: настроить ежемесячную премию таким образом, чтобы она выплачивалась только тем сотрудникам, которые полностью отработали расчетный месяц. В частности, это касается ситуации, когда сотрудник увольняется не в последний день месяца. Рассмотрим несколько подходов к решению этой задачи в 1С:Зарплата и Управление Персоналом, от простых настроек до доработки конфигурации, а также проанализируем важные юридические аспекты.
Важное методологическое замечание: Прежде чем приступать к технической реализации, необходимо убедиться, что такой порядок премирования четко зафиксирован в локальных нормативных актах вашей организации (например, в Положении об оплате труда или Положении о премировании). В документах должно быть прямо указано, что право на премию возникает только при условии полной отработки нормы рабочего времени за месяц. В противном случае, невыплата премии может быть оспорена в суде.
Самый очевидный способ ограничить начисление — изменить его формулу. Идея состоит в том, чтобы добавить в формулу условие, которое будет проверять, равно ли количество отработанных дней норме дней за месяц. Если условие выполняется, премия рассчитывается, если нет — результат равен нулю.
Для этого воспользуемся встроенным в 1С условным оператором ?(Условие, Выражение1, Выражение2).
Простой вариант формулы может выглядеть так:
?(ВремяВДнях = НормаДней, РасчетнаяБаза, 0)
Разберем эту формулу по частям:
ВремяВДнях — предопределенный показатель, который содержит количество фактически отработанных сотрудником дней в месяце.НормаДней — предопределенный показатель, содержащий норму рабочих дней в месяце по графику сотрудника.ВремяВДнях = НормаДней — это наше условие. Оно вернет "Истина", если отработано столько же дней, сколько и положено по норме.РасчетнаяБаза — показатель, который содержит базу для расчета премии (например, оклад). Если условие истинно, формула вернет это значение.0 — если условие ложно (отработанных дней меньше нормы), формула вернет ноль.Важный нюанс: Такой подход имеет существенный недостаток. Премия не будет начислена любому сотруднику, который отработал неполный месяц, например, из-за больничного или отпуска, а не только уволенному. Если задача состоит в том, чтобы лишить премии только увольняющихся в середине месяца, а для остальных считать ее пропорционально, этот способ не подойдет. Он применим только в том случае, если политика компании действительно подразумевает выплату премии исключительно за 100% отработку нормы времени для всех без исключения.
Этот способ более гибкий и позволяет принимать решение по каждому сотруднику индивидуально. Он основан на введении в формулу специального показателя, который можно изменять вручную перед расчетом зарплаты.
Предположим, в нашей формуле премии уже есть показатель, влияющий на ее процент, например, ПроцентЕжемесячнойПремии. Мы можем обнулить его для конкретного сотрудника перед увольнением.
Разберем по шагам:
РасчетнаяБаза * ПроцентЕжемесячнойПремии / 100.ПроцентЕжемесячнойПремии и установить ему значение 0. Этот документ должен быть датирован месяцем увольнения.Преимущества:
Недостатки:
Это наиболее надежный, но и самый сложный способ, требующий привлечения программиста 1С. Идея заключается в том, чтобы при проведении документа "Увольнение" программно изменить дату окончания планового начисления премии.
Если сотрудник увольняется не в последний день месяца, нужно сделать так, чтобы плановое начисление его премии прекратилось не датой увольнения, а последним днем предыдущего месяца. В этом случае в текущем месяце премия ему просто не будет предложена к расчету.
Внимание! Все доработки конфигурации следует выполнять через механизм расширений, чтобы не снимать конфигурацию с поддержки.
Алгоритм для программиста:
ОбработкаПроведения для документа "Увольнение" с порядком выполнения "Перед".Примерный участок кода, на который стоит обратить внимание в модуле менеджера документа Увольнение, — это вызов процедуры прекращения плановых начислений:
// Прекращаем плановые начисления
РасчетЗарплатыРасширенный.ПрекратитьВсеПлановыеНачисленияПоТаблицеСотрудников(
Движения, ДанныеДляПроведения.ДанныеДляРегистрацииПрекращенияПлановыхНачислений);
Нужно вмешаться до выполнения этого кода и скорректировать данные в таблице ДанныеДляПроведения.ДанныеДляРегистрацииПрекращенияПлановыхНачислений, изменив дату прекращения для целевого начисления.
Преимущества:
Недостатки:
Выбор способа зависит от ваших ресурсов и внутренних процессов. Метод с настройкой формулы прост, но подходит не для всех ситуаций. Ручная корректировка — хороший компромисс, если у вас немного увольнений и ответственные сотрудники. Доработка конфигурации — самый надежный, но и самый затратный путь. Независимо от выбранного технического решения, ключевым фактором является юридическая чистота: наличие четких и недвусмысленных формулировок в ваших локальных нормативных актах.