Имя: Пароль:
1C
1С v8
ТЧ докумен (n-записей) -> XDTO - > массив (выгружает только последнюю!) -> xml .
0 loonypy
 
16.10.12
11:50
В массив выгружает только последнюю запись табличной части, хотя выгрузка в цикле:

XMLФайл = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
   XMLФайл.ОткрытьФайл(ПутьКXMLФайлу, ПараметрыЗаписиXML);
XMLФайл.ЗаписатьОбъявлениеXML();
 
ДлинаСтроки = 0;
ПеремСтрока = "";
КоличествоЭлементов = ВыборкаДетальныеЗаписи.Количество();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
 
 ДлинаСтроки = СтрДлина(ВыборкаДетальныеЗаписи.ФИО);
 НомерСимвола = Найти(ВыборкаДетальныеЗаписи.ФИО, " ");
 Фамилия = Лев(ВыборкаДетальныеЗаписи.ФИО, НомерСимвола-1);
 ПеремСтрока = СтрЗаменить(ВыборкаДетальныеЗаписи.ФИО, Фамилия + " ", "");
 НомерСимвола = Найти(ПеремСтрока, " ");
 Имя = Лев(ПеремСтрока, НомерСимвола-1);
 Отчество = СтрЗаменить(ПеремСтрока, Имя + " ", "");
 
Сотрудник.Фамилия = Фамилия;
Сотрудник.Имя = Имя;
Сотрудник.Отчество = Отчество;

НоваяФабрикаXDTO.ЗаписатьXML(XMLФайл, Сотрудник);
1 loonypy
 
16.10.12
11:51
КонецЦикла;

там есть, да:)
2 Cube
 
16.10.12
11:52
(0) Где КонецЦикла?
3 Cube
 
16.10.12
11:53
+(2) Где ты создаешь массив?
4 loonypy
 
16.10.12
11:53
(2)

НоваяФабрикаXDTO.ЗаписатьXML(XMLФайл, Сотрудник);
КонецЦикла;
5 loonypy
 
16.10.12
12:16
(3) Это ВыборкаДетальныеЗаписи. Вот полный код:

Процедура ВыгрузитьВXML() Экспорт
//Выгрузить реестрт по ЗП
Перем ПутьКФайлу;

//NNNNDDDP.xml
//NNNN - номер отделения банка
//DDD - номер списка с начала года
//P - (“z” – зачисление заработной платы)

ПутьКФайлу = "D:\1c_base\address.xsd";

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование КАК ФИО,
| ЗарплатаКВыплатеОрганизацийЗарплата.Сумма
|ИЗ
| Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
|  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций
|  ПО ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = ЗарплатаКВыплатеОрганизаций.Ссылка
|ГДЕ
| ЗарплатаКВыплатеОрганизаций.Ссылка = &СсылкаНаДокумент";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить(ПутьКФайлу);
НоваяФабрикаXDTO = СоздатьФабрикуXDTO(ФайлыXSD);

ПутьКXMLФайлу = "D:\1c_base\файл.xml";
XMLФайл = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
XMLФайл.ОткрытьФайл(ПутьКXMLФайлу, ПараметрыЗаписиXML);
XMLФайл.ЗаписатьОбъявлениеXML();

ДлинаСтроки = 0;
ПеремСтрока = "";
КоличествоЭлементов = ВыборкаДетальныеЗаписи.Количество();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
 
 
 ДлинаСтроки = СтрДлина(ВыборкаДетальныеЗаписи.ФИО);
 НомерСимвола = Найти(ВыборкаДетальныеЗаписи.ФИО, " ");
 Фамилия = Лев(ВыборкаДетальныеЗаписи.ФИО, НомерСимвола-1);
 ПеремСтрока = СтрЗаменить(ВыборкаДетальныеЗаписи.ФИО, Фамилия + " ", "");
 НомерСимвола = Найти(ПеремСтрока, " ");
 Имя = Лев(ПеремСтрока, НомерСимвола-1);
 Отчество = СтрЗаменить(ПеремСтрока, Имя + " ", "");
 
 Сотрудник = НоваяФабрикаXDTO.Создать("http://www.sample-package.org", "Сотрудник");
 Сотрудник.Фамилия = Фамилия;
 Сотрудник.Имя = Имя;
 Сотрудник.Отчество = Отчество;
 
 
 
КонецЦикла;
Сообщить(Строка(Сотрудник.Фамилия));
НоваяФабрикаXDTO.ЗаписатьXML(XMLФайл, Сотрудник);
XMLФайл.Закрыть();

КонецПроцедуры
6 loonypy
 
16.10.12
12:18
Делаю не я - коллега попросил помочь.
7 Cube
 
16.10.12
12:19
(5) Красавчик:

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
...
 Сотрудник = НоваяФабрикаXDTO.Создать("http://www.sample-package.org", "Сотрудник");

КонецЦикла;

НоваяФабрикаXDTO.ЗаписатьXML(XMLФайл, Сотрудник);


И чего ты ждешь?
8 zladenuw
 
16.10.12
12:21
странные примеры. то запись в хмл в цикле. то после цикла
9 loonypy
 
16.10.12
12:25
(8) брутфорс:) Если после цикла - выгружала последнюю строку, если внутри цикла - писала ошибку при попытке выполнить.
10 loonypy
 
16.10.12
12:25
Т.е. вообще ничего не выгружала.