Ситуация, когда в базе 1С:Зарплата и управление персоналом 3.1 возникают дубли физических лиц, является одной из самых сложных для исправления, особенно если по обоим карточкам уже проходили начисления и выплаты. Типичный сценарий: кадровик ошибочно создает две карточки физлица для одного человека (например, при приеме на основное место и по совместительству), и теперь данные «разъехались» по разным объектам. Рассмотрим подробнее, как корректно объединить эти данные и избежать технических ошибок в регистрах.
При попытке стандартного объединения дублей пользователи часто сталкиваются с ошибкой вида: «Запись не верна! Значение поля не соответствует установленному отбору: РолиФизическихЛиц...». Проанализируем ситуацию: этот регистр сведений имеет уникальный ключ записи, состоящий из комбинации полей ФизическоеЛицо, Организация и Роль. Когда система пытается заменить «плохое» физлицо на «хорошее» во всех ссылках, в этом регистре образуются две идентичные записи для одного и того же человека. 1С не может автоматически «схлопнуть» эти записи, что и приводит к затыку в транзакции.
Прежде чем прибегать к радикальным методам (удаление записей или внешние обработки), разберем штатный механизм, который специально предназначен для этой задачи в ЗУП 3.1. Выясним, как им воспользоваться:
Этот инструмент работает гораздо «умнее» стандартного поиска дублей, так как он учитывает специфическую логику связей между сотрудниками и физическими лицами в зарплатной конфигурации. Он самостоятельно пытается разрешить конфликты в регистрах сведений.
Если штатный сервис не справляется из-за конфликтов в записях, воспользуемся проверенным техническим алгоритмом. Разберем его по шагам:
Шаг 1: Работа со СНИЛС и ИНН. В 1С:ЗУП реализован жесткий контроль уникальности СНИЛС. Если в обеих карточках физлиц указан один и тот же номер, это может блокировать запись изменений. Рекомендуем в «ошибочной» карточке временно изменить или полностью удалить СНИЛС и ИНН перед началом процедур замены.
Шаг 2: Ручная очистка проблемных регистров. Как мы выяснили ранее, регистр РолиФизическихЛиц часто становится камнем преткновения. Чтобы решить эту проблему, проанализируем записи этого регистра через Функции для технического специалиста (или «Все функции»):
РолиФизическихЛиц.Шаг 3: Замена ссылок. Теперь воспользуемся обработкой Администрирование — Обслуживание — Поиск и удаление дублей. Укажите область поиска — справочник Физические лица. Выберите правильный элемент (оригинал) и пометьте дубль. Теперь замена должна пройти без ошибок в транзакции.
Иногда требуется не просто объединить физлиц, а перепривязать конкретного Сотрудника к другому Физическому лицу. Напрямую в карточке сотрудника это поле заблокировано. Рассмотрим, как это сделать через групповую обработку:
Справочник.Сотрудники.Физическое лицо и в колонке «Новое значение» выберем правильную карточку ФЛ.После этой операции сотрудник-совместитель будет ссылаться на ту же карточку физлица, что и основной сотрудник. Однако помните, что ссылки в уже проведенных документах (начисления, выплаты) могут по-прежнему указывать на старое физлицо. Поэтому после этого метода все равно рекомендуется запустить Поиск и удаление дублей для окончательной очистки базы.
Если типовые средства подводят (например, база сильно кастомизирована или повреждена ссылочная целостность), можно прибегнуть к классике — обработке ПоискИЗаменаДублирующихсяЭлементов.epf из состава старых типовых конфигураций (УПП или УТ 10.3). Для этого необходимо:
Проанализируем ситуацию после того, как визуально дубли исчезли. Самая большая опасность кроется в регистрах накопления, таких как РасчетыНалогоплательщиковСБюджетомПоНДФЛ или СтраховыеВзносыСведенияОДоходах. Даже если вы заменили ссылки, данные в этих регистрах иногда могут хранить «фантомные» связи со старым GUID физического лица.
Что нужно сделать обязательно:
Начисление зарплаты и взносов.Подведем итог: наиболее безопасным способом является использование штатного Объединения личных карточек. Если же он выдает ошибку, следует вручную очистить записи в РегистрСведений.РолиФизическихЛиц по дублирующему объекту и повторить попытку. Помните о бэкапе перед любыми массовыми изменениями ссылок!