|   |   | 
| 
 | 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 | 
        Всем спасибо за помощь     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |