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

Методы · Send

Отправляет уведомление. У каждого уведомления должны быть указаны следующие поля: Текст - не пустая строка. Получатель - должно быть указано хотя бы одно значение. Если обязательные поля не заполнены, будет сгенерировано исключение.

Синтаксис

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

МенеджерОтправкиДоставляемыхУведомлений.Отправить (DeliverableNotificationSendManager.Send)

МенеджерОтправкиДоставляемыхУведомлений (DeliverableNotificationSendManager)

Отправить (Send)

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

Синтаксис:
Отправить(<Уведомление>, <ДанныеАутентификации>, <ИсключенныеПолучатели>, <ИспользоватьПромежуточныйСервис>, <ИнформацияОПроблемахОтправкиДоставляемыхУведомлений>)
Параметры:

<Уведомление> (обязательный)
Тип: ДоставляемоеУведомление, Массив.
Содержит одно или несколько уведомлений.

<ДанныеАутентификации> (обязательный)
Тип: Строка, ДвоичныеДанные, Соответствие.
Файл сертификата, необходимый для подключения к службе доставки "Apple Push Notification Service", либо ключ сервера (server_key – устаревшее API), либо маркер доступа для подключения к службе доставки "Firebase Cloud Messaging", "Windows Notification Service", "Huawei Push Kit", "RuStore" (RMS) или "Аврора Центра" (полученный с помощью метода ПолучитьМаркерДоступа).
Может быть использован с соответствием с ключами типа ТипПодписчикаДоставляемыхУведомлений. В этом случае одно сообщение может быть отправлено получателям с устройствами разного типа.
Если используется промежуточный сервис - ключ доступа к этому сервису.

<ИсключенныеПолучатели> (необязательный)
Тип: Массив.
На устройствах под управлением Android с помощью данного параметра возвращается массив строк с идентификаторами устройств, которые не подходят для отправки, и соответственно, должны быть исключены из будущих рассылок. Этим устройствам ранее отправлялись уведомления с этим ключом авторизации. Но не обязательно в этом вызове.
Параметр игнорируется на устройствах под управлением iOS и ОС Аврора.

<ИспользоватьПромежуточныйСервис> (необязательный)
Тип: Булево.
Указывает необходимость использования промежуточного сервиса отправки.
Значение по умолчанию: Ложь.

<ИнформацияОПроблемахОтправкиДоставляемыхУведомлений> (необязательный)
Тип: Массив.
Содержит информацию о проблемах, возникших при отправке уведомлений. Представляет собой массив элементов типа ИнформацияОПроблемеОтправкиДоставляемогоУведомления.
Если во время отправки уведомления одинаковые ошибки произошли для двух и более получателей, они передаются в массив Получатели. Если при отправке уведомления произошла ошибка, из-за которой ни один получатель не получит уведомление (например, ошибка подключения к провайдеру), то значение свойства Получатели объекта ИнформацияОПроблемеОтправкиДоставляемогоУведомления будет совпадать с значением свойства Получатели уведомления.
Описание:

Отправляет уведомление.
У каждого уведомления должны быть указаны следующие поля:
Текст - не пустая строка.

Получатель - должно быть указано хотя бы одно значение.
Если обязательные поля не заполнены, будет сгенерировано исключение.

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

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

Примечание:
Суммарная длина полей уведомления в системе APNS не может превышать 2 КБайт. Суммарная длина полей уведомления в системе GCM не может превышать 4 КБайт.
В ОС Аврора длина полей ограничена следующим образом: title: 512 байт, message: 2048 байт, data: 1024 байта, общий размер сообщения: 4096 байт.
При превышении установленного лимита будет сгененировано исключение.
Использование в версии:

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

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

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

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

Отправить одно тестовое push-уведомление и разобрать проблемы

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

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

Мобильный клиент получает подписчика; обычный сервер 1С отправляет push.

Подготовка

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

  2. Нужны собственное учебное мобильное приложение, разрешение на уведомления и настроенный сервис доставки. Используйте только собственный тестовый подписчик и учетные данные соответствующего приложения; отправка требует сети.

  3. Нужен мобильный клиент, подключенный к обычному серверу 1С. На сервере подготовьте файл с собственным действующим маркером сервиса; путь замените. Только локальный учебный просмотр: описание ошибок может содержать служебные сведения.

&НаКлиенте
Процедура ЗапроситьПробноеУведомление()
    Подписчик = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений();
    ОтправитьПробноеНаСервере(Подписчик);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОтправитьПробноеНаСервере(Подписчик)
    Чтение = Новый ЧтениеТекста("C:\1c-demo\push-access-token.txt");
    Маркер = Чтение.Прочитать();
    Чтение.Закрыть();
    Уведомление = Новый ДоставляемоеУведомление;
    Уведомление.Текст = "Учебное уведомление";
    Уведомление.Получатели.Добавить(Подписчик);
    Исключенные = Новый Массив;
    Проблемы = Новый Массив;
    Отправитель = ОтправкаДоставляемыхУведомлений;
    Отправитель.Отправить(Уведомление, Маркер, Исключенные, Ложь, Проблемы);
    Для Каждого Проблема Из Проблемы Цикл
        Сообщить("Тип проблемы: " + Строка(Проблема.ТипОшибки));
        Сообщить(Проблема.Описание);
        Сообщить("Получателей с проблемой: " + Строка(Проблема.Получатели.Количество()));
        Сообщить("Уведомление: " + Проблема.Уведомление.Текст);
    КонецЦикла;
    Сообщить("Проблем отправки: " + Строка(Проблемы.Количество()));
КонецПроцедуры

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

  1. Получите свой идентификатор подписчика на клиенте.

  2. Отправьте ему одно уведомление серверным менеджером.

  3. Переберите настоящие проблемы и прочитайте четыре свойства.

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

  1. Адресат берется из объекта подписчика, не из вымышленного device ID.

  2. Пустой массив проблем не объявляется доказательством показа уведомления пользователю.

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

Отправлен запрос доставки и показаны полученные проблемы, если они возникли.

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

  1. Это будущий сетевой вызов. Не выводите маркер; не публикуйте протокол ошибок. При исключении результат отправки может быть неизвестен: не повторяйте автоматически.

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

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

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

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

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