Имя: Пароль:
1C
1С v8
XML в регистр сведений 1с 8
,
0 Casper21
 
28.10.15
21:24
Как загрузить некоторые данные из XML файла в 1с регистр сведений?
например
http://s020.radikal.ru/i721/1510/f0/345b56a1a243.png
Измерение(регистра сведений ):
1) Номер отделения - <Number>
2) Город-<CityDescription>
  Ресурс(регистра сведений ):
1) Время работы - <Reception>
2) Адрес - <Description>
3) МаксВантаж - <TotalMaxWeightAllowed>

это обработку нужно написать какую ??
      

ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("");
    //Корень
    ЧтениеXML.Прочитать();
            
    Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл
        Данные = ПрочитатьДанные(ЧтениеXML);
        Данные.Записать();
    КонецЦикла;
    ЧтениеXML.Закрыть();
Помогите плз, или инфой как загружать, че писать.
1 ДенисЧ
 
28.10.15
21:32
Проще написать человеку, который это умеет "Я дам тебе денег, ты мне напиши".
Если, конечно, самому ту же профразработку почитать лень.
2 echo77
 
28.10.15
21:33
3 Casper21
 
28.10.15
23:52
(1) мне бы чему-то научиться) попробовать
4 Casper21
 
28.10.15
23:53
пример какой бы о регистрах с XML
5 Casper21
 
29.10.15
00:08
или будет легче сначала в справочник? а затем в регистр сведений?
6 Casper21
 
29.10.15
18:21
вот так сделал, но выводит только одна запись.
То есть все перезаписывает - НаборЗаписей.Записать ()

Процедура КнопкаВыполнитьНажатие1(Кнопка)
    ОчиститьСообщения();
    НаборЗаписей = РегистрыСведений.НоваПошта.СоздатьМенеджерЗаписи().СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.УстановитьДоступныеПоля("Адреса");
    НаборЗаписей.Прочитать();
    НоваяЗапись = НаборЗаписей.Добавить();
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("d:\vidpov.xml");
        Пока ЧтениеXML.Прочитать() Цикл
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Имя = ЧтениеXML.Имя;
            КонецЕсли;
                Если Имя = "Description" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                    НоваяЗапись.Адреса = ЧтениеXML.Значение;  
                    Сообщить(ЧтениеXML.Значение);
                КонецЕсли;
                    Если Имя = "Number" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                        НоваяЗапись.НомерВідділення = ЧтениеXML.Значение;
                        //НаборЗаписей.Записать();
                        Сообщить(ЧтениеXML.Значение);
                    КонецЕсли;
                        Если Имя = "CityDescription" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                            НоваяЗапись.Місто = ЧтениеXML.Значение;
                            //НаборЗаписей.Записать();
                            Сообщить(ЧтениеXML.Значение);
                        КонецЕсли;
                            Если Имя = "TotalMaxWeightAllowed" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                                НоваяЗапись.МаксимальнийВантаж = ЧтениеXML.Значение;
                            //    НаборЗаписей.Записать();
                                Сообщить(ЧтениеXML.Значение);
                            КонецЕсли;
        НаборЗаписей.Записать();
        КонецЦикла;
        
        ЧтениеXML.Закрыть();    
             
КонецПроцедуры


что сделать чтобы добавлялись все записи?
7 Casper21
 
29.10.15
22:33
:(
8 RomanYS
 
29.10.15
22:46
НаборЗаписей.Записать();

здесь можно вставить параметр)
9 Casper21
 
30.10.15
11:19
{Форма.Форма.Форма (57)}: Ошибка при вызове метода контекста (Записать)
НоваяЗапись.Записать ();
через:
Нарушение прав доступа!

Что это может быть?
10 mehfk
 
30.10.15
11:22
(9) Читать умеешь?
11 RomanYS
 
30.10.15
11:26
(6) что это???
РегистрыСведений.НоваПошта.СоздатьМенеджерЗаписи().СоздатьНаборЗаписей();
12 Casper21
 
30.10.15
11:32
(8) этого уже нет, я не досмотрел

Процедура КнопкаВыполнитьНажатие1(Кнопка)
    ОчиститьСообщения();    
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("F:\Work\Taras-Ukraine\vidpov.xml");
    НоваяЗапись = РегистрыСведений.НоваПошта.СоздатьМенеджерЗаписи();

        Пока ЧтениеXML.Прочитать() Цикл
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Имя = ЧтениеXML.Имя;
            КонецЕсли;
                Если Имя = "Description" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                    НоваяЗапись.Адреса = ЧтениеXML.Значение;  
                    Сообщить(ЧтениеXML.Значение);
                КонецЕсли;
                    Если Имя = "Number" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                        НоваяЗапись.НомерВідділення = ЧтениеXML.Значение;
                        Сообщить(ЧтениеXML.Значение);
                    КонецЕсли;
                        Если Имя = "CityDescription" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                            НоваяЗапись.Місто = ЧтениеXML.Значение;                             
                            Сообщить(ЧтениеXML.Значение);
                        КонецЕсли;
                            Если Имя = "TotalMaxWeightAllowed" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                                НоваяЗапись.МаксимальнийВантаж = ЧтениеXML.Значение;                             
                                Сообщить(ЧтениеXML.Значение);
                            КонецЕсли;
        НоваяЗапись.Записать();
        КонецЦикла;
        
        ЧтениеXML.Закрыть();    
             
КонецПроцедуры
13 Casper21
 
30.10.15
11:33
Точнее вот так

Процедура КнопкаВыполнитьНажатие1(Кнопка)
    ОчиститьСообщения();    
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("F:\Work\Taras-Ukraine\vidpov.xml");


    Пока ЧтениеXML.Прочитать() Цикл
            НоваяЗапись = РегистрыСведений.НоваПошта.СоздатьМенеджерЗаписи();
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Имя = ЧтениеXML.Имя;
            КонецЕсли;
                Если Имя = "Description" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                    НоваяЗапись.Адреса = ЧтениеXML.Значение;  
                    Сообщить(ЧтениеXML.Значение);
                КонецЕсли;
                    Если Имя = "Number" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                        НоваяЗапись.НомерВідділення = ЧтениеXML.Значение;
                        Сообщить(ЧтениеXML.Значение);
                    КонецЕсли;
                        Если Имя = "CityDescription" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                            НоваяЗапись.Місто = ЧтениеXML.Значение;                             
                            Сообщить(ЧтениеXML.Значение);
                        КонецЕсли;
                            Если Имя = "TotalMaxWeightAllowed" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                                НоваяЗапись.МаксимальнийВантаж = ЧтениеXML.Значение;                             
                                Сообщить(ЧтениеXML.Значение);
                            КонецЕсли;
        НоваяЗапись.Записать();
        КонецЦикла;
        
        ЧтениеXML.Закрыть();    
             
КонецПроцедуры
14 George Wheels
 
30.10.15
11:42
(6)
Процедура КнопкаВыполнитьНажатие1(Кнопка)
    ОчиститьСообщения();
    НаборЗаписей = РегистрыСведений.НоваПошта.СоздатьМенеджерЗаписи().СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.УстановитьДоступныеПоля("Адреса");

    НаборЗаписей.Прочитать();
    //НоваяЗапись = НаборЗаписей.Добавить();
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("d:\vidpov.xml");
        Пока ЧтениеXML.Прочитать() Цикл
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                Имя = ЧтениеXML.Имя;
                НоваяЗапись = НаборЗаписей.Добавить();
            КонецЕсли;
                Если Имя = "Description" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                    НоваяЗапись.Адреса = ЧтениеXML.Значение;  
                    Сообщить(ЧтениеXML.Значение);
                КонецЕсли;
                    Если Имя = "Number" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                        НоваяЗапись.НомерВідділення = ЧтениеXML.Значение;
                        //НаборЗаписей.Записать();

                        Сообщить(ЧтениеXML.Значение);
                    КонецЕсли;
                        Если Имя = "CityDescription" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                            НоваяЗапись.Місто = ЧтениеXML.Значение;
                            //НаборЗаписей.Записать();

                            Сообщить(ЧтениеXML.Значение);
                        КонецЕсли;
                            Если Имя = "TotalMaxWeightAllowed" и ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                                НоваяЗапись.МаксимальнийВантаж = ЧтениеXML.Значение;
                            //    НаборЗаписей.Записать();

                                Сообщить(ЧтениеXML.Значение);
                            КонецЕсли;
        //НаборЗаписей.Записать();
        КонецЦикла;
        НаборЗаписей.Записать();
        
        ЧтениеXML.Закрыть();    
              
КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс