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