|
Как установить фильтр при открытии формы списка справочника из документа | ☑ | ||
---|---|---|---|---|
0
Sharmon
06.12.13
✎
16:40
|
Есть документ. В нем реквизит, который является справочником.
Мне нужно при открытии формы списка этого справочника установить программно фильтры (в зависимости от свойств документа). В какую сторону копать? Т.е. на какое событие повесить установку данных фильтров? |
|||
1
Господин ПЖ
06.12.13
✎
16:41
|
надо начать с понимания что за форма... УФ или обычная
|
|||
2
Sharmon
06.12.13
✎
16:41
|
Раньше использовал "Связь по владельцу". Но сейчас добавились еще реквизиты. А связь по владельцу, так понимаю, работает только с 1 реквизитом
|
|||
3
Sharmon
06.12.13
✎
16:41
|
(1) Обычная
|
|||
4
mr_K
06.12.13
✎
16:42
|
(0) в обычной - событие началовыбора. в нем стандартную обработку отключать и открывать форму списка программно
|
|||
5
Sharmon
06.12.13
✎
16:42
|
(4) спасибо за ответ.
|
|||
6
Господин ПЖ
06.12.13
✎
16:44
|
ЭтаФорма = Сравочники.Блабла.ПолучитьФорму();
ЭтаФорма.Отбор.ТвойЭлемент.Использование = ИСТИНА; ЭтаФорма.Отбор.ТвойЭлемент.Значение = ТвоёЗначение; + (4) |
|||
7
Господин ПЖ
06.12.13
✎
16:44
|
.ПолучитьФорму();
в смысле .ПолучитьФормуСписка(); или там .ПолучитьФормуВыбора(); |
|||
8
Sharmon
06.12.13
✎
16:45
|
Сделал так:
Процедура СМ_СчетНаОплатуНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = ложь; ФормаСпр = Справочники.СМ_СчетНаОплатуПоставщика.ПолучитьФормуСписка(); ФормаСпр.СправочникСписок.Отбор.Владелец.Использование = Истина; ФормаСпр.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно; ФормаСпр.СправочникСписок.Отбор.Владелец.Значение = Контрагент; ФормаСпр.ОткрытьМодально(); КонецПроцедуры |
|||
9
Михаил Козлов
06.12.13
✎
16:52
|
(8) А модально зачем? Желательно еще в настройках отбора справочника установить недоступность для контрагента.
В типовых можно посмотреть, как договор выбирается по организации и контрагенту. |
|||
10
Sharmon
06.12.13
✎
16:53
|
Согласен, можно немодально. Здесь привел текст для примера (вдруг поможет кому). На самом деле у меня разные условия, более сложные.
|
|||
11
patapum
06.12.13
✎
16:54
|
(8) а еще я думаю, выбрать ничего не получится. владелец формы-то не задан
|
|||
12
Господин ПЖ
06.12.13
✎
16:55
|
(11) +1
|
|||
13
Господин ПЖ
06.12.13
✎
16:56
|
ФормаСпр = Справочники.СМ_СчетНаОплатуПоставщика.ПолучитьФормуСписка(, Элемент);
|
|||
14
Sharmon
06.12.13
✎
17:06
|
(11), (12) - все работает по моему коду, т.е. просто ПолучитьФормуСписка();
|
|||
15
Sharmon
06.12.13
✎
17:07
|
Вот полный рабочий код:
Процедура СМ_СчетНаОплатуНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = ложь; ФормаСпр = Справочники.СМ_СчетНаОплатуПоставщика.ПолучитьФормуСписка(); ФормаСпр.СправочникСписок.Отбор.Владелец.Использование = Истина; ФормаСпр.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно; Если (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствПодотчетнику) или (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.РасчетыПоКредитамИЗаймамСРаботниками) тогда ФормаСпр.СправочникСписок.Отбор.Владелец.Значение = Получатель; иначе ФормаСпр.СправочникСписок.Отбор.Владелец.Значение = Контрагент; КонецЕсли; Если (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ВыдачаДенежныхСредствКассеККМ) или (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ПеречислениеНалога) или (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ПеречислениеЗП) или (ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ПрочийРасходДенежныхСредств) тогда ФормаСпр.СправочникСписок.Отбор.Владелец.Использование = ложь; КонецЕсли; ФормаСпр.Открыть(); КонецПроцедуры |
|||
16
samozvanec
06.12.13
✎
17:23
|
есть еще СвязиПараметровВыбора
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |