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