СериализаторXDTO.XMLТип

Методы · XMLType

Позволяет получить тип данных XML, соответствующий переданному в качестве параметра типу.

Синтаксис

XMLТип(<Тип>)
Полное описание, параметры и ограничения

СериализаторXDTO.XMLТип (XDTOSerializer.XMLType)

СериализаторXDTO (XDTOSerializer)

XMLТип (XMLType)

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

Синтаксис:
XMLТип(<Тип>)
Параметры:

<Тип> (обязательный)
Тип: Тип.
Тип значения, для которого необходимо определить соответствующий XML тип.
Возвращаемое значение:
Тип: ТипДанныхXML.
Неопределено, если никакой тип данных XML не соответствует указанному типу.
Описание:

Позволяет получить тип данных XML, соответствующий переданному в качестве параметра типу.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Преобразовать ОписаниеТипов в объект XDTO и обратно без XML-текста

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

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Исходное ОписаниеТипов создано в памяти и содержит только Строка и Число; объекты базы не экспортируются.

  2. ЗаписатьXDTO возвращает значение модели, несмотря на слово Записать: объект файловой записи здесь не нужен.


Сериализатор = Новый СериализаторXDTO;
ИсходноеОписание = Новый ОписаниеТипов("Строка,Число");
Модель = Сериализатор.ЗаписатьXDTO(ИсходноеОписание);
Если ТипЗнч(Модель) <> Тип("ОбъектXDTO") Тогда
    ВызватьИсключение "Для описания типов ожидалась составная модель ОбъектXDTO";
КонецЕсли;
ВосстановленноеОписание = Сериализатор.ПрочитатьXDTO(Модель);
Сообщить(ТипЗнч(ВосстановленноеОписание) = Тип("ОписаниеТипов"));
Сообщить(ВосстановленноеОписание.СодержитТип(Тип("Строка")));
Сообщить(ВосстановленноеОписание.СодержитТип(Тип("Число")));
Сообщить(ВосстановленноеОписание.Типы().Количество() = 2);
ТипXML = Сериализатор.XMLТип(Тип("ОписаниеТипов"));
Если ТипXML = Неопределено Тогда
    ВызватьИсключение "Не найден XML-тип описания типов";
КонецЕсли;
Сообщить("XML-тип: {" + ТипXML.URIПространстваИмен + "}" + ТипXML.ИмяТипа);

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

  1. Создаём описание двух допустимых типов. Это объект-контракт, не одно конкретное строковое или числовое значение.

  2. ЗаписатьXDTO преобразует его в составной ОбъектXDTO. Проверяем вид модели перед обратным преобразованием.

  3. ПрочитатьXDTO использует сопоставление платформы для восстановления ОписаниеТипов.

  4. XMLТип получает XML-описание по Тип платформы; XMLТипЗнч в соседнем уроке получает его по конкретному значению.

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

  1. Восстановленный тип ОписаниеТипов, он содержит Строка и Число и ровно два типа.

  2. Для ОписаниеТипов определён XML-тип, выводится его URI и имя.

  3. Выполнение не создаёт XML/JSON-файл и не меняет реквизиты конфигурации.

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

Составное описание типов прошло цикл платформенное значение → модель XDTO → платформенное значение.

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

  1. Не все платформенные типы имеют сопоставление XDTO. Открытое соединение нельзя переносить по аналогии.

  2. ОбъектXDTO и ЗначениеXDTO различаются: метод обратного составного преобразования здесь получает именно объект.

  3. Восстановленное ОписаниеТипов само по себе не добавляет реквизит формы или конфигурации.

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

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

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

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

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