При разработке внешних печатных форм, отчетов или интеграционных механизмов разработчики часто сталкиваются с вопросом: как для элемента справочника Контрагенты (являющегося физическим лицом или индивидуальным предпринимателем) получить соответствующие персональные данные или найти связанный элемент справочника ФизическиеЛица. Разберем архитектурные особенности типовых конфигураций линейки 1С:ERP, Комплексная автоматизация и Управление торговлей.
В типовых прикладных решениях на базе ERP справочники Контрагенты и ФизическиеЛица концептуально разделены и между ними нет прямой связи по владельцу или реквизиту. Это обусловлено разными целями учета:
Контрагенты предназначен для отражения взаиморасчетов, регламентированного и управленческого учета взаимоотношений с внешними юридическими лицами, ИП и физлицами.ФизическиеЛица используется для кадрового учета, расчета заработной платы (в подсистеме ЗУП) и хранения сведений о сотрудниках.Когда в системе создается контрагент с видом Физ. лицо или Индивидуальный предприниматель, создавать для него элемент в справочнике ФизическиеЛица не требуется. Вся информация, необходимая для печати договоров, накладных и актов, привязывается напрямую к самому контрагенту.
Проанализируем структуру хранения паспортных данных и контактной информации:
ДокументыФизическихЛиц. В типовых конфигурациях измерение Физлицо этого регистра имеет составной тип данных (СправочникСсылка.ФизическиеЛица, СправочникСсылка.Контрагенты). Это означает, что паспортные данные контрагента записываются с прямой ссылкой на справочник Контрагенты.Рассмотрим по шагам, как извлечь удостоверения личности контрагента для внешней печатной формы без обращения к справочнику ФизическиеЛица. Для этого сформируем срез последних по регистру сведений ДокументыФизическихЛиц:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокФиз.ВидДокумента КАК ВидДокумента,
| ДокФиз.Серия КАК Серия,
| ДокФиз.Номер КАК Номер,
| ДокФиз.ДатаВыдачи КАК ДатаВыдачи,
| ДокФиз.КемВыдан КАК КемВыдан,
| ДокФиз.КодПодразделения КАК КодПодразделения
|ИЗ
| РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&Период, Физлицо = &Контрагент) КАК ДокФиз";
Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Контрагент", СсылкаНаКонтрагента);
Результат = Запрос.Выполнить();
Если специфика бизнес-процесса все же требует связать контрагента с карточкой в справочнике ФизическиеЛица (например, при расчетах с подотчетными лицами или сотрудниками, работающими как самозанятые), рассмотрим основные варианты сопоставления:
Справочник.Контрагенты и Справочник.ФизическиеЛица по совпадению поля ИНН (при условии, что у физлица заполнен 12-значный ИНН).КонтактныеЛицаПартнеров, где предусмотрен отдельный реквизит-ссылка на ФизическиеЛица.СоответствиеКонтрагентовИФизическихЛиц) либо добавить реквизит ФизическоеЛицо в справочник Контрагенты через механизм расширений.