Настройка обработки ошибок

10.01.2020

Развитие механизма отображения ошибок

Данная статья является анонсом новой функциональности.

Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.


Полное описание новой функциональности будет приведено в документации к соответствующей версии.


Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.17.1091

Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.

img-01.png

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

  • Конечные пользователи: если произошла ошибка — мы хотим показать пользователю подсказку для исправления ошибки (если пользователь может ее исправить сам) или предоставить пользователю удобный способ сообщить об ошибке специалистам (в техподдержку и т.п.).

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

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

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

Для всех

Мы разделили ошибки по категориям:

  • НарушениеПравДоступа

  • ОшибкаДоступаКЛокальномуФайлу

  • ОшибкаСети

  • ОшибкаРаботыСПринтером

  • ОшибкаКомпиляцииВстроенногоЯзыка

  • ОшибкаВоВремяВыполненияВстроенногоЯзыка

  • ОшибкаИспользованияВстроенногоЯзыка

  • ИсключениеВызванноеИзВстроенногоЯзыка

  • ОшибкаСистемыВзаимодействия

  • ОшибкаНастроекКомпоновкиДанных

  • ОшибкаСеанса

  • ОшибкаХранимыхДанных

  • ПрочаяОшибка

Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.

Для конечных пользователей

Изменен внешний вид формы сообщения об ошибке; в частности, в зависимости от категории ошибки показывается соответствующая иконка и текст:
img-02.png

Для прикладных разработчиков

У приложения добавлен обработчик ОбработкаОтображенияОшибки, который вызывается перед тем, как сообщение об ошибке будет показано пользователю.
img-03.png

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

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

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

  • ПредставлениеОшибкиДляПользователя(<ИнформацияОбОшибке>) — возвращает текст ошибки, понятный пользователю (в виде форматированной строки).

  • СообщениеОбОшибкеДляПользователя(<ИнформацияОбОшибке>) — возвращает текст сообщения, которое рекомендуется показать пользователю (в виде форматированной строки). Текст содержит информацию о произошедшей ошибке и инструкцию по ее возможному исправлению.

Доступна как программная возможность формирования отчета об ошибке, так и интерактивная, из формы ошибки. Программно можно добавлять в отчет свои вложения и объекты. Отчет об ошибке можно сохранить на диск. Если в форме «Управление настройками ошибок» задан адрес сервиса регистрации ошибок – отчет можно отправить в этот сервис.

img-04.png

Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».

Для администраторов

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

Администратор же системы может декларативно настраивать тексты и другие моменты отображения ошибок в режиме предприятия (устанавливая настройки в информационной базе). Есть готовая форма для декларативной настройки шаблонов сообщений об ошибках; она вызывается в приложении через системное меню, пункт «Функции для технического специалиста» (бывший «Все функции», подробнее о его переименовании здесь), раздел «Стандартные».

Форма «Управление настройками ошибок»:

img-05.png

Настройки, в частности, позволяют делать сообщения об ошибках более понятными и полезными для пользователя:

img-06.png

Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.

Теги:
8.3.17 

Обновлено: 10.04.2023

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

Понимая это, БухЭксперт8 подготовил специальный сборник по возможным ошибкам 1С. И не просто сделал подборку своих экспертных статей, но и дал конкретные рекомендации по исправлению.

Ошибки в публикации сгруппированы по темам:

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

Информация этого сборника мега-полезна! Мы гордимся, что первыми из обучающих фирм представляем своим пользователям этот единый Путеводитель по ошибкам и их исправлению в 1С. Мы уверены, что он будет вашей «скорой помощью» в самых сложных ситуациях.

Административные

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

1C Отчетность: не удалось расшифровать файл

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

1С удаление: указанная учетная запись уже существует

Внутренняя ошибка компоненты dbeng8

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

Конфигурация узла распределенной ИБ не соответствует ожидаемой

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

Компонента 1С: Печать штрихкодов не установлена на данном компьютере

Конфигурация базы данных не соответствует сохраненной конфигурации 1С

В статье описывается, что может быть этому причиной. Главное — не паниковать!

Лицензия не обнаружена. Не обнаружен ключ защиты программы

При покупке 1С в комплект поставки включается лицензия на данное программное обеспечение. Лицензия может быть представлена в виде аппаратного ключа — специальной флешки для установки в USB-порт компьютера или программного ключа лицензии — пинкода программной защиты.

В статье разбирается, почему программа может не видеть лицензию.

Нарушение прав доступа

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

Нарушение целостности системы 1С

Начало сеанса с информационной базой запрещено

Недостаточно памяти 1С

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

Ошибка Не найден файл внешней компоненты возникает при использовании в 1С дополнительных сервисов, например:

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

Не обнаружена установленная версия 1С Предприятия

Ранее ошибка Не обнаружена установленная версия 1С Предприятия могла появиться при смене платформы 1С: Предприятие с 8.2 на 8.3. Кроме того, ошибка может возникнуть вследствие некорректной установки 1С, при переустановке операционной системы и по иным причинам. Во всех этих случаях файл, отвечающий за запуск платформы 1CEStart.cfg, начинает работать некорректно.

Из статьи вы узнаете, что тут можно сделать.

Обнаружено неправомерное использование данного программного продукта

Ошибка 1С: Начало сеанса с информационной базой запрещено

Ошибка ввода пинкода. Пинкод не укомплектован

Ошибка при выполнении операции с информационной базой 1С 8.3

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

Ошибка формата потока

Ошибка СУБД: файл базы данных поврежден

Ошибка Удаленный узел не прошел проверку в 1С связана с проверкой сертификатов. Начиная с Платформы 8.3.8, 1С при проверке использует те же сертификаты, что и операционная система Windows. Исходя из этого, можно с высокой долей вероятности утверждать, что ошибка связана не с самой 1С, а с настройками подключения к интернету.

У пользователя недостаточно прав на исполнение операции

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

Установка запрещена на основании системной политики

Ошибка Этот хост неизвестен возникает при подключении к серверу 1С и связана с тем, что в процессе запуска базы не удается определить IP-адрес сервера. В статье даются рекомендации по ее исправлению.

Программные

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

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

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

Какой бы ни была причина появления этой ошибки, она говорит об одном: в регистре сведений есть запись с ключевыми параметрами, для которой имеется несколько значений, и программа 1С не знает: какая из этих записей правильная.

В статье дается подробная инструкция по поиску и исправлению ошибки.

Метод объекта не обнаружен

БухЭксперт8 подготовил в статье 3 примера формирования ошибки Метод объекта не обнаружен. Вы познакомитесь с Синтаксис-помощником 1С , узнаете причины появления ошибки и получите рекомендации для ее исправления с использованием встроенной справки 1С.

Неизвестный идентификатор формы

При работе с управляемыми формами 1С можно встретить ошибку Неизвестный идентификатор формы. Чаще всего ее причина — неправильное указание имени формы объекта в программном коде.

Недостаточно фактических параметров

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

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

Поле объекта недоступно для записи

Ошибка Поле объекта недоступно для записи появляется при доработках программного кода и обновлениях программы. БухЭксперт8 подготовил внешние обработки, содержащие ошибки и способы их исправления, которые вы можете скачать.

Поле объекта не обнаружено

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

Переменная не определена

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

Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы

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

Слишком много фактических параметров

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

БухЭксперт8 подготовил подробный разбор причин появления ошибки и рекомендации по ее устранению.

Пользовательские

Большое количество забивается решеткой

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

Значение поля номер не уникально

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

Причина этой ошибки чаще всего — ручное исправление номеров документов.

Конфликт блокировок при выполнении транзакции

Ошибка совместного доступа к файлу

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

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

Заключение

ПУТЕВОДИТЕЛЬ по ошибкам и их исправлению в 1С подготовлен командой профессионалов — консультантами и программистами БухЭксперт8. Сохраните эту страничку в социальных сетях или в закладках как шпаргалку. Пользуйтесь ею онлайн всегда, когда это будет необходимо.

Если вам понадобится дополнительная профессиональная помощь
в работе с 1С:Бухгалтерия 3.0
мы будем рады видеть вас на нашем курсе
Бухгалтерский и налоговый учет в 1С:Бухгалтерия 8 ред.3 от А до Я, ОСНО или УСН на ваш выбор

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    Вы приобрели 1С 8.3 и готовитесь работать на ней или.У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.Ниже вы можете просмотреть запись семинара на тему: «ТОП-9 горячих.Ниже вы можете просмотреть запись семинара на тему: «ТОП-9 горячих.

Карточка публикации

(1 оценок, среднее: 5,00 из 5)

Название reperr образовалось от report и error, произносится как рэпер.

Проект живет на GitHub.

Какие задачи решает reperr?

Как пользоваться?

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

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

Токен генерируется тут:

В следующем окне нужно перейти в раздел «Безопасность»:

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

Затем нужно скопировать исходники проекта на ту машину, на которой он будет работать. Можно клонировать репозиторий или скачать архив из релизов.

Следующий шаг: указать в файле `src/appsettings.json` реквизиты подключения к вашему экземпляру Jira и обязательные параметры, например, задачи какого типа и с каким приоритетом создавать.

Как узнать идентификаторы типов задач / приоритетов / статусов в Jira ?

Вставить в браузер URL, ведущий к Jira API и дописать к нему issuetype, priority или status соответственно.

Из примера выше:

Ответы Jira API будут содержать исчерпывающую информацию.

После установки параметров нужно запустить проект. Сделать это можно по-разному: в докере и неправильным способом напрямую на OneScript.Web.

Я настоятельно рекомендую запускать правильным способом. Для этого в каталоге проекта нужно выполнить команду:

Само собой, движок docker и docker-compose должны быть установлены.

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

Почему такой скудный интерфейс? Где, собственно, дашборды?

Да нет никаких дашбордов) Но они когда-нибудь появятся!

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

Окно с настройками открывается из меню «Функции для технического специалиста» -> «Стандартные» -> «Управления настройками обработки ошибок»:

Можно считать, что первоначальная настройка выполнена. Чтобы проверить работоспособность того, что мы настроили, воспроизведем какую-нибудь ошибку. Самое простое — написать внешнюю обработку с обращением к чему-нибудь несуществующему.

Что произойдет, если ошибка возникнет много раз и у нескольких пользователей? Неужели в трекере появится много одинаковых задач?

Это поведение будет зависеть от выбранной точки интеграции. Если точка интеграции — Jira или Redmine, то не появится. В RabbitMQ и Sentry отправляется каждый отчет.

Проверим, как выглядит результат в Jira. На скриншоте ниже видно, что создана задача REP-53, со стеком и скриншотом. Если при отправке ошибки из 1С прикрепить произвольный файл, то и он отобразится во вложениях.

Опыт эксплуатации и особенности

Решение стабильно работает как в Windows, так и в Linux, дает минимальную нагрузку, работает без сбоев месяцами.

На какие особенности следует обратить внимание:

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

Всем, кто уже перешел на 8.3.17 или 8.3.18, можно смело пользоваться. Я буду очень благодарен за обратную связь, новые идеи, и, конечно, пул-реквесты.

Технические подробности

Этот раздел привожу для тех, кому интересны внутренности приложения.

reperr разработан на документации к платформе. Другие публикации (первая, вторая) на IS хорошо дополняют документацию, поэтому повторяться не буду.

Ядро reperr выполняет три функции:

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

«Прикладная» часть отвечает за:

  • отображение информации в веб-интерфейсе
  • сохранение информации о возникших ошибках и отчетов по этим ошибкам во внутреннем формате
  • вычисление «отпечатков» ошибок
  • принятие решения об отправке ошибки
  • отправку ошибок в точку интеграции

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

  • создать свой класс и реализовать в нем методы программного интерфейса
  • добавить свой ключ в файл настроек appsettings.json
  • немного дополнить класс, который обрабатывает файл настроек.

Если тема окажется актуальной и интересной, я могу создать отдельную публикацию на тему подключения новых точек интеграции, на примере СППР. Какой issue наберет большее количество лайков, на том и сделаю.

PS: в недрах проекта спрятана пасхалка. Ее не так уж сложно найти, нужно совсем немного постараться. Поверьте, это стоит того)

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.17.1091

Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.

img-01.jpg

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

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

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

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

Для всех

Мы разделили ошибки по категориям:

Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.

Для конечных пользователей

Для прикладных разработчиков

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

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

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

ПредставлениеОшибкиДляПользователя(<ИнформацияОбОшибке>) — возвращает текст ошибки, понятный пользователю (в виде форматированной строки).

img-04.jpg

Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».

Для администраторов

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

Форма «Управление настройками ошибок»:

img-05.jpg

img-06.jpg

Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.21 Пробовать

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

Помощь пользователю при ошибке при входе в систему

Если ошибка произошла при входе в систему, пользователю можно будет показать дополнительную информацию, которая сможет помочь ему решить возникшую проблему:

Ссылка на ресурс с информацией (например, на сайт, где описаны способы решения возникшей проблемы)

img-01.jpg

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

Есть варианты работы, когда файлы *.v8i недоступны – работа в облаке, удалённая работа и т.п. Поэтому эту информацию также можно настроить через стандартную обработку «Управление настройками отображения ошибок» (параметры «Текст помощи» и «Навигационная ссылка помощи») и сохранить в инфобазе. Если с клиента уже был ранее осуществлен успешный вход в систему – эти параметры считываются с сервера и кэшируется на клиенте.

Если клиент успешно связался с сервером и считал актуальные значения параметров «Текст помощи» и «Навигационная ссылка помощи», но далее при работе системы возникли проблемы при соединении с сервером – в диалоге попытки повторного подключения будут использованы последние считанные значения параметров.

Обратите внимание! Информация, записанная в файле *.v8i, и настройки параметров «Текст помощи» и «Навигационная ссылка помощи» — независимы друг от друга. В случае, если доступен файл *.v8i, но недоступен сервер 1С и на клиенте нет закэшированных значений параметров «Текст помощи» и «Навигационная ссылка помощи» – пользователю будет показана информация из файла *.v8i, в противном случае – информация из параметров «Текст помощи» и «Навигационная ссылка помощи».

Настройки подключения к базе

В файл списка баз (*.v8i) в свойства базы добавляется параметры:

StartupErrorHelpText (строка) – текст, отображаемый в диалоге ошибки до начала сеанса или диалоге попытки повторного подключения

StartupErrorHelpURL (строка) – ссылка на ресурс с информацией

Тонкий клиент

Проверьте сетевое соединение

Проверьте, что параметры подключения указаны верно

Если проблема возникла уже после начала работы с системой — на форме повтора попытки соединения с сервером отображаемый текст будет таким же, как и на таблице вверху, а полный текст можно посмотреть, нажав на ссылку «Показать подробности…».

Веб-клиент

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

img-03.jpg

Это будет работать при соблюдении нескольких условий:

На веб-сервер уже был осуществлен удачный вход из браузера (для кэширования на клиенте страницы, показывающей информацию об ошибке)

Браузер должен поддерживать технологию service-workers

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

Выше мы упомянули параметр «Адрес сервиса обработки ошибок при запуске».

img-04.jpg

Если этот параметр задан, то при ошибках запуска по этому адресу клиент 1С сделает запрос дополнительной информации. А по этому адресу можно настроить веб-сервер, который будет отдавать более подробную информацию о текущей ситуации — информировать пользователей при возникновении неожиданных аварийных ситуаций и / или недоступности сервера и т.п. Например, можно отобразить пользователю текст “Мы уже работаем над проблемой. Работа сервера возобновится после 14:00”.

Для поддержки это сценария можно реализовывать совсем простой вариант: просто положить JSON-файл в папку и настроить веб-сервер (Apache, nginx, IIS) на отдачу этого файла. При возникновении проблем на сервере можно вписать в этот файл необходимый текст (userMessage) и настроить время, до которого этот текст будет отображаться на форме (в нашем примере – до 14:00).

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

Отчет об ошибке

При формировании отчета об аварийном завершении добавляется возможность показа окна “О программе”.

img-05.jpg

img-06.jpg

Приветствую, коллеги! В данной статье мы подробно рассмотрим системную утилиту «Тестирование и исправление информационной базы» в 1С 8.3 и особенности её использования.

Рисунок 1 Режимы тестирования и исправления информационной базы
Рисунок 1 Режимы тестирования и исправления информационной базы

Режим тестирования и исправления вызывается в конфигураторе системы 1С 8.3 выбором меню «Администрирование → Тестирование и исправление».

Если у Вас возникла необходимость провести процедуру тестирования и исправления информационной базы 1С:

· во-первых, следует создать копию базы данных (если это возможно, т.к. иногда структура базы становится настолько «покалечена», что отсутствует даже возможность создать резервную копию).

· во-вторых, после создания резервной копии следует открыть «Конфигуратор → Администрирование → Тестирование и исправление…»

Проверки и режимы

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

Процедура позволяет выбрать проверки и режимы, которые должны быть выполнены для текущей информационной базы.

· Реиндексация таблиц – это перестроение индексов таблиц, направленное на повышение быстродействия работы базы.

· Проверка логической целостности – это целое множество проверок логики базы данных

· Проверка ссылочной целостности – это подмножество проверки логической целостности базы данных, существующее для отдельной работы с «битыми» ссылками. Конкретнее будет объяснено ниже по тексту.

· Пересчет итогов – расчет итогов таблиц регистров накопления.

· Сжатие таблиц информационной базы – данный пункт отвечает за уменьшение размера базы после тестирования. Объяснить уменьшение размера базы можно, например, так: когда из базы удаляется объект, он, по сути, остается в базе внутри, но невидимым для конечного пользователя. Сделано это для того, чтобы объект все-таки можно было восстановить уже после полного удаления из базы (хотя мы с таким не сталкивались). А сжатие таблиц убирает информацию об удаленных уже объектах из базы данных. От этого таблицы становятся меньше (это всего лишь один пример, как работает сжатие). Действие «Сжатие таблиц информационной базы» доступно только для файлового варианта. Остальные варианты работают и в файловом и в серверном режиме.

· Реструктуризация таблиц – пример можно привести такой: берется таблица № 1, создается копия ее структуры, например, Таблица № 2, и данные из таблицы № 1 копируются порциями в таблицу № 2.

Имеется возможность выполнять только тестирование или тестирование с исправлением.

Пункты настроек по обработке ошибок базы становятся доступными для выбора при варианте обработки «Тестирование и исправление», а также режиме «Проверка ссылочной целостности информационной базы».

Читайте также:

  • Не работает найти iphone в браузере
  • При нажатии на enter открывается браузер
  • Как удалить плагин cinema 4d
  • Microsoft office профессиональный плюс 2010 что это
  • 1с зкгу начисление военнослужащим и гражданскому персоналу настройки взносов

10.01.2020

Развитие механизма отображения ошибок

Данная статья является анонсом новой функциональности.

Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.


Полное описание новой функциональности будет приведено в документации к соответствующей версии.


Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.17.1091

Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.

img-01.png

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

  • Конечные пользователи: если произошла ошибка — мы хотим показать пользователю подсказку для исправления ошибки (если пользователь может ее исправить сам) или предоставить пользователю удобный способ сообщить об ошибке специалистам (в техподдержку и т.п.).

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

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

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

Для всех

Мы разделили ошибки по категориям:

  • НарушениеПравДоступа

  • ОшибкаДоступаКЛокальномуФайлу

  • ОшибкаСети

  • ОшибкаРаботыСПринтером

  • ОшибкаКомпиляцииВстроенногоЯзыка

  • ОшибкаВоВремяВыполненияВстроенногоЯзыка

  • ОшибкаИспользованияВстроенногоЯзыка

  • ИсключениеВызванноеИзВстроенногоЯзыка

  • ОшибкаСистемыВзаимодействия

  • ОшибкаНастроекКомпоновкиДанных

  • ОшибкаСеанса

  • ОшибкаХранимыхДанных

  • ПрочаяОшибка

Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.

Для конечных пользователей

Изменен внешний вид формы сообщения об ошибке; в частности, в зависимости от категории ошибки показывается соответствующая иконка и текст:
img-02.png

Для прикладных разработчиков

У приложения добавлен обработчик ОбработкаОтображенияОшибки, который вызывается перед тем, как сообщение об ошибке будет показано пользователю.
img-03.png

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

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

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

  • ПредставлениеОшибкиДляПользователя(<ИнформацияОбОшибке>) — возвращает текст ошибки, понятный пользователю (в виде форматированной строки).

  • СообщениеОбОшибкеДляПользователя(<ИнформацияОбОшибке>) — возвращает текст сообщения, которое рекомендуется показать пользователю (в виде форматированной строки). Текст содержит информацию о произошедшей ошибке и инструкцию по ее возможному исправлению.

Доступна как программная возможность формирования отчета об ошибке, так и интерактивная, из формы ошибки. Программно можно добавлять в отчет свои вложения и объекты. Отчет об ошибке можно сохранить на диск. Если в форме «Управление настройками ошибок» задан адрес сервиса регистрации ошибок – отчет можно отправить в этот сервис.

img-04.png

Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».

Для администраторов

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

Администратор же системы может декларативно настраивать тексты и другие моменты отображения ошибок в режиме предприятия (устанавливая настройки в информационной базе). Есть готовая форма для декларативной настройки шаблонов сообщений об ошибках; она вызывается в приложении через системное меню, пункт «Функции для технического специалиста» (бывший «Все функции», подробнее о его переименовании здесь), раздел «Стандартные».

Форма «Управление настройками ошибок»:

img-05.png

Настройки, в частности, позволяют делать сообщения об ошибках более понятными и полезными для пользователя:

img-06.png

Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.

Теги:
8.3.17 

Содержание:

1.      Обработка исключительной ситуации

2.      Совершаем ошибку в 1С 8.3

3.      А что еще можно делать с результатом попытки?

4.      А ваши транзакции то здесь при чём?  

1.      Обработка исключительной ситуации

—        Приветствую, Амиго! Ты, как я понял, пришёл на мою лекцию по физическим основам изготовления термитных пирамидок для заряда аппаратов гиперболоидной конструкции? Нет? А зачем тогда?

—        Здравствуйте, профессор. Сегодня мы собирались разобрать конструкцию «Попытка-Исключение».

—        А… Это… Ну, тогда вот:

—        Кажется, понятно. А можно примеров добавить?

—        Ох уж эти юные роботы, всегда хотят практики. С примерами это будет выглядеть вот так:

Ох, извини, это для старых баз. На новых космолётах с прошивкой выше 8.1 есть более удобный способ узнать код ошибки.  

2.      Совершаем ошибку в 1С 8.3

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

В ответ получим:

Нажимаем на кнопку «Подробно…» и видим: Деление на 0 {NudlsProff_Расширение.NudlsProff_ФормаОшибок.Форма(96)}: Результат = 1/0

Добавляем нашей красоты:

Теперь пользователю ВИДНО, что случилось. И ПОНЯТНО, что с этим делать.

Описание=’Деление на 0′

ИмяМодуля=’NudlsProff_Расширение.NudlsProff_ФормаОшибок.Форма’

НомерСтроки=99

ИсходнаяСтрока=’        Результат = 1 / 0;’

Позвоните Профессору Нудлсупо тел+7 (495) 125-23-77

и ознакомьтесь с теорией деления на ноль

https://elementy.ru/email/1530320/Pochemu_nelzya_delit_na_nol     

3.      А что еще можно делать с результатом попытки?

—        А что ещё мы можем делать в результате с попыткой?

—        Мы можем обработать попытку в попытке.

По своей сути Попытка-Исключение – это отлов исключительной ситуации. Ситуации, которая может произойти. Возможно, даже и не по вине юного робота. Робот же должен учесть все возможные ситуации при написании кода и обработать их. Но наш мир не идеален и даже программы не всегда работают идеально. Именно тогда мы и должны проанализировать возможные последствия и понять, что для нас важнее: чтобы код выполнился до конца или вызвать прерывание работы ошибочного кусочка кода, но дать пользователю исправить ситуацию и продолжить работу.

—        Профессор, Вы опять забыли про примеры.

—        Ах, да, конечно. Например, мы записывали файл на диск. Пользователь, конечно, выбрал папку для записи файла, но случайно удалил её во время работы программы. Вся наша программа рухнет из-за невнимательности.

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

4.      А ваши транзакции то здесь при чем?

—        То есть если в программе что-то может пойти не так, например, при записи файла на диск, обработке web-hook, работе с API, синхронизации с другими базами, записи изменений в справочник или документ, для безопасности я должен обернуть потенциально опасный кусочек кода в Попытку-Исключение, и тем самым пользователь сможет продолжить работу, а мы всегда будем знать, где именно и почему возникает ошибка?

—        Да, Амиго, все верно! Кстати, поскольку уж речь зашла о записи объектов баз данных, очень важно не забывать правильно закрывать ваши транзакции:

 

Специалист компании «Кодерлайн» 

Алексей Зятнин

О чем эта статья

Эта статья продолжает цикл «Первые шаги в разработке на 1С». Прочитав ее, вы узнаете:

  • Куда обращаться в случае подозрения на ошибку платформы, 1C.EDT и PostgreSQL 1C?
  • Что и как писать в вашем обращении?
  • Где и как посмотреть существующие ошибки?

Применимость

В статье рассматривается порядок регистрации ошибок платформы «1С:Предприятие» 8, 1C.EDT и PostgreSQL 1C. Информация актуальна для текущих релизов указанных продуктов.

Как в 1С регистрировать ошибки

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

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

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

  • v8@1c.ru
  • testplatform@1c.ru
  • betaplatform@1c.ru

Первый адрес – v8@1c.ru. Это первая линия поддержки и консультаций по продуктам. Также используется для вопросов по типовым решениям, лицензированию и т.п. Важно отметить, что все продукты, по которым принимаются обращения на этот адрес, должны иметь статус финальных. Кроме того, перед обращением следует проверить, не была ли зарегистрирована данная ошибка ранее.

При расследовании проблемы, в случае если на демо-базе не удастся воспроизвести ваш проблемный кейс, на данный адрес могут попросить прислать выгрузку базы, на которой наблюдается проблема. Если у вас нет возможности предоставить базу, на которой воспроизводится проблема (не разрешает заказчик, нет доступа к конфигуратору, нет прав, у базы слишком большой размер и т.д.), то максимально подробно смоделируйте вашу ситуацию на демо-базе. Рекомендуем написать очень подробный текстовый сценарий воспроизведения вашей проблемной ситуации со скриншотами. Если есть возможность записать все в формате видео, то запишите – лишним точно не будет!

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

Для отправки писем на этот адрес нужно иметь действующую подписку ИТС.

Второй адрес – testplatform@1c.ru. Представляет куда больший интерес. Он предназначен только для регистрации обращений, связанный с тестовыми версиями платформы (ошибки в финальных версиях, не воспроизводящиеся в крайних тестовых версиях также не регистрируются).

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

Также не требуется подписка ИТС, поэтому Вы можете свободно регистрировать ошибки, обладая учебной версией платформы. Единственное условие – платформа должна быть тестовой.

Следует отметить, что в отличие от v8@1c.ru, по данному адресу не предоставляются никакие консультации, а также не принимаются ошибки типовых конфигурации, если они не являются ошибками платформы.

Для обращения по этому адресу нужно выполнить следующие действия:

  • Указать версию тестовой платформы. Понять, тестовая версия или нет, можно, просто заглянув на releases.1c.ru и убедившись, что данная версия находится в статусе как версия для ознакомления.
  • Максимально подробно по шагам описать сценарий воспроизведения ошибки. Идеально, если вы запишите это в формате видео. Здесь рекомендуется описывать воспроизведение ошибки так, чтобы человек, который будет пытаться её повторить, сделал бы это без уточняющих вопросов. Если вы работаете в коллективе, попробуйте ваше описание отдать коллеге и понаблюдать, сможет ли он воспроизвести ошибку по вашему сценарию без обращения к вам. Если да – работа сделана! Если нет, то нужно попытаться более качественно подготовить информацию об ошибке. И не забываем, что если в вашем сценарии платформа сваливается в дамп, обязательно отправляйте и его тоже.
  • Указать сведения о рабочем окружении, на котором воспроизводится ошибка: вариант развертывания базы (файловый/клиент-серверный), тип клиента, версию ОС, СУБД, если ошибка по мобильному клиенту/платформе, то название устройства, и т.д.

Третий адрес, betaplatform@1c.ru, следует использовать при обнаружении ошибки в предварительной бета-версии продукта, до выпуска тестового релиза. Как правило, этот адрес используется для конструктивной обратной связи по новому функционалу бета-продукта.

Правила обращения на указанный адрес аналогичны обращениям на testplatform@1c.ru с возможным указанием каких-то неудобств в продукте, отсутствующей на ваш взгляд функциональности, сценариев работы и т.д.

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

Кроме того, выше речь шла о платформе, но ровно то же самое справедливо и для 1С:EDT и PostgreSQL 1C. Обращения по указанным каналам регистрируются по тем же самым правилам.

Нам кажется, что будет уместно дать еще один небольшой совет по этой теме в ключе планирования перехода с одной версии платформы на другую.
Допустим, ваш продуктовый контур работает на платформе 8.3.14, а вы планируете в недалеком будущем поднять версию платформы до актуальной. На момент написания этой статьи финальная версия платформы 8.3.16, а версия для ознакомления (тестовая) 8.3.17. На какой версии тестировать переход? На финальной 8.3.16 или на ознакомительной 8.3.17?

Правильнее, с нашей точки зрения, для тестирования перехода использовать именно ознакомительный старший тестовый релиз 8.3.17 и вот почему. Ваше тестирование на реальных данных, на реальных рабочих кейсах, возможно, выявит какие-то проблемные кейсы, о которых вы хотели бы сообщить отделу разработки. В этом случае, как описано выше, вы отправляете обращение на testplatform@1c.ru. Если проблема подтвердится, то с большой долей вероятности можно утверждать, что в финальной версии 8.3.17, она уже будет исправлена.

Если же вы будете тестировать переход на финальной 8.3.16, то эти же самые действия вы будете делать позже, при переходе на финальную 8.3.17, но время реакции на ваше обращение, скорее всего, будет выше, т.к. зарегистрировать обращение через testplatform@1c.ru уже не получится и вы будете ждать вашей очереди на v8@1c.ru, оставаясь при этом на версии 8.3.16.

Примеры обращений в тех. поддержку 1C

Рассмотрим несколько примеров обращений в тех. поддержку.

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

Мобильная платформа

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

Вот, как это выглядит на настольной платформе:

Ошибка на настольной платформе

А так – на мобильной:

Ошибка на мобильной платформе

Думаю, ошибка очевидна.

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

Создаем пустую базу, создаем форму в Общих формах. На форме рисуем простейший пример – 2 страницы с одной кнопкой на каждой из них.

Конфигурация: создание формы

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

Теперь перейдем к написанию письма. Вот пример моего обращения:

Тема: Мобильная платформа: неверное отображение вкладок

Текст письма:

Добрый день!

Мобильная платформа: 8.3.5.52
В мобильной платформе не корректно отображаются страницы с вариантом отображения «Закладки слева». Воспроизводится на Samsung Galaxy S2 и S4.
Во вложении – пример базы, в которой возникает ошибка.

С уважением, Вадим Невзоров

Вложения:
Страницы.dt
Скриншот страниц.jpg

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

Спустя полчаса получаем ответ:

Ответ тех. поддержки 1С

Это означает, что письмо было принято, и сейчас ошибка рассматривается. Спустя 10 минут приходит еще одно сообщение:

Регистрация ошибки в 1С

Отлично, ошибка зарегистрирована! Более того, у нас есть ее номер. Что с ним делать дальше?

На сайте 1С есть специальный раздел «Публикация ошибок» – https://bugboard.v8.1c.ru/ (доступен только тем, у кого есть подписка ИТС). В этом разделе можно отслеживать исправленные и неисправленные ошибки для разных версий настольной и мобильной платформы.

Публикация ошибок на сайте 1С

Страница «Поиск ошибок» предназначения для удобного поиска нужной ошибки. Ошибки можно искать по коду, номеру обращения (если обращение было через адрес v8@1c.ru) и по словесному описанию.

Например, в предыдущих версиях мобильной платформы на моем телефоне Samsung Galaxy S4 была неприятная ошибка – при попытке сделать фото с помощью метода СредстВамультимедиа.СделатьФотоснимок(), устройство полностью уходило в перезагрузку.

Попробуем найти ошибку по строке «Galaxy S4».

Поиск ошибок на сайте 1С

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

Обратите внимание на ссылки внизу. Первые две предназначены для определения приоритетов – чем больше человек сообщит о важности ее исправления, тем быстрее (теоретически) она будет исправлена.

Ссылка «Включить подписку» нужна для удобного отслеживания ошибки.

Чтобы каждый раз не искать по словам, можно «подписаться» на ошибку, после чего она будет отображаться в разделе «Подписки».

Так этот раздел выглядит в нашем случае:

Подписка на обновление данных публикуемых ошибок

Вернемся к нашей зарегистрированной ошибке. Попробуем найти ее по коду из письма:

Ввод кода ошибки в поиск

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

Причем в некоторых случаях процесс может очень затянуться – приведенная в данном примере ошибка была зарегистрирована 19 мая, однако до сих пор (на момент написания статьи – 10 июля) не выложена на сайт.

Но это просто неудачный пример. В любом случае, рано или поздно ошибка будет опубликована и исправлена.

Рассмотрим еще один пример обращения.

Пример 2. Как известно, в мобильной платформе 8.3.5 добавили средства работы с SMS-сообщениями.

Можно отправлять и получать сообщения, смотреть содержимое, прикрепленные файлы (для MMS) и т.п.

При этом нельзя читать сообщения, хранящиеся в памяти телефона – можно только подписаться на появление новых сообщений, пока работает 1С.

Делается это так:

ПолучательСообщений = Новый ОписаниеОповещения(«ПолучениеСообщения», ЭтотОбъект);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ПолучательСообщений);

Метод ПодключитьОбработчикSMSСообщений подключает обработчик ожидания, который срабатывает в момент прихода нового сообщения.

Есть и другой метод – ОтключитьОбработчикSMSСообщений, который выполняет обратное действие.

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

Создаем простейший пример – форму с двумя кнопками подключения и отключения обработчика SMS-сообщения.

Создание формы в Конфигурации

Исходный код модуля:

&НаКлиенте
Процедура ПодключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения(“ПолученоСообщение”, ЭтаФорма);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры

&НаКлиенте
Процедура ОтключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения(“ПолученоСообщение”, ЭтаФорма);
СредстваТелефонии.ОтключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры

&НаКлиенте
Процедура ПолученоСообщение(Сообщение, Параметры) Экспорт
Предупреждение(Сообщение.Текст);
КонецПроцедуры

Пишем письмо:

Тема: Мобильная платформа: не работает отключение обработчика получения сообщений
Текст письма:

Добрый день!

Мобильная платформа: 8.3.5.58
Платформа игнорирует отключения обработчика ожидания для получения смс сообщений. После отключения, при приходе смс обработчик продолжает Вызываться.
Во вложении – пример мобильной БД, в которой возникает ошибка. Воспроизводится на Samsung Galaxy S2 и S4.

С уважением, Вадим Невзоров

Вложения: СМС сообщения – отключение обработчика.dt

Получаем ответ:

Ответ поддержки 1С

Идем на сервис публикации ошибок, ищем нашу ошибку:

Публикация ошибок

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

Возможно, после прочтения статьи у Вас возникнет вопрос – зачем это все? Ведь у фирмы 1С есть свой отдел тестировщиков, и рано или поздно ошибку выявят и исправят.

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

За день до написания этой статьи вышла новая версия мобильной платформы – и вот результат:

Ошибки Мобильной платформы версии 8.3.5.63

В заключение отметим, что существует официальная партнерская конференция, в которую имеют доступ сотрудники фирм франчайзи и другие специалисты. Часто начинающие разработчики и их старшие коллеги пытаются зарегистрировать ошибку, создавая пост в данной конференции. Но по правилам данный форум не является ресурсом для разбора и регистрации ошибок. Поэтому для детального расследования ошибки, как мы и писали ранее, свое сообщение следует отправлять в службу технической поддержки пользователей на электронную почту v8@1c.ru. Только в этом случае вам:

  • Гарантированно ответят специалисты фирмы «1С»
  • Совместно с вами подготовят всю нужную информацию для прояснения и диагностирования ситуации
  • В случае признания ошибки направят ваше обращение разработчикам для исправления ошибки.

Иногда специалисты фирмы 1С могут зарегистрировать ошибку на основе обсуждений темы в форуме. Но данная регистрация, во-первых, не гарантирована и нигде не регламентирована, во-вторых, если такая ошибка и будет зарегистрирована, то она считается внутренней и не будет опубликована на соответствующем баг-трекере и вы не сможете отслеживать по ней информацию. Поэтому для расследования ошибки свое сообщение лучше и правильнее отправлять на v8@1c.ru.

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

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

Поэтому призываем относиться с пониманием к просьбе сотрудников фирмы «1С» регистрировать сообщения об ошибках не через форум, а через названные выше каналы регистрации. Ну и, конечно, поменьше вам ошибок!

Но никакие ошибки не смогут помешать нам продолжать знакомство с возможностями платформы «1С:Предприятие 8», и в следующей статье мы вернемся к изучению управляемых форм. :)

Вадим Невзоров,
г. Одесса

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Статья по программированию - в PDF-формате

Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)

Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.

В начале юридического договора, особенно в ИТ области, обычно есть раздел под названием Термины. В нем объясняется — что значит или включает в себя то или иное ИТ слово.

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

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

Что означает термин «ошибка» в программировании и в 1С

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

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

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

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

Например, программист задумывал, что сначала пользователь откроет файл, а потом программа сделает то-то и то-то. Однако когда программа была скопирована пользователю на компьютер и пользователь забыл открыть файл. Или пытался открыть, но файл оказался некорректный или винчестер «битый».
И программа сообщает пользователю: Эй, тут ошибка! Я не могу сделать то, что должна.

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

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

Третий уровень – это ошибки 1С в данных. Данные в базе данных взаимосвязаны друг с другом. Тем не менее могут встречаются ситуации когда данные «портятся». Например, в одной из форм не стоят достаточные проверки, чтобы особенно креативный пользователь ввел что-то неправильно. Далее программа может сработать неверно, потому что алгоритм не предполагал что кто-то введет такое..

Сообщение об ошибке 1С

1С сообщает об ошибке выполнения программы на языке 1С с помощью типового окошка с текстом ошибки 1С и кнопками ОК и Подробнее.

Причем секрет тут в том, что в этом окошке отображается только краткое сообщение об ошибке 1С, которое зачастую программисту ни о чем не говорит.

Чтобы увидеть полное – нужно нажать на кнопку Подробно. Уже там будет отображена даже строка программы, в которой произошла ошибка 1С. Также можно перейти прямо в конфигуратор к этой строке.

Но пользователи об этом не знают.. И всегда присылают скриншот того первого окошка. Если присылают 🙂

Генерация исключения

Итак, мы рассматриваем ошибку 1С в программировании как способ/возможность программе сообщить пользователю о том, что она не может что-то сделать.

Пример. Нужно открыть файл. Но при открытии возможны ошибки 1С – например у пользователя нет доступа на чтение файла. Мы можем написать так:

Файл = ОткрытьФайл(ИмяФайла);
Если Файл = Ложь Тогда
      Сообщить(«Не удалось открыть файл»);
Иначе
      //программа идет дальше, делаем что-то с файлом
КонецЕсли;

В данном примере мы учли, что файл может быть не открыт с помощью конструкции «Если».

Однако у данного примера есть очевидные минусы:

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

Поэтому в программировании принято использовать прием под названием «генерировать исключение» — то есть позволить ошибке 1С произойти.

Программа делает вид, что файл в любом случае откроется. Никаких «Если» не пишется. Если же что-то пойдет не так, то программа собственно и сообщит об ошибке 1С – ее выполнение прервется.

1С сама файл не открывает – она вызывает команду Windows API. Windows написана также с использованием этого приема. Таким образом Вы можете представить себе цепочку прерываний выполнения, начинающуюся с Windows:

  • Язык 1С – команда открыть файл
  • Платформа 1С – команда открыть файл
  • Windows API – команда открыть файл
  • Программа на ассемблере – команда открыть файл
  • Опа! Файл не открывается!
  • Программа на ассемблере прервана!
  • Функция Windows API прервана!
  • Платформа 1С выполнение программы прервано!
  • Программа на языке 1С прервана!
  • Пользователь видит сообщение.

Вопрос: кто выводит тогда сообщение об ошибке 1С? Откуда оно берется?

Перехват и обработка исключения

Так мы подходим к следующему приему: перехват исключений, сгенерированных во время выполнения этой цепочки.

Исключения переходят с нижнего уровня выполнения наверх, по цепочке. Если последний уровень не обработал исключение – то это сделает предыдущий уровень.

Пример. Обработаем исключение в языке 1С:
Попытка
      Файл = ОткрытьФайл(ИмяФайла);
      Строка = Файл.Прочитать();
Исключение
      Сообщить(«Файл не удалось открыть: не существует или нет прав доступа»);
КонецПопытки;

В этом примере мы обработали самостоятельно исключение (т.е. исключительную ситуацию или ошибку 1С). Таким образом именно мы сообщаем пользователю о произошедшей «ошибке» — невозможности открыть файл.

Когда мы делаем это самостоятельно – мы можем и не сообщать пользователю ничего, а просто пойти по другому варианту выполнения программы.

Легко заметить, что этот способ можно применять в том числе и на случай, когда в каком-то участке кода может произойти «какая-нибудь» ошибка 1С. Мы ее «ловим» и обрабатываем или сообщаем о ней пользователю.

Что будет, если не перехватить и не обработать ошибку 1С на нашем «верхнем» уровне? Тогда о ней сообщит следующий уровень ниже — платформа 1С. Как она это делает, мы только что говорили и смотрели на скриншоте.

Что будет, если платформа не отработает это? Правильно – это обычно отработает более нижний уровень – Windows. В этом случае программа 1С «упадет», а Windows сообщит – программа совершила недопустимую операцию и будет закрыта.

Что будет, если Windows не отработает это? Вы наверняка это видели – компьютер зависнет или перезагрузится.

Вложенный перехват и транзакции

Как Вы думаете, какие сообщения увидит пользователь при выполнении данного примера?

Попытка
      Попытка
           ф = 1/0;
      Исключение
           Сообщить("Конкретная ошибка");
      КонецПопытки;
Исключение
      Сообщить("Общая ошибка");
КонецПопытки;

Верно! Сработает внутренний обработчик и сообщит «Конкретная ошибка», а внешний не сработает.

Однако с точки зрения программы здесь произошла ошибка 1С, хотя она и была отработана. Где-то там у себя в мозгах платформа запомнила – здесь была ошибка 1С.

Это имеет значение для выполнения транзакций. Транзакция – это несколько действий с данными в базе данных, которые должны выполняться только вместе. Как мы понимаем возможно причиной их невыполнения вместе могут быть ошибки 1С. Поэтому существует следующий механизм:

НачатьТранзакцию();
//создали справочник 1, но на самом деле он не записался в базу данных
Спр1.Записать();
//создали справочник 2, но на самом деле он не записался в базу данных
Спр2.Записать();
ЗафиксироватьТранзакцию();
//эта команда записала в базу данных все, что было сделано начиная с ‘НачатьТранзакцию’

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

Если Вы при написании подобного кода понимаете, что в этой строке кода может быть ошибка 1С – Вы можете поставить ее обработку с помощью Попытка/Исключение. Однако платформа в этом случае все равно учтет, что ошибка 1С произошла и не станет фиксировать транзакцию и записывать данные в базу данных.

Непреднамеренные ошибки 1С

Итак, в программе 1С программистом может быть допущена ошибка 1С. В этом случае платформа 1С сообщит о ней.

В случае, если не удается понять, почему и когда такая ошибка 1С возникает, Вы можете использовать Попытка/Исключение, чтобы обработать ошибку 1С.

Также Попытка/Исключение можно использовать в случае, когда Вы хотели бы создать гарантированно безошибочный участок программы. Вы сможете быть уверены, что если даже ошибка 1С произойдет, то Вы ее отлавливаете и отрабатываете специальным образом.

Преднамеренные ошибки 1С

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

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

Собственный вызов ошибки 1С

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

Это можно сделать вот так:

Функция СделатьЧтото(Параметр)
      Если Параметр = Неопределено Тогда
           ВызватьИсключение «Ошибка в функции СделатьЧтото. Не указан параметр»;
      КонецЕсли;
КонецФункции

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

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

Более корректные способы сообщения об ошибке 1С

Обычно когда требуется сообщить что-то пользователю, используются функции Сообщить() или Предупреждение().

Однако в типовых конфигурациях, таких как Бухгалтерия, Управление торговлей, УПП – есть специальная функция:
ОбщегоНазначения.СообщитьОбОшибке(«Текст»);

Ее плюсы:

  • Форма сообщения зависит от запущенного клиента
  • Записывает сведения в журнал регистрации
  • В некоторых конфигурациях реализована более красивая форма сообщения об ошибке 1С.

Анализ ошибок

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

В конфигураторе выберите пункт меню Администрирование/Журнал регистрации.

Нажмите кнопку Отбор (как на картинке). Установите отбор событий только по ошибкам 1С.

Журнал отобразит список происходивших ошибок. Кликните на строчку, чтобы рассмотреть конкретное сообщение подробнее.

Загрузка…

Разработки 1С:Предприятие

Разработки 1С:Предприятие

Каталог решений — Групповое управление настройками обработки ошибок

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

Более удобная обработка, чем платформенная.

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

Умеет: прочитать пользователей ИБ (в связке с пользователями БД или без них, с группировкой по смысловым справочникам БСП или в плоском виде), показать их настройки, изменить их настройки, в т.ч. групповым образом. Простой интерфейс, минимум трудозатрат по указанию шаблонов «текстов для ошибок» пользователям, если их много. Для каждой категории ошибок.

Влияет, разумеется, только на вновь запускаемые сеансы, т.е. сначала настраиваем, потом запускаем пользователей.

Ну и немножко забавного:

Развитие Механизма отображения ошибок

Новости > Инсайд новости платформы 1С8

Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.

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

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

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

Для всех

Фирма 1С разделила ошибки по категориям:

  1. НарушениеПравДоступа
  2. ОшибкаДоступаКЛокальномуФайлу
  3. ОшибкаСети
  4. ОшибкаРаботыСПринтером
  5. ОшибкаКомпиляцииВстроенногоЯзыка
  6. ОшибкаВоВремяВыполненияВстроенногоЯзыка
  7. ОшибкаИспользованияВстроенногоЯзыка
  8. ИсключениеВызванноеИзВстроенногоЯзыка
  9. ОшибкаСистемыВзаимодействия
  10. ОшибкаНастроекКомпоновкиДанных
  11. ОшибкаСеанса
  12. ОшибкаХранимыхДанных
  13. ПрочаяОшибка

Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.

Для конечных пользователей

Изменен внешний вид формы сообщения об ошибке; в частности, в зависимости от категории ошибки показывается соответствующая иконка и текст:

Для прикладных разработчиков

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

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

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

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

1. ПредставлениеОшибкиДляПользователя(<ИнформацияОбОшибке>) — возвращает текст ошибки, понятный пользователю (в виде форматированной строки).

2. СообщениеОбОшибкеДляПользователя(<ИнформацияОбОшибке>) — возвращает текст сообщения, которое рекомендуется показать пользователю (в виде форматированной строки). Текст содержит информацию о произошедшей ошибке и инструкцию по ее возможному исправлению.

Доступна как программная возможность формирования отчета об ошибке, так и интерактивная, из формы ошибки. Программно можно добавлять в отчет свои вложения и объекты. Отчет об ошибке можно сохранить на диск. Если в форме «Управление настройками ошибок» задан адрес сервиса регистрации ошибок – отчет можно отправить в этот сервис.

Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».

Для администраторов

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

Администратор же системы может декларативно настраивать тексты и другие моменты отображения ошибок в режиме предприятия (устанавливая настройки в информационной базе). Есть готовая форма для декларативной настройки шаблонов сообщений об ошибках; она вызывается в приложении через системное меню, пункт «Функции для технического специалиста» (бывший «Все функции», подробнее о его переименовании здесь), раздел «Стандартные».

Форма «Управление настройками ошибок»:

Настройки, в частности, позволяют делать сообщения об ошибках более понятными и полезными для пользователя:

Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.

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

Copyright©, «Программист 1С в г.Минске», 10.01.2020

Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник

Понравилась статья? Поделить с друзьями:
  • Настройка 404 ошибки htaccess
  • Настройка интернета ошибка 651
  • Настенный котел висман ошибка f59
  • Настроить устройство поблизости произошла ошибка
  • Настенный котел вайлант ошибка f75