При настройке дополнительных начислений в программе 1С:Зарплата и Управление Персоналом 2.5 (редакция на обычных формах) специалисты часто сталкиваются с неожиданным поведением системы. Одной из таких проблем является расчет надбавки за вредность, которая должна начисляться строго за фактически отработанные во вредных условиях часы, зафиксированные в табеле. Однако программа вместо нулевого результата часто подставляет полную норму времени за месяц. Разберем подробно, почему это происходит и какими способами можно добиться корректного расчета.
Рассмотрим ситуацию: в системе создан новый вид расчета «Вредность по часам». На вкладке «Время» указано, что это «Дополнительное начисление за уже оплаченное время», а вид времени выбран как «Вредные условия» (со своим буквенным обозначением в табеле, например, «ВД»).
Формула расчета выглядит стандартно:
(ТарифнаяСтавкаМесячная / НормаВремениВЧасах) * ВремяВЧасах * ПроцентЗаВредныеУсловияТруда
Проблема заключается в логике работы предопределенного показателя ВремяВЧасах для дополнительных начислений. В 1С:ЗУП 2.5 заложен алгоритм: если для начисления не введены уточняющие данные (например, записи в табеле по конкретному виду времени), система считает, что начисление должно быть произведено за весь фактически отработанный период сотрудника. Если же сотрудник отработал полный месяц по основному графику, но «вредных» часов у него не было, показатель ВремяВЧасах примет значение, равное НормаВремениВЧасах. В итоге сотрудник получает полную надбавку, хотя вредных условий в этом месяце не было.
Проанализируем возможность изменения самой формулы. Мы можем добавить логическую проверку, которая будет обнулять результат, если время совпадает с нормой. Однако здесь кроется ловушка: если сотрудник действительно отработал все часы во вредных условиях, расчет может ошибочно выдать ноль.
Тем не менее, для большинства случаев подходит формула с условием:
?((ВремяВЧасах = НормаВремениВЧасах), 0, ВремяВЧасах) * ПроцентЗаВредныеУсловияТруда * (ТарифнаяСтавкаМесячная / НормаВремениВЧасах)
Рассмотрим подробнее риски этого метода:
ВремяВЧасах = НормаВремениВЧасах сработает и выдаст 0.Посмотрим на более «чистый» с точки зрения архитектуры способ. Вместо использования стандартного ВремяВЧасах, мы можем попытаться создать свой показатель в справочнике «Показатели схем мотивации».
Алгоритм настройки следующий:
ЧасыВредности.Однако на практике в ЗУП 2.5 этот метод часто дает 0 даже тогда, когда часы в табеле есть. Это связано с тем, что дополнительные начисления плохо «видят» произвольные показатели времени, если они не являются основными начислениями. Чтобы этот метод заработал, вид расчета должен быть настроен крайне внимательно, с указанием связи вида времени на вкладке «Время».
Выясним причину, по которой расчетчики часто прибегают к «костылям». Если система упорно подставляет норму при пустом табеле, можно применить метод «минимального присутствия».
Если в табеле за месяц не заведено ни одного часа по коду «ВД», программа считает начисление по полной. Но если вы укажете в любой из рабочих дней минимальное значение, например, ВД 0,0001, система увидит, что данные по этому виду времени существуют. При расчете показатель ВремяВЧасах подтянет общую сумму за месяц (0,0001), что при округлении даст итоговый результат 0 руб. 00 коп. Это гарантирует, что начисление не будет рассчитано по норме.
Проанализируем еще одну настройку вида расчета. В форме настройки начисления на вкладке «Общее» можно выбрать способ начисления «Только в тех месяцах, в которых введены значения показателей».
Для этого:
ПроцентВредности (тип: Числовой, использование: Для сотрудника).При настройке подобных расчетов важно помнить о нескольких технических моментах:
ВремяВЧасах, наличие проведенного табеля обязательно для корректного заполнения фактических данных.Подводя итог, наиболее стабильным (хотя и требующим дисциплины от расчетчика) является метод с проверкой на наличие данных в табеле или использование механизма расчета «Только в тех месяцах, в которых введены значения показателей». Это позволяет избежать ситуации, когда программа самовольно начисляет надбавку за время, которое не было фактически отработано во вредных условиях.