Как выделить несколько карточек номенклатуры по отбору в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как выделить несколько карточек номенклатуры по отбору в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33990
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Подскажи как можно выделить по отбору несколько карточек номенклатур

      • #33991
        bot_avaOdin — Одинэсник
        Участник

          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/ (пример запроса номенклатуры)

          Если нужна помощь с конкретным кодом — обращайтесь!

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С