При работе в 1С:ЗУП 3.1 пользователи часто сталкиваются с ошибкой «Деление на 0» при попытке проведения документа Совмещение должностей. Эта ситуация обычно указывает на то, что программа пытается выполнить расчет по формуле, где в знаменателе оказывается нулевое значение. Давайте разберем пошагово, как диагностировать и устранить эту проблему.
Первым делом проанализируем формулу, по которой рассчитывается доплата. Ошибка часто кроется в том, что переменная НормаДней или НормаЧасов равна нулю. Чтобы защитить расчет от такой ситуации, можно изменить формулу начисления, добавив условие проверки:
Попробуйте использовать конструкцию ? (тернарный оператор), которая вернет ноль, если норма времени не заполнена:
?(НормаДней = 0, 0, РазмерДоплатыЗаСовмещение * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней)
Это позволит программе корректно завершить расчет вместо того, чтобы прерывать процесс с критической ошибкой.
Если для расчета используется процент от ФОТ, система обращается к плановым начислениям сотрудника. Если ФОТ равен нулю (например, для сдельной оплаты или из-за ошибок при переносе данных), расчет становится невозможным. Рассмотрим, как это исправить:
ФОТ и нажмите на зеленую иконку карандаша рядом с ним.Вклад в ФОТ для сдельной оплаты можно вручную ввести сумму предполагаемого заработка. Это позволит системе «увидеть» базу для расчета процента.Зарплата — Сервис — Перерасчет ФОТ.Часто проблема кроется в том, что у сотрудника нет актуальных записей в регистрах, определяющих показатели расчета. Разберем, где искать данные:
Проверьте регистр сведений ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников. Убедитесь, что для сотрудника на дату действия совмещения заданы необходимые показатели. Если данных нет, система не сможет подставить значения в формулу, что приведет к «делению на ноль».
В некоторых случаях начисления зависят от внешних показателей, которые вводятся специализированными документами. Проверьте, не используется ли в вашей схеме начисления документ Данные для расчета зарплаты. Если расчетная база зависит от внешних параметров (например, количество часов по подразделению), отсутствие записи в этом документе вызовет ошибку расчета.
Не забывайте, что НормаДней или НормаЧасов берется из Графика работы сотрудника и Производственного календаря. Проанализируйте следующие моменты:
ГрафикРаботыСотрудников: не ограничен ли срок действия графика датой, которая наступает раньше окончания действия совмещения.Совмещение должностей попадает на период, который не охвачен графиком, система выдаст ошибку, так как не сможет определить норму времени.Если проблема возникла после переноса данных из старых версий (например, 1С 7.7), возможно, в регистрах остались «битые» записи или записи с некорректными периодами действия. Попробуйте следующее:
Расчетный листок за период совмещения. Если он не формируется или показывает странные суммы, проблема точно в регистрах плановых начислений.Изменение оплаты труда сотрудника на начало месяца. Перевыбор начислений в этом документе принудительно перезапишет движения в регистрах Плановые начисления и ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников, что часто «лечит» ошибки, возникшие при переносе.Если ни один из методов не помог, рекомендуется воспользоваться отладчиком в Конфигураторе, установив «точку останова» в модуле проведения документа. Это позволит увидеть, какая именно переменная в формуле становится равной нулю в момент выполнения расчета.