ЗаписьNDEFВнешнегоТипа.Данные

Свойства · Data

Тип: ДвоичныеДанные. Содержит фактические данные записи (полезную нагрузку).

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

ЗаписьNDEFВнешнегоТипа.Данные (ExternalTypeNDEFRecord.Data)

ЗаписьNDEFВнешнегоТипа (ExternalTypeNDEFRecord)

Данные (Data)

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

Использование:
Только чтение.
Описание:
Тип: ДвоичныеДанные.
Содержит фактические данные записи (полезную нагрузку).
Доступность:

Мобильный клиент, мобильное приложение (клиент).

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

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

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

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

Упаковать свой JSON в запись внешнего типа

Внешний тип означает собственное пространство имён данных. Домен не запрашивается по сети; JSON проверяем по ожидаемым полям, а не выполняем как код.

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

Полный клиентский модуль собственной формы мобильного клиента/приложения. Только создание NDEF-объектов в памяти; без NFC-чтения/записи.

Подготовка

  1. Эти типы доступны в мобильном клиенте или мобильном приложении (клиент), начиная с 8.3.23. Непосредственно в обычном серверном модуле, тонком клиенте Windows или Конфигураторе их не запускайте.

  2. Подготовьте отдельное учебное мобильное приложение/клиент на поддерживаемой платформе. В собственной управляемой форме создайте команду ВыполнитьПример и назначьте клиентский обработчик. Вставьте полный модуль одного урока.

  3. Для создания объектов в памяти физическая NFC-метка не используется. Код не включает NFC, не запрашивает сканирование, не открывает URI и не записывает ничего на метку.

  4. Все данные собственные учебные: Книга, guide-book, количество 3 и фиктивные домены example.invalid. Не кладите в NFC-примеры реальные токены, пароль, персональные сведения или ссылку на закрытую рабочую систему.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    ТекстJSON = "{""sku"":""guide-book"",""quantity"":3}";
    Байты = ПолучитьДвоичныеДанныеИзСтроки(ТекстJSON, КодировкаТекста.UTF8);
    Запись = Новый ЗаписьNDEFВнешнегоТипа("syntaxguide.example.invalid", "book", Байты, "json-01");
    Сообщить(Запись.Домен = "syntaxguide.example.invalid");
    Сообщить(Запись.ТипЗаписи = "book");
    Сообщить(Запись.ИдентификаторЗаписи = "json-01");
    ПолученныйJSON = ПолучитьСтрокуИзДвоичныхДанных(Запись.Данные, КодировкаТекста.UTF8);
    Чтение = Новый ЧтениеJSON;
    Чтение.УстановитьСтроку(ПолученныйJSON);
    Попытка
        Объект = ПрочитатьJSON(Чтение);
    Исключение
        Чтение.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Чтение.Закрыть();
    Если ТипЗнч(Объект) <> Тип("Структура") Тогда
        ВызватьИсключение "Ожидался JSON-объект, не массив или строка";
    КонецЕсли;
    Если НЕ Объект.Свойство("sku", Артикул) ИЛИ НЕ Объект.Свойство("quantity", Количество) Тогда
        ВызватьИсключение "В учебном JSON нет обязательных полей";
    КонецЕсли;
    Если ТипЗнч(Артикул) <> Тип("Строка") ИЛИ ТипЗнч(Количество) <> Тип("Число") Тогда
        ВызватьИсключение "Типы sku и quantity не соответствуют учебному контракту";
    КонецЕсли;
    Сообщить(Артикул = "guide-book");
    Сообщить(Количество = 3);
КонецПроцедуры

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

  1. Домен и ТипЗаписи составляют пространство имён внешнего типа. Домен содержит латинские символы, имя book непустое; это не вызов веб-сервиса.

  2. Полезная нагрузка — настоящие двоичные UTF-8 данные собственного JSON. Тип не объявляется фотографией или ссылкой.

  3. ЧтениеJSON закрывается и при успехе, и при ошибке разбора. Не вызываем Выполнить или Вычислить для содержимого записи.

  4. До доступа к полям проверяем JSON-объект, наличие ключей и типы. Произвольный массив, строка или quantity="3" не считаются этим же контрактом.

  5. Только после проверок сравниваем собственные ожидаемые sku и количество. Запись товара в 1С не выполняется.

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

  1. Пять контрольных Истина для собственных данных: домен, тип, идентификатор, sku и quantity.

  2. Никакого внешнего запроса или исполнения полученного текста нет.

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

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

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

  1. Реальные данные NFC недоверенны: нужны дополнительные ограничения размера, числа, схемы и источника.

  2. Совпадение домена в записи не является криптографической проверкой её автора.

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

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

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

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

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