Заметки из Зазеркалья

16.09.2021

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

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

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

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

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

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

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

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

  • Текст (например, «Позвоните дежурному администратору по телефону +7 (495) 123-45-67»)

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

При показе сообщения об ошибке под системным сообщением отображается текст помощи (если задан) и ссылка “Нужна помощь” (если задана ссылка на ресурс с информацией). Полный тест ошибки отображается при нажатии на ссылку “Показать подробности…”:

img-01.png

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

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

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

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

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

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

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

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

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

Для разработчиков и администраторов появится возможность задать параметры для отображения сообщений об ошибках при входе в систему, как программно (через новые свойства и методы объектов встроенного языка), так и в стандартной обработке «Управление настройками отображения ошибок» (вызывается из пункта системного меню «Функции для технического специалиста»):
img-02.png
Про параметр «Адрес сервера обработки ошибок при запуске» - в отдельном разделе ниже.

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

 Ситуация     Сообщение
Не удалось установить соединение с сервером «Не удается установить соединение с “<имя базы>”.

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

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

  • Возможно, на сервере идут регламентные работы, попробуйте войти позже.»
Установлена монопольная блокировка Если задано сообщение блокировки – показывается это сообщение, если не задано:
«В данный момент вход в приложение невозможен, ведутся регламентные работы, попробуйте войти позже.»
Установлен запрет начала сеанса  Если задано сообщение о запрете начала сеанса - показывается это сообщение, если не задано:
«В данный момент вход в приложение невозможен, ведутся регламентные работы, попробуйте войти позже.»
Запрет от внешнего управления сеансами Если задано сообщение о запрете - показывается это сообщение, если не задано:
«В данный момент вход в приложение невозможен, ведутся регламентные работы, попробуйте войти позже.»
Любые другие ошибки «В данный момент вход в приложение невозможен, попробуйте войти позже.»

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

Веб-клиент

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

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

img-03.png

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

  • Подключение к веб-серверу по HTTPS

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

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

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

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

img-04.png

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

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

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

Вход через HTTP при установленной блокировке сеансов

При входе через HTTP (через тонкий или веб клиент) добавляется поддержка параметра /UC. Этот параметр указывает код доступа, позволяющий зайти в базу при установленной блокировке сеансов. Это позволит администратору зайти в опубликованную по НТТР базу даже если в ней установлена блокировка сеансов.

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

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

img-05.png

img-06.png

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

Теги: 8.3.21 

Рассказать друзьям: