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