gifts2017

Фиксатор ошибок

Опубликовал Олег Валуйский (waol) в раздел Программирование - Практика программирования

Как идея.
Пользователи не всегда могут точно описать ошибку, а иной раз и вообще про нее забыть. А разбираться с ней придется, возможно, уже вкупе с корректировкой данных, да еще и в авральной ситуации.

Посему придумался вот такой справочник фиксации ошибок программы.
В спорных местах модулей добавляется вызов

глНоваяОшибкаПрограммы(Идентификатор,ОписаниеОшибки1, РабочаяДата(),ТекущееВремя(),контекст)


где Идентификатор - понятное название модуля, контекст - передается для случаев работы
с модулями форм документов или справочников.

Чтобы встроить:
    открыть МД файл конфигуратором
    скопировать справочник, процедуру глНоваяОшибкаПрограммы(...)
    из ГМ, и добавить кусок кода в процедуру ПриНачалеРаботыСистемы
    (задав там нужное имя пользователя).

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1196872939 5,62Kb
25.09.09
5
.1196872939 5,62Kb 5 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сhe Burashka (CheBurator) 05.12.07 21:26
Ошибки времени выполнения фиксируются в журнале регистраций.
Опять же - что мешает юзеру в 1Клик мышью отправить скриншот с ошибкой программисту? см. у меня [Agent007]
2. Евгений Мартыненков (JohnyDeath) 06.12.07 10:46
Как правильно заметил Че: всё фиксируется в ЖР. Но парсить его, чтоб найти то, что ты ищешь - утомительная задача. Можно сразу обрабатывать события записи в ЖР. Для этого нам поможет 1с++ и его класс "Перехватчик" http://www.1cpp.ru/docum/html/Hooker.html#id18 ;)
3. Олег Валуйский (waol) 06.12.07 13:32
речь идет не о тех ошибках, которые идут в ЖР.
Эта приблуда пригодится для сообщений о некотором неправильном поведении данных.
Например, в результате некоторой обработки д.получится некоторый массив данных, который д.обладать определенными свойствами. Для доп. контроля - мы пишем код для проверки этих свойств и результаты проверки при необходимости загоняем в этот справочник.
4. Евгений Мартыненков (JohnyDeath) 06.12.07 14:33
(3) чё-т смутно понял что ты хочешь сказать. Может пример какой-нибудь выложишь? Или статейку забабацаешь?
5. Олег Валуйский (waol) 06.12.07 17:26
4 хм пример - пожалуй
Значит идет загрузка данных из программы БанкКлиента. (она выгружает обороты р/с и вложенные секции с документами.)
У меня обработка заполняет два документа: в одном пишется общая сумма оборота по р/с за день
в другом - расписаны в таблице документы со всей сопутствующей информацией.
В итоге - когда мы получаем оба документа - сравниваем сумму оборота по счету, и сумму по всем документам. Она м. не совпадать как минимум в двух случаях:
- ошибка формирования файла выгрузки банк-клиентом
- где то непорядок в коде обработки текста этого файла

При этом никаких ошибок естественно в ЖР не пойдет. А вот данные будут некорректные.


Собственно, на этом примере эта идея и возникла. Но вообще, пораскинув мозгами, решил, что надо было бы придумать это раньше
6. Олег Валуйский (waol) 06.12.07 17:28
7. Евгений Мартыненков (JohnyDeath) 07.12.07 11:07
(5) ну если я правильно тебя понял, то это что-то вроде Юниттестирования.
Здесь также может помочь 1с++ и её команда: посмотри FuncTest http://1c.alterplast.ru/functest/ (только там сначала надо поразбираться немного ;) )
8. Олег Валуйский (waol) 07.12.07 13:58
(7) да - интересная штука видимо, если вчитаться )) я мало общался с 1с++,
думаю, если буду развивать эту идею, то поразбираюсь поподробнее.

но - насколько я понял - суть моей идеи в том, что тестировании происходит одновременно с функционированием рабочей базы, а не отдельно. То есть просто по всей программе расставляются этакие звоночки, капканчики и сообщают разработчику обо всем подозрительном. Чем тут может помочь 1с++ - пока не совсем понимаю.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа