Новое отображение ошибок в 1С

Содержание

Сегодня давайте рассмотрим развитие механизма отображения ошибок в 1С.

Содержание

Подготовка

Где почитать? ^

Многие после прочтения были воодушевлены. Естественно, ведь наконец-то мы сможем не только работать с этим окном, но и получать от пользователей полноценный отчет об ошибке!

И вот, в версии 8.3.17 мы можем видеть "новое о платформе"

Тем, кому будет интересно самому подробнее погрузиться в этот механизм, можно прочитать на ИТС здесь и здесь

Где и как тестировать? ^

Я выбрал пункт с файлом DT. Вот прямая ссылка на скачивание. Естественно, нужен доступ на users:

Сделаем простую непредвиденную ошибку в коде. Просто попытаемся присвоить в зарезервированную переменную "Неопределено":

Далее будем работать с этой обработкой.

В начале были нюансы. ^

Сразу упомяним важный нюанс работы механизма. Дело в том, что новое окно с информацией об ошибке будет появляться только в том случае, если текущий сеанс НЕ допускает отладки.

Поэтому сразу же для удобства вынесем кнопку "1С:Предприятие", которая будет запускать базу без подключенной отладки.

Теперь запустим в таком режиме сеанс и попробуем выполнить нашу обработку.

Вуаля! Мы видим новое окно с информацией об ошибке! Здесь есть кнопка "Сформировать отчет об ошибке" и нет совершенно упоминание кода, на котором эта ошибка возникла. Но данную форму мы ещё рассмотрим. Давайте закроем сеанс, вернёмся в конфигуратор и запустим 1С в режиме отладки. Теперь, если мы попытаемся выполнить нашу обработку, то увидим старое, уже давно привычное нам, окно с информацией об ошибке:

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

Ещё усугубляет ситуацию то, что часто разработчики советуют пользователям включать этот режим отладки в текущем сеансе. Для того, чтобы появлялась кнопочка "Подробнее. ". Покажу не примере:

Если открыть базу до 8.3.17 (у меня это будет 8.3.15), а далее без режима отладки вызвать ошибку, то мы увидим такое окно:

Что здесь не так? Нет возможности нажать "Подробнее" (чтобы увидеть полный текст ошибки), а так же нет возможности скопировать этот текст.

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

Что видит пользователь? ^

Вернёмся к новому окну.

Вот что пользователь увидит по кнопке "Сформировать отчет об ошибке":

Форма формирования отчета ^

Это новая форма платформы, в которой мы можем внести описание проблемы (например, что мы именно делали перед возникновением ошибки).

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

Самое главное, что всё это добро можно сохранить на компьютере в виде архива, а потом переслать кому нужно:

Содержимое отчета об ошибке ^

Давайте посмотрим, что внутри:

Скриншот и файлик JSON. А вот в JSON уже хранится вся информация:

Здесь хранится даже больше, чем нам было показано в окне. Например, вот код локализации:

А вот идентификатор расширений. Их не было на скринах выше:

А здесь вообще подробный стек:

В общем, в JSON хранится много всего интересного. Но рассмотрим его подробнее в следующих статьях. Попытаемся его распарсить.

Как сохраняются скриншоты ^

Перед тем, как перейти далее, рассмотрим то, как 1С создаёт скриншоты окон приложения. Для этого в форме нашей обработки сделаем режим открытия окна "Блокировать весь интерфейс".

И теперь вызовем ошибку.

Как видите, обработка полностью закрыла собой основное окно 1С. Но как будет выглядеть скриншот?

Администрирование ^

Управление настройками обработки ошибок ^

И вот мы видим такую форму. Добавить в избранное мы, к сожалению, не можем, потому что это "стандартная форма".

Теперь посмотрим на функционал этой формы. У нас уже есть одна настройка, потому что это демо-база.

Настройка отображения для категории ^

Попробуем добавить новую.

* Все ошибки
* Прочая ошибка
* Нарушение прав доступа
* Ошибка доступа к локальному файлу
* Ошибка сети
* Ошибка работы с принтером
* Исключение, вызванное из встроенного языка
* Ошибка системы взаимодействия
* Ошибка настроек компоновки данных
* Ошибка сеанса
* Ошибка полнотекстового поиска
* Ошибка внешнего источника данных

Шаблон с текстом ошибки позволяет задать произвольный отформатированный текст, а так же использовать встроенные "параметры".

Чтобы рассмотреть их наглядно, создадим настройку для категории "Все ошибки". И внесём в неё текст со списком всех параметров.

Настройки обработки ошибок применяются после перезапуска сеанса:

Перезапустим сеанс и снова откроем нашу обработку, которая вызовет ошибку.

Вот так выглядят все доступные параметры для пользователя:

Как хранить шаблоны? ^

Вернемся в редактор и рассмотрим небольшой его недостаток и как с ним можно бороться.

Сразу видно что здесь нету галочки с отключением существующих настроек. Допустим, я хочу отключить эту настройку (не удаляя ее), чтобы сохранить сам шаблон представления ошибки. Такой возможности нет. Естественно, сделать две настройки на категорию нельзя. Однако, есть вариант сохранить текст с сохранием формата. Для этого просто достаточно нажать соответствующую кнопку и сохранить шаблон в формате HTML.

А далее открыть его в браузере.

И уже с этого файла можно простым копипастом вставить его в поле с настройкой 1С.

Вот, например, содержимое файла:

Это может быть полезным, когда в рамках ТЗ вы разработали шаблон, нужно его как-то передать на внедрение на продуктив. Просто сохраняете HTML.

Настройка пунктов отчета ^

Теперь рассмотрим остальные настройки в редакторе:

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

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

А сейчас рассмотрим третью группу настроек.

Здесь настраиваются пункты, которые будут добавляться в отчет об ошибке.

Давайте сделаем здесь разные варианты. Например, такие:

Перезапустим и вызовем ошибку:

Сразу видим, что список пунктов уменьшился. Те, что мы отключили, в принципе не предполагается к отправке. А обязательные пункты отключить нельзя.

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

Сбросим теперь настройки на Авто (к сожалению, кнопки по сбросу настроек нет).

Настройки для пользователей ^

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

Они работают точно так же, но уже для конкретного пользователя ИБ.

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

Программная работа ^

Вернемся к нашей обработке и рассмотрим принцип механизма.

ИнформацияОбОшибке. ЯвляетсяОшибкойКатегории() ^

Что здесь происходит?

Мы пытаемся присвоить "Неопределено" в зарезервированную переменную. Происходит ошибка. Давайте перехватим её при помощи попытки:

В отладке мы видим содержимое информации об ошибке.

Это старый объект в 1С, но он получил новый метод: ЯвляетсяОшибкойКатегории()

Теперь каждая информация об ошибке относится к категориям. И все информации об ошибках относятся к категории "Все ошибки":

Но что нам с этим делать?

ОбработкаОтображенияОшибки() ^

Дело в том, что если ранее мы НЕ перехватывали ошибку через попытку, то она сразу отправлялась на экран пользователю. И мы никак не могли с этим работать.

Но теперь платформа позволяет использовать метод в модуле приложения: ОбработкаОтображенияОшибки()

И теперь, когда возникает ошибка, выполняется этот метод и мы на входе имеем информацию о ней. А так же можем видоизменять представление для пользователя.

Процедура имеет параметры:

Рассмотрим пример из Демо-базы:

Здесь мы видим, что при нарушении прав доступа будет формироваться программно текст с фамилией, именем и номером телефона Иванова Ивана. Номер телефона будет выделен форматированием.

ОбработкаОшибок (МенеджерОбработкиОшибок) ^

На скрине выше мы видим использование новой глобальной переменной ОбработкаОшибок. Тип у переменной МенеджерОбработкиОшибок.

Объект содержит методы, которые позволяют отображать информацию пользователя, получить форматированный текст с учетом настроек в базе, а так же читать и изменять эти самые настройки.

Это даёт разработчику возможность полностью видоизменять отображаемый пользователю форматированный текст.

Если додумать наш код из демо-базы, то ФИО и контактную информацию можно брать из базы. Например, добавить регистр сведений "ОтветственныеЗаОшибки". И в этом регистре указывать физ-лица в разрезе категорий ошибок. А в коде, при возникновении ошибки, выводить пользователю контактные данные этого физ-лица.

В следующих публикациях мы ещё остановимся подробнее на тех реальных кейсах, которые можно реализовать.

ОбработкаОшибок. КатегорияОшибкиДляПользователя() ^

В примере из демо-базы используется ещё один метод для определения категории. На этот раз метод относится не к ИнформацияОбОшибке, а к ОбработкаОшибок.

КатегорияОшибкиДляПользователя() возвращает конкретную категорию, к которой относится ошибка. Например, у нас это "непредвиденная ошибка".

Какой метод использовать?

На Зазеркалье использовался метод ИнформацияОбОшибке. ЯвляетсяОшибкойКатегории(). Дело в том, что одна ошибка может относится сразу к нескольким категориям. Цитата:

У объекта ИнформацияОбОшибке есть метод ЯвляетсяОшибкойКатегории(). Одна ошибка может одновременно принадлежать к нескольким категориям.

В описании нового в платформе так же указывается этот метод

Не совсем понятно, почему в демо-базе использовался другой метод. Если у вас есть ответ на этот вопрос, то можете писать в комментарии. Обновлю информацию в статье.

Журнал регистрации ^

Как обстоят дела с фиксацией ошибки в журнале регистрации?

Сейчас мы находимся в отладке в самом начале метода ОбработкаОтображенияОшибки().

Если зайдём в журнал регистрации, то увидим, что ошибка уже в него записана:

То есть, дополнительно фиксировать информацию в журнал регистрации не нужно, даже если мы установим "СтандартнаяОбработка = Ложь". Уже на момент входа в процедуру запись в ЖР есть.

Ошибки внутри ОбработкаОтображенияОшибки() ^

Вот у нас в обработке произошла ошибка. 1С передала управление в метод ОбработкаОтображенияОшибки().

Но что будет, если в этом методе тоже произойдёт ошибка? Как себя поведёт платформа?

Вызовем ошибку внутри процедуры по обработке ошибки (интересно звучит). Для этого попытаемся присвоить "Неопределено" в зарезервированную переменную

Выполняем обработку и видим стандартный текст с инфомацией об ошибке:

Перейдём в формирование отчета:

И посмотрим подробный текст ошибки:

Как видим, это текст ошибки, которая возникла в обработке. Здесь не содержится информация об ошибке, которую мы совершили после.

А что в журнале регистрации?

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

Дело в том, что когда в процедуре ОбработкаОтображенияОшибки() происходит ошибка, то 1С дальше работает по стандартной логике. Независимо от того, успели ли вы отключить СтандартнуюОбработку.

И в журнале регистрации вторая ошибка (в самом обработчике) фиксироваться не будет.

А что если мы успели сами уже отобразить показать информацию пользователю? Для этого внесём изменения в код:

В этом тексте есть в конце слово "ТЕСТ". А значит, это то окно, которое мы сами программно вызвали.

Но когда мы закроем это окно, 1с откроет новое:

Это окно уже без надписи "ТЕСТ".

Дело в том, что 1С сначала выполнила открытие окна с ошибкой, которое мы выполнили сами, а затем, после того как процедуру ОбработкаОтображенияОшибки() не удалось выполнить, открыла ещё и стандартное окно.

Этот нюанс важно помнить при разработке. И быть очень осторожным, чтобы не допустить в методе ошибку. Иначе вы как разработчик можете даже не заметить её (ведь в журнале не фиксируется), а пользователя может пытать ситуация, когда ему дважды предлагают отправить отчет.

Выводы ^

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

В следующих статьях мы продолжим разбирать данных механизм. Создадим свойс htttp-сервис регистрации ошибок. Попробуем реализовать пример использования обработчика ОбработкаОтображенияОшибки(). Будет интересно 👍

Понравилась статья?

Не будьте равнодушными! Поставьте лайк плюс, оставьте комментарий.

Не забудьте посмотреть видео по этой теме, в нём я наглядно показываю всё то, что говорится в статье: Отображение ошибок в 1С (новый механизм с версии 8.3.17)

И переходите к другим публикациям:

Специальные предложения

Electronic Software Distribution

Маркировка 488-ФЗ

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Что удивительно (это не к автору, а к 1с), это что общая обработка ошибок
— рекомендуется к использованию как чисто клиентская
— происходит после записи в журнал регистрации

А сервер регистрации ошибок у вас не получилось еще поднять? Было бы крайне интересно

подписался на ю-туб канал.

(17) да, в этой статье просто не рассматривается сервис регистрации.

Вот на этом скрине видно, что в первой колонке (Отчет об ошибке) есть пункт «Отправлять отчет». Его просто нужно перевести в «Отправлять». А далее уже нужно иметь готовую систему, которая примет и отработает этот отчет об ошибке.

(20)
Я ещё напишу про это подробнее, но там всё просто:

