К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Выгрузка данных в XML из 1С 7.7

Гость
0 - 23.06.2016 - 11:42
При выгрузке данных
используя подключение
Попытка
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);

хотелось бы второй строкой объявить узел
через пространсво имен (с двоеточием со своими атрибутами)

как это сделать?



Гость
1 - 23.06.2016 - 12:44
хмл - текстовый формат,
DOMDocument - виндоусовая библиотека,
а при чем тут 7.7?
Гость
2 - 23.06.2016 - 13:15
изучать надо объектную модель этого самого DOM
3 - 23.06.2016 - 14:12
2(0) А может проще, через v7plus.dll ? Уже больше дюжины лет пользуюсь - никаких проблем.

Описание с примерами см здесь (архив сайта бывшего завсегдатая Т1С Чингачгука):
http://web.archive.org/web/200406301....php?id=1c_xml
4 - 23.06.2016 - 14:14
2(2) А чего изучать? Там простейшая структура команд и их параметров.
Гость
5 - 23.06.2016 - 14:32
(4)ее и изучать
6 - 23.06.2016 - 16:10
Цитата:
Сообщение от USSR Посмотреть сообщение
ее и изучать
Это не наш метод.
Гость
7 - 23.06.2016 - 16:27
v7plus.dll - Полно примеров...
XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
ХМЛФайлДанных = XMLАнализатор.СоздатьДокумент();
хмлКорень = ХМЛФайлДанных.СоздатьПодчиненныйЭлемент("Файл");
Атрибут(хмлКорень, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
Атрибут(хмлКорень, "ИдФайл", ИмяФайла);
Атрибут(хмлКорень, "ВерсПрог", ВерсияПрограммы);
Атрибут(хмлКорень, "ВерсФорм", "5.01");

хмлДокумент = хмлКорень.СоздатьПодчиненныйЭлемент("Документ");
Атрибут(хмлДокумент, "КНД", "1110055");
Атрибут(хмлДокумент, "ДатаДок", Формат(ДатаДок, "ДДДММГГГГ"));
Атрибут(хмлДокумент, "НомЗаяв", Число(НомерДок));
Атрибут(хмлДокумент, "КодНО", КодНО);

хмСвНП = хмлДокумент.СоздатьПодчиненныйЭлемент("СвНП");
Если ОтправительЮрЛицо = 0 Тогда
хмлСвФЛ = хмСвНП.СоздатьПодчиненныйЭлемент("СвНАФЛ");
Атрибут(хмлСвФЛ, "ИННФЛ", ИНННалоговогоАгента);
хмФИО = хмСвНП.СоздатьПодчиненныйЭлемент("ФИО");
Атрибут(хмФИО, "Фамилия", ФамилияПредпринимателя);
Атрибут(хмФИО, "Имя", ИмяПредпринимателя);
Если ПустаяСтрока(ОтчествоПредпринимателя)<>1 Тогда
Атрибут(хмФИО, "Отчество", ОтчествоПредпринимателя);
КонецЕсли;
Иначе
хмлСвЮЛ = хмСвНП.СоздатьПодчиненныйЭлемент("СвНАЮЛ");
Атрибут(хмлСвЮЛ, "НаимОрг", НаименованиеНалоговогоАгента);
Атрибут(хмлСвЮЛ, "ИННЮЛ", ИНННалоговогоАгента);
Атрибут(хмлСвЮЛ, "КПП", КППНалоговогоАгента);
КонецЕсли;

хмПодписант = хмлДокумент.СоздатьПодчиненныйЭлемент("Подписант") ;
Атрибут(хмПодписант, "ПрПодп", ?(ОтправительЮрЛицо = 1,1,2));
Атрибут(хмПодписант, "ИННФЛ", СОКРЛП(ИННРуководителя));
Атрибут(хмПодписант, "Тлф", СОКРЛП(Телефон));
Если ОтправительЮрЛицо = 0 Тогда
хмФИО = хмПодписант.СоздатьПодчиненныйЭлемент("ФИО");
Атрибут(хмФИО, "Фамилия", ФамилияРуководителя);
Атрибут(хмФИО, "Имя", ИмяРуководителя);
Если ПустаяСтрока(ОтчествоРуководителя)<>1 Тогда
Атрибут(хмФИО, "Отчество", ОтчествоРуководителя);
КонецЕсли;
КонецЕсли;
....................

А можно тоже самое и без Анализатора. Можно через объект Adodb.Stream.
Задаешь кодировку и все такое
АдоСтрим.Charset = "utf-8";
АдоСтрим.Type = 2;
АдоСтрим.Mode= 3;
АдоСтрим.Open();

и вперед, и с пестней, только за тегами либо следишь сам, либо используешь подпрограммы, сохраняя стег уровней.
8 - 26.06.2016 - 02:44
Линейные иксемели тупо пишу как текст не заморачиваясь со сторонними возможностями, привык уже
9 - 29.06.2016 - 08:36
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);
...
Гость
10 - 04.07.2016 - 08:21
to 9
Копи паст - наше все?
Циклы не признаем?

Знал одного "программиста", который не признавал циклы. Простейшие программы у него были на тысячи строк...
11 - 04.07.2016 - 11:19
Прости меня, мой брат.
12 - 04.07.2016 - 14:43
Цитата:
Сообщение от Ветер в поле Посмотреть сообщение
Знал одного "программиста", который не признавал циклы. Простейшие программы у него были на тысячи строк...
А может ему платили построчно...
13 - 05.07.2016 - 01:08
http://portall.zp.ua/video/muzhik-ja...UUtIKpoSN.html


К списку вопросов






Copyright ©, Все права защищены