|
Почему не работает отбор в ФормаВыбора? | ☑ | ||
|---|---|---|---|---|
|
0
xintrea
22.01.14
✎
13:23
|
Имеем 1С 8.2., управляемые формы, тонкий клиент, самописная конфигурация.
Есть справочник ОбъектыСтроительства. Сделал для этого справочника форму выбора (просто стандартную). Она нужна для того, чтобы в списке выбора показать только те записи, которые доступны пользователю. Отбор доступных записей пытаюсь сделать через метод ПриСозданииНаСервере(): &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список.Отбор.Элементы.Очистить(); Запрос = Новый Запрос("ВЫБРАТЬ Ссылка |ИЗ Справочник.ОбъектыСтроительства"); ВыборкаОбъектовСтроительства = Запрос.Выполнить().Выбрать(); // Перебор объектов строительства Пока ВыборкаОбъектовСтроительства.Следующий() Цикл ТекущийОбъектСтроительства=ВыборкаОбъектовСтроительства.Ссылка; Сообщить("Объект строительства: "+ТекущийОбъектСтроительства.Наименование); Если РаботаСПараметрамиНаСервере.ПолучитьДоступКОбъектамСтроительства(ТекущийОбъектСтроительства, "ПросмотрДокументов")=Истина Тогда Сообщить("Просмотр разрешен"); ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Код"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = ТекущийОбъектСтроительства.Код; Иначе Сообщить("Просмотр запрещен"); КонецЕсли; КонецЦикла; КонецПроцедуры То есть, у формы ФормаВыбора есть автоматически сформированный реквизит Список (Тип - динамический список, основная таблица - Справочник.ОбъектыСтроительства). У него в дереве видно свойство Отбор. Я и пытаюсь настроить этот отбор. В результате вижу, что элементы отбора для некоторых объектов добавляются, для других- нет. Но форма выбора по прежнему показывает весь список. Почему? Что еще нужно сделать чтобы наложить отбор на список записей в справочнике при выборе? |
|||
|
1
Kondarat
22.01.14
✎
13:33
|
(0) Все коды доступных объектов запихать в массив, после выборки создать ЭлементОтбора
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.ПравоеЗначение = Массив; Не? |
| Форум | Правила | Описание | Секции | Поиск |