Вход | Регистрация

1С:Предприятие ::

Метки:справочники

Фильтр в справочнике

Я
   Bob
25.05.04 - 11:54
Есть справочник. Его отфильтровать по двум и более реквизитам. Есть метод - УстановитьОтбор() - но в данном случае она не подойдет - работает только для одного реквизита. Что делать?
В том смысле, есть ли какие то извраты? Показать надо не в отчете, а в самом справочнике.
 
  Рекламное место пустует
   lexa
 
1 - 25.05.04 - 11:58
ИспользоватьСписокЭлементов
Реализует фильтрацию элементов справочника используя нединамический фильтр.

Синтаксис:

ИспользоватьСписокЭлементов (<СписокЗначений>)

Англоязычный синоним:

UseItemList

Параметры:

<СписокЗначений>
Необязательный параметр. Значение типа «СписокЗначений». Должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.


Описание:

Метод ИспользоватьСписокЭлементов реализует фильтрацию элементов справочника. Устанавливает нединамический фильтр.

Рекомендуется применять в предопределенных процедурах ПриСменеРодителя, ПриОткрытии, ПриСменеИерархии. При этом формируется список «разрешенных» элементов, который передается форме списка справочника при помощи данного метода. Данный список должен являться подмножеством тех элементов, которые обычно отображаются в форме списка без применения фильтра.

После вызова метода ИспользоватьСписокЭлементов форма списка справочника не позволяет вводить новый элемент, копировать и т. п.

Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.

Пример:

Процедура УстановитьФильтр(ВыбПризнак)

   Список.СоздатьОбъект("СписокЗначений");

   Буфер = СоздатьОбъект("Справочник.Главн");

  // отбираем только те элементы, которые могут отображаться в текущем списке


   Буфер.ИспользоватьРодителя(ИспользоватьРодителя());

   Буфер.ВключатьПодчиненные(0);

   Буфер.ВыбратьЭлементы();

   Пока Буфер.ПолучитьЭлемент() = 1 Цикл

     // отбираем только те элементы, которые удовлетворяют заданному признаку


      Если (Буфер.Признак = ВыбПризнак) Тогда

         Список.ДобавитьЗначение(Буфер.ТекущийЭлемент());

      КонецЕсли;

   КонецЦикла;

   ИспользоватьСписокЭлементов(Список);

КонецПроцедуры


Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует