![]() |
![]() |
![]() |
|
Выполнить() и кривой код | ☑ | ||
---|---|---|---|---|
0
Ненавижу 1С
гуру
30.04.10
✎
10:52
|
Имеем быдлокод:
Процедура КнопкаВыполнитьНажатие(Кнопка) Выполнить("Сообщить(1); Перейти ~метка; Сообщить(2);"); КонецПроцедуры Так вот выводит только 1 и нет ошибок и исключений. ВЫВОД: В случае если в Выполнить() есть Перейти на несуществующую метку в данном контексте, то не вызывается исключение, нет ошибки, просто прекращает дальше работать Выполнить. Ошибка деления на ноль, например, ведет себя как обычно - исключение вызывается. |
|||
1
nop
30.04.10
✎
10:52
|
ты что сдурел?
|
|||
2
Господин ПЖ
30.04.10
✎
10:53
|
гы. косяк...
|
|||
3
Ненавижу 1С
гуру
30.04.10
✎
10:53
|
(1) откуда вывод?
|
|||
4
nop
30.04.10
✎
10:53
|
(3) Ветку видел вчера?
v8: Выполнить. Весь мозг поломал |
|||
5
nop
30.04.10
✎
10:54
|
эпидемия какая то Выполняльщиков
|
|||
6
Jolly Roger
30.04.10
✎
10:54
|
(0) и чо?
|
|||
7
Andry888
30.04.10
✎
10:58
|
(0) Вчера все вроде обсудили...
|
|||
8
Ненавижу 1С
гуру
30.04.10
✎
10:58
|
(4) ясно, не читал, но источник тот же http://dff.sytes.net/906#eod
так что признаю, что баян, просто выжал суть проблемы |
|||
9
nop
30.04.10
✎
11:00
|
(8) так вот откуда ноги ... :) Дуб заразил всех птичьим гриппом, штамом белоклювого дятла
|
|||
10
Andry888
30.04.10
✎
11:02
|
(0) Кстати чем докажешь, что работа именно прекращается, а не срабатывает метод перейти ( и управление просто передается невесть куда )?
|
|||
11
quest
30.04.10
✎
11:04
|
(9) Не Дуб. Это моя отборная трава.
(10) она прекращается. Точнее не найдя метку куда перейти вызывается исключение котрого ты не видишь в платформе. |
|||
12
Ненавижу 1С
гуру
30.04.10
✎
11:04
|
(10) что значит невесть куда? ну поставь после Выполнить Сообщить
|
|||
13
Ненавижу 1С
гуру
30.04.10
✎
11:05
|
(11) если ты его не можешь обнаружить, то его и нет, с точки зрения разработчика на платформе
|
|||
14
quest
30.04.10
✎
11:08
|
оно есть. Вот чувствую что есть. Код только не могу сформулировать и условия при которых будет видно его. Ведь если бы переходил невесть куда - выполнялось бы невесть что.
|
|||
15
Andry888
30.04.10
✎
11:08
|
(12) и че? сообщить сработает... ты видел в прошлой ветке примеры когда в "выполнить" срабатывает код, который не пропустит синтаксис контроль в обычном коде?
|
|||
16
Ненавижу 1С
гуру
30.04.10
✎
11:09
|
(14) да передается дальше, а не невесть куда, а исключения нет
|
|||
17
Ненавижу 1С
гуру
30.04.10
✎
11:10
|
(15) по идеи тут вообще не должно начать работать Выполнить() так как идет парсинг текста
Могу показать конструкцию где именно так |
|||
18
quest
30.04.10
✎
11:13
|
(17) покажи
|
|||
19
Andry888
30.04.10
✎
11:13
|
(17) где тут? не понял что ты имеешь ввиду...
|
|||
20
Ненавижу 1С
гуру
30.04.10
✎
11:17
|
(19) тут это в (0)
(18) смотри: Процедура КнопкаВыполнитьНажатие(Кнопка) А=1; Выполнить("Сообщить(А);Сообщить(Б);"); //ошибка при парсинге КонецПроцедуры |
|||
21
Andry888
30.04.10
✎
11:21
|
(20) Да правильно, НО переход меток (ошибочный) работает в выполнить и может привести к аварийному завершению 1Ски...
|
|||
22
quest
30.04.10
✎
11:22
|
не при парсинге. При поиске перменных. Текст корректный. Некоректно окружение в котром выполняться будет
|
|||
23
Ненавижу 1С
гуру
30.04.10
✎
11:40
|
(21) но не приводит же
|
|||
24
Ненавижу 1С
гуру
30.04.10
✎
11:41
|
(22) да какая разница, это и есть парсинг и анализ текста - и Выполнить не срабатывает вообще, а с Перейти работает
|
|||
25
Andry888
30.04.10
✎
11:42
|
(23) В прошлой ветке есть пример когда, via метки переходим в тело цикла и... алес капут, НО переходим!)
|
|||
26
Ненавижу 1С
гуру
30.04.10
✎
11:43
|
(25) найди этот пример, плиз
|
|||
27
Andry888
30.04.10
✎
11:50
|
текст = "
|для х = 1 по 0 цикл | |~метка:сообщить(""БУМ!"") |конеццикла; | х = 1; |перейти ~метка; |Сообщить(""1"")"; выполнить(текст); |
|||
28
Ненавижу 1С
гуру
30.04.10
✎
11:56
|
(27) клево! 1С пропускает эту ахинею и гибнет
по идеи тоже на момент парсинга ведь должна гибнут |
|||
29
Andry888
30.04.10
✎
12:03
|
(28) В общем "выполнить" вещица еще та... соответственно выводы в (0) превращаются в догадки.)
|
|||
30
Ненавижу 1С
гуру
30.04.10
✎
12:27
|
(29) нда...
а так, не вываливается, а дает ошибку сравнения несравнимого: Процедура КнопкаВыполнитьНажатие(Кнопка) текст = " |Предупреждение(1); |для х = 1 по 0 цикл | |~метка:Предупреждение(2);сообщить(""БУМ!"") |конеццикла; |Предупреждение(3); | х = 1; |Предупреждение(4); |перейти ~метка;"; выполнить(текст); КонецПроцедуры |
|||
31
quest
30.04.10
✎
12:38
|
(30) я тебе больше скажу - полд вайном код из 27 валит систему после того как 2 раза нажмешь на выполнить в Торговле. 4 раза на выполнить в бухгалтерии. На зупе не проверял. На моей машине воспроизводимый результат после перезагрузок, перезапусков вайна С чем связано - не понятно.
|
|||
32
Andry888
30.04.10
✎
12:43
|
(30) а ты поставь ";" после сообщить(""БУМ!"")... и вуаля=)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |