Почему при увольнении сотрудников не освобождаются ставки в штатном расписании в 1С:ЗУП 3.1?

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

Одной из наиболее частых и неприятных проблем в программе 1С:Зарплата и Управление Персоналом (ЗУП) 3.1 является ситуация, когда сотрудники, которые уже давно прекратили трудовую деятельность в организации, продолжают отображаться в отчетах по штатному расписанию как занимающие ставки. Это вносит неразбериху в кадровый учет, мешает принимать новых сотрудников на освободившиеся позиции и искажает аналитическую отчетность. Давайте вместе разберем причины возникновения этой проблемы и пошагово выясним, как привести данные в порядок. Для выявления зависших ставок можно использовать отчет на основе формы Т-3 с выводом сотрудников по позициям штатного расписания.

Причина 1: Последствия перехода с версии 2.5 на 3.1

Если ваша база данных была создана путем переноса из предыдущей версии (ЗУП 2.5), корень проблемы часто кроется в документе Начальная штатная расстановка. Рассмотрим ситуацию подробнее: при "кратком" переносе данных на дату начала учета система фиксирует всех работающих сотрудников и занимаемые ими ставки именно этим документом.

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

Причина 2: Использование устаревших регистров в отчетах

Программа 1С постоянно развивается, и архитектура хранения данных меняется. Выясним, как это влияет на штатное расписание. В ранних версиях ЗУП 3.1 для учета занятых позиций использовался регистр накопления Занятые позиции штатного расписания. В современных релизах этот регистр помечен как "(не используется)", а данные теперь хранятся в регистре сведений Занятость позиций штатного расписания.

Разберем проблему: если вы используете кастомизированный (доработанный) отчет или старую внешнюю форму, она может продолжать обращаться к старому регистру накопления. Современные документы Увольнение или Кадровый перевод просто не делают записей в этот старый регистр. Как результат — в отчете мы видим старые, "зависшие" данные, хотя в актуальных регистрах позиции свободны.

Причина 3: Ошибки конкретных релизов и программные сбои

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

В этом случае часто помогает простое перепроведение документа. Если после обновления конфигурации вы заметили, что штатка "поплыла", попробуйте отменить проведение документа увольнения и провести его заново. Это инициирует обновление записей во всех связанных регистрах учета. Однако будьте внимательны: иногда после такого действия в отчетах вместо ФИО сотрудника может появиться запятая (например, ", ,"). Это признак того, что в регистре осталась "битая" запись — ссылка на сотрудника удалена, а запись о занятости позиции осталась.

Причина 4: Влияние настройки истории штатного расписания

Посмотрим на настройки кадрового учета. В ЗУП 3.1 есть важная опция: "Ведется история изменений штатного расписания". Поведение системы кардинально различается в зависимости от её состояния:

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

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

Методика исправления: пошаговый алгоритм

Разберем по шагам, что нужно сделать, чтобы освободить ставки:

  1. Проверка актуальности релиза. Прежде всего, убедитесь, что ваша конфигурация обновлена до последней версии. Многие ошибки в типовых отчетах исправляются разработчиками в минорных обновлениях. При наличии нескольких информационных баз для своевременной автоматической установки релизов настраивают автоматическое обновление конфигураций 1С по расписанию.
  2. Перепроведение документов. Найдите документы Увольнение по проблемным сотрудникам. Отмените проведение и проведите их заново. Если сотрудников много, воспользуйтесь групповой обработкой документов.
  3. Корректировка "Начальной штатной расстановки". Если проблема тянется с момента переноса данных, откройте документ Начальная штатная расстановка, найдите там уволенных сотрудников и удалите строки с ними, либо скорректируйте количество занимаемых ими ставок.
  4. Анализ регистра через "Функции для технического специалиста". Если простые методы не помогают, нам придется заглянуть "под капот". Перейдите в регистр сведений Занятость позиций штатного расписания и проверьте наличие записей по конкретной позиции. Если вы видите там записи по уволенным сотрудникам, их можно удалить вручную или с помощью корректировки регистров (но делайте это крайне осторожно и только на копии базы!).
  5. Проверка совместителей. Часто ставка не освобождается, потому что сотрудник является внутренним совместителем. Проверьте, уволен ли он со всех должностей. Даже 0.1 ставки, оставшаяся на "забытом" совмещении, будет отображать позицию как занятую.

Технический нюанс: исправление пустых записей (запятых)

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


// Пример логики очистки зависших записей
НаборЗаписей = РегистрыНакопления.ЗанятыеПозицииШтатногоРасписания.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокументУвольнения);
НаборЗаписей.Прочитать();
// Проверка и очистка пустых или некорректных движений
Если НаборЗаписей.Количество() > 0 Тогда
    НаборЗаписей.Очистить();
    НаборЗаписей.Записать();
КонецЕсли;

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

← На главную