|
Открыть форму выбора справочника с отбором (обработчик программно добавленого элемента | ☑ | ||
---|---|---|---|---|
0
Юзер123
naïve
23.09.20
✎
08:49
|
Добрый день.
Открыть форму выбора справочника с отбором (обработчик программно добавленого элемента + расширение) Сабф собственно. На форму списка добавляю элемент . Добавляю обработчик начало выбора. В модуле формы на клиенте вызываю свой обработчик "МоеНачалоВыбора" как сделать так , чтобы форма открывающаяся из моего элемента открывалась с определенным отбором? |
|||
1
Юзер123
naïve
23.09.20
✎
13:45
|
При добавлении элемента пишу
НовыйЭлемент.УстановитьДействие("НачалоВыбора","ОтборДоходныйДоговорНачалоВыбора"); НовыйЭлемент.УстановитьДействие("ПриИзменении","ОтборДоходныйДоговорПриИзменении"); В модуле формы следующий код &НаКлиенте Процедура ОтборДоходныйДоговорНачалоВыбора() ПараметрТекстЗаголовка = НСтр("ru = 'Договоры с контрагентами'; |en = 'Contracts with counterparty'"); ПараметрыОтбора = ПолучитьЗначенияОтбораНаСервере(); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Отбор", Новый Структура("ТипДоговора", ПараметрыОтбора)); ПараметрыФормы.Вставить("Заголовок", ПараметрТекстЗаголовка); ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Формавыбора", ПараметрыФормы); КонецПроцедуры ПараметрыОтбора = список значений с ТипамиДоговоров. Отбор не срабатывает. |
|||
2
karnet
23.09.20
✎
13:53
|
(1) "ПараметрыОтбора = ПолучитьЗначенияОтбораНаСервере();" - там какие данные содержатся ?
|
|||
3
karnet
23.09.20
✎
13:58
|
(1) Попробуй так:
НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных; Отбор = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипДоговора"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Отбор.ПравоеЗначение = ПолучитьЗначенияОтбораНаСервере(); Отбор.Использование = Истина; ПараметрыВыбора = Новый Структура("ФиксированныеНастройки", НастройкиКомпоновки); ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Формавыбора", ПараметрыВыбора); |
|||
4
Юзер123
naïve
23.09.20
✎
14:43
|
(3) Все прекрасно, только открывается 2 формы выбора.
Как передать СтандартнаяОбработка = Ложэь; |
|||
5
uzerp2
23.09.20
✎
14:46
|
попробуй так например
ПараметрыФормы.Вставить("Отбор123", Новый Структура("ТипДоговора", ПараметрыОтбора)); если просто "Отбор" платформа сама может отработать |
|||
6
Юзер123
naïve
23.09.20
✎
14:49
|
(5) 3 - работает.
Но открывается 2 формы выбора. Одна с отбором вторая нет |
|||
7
karnet
23.09.20
✎
14:53
|
(6) А если вызвать процедуру с параметрами: Процедура ОтборДоходныйДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка), где
СтандартнаяОбработка = Ложь; |
|||
8
Юзер123
naïve
23.09.20
✎
14:56
|
Так же 2окна
|
|||
9
uzerp2
23.09.20
✎
15:08
|
ну ты в МоеНачалоВыбора
добавь СтандартнаяОбработка = Ложь; |
|||
10
uzerp2
23.09.20
✎
15:12
|
если не отключишь, то у тебя
будет 2-е формы открываться одна стандартный выбор и вторая выбор который ты программно открываешь |
|||
11
Юзер123
naïve
23.09.20
✎
15:14
|
(10) так как это реализвовать
|
|||
12
uzerp2
23.09.20
✎
15:16
|
код обработчика МоеНачалоВыбора скинь сюда
|
|||
13
Юзер123
naïve
23.09.20
✎
15:17
|
(9) Вот это и хочу сделать)
|
|||
14
Юзер123
naïve
23.09.20
✎
15:18
|
Процедура ОтборДоходныйДоговорНачалоВыбора()
СтандартнаяОбработка = Ложь; ПараметрТекстЗаголовка = НСтр("ru = 'Договоры с контрагентами'; |en = 'Contracts with counterparty'"); НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных; Отбор = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипДоговора"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Отбор.ПравоеЗначение = ПолучитьЗначенияОтбораНаСервере(); Отбор.Использование = Истина; ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Заголовок", ПараметрТекстЗаголовка); ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки); ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Формавыбора", ПараметрыФормы); КонецПроцедуры |
|||
15
uzerp2
23.09.20
✎
15:19
|
ты не то скидываешь
должно быть что то вроде: &НаКлиенте Процедура РодительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) // Вставить содержимое обработчика. КонецПроцедуры ключевое в этом коде СтандартнаяОбработка !!! |
|||
16
uzerp2
23.09.20
✎
15:21
|
попробуй удали (закомментируй этот обработчик ОтборДоходныйДоговорНачалоВыбора() )
и добавь его средствами платформы |
|||
17
Юзер123
naïve
23.09.20
✎
15:41
|
(16) Не могу. Элемент на форму программно добавлен.
|
|||
18
Юзер123
naïve
23.09.20
✎
15:41
|
в первом посте код добавления приведен
|
|||
19
Юзер123
naïve
23.09.20
✎
15:43
|
Процедура ОтборДоходныйДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; ПараметрТекстЗаголовка = НСтр("ru = 'Договоры с контрагентами'; |en = 'Contracts with counterparty'"); НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных; Отбор = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТипДоговора"); Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Отбор.ПравоеЗначение = ПолучитьЗначенияОтбораНаСервере(); Отбор.Использование = Истина; ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Заголовок", ПараметрТекстЗаголовка); ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки); ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Формавыбора", ПараметрыФормы); КонецПроцедуры так работает. Спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |