База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выделить несколько карточек номенклатуры по отбору в 1С? › RE: Как выделить несколько карточек номенклатуры по отбору в 1С?
 Odin — Одинэсник
Odin — ОдинэсникVLADIMIR, приветствую!
Чтобы выделить в 1С несколько карточек номенклатуры по определённому отбору, есть несколько подходов, в зависимости от контекста задачи и интерфейса:
1. **В форме списка справочника Номенклатура:**
   — Используйте стандартный механизм отбора (фильтрации) в форме списка. В верхней части формы есть панель отбора, где можно задать условия по нужным реквизитам (например, по группе, по коду, по наименованию и т.п.).
   — После применения отбора в списке будут отображены только нужные карточки.
   — Для выделения нескольких карточек можно использовать:
     — Клик с зажатой клавишей Ctrl — выделение нескольких отдельных элементов.
     — Клик с зажатой клавишей Shift — выделение диапазона элементов.
   — Если нужно программно выделить несколько элементов, то в управляемой форме можно использовать метод ВыделитьЭлементы у элемента управления списком.
2. **Программно получить набор карточек по отбору:**
Если нужно получить набор ссылок на карточки номенклатуры по определённому отбору, например, для дальнейшей обработки, то можно использовать запрос:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | 1C    Запрос = Новый Запрос;    Запрос.Текст =     "ВЫБРАТЬ        Номенклатура.Ссылка    ИЗ        Справочник.Номенклатура КАК Номенклатура    ГДЕ        Номенклатура.ЭтоГруппа = ЛОЖЬ        И Номенклатура.Наименование ПОДОБНО &Отбор";    Запрос.УстановитьПараметр("Отбор", "%текст_для_поиска%");    Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0); | 
В результате получите массив ссылок на карточки, которые соответствуют отбору.
3. **Выделение карточек в табличной части или списке документа:**
Если речь о выделении карточек номенклатуры в табличной части документа, то можно:
   — Использовать автоподбор с фильтрацией по введённому тексту (пример кода для автоподбора с поиском по нескольким словам есть в источнике ниже).
   — Программно заполнить табличную часть нужными элементами, отобранными через запрос.
4. **Пример программного выделения элементов в форме списка (управляемая форма):**
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 1C    Процедура ВыделитьНоменклатуруПоОтбору(Отбор)        ЭлементыДляВыделения = Новый Массив;        Запрос = Новый Запрос;        Запрос.Текст =         "ВЫБРАТЬ            Номенклатура.Ссылка        ИЗ            Справочник.Номенклатура КАК Номенклатура        ГДЕ            Номенклатура.ЭтоГруппа = ЛОЖЬ            И Номенклатура.Наименование ПОДОБНО &Отбор";        Запрос.УстановитьПараметр("Отбор", "%" + Отбор + "%");        Выборка = Запрос.Выполнить().Выбрать();        Пока Выборка.Следующий() Цикл            ЭлементыДляВыделения.Добавить(Выборка.Ссылка);        КонецЦикла;        ЭлементУправленияСписком.ВыделитьЭлементы(ЭлементыДляВыделения);    КонецПроцедуры | 
   Здесь ЭлементУправленияСписком — это элемент формы списка, в котором отображается номенклатура.
—
Если нужно, могу помочь с конкретным примером под вашу задачу — уточните, где именно и как хотите выделять карточки (в форме, в табличной части, программно и т.п.).
Рекомендую посмотреть здесь:
— https://infostart.ru/public/22818/ (по работе с отбором и выделением в формах)
— https://infostart.ru/1c/articles/2184035/ (по поиску и выбору номенклатуры через запросы)
— https://kuharbogdan.com/programmiruem-v-1s/kak-zaprosom-vybrat-vsju-nomenklaturu-v-1s/ (пример запроса номенклатуры)
Если нужна помощь с конкретным кодом — обращайтесь!
