У каждого документа есть список. Его можно отобразить как на форме списка этого документа, так и на любой обработке. Для этого на форму выносится таблица значений (в толстом клиенте), в качестве типа значения выбирается ДокументСписокИмядокумента.
Над списком документов размещаем командную панель (в свойствах ставим галочку «Автозаполнение» и источник – имя таблицы значений). В панели появится кнопка «Отбор». Для отбора доступны поля документа, у которых включена индексация и которые добавлены в таблицу документов.
С помощью отбора возможно ограничить список документов только теми, которые подпадают под установленные ограничения отбора. Установить ограничения можно в частности на «равно» (организация в документе равна организации в отборе, тип сравнения «равно») и на «список» (организация в документе равна одной из организаций в отборе, тип сравнения «в списке»).
Такой отбор возможно установить программно из кода 1С.
Код может быть расположен в любом обработчике, обычно его располагают в обработчике события формы ПередОткрытием() или ПриОткрытии().
В программном коде, для установки отбора с несколькими вариантами значений — используют список значений 1С в качестве отбора на форме списка.
Пример программного кода установки отбора на форме списка с помощью списка значений 1С:
//список значений 1С в качестве отбора на форме списка
//создадим список значений, который содержит "разрешенные" организации
//выберем запросом все организации из справочника
//таким образом запретим к отображению все документы, в которых организация не выбрана (пустая)
//PS. это сделано для примера, проще установить отбор "не равно" пустая организация (т.е. Справочники.Организации.ПустаяСсылка())
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Организации");
спОрганизаций = Новый СписокЗначений();
спОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
//список значений 1С в качестве отбора на форме списка
//ищем отбор с указанным именем
//аккуратно - в данном случае у реквизита документа "Организация" в свойствах установлено "Индексировать"
//в других случаях отбора с таким именем может не быть, тогда нужно указывать "Если ОрганизацияОтбор <> Неопределено (т.е. отбор с таким именем найден)"
ОрганизацияОтбор = СписокДокументов.Отбор.Найти("Организация");
ОрганизацияОтбор.ВидСравнения = ВидСравнения.ВСписке; //устанавливаем "в списке"
ОрганизацияОтбор.Значение = спОрганизаций; //подставляем нужный список организаций
ОрганизацияОтбор.Использование = Истина; //включаем использование
//здесь мы запретим пользователю изменять наш отбор
ОрганизацияОтбор = ЭлементыФормы.СписокДокументов.НастройкаОтбора.Найти("Организация");
ОрганизацияОтбор.Доступность = Ложь;
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.