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