Почему двоится плановое начисление в 1С:ЗУП 3.1 при кадровом переводе?

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

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

Разбор причин возникновения проблемы

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

Если в вашей формуле начисления используется показатель, зависящий от времени, например: РазмерНадбавки * ?(ВремяВЧасах > 0, 1, 0), то при расчете зарплаты система «видит» два периода. Для каждого из этих периодов условие ВремяВЧасах > 0 выполняется, и начисление применяется дважды. Это приводит к суммированию результата по каждому отрезку времени внутри месяца.

Методы решения проблемы

Рассмотрим несколько подходов, которые помогут исправить ситуацию и избежать «задвоения» выплат.

Метод 1: Проверка регистра плановых начислений

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

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

Метод 2: Изменение логики формулы и использование приоритетов

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

Механизм приоритетов позволяет программе автоматически вытеснять начисления при возникновении определенных событий (например, отсутствие или изменение условий труда), не привязываясь к расчетам часов вручную. Это исключает необходимость проверки ?(ВремяВЧасах > 0, 1, 0).

Метод 3: Использование разовых начислений

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

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

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

Заключение

Проанализировав ситуацию, можно сделать вывод, что «двоение» — это следствие автоматического пересчета начислений при делении расчетного периода. Самым надежным способом является либо отказ от использования показателя ВремяВЧасах в пользу стандартных механизмов Вытеснения, либо использование Разового начисления для сложных выплат. Мы рекомендуем первым делом проверить записи в регистре Плановые начисления сотрудников, чтобы убедиться в отсутствии дублей, созданных вручную или вследствие ошибки при проведении кадрового перевода.

← На главную