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

09.09.2021

Работа внешних компонентов в отдельном процессе

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

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

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

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

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

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

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

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

Мы рассчитываем, что это нововведение повысит устойчивость решений на платформе 1С:Предприятие.

Теги: 8.3.21 

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