![]() |
Выгрузка данных в XML из 1С 7.7 При выгрузке данных используя подключение Попытка DOMDocument = CreateObject("Msxml2.DOMDocument.4.0"); Исключение DOMDocument = CreateObject("Msxml2.DOMDocument"); КонецПопытки; //прописываем заголовок с необходимыми параметрами, например Header = DOMDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"" standalone=""yes"""); //Относим его к верхнему уровню структуры DOMDocument.appendChild(Header); хотелось бы второй строкой объявить узел через пространсво имен (с двоеточием со своими атрибутами) как это сделать? |
хмл - текстовый формат, DOMDocument - виндоусовая библиотека, а при чем тут 7.7? |
изучать надо объектную модель этого самого DOM |
2(0) А может проще, через v7plus.dll ? Уже больше дюжины лет пользуюсь - никаких проблем. Описание с примерами см здесь (архив сайта бывшего завсегдатая Т1С Чингачгука): [url]http://web.archive.org/web/20040630185313/chin.dataltd.ru/index2.php?id=1c_xml[/url] |
2(2) А чего изучать? Там простейшая структура команд и их параметров. |
(4)ее и изучать |
[quote=USSR;42381151]ее и изучать[/quote] Это не наш метод. |
v7plus.dll - Полно примеров... [em] XMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); ХМЛФайлДанных = XMLАнализатор.СоздатьДокумент(); хмлКорень = ХМЛФайлДанных.СоздатьПодчиненныйЭлемент("Файл"); Атрибут(хмлКорень, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); Атрибут(хмлКорень, "ИдФайл", ИмяФайла); Атрибут(хмлКорень, "ВерсПрог", ВерсияПрограммы); Атрибут(хмлКорень, "ВерсФорм", "5.01"); хмлДокумент = хмлКорень.СоздатьПодчиненныйЭлемент("Документ"); Атрибут(хмлДокумент, "КНД", "1110055"); Атрибут(хмлДокумент, "ДатаДок", Формат(ДатаДок, "ДДДММГГГГ")); Атрибут(хмлДокумент, "НомЗаяв", Число(НомерДок)); Атрибут(хмлДокумент, "КодНО", КодНО); хмСвНП = хмлДокумент.СоздатьПодчиненныйЭлемент("СвНП"); Если ОтправительЮрЛицо = 0 Тогда хмлСвФЛ = хмСвНП.СоздатьПодчиненныйЭлемент("СвНАФЛ"); Атрибут(хмлСвФЛ, "ИННФЛ", ИНННалоговогоАгента); хмФИО = хмСвНП.СоздатьПодчиненныйЭлемент("ФИО"); Атрибут(хмФИО, "Фамилия", ФамилияПредпринимателя); Атрибут(хмФИО, "Имя", ИмяПредпринимателя); Если ПустаяСтрока(ОтчествоПредпринимателя)<>1 Тогда Атрибут(хмФИО, "Отчество", ОтчествоПредпринимателя); КонецЕсли; Иначе хмлСвЮЛ = хмСвНП.СоздатьПодчиненныйЭлемент("СвНАЮЛ"); Атрибут(хмлСвЮЛ, "НаимОрг", НаименованиеНалоговогоАгента); Атрибут(хмлСвЮЛ, "ИННЮЛ", ИНННалоговогоАгента); Атрибут(хмлСвЮЛ, "КПП", КППНалоговогоАгента); КонецЕсли; хмПодписант = хмлДокумент.СоздатьПодчиненныйЭлемент("Подписант"); Атрибут(хмПодписант, "ПрПодп", ?(ОтправительЮрЛицо = 1,1,2)); Атрибут(хмПодписант, "ИННФЛ", СОКРЛП(ИННРуководителя)); Атрибут(хмПодписант, "Тлф", СОКРЛП(Телефон)); Если ОтправительЮрЛицо = 0 Тогда хмФИО = хмПодписант.СоздатьПодчиненныйЭлемент("ФИО"); Атрибут(хмФИО, "Фамилия", ФамилияРуководителя); Атрибут(хмФИО, "Имя", ИмяРуководителя); Если ПустаяСтрока(ОтчествоРуководителя)<>1 Тогда Атрибут(хмФИО, "Отчество", ОтчествоРуководителя); КонецЕсли; КонецЕсли; ....................[/em] А можно тоже самое и без Анализатора. Можно через объект Adodb.Stream. Задаешь кодировку и все такое АдоСтрим.Charset = "utf-8"; [em] АдоСтрим.Type = 2; АдоСтрим.Mode= 3; АдоСтрим.Open();[/em] и вперед, и с пестней, только за тегами либо следишь сам, либо используешь подпрограммы, сохраняя стег уровней. |
Линейные иксемели тупо пишу как текст не заморачиваясь со сторонними возможностями, привык уже |
DOMDocument = ПолучитьПустоеЗначение(); Попытка DOMDocument = createobject("Msxml2.DOMDocument.6.0"); Исключение Попытка DOMDocument = createobject("Msxml2.DOMDocument.4.0"); Исключение Попытка DOMDocument = createobject("Msxml2.DOMDocument.3.0"); Исключение Попытка DOMDocument = createobject("Msxml2.DOMDocument"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецПопытки; КонецПопытки; КонецПопытки; Header = DOMDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""" ); DOMDocument.appendChild(Header); TagDocs = DOMDocument.createElement("ns:Documents"); AttrXml = DOMDocument.createAttribute("xmlns:xsi"); AttrXml.nodeValue = "http://www.w3.org/2001/XMLSchema-instance"; TagDocs.setAttributeNode(AttrXml); ... |
to 9 Копи паст - наше все? Циклы не признаем? Знал одного "программиста", который не признавал циклы. Простейшие программы у него были на тысячи строк... |
Прости меня, мой брат. |
[quote=Ветер в поле;42450834]Знал одного "программиста", который не признавал циклы. Простейшие программы у него были на тысячи строк... [/quote] А может ему платили построчно... |
[url]http://portall.zp.ua/video/muzhik-ja-nikhrena-ne-ponjal-chto-ty-skazal-mne/id-9aUUtIKpoSN.html[/url] |
Текущее время: 20:15. Часовой пояс GMT +3. |