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

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

Приемы и методы разработки

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

Рассмотрим развитие механизма отображения ошибок в 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 857 11.08.20 11:29 Сейчас в теме
+1 за оформление, +1 за содержание = +1.
2. Sander80 82 11.08.20 11:58 Сейчас в теме
Что удивительно (это не к автору, а к 1с), это что общая обработка ошибок
- рекомендуется к использованию как чисто клиентская
- происходит после записи в журнал регистрации

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

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

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

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

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

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

Этот код выполняется на клиенте. При этом ошибки может вообще не быть - его можно выполнить в любой момент.
Однако, если в настройках базы не будет указано обязательное прикладывание скрина, то в архиве его не будет.
simon_simon; +1 Ответить
27. simon_simon 1 07.10.21 15:15 Сейчас в теме
(21)
Мои попытки получить скриншот программным образом , к сожалению, не увенчались успехом.
При формировании ошибки и обработке ее со стороны пользователя (в интерактивном режиме ) все успешно сохраняется на диске .

При попытке получить данный архив с отчетом об ошибке и скриншотом программно - содержимое архива оказывается без скриншота. json строка с данными об ошибке на месте.
    
        ErrorProcessingSettings = New ErrorProcessingSettings;  
	ErrorProcessingSettings.IncludeWindowsPictureInReport = ErrorReportingMode.Send;
	RepInfo = New ErrorReport(ErrorInfo);
	TemporaryFileName = GetTempFileName("zip");
	RepInfo.Write(TemporaryFileName, False);

При чем я программно устанавливаю свойство "прикладывать окно"
28. SeiOkami 2480 07.10.21 15:17 Сейчас в теме
(27) я как-то написал этот метод. Но он работает только при настройке "прикладывать скриншот":
29. simon_simon 1 07.10.21 15:35 Сейчас в теме
(28)Выходит, что мои попытки установить это свойство программно ни к чему не привели. Немного странное поведение платформы, как мне кажется. Хотя возможно программно я что-то делаю не так.
30. SeiOkami 2480 07.10.21 15:36 Сейчас в теме
(29) а если не программно, а просто в настройках указать?
31. simon_simon 1 07.10.21 15:38 Сейчас в теме
(30)Все отработало как надо. Скриншот на месте.
32. simon_simon 1 08.10.21 13:48 Сейчас в теме
(31)
(30)
Подскажите пожалуйста , может быть приходилось решать, как на web клиенте получить все то, что ОтчетОбОшибке выдает методом записать
33. simon_simon 1 08.10.21 13:50 Сейчас в теме
(32) на вебе ПолучитьИмяВременногоФайла не определено. А хотелось бы скрины об ошибке прикладывать не только при работе на тонком клиенте, но и на веб
34. SeiOkami 2480 08.10.21 13:53 Сейчас в теме
(33) я не пробовал, но посмотрите здесь: https://its.1c.ru/db/v8std/content/542/hdoc
Прикрепленные файлы:
35. simon_simon 1 08.10.21 13:54 Сейчас в теме
22. kraynev-navi 529 25.03.21 15:38 Сейчас в теме
А как сделать так, чтобы все осталось как было? Т.е. чтобы не открывался отчет, а если ошибки были, то в стандартных старых "ошибочных" формочках. Программно можно сделать?
23. kraynev-navi 529 26.03.21 09:33 Сейчас в теме
(22) как-то так:

Настройки = ОбработкаОшибок.ПолучитьОбщиеНастройки();
Настройки.ВариантОтображенияСообщения=ВариантОтображенияСообщенияОбОши­бке.ПодробноеПредставлениеОшибки;
ОбработкаОшибок.УстановитьОбщиеНастройки(Настройки);
24. Yashazz 4106 22.06.21 16:37 Сейчас в теме
Погонял на 8.3.19.1150. Поскольку а) мне некогда делать отдельную публикацию типа "Нюансы", и б) всё это сильнейше зависит от релиза и дцать раз ещё поменяется, то кратко отпишусь тут. Что замечено:

1. Как минимум некоторые ошибки средствами настройки клиентского показа (через "Режим тех.специалиста", без кодинга) не ловит. Ни в режиме включённой/разрешённой отладки, ни без неё. Смоделировал на: ошибке открытия формы, ошибке перехода по навигационной ссылке, ошибке работы с избранным, применении СКД-отчёта с кривой схемой (не настройками, а именно самой схемой). Все моделируемые ошибки - восстановимые. Так вот, плевать оно хотело на все настройки, в т.ч. "Все ошибки" и "Прочие". Ноль эмоций, только типовая сообщалка.
2. Программно ОбработкаОтображенияОшибки нормально работает и в режиме отладки, клиентские и серверные ошибки нормально ловит. А вот в запуске ком-Application она не исполняется.
3. Содержимое, возвращаемое ИнформацияОбОшибке в некоторых случаях - матрёшка, и чтоб добраться до вменяемого текста, приходится погружаться, раскрывая свойство "Причина", иногда на 3-4 уровня. Поэтому скармливать что-либо сообщалке надо вдумчиво, с анализом.
4. Если в транзакции происходит реальная обрабатываемая ошибка, то "наведённая ошибка-фантом" вида "В данной транзакции уже происходили ошибки" никак и нигде не регистрируется этим новым механизмом. При этом, необрабатываемая ошибка в транзакции фиксируется в ЖР, т.е. режим записи в ЖР там явно "независимый".
5. При этом, "вложенные" ошибки обрабатываются единожды на "верхнем уровне", т.е. принудительный вызов ИнформацияОбОшибке() даёт пустоту, буфер ошибок в этот момент уже вычищен.
6. У объекта "ДанныеОтчета" в подсказке больше свойств, чем описано в СП. Явно не всё документировали. Например, "ДанныеОтчета". Есть опечатки в самих методах (например, "ОтправлятьОчет" в настройке обработки ошибок юзера). Это значит, что ляпы могут быть и смысловые.
7. Никакого описания категорий ошибок в хдто-пакете с URI http://v8.1c.ru/8.2/data/bsl/ нету вообще. Или в СП ошиблись, или я не знаю что.
8. ОбработкаОтображенияОшибки вызывается даже в случае ошибки в ПередНачаломРаботыСистемы (правда, там ничего толком не сделать без основного-то окна 1С), ну хоть в ЖР. Интересно, ловятся ли и к каким категориям будут относиться ошибки авторизации, внешних соединений итд. Особенно если речь о вызываемой базе-провайдере - что это за категория будет применительно к ней?
9. ОбработкаОтображенияОшибки можно вызывать принудительно, в т.ч. из своей попытки-исключения, передавая ей информацию об ошибке. Но, при этом, естественно, никакой записи в ЖР не будет.
10. Жаль, что ошибки расширений не выведены в отдельную категорию, и нет признака отличия их от ошибок основной конфы. Имя модуля и даже строка кода бесполезны, если оно всё частично перегружено, да ещё несколькими расширениями.
11. В версии 8.3.19 категории ошибки разделены на возвращаемые всегда и НЕ всегда (например, КатегорияОшибкиДляПользователя не вернёт ничего, связанного с выполнением команд встроенного языка).
25. andru_1 22.07.21 22:02 Сейчас в теме
Толстый клиент, обычное приложение не работает. Платформа 8.3.18.1483, режим совместимости отключен.
Поведение исключений не поменялось. Процедура ОбработкаОтображенияОшибки в модуле обычного приложения не срабатывает. Интересно зачем ее туда добавили... У всех так или мне повезло?
26. Yashazz 4106 23.07.21 10:09 Сейчас в теме
(25) В обычном приложении оно вообще не работает. Обработчик события есть, в модуле можно типа вроде как добавить, только он игнорируется. Наплевали на все старые конфы, короче говоря.
gubanoff; +1 Ответить
36. buzzzard 51 29.10.21 17:40 Сейчас в теме
Возможно ли как-то дополнить информацию, отправляемую как отчет об ошибке, информацией из контекста, в котором произошла ошибка?
Допустим ошибка произошла в управляемой форме, в контексте сервера, и хочется отправить в отчете об ошибке значения некоторых переменных.
Перепробовал все свои идеи и пока мне кажется, что это в принципе невозможно.
Так ли это? Никто не пробовал?
37. SeiOkami 2480 29.10.21 18:45 Сейчас в теме
(36)
Можно использовать "ДополнительныеДанные"
ОтчетОбОшибке.ДополнительныеДанные = Новый Структура("ТЕСТ", "А");
Прикрепленные файлы:
38. buzzzard 51 29.10.21 22:25 Сейчас в теме
(37) Я не зря написал, что ошибка происходит в управляемой форме в контексте сервера.
ОтчетОбОшике
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
39. SeiOkami 2480 29.10.21 22:34 Сейчас в теме
(38) не правильно формировать отчёт об ошибке на сервере. Это нужно делать на клиенте
40. buzzzard 51 29.10.21 23:16 Сейчас в теме
(39) Да без проблем. Я с этим не спорю. Вопрос в том, как при этом, на клиенте, получить значения переменных, которые были в момент возникновения ошибки в каком-то серверном контексте?
41. buzzzard 51 29.10.21 23:19 Сейчас в теме
(39) Ну или, ладно, чисто для упрощения. Как на клиенте при формировании отчета об ошибке получить значения переменных, которые были в момент возникновения ошибки в клиентском контексте?
42. buzzzard 51 29.10.21 23:54 Сейчас в теме
(39) Зайду с другой стороны. Чтобы было понятно чего мне хочется.
Допустим есть клиентская процедура в управляемой форме.
В этой процедуре есть переменная, значение которой мне хочется мониторить.
Значение этой переменной меняется несколько раз в процессе выполнения этой процедуры.
И в какой-то момент, не обязательно при изменении этой переменной, возникает ошибка, необязательно связанная с этой переменной.
Но мне хочется знать какое значение было в моей переменной в момент ошибки.
Возможно ли это?
Мне на ум пришла только Попытка, т.е. перехватить ошибку и в этом момент снять телеметрию.
Но! Если я перехватываю ошибку, тогда не отработает стандартная ОбработкаОшибок.

Ну а с серверными ошибками еще сложнее ;)
43. buzzzard 51 30.10.21 00:22 Сейчас в теме
(39) И все таки спасибо за наводку. Разобрался с клиентскими ошибками.

Коротко принцип такой:
Весь текст клиентской процедуры нужно выполнять в попытке. В исключении нужно получить телеметрию и сохранить в параметр сеанса.
После этого вызвать МодульПриложения.ОбработкаОтображенияОшибки.
&НаКлиенте
Процедура ОшибкаНаКлиенте(Команда)
	Попытка
		ЭтотОбъект	= Неопределено;
	Исключение
		ОбщийМодульСервер.ЗаписатьКонтекстПриОшибке("Метка времени " + ТекущаяДата());
		ОбработкаОтображенияОшибки(ИнформацияОбОшибке(), Ложь, Ложь);
	КонецПопытки;
КонецПроцедуры
Показать

Там прочитать значение из параметра сеанса, добавить в отчет дополнительные данные, как вы и предложили.
Ну и дальше отправить этот отчет.
Процедура ОбработкаОтображенияОшибки(ИнформацияОбОшибке, ТребуетсяЗавершениеСеанса, СтандартнаяОбработка) Экспорт
	Если НЕ СтандартнаяОбработка Тогда
		Отчет	= Новый ОтчетОбОшибке(ИнформацияОбОшибке);
		Отчет.ДополнительныеДанные	= ОбщийМодульСервер.ПолучитьКонтекстПриОшибке();;
		Отчет.Отправить(Истина);
	КонецЕсли;
КонецПроцедуры
Показать


Остается придумать как отправить отчет с дополнительной телеметрией после ошибки в серверном контексте.
Оставьте свое сообщение

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

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

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020    4600    Eugen-S    23    

Обзор полезных методов БСП 3.1.4. Часть 2

БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

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

27.04.2021    16400    rayastar    7    

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

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

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

25.03.2021    41879    rayastar    51    

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

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

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

16.03.2021    7262    velemir    33    

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

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

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

27.01.2016    85903    Serginio    116    

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

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

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

28.12.2020    8993    comol    31    

Полезные функции БСП (Часть 2)

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

Список полезных функций из состава Библиотеки стандартных подсистем 3.1.

10.03.2020    21019    user5300    20    

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

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

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

27.01.2020    66486    ids79    26    

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Инструменты администратора БД Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    67708    user700211_a.straltsou    30    

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

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

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

15.01.2020    44045    John_d    22    

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

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

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

30.12.2019    35761    kuzyara    38    

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

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

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

10.10.2019    30751    John_d    21    

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

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

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

10.12.2016    41174    unichkin    74    

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

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

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

07.10.2019    39931    HostHost    41    

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

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

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

01.10.2019    53487    Yashazz    56    

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

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

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

06.09.2019    103809    rpgshnik    77    

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

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

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

15.10.2018    36231    tormozit    106    

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

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

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

05.09.2019    78410    ids79    56    

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

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

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

17.08.2019    45427    ids79    22    

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

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

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

08.08.2019    153982    ids79    75    

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

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

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

20.09.2012    82926    tormozit    131    

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

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

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

02.08.2019    61321    avalakh    27    

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

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

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

26.07.2019    106620    ids79    17    

Обработчики событий при записи объектов. Зачем и что за чем?

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

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    114023    AlbinaAAA    49    

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

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

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

11.07.2007    54549    tormozit    51    

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

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

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

17.07.2019    48759    ids79    27    

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

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

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

04.07.2019    22606    SeiOkami    53    

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

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

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

25.06.2019    76781    ids79    28    

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

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

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

10.09.2017    51334    tormozit    74    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    56592    YPermitin    55    

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

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

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

16.05.2019    64387    YPermitin    31    

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

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

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

25.04.2019    18058    m-rv    3    

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

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

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

01.06.2018    37113    m-rv    23    

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

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

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

16.04.2019    23390    m-rv    18    

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    42835    ellavs    131    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

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

28.03.2019    32125    ellavs    90    

Трюки с внешними источниками данных

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    41384    YPermitin    53    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    65979    ids79    11    

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке

Универсальные функции Зарплата Управление персоналом (HRM) Зарплата Кадровый учет v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Бесплатно (free)

В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 3.1 и Зарплата и кадры государственного учреждения 3.1. Иногда бывает довольно сложно правильно получить данные или долго, поэтому лучшим вариантом будет использование стандартных процедур. Буду очень признателен, если Вы поделитесь своим опытом и предложите свои варианты стандартных процедур которые помогают в работе. Или предложите, как дополнить имеющиеся процедуры.

14.11.2018    148003    GeterX    135    

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

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

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

10.11.2018    45095    ids79    46    

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Инструментарий разработчика Методология v8 1cv8.cf Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    93666    stas_ganiev    86    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

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

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

23.08.2018    48813    Rain88    49    

Тестер: частые вопросы

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

Ошибкам бой - тесты норма жизни!

25.07.2018    31607    grumagargler    31    

Работаем с дополнительными реквизитами на форме

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

Пара полезных процедур для работы с дополнительными реквизитами на форме. Далее в статье: 1. Как называются дополнительные реквизиты на форме и в какой момент они появляются на форме? 2. Как проверить до записи корректность заполнения пользователем дополнительного реквизита? 3. Как заполнить значение дополнительного реквизита по другому событию и обновить данные на форме? 4. Как расположить дополнительный реквизит в указанном месте на форме?

15.07.2018    53409    papche    59    

Повышаем эффективность разработки правил обмена

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

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    30284    olegtymko    48    

Введение в механизм представлений в ЗУП ред. 3

Практика программирования v8 v8::СПР ЗУП3.x Бесплатно (free)

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    47620    xrrg    95