Сервер-клиентская передача данных

25.11.24

Разработка - Механизмы платформы 1С

В платформе 8.3.26 анонсировали новый механизм для передачи данных с сервера на клиент. Как нам с этим работать, постараюсь разобраться ниже.

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

Сама реализация очень проста и состоит из 3-х методов:

  1. ПодключитьОбработчик
  2. ОтправитьУведомление
  3. ОтключитьОбработчик

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

Рассмотрим на примере. Напишем "Привет, Мир!", но только не в консоль, а другому пользователю.

Создадим обработку с кнопкой "Поздороваться" и строковым полем, где можно будет выбрать получателя:

 
 Скрин

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

 
 Модуль формы обработки

Метод ОтправитьУведомление принимает 3 параметра: Ключ, Данные, Адресаты.

Ключ - строка, по сути идентификатор рассылки. Именно по этому ключу можно подписываться и отписываться от рассылки.

Данные - произвольные данные, которые можно передать с сервера на клиент.

Адресаты - массив, элементами которого является число. Но не простое, а номер сеанса. Вот этот параметр вовсе не обязательный. Если передать пустой массив, или не указать параметр, сообщение будет разослано во все сеансы, которые подписаны на рассылку.

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

Теперь надо подключить обработчик. В модуле приложения напишем такой код:

 
 Модуль приложения

Тут все просто. При начале работы мы подписываемся на оповещения по ключу "Приветствие", при завершении работы - отписываемся.

Ну и надо создать общий модуль клиента для обработки описания оповещения:

 
 ОМ Обработчик

Это обработчик, который вызывается через описание оповещения, принимает 2 параметра:

  1. Данные - произвольный - объект, который передается 2-ым параметром метода ОтправитьУведомление
  2. ДополнительныеПараметры - произвольный - объект, который передается через описание оповещения
 
 Результат

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

Создадим форму для запуска фонового задания:

 
 Скрин

Описываем методы:

 
 Модуль формы

При открытии формы подписываемся на обработчик "Процесс", и описываем его описание оповещения.

Фоновое задание будет вызывать паузу, поэтому мы передадим количество секунд для паузы, и номер нашего сеанса, чтобы не рассылать состояние всем без исключения:

 
 ОМ Операции

Здесь все также, вызвали паузу, оповестили: 

 
 Результат

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

 

Другие мои статьи:

Валидация JSON через XDTO

Генерация штрихкода и QR, разбор настроек и примеры

Расширяем возможности дополнительных обработок

Платформа сервер клиент уведомления

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

23.06.2024    7866    bayselonarrend    20    

156

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    6176    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    18675    YA_418728146    26    

72

Механизмы платформы 1С Программист Бесплатно (free)

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

06.10.2023    24013    SeiOkami    48    

135

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    15057    YA_418728146    7    

169
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xershi 1557 27.11.24 00:00 Сейчас в теме
Интересно, а в мобильной разработке это будет актуально?
2. smit1c 106 27.11.24 10:35 Сейчас в теме
Оставьте свое сообщение