Тип: Строка. Содержит домен организации. Состоит из латинских символов. Не пустая строка.
Полное описание, параметры и ограничения
ЗаписьNDEFВнешнегоТипа.Домен (ExternalTypeNDEFRecord.Domain)
ЗаписьNDEFВнешнегоТипа (ExternalTypeNDEFRecord)
Домен (Domain)
Доступен, начиная с версии 8.3.23.
Использование:
Только чтение.
Описание:
Тип: Строка.
Содержит домен организации. Состоит из латинских символов. Не пустая строка.
Доступность:
Мобильный клиент, мобильное приложение (клиент).
Использование в версии:
Доступен, начиная с версии 8.3.23.
Методическая информация
Практические примеры
Упаковать свой JSON в запись внешнего типа
Внешний тип означает собственное пространство имён данных. Домен не запрашивается по сети; JSON проверяем по ожидаемым полям, а не выполняем как код.
Где и как запускать
Полный клиентский модуль собственной формы мобильного клиента/приложения. Только создание NDEF-объектов в памяти; без NFC-чтения/записи.
Подготовка
Эти типы доступны в мобильном клиенте или мобильном приложении (клиент), начиная с 8.3.23. Непосредственно в обычном серверном модуле, тонком клиенте Windows или Конфигураторе их не запускайте.
Подготовьте отдельное учебное мобильное приложение/клиент на поддерживаемой платформе. В собственной управляемой форме создайте команду ВыполнитьПример и назначьте клиентский обработчик. Вставьте полный модуль одного урока.
Для создания объектов в памяти физическая NFC-метка не используется. Код не включает NFC, не запрашивает сканирование, не открывает URI и не записывает ничего на метку.
Все данные собственные учебные: Книга, 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);
КонецПроцедурыРазбор по шагам
Домен и ТипЗаписи составляют пространство имён внешнего типа. Домен содержит латинские символы, имя book непустое; это не вызов веб-сервиса.
Полезная нагрузка — настоящие двоичные UTF-8 данные собственного JSON. Тип не объявляется фотографией или ссылкой.
ЧтениеJSON закрывается и при успехе, и при ошибке разбора. Не вызываем Выполнить или Вычислить для содержимого записи.
До доступа к полям проверяем JSON-объект, наличие ключей и типы. Произвольный массив, строка или quantity="3" не считаются этим же контрактом.
Только после проверок сравниваем собственные ожидаемые sku и количество. Запись товара в 1С не выполняется.
Как проверить результат
Пять контрольных Истина для собственных данных: домен, тип, идентификатор, sku и quantity.
Никакого внешнего запроса или исполнения полученного текста нет.
Ожидаемый результат
Получен безопасный учебный обмен структурированными данными в записи внешнего типа.
На что обратить внимание
Реальные данные NFC недоверенны: нужны дополнительные ограничения размера, числа, схемы и источника.
Совпадение домена в записи не является криптографической проверкой её автора.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.