Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Журнал регистрации - нет инфы об объекте и модуле в описании ошибки

Журнал регистрации - нет инфы об объекте и модуле в описании ошибки
Я
   НеПридумалаНик
 
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) Спасибо, все замечательно работает. Ошибку регистрирует с моим текстом, даже более... еще и с значениями ЭлементыФормы, которые привели к ошибке


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует