Тип: Строка. Содержит дополнительные данные уведомления. С помощью данного свойства отправитель может передать получателю короткую команду. Например, запрос сеанса связи. В уведомлении не отображается.
Полное описание, параметры и ограничения
ДоставляемоеУведомление.Данные (DeliverableNotification.Data)
ДоставляемоеУведомление (DeliverableNotification)
Данные (Data)
Доступен, начиная с версии 8.3.6.
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит дополнительные данные уведомления. С помощью данного свойства отправитель может передать получателю короткую команду. Например, запрос сеанса связи. В уведомлении не отображается.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Значение по умолчанию - "" (пустая строка).
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Поместить собственные данные заказа в JSON и прочитать их обратно
Свойство Данные можно использовать для короткого структурированного сообщения. JSON читается как данные, не исполняется как код.
Где и как запускать
Полный серверный модуль своей конфигурации. Только собственный объект уведомления, без подписчиков и отправки.
Подготовка
Создайте в отдельной конфигурации УчебнаяКонфигурацияСинтаксиса серверный общий модуль УчебныеУведомления с флагом Сервер, вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из собственной серверной команды.
Это подготовка объектов уведомления в памяти, не отправка push и не установка локального уведомления. Мобильное устройство, токены, разрешения и регистрация подписчика не требуются этому опыту.
Используется только новая собственная Книга и вымышленные данные заказа. Получатели остаются пустыми: код не читает идентификаторы настоящих подписчиков и не добавляет фиктивный токен.
Не добавляйте к этим примерам методы отправки или планирования: для них нужен отдельный контракт устройств, разрешений и собственных подписчиков.
Дата появления локального уведомления задаётся в UTC, не местным временем Москвы. ТекущаяУниверсальнаяДата вызывается на сервере, потому что функция недоступна в тонком клиенте.
Уроки сверены с установленной справкой 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);
КонецПроцедурыРазбор по шагам
Создать собственную структуру из трёх известных полей без ссылок на базу и без личных данных.
Записать JSON штатным сериализатором и сохранить строку, возвращённую Закрыть, в Данные уведомления.
Открыть ЧтениеJSON на своей же строке; закрывать reader и writer и при успехе, и при ошибке.
Проверить тип результата и три известные поля, отдельно проверить числовой тип quantity.
Не выполнять значение kind как команду. Не читать внешние JSON-пакеты этим коротким опытом без отдельной проверки схемы.
Как проверить результат
Пять сообщений Истина; количество осталось числом 3, а не строкой "3".
Пустые получатели и отсутствие вызова отправки сохранены.
Ожидаемый результат
Полный реальный пример сериализации и обратного чтения собственной короткой полезной нагрузки.
На что обратить внимание
ПрочитатьJSON не является проверкой разрешённых бизнес-команд или прав пользователя.
Для внешних уведомлений проверяйте типы, обязательные поля, размер, допустимые значения и собственный контекст, прежде чем выполнять бизнес-действие.
Нельзя передавать Данные в Выполнить или Вычислить.
JSON не скрывает чувствительную информацию.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Подготовить заголовок и текст уведомления, не отправляя его
Заголовок, текст и наклейка доступны для записи. Получатели и звуковое оповещение — readonly-свойства; наличие черновика не означает доставку.
Где и как запускать
Полный серверный модуль своей конфигурации. Только собственный объект уведомления, без подписчиков и отправки.
Подготовка
Создайте в отдельной конфигурации УчебнаяКонфигурацияСинтаксиса серверный общий модуль УчебныеУведомления с флагом Сервер, вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из собственной серверной команды.
Это подготовка объектов уведомления в памяти, не отправка push и не установка локального уведомления. Мобильное устройство, токены, разрешения и регистрация подписчика не требуются этому опыту.
Используется только новая собственная Книга и вымышленные данные заказа. Получатели остаются пустыми: код не читает идентификаторы настоящих подписчиков и не добавляет фиктивный токен.
Не добавляйте к этим примерам методы отправки или планирования: для них нужен отдельный контракт устройств, разрешений и собственных подписчиков.
Дата появления локального уведомления задаётся в UTC, не местным временем Москвы. ТекущаяУниверсальнаяДата вызывается на сервере, потому что функция недоступна в тонком клиенте.
Уроки сверены с установленной справкой 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));
ТипЗвука = ТипЗнч(Уведомление.ЗвуковоеОповещение);
Сообщить(ТипЗвука = Тип("ЗвуковоеОповещение") ИЛИ ТипЗвука = Тип("Строка"));
Сообщить("Собственный черновик не передан менеджеру уведомлений");
КонецПроцедурыРазбор по шагам
Создать новый объект, задать собственные заголовок, текст и число наклейки.
Добавить собственную короткую строку Данные и явно задать интервал и пустую UTC-дату только в памяти.
Проверить пустую коллекцию получателей, не присваивать ей другой массив и не создавать фиктивные идентификаторы подписчиков.
Прочитать тип ЗвуковоеОповещение без присваивания readonly-свойству.
Разобрать предупреждение справки: при настоящей установке локального уведомления пустая дата означает немедленное появление. Здесь метод установки не вызывается.
Как проверить результат
Восемь булевых сообщений Истина; все данные относятся к собственному новому объекту.
Не появляется системное уведомление, не воспроизводится звук и не меняется значок приложения.
Ожидаемый результат
Есть самостоятельная подготовка черновика с проверкой всех восьми свойств и без опасного немедленного планирования.
На что обратить внимание
Данные не отображаются в уведомлении, но это не делает их зашифрованными или безопасными для хранения секретов.
Наклейка не означает количество реально доставленных уведомлений; смысл отличается по платформам.
Не присваивайте ЗвуковоеОповещение: установленная справка помечает свойство только для чтения.
Пустая или прошедшая UTC-дата при реальном локальном планировании ведёт к показу без задержки, а повтор при этом не выполняется.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.