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

См. также

1С:УНФ+РМ Управление проектной фирмой

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

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

55600 руб.

17.03.2022    11170    2    0    

6

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1568    bayselonarrend    3    

38

TCP прокси-сервер хранилища конфигурации 1С

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

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    3007    kamisov    17    

60

Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript

OneScript Бесплатно (free)

Думаете, на OneScript неудобно создавать сложные инфраструктурные приложения? Ошибаетесь. Благодаря фреймворку ОСень за последний год экосистема библиотек, упрощающих написание собственных приложений, существенно выросла. Расскажем о самых передовых технологиях OneScript. Спойлер: будет много рефлексии, мета-аннотаций, желудей, напильников и дубов с завязями.

21.11.2023    3262    NikitaIvanchenko    16    

46

Библиотека создания клиент-серверных приложений для сценарного языка OneScript

Инструментарий разработчика Работа с интерфейсом OneScript Россия Бесплатно (free)

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    2067    ahyahy    8    

32

Гибкий Канбан для 1С: Документооборот 8, редакция 2.1

Документооборот и делопроизводство (СЭД) Управление проектом (PMO, EPM) Платформа 1С v8.3 1С:Документооборот Россия Абонемент ($m)

В данном Канбане, благодаря динамически создаваемым объектам на форме, каждый пользователь может под себя настроить порядок вывода и состав колонок статусов задач.

5 стартмани

10.07.2023    3901    26    Mattakushi    8    

8

Процессная модель внедрения. НЕ КАНБАН и AGILE

Управление проектом (PMO, EPM) Бизнес-анализ Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

05.07.2023    1742    DenisErmolaev    7    

9

Подсистема "Служба поддержки Redmine"

Управление проектом (PMO, EPM) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подсистема "Служба поддержки Redmine". Сделана на расширении. Позволяет отправлять заявку из 1С в сервис-деск Redmine. Использует Rest-API Redmine. Поддерживает полноценный редактор Markdown для оформления заявки.

1 стартмани

06.05.2023    3136    10    henr1ck    1    

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

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