Список значений 1С в качестве отбора на форме списка


У каждого документа есть список. Его можно отобразить как на форме списка этого документа, так и на любой обработке. Для этого на форму выносится таблица значений (в толстом клиенте), в качестве типа значения выбирается ДокументСписокИмядокумента.

Над списком документов размещаем командную панель (в свойствах ставим галочку «Автозаполнение» и источник – имя таблицы значений). В панели появится кнопка «Отбор». Для отбора доступны поля документа, у которых включена индексация и которые добавлены в таблицу документов.

С помощью отбора возможно ограничить список документов только теми, которые подпадают под установленные ограничения отбора. Установить ограничения можно в частности на «равно» (организация в документе равна организации в отборе, тип сравнения «равно») и на «список» (организация в документе равна одной из организаций в отборе, тип сравнения «в списке»).


Такой отбор возможно установить программно из кода 1С.

Код может быть расположен в любом обработчике, обычно его располагают в обработчике события формы ПередОткрытием() или ПриОткрытии().

В программном коде, для установки отбора с несколькими вариантами значений — используют список значений 1С в качестве отбора на форме списка.

Пример программного кода установки отбора на форме списка с помощью списка значений 1С:


//список значений 1С в качестве отбора на форме списка
//создадим список значений, который содержит "разрешенные" организации
//выберем запросом все организации из справочника
//таким образом запретим к отображению все документы, в которых организация не выбрана (пустая)
//PS. это сделано для примера, проще установить отбор "не равно" пустая организация (т.е. Справочники.Организации.ПустаяСсылка())
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Организации");
спОрганизаций = Новый СписокЗначений();
спОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));

//список значений 1С в качестве отбора на форме списка
//ищем отбор с указанным именем
//аккуратно - в данном случае у реквизита документа "Организация" в свойствах установлено "Индексировать"
//в других случаях отбора с таким именем может не быть, тогда нужно указывать "Если ОрганизацияОтбор <> Неопределено (т.е. отбор с таким именем найден)"
ОрганизацияОтбор = СписокДокументов.Отбор.Найти("Организация");
ОрганизацияОтбор.ВидСравнения = ВидСравнения.ВСписке; //устанавливаем "в списке"
ОрганизацияОтбор.Значение = спОрганизаций; //подставляем нужный список организаций
ОрганизацияОтбор.Использование = Истина; //включаем использование

//здесь мы запретим пользователю изменять наш отбор
ОрганизацияОтбор = ЭлементыФормы.СписокДокументов.НастройкаОтбора.Найти("Организация");
ОрганизацияОтбор.Доступность = Ложь;




Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (21 голосов, среднее: 4,19 из 5)
Загрузка...

Добавить комментарий