Настройка оплаты работы в выходные и праздники в 1С:ЗУП при смене системы оплаты труда

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

В практике расчета заработной платы часто встречаются ситуации, когда сотрудник переводится с одной системы оплаты труда на другую (например, с часовой тарифной ставки на оклад) в середине месяца. Это может вызывать коллизии при расчете специализированных начислений, таких как оплата работы в выходные и праздничные дни. Рассмотрим проблему, когда программа ошибочно начисляет лишние суммы за работу в выходной день, приходящийся на период до перевода, и разберем способы ее решения с помощью настройки формул в 1С:Зарплата и Управление Персоналом (ЗУП) версии 3.1 КОРП и ПРОФ.

Суть проблемы: двойное начисление при переводе

Рассмотрим ситуацию. В организации используются разные схемы оплаты работы в выходные для разных категорий сотрудников:

  1. Для сотрудников на окладе: Начисляется «Оплата работы в выходные и праздники» (одинарная ставка) + «Доплата за работу в выходные и праздники» (одинарная ставка). В сумме получается двойная оплата.
  2. Для сотрудников на часовой тарифной ставке (ЧТС): Начисляется основная «Оплата по часовому тарифу» + «Доплата за работу в выходные и праздники».

Сотрудник работал на ЧТС, и 12-го числа вышел на работу в выходной день. С 16-го числа того же месяца его переводят на оклад. При расчете зарплаты за месяц программа видит, что сотрудник в этом месяце имеет статус «окладника» (пусть и частично), и для работы в выходной (12-го числа) ошибочно начисляет и «Оплату» (предназначенную только для окладников), и «Доплату». В результате возникает переплата или некорректный расчет.

Наша задача — настроить формулу начисления «Оплата работы в выходные и праздники» так, чтобы она рассчитывалась только для сотрудников на окладе и игнорировала сотрудников на ЧТС, не прибегая к программированию в конфигураторе.

Способ 1: Использование условных операторов и стандартных показателей (Рекомендуемый)

Самый изящный способ решить задачу без создания лишних документов и показателей — использовать в формуле начисления логическую проверку. В 1С:ЗУП для любого сотрудника можно определить, является ли он «почасовиком», проверив наличие часовой тарифной ставки.

Если у сотрудника установлена ЧТС, значит показатель ТарифнаяСтавкаЧасовая будет больше нуля. Если сотрудник на окладе, этот показатель обычно равен нулю (или не используется в расчете, если не настроен пересчет).

Давайте откроем настройку начисления «Оплата работы в выходные и праздники» (раздел Настройка — Начисления) и отредактируем формулу.

Стандартная формула может выглядеть так:

ВремяВДняхЧасах * СтоимостьДняЧаса

Мы модифицируем её, добавив условие: расчет производится, только если часовая тарифная ставка равна нулю (что характерно для окладников в контексте данной задачи).

Новая формула:

?(ТарифнаяСтавкаЧасовая = 0, ВремяВДняхЧасах * СтоимостьДняЧаса, 0)

Разберем логику работы этой формулы:

Этот метод хорош тем, что он автоматически отслеживает состояние сотрудника на конкретный день. При кадровом переводе в середине месяца 1С разбивает периоды, и на 12-е число показатель ставки будет взят именно тот, который действовал тогда.

Способ 2: Создание собственного показателя (Альтернативный)

Если логика с тарифной ставкой не подходит (например, у окладников тоже заведена техническая часовая ставка), можно пойти путем создания явного признака «Почасовик» или «Окладник».

Шаг 1. Создание показателя расчета зарплаты.

Перейдем в раздел Настройка — Показатели расчета зарплаты и создадим новый показатель, назовем его, например, ПризнакПочасовойОплаты.

Шаг 2. Настройка формулы.

Изменим формулу в начислении «Оплата работы в выходные и праздники» для окладников:

?(ПризнакПочасовойОплаты = 1, 0, ВремяВДняхЧасах * СтоимостьДняЧаса)

Здесь логика следующая: если у сотрудника установлен признак почасовика (равен 1), то результат начисления равен 0. Иначе — считаем сумму.

Шаг 3. Назначение показателя сотрудникам.

Поскольку показатель постоянный, его значение нужно установить кадровыми документами:

В документе перевода сотрудника с ЧТС на оклад вам нужно будет изменить значение этого показателя (например, с 1 на 0), чтобы с момента перевода (с 16-го числа) логика расчета изменилась.

Нюансы работы с показателем СтоимостьДняЧаса

При настройке формул важно помнить, как 1С:ЗУП рассчитывает показатель СтоимостьДняЧаса. Это особенно критично при переводах в середине месяца.

Порядок пересчета оклада в стоимость часа задается в настройках расчета зарплаты (Настройка — Расчет зарплаты). Существует три варианта:

  1. Делением на норму времени по производственному календарю (среднемесячное количество часов).
  2. Делением на норму времени по графику сотрудника.
  3. Делением на фиксированную норму времени (среднемесячную).

При кадровом переводе меняется график или начисления, и СтоимостьДняЧаса будет рассчитываться отдельно для периода «до» и периода «после». Используя Способ 1 с проверкой ТарифнаяСтавкаЧасовая, вы гарантируете, что для «почасового» периода (где стоимость часа определена явно, а не расчетным путем из оклада) формула отсечет лишнее начисление, предназначенное для окладников.

Итог

Для корректного разделения оплаты работы в выходные дни между сотрудниками на окладе и на ЧТС в рамках одного месяца:

  1. Не обязательно плодить разные виды начислений для разных документов.
  2. Достаточно внедрить в формулу начисления проверку: ?(ТарифнаяСтавкаЧасовая = 0, [Расчет], 0).
  3. Это позволит программе автоматически определять статус сотрудника на конкретный день работы в выходной (до перевода или после) и применять (или обнулять) соответствующее начисление.
← На главную