Как программно заполнить ИНН при создании партнера в 1С:ERP

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

При разработке в системе 1С:ERP Управление предприятием программисты часто сталкиваются с ситуацией, когда в справочнике Партнеры отсутствует реквизит ИНН. Это вызывает недоумение, так как в пользовательском интерфейсе (в карточке партнера) мы привыкли видеть и заполнять ИНН и КПП. Давайте разберем, как устроена архитектура системы и как правильно реализовать программное заполнение этих данных.

Разбираемся в архитектуре: Партнеры vs Контрагенты

Для начала проанализируем структуру хранения данных. В 1С:ERP реализовано четкое разделение между управленческим и регламентированным учетом:

  1. Справочник «Партнеры» — это объект управленческого учета. Он используется для ведения структуры холдингов, CRM-взаимодействий, классификации и маркетингового анализа. У него нет и не должно быть реквизита ИНН, так как один партнер может объединять несколько юридических лиц или быть просто «точкой продаж».
  2. Справочник «Контрагенты» — это объект регламентированного учета. Именно здесь хранятся все официальные данные юридического или физического лица: ИНН, КПП, ОГРН, банковские счета и коды статистики.

Даже если в настройках системы (НСИ и администрирование -> CRM и маркетинг) снята галочка «Независимо вести партнеров и контрагентов», технически это все равно два разных объекта в базе данных. В режиме «один-в-один» программа просто автоматически создает контрагента при создании партнера и объединяет их формы в интерфейсе для удобства пользователя. Для наглядного отображения реквизитов обоих справочников в интерфейсе можно использовать расширение для вывода дополнительных колонок в списках партнеров и контрагентов.

Почему ИНН не записывается напрямую в справочник Партнеры?

Выясним причину, по которой попытка записи через ОбъектПартнер.ИНН = "..." приведет к ошибке. Поскольку в метаданных справочника Партнеры этого поля нет, обратиться к нему напрямую невозможно. При программном создании элемента необходимо использовать двухшаговую модель: создать партнера, а затем создать связанного с ним контрагента, в который и будет записан ИНН.

Пошаговый алгоритм программного создания партнера с ИНН

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

Проанализируем пример кода для корректного создания связки:


// 1. Создаем объект Партнера (управленческая сущность)
НовыйПартнер = Справочники.Партнеры.СоздатьЭлемент();
НовыйПартнер.Наименование = "ООО ТехноПром";
НовыйПартнер.Клиент = Истина; // Указываем роль партнера
НовыйПартнер.Записать();

// 2. Создаем объект Контрагента (юридическая сущность)
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Партнер = НовыйПартнер.Ссылка; // Устанавливаем связь!
НовыйКонтрагент.Наименование = "ООО ТехноПром";
НовыйКонтрагент.НаименованиеПолное = "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ТЕХНОПРОМ";
НовыйКонтрагент.ИНН = "7701010101";
НовыйКонтрагент.КПП = "770101001";
НовыйКонтрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮридическоеЛицо;

// Важно заполнить страну регистрации для корректной проверки ИНН
НовыйКонтрагент.СтранаРегистрации = Справочники.СтраныМира.Россия;

НовыйКонтрагент.Записать();

Особенности использования типовых функций

При программной записи напрямую в справочники мы обходим стандартные проверки интерфейса (например, «Помощник регистрации нового партнера»). Чтобы обеспечить целостность данных и избежать дублей, рекомендуется использовать функции типовых общих модулей. Посмотрим на пример вызова функций, которые помогают автоматизировать процесс:

В последних релизах (начиная с 2.5) для работы с контрагентами можно использовать функционал модуля КонтрагентыСлужебный или КонтрагентыНастройкаСправочников. Это позволяет задействовать сервис 1С:Контрагент для автоматического заполнения реквизитов по ИНН.

Важные нюансы при заполнении ИНН

Проанализируем ситуации, которые могут возникнуть при программном заполнении:

Итоги

Подводя итог, отметим: для программного заполнения ИНН в 1С:ERP всегда нужно работать со справочником Контрагенты. Даже если бизнес-логика предполагает работу только с «Партнерами», технически ИНН — это атрибут юридического лица. Правильная последовательность действий: создание партнера -> получение ссылки -> создание контрагента с привязкой к этой ссылке и записью ИНН.

← На главную