Как исправить ошибку «Деление на 0» при переносе данных из ЗКБУ 1.0 в ЗКГУ 3.1?

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

При выполнении перехода с конфигурации «Зарплата и кадры бюджетного учреждения» редакции 1.0 (ЗКБУ 1.0) на новую «Зарплата и кадры государственного учреждения» редакции 3.1 (ЗКГУ 3.1) с помощью мастера начальной настройки программы пользователи часто сталкиваются с критической ошибкой. В логе загрузки выводится сообщение вида: «При расчете начисления "За ночные часы" за [Период] для сотрудника <Объект не найден> возникла ошибка: Деление на 0».

Попытки отменить проведение документов, удалить битые ссылки или запустить процедуру «Тестирование и исправление» информационной базы часто не приносят результата. Проанализируем, почему возникает данная проблема и как её корректно устранить.

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

Ошибка деления на ноль при переносе данных обусловлена разницей в методологии расчета зарплаты и архитектуре регистров между платформами 1С 8.2 и 8.3:

  1. Нестандартные или пользовательские формулы: В исходной базе ЗКБУ 1.0 видами расчета могли использоваться кастомные показатели в знаменателе (например, показатель К1 или числовые делители). При переносе алгоритм пересчитывает плановый ФОТ или начисления прошлых периодов. Если показатель К1 в переносимом периоде оказался равен 0 или не заполнился в целевой базе, система выдает ошибку деления на ноль.
  2. Незаполненные нормы времени: В ЗКГУ 3.1 норма времени играет ключевую роль при расчете часовых тарифных ставок. Если за переносимый период не заполнен производственный календарь или графики работы, показатель нормы рассчитывается равным нулю.
  3. «Битые» ссылки в истории расчетов: Наличие записей с удаленными физическими лицами или сотрудниками (<Объект не найден>) приводит к тому, что система пытается рассчитать индивидуальную ставку для несуществующего объекта и получает нулевые значения показателей.

Решение 1. Корректировка формулы расчета в исходной базе (Основной способ)

Рассмотрим наилучший способ решения проблемы. Так как правила переноса пересчитывают начисления на основе формул из исходной базы, наиболее эффективным решением является исправление формулы в старой конфигурации (ЗКБУ 1.0) перед повторным запуском переноса.

Разберем процесс по шагам:

  1. Перейдем в исходную базу ЗКБУ 1.0 в раздел с видами расчета (начислениями организации).
  2. Найдем начисление, на которое указывает ошибка (например, «За ночные часы»).
  3. Проанализируем используемую формулу. Предположим, в старой базе задана формула с делителем К1:
    
    Результат = ОкладПоДнямДляЗаНочныеЧасы * ВремяВЧасах * ПроцентДляЗаНочныеЧасы / К1 / 100
    
  4. Если показатель К1 равен 0 или не определен, заменим его на прямое числовое значение среднемесячного количества часов (например, 182.5) или стандартную формулу без нулевых знаменателей:
    
    Результат = ОкладПоДнямДляЗаНочныеЧасы * ВремяВЧасах * ПроцентДляЗаНочныеЧасы / 182.5 / 100
    
  5. Сохраним изменения видов расчета в исходной базе.
  6. Запустим заново мастер начальной настройки программы в ЗКГУ 3.1 и повторим перенос данных.

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

Если исправление формулы не помогло или вы хотите исключить ошибки расчета норм времени, проверим заполнение нормативно-справочной информации за все переносимые года (например, за 2017 год):

  1. В исходной базе ЗКБУ 1.0 и целевой базе ЗКГУ 3.1 открываем производственный календарь за переносимый период и убеждаемся, что он полностью заполнен и утвержден.
  2. Проверяем графики работы сотрудников (включая сменные и индивидуальные графики). В них должны быть заполнены часы и нормы времени.
  3. В целевой базе ЗКГУ 3.1 заходим в настройки расчета зарплаты и проверяем порядок пересчета тарифной ставки (по норме времени по графику сотрудника, по производственному календарю или по среднемесячному количеству часов).

Решение 3. Использование рекомендованного («краткого») переноса

Если перенос всей истории за прошлые годы вызывает множественные ошибки из-за накапливавшихся годами битых ссылок <Объект не найден>, рекомендуем выбрать вариант рекомендованного («краткого») переноса:

  1. В мастере настройки программы на этапе «Выбор варианта переноса данных» указываем краткий перенос (перенос остатков и кадрового среза на начало года).
  2. При таком подходе в новую базу переносятся только текущие кадровые данные, штатная расстановка и срез для расчета среднесдельного заработка (для больничных и отпусков), а устаревшие формулы и битые исторические записи прошлых лет игнорируются.
← На главную