Как сделать такой XML?

1. sys1c 12.11.19 10:46 Сейчас в теме
Всем привет. Нужно сделать выгрузку в XML такого вида:


C XML особо не работал, написал вот такой код:

		ЗаписьXML = Новый ЗаписьXML;	
		ЗаписьXML.ОткрытьФайл(ДиалогСохраненияФайла.ПолноеИмяФайла, "windows-1251");
		ЗаписьXML.ЗаписатьОбъявлениеXML();
		ЗаписьXML.ЗаписатьНачалоЭлемента("СчетаПК");
		ЗаписьXML.ЗаписатьАтрибут("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
		ЗаписьXML.ЗаписатьАтрибут("xsi:noNamespaceSchemaLocation", "Wages.xsd");
		ЗаписьXML.ЗаписатьАтрибут("ДатаФормирования", Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd"));
		ЗаписьXML.ЗаписатьАтрибут("НомерДоговора", "");
		ЗаписьXML.ЗаписатьАтрибут("НаименованиеОрганизации", "");
		ЗаписьXML.ЗаписатьАтрибут("ИНН", "");
		ЗаписьXML.ЗаписатьАтрибут("КодВалюты", "");
		ЗаписьXML.ЗаписатьАтрибут("БИК", "");
		ЗаписьXML.ЗаписатьАтрибут("Зачисление", "");
		
		ЗаписьXML.ЗаписатьНачалоЭлемента("ЗачислениеЗарплаты");
		
		Для ИндексМассива = 0 по МассивВыгрузки.Количество() - 1 Цикл
			ЗаписьXML.ЗаписатьНачалоЭлемента("Сотрудник", "Сотрудник Нпп="+Строка(ИндексМассива+1));
				ЗаписьXML.ЗаписатьАтрибут("Фамилия",        Строка(МассивВыгрузки[ИндексМассива][0]));
				ЗаписьXML.ЗаписатьАтрибут("Имя",            Строка(МассивВыгрузки[ИндексМассива][1]));
				ЗаписьXML.ЗаписатьАтрибут("Отчество", 	    Строка(МассивВыгрузки[ИндексМассива][2]));
				ЗаписьXML.ЗаписатьАтрибут("ОтделениеБанка", Строка(МассивВыгрузки[ИндексМассива][3]));
				ЗаписьXML.ЗаписатьАтрибут("ЛицевойСчет",    Строка(МассивВыгрузки[ИндексМассива][4]));
				ЗаписьXML.ЗаписатьАтрибут("Сумма",          Строка(МассивВыгрузки[ИндексМассива][5]));
			ЗаписьXML.ЗаписатьКонецЭлемента();
		КонецЦикла;
		
		ЗаписьXML.ЗаписатьКонецЭлемента();
		ЗаписьXML.ЗаписатьКонецЭлемента();
		ЗаписьXML.Закрыть();
Показать


Получил вот такое, вижу почти похоже ))
Подскажите почему по Сотруднику атрибут не так встает?
По теме из базы знаний
Найденные решения
3. PhoenixAOD 62 12.11.19 10:53 Сейчас в теме
(1)по моему Нпп должен записать как ЗаписьXML.ЗаписатьАтрибут("НПП", Строка(ИндексМассива+1));
9. tvm 12.11.19 11:23 Сейчас в теме
в цикле как-то так должно быть
ЗаписьXML.ЗаписатьНачалоЭлемента("Сотрудник");
ЗаписьXML.ЗаписатьАтрибут("Нпп","","1");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьНачалоЭлемента("Фамилия","");
ЗаписьXML.ЗаписатьТекст("Иванов");
ЗаписьXML.ЗаписатьКонецЭлемента();
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. PhoenixAOD 62 12.11.19 10:53 Сейчас в теме
(1)по моему Нпп должен записать как ЗаписьXML.ЗаписатьАтрибут("НПП", Строка(ИндексМассива+1));
4. dhurricane 12.11.19 10:56 Сейчас в теме
(1) В представленном образце единственный атрибут - это "Нпп". Все остальное элементы.
2. sys1c 12.11.19 10:49 Сейчас в теме
5. sys1c 12.11.19 11:07 Сейчас в теме
А как внутрь НачалаЭлемента вставить элемент?
6. Sashares 34 12.11.19 11:14 Сейчас в теме
(5)Записать еще одно начало элемента, у вас это даже используется.
7. dhurricane 12.11.19 11:14 Сейчас в теме
(5) Просто последовательно записывайте начало элемента.
8. sys1c 12.11.19 11:19 Сейчас в теме
У меня "Сотрудник с Нпп" теперь норм заработал, но че-то с фамилиями не выходит


я явно в ФИО не тот "элемент" подставляю, там без ковычек в примере и скобки треугольные сразу идут...

		Для ИндексМассива = 0 по МассивВыгрузки.Количество() - 1 Цикл
			ЗаписьXML.ЗаписатьНачалоЭлемента("Сотрудник");
			ЗаписьXML.ЗаписатьАтрибут("Нпп", Строка(ИндексМассива+1));
			
			ЗаписьXML.ЗаписатьНачалоЭлемента("Фамилия");
			ЗаписьXML.ЗаписатьАтрибут("Фамилия", Строка(МассивВыгрузки[ИндексМассива][0]));
			ЗаписьXML.ЗаписатьКонецЭлемента();				
			
			ЗаписьXML.ЗаписатьНачалоЭлемента("Имя");
			ЗаписьXML.ЗаписатьАтрибут("Имя",  Строка(МассивВыгрузки[ИндексМассива][1]));
			ЗаписьXML.ЗаписатьКонецЭлемента();				
			
			ЗаписьXML.ЗаписатьНачалоЭлемента("Отчество");
			ЗаписьXML.ЗаписатьАтрибут("Отчество",  Строка(МассивВыгрузки[ИндексМассива][2]));
			ЗаписьXML.ЗаписатьКонецЭлемента();				
			
			ЗаписьXML.ЗаписатьКонецЭлемента();
		КонецЦикла;
Показать
11. nomad_irk 72 12.11.19 11:28 Сейчас в теме
(8)
ЗаписьXML.ЗаписатьНачалоЭлемента("Фамилия");
ЗаписьXML.ЗаписатьАтрибут("Фамилия", Строка(МассивВыгрузки[ИндексМассива][0]));
ЗаписьXML.ЗаписатьКонецЭлемента();


замените на:

.....
ЗаписьXML.ЗаписатьНачалоЭлемента("Фамилия");
ЗаписьXML.ЗаписатьТекст(Строка(МассивВыгрузки[ИндексМассива][0]));
ЗаписьXML.ЗаписатьКонецЭлемента();
....
9. tvm 12.11.19 11:23 Сейчас в теме
в цикле как-то так должно быть
ЗаписьXML.ЗаписатьНачалоЭлемента("Сотрудник");
ЗаписьXML.ЗаписатьАтрибут("Нпп","","1");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьНачалоЭлемента("Фамилия","");
ЗаписьXML.ЗаписатьТекст("Иванов");
ЗаписьXML.ЗаписатьКонецЭлемента();
10. sys1c 12.11.19 11:26 Сейчас в теме
Громадное всем спасибо! за элементы, атрибуты и текст!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот