Почему возникает ошибка деления на 0 в документе Совмещение должностей в 1С:ЗУП 3.1 и как её исправить?

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

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

1. Проверка формулы начисления

Первым делом проанализируем формулу, по которой рассчитывается доплата. Ошибка часто кроется в том, что переменная НормаДней или НормаЧасов равна нулю. Чтобы защитить расчет от такой ситуации, можно изменить формулу начисления, добавив условие проверки:

Попробуйте использовать конструкцию ? (тернарный оператор), которая вернет ноль, если норма времени не заполнена:


?(НормаДней = 0, 0, РазмерДоплатыЗаСовмещение * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней)

Это позволит программе корректно завершить расчет вместо того, чтобы прерывать процесс с критической ошибкой.

2. Анализ ФОТ и вклада в начисления

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

  1. Откройте карточку сотрудника или документ, которым назначены начисления.
  2. Найдите реквизит ФОТ и нажмите на зеленую иконку карандаша рядом с ним.
  3. В открывшемся окне Вклад в ФОТ для сдельной оплаты можно вручную ввести сумму предполагаемого заработка. Это позволит системе «увидеть» базу для расчета процента.
  4. Если это не помогает, выполните процедуру пересчета ФОТ через раздел Зарплата — Сервис — Перерасчет ФОТ.

3. Проверка плановых показателей и регистров

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

Проверьте регистр сведений ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников. Убедитесь, что для сотрудника на дату действия совмещения заданы необходимые показатели. Если данных нет, система не сможет подставить значения в формулу, что приведет к «делению на ноль».

4. Влияние данных для расчета зарплаты

В некоторых случаях начисления зависят от внешних показателей, которые вводятся специализированными документами. Проверьте, не используется ли в вашей схеме начисления документ Данные для расчета зарплаты. Если расчетная база зависит от внешних параметров (например, количество часов по подразделению), отсутствие записи в этом документе вызовет ошибку расчета.

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

Не забывайте, что НормаДней или НормаЧасов берется из Графика работы сотрудника и Производственного календаря. Проанализируйте следующие моменты:

6. Диагностика «зависших» данных

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

  1. Сформируйте Расчетный листок за период совмещения. Если он не формируется или показывает странные суммы, проблема точно в регистрах плановых начислений.
  2. Создайте документ Изменение оплаты труда сотрудника на начало месяца. Перевыбор начислений в этом документе принудительно перезапишет движения в регистрах Плановые начисления и ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников, что часто «лечит» ошибки, возникшие при переносе.

Если ни один из методов не помог, рекомендуется воспользоваться отладчиком в Конфигураторе, установив «точку останова» в модуле проведения документа. Это позволит увидеть, какая именно переменная в формуле становится равной нулю в момент выполнения расчета.

← На главную