ОпределениеСоставногоТипаXS - БазовыйТип

1. Alexwarsis 12.01.23 12:05 Сейчас в теме
Генерирую свою схему, есть один тип который расширяет другой, как установить базовый тип? никто не сталкивался
Констурктора с базовый типом не вижу, потом установить нельзя
Вознаграждение за ответ
Показать полностью
Найденные решения
5. Alexwarsis 23.01.23 10:06 Сейчас в теме +1 $m

Функция СоздатьЭлемент(ИмяЭлемента,ИмяТипа = "string", UriПространстваИмен = "http://www.w3.org/2001/XMLSchema") Экспорт
 
	Элемент = Новый ОбъявлениеЭлементаXS;//Новый ФрагментXS;
 
    Элемент.Имя		= ИмяЭлемента;
    Элемент.ИмяТипа	= новый РасширенноеИмяXML(UriПространстваИмен, ИмяТипа);
 
    возврат Элемент
 
КонецФункции

Функция СоздатьТип(ИмяТипа,БазовыйТип = Неопределено) Экспорт
	
	
	Тип=новый ОпределениеСоставногоТипаXS;
	
	Тип.Имя=ИмяТипа;                                              
	Тип.МодельСодержимого = МодельСодержимогоXS.Составная;
	
	Если БазовыйТип <> Неопределено Тогда   
		Тип.ИмяБазовогоТипа		= БазовыйТип; 
		Тип.МетодНаследования	= МетодНаследованияXS.Расширение;
	КонецЕсли;                           
	
	
	Часть=новый ГруппаМоделиXS;
	
	Содержимое=новый ФрагментXS;
	Содержимое.Часть=Часть;
	
	Тип.Содержимое=Содержимое;
	
	возврат тип    
	
КонецФункции

БазовыйТип = новый РасширенноеИмяXML("http://test.ru","Значение");
ИмяТипа = ЭлементаПравила.ИмяТипаXDTO + "_" + Выборка.ТабличнаяЧасть; 
Тип= СоздатьТип(ИмяТипа);

Фрагменты=Тип.Содержимое.Часть.Фрагменты;
Фрагмент = новый ФрагментXS;
Элемент = СоздатьЭлемент(Выборка.ТабличнаяЧасть,ИмяТипа,Схема.ПространствоИмен);
Фрагмент.Часть 				= Элемент;

Показать


ОбъявлениеЭлементаXS - если пихать это напрямую никакой ошибки не выдаст и даже если схему в файл засунуть никакой разницы не будет. но элемент будет без элементов вовсе
Мне нужно было в Коде 1С нормально схему сгенерировать
Оригинал кода: https://forum.mista.ru/topic.php?id=669645 (да в функции создать тип уже было решение тупил)
первый комментарий верный нужно было код приложить.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user613191_olgargor 18.01.23 16:06 Сейчас в теме
вопрос перефразируйте. Не понятно.
Alexwarsis; +1 Ответить
3. user613191_olgargor 18.01.23 22:13 Сейчас в теме
может я неправильно поняла вопрос конечно, но возможно так: в Liquid прав клик на родителе, add child
4. user613191_olgargor 21.01.23 14:10 Сейчас в теме
5. Alexwarsis 23.01.23 10:06 Сейчас в теме +1 $m

Функция СоздатьЭлемент(ИмяЭлемента,ИмяТипа = "string", UriПространстваИмен = "http://www.w3.org/2001/XMLSchema") Экспорт
 
	Элемент = Новый ОбъявлениеЭлементаXS;//Новый ФрагментXS;
 
    Элемент.Имя		= ИмяЭлемента;
    Элемент.ИмяТипа	= новый РасширенноеИмяXML(UriПространстваИмен, ИмяТипа);
 
    возврат Элемент
 
КонецФункции

Функция СоздатьТип(ИмяТипа,БазовыйТип = Неопределено) Экспорт
	
	
	Тип=новый ОпределениеСоставногоТипаXS;
	
	Тип.Имя=ИмяТипа;                                              
	Тип.МодельСодержимого = МодельСодержимогоXS.Составная;
	
	Если БазовыйТип <> Неопределено Тогда   
		Тип.ИмяБазовогоТипа		= БазовыйТип; 
		Тип.МетодНаследования	= МетодНаследованияXS.Расширение;
	КонецЕсли;                           
	
	
	Часть=новый ГруппаМоделиXS;
	
	Содержимое=новый ФрагментXS;
	Содержимое.Часть=Часть;
	
	Тип.Содержимое=Содержимое;
	
	возврат тип    
	
КонецФункции

БазовыйТип = новый РасширенноеИмяXML("http://test.ru","Значение");
ИмяТипа = ЭлементаПравила.ИмяТипаXDTO + "_" + Выборка.ТабличнаяЧасть; 
Тип= СоздатьТип(ИмяТипа);

Фрагменты=Тип.Содержимое.Часть.Фрагменты;
Фрагмент = новый ФрагментXS;
Элемент = СоздатьЭлемент(Выборка.ТабличнаяЧасть,ИмяТипа,Схема.ПространствоИмен);
Фрагмент.Часть 				= Элемент;

Показать


ОбъявлениеЭлементаXS - если пихать это напрямую никакой ошибки не выдаст и даже если схему в файл засунуть никакой разницы не будет. но элемент будет без элементов вовсе
Мне нужно было в Коде 1С нормально схему сгенерировать
Оригинал кода: https://forum.mista.ru/topic.php?id=669645 (да в функции создать тип уже было решение тупил)
первый комментарий верный нужно было код приложить.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот