|
|
|
Попытка ... исключение | ☑ | ||
|---|---|---|---|---|
|
0
5 Элемент
01.12.09
✎
10:33
|
Можете просветить почему ошибка возникающая при открытии формы, которая открывается в "попытке", не приводит к выполнению "исключения" ?
|
|||
|
1
Stepa86
01.12.09
✎
10:33
|
код в студию
|
|||
|
2
Defender aka LINN
01.12.09
✎
10:34
|
(0) Вложенная попытка? Или, может, это и не исключение вовсе?
|
|||
|
3
5 Элемент
01.12.09
✎
10:36
|
(1) в форме такой код
Процедура ПриОткрытии() ЭтоОШибка = 100; ЭтоОШибка.Ошибка(); КонецПроцедуры пытаюсь открыть форму так ФормаОбъекта = Ссылка.ПолучитьФорму(); Попытка ФормаОбъекта.Открыть(); Исключение КонецПопытки; |
|||
|
4
Defender aka LINN
01.12.09
✎
10:39
|
(3) Потому что ошибка уже в открытой форме возникает, видимо.
|
|||
|
5
Нуф-Нуф
01.12.09
✎
10:39
|
(4) тоже так думаю
|
|||
|
6
Нуф-Нуф
01.12.09
✎
10:40
|
ФормаОбъекта = Ссылка.ПолучитьФорму();
Попытка ФормаОбъекта = 100; ФормаОбъекта.Открыть(); Исключение КонецПопытки; вот тут думаю исключение сработает |
|||
|
7
5 Элемент
01.12.09
✎
10:43
|
(4) получается что не все можно отловить?
|
|||
|
8
lxs
01.12.09
✎
10:44
|
(7) есть процедуры ПередОткрытием(), ПриОткрытии(). Туда Попытку вставляй и отлавливай. Ошибка вываливается-то на уровне кода.
|
|||
|
9
Ненавижу 1С
гуру
01.12.09
✎
10:46
|
хотя, имхо, неправильно поведение системы
|
|||
|
10
hhhh
01.12.09
✎
10:47
|
(7) Процедура ПриОткрытии() привязана к обработчику формы ПриОткрытии ??
|
|||
|
11
5 Элемент
01.12.09
✎
10:49
|
(10) конечно привязана, я что совсем нуб :)
(8) если код из ПриОткрытии перенести в ОбработкаПроведения и вызвать проведение, то ошибка ловится. |
|||
|
12
Ненавижу 1С
гуру
01.12.09
✎
10:51
|
(11) наверное они все на уровень GUI завязали
|
|||
|
13
5 Элемент
01.12.09
✎
10:55
|
(12) "Дешево и сердито"
|
|||
|
14
XLife
01.12.09
✎
10:56
|
(13) доступно и всерьез!
|
|||
|
15
hhhh
01.12.09
✎
11:04
|
(13) там получается, что параллельно выполняется. Пока форма открывается, вызывающая программа выполняется дальше, успевает пройти несколько команд и выходит за пределы твоей попытки. То есть открытие формы не останавливает выполнение основной программы. Чтобы остановить, существует отделная команда ОткрытьМодально()
|
|||
|
16
Ненавижу 1С
гуру
01.12.09
✎
11:05
|
(15) не пори чушь, после открытия вызывается обработчик ПриОткрытии, потом уж может и дальше идти
|
|||
|
17
hhhh
01.12.09
✎
11:08
|
(16) ты наверно хотел сказать ПередОткрытием() ? ПриОткрытии() - не факт.
|
|||
|
18
Ненавижу 1С
гуру
01.12.09
✎
11:10
|
(17) да с чего бы, может проверишь?
|
|||
|
19
xReason
01.12.09
✎
11:10
|
Вообще должно отлавливать все, что внутри стека вызова получается, относительно блока тру-катч (попытка)
|
|||
|
20
hhhh
01.12.09
✎
11:11
|
(18) вообше-то, когда пишем
Форма.Открыть() Форма.Отбор.Поле.Установить(Значение); в открытой форме отбор уже установлен. |
|||
|
21
Ненавижу 1С
гуру
01.12.09
✎
11:12
|
(20) между двумя этими операторами будет выполняться ПередОткрытием и ПриОткрытии
|
|||
|
22
Ненавижу 1С
гуру
01.12.09
✎
11:12
|
(19) то в нормальных системах
|
|||
|
23
5 Элемент
01.12.09
✎
11:12
|
(20) отладчиком проверил - пока не выполнится ПриОткрытии код дальше не выполняется
|
|||
|
24
hhhh
01.12.09
✎
11:16
|
(23) ИМХО дело не в этом. Просто открытие формы как бы эмулирует параллельный процесс, а попытка- исключение у тебя задана для вызывающего процесса.
|
|||
|
25
Ненавижу 1С
гуру
01.12.09
✎
11:18
|
(24) "как бы эмулирует", не фантазируй
|
|||
|
26
5 Элемент
01.12.09
✎
11:18
|
(24) какой еще параллельный процесс? При создании класса вызываются его методы - последовательное выполнение.
|
|||
|
27
Ненавижу 1С
гуру
01.12.09
✎
11:19
|
(0) короче, смирись, считай открыл багофичу платформы
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |