Почему не заполняется отчет «Штатная расстановка» в 1С:ЗУП 3.1 после обновления?

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

Многие пользователи и администраторы системы 1С:Зарплата и управление персоналом 3.1 сталкиваются с ситуацией, когда после очередного обновления конфигурации (особенно это характерно для перехода на ветку 3.1.10 и выше) отчет «Штатная расстановка» начинает формироваться некорректно. Часть сотрудников может отображаться в отчете, в то время как другие — полностью отсутствовать, хотя по кадровому учету они приняты и работают. В этой статье мы подробно разберем причины возникновения этой ошибки и способы ее устранения.

Выясним причину проблемы: переход на новую структуру данных

Для начала проанализируем ситуацию с технической стороны. Начиная с версии 3.1.10, логика формирования отчетов по штатному расписанию в 1С:ЗУП претерпела значительные изменения. Если раньше отчеты строились на основании кадровых документов напрямую или простых срезов последних по регистрам сведений, то теперь основным источником данных стал специализированный регистр накопления — ЗанятостьПозицийШтатногоРасписания.

При обновлении программы запускаются так называемые отложенные обработчики обновления. Их задача — пересчитать данные из старых документов и заполнить новый регистр накопления. Если этот процесс завершается с ошибкой или прерывается, отчеты, использующие данные этого регистра (включая «Штатную расстановку»), будут показывать пустые строки или неполные данные. Рассмотрим подробнее, почему это происходит.

Анализ ошибки процедур обновления

Одной из наиболее часто встречающихся ошибок в данном контексте является исключение, связанное с превышением количества попыток запуска обработчика. Рассмотрим типичный текст ошибки, возникающий в журнале регистрации или в форме результатов обновления:


Процедура "Документы.ВозвратИзОтпускаПоУходуЗаРебенком.ЗаполнитьДвиженияЗанятостьПозицийШтатногоРасписания" 
обработки данных завершилась с ошибкой: {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6520)}: 
Превышено допустимое количество запусков процедуры обновления. 
Выполнение прервано для предотвращения зацикливания механизма обработки данных.

Эта ошибка сигнализирует о том, что механизм БСП (Библиотеки стандартных подсистем) пытался многократно (обычно 10 раз) запустить процедуру заполнения движений по регистру, но каждый раз сталкивался с проблемой. Чаще всего «камнем преткновения» становятся документы ВозвратИзОтпускаПоУходуЗаРебенком. В новых релизах была изменена логика учета того, освобождает ли сотрудник ставку на время отпуска. Если в базе накоплены исторические данные с логическими противоречиями (например, ставка была освобождена, но возврат оформлен некорректно с точки зрения новой структуры), обработчик «зацикливается».

Способ решения №1: Перепроведение документов и перезапуск обновления

Посмотрим на практический способ решения проблемы, который помог большинству пользователей. Если мы обнаружили, что обработчик обновления «спотыкается» на документах возврата из отпуска, нам необходимо помочь системе актуализировать эти данные вручную.

  1. Перейдем в список документов «Возврат из отпуска по уходу».
  2. Выделим документы за период, который предшествовал возникновению ошибки (или все документы, если их немного).
  3. Выполним отмену проведения документов.
  4. Заново проведем документы. При проведении в актуальном релизе программа самостоятельно сформирует нужные записи в регистре ЗанятостьПозицийШтатногоРасписания, так как теперь этот механизм встроен непосредственно в процедуру проведения документа.
  5. После этого необходимо вернуться в раздел Администрирование — Обслуживание — Результаты обновления программы.
  6. Найдем в списке «зависшую» или ошибочную процедуру (она будет выделена красным цветом) и нажмем кнопку «Повторить выполнение».

После успешного завершения всех процедур обновления отчет «Штатная расстановка» должен начать заполняться корректно.

Способ решения №2: Использование типовой обработки для исправления данных

Если документов слишком много и ручное перепроведение затруднительно, разберем более технологичный подход. В составе конфигурации 1С:ЗУП существуют скрытые инструменты для обслуживания данных штатного расписания. Проанализируем возможность их использования через функции для технического специалиста.

Нам потребуется обработка «Заполнение данных занятости позиций штатного расписания». Чтобы ее запустить, выполним следующие шаги:

  1. Нажмем на главное меню (три полоски в левом верхнем углу) и выберем пункт «Функции для технического специалиста» (если пункт не отображается, его нужно включить в настройках параметров).
  2. В окне поиска введем название обработки: Заполнение данных занятости позиций штатного расписания.
  3. В открывшейся форме выберем режим работы (рекомендуется сначала запустить анализ или заполнение по конкретным проблемным сотрудникам).
  4. Нажмем кнопку выполнения. Эта обработка принудительно пересчитает движения документов по регистру ЗанятостьПозицийШтатногоРасписания без необходимости полной отмены проведения кадровых приказов.

Важный момент: использование этой обработки часто является более безопасным методом, чем массовое перепроведение документов, так как оно не затрагивает другие регистры (например, расчет зарплаты или взаиморасчеты), а работает только с целевым регистром штатного расписания.

Проверка результата и мониторинг регистра

Разберем, как убедиться, что проблема решена окончательно. Мы можем проверить данные напрямую в регистре. Для этого снова воспользуемся функциями для технического специалиста и найдем регистр накопления ЗанятостьПозицийШтатногоРасписания. В нем должны присутствовать записи по тем сотрудникам, которые ранее не попадали в отчет. Обратите внимание на колонку Состояние — она определяет, является ли позиция занятой, подмененной или временно освобожденной.

Рассмотрим ситуацию, если отчет все равно пуст. В этом случае проверьте настройки самого штатного расписания в меню Настройка — Кадровый учет — Настройка штатного расписания. Убедитесь, что флаг «Ведется штатное расписание» включен. Если вы используете ведение истории изменений, проверьте, заполнены ли документы УтверждениеШтатногоРасписания или ИзменениеШтатногоРасписания.

Резюме

Подводя итог, можно сказать, что пустой отчет «Штатная расстановка» в 1С:ЗУП 3.1 — это почти всегда следствие «недовыполненного» обновления информационной базы. Основные шаги по исправлению:

  1. Проверка статуса фоновых заданий обновления через форму «Результаты обновления программы».
  2. Устранение блокирующих ошибок в документах Возврат из отпуска по уходу за ребенком.
  3. Принудительное заполнение регистра занятости через специализированные обработки.

Соблюдение этой последовательности позволит вам восстановить корректную работу отчетов и обеспечить актуальность данных о расстановке сотрудников в организации.

← На главную