Как исправить дублирование сотрудников при выборе в 1С ЗУП 3.1 после переноса данных из ЗУП 2.5?

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

После миграции данных из 1С ЗУП 2.5 в 3.1 пользователи часто сталкиваются с неожиданными проблемами, одной из которых является дублирование сотрудников при подборе по фамилии. Хотя в самих справочниках "Сотрудники" и "Физические лица" все выглядит корректно, при вводе фамилии в контекстном меню подбора могут выскакивать лишние записи, ссылающиеся на одну и ту же карточку сотрудника. Эта ситуация может быть крайне неудобной и вызывать замешательство. Давайте вместе разберем причины возникновения этой проблемы и найдем эффективные способы ее устранения.

Понимание природы проблемы дублирования сотрудников после миграции

Прежде чем перейти к конкретным решениям, давайте выясним, почему вообще возникают такие ситуации. 1С:ЗУП 3.1 — это не просто обновление предыдущей версии, а качественно новый продукт с измененной архитектурой хранения и обработки данных. Отличия касаются практически всех аспектов, от структуры кадровых карточек до логики начислений и регистров расчета заработной платы. Соответственно, простой перенос данных из 2.5 в 3.1 без учета этих особенностей или наличие ошибок в исходной базе 2.5 могут привести к некорректному заполнению новых регистров сведений и, как следствие, к появлению дублей.

Основными причинами дублирования могут быть:

  1. Архитектурные различия: ЗУП 3.1 использует иные регистры сведений для хранения ФИО, состояний сотрудников и данных для подбора. Некорректное преобразование данных в процессе переноса может нарушить целостность этих регистров.
  2. Ошибки в исходной базе ЗУП 2.5: Если в старой базе уже были какие-то аномалии или неконсистентность данных, они с большой вероятностью перенесутся и в новую систему, проявляясь уже по-новому.
  3. Неправильный выбор способа переноса: Перенос остатков вместо полного переноса или наоборот, а также некорректная настройка правил обмена, могут повлиять на качество перенесенных данных.
  4. Особенности регистра сведений ФИО физлиц: В ЗУП 3.1 именно этот регистр хранит историю изменения ФИО физических лиц. Некорректные или дублирующиеся записи здесь, особенно с неверными датами действия (например, 01.01.1900), часто становятся причиной задвоения при подборе.
  5. Дубли в справочнике Физические лица: Несмотря на то, что в нашей ситуации справочник казался чистым, это частая причина дублирования, которое затем распространяется на выбор сотрудников.
  6. Дублирование ключевых значений в динамических списках: Если возникает ошибка "Обнаружено дублирование ключевых значений" при работе со справочником "Сотрудники", это может указывать на то, что динамические списки не поддерживают дублирование записей по ключевым полям, что часто происходит из-за сбоев при переносе.

Первичная диагностика: Куда смотреть в первую очередь

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

Шаг 1: Проверка справочников Сотрудники и Физические лица

Прежде всего, давайте убедимся, что в основных справочниках нет явных дублей. Перейдем в разделы "Кадры" -> "Сотрудники" и "Кадры" -> "Физические лица". Внимательно просмотрим списки, используя сортировку по ФИО или другим реквизитам. Иногда пользователи могут создавать несколько карточек для одного и того же человека. В нашем случае, как и в примере с форума, эти справочники выглядели чистыми, что указывало на более глубокую проблему в регистрах сведений.

Шаг 2: Анализ регистра сведений СостояниеСотрудников

Регистр сведений СостояниеСотрудников содержит информацию о текущем состоянии каждого сотрудника (работает, уволен, в отпуске и т.д.) на определенную дату. Для проверки откроем данный регистр через меню "Все функции" (обычно доступно через главное меню -> "Сервис" -> "Параметры" -> "Отображать команду 'Все функции'") или непосредственно через конфигуратор. Установим отбор по сотруднику, у которого наблюдается дублирование. Нас интересует, нет ли задвоенных записей для одного и того же сотрудника на пересекающиеся периоды. В ситуации, описанной в форуме, для "двоящегося" сотрудника записи в этом регистре были однотипны с "нормальным" сотрудником, что исключило этот регистр как причину проблемы.

