|
Как записать в табличную часть XML? | ☑ | ||
---|---|---|---|---|
0
breezee
10.03.16
✎
16:34
|
Вот так я записываю реквизиты справочника
ЗаписьXML.ЗаписатьНачалоЭлемента("CatalogObject"); // Ссылка ЗаписатьXML(ЗаписьXML, Контрагенты.Ссылка, "Ref", НазначениеТипаXML.Явное); // Код ЗаписатьXML(ЗаписьXML, Контрагенты.Код, "Code", НазначениеТипаXML.Явное); // Наименование ЗаписатьXML(ЗаписьXML, Контрагенты.Наименование, "Description", НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; Читаю так же, т.е. я уже знаю сколько реквизитов будет и как их читать. В табличной части я не знаю сколько будет строк. Как их записать? Как их прочитать? При том что при чтении до прочтения XML я не знаю сколько у меня строк в табличной части |
|||
1
breezee
10.03.16
✎
16:35
|
Прошу прощения. Некорректный вопрос. Хотел спросить "Как записать табличную часть документа в XML" Платформа 8.3.7
|
|||
2
breezee
10.03.16
✎
16:37
|
В принципе я придумал как знать количество - я могу его в шапку положить, хотя этот вариант мне думается - рабочий. Но все же, может можно сделать как-то более нормально? Может у кого-то есть пример?
|
|||
3
breezee
10.03.16
✎
16:37
|
(2) как знать количество строк в табличной части* Еще раз прошу прощения. Уже 19:30 я немного устал
|
|||
4
lubitelxml
10.03.16
✎
16:43
|
я не совсем понял что ты хочешь, но вот пример, выгрузка в xml:
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("Items"); ЗаписьXML.ЗаписатьАтрибут("Description", "PriceList"); ЗаписьXML.ЗаписатьАтрибут("Columns", "guid,period,priceType,price"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("Item"); ЗаписьXML.ЗаписатьАтрибут("guid", Строка(ВыборкаДетальныеЗаписи.Номенклатура.УникальныйИдентификатор())); ЗаписьXML.ЗаписатьАтрибут("period", Формат(ВыборкаДетальныеЗаписи.Период, "ДФ=yyyyMMdd")); ЗаписьXML.ЗаписатьАтрибут("priceType", Строка(ВыборкаДетальныеЗаписи.ТипЦен)); ЗаписьXML.ЗаписатьАтрибут("price", Формат(ВыборкаДетальныеЗаписи.Цена, "ЧГ=0")); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); Читаю его так: РезультатСтруктура = ОбщегоНазначения.ПрочитатьXMLВТаблицу(Результат); РезультатТЗ = РезультатСтруктура.Данные; Для каждого Строка из РезультатТЗ Цикл |
|||
5
breezee
10.03.16
✎
16:48
|
(4) Спасибо. Ты пишешь реквизиты документа, а потом саму табличную часть документа? А в какой конфе? У меня нетиповая и в ней точно нет метода ПрочитатьXMLВТаблицу. Мне надо узнать как узнать количество строк в табличной части
|
|||
6
lubitelxml
10.03.16
✎
16:50
|
самописка тоже, я через веб-сервисы обмениваюсь с упп. ОбщегоНазначения.ПрочитатьXMLВТаблицу - взято из БСП, то есть должно быть и в ут 11, и в бп 3.0
|
|||
7
hhhh
10.03.16
✎
16:52
|
(5) а зачем количество строк? добавляй себе строки пока не упрешься в конец xml.
|
|||
8
lubitelxml
10.03.16
✎
16:53
|
+(7) можешь еще номер дока в тз запихнуть, чтоб знать в какой док, если несколько выгружаешь
|
|||
9
lubitelxml
10.03.16
✎
16:54
|
запоминаешь предыдующий номер, с начале цикла сравниваешь старый и новый номер, если одинаковые - добавляешь в ТЧ дока, если нет, получаешь по номеру док и добавляешь туда
|
|||
10
breezee
10.03.16
✎
17:03
|
(7) (8) Да, у меня несколько доков. Тоже обмен через веб-сервис. (9) Я босюсь что нечаянно буду читать конец документа и у меня цикл не обнулиться - что-нибудь не то запишет. Вообще я наверное остановлюсь на идее на прямую писать количество строк для прочтения в документ. Мне кажется тогда я точно буду знать сколько строк мне писать. Спасибо за функцию "ОбщегоНазначения.ПрочитатьXMLВТаблицу" - завтра посмотрю что она делает. Дома нет под рукой типовых
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |