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