Как исправить ошибку «Деление на ноль» при расчете начислений в 1С:ЗКГУ и 1С:ЗУП 3.0?

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

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

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

Рассмотрим исходную формулу начисления, вызывающую сбой:

Мин(ДенежнаяВыплатаЗаКлассноеРуководствоа, ДенежнаяВыплатаЗаКлассноеРуководствоа * КоличествоУчениковДляКлассноеРуководство / НормаДетейВКлассеа) * (ВремяВДнях / НормаДнейПоГрафикуПолногоРабочегоВремени) * (КритерийОценкиКачестваДляКлассноеРуководство / 100)

В этой формуле присутствует два потенциальных делителя, которые могут обнулиться:

  1. Показатель НормаДетейВКлассеа — если показатель не внесен для сотрудника или организации, механизм расчета 1С автоматически приравнивает его к 0.
  2. Показатель НормаДнейПоГрафикуПолногоРабочегоВремени — принимает значение 0, если не заполнен производственный календарь на текущий год, не сформирован график работы или у сотрудника установлен индивидуальный график без рабочих дней.

Способ 1. Защита формулы от деления на ноль с помощью функции Макс

Платформа 1С не поддерживает условный оператор ЕСЛИ непосредственно в редакторе формул начислений. Чтобы исключить вероятность ошибки даже при отсутствии данных, обернем делители в функцию Макс. Функция сравнит значение показателя с единицей и выберет наибольшее.

Модифицированная безопасная формула примет следующий вид:


Мин(ДенежнаяВыплатаЗаКлассноеРуководствоа, ДенежнаяВыплатаЗаКлассноеРуководствоа * КоличествоУчениковДляКлассноеРуководство / Макс(НормаДетейВКлассеа, 1)) * (ВремяВДнях / Макс(НормаДнейПоГрафикуПолногоРабочегоВремени, 1)) * (КритерийОценкиКачестваДляКлассноеРуководство / 100)

Теперь, если НормаДетейВКлассеа или НормаДнейПоГрафикуПолногоРабочегоВремени будут равны нулю, программа подставит значение 1, исключит критический сбой и выполнит расчет.

Способ 2. Корректная настройка показателей и назначение нормы

Разберем, как правильно настроить сам показатель НормаДетейВКлассеа в справочнике показателей расчета зарплаты:

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

Способ 3. Настройка шаблонов и ввода данных для расчета зарплаты

Если показатели КоличествоУчениковДляКлассноеРуководство и КритерийОценкиКачестваДляКлассноеРуководство являются индивидуальными и меняются в течение года, настроим их регулярный ввод:

  1. Перейдем в раздел Настройка — Шаблоны ввода исходных данных.
  2. Создадим новый шаблон и отметим флагами нужные показатели.
  3. Для ввода значений перейдем в раздел Зарплата — Данные для расчета зарплаты, создадим документ по нашему шаблону и занесем числовые показатели по сотрудникам.

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

Если деление на ноль происходит из-за показателя НормаДнейПоГрафикуПолногоРабочегоВремени, проанализируем настройки времени:

  1. Перейдем в раздел Настройка — Производственные календари и убедимся, что календарь на текущий год заполнен и классифицирован.
  2. Зайдем в раздел Настройка — Графики работы сотрудников, откроем график нужного сотрудника и нажмите кнопку перезаполнения на текущий год.
  3. Если используется расчет по индивидуальному графику, проверьте, внесены ли нормы рабочего времени в документ Индивидуальный график.
← На главную