![]() |
|
Чтение атрибута в пространстве имен | ☑ | ||
---|---|---|---|---|
0
shlyahtich
08.10.16
✎
09:18
|
учусь....
Записываю на серевере xml файл в пространстве имен второй процедурой его читаю, но не могу понять, почему эта стока не работает ЗначПрочит = XMLЗначение(ИзXMLТипа(ТипXML),ЧтениеXML.Значение); &НаСервере Процедура ВыгрузитьВXMLНаСервереПоТипам(АдресФайлаВоВременномХранилище,УИД) Расширение = ".xml"; ИмяФайла = ПолучитьИмяВременногоФайла(Расширение); Файл = Новый Файл(ИмяФайла); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | НЕ Номенклатура.ЭтоГруппа"; ТЗ = Запрос.Выполнить().Выгрузить(); ФайлЗаписьXML = Новый ЗаписьXML; ФайлЗаписьXML.ОткрытьФайл(ИмяФайла); ФайлЗаписьXML.ЗаписатьОбъявлениеXML(); ФайлЗаписьXML.ЗаписатьНачалоЭлемента("Корневой"); ФайлЗаписьXML.ЗаписатьАтрибут("ВыгружаемыйСправочник",XMLСтрока("Номенклатура")); ФайлЗаписьXML.ЗаписатьКомментарий("Выгрузка элементов справочника номерклатура"); Для Каждого Стр Из ТЗ Цикл ФайлЗаписьXML.ЗаписатьНачалоЭлемента("Элемент",XMLСтрока("Элемент")); ТипXML = XMLТипЗнч(стр.Код); ПространствоИмен = ТипXML.URIПространстваИмен; ИмяТипа = ТипXML.ИмяТипа; ФайлЗаписьXML.ЗаписатьАтрибут("Код",ИмяТипа,XMLСтрока(стр.Код)); КонецЦикла; ФайлЗаписьXML.ЗаписатьКонецЭлемента(); ФайлЗаписьXML.Закрыть(); Если Файл.Существует() Тогда ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла); АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УИД); УдалитьФайлы(ИмяФайла); КонецЕсли; КонецПроцедуры &НаСервере Процедура ТипДанныхПространствоИменПрочитатьНаСервере(Адрес,Расширение) ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); ДвоичныеДанные.Записать(ИмяВременногоФайла); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяВременногоФайла); Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Пока ЧтениеXML.ПрочитатьАтрибут() Цикл ТипXML = Новый ТипДанныхXML(ЧтениеXML.Имя,ЧтениеXML.URIПространстваИмен); ЗначПрочит = XMLЗначение(ИзXMLТипа(ТипXML),ЧтениеXML.Значение); Сообщить("атрибут: "+ ЧтениеXML.Имя+" = "+ЗначПрочит); КонецЦикла; КонецЕсли; КонецЦикла; ЧтениеXML.Закрыть(); КонецПроцедуры |
|||
1
shlyahtich
08.10.16
✎
09:38
|
up
|
|||
2
shlyahtich
08.10.16
✎
09:41
|
ИзXMLТипа(ТипXML) неопределено в процедуре чтения когда читаю атрибут
|
|||
3
hhhh
08.10.16
✎
09:47
|
пользуйтесь фабрикой xdto. Зачем вы вручную эти файлы лопатите?
|
|||
4
shlyahtich
08.10.16
✎
10:04
|
(3) я учусь. Следующий этап XDTO
|
|||
5
hhhh
08.10.16
✎
10:38
|
(4) как-то странно учитесь. В СКД зачем-то форму создаете, когда все без форм работают, здесь тоже фигня какая-то.
|
|||
6
shlyahtich
08.10.16
✎
12:11
|
(5) я не создаю в СКД формы. Я ответил в ветке как раз что пользоваться можно стандартными средствами вывода
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |