Имя: Пароль:
1C
 
загрузка из xml в 1с
0 edzie
 
25.04.13
05:58
Здравствуйте, подскажите как изменить или какие 2 строчки надо добавить, чтобы из xml файла при его загрузке у сотрудников организации записывался их адрес и телефон?
[code]&НаСервере
Процедура ЗагрузитьXML(Файлик)
  НовыйОбъектОрганизации = NULL;
  НовыйОбъектСотрудника = NULL;
  СпрОрг = Справочники.Организации;
  СпрСотр = Справочники.Сотрудники;
  ЗагXML = Новый ЧтениеXML;
  ЗагXML.ОткрытьФайл(Файлик);                      
  Пока ЗагXML.Прочитать() Цикл
     Если ЗагXML.Имя = "Организация" И ЗагXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
     ИначеЕсли ЗагXML.Имя = "Организация" И ЗагXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
             РезультатПоиска = СпрОрг.НайтиПоКоду(ЗагXML.ПолучитьАтрибут("Код"));
        Если РезультатПоиска.Пустая() Тогда
              НовыйОбъектОрганизации = СпрОрг.СоздатьЭлемент();
              НовыйОбъектОрганизации.Код = ЗагXML.ПолучитьАтрибут("Организация Код");
              НовыйОбъектОрганизации.Наименование = ЗагXML.ПолучитьАтрибут("Наименование");
              НовыйОбъектОрганизации.Записать();
     КонецЕсли;
           
     ИначеЕсли ЗагXML.Имя = "Сотрудник" И ЗагXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
              РезультатПоиска = СпрСотр.НайтиПоКоду(ЗагXML.ПолучитьАтрибут("Код"));
        Если РезультатПоиска.Пустая() Тогда
              НовыйОбъектСотрудника = СпрСотр.СоздатьЭлемент();
              НовыйОбъектСотрудника.Код = ЗагXML.ПолучитьАтрибут("Код");
              НовыйОбъектСотрудника.Наименование = ЗагXML.ПолучитьАтрибут("Наименование");
              НовыйОбъектСотрудника.паспорт = ЗагXML.ПолучитьАтрибут("Паспорт");
              НовыйОбъектМестоРаботыСотрудника = НовыйОбъектСотрудника.Организации.Добавить();
              НовыйОбъектМестоРаботыСотрудника.Организация = СпрОрг.НайтиПоКоду(ЗагXML.ПолучитьАтрибут("Организация"));
              НовыйОбъектКонтактыСотрудника = НовыйОбъектСотрудника.Адрес.Добавить();
              НовыйОбъектКонтактыСотрудника.телефон = ЗагXML.ПолучитьАтрибут("Телефон");
              НовыйОбъектКонтактыСотрудника.адрес = ЗагXML.ПолучитьАтрибут("Адрес");//
              НовыйОбъектСотрудника.Записать();
           КонецЕсли;
     КонецЕсли;
  КонецЦикла;
ЗагXML.Закрыть();
КонецПроцедуры [/code]
http://rghost.ru/45534309.view
http://rghost.ru/45534314.view - структура xml
1 Wobland
 
25.04.13
06:00
в моей 1С:Пятнице нет сотрудников и телефонов
2 el-gamberro
 
25.04.13
06:15
Адрес -  это реквизит справочника сотрудники?
3 Галахад
 
гуру
25.04.13
06:17
Напишите за меня код, а то мне лениво...
4 Jonny_Khomich
 
25.04.13
06:26
(3) Ребята, мне надо делать на основание самописного документа заказ покутепаля, подключитесь ко мне через TeamViewer, сделайте! Я потом скажу спасибо
5 Галахад
 
гуру
25.04.13
06:28
(4) Походите за меня на работу.
Зарплату я так и быть сам получу.
А вам больше, просто огромное спасибо с пляжа передам.
6 Jonny_Khomich
 
25.04.13
06:30
(5) я прям сейчас представил эту ситуацию :( аж прослезился.
7 Галахад
 
гуру
25.04.13
06:32
(6) Да я каждый день буду поднимать бокал за ваше здоровье!
8 Wobland
 
25.04.13
06:37
(7) так и манишь...
9 MiniMuk
 
25.04.13
06:46
(5) За меня выгоднее ходить на работу, я готов получать 30% от своей  заплаты
10 MiniMuk
 
25.04.13
06:46
(2) У сотрдунка не может быть адреса? Например проживания?
11 Галахад
 
гуру
25.04.13
06:51
(9) И это правильно, остальные 70 высылай мне. :-)
12 Гефест
 
25.04.13
06:53
Не забудьте, что вы должны уложиться в две строчки
13 Галахад
 
гуру
25.04.13
06:54
(12) Можно даже в одну. Быстрее же.
14 MiniMuk
 
25.04.13
06:54
(11) мне пофиг что будет с остальной зп, мне главное чтобы это не отнимало времени и приносило хоть какую прибыль
15 Wobland
 
25.04.13
06:57
(14) отлично! твои 30% пополам
16 В тылу врага
 
25.04.13
07:03
вышлите мне 500р. и сообщите, что я тоже участвовал в этом проекте
17 Rie
 
25.04.13
07:05
(2) Может. Только обычно (по крайней мере, в типовых) его хранят не как реквизит справочника.
18 Гефест
 
25.04.13
07:06
чур я руководитель проекта
19 1Сергей
 
25.04.13
07:07
о, если что, виноват всегда будет (18)
20 Rie
 
25.04.13
07:07
(0) А так - прикольно. У тебя, судя по приведенному образцу, корневым элементом является "Запись_Данных". Ну и хрен на корневой элемент - будем искать "Организация".
21 Rie
 
25.04.13
07:09
(12) Не проблема. Заобфускатить можно даже в одну строчку.
22 Jonny_Khomich
 
25.04.13
07:10
Если кто-нибудь кинет мне на мобилу хотя бы 50 рублей, я буду признателен ему!
23 Гефест
 
25.04.13
07:10
(21) Не, без читерства. До точки с запятой
24 MiniMuk
 
25.04.13
07:10
(15) радибога, тока на работу ходи. С какого числа выходишь?
25 Rie
 
25.04.13
07:12
Где @Ненавижу1С?
Пусть полюбуется на
НовыйОбъектОрганизации = NULL;
26 Wobland
 
25.04.13
07:13
Ненавижу 1С, приди!
27 Wobland
 
25.04.13
07:14
(25) инициализация переменной. в принципе чо такого?
28 Rie
 
25.04.13
07:17
(27) Да ничего. Правда, использовать для этого NULL несколько необычно.
Ну а пост был - именно к Ненавижу 1С с его (не)любовью к NULL vs. Неопределено :-)
29 hhhh
 
25.04.13
07:39
не туда смотрите. Основное ноухау здесь

     Если ЗагXML.Имя = "Организация" И ЗагXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
     ИначеЕсли ЗагXML.Имя = "Организация" И ЗагXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
30 Jonny_Khomich
 
25.04.13
08:06
(29) перестраховка, я ещё бы 3-й раз проверил
31 el-gamberro
 
25.04.13
08:30
(29) Там первая О латинская