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