Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Чтение атрибута в пространстве имен

Чтение атрибута в пространстве имен
Я
   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.Закрыть();
    
КонецПроцедуры
 
 
   shlyahtich
 
1 - 08.10.16 - 09:38
up
   shlyahtich
 
2 - 08.10.16 - 09:41
ИзXMLТипа(ТипXML) неопределено в процедуре чтения когда читаю атрибут
   hhhh
 
3 - 08.10.16 - 09:47
пользуйтесь фабрикой xdto. Зачем вы вручную эти файлы лопатите?
   shlyahtich
 
4 - 08.10.16 - 10:04
(3) я учусь. Следующий этап XDTO
   hhhh
 
5 - 08.10.16 - 10:38
(4) как-то странно учитесь. В СКД зачем-то форму создаете, когда все без форм работают, здесь тоже фигня какая-то.
   shlyahtich
 
6 - 08.10.16 - 12:11
(5) я не создаю в СКД формы. Я ответил в ветке как раз что пользоваться можно стандартными средствами вывода

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