|   |   | 
| 
 | Журнал регистрации - нет инфы об объекте и модуле в описании ошибки | ☑ | ||
|---|---|---|---|---|
| 0
    
        НеПридумалаНик 26.10.16✎ 15:21 | 
        Здравствуйте, вопрос такой.
 В журнале ведется запись ошибок, но, кроме информации про пользователя и самой ошибке нет более ничего, что бы указывало на то из какого отчета/документа/обработки сгенерировалась эта ошибка. Можно ли перед тем как ошибка запишется в журнал, перехватить ее и добавить в комментарий информацию о метаобъекте, где случилась неприятность: "Отчет.ТакойТо. Произошла исключительная ситуация..." Если это невозможно, то что сделать с журналом, чтобы добавить к ошибкам информацию про объект, где она случилась. Метаданные почему-то не фиксируются в ошибках выполнения. | |||
| 1
    
        Лефмихалыч 26.10.16✎ 15:23 | 
        если модуля в ЖР нет, значит ошибка произошла внутри Выполнить(). Ищи все Выполнить(), потом думай     | |||
| 2
    
        НеПридумалаНик 26.10.16✎ 15:55 | 
        (1) тут всех Выполнить несколько десятков... и внутри Выполнить множество точек, в которых может случиться ошибка... вот и думаю, как это автоматизировать для всех Выполнить     | |||
| 3
    
        Лефмихалыч 26.10.16✎ 15:56 | 
        (2) задай эти вопросы тому, кто придумал эти Выполнить()     | |||
| 4
    
        Лефмихалыч 26.10.16✎ 15:57 | 
        все выполнить надо завернуть в попытку, которая в исключении будет ВызватьИсключение ОписаниеОшибки();
 тогда хоть место в коде увидишь | |||
| 5
    
        НеПридумалаНик 26.10.16✎ 16:20 | 
        (4) вы имеете в виду, что такой текст
 Попытка Выполнить(); Исключение ТекстОшибки = "Отчет.ТакойТо: " + ОписаниеОшибки(); КонецПопытки; поместит в журнал регистрации мой текст ошибки? | |||
| 6
    
        Лефмихалыч 26.10.16✎ 16:29 | 
        (5) нет, я имею в виду буквально то, что написал:
 Попытка Выполнить(); Исключение ВызватьИсключение ОписаниеОшибки(); КонецПопытки | |||
| 7
    
        НеПридумалаНик 26.10.16✎ 16:55 | 
        (6) Цитата: Исключения, которые не обработаны во встроенном языке, система обрабатывает самостоятельно... при системной обработке исключений делается запись в журнал регистрации
 "при системной", т.е. ВызватьИсключение запись в журнал не совершит. Так я понимаю? Но мне нужна эта запись, только поправленная. Может тогда так? Попытка Выполнить(); Исключение ЗаписьЖурналаРегистрации("Ошибка выполнения", УровеньЖурналаРегистрации.Ошибка, Источник, , "Отчет.ТакойТо:" + ОписаниеОшибки(),"")); //ну и показать ошибку ОписаниеОшибки(); КонецПопытки | |||
| 8
    
        Лефмихалыч 26.10.16✎ 16:57 | 
        (7) >"при системной", т.е. ВызватьИсключение запись в журнал не совершит
 тебе кто сказал такую чушь? Используй код из (6), а так, как в (7), сотри и больше ни кому не показывай. | |||
| 9
    
        Мыш 26.10.16✎ 17:00 | 
        Нужно у пользователя включить режим "Отладка в текущем сеансе разрешена". Тогда ошибки будут писатьса в ЖР.     | |||
| 10
    
        Мыш 26.10.16✎ 17:00 | 
        *писаться )     | |||
| 11
    
        НеПридумалаНик 26.10.16✎ 17:02 | 
        (8) а почему? собиралась ЗаписьЖурналаРегистрации использовать в подписке на события, чтобы видеть кто какой док/отчет/обработку открыл...     | |||
| 12
    
        Лефмихалыч 26.10.16✎ 17:04 | 
        (9) чушь     | |||
| 13
    
        НеПридумалаНик 26.10.16✎ 17:04 | 
        (9) т.е. при нажатии на "подробно" и "конфигуратор..." пользователи спокойно перейдут в код?     | |||
| 14
    
        Лефмихалыч 26.10.16✎ 17:04 | 
        (11) ВызватьИсключение само запишет в ЖР все, что надо.     | |||
