В конфигурациях на платформе 1С:Предприятие (таких как «1С:Управление торговлей 11», «1С:ERP» и «1С:Комплексная автоматизация») разделены понятия управленческого учета (справочник Справочник.Партнеры) и регламентированного/юридического учета (справочник Справочник.Контрагенты). Это разделение активируется функциональной опцией «Независимо вести партнеров и контрагентов».
На практике нередко возникают ситуации, когда менеджеры регистрируют лиды, контакты или холдинговые структуры в справочнике партнеров, но не заводят юридические лица. При попытке оформить первичные документы или провести взаиморасчеты система требует обязательного указания контрагента. Разберем, почему возникает такая ситуация, как устроена связь между справочниками и какими способами можно быстро получить список партнеров без привязанных контрагентов.
Проанализируем структуру данных конфигурации:
Партнер хранится внутри справочника Контрагенты, а не наоборот. Один партнер может иметь несколько юридических лиц (контрагентов).Партнеры прямая ссылка на контрагента отсутствует. По этой причине настроить стандартный пользовательский отбор по отсутствию контрагента через пункт «Еще → Настроить список» в стандартном списке справочника невозможно.Рассмотрим основной способ решения задачи через консоль запросов или отчет на СКД. Чтобы найти партнеров, для которых в базе нет ни одной записи контрагента, применим левое внешнее соединение справочника партнеров с выборкой контрагентов и отберем записи, где соединение не нашло соответствия (проверка на NULL).
Посмотрим на пример запроса с использованием временной таблицы:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Контрагенты.Партнер КАК Партнер
ПОМЕСТИТЬ ВТ_ПартнерыСКонтрагентами
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
НЕ Контрагенты.ПометкаУдаления
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Партнеры.Ссылка КАК Партнер,
Партнеры.Наименование КАК Наименование,
Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
ИЗ
Справочник.Партнеры КАК Партнеры
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПартнерыСКонтрагентами КАК ВТ
ПО Партнеры.Ссылка = ВТ.Партнер
ГДЕ
ВТ.Партнер ЕСТЬ NULL
И НЕ Партнеры.ЭтоГруппа
И НЕ Партнеры.ПометкаУдаления
Разберем по шагам логику работы этого запроса:
Контрагенты и помещаем их во временную таблицу ВТ_ПартнерыСКонтрагентами.Партнеры с временной таблицей по условию равенства ссылок через ЛЕВОЕ СОЕДИНЕНИЕ.ГДЕ фильтруем результат условием ВТ.Партнер ЕСТЬ NULL — в выборку попадут только те партнеры, для которых не нашлось ни одного контрагента. Дополнительно отсекаем папки (НЕ Партнеры.ЭтоГруппа) и помеченные на удаление элементы.Если требуется получить список в режиме «1С:Предприятие» без постоянного запуска консоли запросов, воспользуемся штатным механизмом сегментации клиентов:
Выяснив список партнеров, у которых отсутствуют юридические лица, перейдем к их заполнению:
СправочникОбъект.Контрагенты, заполняет реквизит Партнер и переносит контактную информацию.