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