reperr - автоматическая регистрация ошибок для 8.3.17+

01.03.22

Функциональные - Управление проектом (PMO, EPM)

Представляю вашему вниманию приложение для автоматической регистрации и обработки ошибок, которые возникают при работе в информационных базах на платформе 1С:Предприятие 8.3.17+

reperr - приложение на OneScript.Web, которое задействует механизмы платформы 1С 8.3.17+ по автоматической обработке ошибок. С его помощью можно прямо из окна 1С можно создать задачу в Jira или Redmine, а также отправить сообщение об ошибке в Sentry или RabbitMQ.

Название reperr образовалось от report и error, произносится как рэпер.

Проект живет на GitHub.

Какие задачи решает reperr?

reperr помогает отправлять информацию об ошибках в баг-трекер прямо из 1С. Пользователь, не выходя из программы, нажимает в системном окне кнопку "Отправить" и ошибка сразу регистрируется в трекере, со скриншотом, стеком вызовов и прочей информацией, которая нужна для расследования проблемы и ее решения.

Как пользоваться?

Рассмотрим один из вариантов: допустим, что в роли баг-трекера выступает Jira. Также имеется некая информационная база, ошибки в которой решено перехватывать и отправлять баг-трекер.

Для начала необходимо создать и настроить служебную учетную запись Jira, от имени который reperr будет регистрировать ошибки. Для этой учетной записи потребуется создать токен. Он требуется для доступа к Jira API. 

Токен генерируется тут:

 

В следующем окне нужно перейти в раздел "Безопасность":

 

 

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

Затем нужно скопировать исходники проекта на ту машину, на которой он будет работать. Можно клонировать репозиторий или скачать архив из релизов.

Следующий шаг: указать в файле `src/appsettings.json` реквизиты подключения к вашему экземпляру Jira и обязательные параметры, например, задачи какого типа и с каким приоритетом создавать.

 

 
 Как узнать идентификаторы типов задач / приоритетов / статусов в Jira ?

 

После установки параметров нужно запустить проект. Сделать это можно по-разному: в докере и неправильным способом напрямую на OneScript.Web.

Я настоятельно рекомендую запускать правильным способом. Для этого в каталоге проекта нужно выполнить команду:

docker-compose up

Само собой, движок docker и docker-compose должны быть установлены.

 

 

После запуска имеет смысл проверить, что веб-интерфейс открывается в обычном браузере.

 

 
 Почему такой скудный интерфейс? Где, собственно, дашборды?

 

Далее нужно указать в информационной базе ссылку на reperr, а также изменить другие параметры регистрации ошибок, если это требуется. Для применения настроек 1С попросит перезапустить текущий сеанс.

Окно с настройками открывается из меню "Функции для технического специалиста" -> "Стандартные" -> "Управления настройками обработки ошибок":

 

Можно считать, что первоначальная настройка выполнена. Чтобы проверить работоспособность того, что мы настроили, воспроизведем какую-нибудь ошибку. Самое простое - написать внешнюю обработку с обращением к чему-нибудь несуществующему.

Теперь при возникновении ошибки в системе отобразится кнопка "Отправить отчет", а при ее нажатии появится надпись "Отчет отправлен". Обратите внимание на то, что место отображения кнопки "Отправить отчет" зависит от настроек обработки ошибок.

 

 

После нажатия на кнопку "Отправить" система сообщает: "Отчет отправлен".

 

 

Что произойдет, если ошибка возникнет много раз и у нескольких пользователей? Неужели в трекере появится много одинаковых задач?

Это поведение будет зависеть от выбранной точки интеграции. Если точка интеграции - Jira или Redmine, то не появится. В RabbitMQ и Sentry отправляется каждый отчет.

 
 Почему так? Можно подробнее?

 

Чтобы проверить, как отрабатывает такой сценарий, необходимо снова воспроизвести ту же самую ошибку. В этот раз появится более информативное сообщение о том, что ошибка уже зарегистрирована, с указанием номера, а кнопка "Отправить" не отобразится.

 

 

