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

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

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

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

Причина 1. Механизм приоритетов и вытеснения (Вкладка «Приоритет»)

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

Если в настройках нашего нового начисления на вкладке «Приоритет» в правой колонке «Начисления, приоритет которых выше» указана Командировка, программа будет автоматически исключать расчет этой выплаты за все дни отсутствия. Если сотрудник пробыл в командировке весь месяц целиком, начисление вытесняется на 100%, его результат становится равным нулю, и программа оптимизирует отображение — строка с нулевым результатом просто не выводится в документ.

Для решения этой проблемы выполним следующие действия:

  1. Перейдем в раздел Настройка — Начисления и откроем карточку проблемного начисления.
  2. Перейдем на вкладку Приоритет.
  3. Проанализируем списки вытеснения. Если в правой таблице присутствует Командировка (или другие документы отсутствий, во время которых начисление все равно должно рассчитываться), удалим их из этого списка.
  4. Запишем изменения. Если программа выдаст предупреждение о циклической зависимости приоритетов, воспользуемся встроенным помощником для автоматического разрешения конфликтов настройки.

Причина 2. Особенности формулы расчета и деление на ноль

Рассмотрим формулу, которую изначально пытался применить пользователь:

РазмерПремии * ВремяВДнях / ОтработаноДней

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

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

Давайте посмотрим, как можно обойти эту проблему с помощью изменения формулы.

Вариант решения А. Использование условного оператора

Мы можем переписать формулу с использованием встроенной условной конструкции ?(). Если отработанных дней нет, система начислит премию в фиксированном размере, иначе — рассчитает пропорционально отработанному времени:

?(ОтработаноДней = 0, РазмерПремии, РазмерПремии * ВремяВДнях / ОтработаноДней)

Вариант решения Б. Использование нормы времени (более корректный подход)

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

РазмерПремии * ВремяВДнях / НормаДней

Причина 3. Неправильная настройка назначения и учета времени

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

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

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

Причина 4. Способ ввода показателя «РазмерПремии»

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

Для успешного начисления необходимо убедиться, что:

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

← На главную