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