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

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

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

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

1. Разберем архитектуру 1С: «Физические лица» против «Сотрудников»

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

  1. Справочник ФизическиеЛица — это реестр реальных людей. Карточка физлица содержит уникальные персональные данные: паспортные данные, дату рождения, ИНН, СНИЛС, контактную информацию. Физическое лицо в системе должно быть создано строго в одном экземпляре.
  2. Справочник Сотрудники — это разрез учета, описывающий трудовые отношения организации с конкретным человеком. На одно и то же физическое лицо в системе может быть заведено несколько карточек сотрудников. Например, если сотрудник работает в компании по основному месту работы и одновременно оформлен как внутренний совместитель, в системе у вас будет ровно одно физическое лицо, но два разных сотрудника. Аналогичная ситуация возникает при повторном приеме уволенного ранее сотрудника: старый договор закрывается, а для нового приема создается новая карточка в справочнике Сотрудники, которая привязывается к тому же самому физическому лицу.

Связующим звеном между ними является реквизит ФизЛицо в карточке сотрудника. Если эта связь нарушается или дублируется на уровне физических лиц, программа начинает вести себя некорректно при автозаполнении документов.

2. Выясним причину: почему возникли дубли при загрузке?

Проанализируем ситуацию, описанную пользователем. Для импорта данных использовалась типовая обработка ЗагрузкаДанныхИзТабличногоДокумента. Задвоение в данном сценарии происходит по нескольким стандартным причинам:

А. Нарушение логической последовательности загрузки данных. Если сначала загрузить таблицу со списком сотрудников, система автоматически создаст под каждого из них новую карточку в справочнике ФизическиеЛица. Если после этого запустить отдельный импорт справочника ФизическиеЛица без четкой настройки полей поиска, система создаст еще один набор записей физлиц, так как внутренние уникальные идентификаторы (GUID) созданных ранее записей не совпадут с новыми.

Б. Некорректная настройка полей поиска в обработке. При загрузке справочника Сотрудники колонка связи ФизЛицо должна сопоставляться по уникальному ключу (лучше всего использовать СНИЛС или ИНН). Если поиск был настроен по простому текстовому представлению (ФИО), то малейшее различие в написании (лишний пробел в конце строки, использование латинской буквы «С» вместо русской, отсутствие точек в инициалах) приведет к созданию дублирующей карточки физического лица.

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

3. Как обнаружить скрытых дублей?

Давайте проверим наличие скрытых записей в справочнике Сотрудники. Для этого выполним следующие действия:

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

Чтобы локализовать проблему на уровне базы данных и выявить задвоения СНИЛС или ИНН в справочнике физических лиц, мы можем использовать простой запрос. Проанализируем пример кода для поиска дубликатов:


ВЫБРАТЬ
    ФизическиеЛица.СтраховойНомерПФР КАК СНИЛС,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК КоличествоДублей
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
    ФизическиеЛица.СтраховойНомерПФР <> ""
СГРУППИРОВАТЬ ПО
    ФизическиеЛица.СтраховойНомерПФР
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) > 1

Этот запрос наглядно покажет нам, какие СНИЛС зарегистрированы в базе более одного раза, что является прямым подтверждением наличия дублирующихся физических лиц.

4. Подробные методы решения проблемы

Рассмотрим несколько эффективных способов устранения дублей в зависимости от того, успели ли вы провести по ним кадровые или расчетные документы.

Способ А: Типовой инструмент «Объединение личных карточек»

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

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

Способ Б: Использование внешней обработки «Поиск и замена значений»

В тех случаях, когда штатное объединение выдает ошибки или не может обработать сложные связи старой редакции ЗиУП 2.5, мы рекомендуем воспользоваться универсальной внешней обработкой администратора.

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

Способ В: Полная очистка и ручное исправление (если документы еще не проведены)

Если вы только что загрузили базу, обнаружили дубли при попытке создать первый документ ПриемНаРаботу и никаких расчетов по этим сотрудникам еще не производилось, проще всего очистить ошибочные данные:

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

5. Как предотвратить появление дублей при последующих загрузках?

Чтобы избежать подобных проблем при регулярном импорте данных или обновлении кадровой информации, соблюдайте важные правила настройки обработки ЗагрузкаДанныхИзТабличногоДокумента:

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

← На главную