Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:48

XML в регистр сведений 1с 8

Автор casper21, 28 окт 2015, 21:23

0 Пользователей и 1 гость просматривают эту тему.

casper21

Как загрузить некоторые данные из 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.Закрыть();

Помогите плз, или инфой как загружать, че писать.

дфтын

http://online.1c.ru/catalog/programs/program/18610119/

вам надо научится рабоатьть с XML и с регистром сведений

casper21

пример какой бы о регистрах с XML
Добавлено: 29 окт 2015, 00:08


или будет легче сначала в справочник? а затем в регистр сведений?
Добавлено: 29 окт 2015, 18:22


вот так сделал, но выводит только одна запись.
То есть все перезаписывает - НаборЗаписей.Записать ()


Процедура КнопкаВыполнитьНажатие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.Закрыть();   
             
КонецПроцедуры



что сделать чтобы добавлялись все записи?
Добавлено: 30 окт 2015, 11:36


Процедура КнопкаВыполнитьНажатие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.Закрыть();   
             
КонецПроцедуры


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

Что это может быть?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск