Новости 1С: Отправка уведомлений с сервера в клиентское приложение в 1С 8.3.26
Меню

Отправка уведомлений с сервера в клиентское приложение в 1С 8.3.26

Содержание статьи
  1. Как сейчас в версии 1С 8.3.24
  2. Как будет в 1С 8.3.26
    1. 100% доставка уведомлений

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

Механизм отправки уведомлений будет обеспечивать гарантированную доставку уведомлений с сервера до клиентского сеанса.

Как сейчас в версии 1С 8.3.24

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

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

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

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

Как будет в 1С 8.3.26

Новый механизм позволит отказаться от использования Системы взаимодействия тем пользователям, которые обращались к ней только для целей оповещения о ходе серверных операций.

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

Будет реализован объект МенеджерУведомленийКлиента, который предоставит возможность отправки уведомлений с сервера в клиентские сеансы. Методы нового объекта (подробное описание методов и их параметров будет доступно в документации):

  • ПодключитьОбработчик(<Ключ>, <Обработчик>). Клиентский метод – подключает обработчик уведомлений клиента. Если параметр Ключ установлен в строковое значение, то используется это строковое значение для адресного отключения обработчиков. Ключ в позиции Неопределено – обработчик будет вызываться для всех полученных уведомлений.
  • ОтключитьОбработчик(<Ключ>). Клиентский метод – отключает обработчик уведомлений клиента. Когда Ключ установлен в Неопределено, отключает все обработчики.
  • ОтправитьУведомление(<Ключ>, <Данные>, <Адресаты>). Серверный метод – отправляет уведомление выбранным клиентским сеансам (если параметр Адресаты заполнен массивом номеров сеансов, полученных из СеансИнформационнойБазы.НомерСеанса), либо всем клиентским сеансам.

В глобальный контекст добавляется свойство УведомленияКлиента (ClientNotifications) типа МенеджерУведомленийКлиента.

У объекта ФоновоеЗадание добавляется свойство НомерРодительскогоСеанса (ParentSessionNumber), которое содержит номер родительского сеанса, запустившего фоновое задание. Это позволит из фонового задания отправить уведомление клиенту, который ожидает результат этого фонового задания.

100% доставка уведомлений

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

Присоединяйтесь к обсуждениям в нашем TG-канале Новости из мира 1С.

Рассказать друзьям
Предыдущая статья новость
Ускорение массовых операций с объектами в 1С 8.3.26
Следующая статья новость
1С:ERP протестировали на 12 000 одновременно работающих в базе пользователей
Комментарии