Ведение штатного расписания в программе «1С:Зарплата и управление персоналом» (редакция 3.1) — важнейшая часть кадрового учета. Часто на начальном этапе работы с программой историю изменений штатного расписания отключают для упрощения ввода данных. Однако со временем возникает необходимость активировать эту опцию (находится в меню Настройка — Кадровый учет — Настройка штатного расписания путем установки флажка «Ведется история изменений штатного расписания»). При попытке включить эту настройку пользователи часто сталкиваются с системными ошибками, блокирующими процесс и указывающими на проблемы в прошлых периодах (например, в конкретном месяце года).
В этой статье мы подробно разберем внутренние механизмы платформы, которые вызывают этот сбой, проанализируем основные причины возникновения ошибки и приведем пошаговые инструкции по их устранению.
Для успешного решения проблемы нам важно понимать, какую фоновую работу выполняет конфигурация в момент установки флажка. Программа не просто меняет режим отображения данных — она инициирует глубокую перестройку кадровых данных:
Если в цепочке исторических данных за прошлые годы обнаруживается хотя бы один некорректный показатель (например, нулевая норма времени или удаленный сотрудник), проведение скрытого документа прерывается, и система выдает ошибку.
Самая распространенная причина ошибки заключается в том, что расчет ФОТ натыкается на нулевую норму времени в одном из графиков работы за прошлые годы. Если в формуле начисления сотрудника присутствует показатель НормаЧасов или НормаДней, программа выполняет математическое деление на этот показатель. Если норма не заполнена (равна 0), происходит критическая ошибка деления на ноль.
Разберем по шагам, как выявить и заполнить такие графики:
После того как все графики за прошлые периоды будут заполнены и записаны, повторим попытку включения истории штатного расписания.
Если все графики заполнены корректно, но ошибка сохраняется, проблема может заключаться в нарушении ссылочной целостности базы данных. Такое случается, если карточка сотрудника была физически удалена из базы (например, при некорректном слиянии дублей или сбоях синхронизации), но записи о его начислениях и занятости позиций остались в системных регистрах.
Стандартное тестирование и исправление базы в Конфигураторе часто не может автоматически очистить подобные записи в сложных периодических регистрах сведений. Выясним причину проблемы с помощью ручной проверки регистров.
Выполним следующие действия для поиска поврежденных записей:
ЗанятостьПозицийШтатногоРасписанияЗанятостьПозицийШтатногоРасписанияИнтервальныйЗанятостьПозицийШтатногоРасписания. Внимательно проанализируем колонку «Сотрудник». Нам нужно найти строчки, в которых вместо имени сотрудника отображается надпись вида <Объект не найден...> (после этой надписи обычно идет длинный уникальный идентификатор GUID).Для оперативного поиска поврежденных данных в больших базах данных программисты могут запустить обработку «Консоль запросов» и выполнить следующий запрос:
ВЫБРАТЬ
Занятость.Период КАК Период,
Занятость.Позиция КАК Позиция,
Занятость.Сотрудник КАК БитыйСотрудник
ИЗ
РегистрСведений.ЗанятостьПозицийШтатногоРасписания КАК Занятость
ГДЕ
Занятость.Сотрудник.Ссылка ЕСТЬ NULL
И НЕ Занятость.Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
Если запрос вернул строки с битыми ссылками, выполним их очистку:
ЗанятостьПозицийШтатногоРасписанияИнтервальный. Чтобы внести изменения, нажмем кнопку «Еще», выберем команду «Разблокировать объекты», а затем нажмем «Перезаполнить регистр». Система автоматически пересчитает интервалы занятости на основании оставшихся корректных документов.Важно: Любые технические манипуляции с регистрами сведений напрямую могут повлиять на корректность учета. Перед проведением этих процедур обязательно выполните создание резервной копии информационной базы (выгрузку файла .dt или создание бэкапа на SQL-сервере).
Иногда включение истории изменений штатного расписания блокируется из-за ошибок в правилах регистрации изменений для обмена данными (например, при настроенной синхронизации между ЗУП и Бухгалтерией предприятия). При сохранении фонового документа программа пытается зарегистрировать изменения для справочников должностей и подразделений, что вызывает конфликт.
Для устранения этой проблемы выполним следующие шаги:
Применяя указанные методы последовательно, мы сможем гарантированно обойти технические ограничения программы, исправить накопившиеся ошибки прошлых периодов и успешно перевести базу данных на ведение полноценной истории изменений штатного расписания.