Как программно создать контрагента, партнера и физическое лицо в 1С:УТ 11, КА 2 и ERP

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

При переходе с классических конфигураций (например, УТ 10.3) на современные решения на базе ERP 2.0 (УТ 11, Комплексная автоматизация 2) разработчики часто сталкиваются с тем, что привычный справочник Контрагенты больше не является самостоятельным в плане пользовательского интерфейса. Система требует создания целой цепочки связанных объектов: Партнера, Контрагента и, в ряде случаев, Физического лица. В этой статье мы подробно разберем, как правильно реализовать программное создание этих сущностей, чтобы избежать ошибок отображения в интерфейсе.

Понимание архитектурной модели: Партнер vs Контрагент

Первое, что нам необходимо усвоить: в современных конфигурациях 1С разделены управленческий и регламентированный учеты. Разберем, за что отвечает каждый справочник:

  1. Партнеры — это управленческая сущность. В этом справочнике хранится информация о том, кем является объект для нашей компании (клиент, поставщик, конкурент). Здесь настраиваются правила продаж, скидки и иерархия холдингов.
  2. Контрагенты — это юридическая сущность. Здесь хранятся ИНН, КПП, расчетные счета и официальные наименования для печати документов.
  3. Физические лица — справочник для хранения персональных данных (паспорт, СНИЛС), который связывается с контрагентом, если тот является частным лицом или ИП.

Проанализируем ситуацию, когда нам нужно создать нового клиента. Если мы создадим только элемент в справочнике Контрагенты, мы не увидим его в большинстве рабочих мест системы, так как фильтры в формах списков обычно настроены на работу с партнерами.

Шаг 1: Программное создание Партнера

Создание всегда следует начинать с партнера, так как контрагент в своей структуре имеет обязательную ссылку на него. Рассмотрим пример кода для создания управленческой сущности:


НовыйПартнер = Справочники.Партнеры.СоздатьЭлемент();
НовыйПартнер.Наименование = "Иванов Иван Иванович (упр)";
НовыйПартнер.НаименованиеПолное = "Иванов Иван Иванович";
НовыйПартнер.Клиент = Истина; // Указываем, что это клиент
НовыйПартнер.Поставщик = Ложь;
НовыйПартнер.ЮрФизЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо;
// Если в системе ведется учет по бизнес-регионам или группам доступа:
// НовыйПартнер.ГруппаДоступа = Справочники.ГруппыДоступаПартнеров.НайтиПоНаименованию("Клиенты");
НовыйПартнер.Записать();
СсылкаНаПартнера = НовыйПартнер.Ссылка;

Важный нюанс: Обратите внимание на флаги Клиент и Поставщик. Если их не проставить, партнер будет создан, но не отобразится в соответствующих списках выбора из-за установленных по умолчанию отборов.

Шаг 2: Создание Физического лица (для ИП и частных лиц)

Если наш контрагент — это физическое лицо или индивидуальный предприниматель, нам необходимо создать запись в справочнике ФизическиеЛица. Это важно для корректного заполнения печатных форм и хранения паспортных данных. Выясним, как это сделать программно:


НовоеФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
НовоеФизЛицо.Наименование = "Иванов Иван Иванович";
НовоеФизЛицо.ДатаРождения = Дата("19800101");
НовоеФизЛицо.Записать();
СсылкаНаФизЛицо = НовоеФизЛицо.Ссылка;

Шаг 3: Программное создание Контрагента

Теперь, когда у нас есть ссылка на партнера и (если нужно) на физическое лицо, мы можем приступить к созданию юридической сущности. Именно здесь заполняется реквизит ЮрФизЛицо, на отсутствие которого часто жалуются разработчики. Если этот реквизит пуст, форма контрагента будет отображаться некорректно.


НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Партнер = СсылкаНаПартнера; // Связь с управленческой сущностью
НовыйКонтрагент.Наименование = "ИП Иванов Иван Иванович";
НовыйКонтрагент.НаименованиеПолное = "Индивидуальный предприниматель Иванов Иван Иванович";
НовыйКонтрагент.ИНН = "123456789012";
НовыйКонтрагент.ЮрФизЛицо = Перечисления.ЮридическоеФизическоеЛицо.ИндивидуальныйПредприниматель;

Если ЗначениеЗаполнено(СсылкаНаФизЛицо) Тогда
    НовыйКонтрагент.ФизЛицо = СсылкаНаФизЛицо;
КонецЕсли;

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

Проблема пустого поля "Вид" в форме

Разберем ситуацию, когда реквизит "Вид контрагента" кажется пустым в интерфейсе. В типовых конфигурациях 1С:УТ 11/ERP поле "Вид" часто является вычисляемым или связанным с перечислением ЮридическоеФизическоеЛицо. Если вы видите пустое поле, значит:

Проанализируем настройку "Независимо вести партнеров и контрагентов" (меню НСИ и администрирование — Настройка НСИ и разделов — CRM и маркетинг). Если она выключена, система старается поддерживать связь "один к одному". Если включена — один партнер (например, холдинг "Мега") может объединять несколько контрагентов (ООО "Мега-Ритейл", ООО "Мега-Опт").

Использование стандартных механизмов и API

Для минимизации ошибок рекомендуется не просто использовать СоздатьЭлемент(), а обращаться к процедурам модулей менеджеров. Например, в конфигурациях существует модуль КонтрагентыУТ (или аналогичные общие модули), где содержатся проверки на дубли по ИНН/КПП. Рассмотрим пример использования типовой проверки:


ПараметрыПроверки = КонтрагентыУТ.ПараметрыПроверкиДублей();
ПараметрыПроверки.ИНН = "1234567890";
ПараметрыПроверки.КПП = "123451001";
Дубли = КонтрагентыУТ.НайденныеДубли(ПараметрыПроверки);
Если Дубли.Количество() > 0 Тогда
    Сообщить("Такой контрагент уже существует!");
КонецЕсли;

Рекомендации по заполнению данных

Для того чтобы созданный программно объект был "полноценным", не забывайте про следующие моменты:

  1. Группы доступа: Если в базе настроен RLS (Record Level Security), обязательно заполняйте реквизиты, влияющие на видимость объекта для пользователей.
  2. Контактная информация: Телефон и адрес записываются не в обычные реквизиты, а в табличную часть или специальный регистр сведений (в зависимости от версии БСП). Посмотрите на использование метода УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию().
  3. Рабочее наименование: Всегда заполняйте и краткое, и полное наименование. Краткое используется для поиска в программе, полное — для формирования документов.

Подводя итог, можно сказать, что "монструозность" УТ 11 оправдана ее гибкостью. Разделение на партнеров и контрагентов позволяет вести сложную структуру отношений с клиентами, где одно физическое лицо может выступать представителем разных компаний, или один холдинг может иметь десятки юридических лиц. Программная работа с этими объектами требует дисциплины в заполнении связей, но после понимания этой логики процесс становится прозрачным.

← На главную