Как устранить дублирование начислений при кадровых переводах в 1С:ЗУП 8.3

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

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

Почему происходит дробление начисления?

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

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

Оклад / НормаДней * ПраздничныеДниОклад

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

  1. Период 1 (до перевода): Берем Оклад, делим на НормаДней, умножаем на ПраздничныеДниОклад. Получаем полную сумму.
  2. Период 2 (после перевода): Снова берем актуальный Оклад, делим на ту же норму и умножаем на тот же показатель. Снова получаем полную сумму.

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

Решение 1: Использование показателя «Доля времени»

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

Рассмотрим вариант корректировки формулы:

(Оклад / НормаДней * ПраздничныеДниОклад) * (ОтработаноДней / НормаДней)

Или использование предопределенного показателя ДоляВремени, который в ЗУП 3.1 автоматически вычисляется как отношение фактически отработанного времени к норме. Проанализируем, как изменится расчет:

Если сотрудник перевелся ровно в середине месяца, то в первом периоде ДоляВремени будет равна 0.5, и во втором — 0.5. В сумме за два периода сотрудник получит ровно 1 полную выплату, как и требовалось.

Решение 2: Перевод начисления в разряд «Разовых»

Если доплата не должна зависеть от кадровых перемещений и вы хотите видеть её в расчетном листке строго одной строкой, мы рекомендуем отказаться от использования «Планового начисления». Рассмотрим этот алгоритм подробнее:

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

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

Решение 3: Настройка накапливаемых показателей

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

В настройках показателя (раздел Настройка — Показатели расчета зарплаты) есть важный флаг: «Накапливается по отдельным значениям документами ввода данных». Если вы его включаете, то на вкладке «Расчет зарплаты» в самом Начислении нужно выбрать пункт «Все накопленные значения за месяц».

Важный нюанс: Если вы используете накапливаемый показатель вместе с Окладом в плановом начислении, «дробежка» все равно может остаться, так как Оклад привязан к периоду. Чтобы начисление «схлопнулось» в одну строку, оно не должно иметь зависимости от времени в своих настройках на вкладке «Учет времени», но тогда мы возвращаемся к проблеме дублирования, если формула не содержит понижающих коэффициентов.

Почему доплата до МРОТ не дублируется?

Многие пользователи задаются вопросом: «Почему типовая доплата до МРОТ считается правильно, а моя — нет?». Разберем этот технический момент. Доплата до МРОТ в типовой конфигурации часто использует механизм Расчетной базы. Программа сначала суммирует все основные начисления сотрудника за месяц (уже после того, как они разбились по периодам), сравнивает общую сумму с МРОТ и только потом начисляет разницу.

Чтобы ваше начисление работало аналогично, оно должно:

Итоговые рекомендации

Подводя итог, выберем оптимальный путь решения в зависимости от вашей цели:

1. Если нужно, чтобы сумма делилась пропорционально между старым и новым местом работы — добавьте в формулу множитель (ОтработаноДней / НормаДней) или ДоляВремени.

2. Если нужно, чтобы сумма начислялась один раз в полном объеме независимо от переводов — используйте документ Разовое начисление или настройте начисление, которое выполняется «Только если введен показатель» один раз в месяц.

3. Проверьте вкладку «Приоритет» в настройках начисления. Убедитесь, что кадровые изменения не вытесняют ваше начисление необоснованно, и наоборот.

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

← На главную