Как в 1С:ЗУП 3.1 настроить оплату по дневной тарифной ставке при неполностью отработанном дне?

Бухгалтер 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

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

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

Почему возникает проблема: техническая особенность 1С:ЗУП 3.1

Для начала выясним причину, почему программа игнорирует тот факт, что сотрудник отработал день не полностью. Допустим, работнику установлен дневной тариф. В обычный день норма составляет 8 часов, в субботу — 5 часов, но оплата за любой из этих дней составляет ровно 2000 рублей. Если сотрудник отпросился во вторник на 3 часа, кадровая служба регистрирует внутрисменное отсутствие (например, отпуск без сохранения оплаты на 3 часа).

При расчете заработной платы программа использует стандартную формулу:

ТарифнаяСтавкаДневная * ВремяВДнях

Здесь кроется главная методическая деталь работы конфигурации: внутрисменное отсутствие уменьшает только показатель ВремяВЧасах, но НЕ уменьшает показатель ВремяВДнях. Поскольку сотрудник в этот день фактически выходил на работу (отработал 5 часов из 8), программа фиксирует, что день был отработан. Показатель ВремяВДнях остается равным единице, и программа начисляет полные 2000 рублей, полностью игнорируя отсутствие сотрудника в течение нескольких часов.

Для решения этой проблемы нам необходимо скорректировать формулу расчета начисления или настроить дополнительный механизм вычетов. Рассмотрим три эффективных способа настройки.

---

Способ 1. Автоматический расчет с использованием показателя "СтоимостьЧаса" (Рекомендуемый)

Этот способ является наиболее элегантным, поскольку он полностью автоматизирует процесс. Расчетчику и кадровику не придется вручную вносить какие-либо дополнительные показатели в конце месяца. Программа сама рассчитает стоимость часа недоработки и вычтет ее из дневного тарифа сотрудника.

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

Перейдем в настройки начисления и укажем следующую формулу:

ТарифнаяСтавкаДневная * ВремяВДнях - СтоимостьЧаса * (НормаЧасов - ВремяВЧасах)

Проанализируем, как работает эта формула в различных ситуациях:

  1. Полностью отработанный месяц без отклонений. В этом случае фактическое время в часах полностью совпадает с нормой по графику. Выражение в скобках (НормаЧасов - ВремяВЧасах) будет равно нулю. Следовательно, вычитаемая часть обнуляется, и сотрудник получает свой чистый дневной тариф за все дни (включая короткую субботу, за которую начислится полная дневная ставка).
  2. Сотрудник отпросился на 2 часа в будний день. Кадровая служба регистрирует внутрисменное отсутствие. Показатель ВремяВДнях по-прежнему равен 1 (день отработан частично), но показатель ВремяВЧасах уменьшается на 2 часа относительно нормы. Разница НормаЧасов - ВремяВЧасах становится равной 2. Программа автоматически умножает 2 часа недоработки на рассчитанную СтоимостьЧаса и вычитает полученную сумму из общего начисления.

Настройка программы для работы по Способу 1

Чтобы данная схема заработала корректно, нам необходимо выполнить три важные настройки в информационной базе:

Шаг 1. Включение внутрисменных отсутствий
Перейдем в раздел Настройка — Расчет зарплаты — Настройка состава начислений и удержаний. На вкладке Учет отсутствий обязательно установим флажки для тех видов отсутствий, которые могут происходить внутри смены. Например: "Отпуска без сохранения оплаты, в том числе внутрисменные" и "Болезни, в том числе внутрисменные". Это даст возможность кадровикам вводить документы отклонений в часах в течение рабочего дня.

Шаг 2. Проверка порядка пересчета тарифной ставки
Поскольку в формуле задействован показатель СтоимостьЧаса, программа должна понимать, как именно пересчитывать дневной тариф в часовой. Этот параметр настраивается либо в целом по организации (раздел Настройка — Расчет зарплаты — Показатели расчета тарифных ставок), либо индивидуально для каждого сотрудника в его кадровых документах (Прием на работу, Кадровый перевод) на вкладке "Оплата труда". Убедитесь, что выбран подходящий вам вариант пересчета (например, "По норме графика сотрудника" или "По норме производственного календаря").

