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

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

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

Выясним причину возникновения ошибки

Для начала проанализируем типовую формулу начисления Оплата по окладу, которая обычно выглядит следующим образом:

Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней

Математически деление на ноль происходит в том случае, если показатель НормаДней равен нулю. В обычных условиях норма дней всегда положительна, однако апрель 2020 года стал исключительным из-за Указов Президента о нерабочих днях с сохранением заработной платы. В обновлении программы 1С был введен новый вид времени — «ОН» (Оплачиваемые нерабочие дни). Если программа настроена таким образом, что эти дни не должны учитываться в норме рабочего времени, то для графиков типа «Пятидневка» вся норма за апрель обнуляется, так как рабочих дней (с кодом «Явка») в этом месяце фактически не остается. В результате знаменатель формулы становится равен нулю.

Способ 1: Настройка учета нерабочих дней (Основное решение)

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

  1. Перейдем в раздел Настройка, далее выберем пункт Расчет зарплаты.
  2. В открывшемся окне найдем гиперссылку Настройка состава начислений и удержаний.
  3. Перейдем на вкладку Прочие начисления.
  4. Установим флаг «Нерабочие дни в связи с коронавирусом оплачивать как отработанные по графику работы сотрудника».

После установки этой настройки время с кодом «ОН» начнет включаться в показатели НормаДней и ВремяВДнях. Таким образом, знаменатель перестанет быть нулевым, и расчет пройдет успешно. Не забудьте после изменения настройки пересчитать документ начисления зарплаты.

Способ 2: Проверка производственного календаря и графиков работы

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

  1. Производственный календарь: Проверим, заполнен ли основной производственный календарь (и региональный, если организация находится, например, в Татарстане или Башкортостане). В календаре дни апреля должны быть отмечены как нерабочие (выделены специальным цветом). Если календарь пустой — нажмем кнопку «Заполнить по умолчанию».
  2. Графики работы сотрудников: Зайдем в настройки графика работы. Если в графике стоит настройка «При заполнении учитывать оплачиваемые нерабочие дни», то в сетке графика должны появиться часы с кодом «ОН». Если же вы вручную удалили все явки, оставив пустые ячейки, программа логично покажет нулевую норму.
  3. Зависимость от других графиков: Проанализируем настройку «Определять норму по другому графику». Часто бывает, что основной график заполнен верно, а вспомогательный (по которому считается норма) остался пустым. Необходимо обновить и перезаполнить оба графика.

Способ 3: Поиск и удаление «Индивидуальных графиков»

Рассмотрим ситуацию, когда общие графики настроены верно, но по конкретным сотрудникам все равно возникает «Деление на 0». Выясним, нет ли в системе документа «Индивидуальный график».

Этот документ имеет приоритет над общим графиком. Если он был создан в начале месяца (до обновления программы или до настройки календарей), в нем могли зафиксироваться пустые значения или только выходные дни («В»). Проанализируем список документов за апрель 2020 года. Если такой документ найден, его необходимо либо перезаполнить, чтобы в нем отразилось время «ОН» или «Я», либо просто отменить проведение (удалить), чтобы расчет опирался на основной график работы.

Способ 4: Изменение формулы начисления (Технический обход)

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

В настройках начисления «Оплата по окладу» изменим формулу на следующую:


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

Разберем, как работает эта конструкция:

Важное предупреждение: Использование этого способа является «костылем». Если вы просто обнулите результат при нулевой норме, бухгалтер получит нулевую сумму начисления и не поймет, почему сотрудник остался без зарплаты. Кроме того, это может негативно повлиять на расчет среднего заработка для будущих отпусков и командировок.

Влияние на расчет среднего заработка

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

Согласно законодательству, периоды «ОН» и начисленные за них суммы должны исключаться из расчета среднего заработка. Если вы решите проблему простым проставлением «Явок» (как будто сотрудники работали), вы завысите отработанное время, что приведет к занижению среднего заработка при расчете будущих отпускных. Поэтому настоятельно рекомендуем использовать штатный механизм учета нерабочих дней, предоставляемый платформой 1С:Предприятие 8.3.

Таким образом, для решения проблемы последовательно проверяем:

  1. Наличие флажка в «Настройках состава начислений».
  2. Актуальность Производственного календаря.
  3. Отсутствие пустых «Индивидуальных графиков».
← На главную