Почему дублируется сотрудник в отчете «Штатные сотрудники» и как это исправить?

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

При работе в программах 1С:ERP Управление предприятием, 1С:Зарплата и управление персоналом или 1С:Комплексная автоматизация пользователи часто сталкиваются со странным поведением кадровых отчетов. Типичный пример: в отчете Штатные сотрудники один и тот же человек выводится в виде нескольких строк (например, четырех), хотя в организации он занимает только одну ставку и не является совместителем. При этом общее количество сотрудников в подвале отчета может рассчитываться абсолютно корректно. Подобное поведение системы вводит в заблуждение кадровую службу и руководство.

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

Причина 1. Избыточные группировки и расширенные настройки отчета

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

Выполним проверку настроек по шагам:

  1. Откроем отчет Штатные сотрудники и перейдем в меню Настройки.
  2. Переключим вид настроек в режим Расширенный.
  3. Перейдем на вкладку Структура. Проанализируем, какие поля добавлены в группировки. Если там присутствуют реквизиты, которые могут меняться во времени или дублироваться (например, детальные записи по начислениям, плановым авансам или историческим кадровым данным), отчет начнет плодить строки на каждое изменение.
  4. Уберем лишние поля из структуры и сформируем отчет заново. Если количество строк пришло в норму, значит, проблема была исключительно в пользовательских настройках вывода данных.

Причина 2. Несколько документов, удостоверяющих личность (паспортов)

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

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

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

Причина 3. Расхождение данных в регистре «Занятость позиций штатного расписания»

Проанализируем состояние штатного расписания. Отчет Штатные сотрудники тесно связан с регистром сведений ЗанятостьПозицийШтатногоРасписания. Если по сотруднику проводились исправления кадровых документов «задним числом» или имели место коллизии при переносе данных, записи в этом регистре могли задвоиться.

Выясним причину через просмотр движений:

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

Причина 4. Проблемы с интервальными регистрами

В современных конфигурациях 1С для ускорения работы отчетов кадровые данные хранятся в специальных «интервальных» регистрах сведений. Система сама рассчитывает временные интервалы при проведении документов. Но если цепочка кадровых документов была нарушена (например, сначала провели перевод, потом распровели прием, затем снова провели), интервалы могут «разорваться» или наложиться друг на друга.

Чаще всего сбои происходят в следующих регистрах:

Разберем, как восстановить целостность этих данных без написания кода:

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

Причина 5. Некорректные записи в регистре «Текущие кадровые данные сотрудников»

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

Проанализируем этот регистр:

  1. Перейдем в регистр по ссылке e1cib/list/РегистрСведений.ТекущиеКадровыеДанныеСотрудников.
  2. Установим отбор по нашему физлицу или сотруднику.
  3. В норме здесь должна быть строго одна запись на одного сотрудника. Если мы видим две строки, где в одной заполнены все реквизиты (подразделение, должность, ставка), а во второй заполнены только поля Физлицо и Сотрудник, а остальные колонки пусты — перед нами технический дубль.
  4. Необходимо аккуратно удалить пустую некорректную строку регистра. Это можно сделать вручную (если у пользователя есть соответствующие права) либо с помощью универсальной обработки выбора и удаления объектов.

Причина 6. Ошибки в регистре «Основные сотрудники физических лиц»

Этот регистр хранит информацию о том, какое рабочее место (какая карточка сотрудника) является основным для конкретного физического лица. Это критически важно, если у человека в одной организации открыто несколько карточек (например, основное место работы и внутреннее совместительство).

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

Причина 7. Известные ошибки релизов конфигурации

Стоит отметить, что дублирование сотрудников часто являлось следствием зарегистрированных багов самой платформы 1С или типовых конфигураций (ЗУП 3.1.14 / ERP 2.4). Ошибка крылась в сложном пакете запросов схемы компоновки данных (СКД) кадровых отчетов, где соединение с регистром состояний сотрудников при определенных условиях давало декартово произведение строк.

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

  1. Откроем настройки отчета Штатные сотрудники в расширенном режиме.
  2. На вкладке Структура добавим принудительную группировку по полю Сотрудник или Табельный номер.
  3. Это заставит систему сгруппировать все дублирующиеся технические строки в одну понятную строку для кадровика. Результаты расчетов (показатели ставок, окладов) при этом будут выводиться корректно.

Лайфхак: Быстрое исправление регистра состояний без программирования

Если вы подозреваете, что проблема кроется в регистре состояний, но визуально все записи выглядят правильными, можно принудительно заставить систему пересчитать движения по конкретному сотруднику с помощью следующего алгоритма:

  1. Создадим новый документ Отсутствие (болезнь, прогул, неявка) на проблемного сотрудника.
  2. Установим период отсутствия ровно в один день (желательно текущей датой).
  3. Проведем этот документ. В момент проведения система перезапишет все движения по регистрам состояний, сопоставив их с новой цепочкой документов.
  4. Сразу после этого отменим проведение созданного документа (распроведем его) и пометим на удаление.

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

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

← На главную