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