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

Публикация № 1275015

Разработка - Практика программирования

ИнформацияОбОшибке ОбработкаОтображенияОшибки ЯвляетсяОшибкойКатегории МенеджерОбработкиОшибок ОбработкаОшибок Ошибки Отчет Сервис регистрации

Рассмотрим развитие механизма отображения ошибок в 1С (начиная с 8.3.17)

Всем привет!

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

Совсем недавно я снял видео. Данная статья - текстовый его вариант. 

 

 

 

Содержание

 

Подготовка

 

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

В начале этого года вышла статья на Зазеркалье с информацией о новой возможности платформы - работой с окном отображения ошибок.

Вот статья: https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-otobrazheniya-oshibok/

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

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

https://dl04.1c.ru/content/Platform/8_3_17_1549/1cv8upd_8_3_17_1549.htm#9f36892b-eb6c-11e9-8371-0050569f678a

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

  • Возможность обработки всех не перехваченных ошибок, возникающих при работе прикладного решения, перед отображением ошибок пользователю. Реализован обработчик модуля приложения ОбработкаОтображенияОшибки.
  • Реализована возможность декларативной настройки текстов сообщений об ошибке.
  • Реализована возможность формирования и отправки отчета об ошибке для службы технической поддержки (в том числе полностью автоматически). Реализован объект ОтчетОбОшибке.
  • Реализовано понятие «категория ошибки», что позволяет группировать ошибки. Реализован метод ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории().
  • Изменено стандартное окно отображения ошибок пользователю.

Реализовано свойство глобального контекста ОбработкаОшибок.

Реализована стандартная функция Управление настройками обработки ошибок, позволяющая настроить тексты ошибок. Методы глобального контекста КраткоеПредставлениеОшибки(), ПодробноеПредставлениеОшибки() и ПоказатьИнформациюОбОшибке() считаются устаревшими. Рекомендуется использовать одноименные методы объекта ОбработкаОшибок.

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

 

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

Работать мы будем в демо-базе, которую можно скачать с того сайта 1С: https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.17.1549

Я выбрал пункт с файлом DT. Вот прямая ссылка на скачивание. Естественно, нужен доступ на users: https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.17.1549&path=Platform\8_3_17_1549\demodt_8_3_17_1549.zip

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

 

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

 

 

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

 

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

 

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

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

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

 

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

 

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

 

 

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

 

 

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

Это странное решение 1С, может у кого в комментариях будут предположения о причинах... Но деваться некуда - нужно просто это знать, чтобы потом не удивляться.

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

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

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

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

 

Выходит, что пользователи, наученные включать режим отладки, не увидят новое окно об ошибке. Их нужно будет переучить. И, поздравляю, можете начинать и сейчас. Потому что есть более "правильный" способ пользователям копировать текст ошибке (без включения отладки). Просто перейдите в "О программе" -> "Информация для технической поддержки". Это даже удобнее, чем окно с сообщением, потому что ошибки копятся и не пропадут после закрытия окна.

 

 

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

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

 

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

 

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

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

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

  1. Подробный текст ошибки. Это конкретно тот текст ошибки, который нам нужен. А не тот, который пользователь неизвестно как и откуда скопировал.

     
  2. Снимок окон приложения. Полноразмерный скрин окон 1С.


     
  3. Имя пользователя информационной базы

     
  4. Сведения об используемом приложении. Здесь у нас хранится инфа о конфигурации, режиме совместимстимости и расширениях

     
  5. Информация о компьютере. Гигабайты, гигагерцы и так далее

     
  6. Приложить файл. Пользователь может приложить, например, файл, который он пытался прогрузить в обработку. Или же саму внешнюю обработку. 

 

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

 

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

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

 

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

 

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

 

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

 

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

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

 

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

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

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

 

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

 

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

 

 

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

Одно из основных "фишек" нового механизма - возможность видоизменять текст окна с ошибкой в режиме предприятия.

 

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

Настройки механизма в режиме Предприятие вносятся в "Управление настройками обработки ошибок". Для этого перейдём в "Функции для технического специалиста" (ранее "Все функции") -> "Стандартные" - "Управление настройками обработки ошибок".

 

 

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

 

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

 

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

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

 

Мы можем выбрать

  1. Любую категорию ошибок. В 1С есть список из 12ти категорий:

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


     
  2. Текст для ошибки, не требующей перезапуск
  3. Текст для ошибки, требующей перезапуск

 

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

 

 

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

 

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

 

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

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

 

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

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

КраткоеПредставлениеОшибки - это краткое представление ошибки равнозначно тому тексту, который на ранних версиях платформы показывался пользователю в сеансе без подключенной отладки.

ПодробноеПредставлениеОшибки - Расширенное представление информации об ошибки. Как то, которое доступно пользователю по кнопке "Подробно" в окне с ошибкой.

 

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

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

 

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

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

 

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

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

 

СтандартноеСообщениеОбОшибкеДляПользователя

[СтандартноеСообщениеОбОшибкеДляПользователя]

 

ПредставлениеОшибкиДляПользователя

[ПредставлениеОшибкиДляПользователя]

 

КраткоеПредставлениеОшибки

[КраткоеПредставлениеОшибки]

 

ПодробноеПредставлениеОшибки

[ПодробноеПредставлениеОшибки]

 

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

И если вам нужно временно отключить настройку, но не потерять её содержимое - опять же HTML.

 

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

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

 

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

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

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

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

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

 

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

 

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

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

 

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

 

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

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

 

 

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

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

 

 

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

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

 

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

 

 

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

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

 

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

 

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

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

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

 

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

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

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

 

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

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

 

ИнформацияОбОшибке - одноименный объект. Тот же самый, что мы перехватывали через попытку

ТребуетсяЗавершениеСеанса - булево - будет ли платформа требовать завершения сеанса. Изменить эту переменную вы можете, но ни на что это влиять не будет. Она нужна только для чтения.

СтандартнаяОбработка - булево - будет ли платформа сама отображать пользователю ошибку.

 

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

 

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

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

 

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

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

 

Это переменная - самый главный объект по программному доступу к обработке ошибок.

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

 

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

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

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

Ну и стоит помнить, что так как у нас появилась новая глобальная перменная, то если где-то в ваших текущих разработках она будет использоваться - после обновления платфомры будут ошибки. Так же, как когда-то случилось с переменной ЭтотОбъект внутри управляемой формы.

 

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

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

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

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

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

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

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

И на ИТС тоже:

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

 

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

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

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

 

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

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

Но есть нюанс:

 

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

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

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

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

 

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

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

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

 

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

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

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

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

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

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

 

Вызываем ошибку:

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

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

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

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

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

 

Выводы  ^

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

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

 

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

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

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

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

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. wowik 837 11.08.20 11:29 Сейчас в теме
+1 за оформление, +1 за содержание = +1.
2. Sander80 82 11.08.20 11:58 Сейчас в теме
Что удивительно (это не к автору, а к 1с), это что общая обработка ошибок
- рекомендуется к использованию как чисто клиентская
- происходит после записи в журнал регистрации

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

А сервер регистрации ошибок у вас не получилось еще поднять? Было бы крайне интересно
3. SeiOkami 2114 11.08.20 12:06 Сейчас в теме
(2)
А сервер регистрации ошибок у вас не получилось еще поднять?

Сделал сервис регистрации (http-сервисом в базе 1С).
Позже сделаю обзор на это. Там несложно, но интересно.
В планах ещё сделать буферный http-сервис (возможно, на python). Он будет основным сервисом. Принимать отчеты от пользователей, складировать их, а далее (с заданной частотой) передавать их в базу 1С. Чтобы уменьшить количество затрачиваемых лицензий
5. Sander80 82 11.08.20 19:29 Сейчас в теме
(3) http-сервисом в базе 1С это прямо очень интересно!
Спасибо, будем ждать
6. untru 10 23.09.20 23:56 Сейчас в теме
(3)а где почитать как организовать свой сервис? Можете подсказать? Это же наверно обычный пост запрос с json в теле или как?
7. untru 10 09.10.20 23:32 Сейчас в теме
(3)Сделаете обзор? я что то полез, методом тыка понял что надо сдать все на /getInfo
Но у меня приходит в теле только инфо о системе. А где все остальное не пойму
8. SeiOkami 2114 10.10.20 20:02 Сейчас в теме
(7) да, как раз на след. неделе выйдет статья здесь и видео на ютубе
19. untru 10 10.10.20 22:39 Сейчас в теме
(8) Все, нашел на просторах ИТС как сделать) в pushReport все получил)
В статье будете делится конфигурацией?)
4. dimonb123 11.08.20 15:40 Сейчас в теме
спасибо!

