Как зарегистрировать ошибку в 1с
(2) +1 А то недавно отправил ошибку по платформе 8.3.10. Так мне ответили, что рекомендуют обновиться до 8.3.12, а разработчики ситуацию, скорее всего, разбирать будут на 8.3.13.
И не забудьте указать все регистрационные номера поставок. А то бывает, что они неделю думают, прежде чем прислать письмо с отказом в регистрации ошибки и требованием выслать им код.
Ха. не факт, что зарегят ошибку)))
Вот только что долго и упорно переписывалась. упираются)))
Дескать, не ошибка вовсе.
Хотя там реальный косяк в методологии получения данных для отчета.
Я им конкретно строки кода привела.
Пофиг.
Такое впечатление, что отвечают клерки, а не разрабы.
(8) Это индивидуально. Я писал про ошибки в формировании регл. отчётности, отвечали и исправляли довольно быстро.
(7) Как-то я по поводу декларации по налогу на имущество имел счастье переписываться. Там при переводе с 01 на 03 счет (сдача в аренду) неправильно считается. Этапы:
1. В программе учет ведется в соответствии с ПБУ.
- Причем здесь ПБУ? ПБУ не запрещает передавать в аренду.
2. Учет сдачи в аренду не автоматизирован. Оформляйте ручными проводками.
- Ну и оформили ручными. Но декларация же неправильно заполняется.
3. У Вас релиз не последний.
- Ептыть, в новых релизах точно такая же декларация!
4. У нас ошибка не проявляется. Смоделируйте в демо-базе
ошибку.
- Вот Вам база, вот Вам две строки в коде, где данные берутся не на начало дня первого числа месяца, а на конец дня. Вот Вам исправленный кусок, который работает.
5. Мы зарегистрировали ошибку за номером .
Месяца 4 потом следил - ничего не изменилось. Дальше забил. Знаю, что при обновлениях в расчете авансов и в самой декларации эти злополучные две строки поменять.
Есть конечно вариант через франча продавить. Если это не божм-контора. Когда работал на франча, то гораздо проще все проходило. Или просто карта так легла.
(8) возможно твой вопрос очень сложный, а у них на первой линии поддержки вчерашние студенты сидят, которые бегают к грамотному человеку туда-сюда после каждого уточнения
На партнерку эффективней, но есть возможность:
1) идите в поддержку
2) ваша ошибка/предложение не является ошибкой/стоящим предложением, исправлять мы ее не будем и увидеть реализацию через несколько релизов.
Как-то обратился к разработчикам с вопросом ошибки в БП. И что вы думаете услышал. Вопрос: Вы кто? Мой ответ: специалист-консультант 1С. Ответ: когда будете ИП или представитель компании - пользователь программы 1С, тогда приходите с вопросами по программе. Опять же если соберутся например 4-5 компаний пользователей программы 1С и зададут вопрос по этой ошибке, при этом обновившись до последнего релиза, указав свои регистрационные данные, на сайте user1c@ru, только тогда мы, как разработчики, рассмотрим вопрос об ошибке и может быть его решим. Кстати на этом сайте, набрав свой код код, пользователи могут задавать вопросы и вправе ждать ответа. Так что дерзайте.
(8) [Я им конкретно строки кода привела.
Пофиг.
Такое впечатление, что отвечают клерки, а не разрабы]
Естественно! Письма 1-я линия смотрит - это не разработчики, а сопровожденцы и программный код им слать смысла нет.
Надо слать:
Воспроизведут - разрабам отдадут, не получится - запросят базу с ошибкой. Понимаете ситуацию?
(13) Больше скажу. Пока не воспроизведут - даже не побегут )). Это в других местах ищут черную кошку в черной комнате.
Сегодня продолжим рассматривать новый механизм платформы по отображения ошибок в 1С.
Ранее я показывал, как это в базе 1С выглядит со стороны пользователя, администратора и разработчика. А сегодня поговорим о сервисе регистрации ошибок.
Данная статья - текстовый вариант свежего видеоролика по теме.
Содержание
Введение ^
На чём мы это будем делать? Естественно, на 1С! И начнём прямо сейчас.
Для начала создадим новую базу для разработки. Назовём её "Сервис регистрации ошибок". Запускать её будем с версией 8.3.17. Так же сразу для удобства я сделаю себе хранилище разработки. И теперь можно разрабатывать.
Первое, что нам нужно в базе - создать новый HTTP-сервис. Назовём его "Основной Сервис". Укажем корневой URL. Пусть будет "main".
Теперь нам нужно добавить новый шаблон URL. Назовём его ПолучитьИнформацию. И в шаблоне укажем "/getInfo". Добавим в шаблон новый метод POST-метод с таким же названием и сразу создадим для него обработчик.
Публикация сервиса ^
В данном видео мы не будем рассматривать процесс установки сервера, публикации базы и так далее. По этой теме есть множество информации и публикация нашего сервиса ничем не отличается от других. По разворачиванию сервера могу посоветовать видео на канале Ильи Низамова. Лично я делал по этому видео: Смотрим на метод getInfo() ^
Я открою ту тестовую демо-базу, которую мы использовали в прошлой статье. Необходимо, чтобы в её настройках был указан наш сервис регистрации ошибок.
Откроем в демо-базе нашу обработку, которая будет просто совершать ошибку. Появилось новое окно об ошибке и мы можем перейти в отладку нашего сервиса.
Мы сейчас находимся в отладке на методе "ПолучитьИнформацию" ("getInfo"). Давайте посмотрим, что нам пришло в запросе. Для этого выполним метод Запрос.ПолучитьТелоКакСтроку().
Что мы видим? Этим запросом 1С говорит нам информацию о себе. Какая конфигурация, какая платформа и версия приложения. И далее 1С ожидает ответа от этого первого метода. Нужно ли действительно отправлять на сервис регистрации текущую ошибку? Давайте теперь сделаем так, чтобы наш метод отвечал "да".
Разработка метода getInfo() ^
Я подготовил простую функцию, которая поможет нам в этом. Она нужна для преобразования значений 1С в JSON.
Теперь создадим структуру ДанныеОтвета. В неё будем помещать передаваемые в качестве ответа данные. Комментарии к свойствам я буду брать из ИТС.
needSendReport - Булево.
Этот параметр говорит 1С, нужно ли дальше отправлять отчет об ошибке или сервис отказывается его принимать. В нашем случае всегда будет "Да".
UserMessage - Строка
В этот параметр можно передать текст, который будет показан пользователю в качестве дополнительной информации. Мы сюда поместим мотивирующую строку
"Чем быстрее разработчик узнает об ошибке, тем скорее она будет исправлена =)"
Так же есть ещё свойство dumpType - это тип дампа, который необходимо приложить к отчету об ошибке. Его мы сейчас рассматривать не будем.
Метод getInfo готов.
Обновим базу и снова сымитируем ошибку.
Мы в отладке. Посмотрим, как выглядят данные, которые мы даём в качестве ответа.
И её строковый вариант в формате JSON.
Смотрим метод pushReport() ^
В окне об ошибке мы видим нашу мотивирующую строку. Это значит, что метод getInfo сработал корректно и 1С готова к отправке отчета об ошибке.
Содержимое явно не строковое. Всё верно - в этом запросе 1С присылает нам файл-архив с отчётом об ошибке. В нём будет содержаться то, что мы рассматривали в прошлом видео - вся информация об случившемся исключении. Получим же его в виде двоичных данных с помощью метода ПолучитьТелоКакДвоичныеДанные().
Это и есть необходимый нам файл. И, фактически, наша цель достигнута - мы создали сервис, который получает отчёты об ошибках пользователей. Но пока что никак их не обрабатываем.
Разработка метода pushReport() ^
Для начала добавим регистр сведений. Каждый отчёт об ошибке будет сохранён в отдельную запись регистра. Добавим измерение. Значение в нём должно быть максимально уникальным, ведь запросы могут происходить часто. Поэтому сделаем его типом "УникальныйИдентификатор". Можно, конечно, сделать строковый тип с длиной достаточной для идентификатора, но мы же делаем просто прототип и сейчас не будем заморачиваться в таких тонкостях.
И так, у нас есть регистр с измерением. Сами данные отчета будут храниться в ресурсе с типом ХранилищеЗначения.
Теперь создадим методы для работы с регистром. Перейдём в его модуль менеджера. Вставим для красоты "стандартный" БСПшный текст с директивами и областями.
А так же процедуру по удалению записи регистра. Она нам понадобится позднее
Теперь обновим базу и зайдём в неё. У нас появился регистр, записей в нём пока нет.
Хорошо, перейдём в сервис регистрации. Вот наша запись регистра.
Посмотрим как он будет заполняться в отладке. Для этого поставим точку останова и снова вызовем ошибку в демо-базе.
В ресурсе "Содержимое" находится ХранилищеЗначения. Попробуем извлечь его методом Получить(). Видно, что данные там есть.
Отпускаем отладку. Запись в регистр добавилась.
Если сейчас нажать на неё повторно, то она снова отправит тот же самый отчёт об ошибке. И мы видим, что в регистре уже три записи.
Постобработка данных ^
Теперь у нас есть быстрый сервис, который просто пишет входящие данные в регистр. И нам нужно их как-то обрабатывать.
В нашем прототипе сервиса регистрации сделаем новый вид документов "ОтчетыОбОшибках". В них будут превращаться двоичные данные из нашего буферного регистра. В качестве прототипа нам будет достаточно получать содержимое основного текстового файла из архива. Выделим для него реквизит ТекстОтчета с неограниченной строкой.
И сразу поправим одну недоработку. Было бы удобно, если в буферный регистр будет писаться помимо самого файла ещё и дата, когда он был получен. Добавим в регистр дату и заполним.
Теперь у нас есть источника данных (регистр сведений) и приёмник (документ). Нам нужен инструмент, который будет брать записи регистра и создавать на их основе документы. Добавим новую обработку. Сделаем ей форму и основную команду, которая будет выполнять метод модуля обработки.
А вот уже в модуле обработки будет содержаться логика превращения записи регистра в документ.
Логика выполнения такая:
Сначала нам нужно выбрать накопленные записи регистра сведений. И каждую запись попытаться обработать. Если это не удастся, то сообщить об ошибке и заодно сделать соответствующую запись в журнале регистрации.
Сама обработка записи будет заключаться в следующем. Сначала мы извлечём двоичные данные во временный файл. Затем откроем чтение Zip-файла и извлечём его содержимое в специально подготовленный временный каталог. Как только удалось это сделать, мы откроем в текстовом документе файл "report.json". Этот файл содержит основные данные отчета об ошибке. Содержимое этого файла и есть наш отчёт.
Теперь, когда мы имеем нужные нам данные, создадим новый документ, заполним его ими и запишем в базу. А временные файлы удалим.
Если запись регистра успешно была обработана, то удалим её тоже. Она нам больше не нужна.
Под капотом код с прототипа:
У нас создались три документа. В каждом хранится содержимое файла report.json. И теперь такую обработку можно поставить на регламентное выполнение и она будет превращать накопленные в регистре отчёты об ошибках в документы.
Выводы ^
Мы разработали простой сервис регистрации ошибок и теперь понимаем, как работать с новым механизмом от 1С.
Данный прототип можно развивать до более сложного инструмента, который поможет в вашей компании обрабатывать ошибки в базах.
А далее мы рассмотрим более подробно извлечение содержимого из архива с отчётом об ошибке.
Понравилась статья? ^
Не будьте равнодушными! Поставьте лайк плюс, оставьте комментарий.
Не забудьте посмотреть видео по этой теме, в нём я наглядно показываю всё то, что говорится в статье: Серверные вызовы, которые нельзя вызывать
В этой статье речь пойдет об ошибках. Но не о тех, которые допускают программисты в коде, а о самой платформе. Да-да, разработчики платформы тоже ошибаются! Особенно это заметно при разработке под мобильные устройства - продукт еще сырой, поэтому ошибки встречаются сплошь и рядом.
К сожалению, сталкиваясь с ошибками платформы, большинство людей попросту не обращают на них внимания. Они вспоминают об 1С недобрым словом, и с мыслями “та они уже в курсе, в следующей версии поправят” продолжат работать. Надеюсь, после прочтения статьи таких программистов станет меньше. :)
Мы рассмотрим несколько реальных ошибок, примеры обращений в фирму 1С, а также то, как можно отслеживать исправление ошибки. Сразу скажу, что будут рассмотрены примеры для мобильной платформы. Впрочем, порядок регистрации для настольной платформы практически не отличается.
Для обращения по второму адресу нужно выполнить 3 простых пункта:
1. Указать версию платформы.
2. Кратко описать сценарий воспроизведения ошибки, и на каких устройствах она воспроизводится.
3. Приложить к письму сопутствующие файлы - базу данных или скриншот ошибки.
Рассмотрим несколько примеров обращений в тех. поддержку.
Пример 1. В управляемых формах есть возможность группировать элементы на разных страницах. На мобильной платформе это работает в точности, как и на настольной:
На скриншоте заголовки страниц размещены сверху. Однако если разместить их, например, слева, то начинаются проблемы. Вот, как это выглядит на настольной платформе:
А так - на мобильной:
Думаю, ошибка очевидна.
Начнем с подготовки базы. Может возникнуть вопрос - зачем, неужели недостаточно скриншотов? Давайте не забывать о том, что в 1С тоже работают люди. И учитывая то, что вы далеко не единственный разработчик, который к ним обращается, будет не очень культурно заставлять сотрудников самим создавать базу и воспроизводить вашу ошибку.
Создаем пустую базу, создаем форму в Общих формах. На форме рисуем простейший пример - 2 страницы с одной кнопкой на каждой из них.
Запускаем базу на мобильном устройстве, делаем скриншоты. Выгружаем базу в dt.
Теперь перейдем к написанию письма. Вот пример моего обращения:
Обратите внимание - не забудьте в письме указать версию мобильной платформы. Также не лишним будет указать устройство, на котором воспроизводится ошибка.
Спустя полчаса получаем ответ:
Обратите внимание на ссылки внизу. Первые две предназначены для определения приоритетов - чем больше человек сообщит о важности ее исправления, тем быстрее (теоретически) она будет исправлена. По крайней мере разработчики на партнерском форуме говорили, что обращают внимание на эти показатели.
Ссылка “Включить подписку” нужна для удобного отслеживания ошибки. Чтобы каждый раз не искать по словам, можно “подписаться” на ошибку, после чего она будет отображаться в разделе “Подписки”. Так этот раздел выглядит у меня:
Но это просто неудачный пример. В любом случае, рано или поздно ошибка будет опубликована и исправлена.
Рассмотрим еще один пример обращения.
Исходный код модуля:
Идем на сервис публикации ошибок, ищем нашу ошибку:
Ура! Теперь наша ошибка есть на сайте и мы можем отслеживать ее статус. В дальнейшем, при выходе следующих версий мобильной платформы, мы сможем отследить, в какой из версий он была исправлена.
Поменьше вам ошибок!
Вадим Невзоров, Одесса
Специальные предложения
Вторая моя попытка была отписаться по ошибкам в тестовой платформы. (Не работали критерии отбора в обычных формах журнала на 8.3.5.924). На что через 8 дней я получил ответ
P,S, А ошибку с отборами они к финальному релизу 8.3.5 исправили
(1) Aleksey_3, вот видите - даже демо базы могут отличаться. Поэтому старайтесь сразу отправлять им копию базы, чтобы у них не было другого выхода, кроме как признать ошибку. :)
Спасибо за замечание, статью уточнил.
Прочитал. На первый взгляд очень интересно. Вот для платформы было бы лучше какая-то автоматическая регистрация ошибок. Разработчик на платформе не будет ждать и надеяться что исправят.
Другое дело нужен какой-то простейший механизм чтоб регистрировалась информация при ошибке в конфигурации при работе пользователя. Как было бы хорошо (90% проблем можно сразу диагностировать): свернулось окно у пользователя, не туда нажал, не там запустил. Кто-то тут уже публиковал подобный механизм отсылки скриншотов экрана по почте с доп. информацией об ошибке.
Как бы на новой платформе 8.3.5 (с проверкой в коде версии, конечно) реализовать даже если выпустил простую обработку или отчет подобный функционал? Или это уже сильно осложнит первостепенную задачу?
Как то очень давно еще на версии 8.0 имел дело с их системой поддержки. Все, мне хватило. Их же баги исправляешь, как бесплатный бета-тестер, так все нервы выматают, пока признают, что ошибка есть.
Rustig; www2000; alest; WildFire; Prog1CZUP31; Дмитрий74Чел; Yashazz; j_rubin; nihfalck; Йожкин Кот; + 10 – Ответить
(3) bulpi, для этого и написана эта статья - чтобы выматывание нервов свести к минимуму. Самый полезный совет - это отправлять копию базы с ошибкой. Увеличивает скорость ответа и вероятность регистрации ошибки в разы.
Надо сразу приготовиться к отпискам и нервотрепке при написании письма на v8. Там у первой линии тех.поддержки задача отсеять максимум писем, чтобы даже не беспокоить разработчиков. Им не важна значимость проблемы, они не разработчики и даже не пользователи, они вообще про 1С слышали только то, что они в нем работают. Им до лампочки, партнер Вы или конечный пользователь. Их задача - Вас не услышать.
Например указания кода партнера им не достаточно, чтобы прочитать Ваше письмо, хотя партнеры, на мой взгляд, должны быть в приоритете. Узнать номер подписки партнера они и сами могут и её активность, им это - два щелчка мышкой. Они же все равно потом проверяют активность подписки, для них это повод отшить вопрошающего.
Реальный пример:
В типовом отчете ЗУП 3.0 есть список для отбора по сотрудникам. Начиная с определенного релиза появилась след. фигня (до обновления работало):
Если туда добавлять сотрудника добавляя строчки командой из контекстного меню - падает с ошибкой и вообще закрывается 1С. По кнопке подбор - все ОК, но по кнопке "подбор" открывается форма списка, которая лагает, хочется использовать ввод по строке.
Ответ из 1С:
"Это не ошибка, не надо пользоваться контекстным меню, пользуйтесь кнопкой "подбор"" - ****** ***** (много мата) как так? Это же первое правило - любые действия пользователя не должны приводить к критическим ошибкам. Ну отключите вы там контекстное меню, раз Вы так считаете.
Политика 1С по минимуму признавать свои ошибки.
Выход новых версий и редакций = сильный поток ошибок и большая нагрузка на разработчиков, а сейчас 1С не перестает нас удивлять сырыми новинками. У них и так полно работы. Такое отношение вызвано нехваткой ресурсов у 1С, но ***** ***** (очень много мата) как так, они заставили всех подписаться на ИТС и гребут помимо продаж коробок еще и абон плату со всей страны. 1С само виновато, что выпускает новинку за новинкой, надо было предвидеть такой поток вопросов и не оставлять партнеров у разбитого корыта.
(9) monkbest, не соглашусь. Вы сам, как разработчик, наверняка сталкивались с подобными ситуациями (когда Вас атакуют, как поддержку).
У меня очень большой опыт переписки со всеми инстанциям 1С, очень важную роль играет детальность описания проблемы и ее воспроизведение (вплоть до видео на приложеной базе).
Причем, это справедливо как для платформы, так и для конфигураций. Во всяком случае, порядка 95% обращений были приняты, 5% - это либо я проморгал (не ошибка), либо признано проектным поведением (с записью об неудобстве).
Но, конечно, времени на сие может уйти достаточно много. Что делать, таковы риски.
(11) BabySG, не соглашайтесь, дело Ваше. Я рассказал про свой опыт, Вы про свой. но Ваши слова как-то не конкретны.
Через сколько времени Вам отвечал в первый раз специалист, не бот, который говорил, что Ваше письмо принято, а специалист? Хотя бы в среднем? Сколько раз из скольки он задавал уточняющие вопросы? Через сколько времени приходила наконец помощь?
(14) monkbest, скорость ответа зависит от адреса (их минимум три, напоминаю, а еще есть другие адреса, которые совсем оперативные :)) ).
На КОРП поддержке ответ очень быстрый, затем тестподдержка, потом общая. Собственно, как и обещали :)
Пользуюсь КОРП поддержкой, т.к. "оплачена" :)
Либо находился способ обхода (кстати, весьма критическая проблема в кластере 1С), либо в приемлимые сроки выпускали обновление. Пока (тьфу-тьфу-тьфу) с критичекими проблемами, которые невозможно обойти, не сталкивались.
Им не важна значимость проблемы, они не разработчики и даже не пользователи, они вообще про 1С слышали только то, что они в нем работают.
Техподдержка 1С разбирается в типовых конфигурациях лучше чем большинство пользователей, да и чем многие разработчики. Они же ежедневно рассматривают сотни обращений, воспроизводят, разбираются.
А есть точное описание письма в техподдержку и их ответ? Не похоже Ваше описание ситуации на реальную.
(12) sergei2k, вот кусок письма. Раз для Вас тех.поддержка 1С - святые, никогда больше не пользуйтесь контекстным меню)))
Необходимо использовать кнопку "Подбор" а не контекстное меню для добавление строк в список элементов.
Если Вы хотите сообщить нам о Вашей оценке качества данного ответа, .
(16) monkbest,
Согласен, ответ странный.
Сообщил об оценке качества? :)
(19) sergei2k, нет, не сообщил))) я уже много времени потерял на написание письма, еще столько же потратить на жалобу.
Как интересно.
Судя по формату уведомления разработчики пользуются системой управления проектами Redmine. :)
Название reperr образовалось от report и error, произносится как рэпер.
Проект живет на GitHub.
Какие задачи решает reperr?
Как пользоваться?
Рассмотрим один из вариантов: допустим, что в роли баг-трекера выступает Jira. Также имеется некая информационная база, ошибки в которой решено перехватывать и отправлять баг-трекер.
Для начала необходимо создать и настроить служебную учетную запись Jira, от имени который reperr будет регистрировать ошибки. Для этой учетной записи потребуется создать токен. Он требуется для доступа к Jira API.
Токен генерируется тут:
В следующем окне нужно перейти в раздел "Безопасность":
Полученный токен нужно сохранить, он потребуется на одном из следующих шагов.
Затем нужно скопировать исходники проекта на ту машину, на которой он будет работать. Можно клонировать репозиторий или скачать архив из релизов.
Следующий шаг: указать в файле `src/appsettings.json` реквизиты подключения к вашему экземпляру Jira и обязательные параметры, например, задачи какого типа и с каким приоритетом создавать.
Вставить в браузер URL, ведущий к Jira API и дописать к нему issuetype, priority или status соответственно.
Из примера выше:
Ответы Jira API будут содержать исчерпывающую информацию.
После установки параметров нужно запустить проект. Сделать это можно по-разному: в докере и неправильным способом напрямую на OneScript.Web.
Я настоятельно рекомендую запускать правильным способом. Для этого в каталоге проекта нужно выполнить команду:
Само собой, движок docker и docker-compose должны быть установлены.
После запуска имеет смысл проверить, что веб-интерфейс открывается в обычном браузере.
Да нет никаких дашбордов) Но они когда-нибудь появятся!
Далее нужно указать в информационной базе ссылку на reperr, а также изменить другие параметры регистрации ошибок, если это требуется. Для применения настроек 1С попросит перезапустить текущий сеанс.
Окно с настройками открывается из меню "Функции для технического специалиста" -> "Стандартные" -> "Управления настройками обработки ошибок":
Можно считать, что первоначальная настройка выполнена. Чтобы проверить работоспособность того, что мы настроили, воспроизведем какую-нибудь ошибку. Самое простое - написать внешнюю обработку с обращением к чему-нибудь несуществующему.
Что произойдет, если ошибка возникнет много раз и у нескольких пользователей? Неужели в трекере появится много одинаковых задач?
Это поведение будет зависеть от выбранной точки интеграции. Если точка интеграции - Jira или Redmine, то не появится. В RabbitMQ и Sentry отправляется каждый отчет.
Проверим, как выглядит результат в Jira. На скриншоте ниже видно, что создана задача REP-53, со стеком и скриншотом. Если при отправке ошибки из 1С прикрепить произвольный файл, то и он отобразится во вложениях.
Опыт эксплуатации и особенности
Решение стабильно работает как в Windows, так и в Linux, дает минимальную нагрузку, работает без сбоев месяцами.
На какие особенности следует обратить внимание:
Решение будет полезным как службе поддержки, так и конечным пользователям. В контуре тестирования \ разработки оно тоже пригодится.
Всем, кто уже перешел на 8.3.17 или 8.3.18, можно смело пользоваться. Я буду очень благодарен за обратную связь, новые идеи, и, конечно, пул-реквесты.
Технические подробности
Этот раздел привожу для тех, кому интересны внутренности приложения.
reperr разработан на документации к платформе. Другие публикации (первая, вторая) на IS хорошо дополняют документацию, поэтому повторяться не буду.
Ядро reperr выполняет три функции:
- получает информацию об ошибках, которые возникают в подключенных базах
- запрашивает прикладную часть о необходимости регистрации ошибки
- получает, распаковывает и сохраняет в локальном каталоге отчеты об ошибках (архивы с report.json, скриншотами и другими файлами, которые прикрепил пользователь)
"Прикладная" часть отвечает за:
- отображение информации в веб-интерфейсе
- сохранение информации о возникших ошибках и отчетов по этим ошибкам во внутреннем формате
- вычисление "отпечатков" ошибок
- принятие решения об отправке ошибки
- отправку ошибок в точку интеграции
Архитектура проекта далека от идеальной, но уже сейчас позволяет относительно быстро реализовать свою точку интеграции. Для этого нужно:
- создать свой класс и реализовать в нем методы программного интерфейса
- добавить свой ключ в файл настроек appsettings.json
- немного дополнить класс, который обрабатывает файл настроек.
Если тема окажется актуальной и интересной, я могу создать отдельную публикацию на тему подключения новых точек интеграции, на примере СППР. Какой issue наберет большее количество лайков, на том и сделаю.
PS: в недрах проекта спрятана пасхалка. Ее не так уж сложно найти, нужно совсем немного постараться. Поверьте, это стоит того)
Вы (или пользователь) работаете в 1С. Вдруг – ошибка. Что делать?
Конечно самое правильное – проанализировать — что за ошибка 1С, ее причины, провести в отладчике 1С часик-другой, чтобы выяснить что к чему.
Что делать, если это невозможно? Нет времени, нет желания, недостаточно знаний. Вот несколько очень вредных советов по быстрому исправлению ошибок в 1С.
-
, в котором произошла ошибка 1С
- Функция этого модуля, в котором произошла ошибка 1С
- Номер строки этого модуля, в котором произошла ошибка 1С.
Также Вы можете нажать на кнопку Конфигуратор, и тогда будет открыт конфигуратор, этот модуль, эта функция на этой строке, после чего Вы можете провести исправление ошибки 1С.
Хитрости понимания ошибок
Как только что было сказано, в тексте ошибки 1С очень часто следствие выполненных ранее неверных действий.
Например, очень распространенный текст ошибки 1С гласит:
Значение не является значением объектного типа (КакоетоИмя)
Что бы это значило.
А это значит следующее:
- Есть переменная
- В программе предполагается, что значение переменной – справочник или документ или что то другое подобное – в общем у него есть реквизиты(поля)
- В программе делается попытка обратиться к полю этого объекта
- Однако ошибка 1С состоит в том, что по какой-то причине в предыдущих строчках программы эта переменная получила значение, у которого нет никаких реквизитов (полей), например значение «Неопределено».
Исправление ошибок 1С, которые чаще встречаются
Конечно же все ошибки, которые могут быть в 1С — мы сейчас рассмотреть не можем.
Попробуем кратко перечислить ошибки 1С, которые бывают часто, а также вредные советы по быстрому исправлению ошибок 1С.
-
Если переменная имеет тип булево (то есть принимает значения Истина и Ложь), то к ней можно обращаться вот так:
Если ИмяПеременной Тогда
Такое написание аналогично:
Если ИмяПеременной = Истина Тогда
В клиент-серверном варианте 1С часть модулей выполняется на сервере. Мало того, некоторые функции одного и того же модуля могут выполняться на сервере или на клиенте.
При этом может возникнуть ошибка 1С, что из функции работающей на сервере идет обращение к функции, которая выполняется на клиенте. В этом случае будет такая ошибка 1С.
Аналогично предыдущей ошибке 1С. Если в программе прописано обращение к функции, которая находится в общем модуле, то это выглядит так:
ИмяМодуля.ИмяФункции();
Если при этом в свойствах модуля установлено, что он выполняется на клиенте, а мы обращаемся из тех строчек программы, которые выполняются на сервере – то будет ошибка 1С
«Переменная не обнаружено – ИмяМодуля»
Под словом «метод» понимается функция/процедура в модуле этого объекта.
Это значит в тексте запроса ошибка 1С. Текст запроса определяется в программе обычно раньше (то есть выше), чем выполняется. Поищите текст запроса в этом модуле (глазами выше или по поиску слова «ВЫБРАТЬ»).
Данная ошибка 1С означает или ошибку 1С в тексте запроса или ошибку 1С настроек СКД (часто в группировках, в выбранных полях, в условном форматировании).
Попробуйте начать с настроек, сильно упростив их. Проверьте, что в выбранных полях и условном форматировании — в списке нет полей, отмеченных крестиком.
Читайте также: