Имя: Пароль:
1C
 
Закрыть окно ранее открытой обработки
,
0 Sem0709
 
04.04.17
08:22
Всем привет. Обычное приложение 8.3

Из формы обработки открываю другую обработку. Как из новой открытой обработки закрыть старую ? :)

Изменять можно только новую, владельца у новой нет.
1 b_ru
 
04.04.17
08:24
старая передает владельца в новую? Владелец - это форма? Закрывай владельца.
2 catena
 
04.04.17
08:29
А так не работает чтоли?

Обработки.МояОбработка.ПолучитьФорму().Открыть();
ЭтаФорма.Закрыть();
3 Sem0709
 
04.04.17
08:39
(2) Нет. Только так

ОбработкаФорма = Обработки.ВызовВнешнихОбработок.ПолучитьФорму().Открыть();
ОбработкаФорма.Закрыть();
4 Sem0709
 
04.04.17
08:39
(3) + вмысле и так, и так не работает
5 shamannk
 
04.04.17
08:41
(4) выложи код телепаты сдулись
6 Мимохожий Однако
 
04.04.17
08:44
(3) Зачем закрывать форму, которую ты открываешь перед этим?
Убери вторую строку и добавь
Закрыть();
7 catena
 
04.04.17
08:46
(3)Конецчно так не будет работать.

ОбработкаФорма = Обработки.ВызовВнешнихОбработок.ПолучитьФорму().Открыть(); - обращение к процедуре, как к функции.

ОбработкаФорма.Закрыть(); - закрываешь только что открытое...
8 catena
 
04.04.17
08:47
(5)Нет у него кода. Он сам не местный. Попрошайничает.
9 Sem0709
 
04.04.17
08:51
(5) Какой код, его нет)

Я пробовал:

1.
ФормаИнфициатор = Обработки.ВызовВнешнихОбработок.ПолучитьФорму();
ФормаИнфициатор.Закрыть();

Недопустимая операция для неоткрытой формы


2.
    ФормаИнфициатор = Обработки.ВызовВнешнихОбработок.ПолучитьФорму();
    ФормаИнфициатор.Открыть();
    ФормаИнфициатор.Закрыть();

тоже самое
10 Sem0709
 
04.04.17
08:51
(9) + а по владельцу апче ничего не происходит... пуст он наверное...
11 catena
 
04.04.17
08:52
(9)Ты это... Бросай курить эту дрянь... Она моск плавит.
12 catena
 
04.04.17
08:53
И найди 10 отличий:

Обработки.ВызовВнешнихОбработок.ПолучитьФорму().Открыть();
ЭтаФорма.Закрыть();

ФормаИнфициатор = Обработки.ВызовВнешнихОбработок.ПолучитьФорму();
ФормаИнфициатор.Закрыть();
13 Sem0709
 
04.04.17
08:57
(12) не уловил)

Обработки.ВызовВнешнихОбработок.ПолучитьФорму().Открыть();
ЭтаФорма.Закрыть();

Открывается ещё одна обработка из которой открыта последняя
14 Sem0709
 
04.04.17
08:58
ааа, ну а открытая новая закрывается, потому-что ЭтаФорма.Закрыть();
15 Sem0709
 
04.04.17
08:58
Я может не правильно объяснил. Первая открывает вторую. Из второй нужно закрыть первую...
16 catena
 
04.04.17
09:02
(15)Ну еслои так принципиально из второй закрывать первую, а не самозакрывать первую, тогда передавай первую параметром во вторую.
17 Sem0709
 
04.04.17
09:03
(16)Про принцип не понял. Мне не нужно закрывать вторую обработку.
Не могу изменять первую... только вторую.
18 catena
 
04.04.17
09:05
(17)Не закрывай вторую. Разрешаю. Закрывай первую. Только внимательнее, не запутайся!
19 catena
 
04.04.17
09:06
А, я тебя поняла. Вот телепатизм на этом форуме заразен.

Тебе нельзя изменять ту обработку, которая открывает? И обойтись только средствами открываемой обработки?
20 Sem0709
 
04.04.17
09:10
(19) ТОЧНЯК!!)
21 catena
 
04.04.17
09:22
(20)Попробуй так:

ФормаИнфициатор = Обработки.ВызовВнешнихОбработок.ПолучитьФорму();
Если ФормаИнфициатор.Открыта() Тогда
    ФормаИнфициатор.Закрыть();
КонецЕсли;
22 catena
 
04.04.17
09:26
Как открывается первая форма?
23 Мимохожий Однако
 
04.04.17
10:08
Закрывай форму первой обработки при открытии второй, а при закрытии второй обработки, открывай первую.
...
Открывай вторую модально.
...
А я так и не понял, нахрена открывать и закрывать? Пусть все будут открыты
24 Sem0709
 
05.04.17
00:46
(21) Так я тоже пробовал, он проверяет открыта ли новая обработка, которую мы создаём Обработки.ВызовВнешнихОбработок.ПолучитьФорму();
25 Sem0709
 
05.04.17
00:53
(23) Да Вы совсем не поняли задачу. Объясняльщик из меня ни какой, как я посмотрю. Ещё раз....

Открываю первую форму. Из первой формы открываю вторую форму. Надо из второй формы закрыть первую форму. ИЗменять могу только вторую форму!!! Первую не могу!!
26 catena
 
05.04.17
05:29
(24)Еще раз: как открывается первая форма? У получения формы есть три параметра. Если по всем трем попадешь - зацепишь открытую форму.
27 h-sp
 
05.04.17
05:37
(25) попробуй через оповещения.

во второй форме делай Оповестить("Закройся")

в первой форме ОбработкаОповещения

Если имясобытия = "Закройся" Тотда
   Закрыть();
28 catena
 
05.04.17
06:13
(27)Не хочет он вообще в первой форме изменения вносить. Читеринг, бигбосса не дадут.