подписался на ю-туб канал.
9. Xershi 1149 10.10.20 20:30 Сейчас в теме
Как администратор 1С интересно решение именно автоматического сбора таких ошибок.
Есть решение из ЖР тянуть это. руки пока не дошли, но там и без 8.3.17 это доступно.
10. SeiOkami 2114 10.10.20 20:49 Сейчас в теме
(9) на следующей неделе выложу статью и видео на ютубе с примером разработки простого сервиса по сбору ошибок.
Из ЖР, конечно, можно, но столько информации не вытянуть. В этом отношении в 8.3.17 очень интересное нововведение.
11. Xershi 1149 10.10.20 21:29 Сейчас в теме
(10) интересует только готовое решение.
Взял и работает. Статью пишут обычно для начинающих.
12. SeiOkami 2114 10.10.20 21:32 Сейчас в теме
(11) а дело в том, что на данный момент нет ни решений, ни "не начинающих". Либо они не показываются. Есть только инфа на ИТС, а всё остальное копать и делать самому. Результат этого копания и превращается в статью.
А готовое решение будет позже. Планирую разработку конфигурации для сбора и обработки ошибок. Если есть какие-то мысли по этому поводу, то можете писать в комментариях или личке.
13. Xershi 1149 10.10.20 21:36 Сейчас в теме
(12) сейчас расширения рулят.
14. SeiOkami 2114 10.10.20 21:36 Сейчас в теме
(13) это никак не относится к сервису регистрации ошибок. Расширения - это уже способ их исправить)
15. Xershi 1149 10.10.20 21:38 Сейчас в теме
(14) ну речь идет о том что пользователи не умеет жать кнопки, а алгоритм сложил нам это куда нужно и дал статистику.
16. SeiOkami 2114 10.10.20 21:39 Сейчас в теме
(15) есть возможность настроить 1С так, чтобы все ошибки автоматически отправлялись на сервис регистрации (со всеми данными, скринами и так далее). Так что, именно эту проблему и пытается решить нововведение.
17. Xershi 1149 10.10.20 21:40 Сейчас в теме
(16) я не помню писал ли 1С про эту настройку, но если это лишь настройка, то и статьи как раз хватит!
18. SeiOkami 2114 10.10.20 21:43 Сейчас в теме
(17) да, в этой статье просто не рассматривается сервис регистрации.

Вот на этом скрине видно, что в первой колонке (Отчет об ошибке) есть пункт "Отправлять отчет". Его просто нужно перевести в "Отправлять". А далее уже нужно иметь готовую систему, которая примет и отработает этот отчет об ошибке.
20. simon_simon 1 22.01.21 14:28 Сейчас в теме
Благодарю за статью. Ваш материал здорово помог в написании собственного обработчика ошибки.
Для развития темы и развития своего собственного функционала хотелось бы понять есть ли возможность программно получить в 1с скриншоты экранов в момент ошибки (те скриншоты, которые 1с позволяет получить в момент формирования отчета об ошибке).
21. SeiOkami 2114 22.01.21 20:13 Сейчас в теме
(20)
Я ещё напишу про это подробнее, но там всё просто:

ОтчетОбОшибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке());
ОтчетОбОшибке.Записать(ПутьКАрхиву, Ложь);

Этот код выполняется на клиенте. При этом ошибки может вообще не быть - его можно выполнить в любой момент.
Однако, если в настройках базы не будет указано обязательное прикладывание скрина, то в архиве его не будет.
22. kraynev-navi 499 25.03.21 15:38 Сейчас в теме
А как сделать так, чтобы все осталось как было? Т.е. чтобы не открывался отчет, а если ошибки были, то в стандартных старых "ошибочных" формочках. Программно можно сделать?
23. kraynev-navi 499 26.03.21 09:33 Сейчас в теме
(22) как-то так:

