К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как в 1С сделать отбор по номенклатуре и контрагенту

Пошаговая инструкция: как в 1С сделать отбор по номенклатуре и контрагенту в списках, отчётах и через СКД. Примеры настроек, ошибки и FAQ.

Отбор по номенклатуре и контрагенту — одна из самых частых задач в 1С: менеджеру нужны продажи конкретного товара конкретному клиенту, бухгалтеру — документы по поставщику и определённой группе товаров. В типовых конфигурациях (Управление торговлей, Комплексная автоматизация, ERP, Бухгалтерия предприятия) это делается без программирования — штатными средствами отборов в списках и в отчётах.

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

Ниже разобраны практические способы: быстрый отбор в списке, настройка отчёта в варианте «для пользователя», работа с расширенными отборами СКД, а также вариант с обработкой «Групповое изменение реквизитов» и программный отбор для разработчиков.

Где именно нужен отбор: определяем задачу

Прежде чем настраивать, ответьте на вопрос: что должно остаться в результате — документы, строки документов или итоговые цифры. От этого зависит инструмент. Если нужны сами документы (например, все реализации контрагенту, где есть конкретный товар), работайте со списком документов или журналом. Если нужны суммы, количества и обороты — используйте отчёт.

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

Маршрут решения

Как выбрать инструмент

Нужны документы по контрагенту без привязки к товаруИспользуйте отбор в списке документов через «Ещё → Настроить список»
Нужны продажи или движения конкретного товара по конкретному контрагентуОткройте отчёт («Продажи», «Ведомость по товарам на складах», «Обороты по счёту») и добавьте два отбора
Нужно отобрать и изменить данные массовоИспользуйте обработку «Групповое изменение реквизитов» с отбором
Отбор нужен в собственной обработке или кодеПрименяйте программный отбор динамического списка или параметры СКД

Отбор в списке документов через «Настроить список»

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

Для отбора по нескольким контрагентам смените вид сравнения на «В списке» и подберите несколько значений. Чтобы исключить контрагента, используйте «Не равно». Отбор по группе контрагентов делается видом сравнения «В группе» — тогда попадут все контрагенты из выбранной папки справочника.

Условие «номенклатура есть в документе» в списке доступно не всегда. В некоторых конфигурациях (например, УТ 11) в настройке списка можно выбрать поле «Товары.Номенклатура» с видом сравнения «Содержит» или «Равно» — платформа построит запрос с проверкой табличной части. Если такого поля нет, переходите к отчёту.

Отбор в списке документов
  1. 1
    Откройте нужный журнал документов
  2. 2
    Нажмите «Ещё → Настроить список»
  3. 3
    Добавьте отбор: поле «Контрагент», вид «Равно», выберите контрагента
  4. 4
    При необходимости добавьте отбор по полю «Товары.Номенклатура»
  5. 5
    Нажмите «ОК» и проверьте, что в списке остались только нужные документы

Отбор по номенклатуре и контрагенту в отчёте

Отчёты — основной рабочий способ. В УТ 11 и КА 2 откройте «Продажи → Валовая прибыль предприятия» или «Анализ продаж по контрагентам», в Бухгалтерии 3.0 — «Анализ субконто» или «Обороты между субконто». Нажмите «Настройки» (или «Показать настройки»), перейдите на закладку «Отбор».

Нажмите «Добавить новый элемент» и выберите поле «Номенклатура». Установите вид сравнения «Равно» и выберите товар. Затем добавьте второй элемент — «Контрагент» (в УТ это может называться «Партнер» или «Клиент») со значением нужного контрагента. Оба условия объединяются по «И», то есть отчёт покажет только пересечение: данные, где одновременно указанный товар и указанный контрагент.

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

Виды сравнения и тонкие настройки отбора

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

Для номенклатуры полезен отбор по дополнительным реквизитам и свойствам: в настройках СКД поле может называться, например, «Номенклатура.[Свойство]». Так можно отобрать все товары с определённым брендом или цветом, не перечисляя их по одному. Для контрагентов аналогично работают отборы по региону или категории клиента, если они хранятся в реквизитах или дополнительных сведениях.

Учтите иерархию: если номенклатура лежит в папке «Товары/Напитки», отбор «В группе» по папке «Товары» захватит и напитки. Это удобно, но при точечном анализе может дать лишние строки — тогда используйте «Равно» или «В списке».

Вид сравненияКогда применятьТипичная ошибка
РавноОдин товар или один контрагентОжидание, что захватит иерархию
В спискеНесколько конкретных значенийЗабыли добавить одно значение
В группеПапка справочника целикомЛишние позиции из вложенных папок
Не равно / Не в спискеИсключение позицийСлучайное исключение нужных данных

Расширенные настройки СКД и отбор в детальных записях

Отчёты на СКД имеют два режима настроек: быстрые (пользовательские) и полные. Если нужного поля нет в быстрых настройках, нажмите «Ещё → Изменить вариант отчёта» или «Расширенная настройка» — откроется полный конструктор, где доступны все поля запроса, включая регистратора, характеристику номенклатуры и реквизиты контрагента.

Полезный приём — отбор по условию «ИЛИ»: в расширенных настройках добавьте «Группу ИЛИ» и поместите в неё элементы. Например, «Контрагент = ООО Ромашка ИЛИ Контрагент = ИП Иванов», и при этом «Номенклатура в группе Материалы». Обычные элементы вне группы продолжают работать по «И».

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

Типичные ошибки
01
Отбор по партнёру вместо контрагента — в отчёт попадают лишние юрлица или наоборот не попадает нужное
02
Вид сравнения «Равно» при необходимости отобрать группу товаров — отчёт пустой или неполный
03
Забытый период отчёта — данные есть, но за другой месяц
04
Отбор настроен в расширенном режиме, но не включён флажком — условие не применяется
05
Поиск отбора по номенклатуре в списке документов там, где платформа отбирает только по шапке

Программный отбор для разработчиков

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

bsl
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = КонтрагентОтбор;
ЭлементОтбора.Использование = Истина;

ЭлементОтбора2 = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора2.ПравоеЗначение = НоменклатураОтбор;
ЭлементОтбора2.Использование = Истина;

При программной установке отбора помните: пользовательский отбор, добавленный вручную через «Настроить список», хранится отдельно и может конфликтовать с программным. Также проверяйте, что поле, по которому ставите отбор, реально присутствует в запросе динамического списка — иначе получите ошибку «Поле не найдено».

Проверка результата и ограничения

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

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

Контрольные точки

Как проверить результат

Шапка отчёта
Норма

Видны оба отбора: номенклатура и контрагент

Тревожный признак

Отбор отображается, но выключен или отсутствует

Итоги отчёта
Норма

Суммы совпадают с детализацией до документов

Тревожный признак

Итог нулевой при заведомо существующих продажах

Список документов
Норма

В списке только документы нужного контрагента

Тревожный признак

Попадаются посторонние контрагенты — проверьте вид сравнения

Часто задаваемые вопросы

Почему в списке документов нет отбора по номенклатуре?

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

Как отобрать продажи нескольких товаров одному контрагенту?

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

Чем отличается отбор по партнёру от отбора по контрагенту в УТ 11?

Партнёр — это клиент или поставщик как хозяйствующий субъект, контрагент — конкретное юридическое лицо или ИП этого партнёра. Один партнёр может включать несколько контрагентов, поэтому отбор по партнёру даёт более широкую выборку.

Можно ли сохранить настроенный отбор, чтобы не настраивать заново?

Да. В отчётах на СКД используйте «Сохранить вариант» — вариант с отборами откроется в один клик. В списках документов настройка отбора обычно сохраняется автоматически для текущего пользователя.

Отчёт с отборами пустой, хотя продажи точно были. Что проверить?

Проверьте период отчёта, вид сравнения (для группы товаров нужен «В группе», а не «Равно»), включён ли флажок использования у элементов отбора, и не ограничены ли ваши права доступа к данным контрагента.

Как сделать отбор по условию «ИЛИ» между контрагентами?

В расширенных настройках отчёта добавьте «Группу ИЛИ» и поместите в неё элементы отбора по контрагентам. Либо проще: используйте вид сравнения «В списке» — он фактически реализует условие «ИЛИ» для перечисленных значений.

Итог

Что важно запомнить

Связка «номенклатура + контрагент» надёжнее всего настраивается в отчётах: добавьте два элемента отбора с нужным видом сравнения и сформируйте отчёт. В списках документов используйте «Ещё → Настроить список», помня об ограничении по табличным частям. Сохраняйте варианты отчётов и всегда сверяйте итоги с детализацией.