Имя: Пароль:
1C
 
выгрузка данных в xml в 1С 7.7
0 fadeik86
 
08.06.11
04:56
Привет всем.
Можно ли сделать выгрузку в XML из 1С 7.7
понимаю, что штатными средствами это невозможно (поставщик затребовал выгрузку именно в этом формате)
Можете сказать, может кто занимался этим уже, где почитать про это?
спс.
1 Андрюха
 
08.06.11
04:59
Пример записи/чтения в XML из 1С
http://narod.ru/disk/15347184001/ПримерРаботыXML.ert.html
2 Андрюха
 
08.06.11
05:01
Перем ИмяФайлаXML;

//*******************************************
Процедура ПрочитатьXML()

   ТекстОшибки = "";
   Если ФС.СуществуетФайл(ИмяФайлаXML) <> 1 Тогда
       ТекстОшибки = "Файл """ + ИмяФайлаXML + """ не найден!";
   ИначеЕсли ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда
       ТекстОшибки = "Компонента v7plus.dll не найдена!";
   КонецЕсли;
   
   Если ПустаяСтрока(ТекстОшибки) <> 1    Тогда
       Предупреждение(ТекстОшибки);
       Возврат;
   КонецЕсли;
   
   XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
   XMLДокумент = XMLАнализатор.СоздатьДокумент();
   XMLДокумент.Загрузить(ИмяФайлаXML);
   XMLКорневойРаздел = XMLДокумент.ВыбратьУзлы("*");
   XMLКорневойРаздел = XMLКорневойРаздел.ПолучитьУзел(0);
   ДанныеXML = XMLКорневойРаздел.ВыбратьУзлы("*");
   Для Сч1 = 0 По ДанныеXML.КоличествоУзлов() - 1 Цикл
       Ветка = ДанныеXML.ПолучитьУзел(Сч1);
       ДанныеДата = Ветка.ПолучитьАтрибут("Дата");
       ДанныеВремя = Ветка.ПолучитьАтрибут("Время");
       Сообщить("Узел: """ + Ветка.Наименование + """, Дата: " + ДанныеДата + ", Время: " + ДанныеВремя);
   
       Элементы = Ветка.ВыбратьУзлы("*");
       Для Сч2 = 0 По Элементы.КоличествоУзлов() - 1 Цикл
           Элемент = Элементы.ПолучитьУзел(Сч2);
           Сообщить("    Элемент: """ + Элемент.Наименование + """, Значение: " + Элемент.Значение);
       КонецЦикла;

   КонецЦикла;
   
   Предупреждение("ОК");
   
КонецПроцедуры



//*******************************************
Процедура ЗаписатьXML()

   Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1    Тогда
       Предупреждение("Компонента v7plus.dll не найдена!");
       Возврат;
   КонецЕсли;
   
   XMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
   XMLКорневойРаздел = XMLАнализатор.СоздатьДокумент();
   ДанныеXML = XMLКорневойРаздел.СоздатьПодчиненныйЭлемент("root");
   
   Для Сч1 = 1 По 3 Цикл
       Ветка = ДанныеXML.СоздатьПодчиненныйЭлемент("Данные" + Сч1);
       Ветка.УстановитьАтрибут("Дата", ТекущаяДата());
       Ветка.УстановитьАтрибут("Время", ТекущееВремя());
       Для Сч2 = 1 По 5 Цикл
           Элемент = Ветка.СоздатьПодчиненныйЭлемент("Элемент" + Сч2);
           Элемент.Значение = "Значение" + Сч2;
       КонецЦикла;
   КонецЦикла;
   
   
   XMLКорневойРаздел.Записать(ИмяФайлаXML);
   
   Предупреждение("ОК");
   
КонецПроцедуры

ИмяФайлаXML = "C:\ПримерФайлаXML.xml";
3 PaulBC
 
08.06.11
05:02
>>понимаю, что штатными средствами это невозможно
Возможно
4 miki
 
08.06.11
05:03
(0)
>>понимаю, что штатными средствами это невозможно

LOL
сделай в типовом глобальнике поиск по "XML" и удивись...
Можешь также открыть для себя XMLParser из v7plus.
5 fadeik86
 
08.06.11
05:04
(3) с помощью v7plus.DLL?
6 ДенисЧ
 
08.06.11
06:03
(5) намекаю. XML - это текст. Продолжать?
7 MiraRed
 
08.06.11
06:09
(5) Да.