Шаг 3. Настройка приоритетов (вытеснения)
В настройках нашего измененного начисления "Оплата по дневному тарифу" перейдем на вкладку Приоритет. Убедимся, что в правом списке ("Начисления, приоритет которых выше") присутствуют все виды внутрисменных отсутствий (например, "Отсутствие по личным причинам внутрисменное", "Отпуск без оплаты внутрисменные"). Это критически важно, чтобы программа могла сопоставить плановое время и фактическое отклонение в часах.

---

Способ 2. Выделение недоработки в расчетном листке отдельной строкой

Иногда бухгалтеры сознательно не хотят менять формулу основного начисления "Оплата по дневному тарифу", чтобы избежать путаницы при проверках или отчетности. Кроме того, руководители часто требуют, чтобы сотрудник наглядно видел в своем расчетном листке сумму, которую у него удержали (вычли) за недоработанные часы.

В такой ситуации мы можем пойти другим путем: оставить формулу основного начисления стандартной (ТарифнаяСтавкаДневная * ВремяВДнях), но создать отдельное начисление-вычет.

Выполним настройку нового начисления по шагам:

  1. Создадим новое начисление с наименованием "Вычет за недоработанные часы" (раздел Настройка — Начисления — Создать).
  2. На вкладке Основное установим назначение начисления: "Повременная оплата труда и надбавки" или "Прочие начисления и выплаты".
  3. Установим переключатель расчета в положение "Результат рассчитывается по формуле" и введем следующую формулу:

- СтоимостьЧаса * (НормаЧасов - ВремяВЧасах)

Обратите внимание на знак "минус" в начале формулы. Это позволит начислению выступать в роли сторнирующего показателя.

При использовании этого метода в расчетном листке сотрудника будут фигурировать две прозрачные строки:

Данный подход существенно снижает количество вопросов со стороны сотрудников, так как расчет становится максимально детализированным и понятным.

---

Способ 3. Ручной ввод недоработанных часов через индивидуальные показатели

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

Для реализации такой схемы нам понадобится создать собственный показатель расчета и шаблон для его ввода.

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

Перейдем в меню Настройка — Показатели расчета зарплаты и создадим новый показатель:

Шаг 2. Создание шаблона ввода данных

Чтобы расчетчик мог быстро вносить часы недоработки по всем сотрудникам в один документ, перейдем в раздел Настройка — Шаблоны ввода исходных данных и создадим новый шаблон:

Теперь в конце каждого месяца расчетчик будет заходить в раздел Зарплата — Данные для расчета зарплаты, создавать документ по этому шаблону и быстро заполнять список сотрудников, у которых были недоработки, указывая количество неотработанных часов.

Шаг 3. Изменение формулы начисления

Возвращаемся в настройки начисления "Оплата по дневному тарифу" и прописываем измененную формулу:


ТарифнаяСтавкаДневная * ВремяВДнях - (ТарифнаяСтавкаДневная / НормаЧасов) * НеотработанныеЧасы

В этой формуле стоимость часа рассчитывается как отношение дневного тарифа к норме часов по графику сотрудника за текущий день, после чего умножается на количество введенных вручную неотработанных часов и вычитается из общего начисления.

Важная модификация для шестидневной недели

Если на вашем предприятии применяется жесткое правило: стоимость часа недоработки в субботу и в будний день должна отличаться (так как норма часов в субботу меньше, а оплата за день одинаковая), то единая формула может давать погрешность. В таком случае мы можем усложнить схему и создать два ручных показателя: НеотработанныеЧасыВБудни и НеотработанныеЧасыВСубботу.

Тогда формула примет следующий вид:


ТарифнаяСтавкаДневная * ВремяВДнях 
- (НеотработанныеЧасыВБудни * (ТарифнаяСтавкаДневная / НормаЧасовВБуднийДень)) 
- (НеотработанныеЧасыВСубботу * (ТарифнаяСтавкаДневная / НормаЧасовВСубботу))

Для работы этой формулы в качестве НормаЧасовВБуднийДень и НормаЧасовВСубботу можно использовать постоянные показатели для организации (например, 8 и 5 соответственно), которые вводятся в систему один раз при настройке.

---

Резюме и рекомендации

Мы подробно разобрали, как решить проблему недоработок при дневном тарифе в 1С:ЗУП 3.1. Выбор конкретного метода зависит от организации бизнес-процессов на вашем предприятии:

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

← На главную