Создадим перечисление "КатегорияКачества" с тремя реквизитами: Качественный, С незначительными дефектами, Бракованный.
Далее, вам необходимо создать справочник, где вы сможете указывать наименования различных категорий для дальнейшего удобного отбора.
Теперь перейдем к форме списка вашего реквизита и добавим нужный вам параметр – "Отбор категории" типа ПеречислениеСсылка.КатегорияКачества, и создадим команду "ПоказатьВсе".
Теперь перейдем к созданному вами реквизиту "Отбор категории" в форме и выберем событие "При изменении". В этом событии добавим следующий код:
&НаКлиенте
Процедура ОтборКатегорииПриИзменении(Элемент)
Список.Отбор.Элементы.Очистить();
ЭлементОтбора = Список. Отбор. Элементы. Добавить (Тип ("ЭлементОтбораКомпоновкиДанных") ) ;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КатегорияКачества");
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. Равно;
ЭлементОтбора.ПравоеЗначение = ОтборКатегории;
КонецПроцедуры
Добавим пару комментариев для ясности.
В данной строке, в конце, вам необходимо указать ваш реквизит, по которому будете проводить отбор. Например, у меня в форме элемента записано "Вагонка, 14х90х1000 мм", и я выбираю категорию качества "С незначительными дефектами". После этого закрываю форму, и мой элемент остается неизменным:
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КатегорияКачества");
В данной строке, в конце, вам следует указать только что созданный реквизит для отбора.
ЭлементОтбора.ПравоеЗначение = ОтборКатегории;
Проверяем, все работает:
Чтобы полностью отобразить список, вы совместно со мной добавили команду "ПоказатьВсе".
Вот код для ее реализации:
&НаКлиенте
Процедура ПоказатьВсе(Команда)
Список.Отбор.Элементы.Очистить();
ОтборКатегории="";
КонецПроцедуры