ФабрикаXDTO из пакетов XDTO конфигурации
Во многих руководствах (, по использованию фабрики XDTO фигурируют структуры создания объекта типа
- если пакет уже в конфигурации.
Либо создание фабрики из *.xsd файлов:
У меня есть схема *.xsd во внешнем файле, при этом оформлена она не в виде типов объектов, а виде одного большого свойства (см. скриншот). Я ее импортирую в конфигруацию, как мне теперь создать на ее основе фабрику? То есть, по сути, если я не могу получить тип объекта (все в свойствах), как мне его создать?
структурныйТип = ФабрикаXDTO.Тип("http://www.1c.ru/demos/products1", "Номенклатура1");
номенклатура = ФабрикаXDTO.Создать(структурныйТип);- если пакет уже в конфигурации.
Либо создание фабрики из *.xsd файлов:
ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить("D:\Temp\adderss.xsd");
МояФабрикаXDTO = СоздатьФабрикуXDTO(ФайлыXSD);
адресТип = МояФабрикаXDTO.Тип("http://www.1c.ru/demos/products2", "КлассификаторАдреса");
адрес = МояФабрикаXDTO.Создать(адресТип); У меня есть схема *.xsd во внешнем файле, при этом оформлена она не в виде типов объектов, а виде одного большого свойства (см. скриншот). Я ее импортирую в конфигруацию, как мне теперь создать на ее основе фабрику? То есть, по сути, если я не могу получить тип объекта (все в свойствах), как мне его создать?
Прикрепленные файлы:
По теме из базы знаний
- XDTO - часть 3
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Инструмент для выгрузки своих фабрик XDTO во внешний файл для использования своих схем во внешних обработках
- Пример обмена данными через XDTO
- Гайд по XDTO для чайников
Найденные решения
Ответ тут
для доступа к корневому свойству нужно заменить
на
удачи..
Процедура СоздатьXMLФайлНаСервере(ПолноеИмяФайла)
// Создание типа, который будет использоваться для создания объекта
// При создании типа указывается пространство имен XDTO-пакета и имя элемента <books>
КнигиТип = ФабрикаXDTO.Тип("http://www.elvis.kz", "books");
// Создание объекта <books> на основе описание типа
Книги = ФабрикаXDTO.Создать(КнигиТип);
// Заполняем количество книг
Книги.count = 2;
// Создаем первую книгу <book>
Книга = ФабрикаXDTO.Создать(КнигиТип.Свойства.Получить("book").Тип);
// Заполняем узел <author>. Узел принадлежит первой книге <book>
Книга.author = "Вадим Панов";
// Заполняем узел <title>. Узел принадлежит первой книге <book>
Книга.title = "Анклавы";
// Добавляем в список книг <books>, первую книгу <book>
Книги.book.Добавить(Книга);
// Создаем вторую книгу <book>
Книга = ФабрикаXDTO.Создать(КнигиТип.Свойства.Получить("book").Тип);
// Заполняем узел <author>. Узел принадлежит второй книге <book>
Книга.author = "Дуглас Адамс";
// Заполняем узел <title>. Узел принадлежит второй книге <book>
Книга.title = "Автостопом по галактике";
// Добавляем в список книг <books>, вторую книгу <book>
Книги.book.Добавить(Книга);
// Создаем объект ЗаписьXML, который необходим для создания XML файла
ЗаписьXML = Новый ЗаписьXML;
// Открываем файл для записи XML
ЗаписьXML.ОткрытьФайл(ПолноеИмяФайла, "UTF-8");
// Записываем объект Книги, с пмощью объекта ЗаписьXML
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Книги);
// Закрываем и сохраняем записанный объект
ЗаписьXML.Закрыть();
КонецПроцедуры Показатьдля доступа к корневому свойству нужно заменить
КнигиТип = ФабрикаXDTO.Тип("http://www.elvis.kz", "books");
на
пакет=ФабрикаXDTO.Пакеты.Получить("http://www.elvis.kz");
КнигиТип=пакет.КорневыеСвойства.Получить("root").Тип;
удачи..
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Пожалуй даже переформулирую вопрос. Как работать со свойствами в пакете XDTO? Буду благодарен за ссылки в том числе.
Ответ тут
для доступа к корневому свойству нужно заменить
на
удачи..
Процедура СоздатьXMLФайлНаСервере(ПолноеИмяФайла)
// Создание типа, который будет использоваться для создания объекта
// При создании типа указывается пространство имен XDTO-пакета и имя элемента <books>
КнигиТип = ФабрикаXDTO.Тип("http://www.elvis.kz", "books");
// Создание объекта <books> на основе описание типа
Книги = ФабрикаXDTO.Создать(КнигиТип);
// Заполняем количество книг
Книги.count = 2;
// Создаем первую книгу <book>
Книга = ФабрикаXDTO.Создать(КнигиТип.Свойства.Получить("book").Тип);
// Заполняем узел <author>. Узел принадлежит первой книге <book>
Книга.author = "Вадим Панов";
// Заполняем узел <title>. Узел принадлежит первой книге <book>
Книга.title = "Анклавы";
// Добавляем в список книг <books>, первую книгу <book>
Книги.book.Добавить(Книга);
// Создаем вторую книгу <book>
Книга = ФабрикаXDTO.Создать(КнигиТип.Свойства.Получить("book").Тип);
// Заполняем узел <author>. Узел принадлежит второй книге <book>
Книга.author = "Дуглас Адамс";
// Заполняем узел <title>. Узел принадлежит второй книге <book>
Книга.title = "Автостопом по галактике";
// Добавляем в список книг <books>, вторую книгу <book>
Книги.book.Добавить(Книга);
// Создаем объект ЗаписьXML, который необходим для создания XML файла
ЗаписьXML = Новый ЗаписьXML;
// Открываем файл для записи XML
ЗаписьXML.ОткрытьФайл(ПолноеИмяФайла, "UTF-8");
// Записываем объект Книги, с пмощью объекта ЗаписьXML
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Книги);
// Закрываем и сохраняем записанный объект
ЗаписьXML.Закрыть();
КонецПроцедуры Показатьдля доступа к корневому свойству нужно заменить
КнигиТип = ФабрикаXDTO.Тип("http://www.elvis.kz", "books");
на
пакет=ФабрикаXDTO.Пакеты.Получить("http://www.elvis.kz");
КнигиТип=пакет.КорневыеСвойства.Получить("root").Тип;
удачи..
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
