|
v8: Программное закрытие окон сообщений об ошибках | ☑ | ||
---|---|---|---|---|
0
Spakus
09.07.12
✎
09:41
|
Ситуация следующая.
Запускается регламент, который имитирует запуск всех доступных форм для пользователя(для контроля ошибок). В процессе работы регламента вылетают ошибки кода. Как "поймать" данные ошибки(программные) и продолжить выполнение регламента? Спасибо за помощь. |
|||
1
ThreeTONE
09.07.12
✎
09:42
|
попытка
исключение конецпопытки |
|||
2
andrewks
09.07.12
✎
09:42
|
исключения не предлагать?
|
|||
3
Spakus
09.07.12
✎
09:43
|
Дело в том, что формы как раз и открываются в попытке и в исключение не попадают :(
|
|||
4
Spakus
09.07.12
✎
09:46
|
Подключил обработчик ожидания в форме(пока тестирую интерактивно), но на программных ошибках он не срабатывает :(
|
|||
5
Serg_1960
09.07.12
✎
09:57
|
Озвучь, для примера, тексты "программных" :) ошибок.
|
|||
6
ChAlex
09.07.12
✎
10:00
|
(3) - Ну так что бы попадали необходимо либо Отказ=Истина либо ВызыватьИсключение() в модулях в зависимости от логики
|
|||
7
Reset
09.07.12
✎
10:03
|
Как-то и задача, и способ решения настораживают
|
|||
8
Spakus
09.07.12
✎
10:04
|
Например, вот эта
{ОбщаяФорма.ФормаВопросаТриСостоянияУпр.Форма(35)}: Итератор для значения не определен Для каждого ЭлементСписка Из ТекстВопроса Цикл Интерактивно данную ошибку можно закрыть, и регламент продолжит работать. |
|||
9
Spakus
09.07.12
✎
10:07
|
Цель данной задачи в том, чтобы отслеживать не возникают ли программные ошибки(ошибки программиста) под разными пользователями. Если такие ошибки есть, то их необходимо обработать до внедрения с тестовой базы на рабочую.
Т.е. это инструмент для программиста для исключения возникновения ошибок кода у реальных пользователей. |
|||
10
Jolly Roger
09.07.12
✎
10:09
|
(0) для тестирования гуя есть специальный софт: testcomplete и тп...
|
|||
11
ChAlex
09.07.12
✎
10:10
|
(9) - оба на, ну это изврат - 1С своей глючностью что ли провоцирует на создание неработающих программ? - я фигею
|
|||
12
Reset
09.07.12
✎
10:12
|
(9) Это архихерня, а не инструмент
|
|||
13
ChAlex
09.07.12
✎
10:13
|
(9) - чистите свой код и не мутите разум
|
|||
14
Reset
09.07.12
✎
10:14
|
Попытаюсь мягче сказать: Если программа запустилась и не выдала ошибок, это не значит, что их нет.
|
|||
15
Aleksey
09.07.12
✎
10:15
|
Ну так наберут студентов по объявлению, а потом вот такие регламенты рождаются
|
|||
16
Spakus
09.07.12
✎
10:15
|
Для этого собственно обработка и нужна.
Для поиска таких мест. |
|||
17
pumbaEO
09.07.12
✎
10:18
|
Хочешь unit тестирование? - Нету его. Вроде обещали, что-то в 8.2.16(8.3) сделать, но нет.
(15) Есть в форме, в модуле набор условий, одно из них срабатывает 1 раз на 100 случаев, в случаи изменения логики программы/обновления как проверить эти случаи? |
|||
18
Serg_1960
09.07.12
✎
10:22
|
фи :( Некоторые скатились на личности вместо решения проблемы. А проблема, имхо, есть. Тут даже не важен "контекст" применения - не об этом ведь речь.
|
|||
19
Spakus
09.07.12
✎
10:24
|
Так как перехватить ошибку кода?
|
|||
20
Reset
09.07.12
✎
10:30
|
(19) Тебе в (1) ответили
|
|||
21
Spakus
09.07.12
✎
10:32
|
Уже отвечал
Дело в том, что формы как раз и открываются в попытке и в исключение не попадают :( |
|||
22
Ork
09.07.12
✎
10:34
|
(21) Вам кто-то запретил использовать вложенность Попытка-Исключение?
|
|||
23
Reset
09.07.12
✎
10:34
|
(21) Надо ли понимать эту фразу, как то, что обработчик (к примеру) ПриОткрытии() заключен в попытку/исключение?
|
|||
24
ChAlex
09.07.12
✎
10:36
|
(19) - человек в (17) - ответил - на сегодня никак. Можно перехватить ошибку выполнения кода, но не ошибку компиляции. А сообщение (8) - это ошибка компиляции.
|
|||
25
Reset
09.07.12
✎
10:37
|
(24) Это ошибка времени выполнения.
|
|||
26
Spakus
09.07.12
✎
10:37
|
Вот текст процедуры имитирующий открытие форм
&НаКлиенте Процедура ОткрытьОбщиеФормы(МассивОбъектов) Для Каждого Объект Из МассивОбъектов Цикл ОбработкаПрерыванияПользователя(); ИмяФормыОбъекта = "ОбщаяФорма." + Объект.ИмяФормы; // имя формы ВремяНачалаОперации = ТекущаяДата(); //Получение формы Попытка ФормаПолученная = ПолучитьФорму(ИмяФормыОбъекта); //Предупреждение("Получение общей формы " + Объект.ИмяФормы, 1); // задержка Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не удалось получить общую форму " + Объект.ИмяФормы; Сообщение.Сообщить(); ЕстьОшибки = Истина; ОпОшибки = ОсновнойТекстПисьма = ОсновнойТекстПисьма + Символы.ПС + ОписаниеОшибки() + " Получение формы" + Символы.ПС; КонецПопытки; // Открытие формы Попытка ФормаОткрытая = ОткрытьФорму(ИмяФормыОбъекта); //Предупреждение("Открытие общей формы " + Объект.ИмяФормы, 1); // задержка // закрытие формы ФормаОткрытая.Закрыть(); Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не удалось открыть общую форму " + Объект.ИмяФормы; Сообщение.Сообщить(); ЕстьОшибки = Истина; ОсновнойТекстПисьма = ОсновнойТекстПисьма + Символы.ПС + ОписаниеОшибки() + " Открытие формы" + Символы.ПС; КонецПопытки; КонецЦикла; КонецПроцедуры |
|||
27
Reset
09.07.12
✎
10:45
|
(26) И тебе, к примеру, ни разу не пришло в голову, что тестирование форм, открывая их (sic!) - может быть некорректно, так как для форм часто требуется какой-то контекст, параметры? Ошибка из (8) явно возникает из-за того, что форма ждет параметра в ТекстВопроса. У тебя этот параметр Неопределено.
(12),(14) еще раз. |
|||
28
orefkov
09.07.12
✎
10:51
|
Параметр командной строки /out
|
|||
29
Spakus
09.07.12
✎
10:52
|
У меня сейчас стоит вопрос не в том чтобы убрать ошибки кода, а в том как заставить программно закрывать окна с данными ошибками. Эти ошибки попадают в журнал регистрации, из которого они попадают в отчет "Контроль журнала регистрации". С этим отчетом и работают далее программисты для обработки ошибок.
Так что такие ошибки нельзя обработать? А если подключить обработчик ожидания в модуле управляемого приложения, то запустится ли он при возникновении ошибки кода? |
|||
30
Serg_1960
09.07.12
✎
10:57
|
Нет возможности как-либо программно обработать ошибки такого рода. Попытка "вылавливает" ошибки другого рода - "ошибки времени выполнения"(с) :(
|
|||
31
Spakus
09.07.12
✎
10:58
|
Всем спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |