МенеджерУведомленийКлиента.ОтправитьУведомление

Методы · SendNotification

Отправляет уведомление клиентским сеансам. У клиентского сеанс может не быть соединения. Для гарантированной доставки уведомление сохраняется в данных сервиса уведомлений.

Синтаксис

ОтправитьУведомление(<Ключ>, <Данные>, <Адресаты>)
Полное описание, параметры и ограничения

МенеджерУведомленийКлиента.ОтправитьУведомление (ClientNotificationManager.SendNotification)

МенеджерУведомленийКлиента (ClientNotificationManager)

ОтправитьУведомление (SendNotification)

Доступен, начиная с версии 8.3.26.

Синтаксис:
ОтправитьУведомление(<Ключ>, <Данные>, <Адресаты>)
Параметры:

<Ключ> (необязательный)
Тип: Строка.
Ключ уведомления.

<Данные> (обязательный)
Тип: Произвольный.
Данные уведомления.

<Адресаты> (необязательный)
Тип: Массив.
Массив элементов типа Число.
Массив номеров сеанса, полученных с помощью свойства НомерСеанса.
Если параметр указан, то уведомление будет отправлено только определенным сеансам.
Если не указан, уведомление будет отправлено всем сеансам.
Описание:

Отправляет уведомление клиентским сеансам.
У клиентского сеанс может не быть соединения. Для гарантированной доставки уведомление сохраняется в данных сервиса уведомлений.

Доступность:

Сервер, толстый клиент, внешнее соединение.

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

уведомление записано на диск (в данные сервиса в кластере).

Использование в версии:

Доступен, начиная с версии 8.3.26.

Описание изменено в версии 8.3.27.

Методическая информация

Практические примеры

Отправить уведомление только текущему сеансу

Сервер вычисляет 50 + 75 и отправляет результат по собственному ключу, явно ограничивая адресатов текущим сеансом.

Где и как запускать

Клиент вызывает свою процедуру; ОтправитьУведомление исполняется на обычном сервере 1С.

Подготовка

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

  2. Обычная клиент-серверная база с настроенным сервисом уведомлений. Сначала подключите обработчик learning.sum из соседнего примера, затем выполните свою кнопку расчета.

&НаКлиенте
Процедура ЗапроситьУчебныйРасчет()
    ОтправитьРасчетТекущемуСеансу();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОтправитьРасчетТекущемуСеансу()
    Адресаты = Новый Массив;
    Адресаты.Добавить(НомерСеансаИнформационнойБазы());
    Сумма = 50 + 75;
    УведомленияКлиента.ОтправитьУведомление("learning.sum", Сумма, Адресаты);
КонецПроцедуры

Разбор по шагам

  1. Получите на сервере номер своего сеанса.

  2. Поместите его в массив адресатов.

  3. Отправьте вычисленный результат по тому же ключу.

Как проверить результат

  1. Полученный обработчиком результат равен вычисленным 125.

  2. Третий аргумент не опущен: отправка не адресуется всем сеансам.

Ожидаемый результат

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

На что обратить внимание

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

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.