|
Отбор в иерархическом справочнике управляемое приложение | ☑ | ||
---|---|---|---|---|
0
gash85
29.08.12
✎
11:24
|
доброго времени суток. 1с 8.2 (8.2.15.301), управляемое приложение
есть иерархический справочник "Контрагенты". Необходимо реализовать отбор по Автору элемента справочника. В справочнике около 3000 записей. Пробую сделать так: &НаКлиенте Процедура ПриОткрытии(Отказ) Отбор = Новый Структура("Менеджер", Пользователь); ПараметрыФормы = Новый Структура("Отбор", Отбор); Форма = ПолучитьФорму("Справочник.Контрагенты.Форма.ФормаСписка1", ПараметрыФормы); Форма.Открыть(); КонецПроцедуры Однако в процессе отбора отладчик автоматически закрывается. Подскажите как иначе можно реализовать отбор или что я делаю неверно. |
|||
1
Wobland
29.08.12
✎
11:25
|
> процессе отбора отладчик автоматически закрывается.
как это? |
|||
2
gash85
29.08.12
✎
11:26
|
счетчик "текущие вызовы" доходит до 356 и на этом 1С закрывается
|
|||
3
Юрий Лазаренко
29.08.12
✎
11:30
|
(2) У тебя в итоге отбора получается пустой список, который постоянно обновляется, несколько раз в секунду. Смотри почему получается пустой список а еще лучше посмотри почему идет его обновление когда он пустой, может где-то стоит обработчик "ПриАктивизацииСтроки"?
Проверь - если в списке будет хоть одно значение, то такого зацикленного обновления не будет. |
|||
4
gash85
29.08.12
✎
11:34
|
"ПриАктивизацииСтроки" нигде не вызывается. Подскажите, как можно проверить почему пустой список и почему зацикленность получается?
|
|||
5
gash85
29.08.12
✎
12:13
|
после Форма.Открыть() "прыгает" в начало. почему - не понимаю...
|
|||
6
gash85
29.08.12
✎
13:19
|
с зацикливанием понятно, вопрос снят. не работает отбор. в чем тут может быть вопрос?
|
|||
7
gash85
29.08.12
✎
13:40
|
переформулирую вопрос - в какую процедуру это правильно вставить? в обычном приложении это было бы "ПередОткрытием", в управляемом приложении куда ставить отбор?
|
|||
8
vmv
29.08.12
✎
13:41
|
(6) проблекма в том, что ты хочешь сесть на два стула
1-ый: отобрать иерархические элементы по автору создания записи БД 2-ой: показать все красиво-деревнно а хренушки, - 1С еще не досконально оптимизировала "работу" с иерархией - если в отбор попали группы, то будут бзики системы или банально пустой список при отборах на иерархию нужно всегда помнить о родительских элементах и исключить их из отбора, если кто-либо из детишек пропушен к просмотру, ну или отображать таблицу на форме простым плоским списком. |
|||
9
vmv
29.08.12
✎
13:43
|
(7)
&НаКлиенте ПриОткрытии() УстановитьМоиГлючныеОтборы(Отказ); КонецПроцедуры |
|||
10
Reset
29.08.12
✎
13:43
|
Ребзя, я думаю он в при открии формы ее еще раз открывает
|
|||
11
vmv
29.08.12
✎
13:45
|
(10) мдя, это уже третий стул - жидкий, я из скромности умолчал)
|
|||
12
olegves
29.08.12
✎
14:02
|
(0) на палитре свойств элемента Список найди "Настройка списка", открой и добавь на закладке Отбор Автора
В процедуре ПриСозданииНаСервере установи правое значение отбору и будет тебе щастье |
|||
13
gash85
29.08.12
✎
17:33
|
Быть может кому-то поможет. Вопрос реализован следующим образом:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Менеджер"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.Использование = Истина; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = Пользователь; КонецПроцедуры Все как нужно выбирает. Даже с учетом того, что это иерархический справочник. В результате отбора получаем все каталоги, а в них видны только те элементы, которые принадлежат данному пользователю. Т.е. структуру сохранили, данные отфильтровали. Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |