При работе в программе «1С:Зарплата и управление персоналом» (редакция 3.1) бухгалтеры часто сталкиваются с ситуацией, когда дополнительное начисление (надбавка или доплата) при кадровом переводе сотрудника внутри месяца «удваивается». Программа разбивает месяц на два периода действия (до перевода и после), и в каждом из них начисляет полную сумму. Разберем детально, почему это происходит и какими способами можно добиться корректного расчета одной строкой или пропорционального деления суммы.
Проанализируем механику работы системы. Когда в программе регистрируется документ Кадровый перевод или Изменение оплаты труда, система создает в регистре расчета новую запись. Месяц перестает быть единым целым и превращается в совокупность нескольких периодов действия.
Если ваше начисление настроено как «плановое» (то есть назначено сотруднику приказом и действует постоянно), программа пытается рассчитать его для каждого возникшего периода. Посмотрим на типовую ошибку в формуле, которую привел автор темы:
Оклад / НормаДней * ПраздничныеДниОклад
В этой формуле отсутствуют показатели, которые «сообщили» бы программе, какую часть времени сотрудник отработал в конкретном периоде. Для программы расчет выглядит так:
Оклад, делим на НормаДней, умножаем на ПраздничныеДниОклад. Получаем полную сумму.Оклад, делим на ту же норму и умножаем на тот же показатель. Снова получаем полную сумму.В итоге за месяц сотрудник получает доплату в двойном размере. Чтобы этого избежать, нам нужно изменить либо формулу, либо сам подход к назначению выплаты.
Это самый правильный метод, если вы хотите оставить начисление плановым. Нам нужно заставить программу учитывать, сколько времени фактически отработал сотрудник в каждом из подпериодов. Для этого в формулу необходимо включить коэффициент отработанного времени.
Рассмотрим вариант корректировки формулы:
(Оклад / НормаДней * ПраздничныеДниОклад) * (ОтработаноДней / НормаДней)
Или использование предопределенного показателя ДоляВремени, который в ЗУП 3.1 автоматически вычисляется как отношение фактически отработанного времени к норме. Проанализируем, как изменится расчет:
Если сотрудник перевелся ровно в середине месяца, то в первом периоде ДоляВремени будет равна 0.5, и во втором — 0.5. В сумме за два периода сотрудник получит ровно 1 полную выплату, как и требовалось.
Если доплата не должна зависеть от кадровых перемещений и вы хотите видеть её в расчетном листке строго одной строкой, мы рекомендуем отказаться от использования «Планового начисления». Рассмотрим этот алгоритм подробнее:
Разовое начисление) или «В перечисленных месяцах».Этот способ идеально подходит для премий или разовых доплат, которые рассчитываются по итогам месяца целиком.
Если вы вводите данные для расчета (например, количество праздничных дней) через документ Ввод данных для расчета зарплаты, важно правильно настроить сам показатель. Выясним, почему у автора темы начисление перестало считаться вовсе при смене настройки.
В настройках показателя (раздел Настройка — Показатели расчета зарплаты) есть важный флаг: «Накапливается по отдельным значениям документами ввода данных». Если вы его включаете, то на вкладке «Расчет зарплаты» в самом Начислении нужно выбрать пункт «Все накопленные значения за месяц».
Важный нюанс: Если вы используете накапливаемый показатель вместе с Окладом в плановом начислении, «дробежка» все равно может остаться, так как Оклад привязан к периоду. Чтобы начисление «схлопнулось» в одну строку, оно не должно иметь зависимости от времени в своих настройках на вкладке «Учет времени», но тогда мы возвращаемся к проблеме дублирования, если формула не содержит понижающих коэффициентов.
Многие пользователи задаются вопросом: «Почему типовая доплата до МРОТ считается правильно, а моя — нет?». Разберем этот технический момент. Доплата до МРОТ в типовой конфигурации часто использует механизм Расчетной базы. Программа сначала суммирует все основные начисления сотрудника за месяц (уже после того, как они разбились по периодам), сравнивает общую сумму с МРОТ и только потом начисляет разницу.
Чтобы ваше начисление работало аналогично, оно должно:
Расчетной базы.Подводя итог, выберем оптимальный путь решения в зависимости от вашей цели:
1. Если нужно, чтобы сумма делилась пропорционально между старым и новым местом работы — добавьте в формулу множитель (ОтработаноДней / НормаДней) или ДоляВремени.
2. Если нужно, чтобы сумма начислялась один раз в полном объеме независимо от переводов — используйте документ Разовое начисление или настройте начисление, которое выполняется «Только если введен показатель» один раз в месяц.
3. Проверьте вкладку «Приоритет» в настройках начисления. Убедитесь, что кадровые изменения не вытесняют ваше начисление необоснованно, и наоборот.
Помните, что 1С:ЗУП — это система, работающая по принципу регистрации периодов. Любое значение, указанное в формуле без привязки ко времени, будет восприниматься программой как требование выплатить эту сумму за каждый активный период в текущем месяце.