После миграции данных из 1С ЗУП 2.5 в 3.1 пользователи часто сталкиваются с неожиданными проблемами, одной из которых является дублирование сотрудников при подборе по фамилии. Хотя в самих справочниках "Сотрудники" и "Физические лица" все выглядит корректно, при вводе фамилии в контекстном меню подбора могут выскакивать лишние записи, ссылающиеся на одну и ту же карточку сотрудника. Эта ситуация может быть крайне неудобной и вызывать замешательство. Давайте вместе разберем причины возникновения этой проблемы и найдем эффективные способы ее устранения.
Прежде чем перейти к конкретным решениям, давайте выясним, почему вообще возникают такие ситуации. 1С:ЗУП 3.1 — это не просто обновление предыдущей версии, а качественно новый продукт с измененной архитектурой хранения и обработки данных. Отличия касаются практически всех аспектов, от структуры кадровых карточек до логики начислений и регистров расчета заработной платы. Соответственно, простой перенос данных из 2.5 в 3.1 без учета этих особенностей или наличие ошибок в исходной базе 2.5 могут привести к некорректному заполнению новых регистров сведений и, как следствие, к появлению дублей.
Основными причинами дублирования могут быть:
ФИО физлиц: В ЗУП 3.1 именно этот регистр хранит историю изменения ФИО физических лиц. Некорректные или дублирующиеся записи здесь, особенно с неверными датами действия (например, 01.01.1900), часто становятся причиной задвоения при подборе.Физические лица: Несмотря на то, что в нашей ситуации справочник казался чистым, это частая причина дублирования, которое затем распространяется на выбор сотрудников.Когда мы сталкиваемся с проблемой дублирования сотрудников при подборе, в первую очередь нам необходимо провести тщательную диагностику. Рассмотрим шаги, которые обычно предпринимаются для локализации источника проблемы:
Сотрудники и Физические лицаПрежде всего, давайте убедимся, что в основных справочниках нет явных дублей. Перейдем в разделы "Кадры" -> "Сотрудники" и "Кадры" -> "Физические лица". Внимательно просмотрим списки, используя сортировку по ФИО или другим реквизитам. Иногда пользователи могут создавать несколько карточек для одного и того же человека. В нашем случае, как и в примере с форума, эти справочники выглядели чистыми, что указывало на более глубокую проблему в регистрах сведений.
СостояниеСотрудниковРегистр сведений СостояниеСотрудников содержит информацию о текущем состоянии каждого сотрудника (работает, уволен, в отпуске и т.д.) на определенную дату. Для проверки откроем данный регистр через меню "Все функции" (обычно доступно через главное меню -> "Сервис" -> "Параметры" -> "Отображать команду 'Все функции'") или непосредственно через конфигуратор. Установим отбор по сотруднику, у которого наблюдается дублирование. Нас интересует, нет ли задвоенных записей для одного и того же сотрудника на пересекающиеся периоды. В ситуации, описанной в форуме, для "двоящегося" сотрудника записи в этом регистре были однотипны с "нормальным" сотрудником, что исключило этот регистр как причину проблемы.
Данные для подбора сотрудниковРегистр сведений Данные для подбора сотрудников является непосредственным источником данных для механизма подбора в системе. Логика вывода сотрудников в подборе осуществляется в процедуре СотрудникиРасширенный.ОбработкаПолученияДанныхВыбора, которая черпает информацию именно из этого регистра. Если в данном регистре присутствуют некорректные или дублирующиеся записи для одного физического лица, это неизбежно приведет к задвоению при выборе.
Для проверки:
Данные для подбора сотрудников.ФизическоеЛицо, Представление, ДатаАктуальности.Как и в случае с СостояниеСотрудников, в описанной на форуме ситуации, этот регистр также не показал аномалий, что заставило искать причину глубже.
ФИО физлицВ ходе обсуждения на форуме было найдено решающее звено проблемы — регистр сведений ФИО физлиц. Именно в нем чаще всего кроется причина дублирования при подборе после миграции из ЗУП 2.5 в 3.1.
ФИО физлиц является источником проблемы?Этот регистр хранит историю изменения фамилии, имени и отчества каждого физического лица. Каждая запись в регистре содержит ссылку на физическое лицо, ФИО и дату, с которой это ФИО стало актуальным. Если в этом регистре для одного и того же физического лица по какой-либо причине (ошибка при переносе, ручной ввод, сбой) создаются дублирующиеся записи или записи с некорректными датами действия (например, несколько записей с одной и той же датой начала действия или записи с датой 01.01.1900), система начинает "путаться", отображая несколько вариантов одного и того же человека при подборе.
ФИО физлиц:Для программистов: вы можете использовать консоль запросов или обработку для просмотра содержимого регистра.
ФИО физлиц.ФИО физлиц удалите лишние или некорректные записи. Оставьте только одну актуальную запись для каждого изменения ФИО с правильным периодом действия.Физические лица и Сотрудники:
После корректировки регистра ФИО физлиц рекомендуется открыть карточки затронутых Физических лиц и Сотрудников, а затем просто нажать кнопку "Записать" без внесения изменений. Это может инициировать обновление зависимых регистров и кэша системы.
В случае, описанном в форуме, именно эта операция с регистром ФИО физлиц позволила успешно решить проблему дублирования.
Если решение с ФИО физлиц не принесло желаемого результата, или если вы хотите глубже понять механизм работы подбора, мы можем обратиться к отладке и анализу других регистров и процедур.
СотрудникиРасширенный.ОбработкаПолученияДанныхВыбораКак мы уже выяснили, логика вывода сотрудников в подборе осуществляется в процедуре СотрудникиРасширенный.ОбработкаПолученияДанныхВыбора. Это расширение типовых механизмов, которое агрегирует данные для подбора. Для глубокого анализа нам потребуется отладчик.
СотрудникиРасширенный или общий модуль, который содержит процедуру ОбработкаПолученияДанныхВыбора. Установим точку останова в начале этой процедуры.ДанныеВыбора.ДанныеДляПодбораСотрудников и логике добавления элементов в результирующий список.ДанныеВыбора – либо запрос изначально возвращает дубли из регистра, либо логика самой процедуры некорректно обрабатывает полученные данные.Этот подход поможет нам точно определить источник дублирования на уровне программного кода.
Помимо уже упомянутых, рассмотрим другие объекты, которые могут косвенно влиять на проблему:
Физические лица: Еще раз подчеркнем, что если здесь все же есть дубли (даже если они кажутся незаметными), это будет первопричиной. Используем встроенные обработки для поиска и удаления дублей: "Администрирование" -> "Поддержка и обслуживание" -> "Поиск и удаление дублей". Выберем справочник Физические лица и запустим поиск. Эта обработка позволяет объединить документы, относящиеся к задублированным записям, на одну карточку.ОсновныеСотрудники: Этот регистр определяет, кто является основным сотрудником для физического лица. Некорректные записи здесь также могут вызывать сбои.Чтобы минимизировать риски возникновения подобных проблем в будущем и обеспечить стабильную работу после миграции, рекомендуем придерживаться следующих практик:
Данные для подбора сотрудников кажется чистым, иногда помогает его принудительное переформирование. Для этого могут существовать специальные обработки, которые обновляют данные для подбора конкретного сотрудника или всего регистра.Решение проблемы с дублированием сотрудников в 1С ЗУП 3.1 после миграции, как мы видим, чаще всего лежит в области некорректно заполненных регистров сведений, в частности ФИО физлиц. Системный подход к диагностике, внимательная проверка данных и использование отладчика позволяют эффективно локализовать и устранить такие аномалии, возвращая системе корректное и удобное функционирование.