При переходе на новую базу или переносе данных в программном продукте 1С:Зарплата и управление персоналом (ЗУП) ред. 3.1 специалисты часто сталкиваются с ситуацией, когда перенесенные физические лица и сотрудники видны в консоли запросов или запросах динамического списка, но отсутствуют в стандартной форме списка справочника Сотрудники или в окнах подбора документов. Разберем причинно-следственные связи этой проблемы и рассмотрим способы ее устранения.
Проанализируем, почему возникает подобное поведение программы. В 1С:ЗУП 3.1 форма списка справочника Сотрудники построена на базе динамического списка со сложным запросом, объединяющим данные нескольких кадровых и служебных регистров сведений. Ключевую роль в отображении сотрудников играет регистр сведений ДанныеДляПодбораСотрудников.
Запрос динамического списка использует внутреннее соединение с регистром ДанныеДляПодбораСотрудников с учетом параметров текущей даты сеанса (ТекущаяДатаСеанса()). Если при переносе кадровой истории вручную была сформирована всего одна запись в этом регистре и в ней состояние сотрудника указано как Уволен, соединение не находит требуемой кадровой цепочки (события приема на работу) на текущий период. В результате сотрудника нет ни в основном списке, ни при подборе.
Выясним, какие еще параметры и настройки могут влиять на отображение сотрудников в интерфейсе 1С:ЗУП 3.1:
ВАрхиве часто принимает значение Истина. В пользовательском интерфейсе должен быть снят отбор «Скрывать сотрудников, по которым уже не выполняются операции».ДанныеДляПодбораСотрудников критически важно корректно заполнять поля ГоловнойСотрудник, Филиал и КоличествоСтавок.ТекущиеКадровыеДанныеСотрудников обязателен к заполнению реквизит ОсновноеРабочееМестоВОрганизации.НаборыЗначенийДоступа. При отсутствии рассчитанных ключей доступа физические лица скрываются для пользователей без полных прав.Рассмотрим подробнее способы исправления данной ситуации при переносе данных и ручной коррекции регистров.
Наиболее корректный способ решения задачи — переносить в регистр сведений ДанныеДляПодбораСотрудников не только итоговую запись с состоянием Уволен, но и первичную запись о приеме сотрудника на работу (состояние Работа или Прием). Наличие полного набора периодических записей позволяет механизму динамического списка правильно сформировать временной интервал и показать уволенного сотрудника в архиве.
Если перенос выполняется сокращенно и записи о приеме на работу не создаются, можно скорректировать запись уволенного сотрудника. В таком случае состояние Уволен в регистре сведений ДанныеДляПодбораСотрудников заменяют на значение вводОстатков (или соответствующее системное состояние начала учета).
После переноса движений и записи регистров сведений вручную стандартные обработчики проведения кадровых документов не запускаются автоматически. Для актуализации интервальных данных кадрового учета и срезов рекомендуем выполнить программный пересчет сведений. Разберем пример вызова соответствующей процедуры из общего модуля:
// Обновление и пересчет сведений о сотрудниках после переноса данных
КадровыйУчет.ОбновитьСведенияОСотрудниках();
Вызов процедур общего модуля КадровыйУчет позволяет автоматически переформировать служебные регистры и восстановить корректное отображение всей штатной численности и архивных сотрудников в списках базы.