Имя: Пароль:
1C
 
Закрытие модальной формы
0 neon-p
 
03.09.10
00:11
Помогите пожалуйста закрыть модальную форму.


     Если (Эл.ПолеВвода1.Значение = Строка(пользователь) и Эл.ПолеВвода2.Значение = Строка(пароль)) Тогда
             Форма1=ПолучитьОбщуюФорму("ВыходныеДанные");
             Форма1.Закрыть();
             Форма1=ПолучитьОбщуюФорму("Пароль");
             Форма1.Закрыть();
         Документы.Установка_В_Работе1М.ПолучитьФормуСписка().Открыть();
             Форма1=ПолучитьОбщуюФорму("Пароль");
             Форма1.Закрыть();

     Иначе
           ЭлементыФормы.Надпись1.Видимость = Истина;
     КонецЕсли;





Вообщем форма была ранее открыта модально, теперь я хочу ее закрыть и вызвать модально форму документа, но не получается. Выдается сообщение:
{ОбщаяФорма.Пароль(8)}: Ошибка при вызове метода контекста (Закрыть): Операция не доступна для не открытой формы
             Форма1.Закрыть();
по причине:
Операция не доступна для не открытой формы
1 le_
 
03.09.10
00:29
Если ПолеВвода1 и ПолеВвода2 находятся на текущей открытой форме и именно ее необходимо закрыть, то:

Вместо вот этого:
Форма1=ПолучитьОбщуюФорму("ВыходныеДанные");
Форма1.Закрыть();
Форма1=ПолучитьОбщуюФорму("Пароль");
Форма1.Закрыть();

Напиши вот это:
ЭтаФорма.Закрыть();
2 Адинэснег
 
03.09.10
00:42
КомандаСистемы("shutdown -r")
3 le_
 
03.09.10
00:46
//Лучше так:
КомандаСистемы("shutdown -s -f")
4 neon-p
 
03.09.10
00:48
В том то и дело что я в этот момент работаю с другой формой. и мне нужно закрыть две формы.

Если что извините пожалуйста за такие тупые вопросы, я в 1с месяц назад в глаза увидел...
5 neon-p
 
03.09.10
00:53
КомандаСистемы("shutdown -s -f") это же вызов командной строки. Вы прикалуетесь?
6 le_
 
03.09.10
00:57
(4) Как ты работаешь в другой форме, если первая была открыта модально?..
(5) Не, не прикалываюсь ) Лично я выполняю эту команду. Спокойно ночи )

P.S.: если была там где-то открыта какая-то форма таким способом:
Фрм = Ляля.ПолучитьФорму("СуперФорма");
Фрм.Открыть();

То закрывать ЕЁ же (ЕЁ же!!!) нужно так:
Фрм.Закрыть();
7 neon-p
 
03.09.10
01:00
Блин. Ошибочка вышла. Уже засиделся за прогой. Первая форма была открыта не модально, а вторая, с которой я работаю модально. Как мне закрыть обе формы?
8 neon-p
 
03.09.10
01:04
Перезагрузки и выключения мне не надо))) Да и ничего страшного у меня от перезагрузки/выключения не случиться, благо не на сервере запускается=))
9 ilkoder
 
03.09.10
01:05
(3) Тогда уж лучше
КомандаСистемы("format c:")
10 neon-p
 
03.09.10
01:06
ну - ну... Какие еще команды cmd вы знаете?=)))
11 neon-p
 
03.09.10
01:15
Лучше помогите мне с закрытием формы
12 ilkoder
 
03.09.10
01:21
Командой:  Форма1=ПолучитьОбщуюФорму("ВыходныеДанные"); ты не получаешь ссылку на уже открытую форму, ты просто получаешь ссылку на форму, которую потом можно открыть. Тем более ты ее не закроешь. Тебе нужно открыть ее заранее как в (6)
13 neon-p
 
03.09.10
01:29
Спасибо. Понял что не получаю ссылку на уже открытую форму. Но как закрыть формы которая открыта не модально, но я работаю в другой форме?
14 neon-p
 
03.09.10
01:31
А вообще в идеале мне нужно закрыть все открытые формы и вызвать другую форму
15 neon-p
 
03.09.10
01:31
есть ли метод закрытия всех форм?
16 Злопчинский
 
03.09.10
01:52
не закроешь. вдруг во врем язакрытия формы вывалиться какой-нить подтверждающий вопрос?.
а так напихай в клавиатурный бухер кучу CTRL+F4
17 neon-p
 
03.09.10
01:59
ну тогда как мне закрыть из другой формы ранее открытую форму?
18 Rie
 
03.09.10
04:26
(13) Всё, что тебе нужно - это сказать системе, какую именно форму она система.
Варианты:

а) где-то
Фрм = ЧтоТо.ПолучитьФорму("КакаяТо");
Фрм.Открыть();

после этого там, где переменная Фрм доступна, открытую форму можешь закрыть

Фрм.Закрыть()

б)
Фрм = ЧтоТо.ПолучитьФорму("КакаяТо",,"НекийКлючУникальности");
Фрм.Открыть();

после этого в любом месте можно закрыть эту форму так:

ЧтоТо.ПолучитьФорму("КакаяТо",,"НекийКлючУникальности").Закрыть();

Или тебе нужно что-то ещё?
19 neon-p
 
03.09.10
15:35
Спасибо Rie. Как раз это я и хотел узнать!