Имя: Пароль:
1C
1С v8
Отбор строк в управляемой форме списка документа
0 svchernova
 
20.11.11
19:21
Всем добрый вечер!
Хочу сделать отбор строк в УФ списка документа, хочу отобрать документы по полю "Автор"
Что-то вроде этого:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Элементы.Список.ОтборСтрок = Новый ФиксированнаяСтруктура("Автор", ПараметрыСеанса.ТекущийПользователь);

КонецПроцедуры

Как это сделать?
1 svchernova
 
21.11.11
09:16
Все померли, что ли..
2 svchernova
 
21.11.11
10:39
Попробовала сделать отбор в динамическом списке
http://s017.radikal.ru/i401/1111/b9/7a1612076fef.jpg

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
       Список.Параметры.УстановитьЗначениеПараметра("Автор", ПараметрыСеанса.ТекущийПользователь);
КонецПроцедуры

Ругается:
{Документ.Страхование.Форма.ФормаСпискаУпр.Форма(34)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
       Список.Параметры.УстановитьЗначениеПараметра("Автор", ПараметрыСеанса.ТекущийПользователь);
по причине:
Параметр с указанным именем не найден
3 Ns33
 
21.11.11
10:46
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
   Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Автор").Поле;    
   Отбор.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
   //Отбор.РежимОтображения=  РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
4 svchernova
 
21.11.11
10:49
(3) Сейчас попробую, спасибо!
5 svchernova
 
21.11.11
10:52
(3) Спасибо, получилось :)))))))
6 svchernova
 
21.11.11
10:53
(3) Тольк не пойму, почему мой вариант не заработал
7 Defender aka LINN
 
21.11.11
10:55
(6) А почему он должен был заработать?
8 svchernova
 
21.11.11
12:18
(7) Давай, кидай в меня тухлыми яйцами..
9 Defender aka LINN
 
21.11.11
12:20
(8) Будьте осторожнее в своих желаниях, они могут и исполниться ;)
10 svchernova
 
21.11.11
12:21
(9) Ручки коротки )
11 ptiz
 
21.11.11
12:25
(6) Значит, не было обработки параметра &Автор в запросе для динамического списка.
12 svchernova
 
21.11.11
12:54
(6) Да, не было. Надо мне понять, как писать запрос для динамического списка.
13 Rizhij_Nikitos
 
21.11.11
12:56
(13) Отбор.ВидСравнения  = ВидСравнения.Равно // разве не нужен?
(12) Решила проблему? Источник данных динамический список?
14 svchernova
 
21.11.11
13:02
(13) я решила проблему:
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
   Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Автор").Поле;    
   Отбор.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;

Это всё заработало.
Но я хотела сделать этот отбор по- другому, посмотри картинку в посте №2. Там нужен запрос для динамического списка, как я понимаю, при открытии формы. Но к чему запрос? к документу? к справочнику пользователей? и что этот запрос должен вытащить из базы, какая цель этого запроса?
15 svchernova
 
21.11.11
13:03
(13) вид сравнения по умолчанию равно.. это сработало
16 Rizhij_Nikitos
 
21.11.11
13:45
Вы хотите узнать сам запрос? ПО картинке видно, что документ является основной таблицей) САм запрос может лежать в макете... Вот так любят 1С прятать вещи)
17 svchernova
 
21.11.11
14:18
(16) Что такое запрос в макете? В макете документа???? Не поняла.
18 Ns33
 
21.11.11
16:20
(14) Ставишь галку "Произвольный запрос", будет сконструирован запрос, добавляешь свое условие, и тогда устанавливаешь значение условия через УстановитьЗначениеПараметра.
19 bvg
 
21.11.11
16:38
(14)Все работает и с динамическим списком, Добавьте реквизит формы, там где у вас "Список" (если см. рисунок в 2)... киньте его на форму, привяжите событие "ПриИзменении" к (14) ... получите тоже самое что и в (2) только не надо будет заходить во "Все действия", чтобы сделать отбор, а прямо на форме выбираете автора и получите сразу отбор по нему ... ну и соответственно не забываете у реквизита ставить галочку "сохранение" и при открытии формы восстанавливать отбор, чтобы пользователь каждый раз заново не выбирал автора
20 svchernova
 
21.11.11
17:11
(18) и (19) Спасибо. Меня не было на месте, не могла ответить. Завтра попробую это всё.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший