Почему после переноса контрагентов из БП в УТ 11 элемент открывается в режиме создания?

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

При переносе нормативно-справочной информации из конфигурации 1С:Бухгалтерия предприятия (БП) в 1С:Управление торговлей (УТ 11) с помощью инструмента Конвертация данных 2.1 разработчики часто сталкиваются с неожиданным поведением системы. Перенос завершается успешно, в базе-приемнике создаются записи справочника Контрагенты, запрос к таблице подтверждает наличие ссылок, наименований и ИНН, однако при попытке интерактивно открыть элемент из формы списка открывается пустая форма в режиме создания нового объекта с незаполненными полями Рабочее наименование и Сокращенное юр. наименование.

Проанализируем архитектурные особенности конфигурации УТ 11, выясним причину такого поведения платформы и разберем по шагам варианты решения проблемы.

Архитектурная причина подмены формы в УТ 11

В конфигурациях на базе ERP-платформы (включая УТ 11 и КА 2) учет контрагентов принципиально отличается от 1С:Бухгалтерии. В системе предусмотрено разделение на две сущности:

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

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

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

Если правила конвертации были настроены напрямую «Контрагенты в Контрагенты» без создания партнеров, реквизит Партнер в объекте остается пустым (содержит пустую ссылку СправочникСсылка.Партнеры.ПустаяСсылка()). Процедура ОбработкаПолученияФормы передает пустую ссылку в параметры открытия формы партнера, из-за чего управляемая форма закономерно инициализируется в режиме создания нового элемента.

Настройка правил конвертации в «Конвертации данных 2»

Чтобы исключить данную ошибку на этапе миграции данных, необходимо доработать правила конвертации (ПКО). Разберем по шагам, как выгрузить из одного источника БП сразу две связанные сущности в УТ 11:

  1. Создадим два правила конвертации объектов (ПКО) из одного источника:
    1. ПКО Партнеры (Источник: СправочникСсылка.Контрагенты, Приемник: СправочникСсылка.Партнеры).
    2. ПКО Контрагенты (Источник: СправочникСсылка.Контрагенты, Приемник: СправочникСсылка.Контрагенты).
  2. В ПКО Контрагенты настроим правило конвертации свойства (ПКС) для реквизита Партнер. В поле Правило конвертации укажем созданное ранее ПКО Партнеры.
  3. В обработчике события ПередВыгрузкой свойства Партнер переопределим источник выгрузки: Значение = Источник; Это позволит правилам передать текущую ссылку контрагента из БП в ПКО партнеров для создания управленческой карточки.
  4. Заполним обязательные реквизиты справочника Партнеры. В УТ 11 партнер без установленных признаков не сможет участвовать в оперативных документах. В ПКО Партнеры создадим ПКС с отключенным источником и зададим значения по умолчанию:
    
    // В обработчиках ПередВыгрузкой соответствующих ПКС
    Значение = Истина; // Для реквизитов Клиент и Поставщик
    
    Также необходимо сопоставить реквизит ЮрФизЛицо, чтобы правильно определялся статус субъекта (юридическое лицо, предприниматель или физическое лицо).

Исправление уже загруженных данных внешней обработкой

Если справочники уже перенесены в рабочую или тестовую базу УТ 11 и повторная выгрузка нежелательна, сформируем связанных партнеров программно. Разберем пример кода обработки, которая находит несогласованные данные и создает недостающие объекты:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Контрагенты.Ссылка КАК Контрагент,
    |	Контрагенты.Наименование КАК Наименование,
    |	Контрагенты.НаименованиеПолное КАК НаименованиеПолное,
    |	Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо
    |ИЗ
    |	Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |	(Контрагенты.Партнер ЕСТЬ NULL 
    |		ИЛИ Контрагенты.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка))";

Выборка = Запрос.Выполнить().Выбрать();

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

После выполнения данного скрипта процедура ОбработкаПолученияФормы сможет получить заполненную ссылку партнера, и карточка откроется в обычном режиме просмотра и редактирования со всеми реквизитами.

Временное решение: раздельное ведение учета

Если требуется срочно просмотреть данные контрагентов без программного создания партнеров, воспользуемся изменением настроек системы:

  1. Перейдем в раздел НСИ и администрирование.
  2. Откроем пункт Настройка НСИ и разделов → CRM и маркетинг → Настройки CRM.
  3. Установим флаг Независимо вести партнеров и контрагентов.

При включении этого режима алгоритм ОбработкаПолученияФормы перестает подменять форму контрагента на форму партнера. В списках появится возможность раздельно открывать оба справочника. Однако следует учитывать, что для оформления документов товародвижения и взаиморасчетов в УТ 11 партнер все равно является обязательным разрезом учета.

Важные нюансы структуры данных

При переносе информации обратим внимание на два структурных отличия между БП и УТ 11:

  1. Контактная информация: В УТ 11 фактические адреса, рабочие телефоны и адреса электронной почты для взаимодействия менеджеров хранятся в справочнике Партнеры. В справочнике Контрагенты содержатся только юридический адрес и официальные реквизиты. Если переносить контакты исключительно в Контрагенты, в журналах продаж и рабочих столах менеджеров контактная информация отображаться не будет.
  2. Иерархия групп: В типовой конфигурации УТ 11 справочник Контрагенты линейный (не имеет иерархии групп). Вся холдинговая иерархия реализуется в справочнике Партнеры через реквизит Головное предприятие. Переносить группы из БП следует именно в иерархию партнеров.
← На главную