Имя: Пароль:
1C
 
1С 8.2 УПП 1.3 Как загрузить данные из xml в базу
0 1СМол
 
17.03.11
16:20
Можно так? или перевести из xml в  dbf для начала но тоже незаню как...?
1 shuhard
 
17.03.11
16:25
(0) если в xml порнуха,
то лучше риповать, из dbf не взлетит
2 1СМол
 
17.03.11
16:29
(1)в xml - данне по работникам
что значит риповать?
3 ReaLg
 
гуру
17.03.11
16:51
(2) Как данные по работникам в XML попали? Алгоритм действий по загрузке зависит от того, чем выгружали.
4 Maxus43
 
17.03.11
16:55
(3) Обана.. новое слово в телепатии просто... откуда про работников догадался?)
5 ReaLg
 
гуру
17.03.11
16:56
Дык я так (2) перевел :)
6 Maxus43
 
17.03.11
16:57
(5) тьфу, это у меня новое слово во внимательном чтении оказывается)
7 1СМол
 
17.03.11
21:23
ситуация - есть xml файл там данные по физ лицам выгруженные из самописной программы для передачи отчетности, нужно их загрузить в 1С...
Вот и пытаюсь понять смогу ли я как-нибудь загрузить их в в 1С или нет
8 1СМол
 
18.03.11
07:52
-->
9 ReaLg
 
гуру
18.03.11
08:00
(7) Раз программа самописная - для этого придется написать свою обработку загрузки данных.
10 1СМол
 
18.03.11
08:05
(9)думаю да буду в dbf выгружать а потом в 1С
11 1СМол
 
18.03.11
08:06
из xml думаю сложнее будет
12 zladenuw
 
18.03.11
08:07
чем сложнее ?
13 valeriy vm
 
18.03.11
08:10
для тебя сложнее, если с хмл раньше не работал
14 1СМол
 
18.03.11
08:16
(12)(13) Пример загрузки данных из XML файла можете дать посмотреть?
15 zladenuw
 
18.03.11
08:19
чето типа такого
ownjuridicalpersons    = ДокXML.CreateElement("ownjuridicalpersons");
   
   ////////////////////////////////////////////////////
   //ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА (начало)
   ////////////////////////////////////////////////////
   //то, что лучше вынести из цикла в целях оптимизации
   ////////////////////////////////////////////////////
   
   лСпр    = СоздатьОбъект("Справочник.СвоиЮрЛица");
   лСпр.ИспользоватьДату(мДатаОбработки);
   
   ////////////////////////////////////////////////////
   //ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА (конец)
   ////////////////////////////////////////////////////
   //то, что лучше вынести из цикла в целях оптимизации
   ////////////////////////////////////////////////////
   
   лСпр.ВыбратьЭлементы();
   Пока лСпр.ПолучитьЭлемент() = 1 Цикл
       лЭлемент        = лСпр.ТекущийЭлемент();
       мТекущийОбъект    = лЭлемент;
       
       //////////////////////////////
       //фильтрующие условия (начало)
       //////////////////////////////
       
       Если лСпр.ПометкаУдаления() = 1 Тогда
           Продолжить;
       КонецЕсли;
       
       //////////////////////////////
       //фильтрующие условия (конец)
       //////////////////////////////
       
       //////////////////////////////
       //основное тело цикла (начало)
       //добавление элемента в xml
       //////////////////////////////
       
       ownjuridicalperson    = ДобавитьОбъект(ДокXML, Строка(лСпр), "ownjuridicalperson", ОбъектыВыгрузки.СвоиЮрЛица, лЭлемент);
       
       ДобавитьПотомка(ownjuridicalperson, "code"            , ЗначениеВСтрокуВнутр(лЭлемент));
       ДобавитьПотомка(ownjuridicalperson, "name"            , СокрЛП(лСпр.Наименование));
       ДобавитьПотомка(ownjuridicalperson, "deleted"        , лСпр.ПометкаУдаления());
       
       ДобавитьПотомка(ownjuridicalperson, "address"        , СокрЛП(лСпр.ЮрАдрес));
       //ДобавитьПотомка(ownjuridicalperson, "factaddress"    , СокрЛП(лСпр.ЮрАдрес));
       ДобавитьПотомка(ownjuridicalperson, "postindex"        , "");
       ДобавитьПотомка(ownjuridicalperson, "phone"            , СокрЛП(лСпр.Телефоны));
       
       ДобавитьПотомка(ownjuridicalperson, "juridicalname"    , СокрЛП(лСпр.ОфициальноеНаименование));
       ДобавитьПотомка(ownjuridicalperson, "INN"            , СокрЛП(лСпр.ИНН));
       ДобавитьПотомка(ownjuridicalperson, "INNNumber"        , "");
       ДобавитьПотомка(ownjuridicalperson, "VATStatus"        , "");
       
       ДобавитьПотомка(ownjuridicalperson, "chiefcode"        , "");
       ДобавитьПотомка(ownjuridicalperson, "accountantcode", "");
       ДобавитьПотомка(ownjuridicalperson, "cashiercode"    , "");
       
       ДобавитьНоду(ownjuridicalpersons, ownjuridicalperson);
       
       //////////////////////////////
       //основное тело цикла (конец)
       //добавление элемента в xml
       //////////////////////////////
       
   КонецЦикла;
   
   ДобавитьНоду(group, ownjuridicalpersons);
16 zladenuw
 
18.03.11
08:25
17 1СМол
 
18.03.11
08:25
(16) - это как я понимаю загрузка В XML а мне надо бы ИЗ XML
18 1СМол
 
18.03.11
08:26
(17) для (15)
19 valeriy vm
 
18.03.11
08:33
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("c:/docs/data.xml");
Пока ЧтениеXML.Прочитать() Цикл
   // Обработка узла XML
КонецЦикла;
20 1СМол
 
18.03.11
08:57
// Обработка узла XML

самая интересная часть
здесь скраты запись в справочник данных из xml
вот этот бы пример посмотреть
21 zladenuw
 
18.03.11
09:54
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьКФайлу); //ПутьКФайлу - Путь к загружаемому XML-документу указан в переменной
//Используется модель последовательного доступа.
Пока Чтение.Прочитать() Цикл // Прочитать «структурные части» элементов.

   // Проверить, какая часть элемента текущая.
   Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
       ИмяУзла = Чтение.Имя;
       
       Сообщить("--" + ИмяУзла);

       // Атрибуты элементов можно читать, только если текущая часть – начало элемента.
       Пока Чтение.ПрочитатьАтрибут() Цикл

           // Прочитать данные узла атрибута.
           ТипУзла = Чтение.ТипУзла;
           Имя = Чтение.Имя;
           Значение = Чтение.Значение;
   
       // Обработать полученные значения.
       //    ...
       
       КонецЦикла;
       
   ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда    

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

       // В примере просто выводим признак конца элемента в окно сообщений.
       Сообщить("--Конец:" + Чтение.Имя);
22 zladenuw
 
18.03.11
09:54
(20) а вообще букву "Я" в правом верхнем углу
23 valeriy vm
 
18.03.11
10:05
хелп(F1) в 1С конфигуратора, там все есть
24 1СМол
 
18.03.11
10:17
(22)(23) спасибо буду разбираться
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс