О чем эта статья
Эта статья продолжает цикл «Первые шаги в разработке на 1С». Прочитав ее, вы узнаете:
- Куда обращаться в случае подозрения на ошибку платформы, 1C.EDT и PostgreSQL 1C?
- Что и как писать в вашем обращении?
- Где и как посмотреть существующие ошибки?
Применимость
В статье рассматривается порядок регистрации ошибок платформы «1С:Предприятие» 8, 1C.EDT и PostgreSQL 1C. Информация актуальна для текущих релизов указанных продуктов.
Как в 1С регистрировать ошибки
Сегодня речь пойдет об ошибках. Но не о тех, которые допускают программисты в коде, а об ошибках самой платформы, среды разработки 1C.EDT и отдельной сборки PostgreSQL 1C.
К сожалению, сталкиваясь с ошибками в указанных продуктах, большинство программистов не обращают на них внимания. Они вспоминают 1С недобрым словом, и с мыслями «да они уже в курсе, в следующей версии поправят» продолжают работать. Надеемся, после прочтения статьи таких программистов станет меньше.
В этой статье мы рассмотрим несколько реальных ошибок, примеры обращений в фирму 1С, а также то, как можно отслеживать исправление ошибки.
Примеры будут рассмотрены для мобильной платформы. Впрочем, порядок регистрации для настольной платформы практически не отличается.
Для регистрации ошибок существует три адреса:
- v8@1c.ru
- testplatform@1c.ru
- betaplatform@1c.ru
Первый адрес – v8@1c.ru. Это первая линия поддержки и консультаций по продуктам. Также используется для вопросов по типовым решениям, лицензированию и т.п. Важно отметить, что все продукты, по которым принимаются обращения на этот адрес, должны иметь статус финальных. Кроме того, перед обращением следует проверить, не была ли зарегистрирована данная ошибка ранее.
При расследовании проблемы, в случае если на демо-базе не удастся воспроизвести ваш проблемный кейс, на данный адрес могут попросить прислать выгрузку базы, на которой наблюдается проблема. Если у вас нет возможности предоставить базу, на которой воспроизводится проблема (не разрешает заказчик, нет доступа к конфигуратору, нет прав, у базы слишком большой размер и т.д.), то максимально подробно смоделируйте вашу ситуацию на демо-базе. Рекомендуем написать очень подробный текстовый сценарий воспроизведения вашей проблемной ситуации со скриншотами. Если есть возможность записать все в формате видео, то запишите – лишним точно не будет!
Учитывая то, сколько обращений поступает в фирму 1С за один день, скорость ответа может быть не мгновенной, т.к. ваше обращение некоторое время будет находиться в очереди, после которого вам должно прийти сообщение о том, что письмо принято и переадресовано разработчикам, а сам ответ от разработчиков поступит позже.
Для отправки писем на этот адрес нужно иметь действующую подписку ИТС.
Второй адрес – testplatform@1c.ru. Представляет куда больший интерес. Он предназначен только для регистрации обращений, связанный с тестовыми версиями платформы (ошибки в финальных версиях, не воспроизводящиеся в крайних тестовых версиях также не регистрируются).
Скорость ответа через данный канал на порядок выше – на письмо, отправленное в будний день, в течение часа приходит ответ и регистрируется ошибка.
Также не требуется подписка ИТС, поэтому Вы можете свободно регистрировать ошибки, обладая учебной версией платформы. Единственное условие – платформа должна быть тестовой.
Следует отметить, что в отличие от v8@1c.ru, по данному адресу не предоставляются никакие консультации, а также не принимаются ошибки типовых конфигурации, если они не являются ошибками платформы.
Для обращения по этому адресу нужно выполнить следующие действия:
- Указать версию тестовой платформы. Понять, тестовая версия или нет, можно, просто заглянув на releases.1c.ru и убедившись, что данная версия находится в статусе как версия для ознакомления.
- Максимально подробно по шагам описать сценарий воспроизведения ошибки. Идеально, если вы запишите это в формате видео. Здесь рекомендуется описывать воспроизведение ошибки так, чтобы человек, который будет пытаться её повторить, сделал бы это без уточняющих вопросов. Если вы работаете в коллективе, попробуйте ваше описание отдать коллеге и понаблюдать, сможет ли он воспроизвести ошибку по вашему сценарию без обращения к вам. Если да – работа сделана! Если нет, то нужно попытаться более качественно подготовить информацию об ошибке. И не забываем, что если в вашем сценарии платформа сваливается в дамп, обязательно отправляйте и его тоже.
- Указать сведения о рабочем окружении, на котором воспроизводится ошибка: вариант развертывания базы (файловый/клиент-серверный), тип клиента, версию ОС, СУБД, если ошибка по мобильному клиенту/платформе, то название устройства, и т.д.
Третий адрес, betaplatform@1c.ru, следует использовать при обнаружении ошибки в предварительной бета-версии продукта, до выпуска тестового релиза. Как правило, этот адрес используется для конструктивной обратной связи по новому функционалу бета-продукта.
Правила обращения на указанный адрес аналогичны обращениям на testplatform@1c.ru с возможным указанием каких-то неудобств в продукте, отсутствующей на ваш взгляд функциональности, сценариев работы и т.д.
Также отметим, что при регистрации ошибок через любой из этих трех каналов важно соблюдать принцип: «одна ошибка – одно обращение». Не следует в одном письме описывать сразу несколько ошибок, на такое обращение Вы получите отказ.
Кроме того, выше речь шла о платформе, но ровно то же самое справедливо и для 1С:EDT и PostgreSQL 1C. Обращения по указанным каналам регистрируются по тем же самым правилам.
Нам кажется, что будет уместно дать еще один небольшой совет по этой теме в ключе планирования перехода с одной версии платформы на другую.
Допустим, ваш продуктовый контур работает на платформе 8.3.14, а вы планируете в недалеком будущем поднять версию платформы до актуальной. На момент написания этой статьи финальная версия платформы 8.3.16, а версия для ознакомления (тестовая) 8.3.17. На какой версии тестировать переход? На финальной 8.3.16 или на ознакомительной 8.3.17?
Правильнее, с нашей точки зрения, для тестирования перехода использовать именно ознакомительный старший тестовый релиз 8.3.17 и вот почему. Ваше тестирование на реальных данных, на реальных рабочих кейсах, возможно, выявит какие-то проблемные кейсы, о которых вы хотели бы сообщить отделу разработки. В этом случае, как описано выше, вы отправляете обращение на testplatform@1c.ru. Если проблема подтвердится, то с большой долей вероятности можно утверждать, что в финальной версии 8.3.17, она уже будет исправлена.
Если же вы будете тестировать переход на финальной 8.3.16, то эти же самые действия вы будете делать позже, при переходе на финальную 8.3.17, но время реакции на ваше обращение, скорее всего, будет выше, т.к. зарегистрировать обращение через testplatform@1c.ru уже не получится и вы будете ждать вашей очереди на v8@1c.ru, оставаясь при этом на версии 8.3.16.
Примеры обращений в тех. поддержку 1C
Рассмотрим несколько примеров обращений в тех. поддержку.
Пример 1. В управляемых формах есть возможность группировать элементы на разных страницах. На мобильной платформе это работает в точности, как и на настольной:
На скриншоте заголовки страниц размещены сверху. Однако если разместить их, например, слева, то начинаются проблемы.
Вот, как это выглядит на настольной платформе:
А так – на мобильной:
Думаю, ошибка очевидна.
Начнем с подготовки базы. Делается это для того, чтобы не вынуждать сотрудников 1С самих создавать базу и воспроизводить указанную ошибку. Ведь нужно учитывать, что Вы далеко не единственный разработчик, который к ним обращается.
Создаем пустую базу, создаем форму в Общих формах. На форме рисуем простейший пример – 2 страницы с одной кнопкой на каждой из них.
Запускаем базу на мобильном устройстве, делаем скриншоты. Выгружаем базу в dt.
Теперь перейдем к написанию письма. Вот пример моего обращения:
Тема: Мобильная платформа: неверное отображение вкладок
Текст письма:
Добрый день!
Мобильная платформа: 8.3.5.52
В мобильной платформе не корректно отображаются страницы с вариантом отображения «Закладки слева». Воспроизводится на Samsung Galaxy S2 и S4.
Во вложении – пример базы, в которой возникает ошибка.
—
С уважением, Вадим Невзоров
Вложения:
Страницы.dt
Скриншот страниц.jpg
Не забудьте в письме указать версию мобильной платформы. Также не лишним будет указать устройство, на котором воспроизводится ошибка.
Спустя полчаса получаем ответ:
Это означает, что письмо было принято, и сейчас ошибка рассматривается. Спустя 10 минут приходит еще одно сообщение:
Отлично, ошибка зарегистрирована! Более того, у нас есть ее номер. Что с ним делать дальше?
На сайте 1С есть специальный раздел «Публикация ошибок» – https://bugboard.v8.1c.ru/ (доступен только тем, у кого есть подписка ИТС). В этом разделе можно отслеживать исправленные и неисправленные ошибки для разных версий настольной и мобильной платформы.
Страница «Поиск ошибок» предназначения для удобного поиска нужной ошибки. Ошибки можно искать по коду, номеру обращения (если обращение было через адрес v8@1c.ru) и по словесному описанию.
Например, в предыдущих версиях мобильной платформы на моем телефоне Samsung Galaxy S4 была неприятная ошибка – при попытке сделать фото с помощью метода СредстВамультимедиа.СделатьФотоснимок(), устройство полностью уходило в перезагрузку.
Попробуем найти ошибку по строке «Galaxy S4».
Как видим, такая ошибка уже зарегистрирована, и была исправлена в тестовой версии платформы. Помните, прежде чем регистрировать ошибку, сначала попробуйте найти ее в этом разделе – возможно, ее регистрировали ранее.
Обратите внимание на ссылки внизу. Первые две предназначены для определения приоритетов – чем больше человек сообщит о важности ее исправления, тем быстрее (теоретически) она будет исправлена.
Ссылка «Включить подписку» нужна для удобного отслеживания ошибки.
Чтобы каждый раз не искать по словам, можно «подписаться» на ошибку, после чего она будет отображаться в разделе «Подписки».
Так этот раздел выглядит в нашем случае:
Вернемся к нашей зарегистрированной ошибке. Попробуем найти ее по коду из письма:
Видим, что ошибка с таким номером не найдена. Такое бывает, так как информация об ошибках появляется не сразу.
Причем в некоторых случаях процесс может очень затянуться – приведенная в данном примере ошибка была зарегистрирована 19 мая, однако до сих пор (на момент написания статьи – 10 июля) не выложена на сайт.
Но это просто неудачный пример. В любом случае, рано или поздно ошибка будет опубликована и исправлена.
Рассмотрим еще один пример обращения.
Пример 2. Как известно, в мобильной платформе 8.3.5 добавили средства работы с SMS-сообщениями.
Можно отправлять и получать сообщения, смотреть содержимое, прикрепленные файлы (для MMS) и т.п.
При этом нельзя читать сообщения, хранящиеся в памяти телефона – можно только подписаться на появление новых сообщений, пока работает 1С.
Делается это так:
ПолучательСообщений = Новый ОписаниеОповещения(«ПолучениеСообщения», ЭтотОбъект);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ПолучательСообщений);
Метод ПодключитьОбработчикSMSСообщений подключает обработчик ожидания, который срабатывает в момент прихода нового сообщения.
Есть и другой метод – ОтключитьОбработчикSMSСообщений, который выполняет обратное действие.
Проблема только в том, что он не работает – после вызова этого метода, обработчик всё равно продолжает вызываться при получении сообщений.
Создаем простейший пример – форму с двумя кнопками подключения и отключения обработчика SMS-сообщения.
Исходный код модуля:
&НаКлиенте
Процедура ПодключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения(“ПолученоСообщение”, ЭтаФорма);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры
&НаКлиенте
Процедура ОтключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения(“ПолученоСообщение”, ЭтаФорма);
СредстваТелефонии.ОтключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры
&НаКлиенте
Процедура ПолученоСообщение(Сообщение, Параметры) Экспорт
Предупреждение(Сообщение.Текст);
КонецПроцедуры
Пишем письмо:
Тема: Мобильная платформа: не работает отключение обработчика получения сообщений
Текст письма:
Добрый день!
Мобильная платформа: 8.3.5.58
Платформа игнорирует отключения обработчика ожидания для получения смс сообщений. После отключения, при приходе смс обработчик продолжает Вызываться.
Во вложении – пример мобильной БД, в которой возникает ошибка. Воспроизводится на Samsung Galaxy S2 и S4.
—
С уважением, Вадим Невзоров
Вложения: СМС сообщения – отключение обработчика.dt
Получаем ответ:
Идем на сервис публикации ошибок, ищем нашу ошибку:
Теперь ошибка есть на сайте, и мы можем отслеживать ее статус. В дальнейшем, при выходе следующих версий мобильной платформы, мы сможем отследить, в какой из версий он была исправлена.
Возможно, после прочтения статьи у Вас возникнет вопрос – зачем это все? Ведь у фирмы 1С есть свой отдел тестировщиков, и рано или поздно ошибку выявят и исправят.
Однако, согласитесь, нет ничего сложного в том, чтобы потратить 15 минут на составление письма, которое поможет 1С быстрее исправить недочеты в продукте. И вместе с тем хочется, чтобы данный продукт становился все лучше и лучше.
За день до написания этой статьи вышла новая версия мобильной платформы – и вот результат:
В заключение отметим, что существует официальная партнерская конференция, в которую имеют доступ сотрудники фирм франчайзи и другие специалисты. Часто начинающие разработчики и их старшие коллеги пытаются зарегистрировать ошибку, создавая пост в данной конференции. Но по правилам данный форум не является ресурсом для разбора и регистрации ошибок. Поэтому для детального расследования ошибки, как мы и писали ранее, свое сообщение следует отправлять в службу технической поддержки пользователей на электронную почту v8@1c.ru. Только в этом случае вам:
- Гарантированно ответят специалисты фирмы «1С»
- Совместно с вами подготовят всю нужную информацию для прояснения и диагностирования ситуации
- В случае признания ошибки направят ваше обращение разработчикам для исправления ошибки.
Иногда специалисты фирмы 1С могут зарегистрировать ошибку на основе обсуждений темы в форуме. Но данная регистрация, во-первых, не гарантирована и нигде не регламентирована, во-вторых, если такая ошибка и будет зарегистрирована, то она считается внутренней и не будет опубликована на соответствующем баг-трекере и вы не сможете отслеживать по ней информацию. Поэтому для расследования ошибки свое сообщение лучше и правильнее отправлять на v8@1c.ru.
Скорее всего, у вас уже возник вопрос, для чего же тогда вообще нужен партнерский форум, раз там нельзя официально регистрировать сообщения об ошибках? В первую очередь он нужен для обмена опытом, идеями и мнениями между специалистами в области поддержки и разработки на платформе «1С:Предприятие 8».
То есть если вам хочется обсудить какой-то вопрос, с которым вы столкнулись на практике, или поделиться своим опытом или мнением, или найти путь решения проблемы, через обсуждение с коллегами, то форум – это правильное место, где все это можно сделать, т.к. вопросы адресуются ко всем его активным участникам. Именно поэтому такой формат и не предполагает никаких регламентных ответов и регламентной процедуры регистрации ошибок.
Поэтому призываем относиться с пониманием к просьбе сотрудников фирмы «1С» регистрировать сообщения об ошибках не через форум, а через названные выше каналы регистрации. Ну и, конечно, поменьше вам ошибок!
Но никакие ошибки не смогут помешать нам продолжать знакомство с возможностями платформы «1С:Предприятие 8», и в следующей статье мы вернемся к изучению управляемых форм.
Вадим Невзоров,
г. Одесса
PDF-версия статьи для участников группы ВКонтакте
Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.
pult — реализация на Python сервиса регистрации ошибок для 1С:Предприятие 8
Сервис осуществляет регистрацию отчетов об ошибках, отправляемых 1С:Предприятие. См. https://its.1c.ru/db/instrpoly3#content:1190:hdoc, https://its.1c.ru/db/v8320doc#bookmark:dev:TI000002262, https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-otobrazheniya-oshibok/.
Сервис реализован как Python скрипт для mod_wsgi. Скрипт использует SQLite3 для хранения информации об ошибках. Полученные отчеты хранятся в zip файлах без изменений.
При регистрации отчетов об ошибках в автоматическим режиме ведется учет уникальных ошибок (по тексту ошибки).
При регистрации новой ошибки есть возможность отправить email списку получателей. Через веб интерфейс можно просмотреть зарегистрированные ошибки и соответствующие им отчеты. Для ошибок можно устанавливать метки. Пример использования меток — если метка выставлена, значит ошибка обработана/зарегистрирована.
Если по ранее зарегистрированной пользователем ошибке будет повторно отправлен отчет с этого же компьютера, то изменится значение в поле «Число отчетов» в форме ошибки, пользовательское описание ошибки будет добавлено к предыдущему описанию. Сам отчет будет хранится в единственном экземпляре. Если в отчете не передана информации о компьютере или же в отчет был приложен файл, то отчет будет зарегистрирован и сохранен.
Описание структуры проекта
init.py — создание SQLite базы
База создается в папке, заданной в переменной DATA_PATH
файла prefs.py
. Для получения доступа из веб сервера к базе необходимо задать переменные APACHE_USER
и APACHE_GROUP
в файле prefs.py
значениями, которые использует веб сервер. Папке, указанной в DATA_PATH
необходимо установить владельца и группу теми же значениями, которые использует веб сервер.
prefs.py — настройки сервиса
В переменной CONFIGS
задаются имена конфигурации и их версий, по которым принимаются отчеты об ошибках. Переменная имеет тип словарь (dict).
Ключ — имя конфигурации, значение — список, состящий из 2-х списков.
- 1-й список — список допустимых версий. Если список пустой, то отчеты не принимаются. Пустая строка — принимаются любые версии. Неполное задание версии допускается.
- 2-й список — список email, которым будет отправлено сообщение о регистрации новой ошибки. Если список пустой, то почта для этой конфигурации не отправляется.
После внесения изменений в файл может потребоваться перезапуск веб сервера, чтобы настройки применились.
Если переменная ONLY_IN_CONF
равна True
, то не регистрируются ошибки во внешних обработках и внешних отчетах.
В переменный BLACKLIST
и WHITELIST
задаются черные и белые списки доступа в виде IP адресов или их маски.
pult.wsgi — основной скрипт
В скрипте реализованы следующие страницы веб интерфейса
s/errorsList — просмотр списка зарегистрированных ошибок
Для того чтобы просмотреть список ошибок, по которым был отправлен отчет, необходимо перейти по ссылке http://your.domain/pult/s/errorsList (в соответствии с указанной ниже настройке сервиса). Список ошибок имеет вид таблицы, в которой:
- N ошибки – порядковый номер ошибки.
- Ошибки, errors – содержание ошибки.
- Конфигурация – конфигурация, в которой возникла ошибка.
- Расширения, extentions – установленные расширения.
- Метка – текстовая информация об ошибке с дополнительной информацией о пользователе и времени последнего изменения метки.
Доступен фильтр на конфигурации.
При нажатии на номер ошибки в табличной части открывается страница reports/N со списком отчетов, на ошибку с номером N.
errorsList — просмотр списка зарегистрированных ошибок
Страница идентична предыдущей, но поле Метка доступно только для просмотра и отсутствует фильтр на конфигурацию.
s/delete/N — просмотр
Удаление ошибки с номером N.
s/reports/N — просмотр
Страница содержит информацию об ошибке и список отчетов по ошибке. Информация об ошибке отображается в таком же объеме как на странице s/errorsList.
Список отчетов содержит следующие колонки: дата, пользователь, IP адрес, с которого пришла ошибка, версия платформы и т.д. В поле «Число отчетов» показывается только отчетов
было отправлено по ошибке с номером N с одного компьютера (дублирующиеся отчеты). Если в отчете есть вложенный файл, то в колонке с числом отчетов будет фраза – Файл/скриншот (отчеты с файлами, скриншотами и дополнительными данными, сериализованными в JSON не группируются).
При нажатии на гиперссылку в столбце «Число отчетов» откроется zip архив, в котором будет отчет об ошибке, полученный из 1С:Предприятие.
reports/N — просмотр
Страница идентична предыдущей, но поле Метка у ошибки доступно только для просмотра.
s/settings — текущие настройки сервиса
В настройках указаны содержимое переменной CONFIGS файла с настройками сервиса prefs.py, в которой задаются имена конфигурации и их версий, по которым принимаются отчеты об ошибках.
s/clear — удаление отчетов неподдерживаемых версий и конфигураций
Производится удаление ошибок и отчетов, которые не соответствуют критериям регистрации отчетов, приведенных в переменной CONFIGS
файла prefs.py
.
Данная страница может быть использована для очистки базы при снятии конфигурации платформы 1С:Предприятия или версии конфигурации с поддержки.
Также выполняется удаление отчетов и ошибок, полученных с IP адреса, внесенного в черный список. При этом не удаляются ошибки, на которые добавлена метка.
Установка
- Подключить модуль mod_wsgi из пакета libapache2-mod-wsgi-py3
- Скопировать файлы pult.wsgi, prefs.py, init.py в папку /var/www/wsgi/pult.
- Внести настройки экземпляра сервиса в prefs.py
- Запустить init.py
- Зарегистрировать приложение WSGI в apache2.conf
WSGIScriptAlias /wsgi/pult /var/www/wsgi/pult/pult.wsgi
Ограничение доступа
Для некотрых разделов сервиса предусмотрена возможность ограничить доступ. Такие разделы начинаются с префикса s/
. Чтобы ограничения доступа заработали нужно скопировать файл auth.wsgi
в папку /var/www/wsgi/
, перечислить в нём пользователей и их пароли, а в настройки apache добавить следующий раздел.
<Location "/wsgi/pult/s/">
AuthType Basic
AuthName "Restricted area"
AuthBasicProvider wsgi
WSGIAuthUserScript /var/www/wsgi/auth.wsgi
Require valid-user
</Location>
Пример содержимого файла auth.wsgi
USERS = {
"test" : "test"
}
def check_password(environ, user, password):
if user in USERS:
if password == USERS[user]:
return True
return False
return None
Развитие Механизма отображения ошибок
Новости > Инсайд новости платформы 1С8
Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.
Фирма 1С работает над улучшением этой ситуации. Вот что 1С хочет дать различным целевым группам, работающим с её продуктами:
- Конечные пользователи: если произошла ошибка — 1С хочет показать пользователю подсказку для исправления ошибки (если пользователь может ее исправить сам) или предоставить пользователю удобный способ сообщить об ошибке специалистам (в техподдержку и т.п.).
- Прикладные разработчики: 1С хочет дать прикладным разработчикам возможность обрабатывать все ошибки, возникающие в приложении, и показывать пользователям полезную для них информацию.
- ИТ-отделы компаний клиентов, а также компании, осуществляющие внедрения продуктов: им 1С хочет дать возможность быстрого получения информации об ошибках и возможность проинформировать пользователя о том, куда обращаться для решения проблемы.
Чтобы реализовать вышеперечисленное в 1С сделали в платформе ряд нововведений. Перечислим, для каких целевых групп они предназначены.
Для всех
Фирма 1С разделила ошибки по категориям:
- НарушениеПравДоступа
- ОшибкаДоступаКЛокальномуФайлу
- ОшибкаСети
- ОшибкаРаботыСПринтером
- ОшибкаКомпиляцииВстроенногоЯзыка
- ОшибкаВоВремяВыполненияВстроенногоЯзыка
- ОшибкаИспользованияВстроенногоЯзыка
- ИсключениеВызванноеИзВстроенногоЯзыка
- ОшибкаСистемыВзаимодействия
- ОшибкаНастроекКомпоновкиДанных
- ОшибкаСеанса
- ОшибкаХранимыхДанных
- ПрочаяОшибка
Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.
Для конечных пользователей
Изменен внешний вид формы сообщения об ошибке; в частности, в зависимости от категории ошибки показывается соответствующая иконка и текст:
Для прикладных разработчиков
У приложения добавлен обработчик ОбработкаОтображенияОшибки, который вызывается перед тем, как сообщение об ошибке будет показано пользователю.
У объекта ИнформацияОбОшибке есть метод ЯвляетсяОшибкойКатегории(). Одна ошибка может одновременно принадлежать к нескольким категориям.
Разработчики конфигураций получают возможность (например, исходя из категории ошибки) менять текст и форму отображения ошибки, показываемые пользователю, а также получают возможность отправки информации об ошибке (например, на сервис техподдержки).
У глобального контекста добавлено свойство ОбработкаОшибок нового типа МенеджерОбработкиОшибок. МенеджерОбработкиОшибок предоставляет доступ к функциям для обработки ошибок. В частности, у него есть методы:
1. ПредставлениеОшибкиДляПользователя(<ИнформацияОбОшибке>) — возвращает текст ошибки, понятный пользователю (в виде форматированной строки).
2. СообщениеОбОшибкеДляПользователя(<ИнформацияОбОшибке>) — возвращает текст сообщения, которое рекомендуется показать пользователю (в виде форматированной строки). Текст содержит информацию о произошедшей ошибке и инструкцию по ее возможному исправлению.
Доступна как программная возможность формирования отчета об ошибке, так и интерактивная, из формы ошибки. Программно можно добавлять в отчет свои вложения и объекты. Отчет об ошибке можно сохранить на диск. Если в форме «Управление настройками ошибок» задан адрес сервиса регистрации ошибок – отчет можно отправить в этот сервис.
Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».
Для администраторов
Как было сказано выше, разработчик может программно отрабатывать обработку ошибок (писать код обработки отображения) в режиме конфигуратора.
Администратор же системы может декларативно настраивать тексты и другие моменты отображения ошибок в режиме предприятия (устанавливая настройки в информационной базе). Есть готовая форма для декларативной настройки шаблонов сообщений об ошибках; она вызывается в приложении через системное меню, пункт «Функции для технического специалиста» (бывший «Все функции», подробнее о его переименовании здесь), раздел «Стандартные».
Форма «Управление настройками ошибок»:
Настройки, в частности, позволяют делать сообщения об ошибках более понятными и полезными для пользователя:
Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.
Если Вы хотите заказать абонентское обслуживание или прочие услуги Вашей 1С. Пожалуйста, ознакомьтесь с прайс-листом и оформите заявку через контактную форму.
Copyright©, «Программист 1С в г.Минске», 10.01.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Веб-приложение для автоматической обработки ошибок информационных баз, работающих на платформе 1С:Предприятие 8.3.17+
Содержание
- Введение
- Возможности
- Установка и запуск
- Настройка приложения
- Подключение информационных баз 1С
- Особенности и ограничения
- Планы по развитию
- Обратная связь и доработка
- Зависимости
- Авторы
Введение
Название reperr
образовано от report и error, произносится как рэпер :v:
Веб-приложение создано для автоматической обработки ошибок, которые возникают в информационных базах на платформе 1С:Предприятие версий 8.3.17+.
Позволяет автоматически регистрировать ошибки во внешнем баг-трекере, с указанием имени и версии конфигурации, стека вызовов, скриншотом окна и прочей информацией, которая передается клиентским приложением.
Возможности
- Сохранение запросов информации об ошибках, которые направляет клиентское приложение.
- Распаковка поступающих отчетов об ошибках.
- Автоматическая регистрация ошибок в баг-трекере (Jira, Redmine).
- Отображение Ид задачи из баг-трекера прямо в окне 1С, если такая ошибка уже была зарегистрирована там ранее.
- Запрет повторной регистрации одной и той же ошибки.
- Отправка сообщений с информацией об ошибке в точку обмена RabbitMQ.
- Отправка сообщений с информацией об ошибке в Sentry.
Установка и запуск
Запуск в docker-контейнере
- клонировать текущий репозиторий
- внести изменения в
src/appsettings.json
(подробнее) - внести изменения в
docker-compose.yml
- выполнить команду
'docker-compose up -d'
- убедиться, что веб-интерфейс открывается в браузере
- подключить информационные базы 1С (подробнее)
Посмотреть лог контейнера можно с помощью команды docker logs -f <ID>
, где <ID>
— идентификатор контейнера, который выводит команда docker container ps -a
Ручная установка и запуск
- распаковать OneScript.Web в любой локальный каталог
- клонировать текущий репозиторий
- внести изменения в
src/appsettings.json
(подробнее) - в каталоге
src/
выполнить командуopm install -l
для установки локальных зависимостей - из корневого каталоге проекта запустить
OneScript.WebHost.exe
(см. каталог, в который был распакован OneScript.Web на первом шаге) - убедиться, что веб-интерфейс открывается в браузере
- подключить информационные базы 1С (подробнее)
Настройка приложения
Все параметры приложения расположены в файле src/appsettings.json
.
Подразделы DataStorage
и Integrations
содежат списки поддерживаемых хранилищ данных и баг-трекеров соответственно. Приложение считывает эти настройки в момент запуска и использует первый активированный способ ("enabled": true
). Для того, чтобы изменения вступили в силу, достаточно просто перезапустить приложение / контейнер.
Подключение информационных баз 1С
URL, по которому доступно приложение, необходимо указать в информационных базах, которые требуется подключить к сервису.
Расположение настроек:
Функции для технического специалиста -> Стандартные -> Управление настройками обработки ошибок -> Адрес сервиса регистрации ошибок.
Требования
- OneScript.Web 0.7.0 (на других версиях работоспособность не проверялась)
- 1С:Предприятие 8.3.17+ (в более младших версиях отсутствуют необходимые возможности платформы)
Особенности и ограничения
- настройки регистрации ошибок хранятся внутри информационной базы, поэтому может потребоваться ручное отключение регистрации ошибок в копиях информационных баз.
- на данный момент механизм регистрации ошибок не предоставляет практически никакой информации об информационной базе, в которой произошла ошибка.
- ошибки регистрируются в баг-трекере от имени владельца API-ключа, а не от лица пользователя информационной базы.
- веб-интерфейс пока почти полностью состоит из заглушек.
- какие-либо ограничения доступа на уровне веб-приложения отсутствуют. Любой, кто сможет открыть веб-интерфейс, сможет просматривать всю информацию.
- отправка присоединенных файлов в точку обмена RabbitMQ пока не поддерживается.
Планы по развитию
- настройка приложения с нуля через веб-интерфейс
- передача API-ключей для баг-трекеров через переменные окружения
- поддержка YouTrack, СППР ред. 1 и 2 в качестве баг-трекера
- гибкая настройка параметров регистрации ошибок
- определение необходимости регистрации ошибки
- кастомизация сообщения, которое выводится пользователю
- перевод приложения на библиотеку entity
- поддержка хранения данных во внешней БД
- аутентификация пользователей веб-приложения
Обратная связь и доработка
Опишите ваш вопрос \ пожелание в виде Issue.
Разработка ведется по git-flow, PR крайне приветствуются.
Архитектура приложения позволяет относительно легко добавить свой баг-трекер и чуть сложнее — собственное хранилище данных (планируется перевод приложения на entity).
Зависимости
- OneScript.Web
- json
- 1connector
- RabbitMQ
Спасибо авторам и контрибьюторам!
Авторы
- Дмитрий Овчаренко
Open Source Agenda is not affiliated with «Reperr» Project. README Source: ovcharenko-di/reperr
Bober
09.12.13
✎
10:24
shuhard
09.12.13
✎
10:25
(0) [На данный момент (в ходе бета-тестирования) ресурс доступен для специалистов партнерских организаций, имеющих статус франчайзи.]
франчи — зло
Aleksey
09.12.13
✎
10:26
И опять «для избранных». Т.е. тежеяйца что и сейчас, вид сбоку.
И зачем?
Bober
09.12.13
✎
10:27
(2) не, пока идет обкатка на партнерах, потом для простых.
Aleksey
09.12.13
✎
10:27
(3) Откуда дровишки, что будет доступен всем?
IamAlexy
09.12.13
✎
10:29
(2) а зачем этот сервис НЕ франчам?
Aleksey
09.12.13
✎
10:30
(5) А зачем на мисту тащить эту новость и выкладывать в открытый раздел? Не ужели у франчей нет своего форума и закрытого раздела?
Fragster
модератор
09.12.13
✎
10:30
меня не пустило, правда я и не франч
shuhard
09.12.13
✎
10:30
(5) вопрос стоит иначе, зачем франчи стране ?
ifso
09.12.13
✎
10:31
(5) и вообще зачем сервис? оптимизация штата тестировщиков?
Sabbath
09.12.13
✎
10:33
(8) чтобы внедрять 1с в массы
Bober
09.12.13
✎
10:37
(5) чтобы не засорять партнерский форум, обсуждение и отслеживание будет идти там.
gae
09.12.13
✎
10:38
(11) Не заметил там возможности обсуждения
gae
09.12.13
✎
10:43
Вот бы еще туда ошибки типовых конфигураций выложили
ifso
09.12.13
✎
10:51
(13) может еще фамилии/должности тех, кто эти ошибки на(ш)кодил/неоттестировал?)
Sabbath
09.12.13
✎
10:57
(14) и домашний адрес
ifso
09.12.13
✎
11:30
(15) кактус — он и есть кактус
Лаврентий Берия
09.12.13
✎
11:32
(0) Думаю, что такими темпами скоро сами программисты будут писать типовые конфигурации — «с миру по нитке» — по модулям или по кускам кода. Что, отдела тестирования нормального нету у разработчиков 1С что ли? Так что, может, и отдел разработки упразднить?
xReason
09.12.13
✎
11:33
У меня уже есть ошибки из 8.3.4 , а выложить некуда
Bober
09.12.13
✎
12:14
(18) v8@1c.ru
acsent
09.12.13
✎
12:20
как я понял сервис не для сбора инфы об ошибках, а для отслеживания конкретных ошибок.
Не совсем то что мы так ждали годами
dj_serega
09.12.13
✎
12:41
(20) так оно может быть будет развиваться
Lama12
09.12.13
✎
12:49
(1) Так и хочется не цензурно сказать «пи де …».
Kupogun
09.12.13
✎
13:02
(8) они фирме 1с нужны.
если бы не франчайзеры, то коробки с 1с продавались бы в разы хуже.