ДоставляемоеУведомление.Получатели

Свойства · Recipients

Тип: Массив. Содержит массив получателей уведомления в виде объектов типа ИдентификаторПодписчикаДоставляемыхУведомлений.

Полное описание, параметры и ограничения

ДоставляемоеУведомление.Получатели (DeliverableNotification.Recipients)

ДоставляемоеУведомление (DeliverableNotification)

Получатели (Recipients)

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

Использование:
Только чтение.
Описание:
Тип: Массив.
Содержит массив получателей уведомления в виде объектов типа ИдентификаторПодписчикаДоставляемыхУведомлений.
Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Поместить собственные данные заказа в JSON и прочитать их обратно

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

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

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

Подготовка

  1. Создайте в отдельной конфигурации УчебнаяКонфигурацияСинтаксиса серверный общий модуль УчебныеУведомления с флагом Сервер, вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из собственной серверной команды.

  2. Это подготовка объектов уведомления в памяти, не отправка push и не установка локального уведомления. Мобильное устройство, токены, разрешения и регистрация подписчика не требуются этому опыту.

  3. Используется только новая собственная Книга и вымышленные данные заказа. Получатели остаются пустыми: код не читает идентификаторы настоящих подписчиков и не добавляет фиктивный токен.

  4. Не добавляйте к этим примерам методы отправки или планирования: для них нужен отдельный контракт устройств, разрешений и собственных подписчиков.

  5. Дата появления локального уведомления задаётся в UTC, не местным временем Москвы. ТекущаяУниверсальнаяДата вызывается на сервере, потому что функция недоступна в тонком клиенте.

  6. Уроки сверены с установленной справкой 8.5.1.1343. Фактическое появление, звук, наклейка и доставка на устройстве не проверялись исполнением BSL.

Процедура ВыполнитьПример() Экспорт
    Уведомление = Новый ДоставляемоеУведомление;
    Уведомление.Заголовок = "Учебный заказ Книга";
    Уведомление.Текст = "Книга: 3 шт. по 250, итого 750. Это собственный черновик.";
    Уведомление.Наклейка = 1;
    ИсходныеДанные = Новый Структура("kind,sku,quantity", "lesson-order", "BOOK-OWN", 3);
    Запись = Новый ЗаписьJSON;
    Попытка
        Запись.УстановитьСтроку();
        ЗаписатьJSON(Запись, ИсходныеДанные);
        Уведомление.Данные = Запись.Закрыть();
    Исключение
        Запись.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Чтение = Новый ЧтениеJSON;
    Попытка
        Чтение.УстановитьСтроку(Уведомление.Данные);
        ПрочитанныеДанные = ПрочитатьJSON(Чтение);
        Чтение.Закрыть();
    Исключение
        Чтение.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Если ТипЗнч(ПрочитанныеДанные) <> Тип("Структура") Тогда
        ВызватьИсключение "Свой JSON должен содержать объект";
    КонецЕсли;
    Сообщить(ПрочитанныеДанные.kind = "lesson-order");
    Сообщить(ПрочитанныеДанные.sku = "BOOK-OWN");
    Сообщить(ПрочитанныеДанные.quantity = 3);
    Сообщить(ТипЗнч(ПрочитанныеДанные.quantity) = Тип("Число"));
    Сообщить(Уведомление.Получатели.Количество() = 0);
КонецПроцедуры

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

  1. Создать собственную структуру из трёх известных полей без ссылок на базу и без личных данных.

  2. Записать JSON штатным сериализатором и сохранить строку, возвращённую Закрыть, в Данные уведомления.

  3. Открыть ЧтениеJSON на своей же строке; закрывать reader и writer и при успехе, и при ошибке.

  4. Проверить тип результата и три известные поля, отдельно проверить числовой тип quantity.

  5. Не выполнять значение kind как команду. Не читать внешние JSON-пакеты этим коротким опытом без отдельной проверки схемы.

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

  1. Пять сообщений Истина; количество осталось числом 3, а не строкой "3".

  2. Пустые получатели и отсутствие вызова отправки сохранены.

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

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

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

  1. ПрочитатьJSON не является проверкой разрешённых бизнес-команд или прав пользователя.

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

  3. Нельзя передавать Данные в Выполнить или Вычислить.

  4. JSON не скрывает чувствительную информацию.

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

Подготовить UTC-время и разобрать повтор уведомления по платформам

Будущая дата и интервал задаются только своему черновику. Интервал 90 секунд нельзя выдавать за точный 90-секундный повтор на iOS.

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

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

Подготовка

  1. Создайте в отдельной конфигурации УчебнаяКонфигурацияСинтаксиса серверный общий модуль УчебныеУведомления с флагом Сервер, вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из собственной серверной команды.

  2. Это подготовка объектов уведомления в памяти, не отправка push и не установка локального уведомления. Мобильное устройство, токены, разрешения и регистрация подписчика не требуются этому опыту.

  3. Используется только новая собственная Книга и вымышленные данные заказа. Получатели остаются пустыми: код не читает идентификаторы настоящих подписчиков и не добавляет фиктивный токен.

  4. Не добавляйте к этим примерам методы отправки или планирования: для них нужен отдельный контракт устройств, разрешений и собственных подписчиков.

  5. Дата появления локального уведомления задаётся в UTC, не местным временем Москвы. ТекущаяУниверсальнаяДата вызывается на сервере, потому что функция недоступна в тонком клиенте.

  6. Уроки сверены с установленной справкой 8.5.1.1343. Фактическое появление, звук, наклейка и доставка на устройстве не проверялись исполнением BSL.

Процедура ВыполнитьПример() Экспорт
    Уведомление = Новый ДоставляемоеУведомление;
    Уведомление.Заголовок = "Учебный заказ Книга";
    Уведомление.Текст = "Книга: 3 шт. по 250, итого 750. Это собственный черновик.";
    Уведомление.Наклейка = 1;
    СейчасUTC = ТекущаяУниверсальнаяДата();
    Уведомление.ДатаПоявленияУниверсальноеВремя = СейчасUTC + 10 * 60;
    Уведомление.ИнтервалПовтора = 90;
    Сообщить(Уведомление.ДатаПоявленияУниверсальноеВремя - СейчасUTC = 600);
    Сообщить(Уведомление.ДатаПоявленияУниверсальноеВремя > СейчасUTC);
    Сообщить(Уведомление.ИнтервалПовтора = 90);
    Сообщить("По справке 8.5.1 интервал 90 секунд на iOS относится к диапазону 61…3600 и интерпретируется как 1 час");
    Уведомление.ИнтервалПовтора = 3600;
    Сообщить(Уведомление.ИнтервалПовтора = 3600);
    Сообщить(Уведомление.Получатели.Количество() = 0);
    Сообщить("Будущее UTC-время своего черновика: " + Строка(Уведомление.ДатаПоявленияУниверсальноеВремя));
    Сообщить("Свой черновик не установлен и не отправлен");
КонецПроцедуры

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

  1. На сервере один раз получить универсальную дату компьютера и сохранить исходную точку отсчёта.

  2. Задать время первого появления на 600 секунд позже. Не прибавлять время Москвы к уже универсальной дате.

  3. Записать 90 секунд и проверить именно значение свойства в памяти.

  4. Свериться с платформенной справкой: на iOS 61…3600 интерпретируются как час; на Android 1…60 интерпретируются как минута.

  5. Поставить 3600 только в черновике. Прочитать сохранённую дату и пустую коллекцию адресатов, не вызывать планирование.

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

  1. Пять булевых сообщений Истина: разница 600 секунд, будущая дата, значения 90 и 3600 и отсутствие получателей.

  2. Повтор и доставка не тестировались на устройстве; код не создал локальное расписание.

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

Подробный опыт работы с UTC и свойством повтора без обещания несуществующей платформенной точности.

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

  1. Не подменяйте UTC локальной датой компьютера или пользовательского часового пояса.

  2. Фактические ограничения ОС и состояние приложения могут влиять на доставку: установка числа не является гарантией времени появления.

  3. На Авроре свойства даты появления и интервала повтора по справке не используются.

  4. Время первого срабатывания должно быть явно задано для повтора; пустая или прошедшая дата имеет другой контракт.

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

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

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

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

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