Как в 1С:Управление торговлей 11 найти партнеров, у которых нет контрагентов?

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

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

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

Особенности связи между справочниками «Партнеры» и «Контрагенты»

Проанализируем структуру данных конфигурации:

  1. Реквизит связи Партнер хранится внутри справочника Контрагенты, а не наоборот. Один партнер может иметь несколько юридических лиц (контрагентов).
  2. В справочнике Партнеры прямая ссылка на контрагента отсутствует. По этой причине настроить стандартный пользовательский отбор по отсутствию контрагента через пункт «Еще → Настроить список» в стандартном списке справочника невозможно.
  3. При выборке данных важно исключать группы (папки) справочника, а также предопределенных или служебных партнеров (например, «Наше предприятие»), для которых контрагенты не требуются.

Способ 1. Получение списка с помощью языка запросов 1С

Рассмотрим основной способ решения задачи через консоль запросов или отчет на СКД. Чтобы найти партнеров, для которых в базе нет ни одной записи контрагента, применим левое внешнее соединение справочника партнеров с выборкой контрагентов и отберем записи, где соединение не нашло соответствия (проверка на NULL).

Посмотрим на пример запроса с использованием временной таблицы:


ВЫБРАТЬ РАЗЛИЧНЫЕ
    Контрагенты.Партнер КАК Партнер
ПОМЕСТИТЬ ВТ_ПартнерыСКонтрагентами
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.ПометкаУдаления
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Партнеры.Ссылка КАК Партнер,
    Партнеры.Наименование КАК Наименование,
    Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
ИЗ
    Справочник.Партнеры КАК Партнеры
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПартнерыСКонтрагентами КАК ВТ
        ПО Партнеры.Ссылка = ВТ.Партнер
ГДЕ
    ВТ.Партнер ЕСТЬ NULL
    И НЕ Партнеры.ЭтоГруппа
    И НЕ Партнеры.ПометкаУдаления

Разберем по шагам логику работы этого запроса:

  1. В первом пакете мы выбираем все уникальные ссылки партнеров из справочника Контрагенты и помещаем их во временную таблицу ВТ_ПартнерыСКонтрагентами.
  2. Во втором пакете связываем справочник Партнеры с временной таблицей по условию равенства ссылок через ЛЕВОЕ СОЕДИНЕНИЕ.
  3. В секции ГДЕ фильтруем результат условием ВТ.Партнер ЕСТЬ NULL — в выборку попадут только те партнеры, для которых не нашлось ни одного контрагента. Дополнительно отсекаем папки (НЕ Партнеры.ЭтоГруппа) и помеченные на удаление элементы.

Способ 2. Использование механизма динамических сегментов

Если требуется получить список в режиме «1С:Предприятие» без постоянного запуска консоли запросов, воспользуемся штатным механизмом сегментации клиентов:

  1. Перейдем в раздел CRM и маркетинг → Сегменты клиентов.
  2. Создадим новый сегмент с наименованием «Партнеры без контрагентов».
  3. Установим способ формирования «Формировать динамически» или «Периодически обновлять».
  4. В схеме компоновки данных сегмента настроим запрос или условие на отсутствие связанных контрагентов.
  5. После сохранения и формирования сегмента в основном списке справочника «Клиенты/Партнеры» появится возможность включить быстрый фильтр по данному сегменту.

Создание недостающих контрагентов

Выяснив список партнеров, у которых отсутствуют юридические лица, перейдем к их заполнению:

  1. Вручную: Откроем карточку нужного партнера, перейдем в панель навигации по ссылке «Контрагенты» и нажмем «Создать». Система автоматически заполнит наименование, телефон и адресные данные из карточки партнера.
  2. Программно: Если партнеров много, можно использовать обработку, которая перебирает результат выполнения запроса, создает новый объект СправочникОбъект.Контрагенты, заполняет реквизит Партнер и переносит контактную информацию.
← На главную