Проверим, как выглядит результат в Jira. На скриншоте ниже видно, что создана задача REP-53, со стеком и скриншотом. Если при отправке ошибки из 1С прикрепить произвольный файл, то и он отобразится во вложениях.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опыт эксплуатации и особенности

Решение стабильно работает как в Windows, так и в Linux, дает минимальную нагрузку, работает без сбоев месяцами.

На какие особенности следует обратить внимание:

  • все настройки обработки ошибок кочуют вместе с копиями информационной базы. Это приводит к тому, что все копии одной ИБ будут стучаться по той ссылке, которая была указана в момент создания копии. Платформа 1С не передает в отчете по ошибке адрес информационной базы, поэтому reperr не сможет понять, откуда конкретно пришел запрос.
  • сейчас в платформе нет возможности переопределить надпись "Отчет отправлен". Это приводит к тому, что при отправке отчета о новой ошибке пользователь не сможет сразу увидеть, под каким номером она была зарегистрирована. Единственный способ - воспроизвести ошибку еще раз. Я уже направил пожелание на доработку веб-сервиса разработчикам платформы 1С.
  • веб-интерфейс reperr примитивен и не предоставляет практически никаких возможностей, кроме просмотра информации. Лично мне имеющихся возможностей пока хватает, но развиваться есть куда.

Решение будет полезным как службе поддержки, так и конечным пользователям. В контуре тестирования \ разработки оно тоже пригодится.

Всем, кто уже перешел на 8.3.17 или 8.3.18, можно смело пользоваться. Я буду очень благодарен за обратную связь, новые идеи, и, конечно, пул-реквесты.

 

Технические подробности

Этот раздел привожу для тех, кому интересны внутренности приложения.

reperr разработан на OneScript.Web. Почему именно так? Есть две причины, и главная из них - мне очень хотелось изучить движок и его возможности. Вторая причина - хотелось остаться внутри экосистемы 1С. Все-таки это продукт, который подразумевает тесное взаимодействие с платформой 1С и только с ней. Разрабатывать такой проект на Node.js было бы занимательно, но не логично.

reperr состоит из двух условных частей: ядра и слоя прикладной логики.

Ядро - это реализация веб-сервиса, спецификация которого опубликована в документации к платформе. Другие публикации (первая, вторая) на IS хорошо дополняют документацию, поэтому повторяться не буду.

Ядро reperr выполняет три функции:

  • получает информацию об ошибках, которые возникают в подключенных базах
  • запрашивает прикладную часть о необходимости регистрации ошибки
  • получает, распаковывает и сохраняет в локальном каталоге отчеты об ошибках (архивы с report.json, скриншотами и другими файлами, которые прикрепил пользователь)

"Прикладная" часть отвечает за:

  • отображение информации в веб-интерфейсе
  • сохранение информации о возникших ошибках и отчетов по этим ошибкам во внутреннем формате
  • вычисление "отпечатков" ошибок
  • принятие решения об отправке ошибки
  • отправку ошибок в точку интеграции

Архитектура проекта далека от идеальной, но уже сейчас позволяет относительно быстро реализовать свою точку интеграции. Для этого нужно:

  • создать свой класс и реализовать в нем методы программного интерфейса
  • добавить свой ключ в файл настроек appsettings.json
  • немного дополнить класс, который обрабатывает файл настроек.

Если тема окажется актуальной и интересной, я могу создать отдельную публикацию на тему подключения новых точек интеграции, на примере YouTrack или СППР. Какой issue наберет большее количество лайков, на том и сделаю.

PS: в недрах проекта спрятана пасхалка. Ее не так уж сложно найти, нужно совсем немного постараться. Поверьте, это стоит того)

ошибки servicedesk onescript 1script oscript onescript.web reperr rabbitmq sentry jira redmine 8.3.17 8.3.18

См. также

Управление проектом (PMO, EPM) Пользователь Платформа 1С v8.3 Россия Управленческий учет Платные (руб)

Продукт "1С:Предприятие 8. ERP+PM Управление проектной организацией 2" разработан на основе типовой конфигурации "ERP Управление предприятием 2" с сохранением базового функционала и использует все преимущества технологической платформы "1С:Предприятие" версии 8.3, обеспечивающей масштабируемость, открытость, простоту администрирования и конфигурирования. Продукт предназначен для поддержки управленческой деятельности научно-исследовательских и проектно-изыскательских институтов, инжиниринговых компаний, конструкторских бюро, управляющих и инвестиционных компаний, а также других проектно-ориентированных предприятий и организаций.

32000 руб.

17.02.2016    35011    7    0    

5

OneScript Программист Бесплатно (free)

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    1457    Evil Beaver    11    

24

OneScript Программист Бесплатно (free)

OneScript – это скриптовый движок для автоматизации всего и вся. О том, как OneScript помогает в разработке скриптов на языке 1С, пойдет речь в статье.

10.10.2024    2665    ardn    2    

7

Инструментарий разработчика OneScript Программист Руководитель проекта Бесплатно (free)

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

23.09.2024    645    0    stopa85    4    

5

Управление проектом (PMO, EPM) Работа с интерфейсом Рабочее место ServiceDesk, HelpDesk Пользователь Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Представляю вашему вниманию свою версию доски Канбан. Решение создано на управляемых формах в виде расширения. Я делал его максимально автономным, чтобы была возможность использования практически в любой конфигурации. Единственный объект, требующий сопряжения с основной конфигурацией – это справочник Пользователи. Эту разработку можно использовать как для отслеживания прогресса выполнения проектов, так и для учета текущих задач и времени их выполнения.

1 стартмани

28.08.2024    1460    13    umah    4    

7

Групповая разработка (Git, хранилище) OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    3791    vkrivov@yandex.ru    8    

19

Управление проектом (PMO, EPM) Руководитель проекта Платформа 1С v8.3 ИТ-компания Управленческий учет Абонемент ($m)

Полная трансформация в работе ваших команд. Цель публикации: Создание единого инструмента коммуникаций и ведения проекта по разработки ПО. Задачи, которые решает данная программа: Избавиться от большого и не интегрированного количества инструментов: excel, jira, wrike, redmine и т.д. Вся команда работает в одном окне. Кому полезна: Руководителям проектов по разработке ПО, Владельцам продуктов, Скрам мастерам, Участникам команды разработки.

1 стартмани

01.07.2024    1413    6    user1930767    2    

7

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    5564    bayselonarrend    5    

61
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Senator_I 199 04.02.21 15:09 Сейчас в теме
Штука очень удобная, подтверждаю! Сразу регистрируется в баг- трекере и остается только назначить разработчику для исправления.
2. artbear 1563 04.02.21 18:00 Сейчас в теме
(0) А отправка в sentry со скриншотами или без?
3. ovcharenko.di 95 04.02.21 19:33 Сейчас в теме
4. itriot11 96 09.02.21 11:52 Сейчас в теме
5. Aletar 06.06.21 11:12 Сейчас в теме
А если нет возможности использовать docker, как будет правильно развернуть в проде на windows-сервере?
6. ovcharenko.di 95 09.06.21 11:10 Сейчас в теме
(5) так проще простого! На странице проекта описано.
Можно теоретически и службу создать, но я лично не пробовал. Если будете создавать - дайте знать, как получилось.
7. Kruzya 15.04.22 15:21 Сейчас в теме
Добрый день, репозиторий с Гитхаба был удален. Можете предоставить актуальную ссылку на продукт?
8. ovcharenko.di 95 15.04.22 15:22 Сейчас в теме
(7) добрый день! поищите форки, пожалуйста

аккаунт с репозиториями я еще рассчитываю восстановить
9. Kruzya 15.04.22 15:29 Сейчас в теме
(8) поиском по Гитхабу ничего не находит, в этом и проблема. Форков будто никто и не делал...
А можете архивом куда-нибудь загрузить пока?
10. ovcharenko.di 95 15.04.22 15:39 Сейчас в теме
11. artbear 1563 15.04.22 15:54 Сейчас в теме
(8) вот этот вроде бы последний https://github.com/oshabanov/reperr/network
Kruzya; ovcharenko.di; +2 Ответить
Оставьте свое сообщение