|
|
|
Ведение лога | ☑ | ||
|---|---|---|---|---|
|
0
Stepa86
21.08.08
✎
09:48
|
Хочу сделать лог в 1Ске (8.1.11) кто делал? Какие могут быть трудности? Пока идея - в регистр сведений писать при каждом событии и особенно в обработке исключений...
|
|||
|
1
Stepa86
21.08.08
✎
09:49
|
Блин, а почему не было выбора v7 или v8? Можно перенести?
|
|||
|
2
Скользящий
21.08.08
✎
10:00
|
Выбор есть, это у тебя зрение плохое.
|
|||
|
3
Stepa86
21.08.08
✎
10:06
|
Я знаю, что он есть и где должен быть, но при создании ветки не было, я думал из-за того, что у меня фильтр по темам v8 стоит, а тут такая засада =(
Но хотелось бы по теме... =) |
|||
|
4
Stepa86
21.08.08
✎
11:03
|
Никто не ведет логи в системе? или всех устраивают штатные средства???
|
|||
|
5
Sammo
21.08.08
✎
11:11
|
Можно использовать запись лога в стандартный журнал регистрации. См.
ЗаписьЖурналаРегистрации (WriteLogEvent) |
|||
|
6
Stepa86
21.08.08
✎
11:21
|
"Средствами встроенного языка не могут записываться системные события, записываемые при записи объектов, удалении и т.д. "
значит я не смогу записать в лог ошибки, которые возникли при записи??? |
|||
|
7
Qvz
21.08.08
✎
11:39
|
Штатный журнал в 8.1 почти ничем не отличается от 7.7 - тот же сплошной файл, поиск в котором занимает очень много времени.
В реализация своего журнала не вижу никакой сложности. 1. Плоский регистр сведений с нужными ресурсами (Объект, его представление, Пользователь, ДатаВремя...). 2. Подписка на нужные события (Запись, проведение,...) нужных объектов |
|||
|
8
Stepa86
21.08.08
✎
11:48
|
(7) я и не говорю, что сложно, меня интересуют подводные камни... главная задача этого регистра, чтоб можно было отследить из-за чего произошла ошибка, а не кто и когда проводил такой то документ. В идеале - по регистру можно определить ошибки, произошедшие на сервере при регламентном задании...
|
|||
|
9
Stepa86
21.08.08
✎
11:53
|
Кто знает, как отрабатывает вложенный отлов ошибок, типа:
Попытка Попытка Исключение Попытка Исключение КонецПопытки КонецПопытки Попытка Исключение КонецПопытки Исключение КонецПопытки ? Куда должно передаваться управление? в ближайшее исключение, или в последнее??? |
|||
|
10
Qvz
21.08.08
✎
11:56
|
(8) в 1с 8.1 нет возможности глобально установить свой обработчик исключений.
Если я правильно понял, то необходимо отловить ошибки кода (вернее ошибки тестирования), то тут либо исполнять весь код в Попытке и в исключении писать в лог. Но это геммор, либо обязатель пользователей сообщать об ошибках с принтскрином. |
|||
|
11
Qvz
21.08.08
✎
11:57
|
(9) Вложенный блок ошибок отрабатывает корректно. Т.е. передает управление в тот вложенный блок, где произошла ошибка.
|
|||
|
12
ptiz
21.08.08
✎
11:59
|
Со штатным журналом 8.1 работать практически невозможно - тормозит по-черному.
Запись в регистр плоха тем, что каждое такое событие 1С автоматом отмечает в своем журнале. Лучше всего напрямую писать в таблицу регистра сведений средствами SQL (если говорить про клиент-сервер). Тогда и 1С ничего лишнего писать не будет и анализировать можно из 1С и данные не потеряются. Только лень разбираться с представлениями полей и т.п. :) |
|||
|
13
Qvz
21.08.08
✎
12:01
|
(12) в конфигураторе запись в штатный журнал регистрации можно отключить.
|
|||
|
14
Stepa86
21.08.08
✎
12:03
|
(10) во-во сейчас занимаюсь тем, что в ключевые функции попытку добавляю, опять же хотелось, чтоб у пользователя не окно с ошибкой было, а сообщение "тут все нае@@улось, вы пока работайте, программисту отправлено письмо, как он разберется, проблема будет решена..."
|
|||
|
15
Stepa86
21.08.08
✎
12:08
|
(7) сохраняю на Объект, представление итд, а структуру ИнформацияОбОщибке(), но не знаю как себя поведет эта структура - ошибок нет =(
|
|||
|
16
GenV
21.08.08
✎
12:08
|
(14) Можно попробывать выдавать такое сообщение через службу сообщений видов после получения ошибки в попытке, а не через 1С. Но все равно все ошибки так отловишь.
|
|||
|
17
Stepa86
21.08.08
✎
12:12
|
Может сделать какую нить чудо процедуру:
Процедура ВыполнитьПроцедуру(Текст) Попытка Выполнить(Текст) Исключение ЗаписатьВЛог(); КонецПопытки; КонецПроцедуры И вызывать ее для всех процедур (естественно ее доработать надо для передачи параметров и для функции тоже сделать) |
|||
|
18
Qvz
21.08.08
✎
12:15
|
(17) Это будут дополнительные тормоза.
Выполнить(...) выполняет код медленнее, чем обычный. Да и переписывать все вызовы через "ЧудоПроцедуру" не меньший труд, чем написать там же попытки. |
|||
|
19
Sammo
21.08.08
✎
12:27
|
(12) В 8.1 журнал намного лучше работает, чем в 8.0. Кстати, пробовали периоды выбирать.
Имхо, есть 4 варианта: справочник, регистрсведений, журнал регистрации, внешнее хранилище Для решения - чего выбирать - необходимо для начала определеиться - какая информация будет писаться в лолг. Примерный объем и т.д. (9) управление передается дальше. Кстати, вложенные Попытки рекомендую использовать вельми осторожно. + см реквизит ВызватьИсключение |
|||
|
20
Stepa86
21.08.08
✎
12:31
|
(19) сейчас пишется в регистр: ДатаВремя, Пользователь, НомерЗаписи, Комментарий (то что я напишу при записи в лог), ИнформацияОбОшибке() - 5 реквизитов
|
|||
|
21
Sammo
21.08.08
✎
12:36
|
(20) Объект, например? Ссылка на объект, в котором произошла ошибка
|
|||
|
22
Stepa86
21.08.08
✎
12:40
|
(21)ИнформацияОбОшибке (ErrorInfo)
Свойства: ИмяМодуля (ModuleName) ИсходнаяСтрока (SourceLine) НомерСтроки (LineNumber) Описание (Description) Причина (Cause) Описание: Предназначен для представления структурированной информации об ошибке (исключении). Мне кажется этого достаточно для определения объекта, в котором произошла ошибка, а ссылку я передаю в комментарии (код на элемент, если это справочник или документ) - почти наверняка эта инфа юудет выгружаться в текстовый файл, а там могут возникнуть проблемы с ссылками |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |