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