Имя: Пароль:
1C
 
Как закрыть форму
0 Rom
 
21.10.04
14:28
Как закрыть форму обработки в модуле (модулях) самой обработки, если она открывается соответствующим методом из другого модуля?

...
// Фрагмент кода в общем модуле
Обработка = ВнешниеОбработки.ПолучитьФорму(Запись.Обработка.Путь);
Обработка.Авторежим=Истина;
Обработка.Открыть();

...
// Процедура в модуле формы
Процедура ПриОткрытии()
   Если Авторежим=Истина Тогда
       ПрочитатьФайл(); //Процедура в модуле объекта
   КонецЕсли;
КонецПроцедуры
1 Волшебник
 
21.10.04
14:29
ЭтаФорма.Закрыть();
2 Rom
 
21.10.04
14:30
(1) Это все понятно, но потытка использования этого метода приводит к ошибке: "Нельзя закрыть форму, которая еще не открыта"
3 Волшебник
 
21.10.04
14:30
4 Rom
 
21.10.04
14:33
(3) Каким образом, ведь метод Обработка.Открыть() уже исполнен?!
5 Rom
 
21.10.04
14:41
(4)+ Проблема собственно в том, что метод ЭтаФорма.Закрыть() вызывется в теле процедуры ПриОткрытии(). Процедура ПередОткрытием() тоже не подходит, т.к. мне нужно считывать сохранные параметры формы (значения элементов). Как решить эту задачу?
6 Волшебник
 
21.10.04
14:43
(5) Почему не подходит ПередОткрытием? Делай там Отказ = Истина и форма не откроется.
7 Rom
 
21.10.04
14:51
(6) Я же уже написал, что мне нужно прочитать сохранные настройки формы. Это можно сделать только во время или после исполнения процедуры ПриОткрытии().
8 Волшебник
 
21.10.04
14:53
Закрывай форму извне.

ФормаОбработки = ВнешниеОбработки.ПолучитьФорму(Запись.Обработка.Путь);
ФормаОбработки.Авторежим=Истина;
ФормаОбработки.Открыть();
//здесь танцы с бубном, оповещения и пр.
ФормаОбработки.Закрыть();
9 Rom
 
21.10.04
15:00
(9) Не, этот вариант тоже не годится... :(, так как какие-то формы нужно закрывать, а какие-то нет.