Многие пользователи и администраторы системы 1С:Зарплата и управление персоналом 3.1 сталкиваются с ситуацией, когда после очередного обновления конфигурации (особенно это характерно для перехода на ветку 3.1.10 и выше) отчет «Штатная расстановка» начинает формироваться некорректно. Часть сотрудников может отображаться в отчете, в то время как другие — полностью отсутствовать, хотя по кадровому учету они приняты и работают. В этой статье мы подробно разберем причины возникновения этой ошибки и способы ее устранения.
Для начала проанализируем ситуацию с технической стороны. Начиная с версии 3.1.10, логика формирования отчетов по штатному расписанию в 1С:ЗУП претерпела значительные изменения. Если раньше отчеты строились на основании кадровых документов напрямую или простых срезов последних по регистрам сведений, то теперь основным источником данных стал специализированный регистр накопления — ЗанятостьПозицийШтатногоРасписания.
При обновлении программы запускаются так называемые отложенные обработчики обновления. Их задача — пересчитать данные из старых документов и заполнить новый регистр накопления. Если этот процесс завершается с ошибкой или прерывается, отчеты, использующие данные этого регистра (включая «Штатную расстановку»), будут показывать пустые строки или неполные данные. Рассмотрим подробнее, почему это происходит.
Одной из наиболее часто встречающихся ошибок в данном контексте является исключение, связанное с превышением количества попыток запуска обработчика. Рассмотрим типичный текст ошибки, возникающий в журнале регистрации или в форме результатов обновления:
Процедура "Документы.ВозвратИзОтпускаПоУходуЗаРебенком.ЗаполнитьДвиженияЗанятостьПозицийШтатногоРасписания"
обработки данных завершилась с ошибкой: {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6520)}:
Превышено допустимое количество запусков процедуры обновления.
Выполнение прервано для предотвращения зацикливания механизма обработки данных.
Эта ошибка сигнализирует о том, что механизм БСП (Библиотеки стандартных подсистем) пытался многократно (обычно 10 раз) запустить процедуру заполнения движений по регистру, но каждый раз сталкивался с проблемой. Чаще всего «камнем преткновения» становятся документы ВозвратИзОтпускаПоУходуЗаРебенком. В новых релизах была изменена логика учета того, освобождает ли сотрудник ставку на время отпуска. Если в базе накоплены исторические данные с логическими противоречиями (например, ставка была освобождена, но возврат оформлен некорректно с точки зрения новой структуры), обработчик «зацикливается».
Посмотрим на практический способ решения проблемы, который помог большинству пользователей. Если мы обнаружили, что обработчик обновления «спотыкается» на документах возврата из отпуска, нам необходимо помочь системе актуализировать эти данные вручную.
ЗанятостьПозицийШтатногоРасписания, так как теперь этот механизм встроен непосредственно в процедуру проведения документа.После успешного завершения всех процедур обновления отчет «Штатная расстановка» должен начать заполняться корректно.
Если документов слишком много и ручное перепроведение затруднительно, разберем более технологичный подход. В составе конфигурации 1С:ЗУП существуют скрытые инструменты для обслуживания данных штатного расписания. Проанализируем возможность их использования через функции для технического специалиста.
Нам потребуется обработка «Заполнение данных занятости позиций штатного расписания». Чтобы ее запустить, выполним следующие шаги:
Заполнение данных занятости позиций штатного расписания.ЗанятостьПозицийШтатногоРасписания без необходимости полной отмены проведения кадровых приказов.Важный момент: использование этой обработки часто является более безопасным методом, чем массовое перепроведение документов, так как оно не затрагивает другие регистры (например, расчет зарплаты или взаиморасчеты), а работает только с целевым регистром штатного расписания.
Разберем, как убедиться, что проблема решена окончательно. Мы можем проверить данные напрямую в регистре. Для этого снова воспользуемся функциями для технического специалиста и найдем регистр накопления ЗанятостьПозицийШтатногоРасписания. В нем должны присутствовать записи по тем сотрудникам, которые ранее не попадали в отчет. Обратите внимание на колонку Состояние — она определяет, является ли позиция занятой, подмененной или временно освобожденной.
Рассмотрим ситуацию, если отчет все равно пуст. В этом случае проверьте настройки самого штатного расписания в меню Настройка — Кадровый учет — Настройка штатного расписания. Убедитесь, что флаг «Ведется штатное расписание» включен. Если вы используете ведение истории изменений, проверьте, заполнены ли документы УтверждениеШтатногоРасписания или ИзменениеШтатногоРасписания.
Подводя итог, можно сказать, что пустой отчет «Штатная расстановка» в 1С:ЗУП 3.1 — это почти всегда следствие «недовыполненного» обновления информационной базы. Основные шаги по исправлению:
Возврат из отпуска по уходу за ребенком.Соблюдение этой последовательности позволит вам восстановить корректную работу отчетов и обеспечить актуальность данных о расстановке сотрудников в организации.