| 15
    
        Лефмихалыч 26.10.16✎ 17:05 | 
        (13) запись в ЖР от отладки не зависит, не слушай эти бредни     | |||
| 16
    
        НеПридумалаНик 26.10.16✎ 17:09 | 
        (14) а по (11) вопросу просветите, пожалуйста? 
 (8) а тогда не будет ошибка продублирована "при системной обработке" и при ВызватьИсключение. Или Попытка перехватывает инициативу у системы? | |||
| 17
    
        Мыш 26.10.16✎ 17:10 | 
        (12) Сам такой.
 (13) На конфигуратор прав не будет, но код вызвавший ошибку увидят. За исключением содержащегося в "Выполнить", конечно. | |||
| 18
    
        Мыш 26.10.16✎ 17:11 | 
        (15) Зависит. На тонком клиенте.     | |||
| 19
    
        Лефмихалыч 26.10.16✎ 17:13 | 
        (18) не зависит. Запись в ЖР делается на сервере и от вида клиента вообще ни как нее зависит. Единственное, от чего зависит, будет ли событие записано в ЖР или нет,  - это настройки самого ЖР.     | |||
| 20
    
        Лефмихалыч 26.10.16✎ 17:14 | 
        (16) в подписке используй на здоровье. В случае (7) это бессмысленно, ибо хватит ВызватьИсключение.     | |||
| 21
    
        Мыш 26.10.16✎ 17:15 | 
        (19) Ты рассуждаешь от теории, в данном случае. Оно так должно быть. Но практика показывает другое.     | |||
| 22
    
        НеПридумалаНик 26.10.16✎ 17:15 | 
        (17) ну километровые тексты, которые содержатся в Выполнить() мне не хочется оборачивать Попытками, проще добавить процедуру с Попыткой с вызовом искомого Выполнить()... так что позиционирование на Выполнить() ничего не даст     | |||
| 23
    
        НеПридумалаНик 26.10.16✎ 17:18 | 
        (20) Спасибо, завтра займусь ?
 пс. не ссорьтесь с Мыш)) | |||
| 24
    
        Лефмихалыч 26.10.16✎ 17:18 | 
        (21) я только что проверил. В тонком клиенте запись в ЖР складывается автоматически вне зависимости от отладки. Даже, если ошибка произошла &НаКлиенте.     | |||
| 25
    
        Лефмихалыч 26.10.16✎ 17:19 | 
        (22) боже, какой бред...
 абсолютно нет ни какой разницы, какой длины код в Выполнить(). Вообще. Совсем. | |||
| 26
    
        Мыш 26.10.16✎ 17:20 | 
        (24) Ошибки прав доступа тоже? Это с ними такая закавыка.     | |||
| 27
    
        Лефмихалыч 26.10.16✎ 17:22 | ||||
| 28
    
        Лефмихалыч 26.10.16✎ 17:23 | 
        (26) с правами будет абсолютно точно то же самое, т.к. они тоже на сервер рассчитываютс, применяются и проверяются     | |||
| 29
    
        НеПридумалаНик 26.10.16✎ 17:25 | 
        (25) да там черт ногу сломит, каждая доработка в литры кофе выливается... еще и это туда пихать? и так трудно читаемый код     | |||
| 30
    
        Лефмихалыч 26.10.16✎ 17:28 | 
        при отсутствии прав в ЖР, как и следовало ожидать, пишется "Отказ в доступе".     | |||
| 31
    
        НеПридумалаНик 26.10.16✎ 17:29 | 
        (6) кстати, этот код в (6) покажет ошибку пользователю? или дополнительно сообщить нужно? (сейчас уже не могу проверить, только завтра, а выяснить сейчас хочется))))     | |||
| 32
    
        Лефмихалыч 26.10.16✎ 17:31 | 
        (31) и пользователю покажет, и в ЖР запишет, и выполнение прервет. Как любое другое исключение     | |||
| 33
    
        НеПридумалаНик 26.10.16✎ 17:32 | 
        (32) прямо камень с души...     | |||
| 34
    
        НеПридумалаНик 28.10.16✎ 13:49 | 
        (32) Спасибо, все замечательно работает. Ошибку регистрирует с моим текстом, даже более... еще и с значениями ЭлементыФормы, которые привели к ошибке     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |