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

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

Как в 1С выбрать несколько позиций в отборе

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

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

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

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

Где в 1С вообще бывает отбор по нескольким позициям

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

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

Отбор по нескольким позициям в форме списка

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

Ключевой момент: в колонке «Вид сравнения» по умолчанию стоит «Равно». Щёлкните по этой ячейке и выберите «В списке». После этого ячейка значения превратится в кнопку с многоточием — нажмите её, откроется редактор списка. Кнопкой «Добавить» (или Insert) добавляйте позиции одну за другой, каждый раз выбирая элемент из справочника.

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

Порядок действий в форме списка
  1. 1
    Откройте список и нажмите «Ещё» → «Настроить список»
  2. 2
    На закладке «Отбор» добавьте нужное поле
  3. 3
    В колонке «Вид сравнения» выберите «В списке»
  4. 4
    Откройте редактор значения и добавьте нужные позиции кнопкой «Добавить»
  5. 5
    Подтвердите настройки и проверьте, что список отфильтровался

Быстрый выбор нескольких строк через Ctrl и Shift

Когда открыта форма выбора или подбора (например, подбор номенклатуры в документ), несколько позиций можно отметить без всяких настроек. Зажмите Ctrl и кликайте по нужным строкам — каждая подсветится. Для выбора непрерывного диапазона кликните первую строку, затем с зажатым Shift — последнюю: выделятся все строки между ними.

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

Учтите ограничение: выделение через Ctrl/Shift работает в формах множественного выбора. Если форма открыта в режиме выбора одного элемента (например, выбор ответственного в шапке документа), множественное выделение недоступно — это определяется настройками поля ввода, а не действиями пользователя.

Отбор по нескольким значениям в отчётах

В отчётах на СКД (практически все типовые отчёты в «1С:Бухгалтерии», «1С:Управление торговлей», ERP) откройте «Настройки» и перейдите на закладку «Отбор». Добавьте поле, если его нет, и точно так же смените вид сравнения с «Равно» на «В списке». Значение заполняется списком через кнопку выбора.

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

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

Виды сравнения для нескольких позиций

В списке

Указываете конкретные элементы по одному. Подходит для 2–20 позиций из разных групп справочника.

В группе из списка

Указываете несколько папок, отбирается всё их содержимое с учётом вложенности. Удобно для номенклатуры и контрагентов, разложенных по группам.

В иерархии

Одна группа со всеми подгруппами. Проще, но только для одной ветки справочника.

Не в списке

Обратный отбор: показывает всё, кроме перечисленного. Удобен, когда исключений меньше, чем включений.

Несколько позиций в запросе и динамическом списке

Если вы настраиваете динамический список или пишете запрос, несколько значений передаются через параметр с оператором В. Параметром может быть массив, список значений или таблица значений — запрос корректно обработает любой из этих типов.

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Контрагент В (&СписокКонтрагентов)";

СписокКонтрагентов = Новый СписокЗначений;
СписокКонтрагентов.Добавить(Контрагент1);
СписокКонтрагентов.Добавить(Контрагент2);
Запрос.УстановитьПараметр("СписокКонтрагентов", СписокКонтрагентов);

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

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

Проверка результата и типичные ошибки

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

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

Самая коварная ошибка — вторая в списке: пользователь добавляет две строки отбора «Контрагент Равно А» и «Контрагент Равно Б» и получает пустой список. Строки отбора в 1С объединяются логическим «И», а одно поле не может одновременно равняться двум разным значениям. Правильный путь — одна строка с видом сравнения «В списке».

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

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

Признак отбора в форме списка
Норма

Отображается метка установленного отбора, число строк уменьшилось ожидаемо

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

Признака отбора нет — настройка не применилась или была сброшена

Состав значений
Норма

В результате встречаются все перечисленные позиции

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

Части позиций нет — проверьте вид сравнения и дубли в списке

Пустой результат
Норма

Пусто только если по выбранным позициям действительно нет данных

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

Пусто при заведомо существующих данных — скорее всего, несколько условий «Равно» объединились по «И»

Ограничения и когда нужен разработчик

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

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

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

Итог

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

Множественный выбор в отборе 1С всегда строится на виде сравнения «В списке» и списке значений: в форме списка — через «Ещё» → «Настроить список», в отчётах — через настройки на закладке «Отбор», в формах подбора — через Ctrl и Shift, в запросах — через оператор В с параметром-массивом. Пустой результат почти всегда означает, что несколько условий «Равно» по одному полю объединились по «И» — замените их одним условием «В списке».

Частые вопросы

Почему отбор по двум контрагентам показывает пустой список?

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

Можно ли вставить список позиций из Excel или буфера обмена?

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

Чем «В списке» отличается от «В группе из списка»?

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

Сохранится ли отбор по нескольким позициям после закрытия программы?

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

Можно ли отобрать «всех, кроме» нескольких позиций?

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

Работает ли выбор нескольких позиций в мобильном клиенте 1С?

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