Настройки = ОбработкаОшибок.ПолучитьОбщиеНастройки();
Настройки.ВариантОтображенияСообщения=ВариантОтображенияСообщенияОбОши­бке.ПодробноеПредставлениеОшибки;
ОбработкаОшибок.УстановитьОбщиеНастройки(Настройки);
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    80489    Serginio    113    

Полезные примеры СКД, ч.2

Практика программирования v8 v8::СКД Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    5423    Neti    7    

Неочевидные нюансы записи управляемой формы

Практика программирования v8 v8::УФ Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Разберем несколько нюансов записи управляемой формы.

02.04.2021    6505    SeiOkami    52    

Обзор полезных методов БСП 3.1.4

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Библиотека стандартных подсистем (далее - БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.

25.03.2021    21301    rayastar    49    

Звуковое управление в 1С 8.3 Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    3873    velemir    31    

Флаг "Использовать ПОЧТИ всегда", или Нюанс динамических списков

Практика программирования v8 Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Небольшая пятничная история по программной работе со строкой динамического списка.

11.02.2021    4487    SeiOkami    35    

Наследование свойств элементов, или Как пользователь может сломать вашу форму

Практика программирования v8 Платформа 1C v8.2 1cv8.cf Бесплатно (free)

В 1С можно установить свойства ТолькоПросмотр, Доступность и Видимость не только на элементы формы, но и на группы элементов. Но стоит ли так делать? Оказывается, пользователь может обойти запреты, которые установлены на папку. Об этом подробнее в видео.

12.01.2021    3423    SeiOkami    25    

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

Практика программирования v8 ERP2 БУ Бесплатно (free)

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    7432    BuriyLesha    9    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5786    comol    31    

Сервис регистрации ошибок 1С (пример создания)

Практика программирования v8 1cv8.cf Бесплатно (free)

Разработаем вместе простой сервис регистрации ошибок для 1С на самой 1С =)

13.10.2020    5048    SeiOkami    22    

Множественные клики [Полтергейсты 1С]

Практика программирования v8 1cv8.cf Бесплатно (free)

Что будет, если нажимать на кнопки в Предприятии в момент выполнения кода? А если в отладке? Оказывается, 1С в отладке в ожидании запоминает нажатые кнопки, а потом выполняет их поочерёдно...

25.09.2020    1537    SeiOkami    6    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

30.08.2020    14698    quazare    34    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    39240    unichkin    74    

Серверные вызовы, которые нельзя вызывать

Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    8199    SeiOkami    34    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    50596    user5300    17    

Как ограничить поля отбора в динамическом списке и ничего не сломать

Практика программирования v8::УФ 1cv8.cf Бесплатно (free)

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

06.05.2020    7219    SeiOkami    3    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    33382    tormozit    105    

Ограничения полей, или как обмануть СКД?

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    12682    SeiOkami    40    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    49175    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    35293    John_d    22    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    80429    tormozit    131    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    27864    kuzyara    38    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    20569    YPermitin    61    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    10961    Sibars    19    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    51435    tormozit    51    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

07.10.2019    35423    HostHost    41    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    45346    Yashazz    50    

О программе Postman для тестирования API и для чего она нужна 1С-нику

Практика программирования Программное обеспечение (software) v8 Бесплатно (free)

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

24.09.2019    16733    budidich    29    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    48217    tormozit    74    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    79781    rpgshnik    70    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    65403    ids79    55    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    37846    YPermitin    25    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16834    m-rv    3    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    28071    YPermitin    81    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    39760    ids79    19    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    124192    ids79    72    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    21528    m-rv    17    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    50518    avalakh    26    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    34092    json    15    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    88038    ids79    14    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    33808    m-rv    22    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    43040    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

09.07.2019    30549    YPermitin    14    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    20881    SeiOkami    52    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    29284    itriot11    34    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

02.07.2019    69287    ids79    17    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    66502    ids79    26    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    28302    dmurk    148    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    40249    ids79    44    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    55066    YPermitin    30