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