|
УФ. Как получить реквизиты второй формы через оповещение? |
☑ |
0
Stim
05.11.14
✎
11:07
|
Есть внешняя обработка с двумя формами. Хочу из основной формы открыть вторую, при закрытии передать из неё значение реквизиты в первую
Вот код:
//Основная форма
&НаКлиенте
Процедура НажатиеКнопкиОткрытьДругуюФорму(Элемент)
МояФорма = получитьФорму("ВнешняяОбработка.МояВнешняяОбработка.Форма.мояВтораяФорма",,ЭтаФорма);
форма.открыть();
КонецПроцедуры
//Основная форма
&НаКлиенте
Процедура ВыполнитьПослеОткрытияВторойФормы(Результат, ДополнительныеПараметры) Экспорт
//отладчег сюда не доходит
Сообщить(ТипЗнч(результат));
КонецПроцедуры
//Вторая форма
&НаКлиенте
Процедура ПриЗакрытии()
//отладчик сюда попадает
Оп = Новый ОписаниеОповещения("ВыполнитьПослеОткрытияВторойФормы",ЭтотОбъект.ВладелецФормы,МойРеквизит );
КонецПроцедуры
Почему отладчик не попадает в процедуру ВыполнитьПослеОткрытияВторойФормы ? ЧЯДНТ?
|
|
1
Cube
05.11.14
✎
11:13
|
(0) А у тебя ЭтотОбъект.ВладелецФормы не пустой случайно?
|
|
2
Stim
05.11.14
✎
11:17
|
(1) а с чего это он пустой?
Там форма-владелец.
|
|
3
Cube
05.11.14
✎
12:03
|
(2) А ты уверен? Проверял?
А то мне кажется, что там надо писать ЭтаФорма.ВладелецФормы, а не ЭтотОбъект.ВладелецФормы...
|
|
4
Stim
05.11.14
✎
12:20
|
(3) ок, проверил так. Все равно не попадает.
при этом если удалить экспортную процедуру, то ругается
|
|
5
Cube
05.11.14
✎
12:33
|
(4) Блин)) А чего это ты ждешь у моря погоды-то?)) Создал объект "Оп" и ничего с ним не сделал... Это же не ОбработчикОжидания() тебе :))
Делай так:
//Основная форма
&НаКлиенте
Процедура НажатиеКнопкиОткрытьДругуюФорму(Элемент)
ОткрытьФорму("ВнешняяОбработка.МояВнешняяОбработка.Форма.мояВтораяФорма", , , , , , Новый ОписаниеОповещения("ВыполнитьПослеОткрытияВторойФормы", ЭтотОбъект));
КонецПроцедуры
//Основная форма
&НаКлиенте
Процедура ВыполнитьПослеОткрытияВторойФормы(Результат, ДополнительныеПараметры) Экспорт
//отладчег сюда не доходит
Сообщить(ТипЗнч(результат));
КонецПроцедуры
//Вторая форма
&НаКлиенте
Процедура ЗакрытьФормуНах()
//Эту процедуру прикрути к кнопке на форме
Закрыть(МойРеквизит);
КонецПроцедуры
|
|
6
Stim
05.11.14
✎
12:46
|
(5) все равно не вызывается
|
|
7
Cube
05.11.14
✎
12:49
|
(6) Ну чё ты заливаешь? У меня вот так работает, а у тебя не работает:
&НаКлиенте
Процедура Настройки(Команда)
ОткрытьФорму("ОбщаяФорма.ФормаКонстант", , , , , , Новый ОписаниеОповещения("НастройкиЗавершение", ЭтотОбъект));
КонецПроцедуры //Настройки()
&НаКлиенте
Процедура НастройкиЗавершение(Результат, ДополнительныеПараметры) Экспорт
ПрочитатьДанныеКонстант();
КонецПроцедуры //НастройкиЗавершение()
|
|
8
Stim
05.11.14
✎
13:08
|
Да что я вру чтоле
вот обработка:
|
|
9
Cube
05.11.14
✎
13:27
|
(8) Не врешь, но ошибаешься. Даже скопипастить нормально не можешь)))
Вместо
ОткрытьФорму("ВнешняяОбработка.тестмодальногорежима.Форма.Форма1",,,,,Новый ОписаниеОповещения("ВыполнитьПослеОткрытияВторойФормы",ЭтотОбъект));
пиши
ОткрытьФорму("ВнешняяОбработка.тестмодальногорежима.Форма.Форма1",,,,,,Новый ОписаниеОповещения("ВыполнитьПослеОткрытияВторойФормы",ЭтотОбъект));
Разницу уловил?
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший