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

Быстрый старт · 10 мин

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

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

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

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

Ниже разобраны все основные сценарии: от простого выделения строк до передачи списка значений в запрос. Отдельно описаны ограничения, типичные ошибки и способы проверить, что выбрано именно то, что нужно.

Выделение нескольких строк в списке с помощью Ctrl и Shift

Самый частый случай — список документов, справочника или журнал. Чтобы выбрать несколько отдельных строк, зажмите клавишу Ctrl и щёлкайте левой кнопкой мыши по нужным записям. Каждая выбранная строка подсвечивается. Повторный щелчок по уже выделенной строке снимает выделение.

Если нужные строки идут подряд, удобнее использовать Shift: щёлкните первую строку диапазона, затем, удерживая Shift, щёлкните последнюю — выделятся все строки между ними включительно. Комбинации можно совмещать: сначала выделить диапазон через Shift, затем через Ctrl добавить отдельные строки из другой части списка.

После выделения доступны групповые действия через контекстное меню (правый клик) или меню «Ещё»: провести, отменить проведение, пометить на удаление, изменить выделенное, вывести список. Набор действий зависит от типа объекта и прав пользователя.

Как выделить и обработать несколько строк
  1. 1
    Откройте нужный список (например, журнал документов или справочник).
  2. 2
    Удерживая Ctrl, щёлкните по отдельным строкам или через Shift выделите диапазон.
  3. 3
    Проверьте, что выделены именно нужные строки — прокрутите список в обе стороны.
  4. 4
    Нажмите правую кнопку мыши и выберите действие: провести, пометить на удаление, изменить.
  5. 5
    Дождитесь сообщения о результате обработки и проверьте состояние строк.

Множественный выбор в формах подбора и выбора

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

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

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

Выбор нескольких значений в отборах и отчётах

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

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

Быстрый отбор в шапке списка (поле над таблицей) обычно работает с одним значением. Чтобы задать несколько условий, используйте команду «Ещё — Настроить список» и добавьте условия с видом сравнения «В списке» там.

Способы отбора нескольких значений

Вид сравнения «В списке»

Подходит для точного перечисления конкретных элементов: несколько контрагентов, складов, договоров.

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

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

«В списке» + быстрый подбор

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

Множественный выбор в коде: массив, список значений и оператор В

При разработке и доработке несколько значений передают в запрос через параметр с типом «Массив» или «СписокЗначений». В тексте запроса условие записывается оператором «В»: ГДЕ Номенклатура В (&СписокНоменклатуры). Платформа автоматически раскрывает массив в набор значений.

Пример программной передачи списка в запрос:

МассивТоваров = Новый Массив;

МассивТоваров.Добавить(Товар1);

МассивТоваров.Добавить(Товар2);

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура

|ГДЕ Ссылка В (&Список)";

Запрос.УстановитьПараметр("Список", МассивТоваров);

Результат = Запрос.Выполнить();

Если значения нужно показать пользователю для интерактивного выбора, используют объект «СписокЗначений» и его метод ОтметитьЭлементы() — он открывает диалог с флажками и возвращает отмеченные элементы. Для программного выбора без диалога используют методы НайтиПоЗначению() и установку пометки у элементов списка.

bsl
Список = Новый СписокЗначений;
Список.Добавить("Январь");
Список.Добавить("Февраль");
Список.ОтметитьЭлементы("Выберите месяцы");

Групповое изменение выбранных элементов

После выделения нескольких строк в списке доступна обработка «Изменить выделенное» (в типовых конфигурациях — через меню «Ещё»). Она позволяет пакетно поменять реквизиты сразу у всех отмеченных объектов: установить ставку НДС, изменить ответственного, перенести элементы в другую группу.

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

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

Ограничения и типичные ошибки

Не все списки поддерживают множественное выделение: в некоторых динамических списках и формах выбора оно отключено настройкой «РежимВыделения» или «МножественныйВыбор». Если Ctrl+клик не выделяет строки — скорее всего, разработчик формы запретил множественный режим, и исправить это можно только доработкой.

Частая ошибка — выделение при активном отборе. Пользователь видит часть списка, нажимает «Выделить все» (Ctrl+A) и обрабатывает только видимые по отбору строки, полагая, что выбран весь список. Обратная ситуация опаснее: скрытый отбор заставляет думать, что строк мало, а групповая обработка затрагивает больше объектов, чем ожидалось.

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

Типичные ошибки
01
Выделение «всего списка» при активном отборе — обрабатывается не тот набор данных, который ожидался.
02
Передача пустого массива в оператор В — запрос возвращает пустой результат без сообщения об ошибке.
03
Попытка выбрать несколько значений в поле, рассчитанном на одно, — выбор просто не сохраняется.
04
Групповое изменение реквизитов без проверки числа объектов — ошибка распространяется на весь пакет.

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

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

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

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

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

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

Количество выделенных строк
Норма

Совпадает с числом объектов в сообщении обработки

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

Обработка сообщает о другом количестве или пропущенных объектах

Список значений в отборе отчёта
Норма

Все нужные значения присутствуют, лишних нет

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

Отбор содержит старые значения из предыдущей настройки

Результат запроса с оператором В
Норма

Число строк соответствует найденным значениям массива

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

Пустой результат при заполненном массиве — проверьте параметр

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

Почему Ctrl+клик не выделяет несколько строк в списке?

Скорее всего, в настройках формы списка отключён множественный выбор. Это свойство формы, которое задаёт разработчик. Проверьте также, не открыт ли список в режиме выбора одного элемента — в таком режиме множественное выделение часто заблокировано.

Как выбрать сразу все строки списка?

Используйте сочетание Ctrl+A в таблице списка. Учтите: выделяются строки с учётом установленного отбора, поэтому перед групповой операцией проверьте, какой именно набор данных попал в выделение.

Как в отчёте отобрать всё, кроме нескольких значений?

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

Можно ли передать в запрос список из тысячи значений?

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

Как программно показать пользователю диалог выбора нескольких значений?

Создайте объект СписокЗначений, заполните его и вызовите метод ОтметитьЭлементы() — откроется диалог с флажками. После закрытия диалога переберите элементы списка и отберите те, у которых установлена пометка.

Что делать, если при групповом изменении часть объектов не обработалась?

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

Итог

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

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