Подготовить заголовок и текст уведомления, не отправляя его

Учебные задачи

Заголовок, текст и наклейка доступны для записи. Получатели и звуковое оповещение — readonly-свойства; наличие черновика не означает доставку.

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

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

Подготовка

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

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

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

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

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

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

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

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

  1. Создать новый объект, задать собственные заголовок, текст и число наклейки.

  2. Добавить собственную короткую строку Данные и явно задать интервал и пустую UTC-дату только в памяти.

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

  4. Прочитать тип ЗвуковоеОповещение без присваивания readonly-свойству.

  5. Разобрать предупреждение справки: при настоящей установке локального уведомления пустая дата означает немедленное появление. Здесь метод установки не вызывается.

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

  1. Восемь булевых сообщений Истина; все данные относятся к собственному новому объекту.

  2. Не появляется системное уведомление, не воспроизводится звук и не меняется значок приложения.

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

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

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

  1. Данные не отображаются в уведомлении, но это не делает их зашифрованными или безопасными для хранения секретов.

  2. Наклейка не означает количество реально доставленных уведомлений; смысл отличается по платформам.

  3. Не присваивайте ЗвуковоеОповещение: установленная справка помечает свойство только для чтения.

  4. Пустая или прошедшая UTC-дата при реальном локальном планировании ведёт к показу без задержки, а повтор при этом не выполняется.

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

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

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

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

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