|
Запрос с параметром в динамическом списке | ☑ | ||
---|---|---|---|---|
0
badboychik
18.08.11
✎
07:38
|
Хочу чтоб при открытии формы в дереве выводилась не вся номенклатура, а только из определенной группы. Делаю динамический список, там запрос с параметром.
Делаю &НаКлиенте Процедура ПриОткрытии(Отказ) Номенклатура.Параметры.УстановитьЗначениеПараметра("Корень", ПолучитьПродукцию()); КонецПроцедуры и нифига. ВСе равно вся номенклатура показывается!! |
|||
1
Alex_MA
18.08.11
✎
07:56
|
запрос покажи
|
|||
2
badboychik
18.08.11
✎
08:01
|
Да запрос примитивный
ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.Наименование ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ГДЕ СправочникНоменклатура.Ссылка В ИЕРАРХИИ (&Корень) |
|||
3
Alex_MA
18.08.11
✎
08:03
|
такое ощущение, что у тебя одна папка номенклатуры, а ПолучитьПродукцию() как раз ее и возвращает ?
|
|||
4
badboychik
18.08.11
✎
08:08
|
ПолучитьПродукцию() возвращает с сервера корневой элемент (группу), из которой надо выводить в список подчиненные элементы
|
|||
5
SeraFim
18.08.11
✎
08:20
|
Проверь в отладчике, точно ли ПолучитьПродукцию() возвращает группу?
Такое поведение возможно, если параметр будет пустой ссылкой или неопределено |
|||
6
y88
18.08.11
✎
08:22
|
Можно создавать фильтр списка программно (см. ПриСозданииНаСервере)
Если фильтр всегда по одному параметру, то можно в кнфигураторе настроить фильтр и управлять им через Процедура ФильтрПОПриИзменении Пример: // =========== ФИЛЬТРЫ ========== &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭлементОтбораДанных = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПO"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанных.ПравоеЗначение = ФильтрПО; Если СокрЛП(ФильтрПО) = "" Тогда ЭлементОтбораДанных.Использование = Ложь; Иначе ЭлементОтбораДанных.Использование = Истина; КонецЕсли; Элементы.Список.Обновить(); КонецПроцедуры &НаКлиенте Процедура ФильтрПОПриИзменении(Элемент) Для каждого ЭлементОтбораДанных из Список.Отбор.Элементы Цикл Если ТипЗнч(ЭлементОтбораДанных) = Тип("ЭлементОтбораКомпоновкиДанных") И (Строка(ЭлементОтбораДанных.ЛевоеЗначение) = "ПO") Тогда Если СокрЛП(ФильтрПО) = "" Тогда ЭлементОтбораДанных.ПравоеЗначение = ФильтрПО; ЭлементОтбораДанных.Использование = Ложь; Иначе ЭлементОтбораДанных.ПравоеЗначение = ФильтрПО; ЭлементОтбораДанных.Использование = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ПриСозданииНаСервере(Ложь,Ложь); КонецПроцедуры |
|||
7
badboychik
18.08.11
✎
08:23
|
Возвращает нормально, присваивается параметр нормально. А на форме никак не заметно, видно всю номенклатуру. Где то в настройках наверно надо что то поставить. Смотрю конфу УНФ, там все как я и сделал, по части запроса и функции УстановитьЗначениеПараметра(...)
|
|||
8
badboychik
18.08.11
✎
08:50
|
Короче, установка отборов не работает в режиме дерева и иерархического списка. Если просто список сделать, то работает!! Вот засада-то, в простом списке неудобно!
|
|||
9
nimoid
18.08.11
✎
08:55
|
свое дерево строй...
|
|||
10
badboychik
18.08.11
✎
09:01
|
Хм.. идея... Получить данные запросом и влить в свою таблицу значений?
|
|||
11
nimoid
18.08.11
✎
09:03
|
(10) в дерево значений
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |