Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помогите разобраться с XDTO

Помогите разобраться с XDTO
Я
   travelekb
 
16.03.20 - 18:04
Здравствуйте.
Помогите начинающему разобраться с механизмом XDTO. Второй день не могу понять как применить на практике, хоть и много статей прочел.

Беру простой XML файл. Нужно получить всех клиентов в тегах <client>, чтобы в дальнейшем занести их в Справочник:
https://jsfiddle.net/wgnr9zs5/

Делаю схему XML в конфигураторе, создаю тип объекта client:
http://joxi.ru/L21JoBFRjev3AX?d=1

В свойствах тип данных указываю string (http://www.w3.org/2001/XMLSchema):
http://joxi.ru/xAeXMosRn0ea2y?d=1

Далее:
ТипФабрикиXDTO = ФабрикаXDTO.Тип("https://www.myproject.ru/xdto";, "client") //вот тут я не совсем понимаю, что идет вторым параметром? тип объекта из схемы?;
    
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя);
    
Клиенты = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипФабрикиXDTO);
//тут вываливается с ошибкой
//Ошибка проверки данных XDTO:
//Структура объекта не соответствует типу: {https://www.myproject.ru/xdto}client

Что не так? Как понять этот XDTO?
   ДенисЧ
 
1 - 16.03.20 - 18:46
"Структура объекта не соответствует типу"

Вроде по-русски написано ((
   Fragster
 
2 - 16.03.20 - 18:48
тебе нужно сделать еще тип clients со свойством client у которого указать минимальное количество 0 максимальное -1
   Fragster
 
3 - 16.03.20 - 18:49
и тип catalog со свойством clients типа clients
   Fragster
 
4 - 16.03.20 - 18:49
если что, для xml есть gist.github.com
   travelekb
 
5 - 16.03.20 - 20:28
(2) (3) т.е. в схеме полностью описать структуру вложенных тегов XML, верно?
<catalog>
    <clients>
        <client>
        </client>
    </clients>
</catalog>
   travelekb
 
6 - 16.03.20 - 20:44
Переделал схему XDTO в соответствии со структурой XML файла:
http://joxi.ru/L21JoBFRjeQLAX

Ошибок нет. Как теперь получить коллекцию элементов <client>?
Вот в этой строке, что указывается вторым параметром? Самый "верхний" родительский элемент <catalog> или можно сразу указать <clients> получив коллекцию?
ТипФабрикиXDTO = ФабрикаXDTO.Тип("https://www.myproject.ru/xdto";, "???");
   Fragster
 
7 - 17.03.20 - 11:44
самый верхний
   Fragster
 
8 - 17.03.20 - 11:45
получить 
Каталог = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ТипФабрикиXDTO); 
СписокКлиентов = Каталог.clients.client;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.