Почему при расчете командировки сотрудникам на часовом тарифе в 1С:ЗУП 3.1 возникают отрицательные суммы и как это исправить?

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

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

В чем причина возникновения минусовых сумм при расчете?

Для того чтобы понять природу ошибки, проанализируем исходную формулу, которая использовалась для расчета:

((КалендарныеДни - ВремяВДняхЧасах)* СреднийЗаработокОбщий * КоэффициентИндексацииСреднегоЗаработка)*2 + (СреднийЗаработокОбщий * ВремяВДняхЧасах* КоэффициентИндексацииСреднегоЗаработка)

Проблема кроется во взаимодействии показателей КалендарныеДни и ВремяВДняхЧасах. В системе 1С:ЗУП 3.1 эти показатели ведут себя следующим образом:

  1. Показатель КалендарныеДни всегда возвращает строго количество календарных дней периода командировки (например, если сотрудник отправлен в командировку на неделю, этот показатель будет равен 7).
  2. Показатель ВремяВДняхЧасах является динамическим (универсальным) и зависит от настроек графика и системы оплаты труда конкретного сотрудника:
    • Для сотрудников на окладе (дневной тариф) показатель возвращает время в днях.
    • Для сотрудников на часовом тарифе (почасовая оплата, суммированный учет) этот показатель возвращает время в часах.

Давайте посмотрим на конкретный пример расчета для сотрудника на часовом тарифе. Предположим, сотрудник отправляется в командировку на 7 календарных дней. По его графику на этот период приходится 5 рабочих смен по 8 часов (в сумме — 40 часов).

Подставим эти значения в левую часть формулы:

КалендарныеДни - ВремяВДняхЧасах

Для «часовика» это выражение превращается в математический абсурд: программа пытается из 7 дней вычесть 40 часов:

7 - 40 = -33

Полученное отрицательное значение -33 умножается на средний заработок и коэффициент индексации, а затем удваивается. В итоге левая часть формулы дает огромный минус, который полностью перекрывает положительную правую часть, и вся сумма начисления по документу «Командировка» уходит в отрицательное значение.

Для сотрудников на окладе формула работает отлично, потому что программа вычитает дни из дней: 7 календарных дней - 5 рабочих дней = 2 выходных дня. Результат получается положительным.

---

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

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

Шаг 1. Настройка начисления для сотрудников на окладе (расчет в днях)

Для сотрудников, у которых учет ведется в днях, мы должны исключить использование динамического показателя ВремяВДняхЧасах и заменить его на строго дневной показатель. Перейдем в настройки начисления и отредактируем формулу:


((КалендарныеДни - ВремяВДнях) * СреднийЗаработокОбщий * КоэффициентИндексацииСреднегоЗаработка) * 2 + (СреднийЗаработокОбщий * ВремяВДнях * КоэффициентИндексацииСреднегоЗаработка)

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

Шаг 2. Настройка начисления для сотрудников на часовом тарифе (расчет в часах)

Для сотрудников с почасовой оплатой средний заработок рассчитывается как среднечасовой. Соответственно, и всю формулу необходимо перевести в единую единицу измерения — в часы. Чтобы найти «выходные часы» командировки, нам потребуется перевести календарные дни в часы по норме (например, умножить их на 8 часов, если у вас стандартная смена), либо использовать другие показатели времени.

Формула для сотрудников на часовом тарифе будет выглядеть следующим образом:


(((КалендарныеДни * 8) - ВремяВЧасах) * СреднийЗаработокОбщий * КоэффициентИндексацииСреднегоЗаработка) * 2 + (СреднийЗаработокОбщий * ВремяВЧасах * КоэффициентИндексацииСреднегоЗаработка)

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

---

Способ 2. Использование штатного функционала 1С:ЗУП 3.1

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

Вариант А. Через документ «Работа в выходные и праздники»

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

  1. Документ «Командировка» оформляется на весь период поездки. Программа автоматически рассчитывает по среднему заработку только рабочие дни или часы по графику сотрудника (выходные дни внутри командировки по умолчанию не оплачиваются).
  2. Для оплаты выходных или праздничных дней, которые сотрудник провел в пути или в которых он фактически работал во время командировки, вводится документ «Работа в выходные и праздники» (раздел Зарплата — Учет времени).
  3. В этом документе указываются конкретные даты выходных дней, пришедшихся на командировку, и выбирается способ компенсации: «Повышенная оплата» (в двойном размере) или «Одинарная оплата + отгул».
  4. При последующем расчете зарплаты в документе Начисление зарплаты и взносов программа автоматически произведет доплату за эти дни в двойном размере исходя из оклада или часового тарифа сотрудника.

Вариант Б. Использование функции «Дополнительная оплата командировок»

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

  1. Перейдем в раздел Настройки, далее выберем пункт Расчет зарплаты и перейдем по ссылке Настройка состава начислений и удержаний.
  2. На вкладке Учет отсутствий установим флажок Дополнительная оплата командировок и применим настройки.
  3. После активации этой опции в документе «Командировка» появится дополнительное поле (флажок) Дополнительная оплата с... по....
  4. При установке этого флажка и указании периода командировки программа автоматически начислит сотруднику двойной средний заработок за эти дни. Этот алгоритм одинаково корректно отрабатывает как для окладников, так и для часовиков, не требуя внесения изменений в системные формулы и исключая появление минусовых сумм.

Выберите наиболее подходящий для вашей учетной политики метод, настройте программу один раз, и расчеты ваших сотрудников всегда будут точными и корректными!

← На главную