Отчеты и Аналитика · 11 мин
Как в 1С выбрать несколько позиций в отборе
Как выбрать несколько позиций в отборе 1С: список значений, условие «в списке», подбор с Ctrl, отбор в отчётах и динамических списках. Пошаговые инструкции и ошибки.
Отбор по нескольким значениям — одна из самых частых задач при работе со списками документов, справочниками и отчётами в 1С. Пользователю нужно, например, показать только документы по трём контрагентам из сотни или вывести остатки по пяти номенклатурным группам. Однако стандартное поле отбора по умолчанию принимает одно значение, и многие не знают, как переключить его в режим списка.
Способ выбора нескольких позиций зависит от того, где выполняется отбор: в форме списка через настройки отбора, в отчёте на СКД, через быстрый отбор в шапке таблицы или программно в запросе. Во всех случаях используется один и тот же механизм — вид сравнения «В списке» и объект «Список значений», но путь к нему различается.
Ниже разобраны все основные сценарии: от простого выбора через Ctrl в форме подбора до настройки условия «В списке» в отчётах и передачи массива в запрос. Отдельно описаны типичные ошибки, из-за которых отбор «не срабатывает» или, наоборот, скрывает нужные данные.
Где в 1С вообще бывает отбор по нескольким позициям
Механизм множественного выбора встречается в четырёх типовых местах. Первое — формы списков документов и справочников, где отбор настраивается через кнопку «Ещё» → «Настроить список» (в управляемых формах) или через панель отбора. Второе — отчёты, построенные на системе компоновки данных (СКД): там отборы живут на закладке «Отбор» в настройках варианта отчёта.
Третье место — формы выбора и подбора: когда вы подбираете номенклатуру в документ, можно отметить сразу несколько строк и перенести их одним действием. Четвёртое — программный уровень: запросы с оператором В и динамические списки с параметрами. Понимание, в каком из этих случаев вы находитесь, определяет конкретные шаги.
Отбор по нескольким позициям в форме списка
В управляемых формах (интерфейс «Такси») откройте нужный список — например, «Реализации товаров и услуг». Нажмите «Ещё» → «Настроить список». В окне настройки на закладке «Отбор» добавьте поле, по которому фильтруете, — «Контрагент», «Организация», «Склад».
Ключевой момент: в колонке «Вид сравнения» по умолчанию стоит «Равно». Щёлкните по этой ячейке и выберите «В списке». После этого ячейка значения превратится в кнопку с многоточием — нажмите её, откроется редактор списка. Кнопкой «Добавить» (или Insert) добавляйте позиции одну за другой, каждый раз выбирая элемент из справочника.
Нажмите «ОК» в редакторе списка, затем «Завершить редактирование» в настройках. Список перестроится и покажет только строки, где поле совпадает с любым из выбранных значений. Логика внутри списка — «ИЛИ»: подойдёт документ по любому из указанных контрагентов.
- 1Откройте список и нажмите «Ещё» → «Настроить список»
- 2На закладке «Отбор» добавьте нужное поле
- 3В колонке «Вид сравнения» выберите «В списке»
- 4Откройте редактор значения и добавьте нужные позиции кнопкой «Добавить»
- 5Подтвердите настройки и проверьте, что список отфильтровался
Быстрый выбор нескольких строк через Ctrl и Shift
Когда открыта форма выбора или подбора (например, подбор номенклатуры в документ), несколько позиций можно отметить без всяких настроек. Зажмите Ctrl и кликайте по нужным строкам — каждая подсветится. Для выбора непрерывного диапазона кликните первую строку, затем с зажатым Shift — последнюю: выделятся все строки между ними.
После выделения нажмите кнопку «Выбрать» или Enter — в зависимости от конфигурации все отмеченные позиции перенесутся в документ или в список отбора одним действием. В подборе номенклатуры дополнительно работает кнопка «Перенести в документ», которая забирает всё содержимое корзины подбора.
Учтите ограничение: выделение через Ctrl/Shift работает в формах множественного выбора. Если форма открыта в режиме выбора одного элемента (например, выбор ответственного в шапке документа), множественное выделение недоступно — это определяется настройками поля ввода, а не действиями пользователя.
Отбор по нескольким значениям в отчётах
В отчётах на СКД (практически все типовые отчёты в «1С:Бухгалтерии», «1С:Управление торговлей», ERP) откройте «Настройки» и перейдите на закладку «Отбор». Добавьте поле, если его нет, и точно так же смените вид сравнения с «Равно» на «В списке». Значение заполняется списком через кнопку выбора.
Полезное дополнение — виды сравнения «В группе из списка» и «В иерархии». Первый позволяет указать несколько папок справочника и отберёт всё их содержимое, второй работает с одной группой, но включая вложенные. Для номенклатуры это удобнее, чем вручную перечислять десятки позиций: укажите две-три группы, и отчёт покажет все товары из них.
Чтобы список значений не приходилось заполнять заново при каждом запуске, сохраните настройки как вариант отчёта («Сохранить вариант отчёта» или «Сохранить настройки» — зависит от конфигурации). При следующем открытии выберите сохранённый вариант, и отбор по нескольким позициям применится автоматически.
Виды сравнения для нескольких позиций
Указываете конкретные элементы по одному. Подходит для 2–20 позиций из разных групп справочника.
Указываете несколько папок, отбирается всё их содержимое с учётом вложенности. Удобно для номенклатуры и контрагентов, разложенных по группам.
Одна группа со всеми подгруппами. Проще, но только для одной ветки справочника.
Обратный отбор: показывает всё, кроме перечисленного. Удобен, когда исключений меньше, чем включений.
Несколько позиций в запросе и динамическом списке
Если вы настраиваете динамический список или пишете запрос, несколько значений передаются через параметр с оператором В. Параметром может быть массив, список значений или таблица значений — запрос корректно обработает любой из этих типов.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Контрагент В (&СписокКонтрагентов)";
СписокКонтрагентов = Новый СписокЗначений;
СписокКонтрагентов.Добавить(Контрагент1);
СписокКонтрагентов.Добавить(Контрагент2);
Запрос.УстановитьПараметр("СписокКонтрагентов", СписокКонтрагентов);Для динамического списка в форме параметр с массивом устанавливается через свойства элемента отбора компоновки: вид сравнения «В списке», правое значение — список значений. В типовых конфигурациях это делается через программный интерфейс отбора без прямого редактирования текста запроса.
Практическая граница: при очень больших списках (тысячи элементов) оператор В работает медленнее, чем соединение с временной таблицей. Если отбор строится по большому массиву, загрузите его во временную таблицу и свяжите соединением — это заметно ускорит выполнение.
Проверка результата и типичные ошибки
После применения отбора убедитесь, что он отработал так, как задумано. В форме списка рядом с заголовком или в строке состояния отображается признак установленного отбора; в отчёте состав отборов виден в шапке настроек. Сверьте количество строк и выборочно проверьте, что в результате присутствуют все указанные позиции.
Самая коварная ошибка — вторая в списке: пользователь добавляет две строки отбора «Контрагент Равно А» и «Контрагент Равно Б» и получает пустой список. Строки отбора в 1С объединяются логическим «И», а одно поле не может одновременно равняться двум разным значениям. Правильный путь — одна строка с видом сравнения «В списке».
Как проверить результат
Отображается метка установленного отбора, число строк уменьшилось ожидаемо
Признака отбора нет — настройка не применилась или была сброшена
В результате встречаются все перечисленные позиции
Части позиций нет — проверьте вид сравнения и дубли в списке
Пусто только если по выбранным позициям действительно нет данных
Пусто при заведомо существующих данных — скорее всего, несколько условий «Равно» объединились по «И»
Ограничения и когда нужен разработчик
Стандартными средствами пользователь может настроить отбор «В списке» везде, где доступна настройка списка или отчёта. Однако есть границы: быстрые отборы в шапке некоторых списков (поля над таблицей) принимают только одно значение, и это зашито в форме. Изменить поведение может только разработчик, заменив поле на настройку отбора.
Также без доработки не обойтись, если нужен отбор по списку, загружаемому из файла (например, тысяча артикулов из Excel). В некоторых типовых конфигурациях есть обработки загрузки и вставки списка из буфера обмена, но там, где их нет, массовое заполнение списка значений выполняется программно.
Ещё одна граница — права. Если кнопка «Настроить список» недоступна или отбор не сохраняется между сеансами, вероятно, у пользователя ограничены права на сохранение настроек. Это решается администратором через роли и настройки прав, а не действиями в самой форме.
Что важно запомнить
Множественный выбор в отборе 1С всегда строится на виде сравнения «В списке» и списке значений: в форме списка — через «Ещё» → «Настроить список», в отчётах — через настройки на закладке «Отбор», в формах подбора — через Ctrl и Shift, в запросах — через оператор В с параметром-массивом. Пустой результат почти всегда означает, что несколько условий «Равно» по одному полю объединились по «И» — замените их одним условием «В списке».
Частые вопросы
Почему отбор по двум контрагентам показывает пустой список?
Почти наверняка добавлены две отдельные строки отбора с условием «Равно». Они объединяются логическим «И», а контрагент в документе не может быть двумя разными одновременно. Удалите обе строки и создайте одну с видом сравнения «В списке», куда добавьте обоих контрагентов.
Можно ли вставить список позиций из Excel или буфера обмена?
В ряде типовых конфигураций редактор списка значений поддерживает вставку из буфера обмена или подбор из файла, но не во всех. Если такой кнопки нет, позиции добавляются вручную по одной, а для массовой загрузки потребуется обработка или помощь разработчика.
Чем «В списке» отличается от «В группе из списка»?
«В списке» сравнивает с конкретными элементами, которые вы перечислили. «В группе из списка» принимает папки справочника и отбирает все элементы внутри них, включая вложенные подгруппы. Второй вариант удобнее, когда позиции логично собраны в папки и регулярно пополняются.
Сохранится ли отбор по нескольким позициям после закрытия программы?
В формах списков отбор обычно сохраняется в пользовательских настройках автоматически, но это зависит от конфигурации и прав. В отчётах надёжнее явно сохранить настройки как вариант отчёта — тогда список значений гарантированно восстановится при следующем запуске.
Можно ли отобрать «всех, кроме» нескольких позиций?
Да, для этого служит вид сравнения «Не в списке»: укажите исключаемые элементы, и в результат попадёт всё остальное. Это особенно удобно, когда исключений мало, а включать пришлось бы сотни позиций.
Работает ли выбор нескольких позиций в мобильном клиенте 1С?
Базовый механизм «В списке» в мобильном клиенте доступен, но удобство редактирования списка значений зависит от конкретной формы и версии платформы. Сложные настройки отбора удобнее выполнять в тонком или веб-клиенте на компьютере.