Как исправить ошибку «деление на 0» при начислении зарплаты в 1С:ЗУП за январь

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

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

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

Математическая суть ошибки проста: в формуле начисления присутствует показатель, значение которого равно нулю. В стандартном расчете оклада формула выглядит так: Оклад * ОтработаноВремениВ命нях / НормаВремениВ命нях. Если показатель НормаВремениВ命нях (или аналогичный по часам) равен 0, система выдает ошибку. Январь — месяц с большим количеством праздничных дней, и малейшая неточность в настройках календарей приводит к тому, что рабочие дни «исчезают» из программы.

Шаг 1. Проверка и перезаполнение производственного календаря

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

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

Важный нюанс: Если в вашей организации используются региональные календари (например, для Татарстана или Башкортостана), проверьте их наличие и заполнение. Если подразделение привязано к региональному календарю, который не заполнен на текущий год, норма времени будет нулевой.

Шаг 2. Актуализация графиков работы сотрудников

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

Выясним причину через настройки графика:

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

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

Шаг 3. Анализ формулы начисления

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

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


?(НормаВремениВДнях = 0, 0, Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаВремениВДнях)

В этой конструкции программа сначала проверяет, не равна ли норма нулю. Если равна — результат будет 0, и расчет пойдет дальше без аварийного завершения. Однако правильнее будет не «глушить» ошибку формулой, а найти, почему норма не определилась.

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

Шаг 4. Влияние документа «Табель»

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

Попробуйте выполнить следующие действия:

  1. Найдите документ Табель за январь по данному сотруднику или подразделению.
  2. Распроведите его.
  3. Попробуйте снова заполнить документ Начисление зарплаты и взносов.
  4. Если расчет прошел успешно — проблема была в некорректном заполнении табеля.

Шаг 5. Проверка кадровых данных и индивидуальных графиков

Проанализируем ситуацию, когда у одного сотрудника расчет проходит, а у другого — нет, при одинаковом подразделении. Проверьте:

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

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

Помните, что в релизах ветки 3.1.16 иногда встречаются системные ошибки, связанные с расчетом перерасчетов (вкладка Доначисления, перерасчеты). Если в этой вкладке есть записи за прошлые периоды, попробуйте их очистить и провести расчет только текущего месяца. Часто «деление на 0» происходит при попытке программы пересчитать норму за прошлый год, графики которого могли быть случайно изменены пользователем.

← На главную