Погонял на 8.3.19.1150. Поскольку а) мне некогда делать отдельную публикацию типа «Нюансы», и б) всё это сильнейше зависит от релиза и дцать раз ещё поменяется, то кратко отпишусь тут. Что замечено:

Неправильное указание места представления сведений 0100200000 — как исправить?

Нередко при сдаче отчётности на сайте ФНС возникают ошибки. Свойственны они и программам, в которых формируются сами отчёты. Рассмотрим ошибку с кодом 0100200000, которая звучит как «Неправильное указание места представления сведений». А также, что она значит и каким образом исправить данную проблему.

Причины и решение ошибки с кодом 0100200000

Неудивительно, что часто при ошибке с кодом 0100200000 отклоняются даже правильно составленные отчёты. Когда мы в очередной раз проверяем ведённые данные оказывается, что ошибок в форме нет. Такое случается довольно часто и говорит о том, что виновны в этом программы, в которых создаётся документ. Простыми словами — нам нужно обновить её до последней версии и повторить попытку.

Решение ошибки

Если вы пользуетесь 1C, то именно это советуют сделать разработчики программы в своих часто задаваемых вопросах на сайте.

Причины ошибки

Ошибка «Неправильное указание места представления сведений» также появляется в случае, если указан неправильно код налоговой. На сайте ФНС существует сервис, который помогает проверить его. Находится он по ссылке https://service. nalog. ru/addrno. do#_blank.

Форма для проверки данных

Введите адрес и выберите код из предложенного каталога. Затем нажмите кнопку « Далее ». Если вы действительно допустили ошибку при оформлении с кодом — исправьте её и отправьте отчёт повторно. Также код 0100200000 возникает в том случае, если подписант в документе о доверенности представлен неверно и если данные о доверенности отсутствуют в БД налоговой. Каким же образом это исправить? Читайте далее.

Каким образом исправить заявление и отправить отчёт правильно на сайте ФНС

Чтобы отправить отчёт или файл транспортного контейнера — отчёт с электронной подписью. Этот отчёт готовится при помощи бесплатной программы « Налогоплательщик ЮЛ », которую можно загрузить на сайте ФНС https://www. nalog. ru/rn77/program/5961229/.

Налогоплательщик ЮЛ

Затем нужно перейти на страницу https://service. nalog. ru/payment/#ul для выбора вида налога, если вы являетесь доверенным лицом компании.

Выберите тип документа

После выбора типа отчёта, необходимо перейти на страницу загрузки готового документа,

Загрузка документа

который был сформирован на вашем компьютере ранее.

Дальнейший порядок действий, чтобы избежать ошибки «Неправильное указание места представления сведений» с кодом 0100200000:

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

Что делать, если появляется ошибка «Неправильное указание места представления сведений»

Многие юридические сайты имеют свою классификацию кодов с ошибками при сдаче отчётности на сайте ФНС. Включая сам сайт налоговой инспекции, где также можно найти список кодов ошибок и их значение. Но нередко сбои имеют свои причины, которые не совпадают с уже описанными признаками. К ним относятся профилактические работы на сайте ФНС, сбои программ при передаче данных и формировании электронных документов.

Создание отчёта

И повторите попытку, выгрузив данные на сайте ФНС. Если и сейчас появляется ошибка, необходимо убедиться, что в данный не проводятся работы на серверах сайта. И nalog. ru работает стабильно.

Для этого можно воспользоваться следующими контактами:

Способы связи: Контакты:
Бесплатный телефон горячей линии. 8-800-222-22-22
Страница ФНС в ВКонтакте. https://vk. com/nalog__ru
Официальный сайт ФНС. https://www. nalog. ru/rn77/apply_fts/obr/

Последствия, если вовремя не сдать отчёт

Сегодня приняты законы, которые не дают налогоплательщикам каких-либо смягчающих обстоятельств при просрочке уплаты налогов. Минимальная сумма штрафа — 1000 рублей за «нулевую» отчётность. Для «ненулевых» отчётностей за просроченную уплату полагается штраф в размере 5% от суммы, указанной в декларации. Но не менее 1000 рублей и не более 30% от той же суммы.

Видео-инструкция

Если вы столкнулись со сложностями при формировании отчёта, а также с ошибкой «Неправильное указание места представления сведений» с кодом 0100200000, и не знаете, каким образом её исправить, посмотрите данное видео.

Источники:

https://infostart. ru/1c/articles/1275015/

https://it-doc. info/nepravilnoe-ukazanie-mesta-predstavleniya-svedenij-0100200000/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: