Тип: Булево. Показывает, состоит ли текстовое значение текущего узла только из пробельных символов. Применимо только для узлов, обладающих текстовым содержимым, для других узлов содержит Ложь. Истина - текст состоит только из пробельных символов.
Полное описание, параметры и ограничения
ЧтениеFastInfoset.ЭтоПробельныеСимволы (FastInfosetReader.IsWhitespace)
ЧтениеFastInfoset (FastInfosetReader)
ЭтоПробельныеСимволы (IsWhitespace)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Булево.
Показывает, состоит ли текстовое значение текущего узла только из пробельных символов.
Применимо только для узлов, обладающих текстовым содержимым, для других узлов содержит Ложь.
Истина - текст состоит только из пробельных символов.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Записать два товара в двоичный XML и восстановить итог 800
Собственный документ содержит Книгу 3×250 и Ручку 1×50. Fast Infoset хранит структуру XML в байтах; сумма проверяется после чтения атрибутов.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база на платформе 8.5.1.1343. Создайте серверный общий модуль УчебныеЗадачи и процедуру ВыполнитьПример() Экспорт; код урока без директив вставляйте в её тело. Каждый урок запускайте отдельно.
Все документы создаются из собственных строк и чисел в памяти. Не подставляйте файл XML, бинарный архив обмена, ссылки или данные рабочей базы вместо учебных значений.
Fast Infoset — двоичное представление XML. Для чтения нужен соответствующий reader, а не преобразование байтов в UTF-8-строку. Это не формат API Avito и не автоматическое сжатие произвольного JSON.
Запуск в 1С ещё не подтверждён; выполните контрольные проверки в учебной базе. Не сравнивайте точные байты двух кодировщиков: в заданиях проверяется восстановленная структура и значения.
Запись = Новый ЗаписьFastInfoset;
Запись.УстановитьДвоичныеДанные();
Попытка
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("products");
Запись.ЗаписатьНачалоЭлемента("product");
Запись.ЗаписатьАтрибут("code", "A-01");
Запись.ЗаписатьАтрибут("quantity", "3");
Запись.ЗаписатьАтрибут("price", "250");
Запись.ЗаписатьТекст("Книга");
Запись.ЗаписатьКонецЭлемента();
Запись.ЗаписатьНачалоЭлемента("product");
Запись.ЗаписатьАтрибут("code", "B-02");
Запись.ЗаписатьАтрибут("quantity", "1");
Запись.ЗаписатьАтрибут("price", "50");
Запись.ЗаписатьТекст("Ручка");
Запись.ЗаписатьКонецЭлемента();
Запись.ЗаписатьКонецЭлемента();
Данные = Запись.Закрыть();
Исключение
Запись.Закрыть();
ВызватьИсключение;
КонецПопытки;
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "Не получены собственные Fast Infoset-данные";
КонецЕсли;
Сообщить(Данные.Размер() > 0);
Чтение = Новый ЧтениеFastInfoset;
Чтение.УстановитьДвоичныеДанные(Данные);
Попытка
Товаров = 0;
Сумма = 0;
Названия = "";
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя = "product" Тогда
Количество = Чтение.ПолучитьАтрибут("quantity");
Цена = Чтение.ПолучитьАтрибут("price");
Если Количество = Неопределено Или Цена = Неопределено Тогда
ВызватьИсключение "В собственном товаре нет количества или цены";
КонецЕсли;
Товаров = Товаров + 1;
Сумма = Сумма + Число(Количество) * Число(Цена);
КонецЕсли;
Если Чтение.ЭтоСимвольныеДанные И Не Чтение.ЭтоПробельныеСимволы Тогда
Названия = Названия + Чтение.Значение;
КонецЕсли;
КонецЦикла;
Сообщить(Товаров = 2);
Сообщить(Сумма = 800);
Сообщить(Названия = "КнигаРучка");
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Разбор по шагам
Создаём ЗаписьFastInfoset и явно включаем запись в ДвоичныеДанные.
У каждого элемента есть три строковых XML-атрибута; начало и конец каждого элемента сбалансированы.
Закрыть возвращает байты; проверяем тип результата перед передачей в соответствующий reader.
У атрибутов сначала проверяем наличие, затем преобразуем собственные числовые строки. Названия восстанавливаем из символьных узлов.
Как проверить результат
Четыре сравнения Истина: непустые байты, два товара, сумма 800 и две кириллические подписи.
Замените цену книги в собственном источнике на 200: сумма станет 650 и проверка 800 выдаст Ложь.
Ожидаемый результат
Учебный двоичный XML проверен по восстановленным бизнес-значениям, не по его размеру.
На что обратить внимание
Fast Infoset-байты нельзя показывать как обычную UTF-8-строку XML.
Число вызывается на собственных константах: внешний XML требует дополнительной проверки типа, диапазона и формата.
Маленький учебный документ не доказывает выигрыш размера или скорости на реальном обмене.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.