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

Можно ли поменять значения аргументов в xdto?

Можно ли поменять значения аргументов в xdto?
Я
   Веселый собака
 
19.04.21 - 14:40
Можно ли в полученных таким способом данных или в фабрике изменить определенные аргументы (значения)  

    СхемаXML = Новый СхемаXML;
    СхемаXML.РасположениеСхемы = ФайлXsd";
    СхемыXML = Новый НаборСхемXML;
    СхемыXML.Добавить(СхемаXML);
    
    ЧтениеXML = Новый ЧтениеXML();
    ЧтениеXML.ОткрытьФайл(ФайлXml");
    
    Фабрика = Новый ФабрикаXDTO(СхемыXML);
    Данные = Фабрика.ПрочитатьXML(ЧтениеXML);

тут внести изменения,
а потом сделать


        Запись = Новый ЗаписьXML;
    Запись.ОткрытьФайл(ВыходнойФайл, Новый ПараметрыЗаписиXML("UTF-8", "1.0", ));
    Запись.ЗаписатьОбъявлениеXML();
    Фабрика.ЗаписатьXML(Запись,Данные);
    Запись.Закрыть();

И получить измененный xml.
   Fragster
 
1 - 19.04.21 - 15:02
можно
   Веселый собака
 
2 - 19.04.21 - 15:09
(1) Это было бы прекрасно, если бы можно было поменять значение обращаясь к нему через точку, как это мы можем видеть в переменной Данные..
   acht
 
3 - 19.04.21 - 15:12
(2) Что у тебя не получается?
   Веселый собака
 
4 - 19.04.21 - 15:13
(3) изменить "Данные"
   acht
 
5 - 19.04.21 - 15:17
(4) Как у тебя не получается изменить данные?
   Веселый собака
 
6 - 19.04.21 - 15:19
(5) через точку я могу прочитать данные, а вот записать- ругается что это объект
   acht
 
7 - 19.04.21 - 15:22
(6) Какой тип данных у переменной типа "Данные"?
   acht
 
8 - 19.04.21 - 15:22
Тьфу. Тип у "Данные" какой?
   Веселый собака
 
9 - 19.04.21 - 15:23
(8) xdto  с таким же типом
   acht
 
10 - 19.04.21 - 15:24
(9) Скриншот показывай. С твоей терминологией это затянется надолго.
   Веселый собака
 
11 - 19.04.21 - 15:25
Просто не хочется варганить рядом еще одну xdto-фабрику для того чтобы заполнять из первой.
Задача вывести на экран- дать отредактировать и записать.

(10) минутку
   Веселый собака
 
12 - 19.04.21 - 15:30
   Почему 1С
 
13 - 19.04.21 - 15:44
(12) Данные.DeliveryNote.Carrier.ContactName = "Vasya"; 
не дает что-ли?
   Веселый собака
 
14 - 19.04.21 - 15:52
(13) ошибку дает, что записать нельзя, тип обьектный.
   Веселый собака
 
15 - 19.04.21 - 15:53
Ведь там точно данные есть, раз я их могу записать.. А методов подобраться к ним не вижу.
   МимохожийОднако
 
16 - 19.04.21 - 15:54
Данные.DeliveryNote.ContactName = "Vasya";
   Веселый собака
 
17 - 19.04.21 - 16:25
(16) см. (14)
   acht
 
18 - 19.04.21 - 16:25
(14) Полностью тип ошибки приведи.
А то окажется сйечас, что там список какой-нибудь или непростое значение
   acht
 
19 - 19.04.21 - 16:25
(18) Текст, тьфу
   Веселый собака
 
20 - 19.04.21 - 16:31
(19)


{Форма.Форма.Форма(20)}: Ошибка при установке значения атрибута контекста (MessageID)
    Данные.MessageHeader.MessageID = Строка(РасхНакладная.Номер);
по причине:

по причине:
Несоответствие типов XDTO:
Тип '{http://www.w3.org/2001/XMLSchema}anyType' не найден
Значение не может быть установлено свойству, имеющему объектный тип
   Веселый собака
 
21 - 19.04.21 - 16:31
(20) + тип Данные.MessageHeader.MessageID  - строка
   Веселый собака
 
22 - 19.04.21 - 16:32
т.е. пространство имен типа укажи..
так это делается при создании узла или как его правильно назвать
   Веселый собака
 
23 - 19.04.21 - 16:32
(22) точнее, тип
   Веселый собака
 
24 - 19.04.21 - 16:34
(23) но я же не завожу ничего нового, я хочу лишь изменить значение атрибута
   acht
 
25 - 19.04.21 - 16:35
(20) > {http://www.w3.org/2001/XMLSchema}anyType'
Есть подозрение, что у тебя фабрика хдто не привела объект к типу при чтении, потому что состояние чтения XML при чтении не указало нужный тип объекта. Показывай xml и схему, по которой фабрика строится
   acht
 
26 - 19.04.21 - 16:37
И ломается оно на типе MessageHeader на самом деле
   Веселый собака
 
27 - 19.04.21 - 16:43
(25) вот и у меня подозрение, что схему не сожрал.
т.к. anyType в таких случаях вроде как и возникает.
Сравнение исходной и конечной xml показывает, что верхний уровень пропал, стал anyType


Без схемы вроде тоже самое.
К сожалению схему не покажу, тут связали нас конфиденциальностью на весь пакет документов (тупо, да?).
   Веселый собака
 
28 - 19.04.21 - 16:44
(26) а почему все прекрасно показывает, тот же тип
   acht
 
29 - 19.04.21 - 16:46
(27) Такое обычно происходит из-за пустого целевого пространства имен в XML.
Попробуй в шапку добавить tns по тем данным, что у тебя в схеме прописаны.
   Веселый собака
 
30 - 19.04.21 - 16:46
(26) "ломается" на всех простых типах, которые по идее могут быть присвоены

завтра вытяну схему из фабрики xdto, может там пусто
 
 
   Веселый собака
 
31 - 19.04.21 - 16:47
(29) да, в xml пространства нет, есть только в xsd
   acht
 
32 - 19.04.21 - 16:53
(31) Ну вот оно и не знает, как типы сопоставлять. И не будет знать как тебе обратно в xml записать, кстати.
Попробуй через ДокументDOM какой-нибудь, что-ли


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