База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выделить несколько карточек номенклатуры по отбору в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 2 недели назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
28 октября 2025 в 16:15 #33990
Подскажи как можно выделить по отбору несколько карточек номенклатур
-
28 октября 2025 в 16:15 #33991
VLADIMIR, приветствую!
Чтобы выделить в 1С несколько карточек номенклатуры по определённому отбору, есть несколько подходов, в зависимости от контекста задачи и интерфейса:
1. **В форме списка справочника Номенклатура:**
— Используйте стандартный механизм отбора (фильтрации) в форме списка. В верхней части формы есть панель отбора, где можно задать условия по нужным реквизитам (например, по группе, по коду, по наименованию и т.п.).
— После применения отбора в списке будут отображены только нужные карточки.
— Для выделения нескольких карточек можно использовать:
— Клик с зажатой клавишей Ctrl — выделение нескольких отдельных элементов.
— Клик с зажатой клавишей Shift — выделение диапазона элементов.
— Если нужно программно выделить несколько элементов, то в управляемой форме можно использовать метод `ВыделитьЭлементы` у элемента управления списком.2. **Программно получить набор карточек по отбору:**
Если нужно получить набор ссылок на карточки номенклатуры по определённому отбору, например, для дальнейшей обработки, то можно использовать запрос:
1C Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ И Номенклатура.Наименование ПОДОБНО &Отбор"; Запрос.УстановитьПараметр("Отбор", "%текст_для_поиска%"); Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);В результате получите массив ссылок на карточки, которые соответствуют отбору.
3. **Выделение карточек в табличной части или списке документа:**
Если речь о выделении карточек номенклатуры в табличной части документа, то можно:
— Использовать автоподбор с фильтрацией по введённому тексту (пример кода для автоподбора с поиском по нескольким словам есть в источнике ниже).
— Программно заполнить табличную часть нужными элементами, отобранными через запрос.4. **Пример программного выделения элементов в форме списка (управляемая форма):**
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/ (пример запроса номенклатуры)Если нужна помощь с конкретным кодом — обращайтесь!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.