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

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

При переводе сотрудника с оплаты по дням на оплату по часам (или при назначении нового начисления в документе Кадровый перевод) пользователи могут столкнуться с ситуацией, когда при заполнении строки оплаты или проведении документа программа выдает ошибку «деление на 0». При анализе ситуации в отладчике выясняется, что показатель нормы времени принимает значение 0, даже если график работы сотрудника полностью заполнен. Разберем по шагам причины такого поведения системы и рассмотрим способы исправления ошибки.

Причина 1: Дублирование и скрытые показатели расчета зарплаты

Самая распространенная скрытая причина, особенно после переноса данных из предыдущих версий программы (например, из 1С:ЗУП 2.5 или 1С:ЗиК 7.7) либо после ручной настройки начислений пользователями — появление дубликата системного показателя.

Выясним механизм возникновения сбоя: при создании начисления в формулу расчета подставляется показатель с типовым наименованием (например, НормаЧасов), однако в справочнике Показатели расчета зарплаты создается дублирующий пользовательский элемент. Если у этого дубликата установлен флаг скрытия (не отображать в списке), программа вместо предопределенного показателя времени использует пользовательский, значение которого при оперативном расчете планового ФОТ не определяется и остается равным 0.

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

  1. Перейдем в раздел Настройка → Показатели расчета зарплаты.
  2. Проверим настройки видимости: если установлен фильтр, включим отображение всех показателей, включая неиспользуемые.
  3. Найдем дубликаты показателей по наименованию (например, несколько записей с именем «Норма времени в часах» или идентификатором НормаЧасов).
  4. Перейдем в справочник Начисления, откроем начисление «Оплата по окладу (по часам)» и отредактируем формулу, заменив пользовательский показатель на стандартный системный показатель времени ВремяВЧасах и НормаЧасов (или типовую формулу Оклад * ВремяВЧасах / НормаЧасов).
  5. Пометим ошибочный показатель-дубликат на удаление.

Причина 2: Защита пользовательской формулы от деления на ноль

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

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

Оклад * ВремяВЧасах / ВЫБОР КОГДА НормаЧасов = 0 ТОГДА 1 ИНАЧЕ НормаЧасов КОНЕЦ

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

Оклад * ВремяВЧасах / Макс(НормаЧасов, 1)

Такой подход защищает систему от блокирующих ошибок при проведении кадровых документов в переходные периоды или при нетиповых перерасчетах.

Причина 3: Некорректные настройки графиков работы и календарей

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

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

Альтернативные способы изменения системы оплаты труда

Рассмотрим варианты регистрации изменений в начислениях, если кадровые данные (подразделение, должность, график) остаются прежними:

  1. Документ Изменение оплаты труда (раздел Кадры или Зарплата) — специализированный инструмент для смены тарифных ставок и списка плановых начислений без изменения основных кадровых реквизитов.
  2. Документ Изменение плановых начислений — позволяет массово или индивидуально прекратить действие одного вида расчета (например, «Оплата по окладу») и назначить новое («Оплата по окладу (по часам)»).

Если после переноса данных в документе отображаются строки со значением <Объект не найден>, рекомендуется выполнить процедуру Тестирование и исправление информационной базы в режиме Конфигуратор с включенной проверкой логической и ссылочной целостности.

← На главную