|
Программно установить фильтр в форме выбора
| ☑ |
0
Sharmon
29.04.13
✎
10:41
|
Делаю подбор документов "ОбслуживаниеКлиента"
ЗначениеОтбора = Новый Структура("Контрагент", Контрагент);
ПараметрыФормы = Новый Структура("ЗакрыватьПриВыборе, Отбор", Ложь, ЗначениеОтбора);
ОткрытьФормуМодально("Документ.ОбслуживаниеКлиента.ФормаВыбора", ПараметрыФормы, ЭлементыФормы.ЛистУчетаРабВремени);
Все работает, кроме фильтра по Контрагенту. Т.е. в форме выбора все контрагенты. В чем ошибаюсь?
|
|
1
Aprobator
29.04.13
✎
10:51
|
имхо, в названии отбора. Там небось не контрагент, а ДокументыПоКонтрагенту или что то подобное.
|
|
2
Sharmon
29.04.13
✎
10:57
|
Нет, именно "Контрагент"
|
|
3
Aprobator
29.04.13
✎
10:58
|
(2) для проверки можно открыть форму списка документа и жмакнуть на кнопку отбор. И посмотреть там, есть ли там отбор с именем коннтрагент. Хотя, это довольно грубоватый способ.
|
|
4
Aprobator
29.04.13
✎
11:00
|
более элегантный, поставить точку останова в форме списка документа в процедуре ПриОткрытии и там посмотреть отладчиком имена доступных элементов отбора.
|
|
5
D_Pavel
29.04.13
✎
11:09
|
А стоит "Индексировать" в реквизите Контрагент?
|
|
6
эцп
29.04.13
✎
11:13
|
(0) А речь идет об УФ?
|
|
7
Sharmon
29.04.13
✎
11:18
|
Нет. Обычное приложение. "Индексировать" установил, но все равно отбор не работает
|
|
8
эцп
29.04.13
✎
11:23
|
(7) А в обычном приложении такое не прокатывает. В обычном нужно действовать как обычно:
Форма.ДокументСписок.Отбор.Контрагент.Установить(Контрагент);
|
|
9
Sharmon
29.04.13
✎
11:24
|
Вот таким кодом заменил, все работает как надо:
ФормаВыбора = Документы.АРБИС_ОбслуживаниеКлиента.ПолучитьФормуВыбора("ФормаСписка",ЭлементыФормы.Лурвы);
ФормаВыбора.Отбор.Контрагент.Использование = Истина;
ФормаВыбора.Отбор.Контрагент.Значение = Контрагент;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ОткрытьМодально();
|
|