Как обеспечить автоматический перенос контактной информации из партнера в контрагента в 1С

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

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

Разберем архитектурную логику раздельного учета

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

Использование Помощника регистрации нового партнера

Выясним причину, по которой у одних пользователей данные переносятся, а у других — нет. Секрет кроется в способе создания объектов. В типовом решении предусмотрен специальный инструмент — Помощник регистрации нового партнера. Рассмотрим, как он работает:

  1. При использовании помощника менеджер вводит данные на нескольких шагах.
  2. На одном из этапов система предлагает установить флаг «Создать также и контрагента».
  3. В коде самого помощника прописаны жесткие связи: введенные значения телефона и адреса программно подставляются в реквизиты создаваемого контрагента.

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

Проблема сопоставления видов контактной информации

Рассмотрим подробнее технический аспект хранения данных. В 1С контактная информация хранится не в самих справочниках, а в табличных частях или в специальном регистре сведений КонтактнаяИнформация. Для каждого типа объекта (Партнеры, Контрагенты, Пользователи) определены свои виды контактной информации.

Проанализируем настройки по пути: НСИ и администрирование — Общие настройки — Виды контактной информации. Часто бывает так, что для Партнеров создан вид «Адрес (прочее)», а для Контрагентов ожидается «Юридический адрес». Если структура этих видов различается (например, один — текстовая строка, а другой — по классификатору ФИАС), автоматическое копирование без потери данных невозможно.

Автоматизация через расширение (для программистов)

Если бизнес-процесс компании не позволяет использовать «Помощник регистрации», и менеджеры предпочитают работать напрямую с карточками, мы можем реализовать собственную логику переноса данных. Наилучшим вариантом будет создание расширения, которое перехватывает событие записи партнера.

Посмотрим на пример кода, который можно реализовать в модуле расширения для автоматической синхронизации данных. Мы будем использовать подписку на событие ПриЗаписи для справочника Партнеры.


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

КонецПроцедуры

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

Влияние функциональных опций

Проанализируем ситуацию с настройками системы. В разделе НСИ и администрирование — Настройка НСИ и разделов — Семья и партнеры существует опция «Независимые партнеры и контрагенты». Если ваша компания небольшая и у одного партнера всегда только один контрагент, отключение этой опции может упростить интерфейс, объединив сущности. Однако, если учет уже ведется раздельно (как в УТ 11.4), система считает их разными субъектами, и настройки по умолчанию будут требовать раздельного заполнения КИ для соблюдения юридической чистоты данных.

Особенности для Индивидуальных Предпринимателей (ИП)

Рассмотрим частный случай. Для типа контрагента «Индивидуальный предприниматель» логика часто усложняется. В 1С данные ИП могут быть связаны не только с партнером, но и с физическим лицом из справочника ФизическиеЛица. Часто адрес ИП должен соответствовать адресу прописки физлица. При разработке механизмов копирования важно учитывать эту цепочку зависимостей, чтобы данные в печатных формах счетов-фактур и УПД отображались корректно.

Групповая синхронизация данных

Если в вашей базе уже накопилось много контрагентов с пустыми адресами, хотя у их партнеров данные заполнены, воспользуемся стандартной обработкой «Групповое изменение реквизитов». Пошагово это выглядит так:

  1. Выбираем объект Контрагенты.
  2. Настраиваем фильтр по ссылке (выбираем нужных контрагентов).
  3. Переходим в режим «Дополнительные параметры» и разрешаем изменение спецреквизитов.
  4. Используем возможность выполнения произвольного алгоритма на языке 1С для переноса значений из поля Партнер.КонтактнаяИнформация в текущий объект.

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

← На главную