Шаг 3: Исследование регистра сведений Данные для подбора сотрудников

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

Для проверки:

  1. Откроем регистр сведений Данные для подбора сотрудников.
  2. Установим отбор по ФИО или ссылке на Физическое лицо проблемного сотрудника.
  3. Внимательно проанализируем записи: есть ли среди них дубли по ключевым полям, такие как ФизическоеЛицо, Представление, ДатаАктуальности.

Как и в случае с СостояниеСотрудников, в описанной на форуме ситуации, этот регистр также не показал аномалий, что заставило искать причину глубже.

Ключевое решение: Регистр сведений ФИО физлиц

В ходе обсуждения на форуме было найдено решающее звено проблемы — регистр сведений ФИО физлиц. Именно в нем чаще всего кроется причина дублирования при подборе после миграции из ЗУП 2.5 в 3.1.

Почему ФИО физлиц является источником проблемы?

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

Шаги по исправлению записей в ФИО физлиц:

  1. Открытие регистра сведений:
    • Через меню "Все функции" (если оно включено: "Главное меню" -> "Сервис" -> "Параметры" -> "Отображать команду 'Все функции'").
    • В открывшемся окне "Все функции" найдите раздел "Регистры сведений".
    • В списке регистров найдите и откройте "ФИО физлиц".

    Для программистов: вы можете использовать консоль запросов или обработку для просмотра содержимого регистра.

  2. Фильтрация и анализ данных:
    • Установите отбор по Физическому лицу, у которого наблюдается проблема дублирования.
    • Внимательно просмотрите все записи для этого физического лица. Обратите особое внимание на поле "Период" или "Дата начала действия".
    • Ищите записи, которые кажутся лишними, дублирующимися или имеющими некорректные даты. Например, может быть несколько записей с одинаковым ФИО и датой, или запись с датой 01.01.1900, которая часто является признаком некорректно заполненных данных.
  3. Корректировка или удаление дублирующихся записей:
    • Самый безопасный способ: Откройте карточку проблемного физического лица ("Кадры" -> "Физические лица"). В ней может быть раздел "История ФИО". Проверьте и отредактируйте записи там. Если есть возможность, попробуйте изменить ФИО на временное, записать, а затем вернуть обратно актуальное ФИО и снова записать. Это может вызвать автоматическое обновление регистра ФИО физлиц.
    • Прямая корректировка регистра (для опытных пользователей/программистов):
      • Перед любыми изменениями обязательно сделайте резервную копию базы данных!
      • В регистре ФИО физлиц удалите лишние или некорректные записи. Оставьте только одну актуальную запись для каждого изменения ФИО с правильным периодом действия.
      • Убедитесь, что для каждого периода времени есть только одна запись, определяющая ФИО. Например, если у сотрудника ФИО менялось 01.01.2000 и 01.01.2010, должно быть две записи с этими датами. Если есть три записи для одного ФИО на одну дату, одну или две из них, скорее всего, нужно удалить.
  4. Перезапись справочников Физические лица и Сотрудники:

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

В случае, описанном в форуме, именно эта операция с регистром ФИО физлиц позволила успешно решить проблему дублирования.

Дальнейшее исследование: Отладка механизма подбора и другие регистры

Если решение с ФИО физлиц не принесло желаемого результата, или если вы хотите глубже понять механизм работы подбора, мы можем обратиться к отладке и анализу других регистров и процедур.

Анализ процедуры СотрудникиРасширенный.ОбработкаПолученияДанныхВыбора

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

  1. Запуск отладчика: Запустим 1С в режиме отладки.
  2. Установка точки останова: Откроем конфигуратор, найдем модуль расширения СотрудникиРасширенный или общий модуль, который содержит процедуру ОбработкаПолученияДанныхВыбора. Установим точку останова в начале этой процедуры.
  3. Воспроизведение проблемы: В пользовательском режиме начнем подбор сотрудника, набирая фамилию, чтобы сработал механизм, вызывающий данную процедуру.
  4. Пошаговая отладка:
    • Перейдем в отладчик.
    • Пошагово будем выполнять код процедуры, анализируя переменные и содержимое таблиц, из которых формируются ДанныеВыбора.
    • Особое внимание уделим запросам к регистру ДанныеДляПодбораСотрудников и логике добавления элементов в результирующий список.
    • Мы должны выяснить, почему процедура добавляет дубли в ДанныеВыбора – либо запрос изначально возвращает дубли из регистра, либо логика самой процедуры некорректно обрабатывает полученные данные.

Этот подход поможет нам точно определить источник дублирования на уровне программного кода.

Другие регистры и объекты, влияющие на подбор

Помимо уже упомянутых, рассмотрим другие объекты, которые могут косвенно влиять на проблему:

  1. Справочник Физические лица: Еще раз подчеркнем, что если здесь все же есть дубли (даже если они кажутся незаметными), это будет первопричиной. Используем встроенные обработки для поиска и удаления дублей: "Администрирование" -> "Поддержка и обслуживание" -> "Поиск и удаление дублей". Выберем справочник Физические лица и запустим поиск. Эта обработка позволяет объединить документы, относящиеся к задублированным записям, на одну карточку.
  2. Регистр сведений ОсновныеСотрудники: Этот регистр определяет, кто является основным сотрудником для физического лица. Некорректные записи здесь также могут вызывать сбои.
  3. Регистры текущих сведений: Например, кадровые данные и тарифные ставки. Хотя они напрямую не формируют список подбора, их некорректное состояние может влиять на общую логику системы.

Меры по предотвращению и общие рекомендации

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

  1. Тщательное тестирование: Никогда не пренебрегайте всесторонним тестированием системы после переноса. Проверяйте не только основные операции, но и все возможные сценарии, включая подбор сотрудников, формирование отчетов и расчеты. Поверхностное тестирование может привести к непредвиденным проблемам в продуктивной работе.
  2. Резервное копирование: Перед выполнением любых операций с данными, особенно при миграции или масштабных корректировках регистров, обязательно создавайте полную резервную копию информационной базы. Это ваша страховка на случай непредвиденных ситуаций.
  3. Понимание архитектуры ЗУП 3.1: Инвестируйте время в изучение особенностей ЗУП 3.1. Чем глубже вы понимаете логику работы новой конфигурации, тем проще будет выявлять и устранять проблемы, связанные с некорректным переносом данных.
  4. Использование типовых механизмов: Старайтесь максимально использовать типовые механизмы для поиска и удаления дублей. Они разработаны с учетом особенностей платформы и конфигурации.
  5. Обновление данных для подбора сотрудников: В случае возникновения проблем с подбором, даже если регистр Данные для подбора сотрудников кажется чистым, иногда помогает его принудительное переформирование. Для этого могут существовать специальные обработки, которые обновляют данные для подбора конкретного сотрудника или всего регистра.
  6. Проверка правил обмена: Если перенос данных выполняется неоднократно или с изменениями, тщательно проверяйте настройки правил обмена. Изменение любого реквизита между повторными переносами может стать причиной появления дублей.
  7. Перепроведение документов: В некоторых редких случаях, например, если дублирование ФИО появилось после увольнения и повторного приема сотрудника, может помочь перепроведение документа "Прием на работу" после исправления данных в карточке физического лица (например, снятие флажка "Дополнять представление" и удаление ФИО из соответствующего поля).

Решение проблемы с дублированием сотрудников в 1С ЗУП 3.1 после миграции, как мы видим, чаще всего лежит в области некорректно заполненных регистров сведений, в частности ФИО физлиц. Системный подход к диагностике, внимательная проверка данных и использование отладчика позволяют эффективно локализовать и устранить такие аномалии, возвращая системе корректное и удобное функционирование.

← На главную