|
|
|
8.2 Как вернуть выбранное значение | ☑ | ||
|---|---|---|---|---|
|
0
Aswed
02.06.10
✎
11:38
|
Из одного справочника открываю форму выбора другого. Открываю программно, т.к. надо устанавливать в открываемой форме отбор.
Всё нормально открывается и я могу в открытой форме выбрать нужное мне значение справочника. Но как вернуть в форму из которой я открывал выбранное значение? |
|||
|
1
H A D G E H O G s
02.06.10
✎
11:39
|
Владельцем формы поставь Элемент родительской формы, куда значение вернуть хочешь.
|
|||
|
2
Aswed
02.06.10
✎
11:43
|
(1) Так и пытался сделать, ругается на не соответствие типов.
СтандартнаяОбработка = Ложь; ФормаВыбора = ПолучитьФорму("Справочник.ОпцииАвтомобилей.Форма.ФормаВыбора"); ФормаВыбора.ВладелецФормы = Объект.Ссылка; |
|||
|
3
H A D G E H O G s
02.06.10
✎
11:43
|
(2) Плохо
|
|||
|
4
H A D G E H O G s
02.06.10
✎
11:43
|
ВНИМАТЕЛЬНО прочитай, что я написал в (1)
|
|||
|
5
Aswed
02.06.10
✎
11:47
|
(4) Понял, спасибо, заработало.
|
|||
|
6
Defender aka LINN
02.06.10
✎
11:47
|
(0) "Открываю программно, т.к. надо устанавливать в открываемой форме отбор" - а параметры выбора - не айс?
|
|||
|
7
Aswed
02.06.10
✎
11:49
|
(6) По подробнее. Как реализовывается в 8.2?
Можешь дать примерчик? |
|||
|
8
Defender aka LINN
02.06.10
✎
11:53
|
Aswed - не надо то, что во всех мануалах есть, в БЗ пихать :)
Что за отбор-то у тебя? |
|||
|
9
Aswed
02.06.10
✎
11:54
|
(8) Ну я на тот случай что кому нить как и мне будет лень искать в мануалах и он полезет сразу в БЗ:)
А отбор вот: СтандартнаяОбработка = Ложь; ФормаВыбора = ПолучитьФорму("Справочник.ОпцииАвтомобилей.Форма.ФормаВыбора"); ФормаВыбора.ВладелецФормы = Элементы.Стандартные; //устанавливаем отбор по текущей моделе, т.е. показываем только те опции что добавлены в модель ЭлементОтбора = ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.ПравоеЗначение = СписокОпций; ЭлементОтбора.Использование = Истина; ФормаВыбора.Открыть(); |
|||
|
10
Aswed
02.06.10
✎
12:06
|
+ (9) в 8.1 это дело понятное дело решается просто установкой отбора в открываемой ФормеВыбора, но вот как это в 8.2 реализовать ума не приложу кроме как вариант в (9)
|
|||
|
11
Defender aka LINN
02.06.10
✎
12:08
|
(9) СписокОпций - это догадаться теперь надо, что это? А правильный код такой:
|
|||
|
12
Aswed
02.06.10
✎
12:09
|
(11) Ну СписокОпций понятное же дело, это тот список по которому устанавливается отбор.
Спасиб, ща попробую. |
|||
|
13
Aswed
02.06.10
✎
12:11
|
(11) Ну в принципе теже грабли только в профиль, но за способ спасибо:)
|
|||
|
14
Defender aka LINN
02.06.10
✎
12:11
|
(12) Угу. Материлизуется из воздуха, я так и понял.
|
|||
|
15
Defender aka LINN
02.06.10
✎
12:12
|
(13) Хренасе "те же грабли".
|
|||
|
16
Aswed
02.06.10
✎
12:14
|
(14) ну откуда он берётся уже детали, не касающиеся текущего вопроса:)
(15) Те же грабли это в отношении того что мне так же надо возвращать выбранное значение как и раньше:))) |
|||
|
17
Aswed
02.06.10
✎
12:14
|
+ 16 только в новом способе не вижу как мне в открываемую форму передать значение владельца формы.
|
|||
|
18
Defender aka LINN
02.06.10
✎
12:15
|
(16) Ничего там больше не надо.
"откуда он берётся уже детали, не касающиеся текущего вопроса" - конечно. Я ж потому и спрашивал, что вопроса это не касается... |
|||
|
19
Aswed
02.06.10
✎
12:16
|
(18) Ух ты! Точно! Спасибо большое, буду теперь твоим способом пользоваться.
:) |
|||
|
20
Aswed
02.06.10
✎
12:30
|
так вернёмся к САБЖУ
Я выбрал элемент, знаю в какого именно владельца мне передать выбранное значение. Как теперь мне его передать обратно, в форму из которой открывал форму выбора? |
|||
|
21
Defender aka LINN
02.06.10
✎
12:31
|
Пеляйт...
Может таки запустишь код? |
|||
|
22
Aswed
02.06.10
✎
12:33
|
(21) Запустил. Обратно ничего не возвращается.
|
|||
|
23
Defender aka LINN
02.06.10
✎
12:35
|
(22) У меня возвращается. ЧЯДНТ?
|
|||
|
24
Aswed
02.06.10
✎
12:37
|
Вот вся процедура
&НаКлиенте Процедура ПоУмолчаниюОпцияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) //устанавливаем отбор по текущей моделе, т.е. показываем только те опции что добавлены в модель СтандартнаяОбработка = Ложь; ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Ссылка", СписокОпций)); ОткрытьФорму("Справочник.ОпцииАвтомобилей.ФормаВыбора", ПараметрыФормы, Элементы.Стандартные); КонецПроцедуры |
|||
|
25
Aswed
02.06.10
✎
12:38
|
Возвращает только в том случае если не прерывать выполнение СтандартнойОбработки, что вполне логично.
|
|||
|
26
Defender aka LINN
02.06.10
✎
12:40
|
Элементы.Стандартные и Элемент - одно и то же?
|
|||
|
27
Aswed
02.06.10
✎
12:40
|
(23) Ты процедуру вешаешь на саму таблицу или на поле таблицы?
Может тут что не так делаю. |
|||
|
28
Defender aka LINN
02.06.10
✎
12:41
|
(27) Вооооот.
ОткрытьФорму("Справочник.ОпцииАвтомобилей.ФормаВыбора", ПараметрыФормы, Элемент); |
|||
|
29
Aswed
02.06.10
✎
12:42
|
(26) Не понял.
Попробовал так &НаКлиенте Процедура ПоУмолчаниюОпцияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) //устанавливаем отбор по текущей моделе, т.е. показываем только те опции что добавлены в модель СтандартнаяОбработка = Ложь; ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Ссылка", СписокОпций)); ОткрытьФорму("Справочник.ОпцииАвтомобилей.ФормаВыбора", ПараметрыФормы, Стандартные); КонецПроцедуры всё равно по не возвращает. |
|||
|
30
Aswed
02.06.10
✎
12:42
|
(28) Иииииееееееессссссс!!!!
Точно!!! |
|||
|
31
Aswed
02.06.10
✎
12:44
|
+30 Красавчик просто!!!
Помог решить проблему таким простым способом, без тебя бы я писал бы и писал, программно обрабатывая всё это!!! |
|||
|
32
Aswed
02.06.10
✎
12:44
|
+ 31 жаль тут нет репутации, я бы тебе +100 добавил))))
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |