|
Упр.Интерфейс - Открыть форму выбора с отбором | ☑ | ||
---|---|---|---|---|
0
ares
03.11.11
✎
11:02
|
Был вопрос v8: 8.2 как открыть форму выбора с отбором и с отображением списком , остался без ответа.
Раньше можно было например так : Процедура ДоговорКонтрагентаНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.ДоговорыКонтрагентовВид.ПолучитьФормуВыбора(,Элемент,); ФормаВыбора.СправочникСписок.Отбор.Контрагент.ВидСравнения = ВидСравнения.Равно; ФормаВыбора.СправочникСписок.Отбор.Контрагент.Значение = Контрагент; ФормаВыбора.СправочникСписок.Отбор.Контрагент.Использование = Истина; ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Контрагент.Доступность = Ложь; ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ДоговорКонтрагента; ФормаВыбора.Открыть(); КонецПроцедуры В упр. приложении чет не выходит, вот до чего дошел &НаКлиенте Процедура ТабличнаяЧасть1КонтрагентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Параметры1 = Новый Структура("Отбор",Новый Структура("ВидКонтрагента", ПолучитьСсылкуВид1())); ОткрытьФормуМодально("Справочник.Контрагенты.ФормаВыбора",Параметры1); //можно еще так //Форма1 = ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора",Параметры1); //Форма1.Открыть(); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСсылкуВид1() Ссылка1 = Перечисления.ВидКонтрагента.Вид1; Возврат Ссылка1; КонецФункции Т.е. офрма открывается, и открывается с отбором, но данные при выборе не передаются в на клиента. Форма просто закрывается. Т.е. по простому открывается , но не выбирается. Прошу помощи, кто чем )))) |
|||
1
Defender aka LINN
03.11.11
✎
11:07
|
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура("Отбор",Новый Структура("ВидКонтрагента", ПредопределенноеЗначение("Перечисление.ВидКонтрагента.Вид1"))); ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы, Элемент); |
|||
2
ares
03.11.11
✎
11:07
|
нужно было в очереждной раз описание почитать, забыл владельцп указать, вот так быдет работать
Параметры1 = Новый Структура("Отбор",Новый Структура("ТП_ВидКонтрагента", ПолучитьСсылкуПК())); ОткрытьФормуМодально("Справочник.Контрагенты.ФормаВыбора",Параметры1,Элемент); |
|||
3
Defender aka LINN
03.11.11
✎
11:08
|
(2) Называй переменные по-человечески. Что значит "Параметры1"? Почем не 2, 3 или 100500?
|
|||
4
ares
03.11.11
✎
11:12
|
(1)Спасибки разобрался, не совсем понял как работает
Ведь элемент - это на стороне клиента только существует на сервере его нет, как это мы его передаем на сервер, там то что у нас будет ? Изначально думл передать владельца через &НаКлиенте Процедура ПКПодведомственнаяКомпанияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Адрес = ПоместитьНаСервер1(); //запоминаем владельца Параметры1 = Новый Структура("Отбор",Новый Структура("ТП_ВидКонтрагента", ПолучитьСсылкуПК())); ОткрытьФормуМодально("Справочник.Контрагенты.ФормаВыбора",Параметры1,Адрес); КонецПроцедуры &НаСервере Функция ПоместитьНаСервер1(Элемент) Возврат ПоместитьВоВременноеХранилище(Элемент,УникальныйИдентификатор); //УникальныйИдетификатор привязываем чтобы приявязать к форме, чтобы потом иметь возможность обращатся к ней КонецФункции |
|||
5
ares
03.11.11
✎
11:14
|
Блин ошибся вот так строка будет
Адрес = ПоместитьНаСервер1(Элемент); |
|||
6
Defender aka LINN
03.11.11
✎
11:14
|
(5) И что ЭТО?
|
|||
7
Defender aka LINN
03.11.11
✎
11:15
|
И откуда такая страсть к цифре 1?
|
|||
8
ares
03.11.11
✎
11:17
|
дело не в цифрах, ты когда нибудь пол часа ломал голову почему код не работает, а потом оказывалось, что у тебя переменная имеет зарезерватрованное объектом название.
Ты скажи, как элемент существующий на клиенте передается на сервер, чет не пойму |
|||
9
ares
03.11.11
✎
12:23
|
Как задать гибкие условия отбора
Например (ВидСравнения = ВидСравнения.НеВСписке) Чет опять туплю, вот так не работает &НаКлиенте Процедура ФилиалыФилиалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; МассивВладельцев = Новый Массив(); Для каждого стр из Объект.ПК Цикл МассивВладельцев.Добавить(стр.ПК); КонецЦикла; Форма1 = ПолучитьФорму("Справочник.ТП_Филиалы.ФормаВыбора",,Элемент); УстановкаОтбораПоВладельцу(Форма1.Список.Отбор, МассивВладельцев); Форма1.Открыть(); КонецПроцедуры &НаСервере Процедура УстановкаОтбораПоВладельцу(УстановленныйОтбор,МассивВладельцев) //Не хочу искать был ли какой либо отбор, поэтому сбрасываю УстановленныйОтбор.Сбросить(); ЭлОтбора = УстановленныйОтбор.Добавить("Владелец"); ЭлОтбора.ВидСравнения = ВидСравнения.НеВСписке; ЭлОтбора.Использование = Истина; ЭлОтбора.Значение = МассивВладельцев; КонецПроцедуры |
|||
10
Defender aka LINN
03.11.11
✎
12:31
|
(8) Нет, такого не бывало. Я отладчиком пользуюсь.
Кто куда передается, ты о чем вообще? (9) Сейчас, я хрустальный шар протру, а то он на твое "не работает" неприличные картинки корчит. |
|||
11
ares
03.11.11
✎
12:36
|
(10) А как тогда , можешь пример выложить , чет у меня никак не складывается картинка.
По идеи, Форма1 - существует на клиенте и отборы все на клиенте по ней должны быть. Тогда я вообще на сервер ничего не должен передавать, так ? |
|||
12
Defender aka LINN
03.11.11
✎
12:40
|
(11) Форма и на клиенте и на сервере существует.
|
|||
13
ares
03.11.11
✎
12:40
|
Тогда мне в параметры при открытии или полуения формы нужно загнать свой отбор, как это сделать ?
Добавить работает только в толстом клиенте и на сервере ! |
|||
14
ares
03.11.11
✎
12:41
|
У тебя пример есть ? оч. бы помог понять. В книжках блин одиночные отборы есть, нафиг тогда нужны эти листинги
|
|||
15
ares
03.11.11
✎
12:49
|
Написал так , логично ругается на Добавить
&НаКлиенте Процедура ФилиалыФилиалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; МассивВладельцев = Новый Массив(); Для каждого стр из Объект.ПК Цикл МассивВладельцев.Добавить(стр.ПК); КонецЦикла; Форма1 = ПолучитьФорму("Справочник.ТП_Филиалы.ФормаВыбора",,Элемент); Форма1.Список.Отбор.Элементы.Очистить(); ЭлОтбора = Форма1.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец"); ЭлОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке; ЭлОтбора.Использование = Истина; ЭлОтбора.ПравоеЗначение = МассивВладельцев; Форма1.Открыть(); КонецПроцедуры |
|||
16
ares
03.11.11
✎
12:53
|
Открывать форму на сервере не логично, кто ее там увидит. незнаю что делать. Это путь видимо не верный.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |