|
v7: XML - Выход за границы массива | ☑ | ||
---|---|---|---|---|
0
Patrio_
O_Muerte 23.07.12
✎
10:26
|
Доброго времени суток.
Есть вот такой обработчик xml файла. НомАв = Данные5.ВыбратьУзлы("Nomenclature"); Для счНомАв = 0 по НомАв.КоличествоУзлов-1 Цикл ТекНом = НомАв.ПолучитьУзел(счНомАв); Сообщить(ТекНом.КоличествоПодчиненных()); //32 Для СчУз = 0 По ТекНом.КоличествоПодчиненных()-1 Цикл Сообщить(СчУз); //0 ПодчУзел = ТекНом.ПолучитьПодчиненныйПоНомеру(СчУз) ; //ошибка КонецЦикла ; КонецЦикла; На той строке где написано слово ошибка, 1с-ка валится с ошибкой "Выход за границы массива". Где я допустил ошибку, если видно что в массиве подчиненных 32 элемента а валится на первой итерации (СчУз=0). Вот кусок файла: - <Nomenclature> <MATERIAL>582</MATERIAL> <ARTIKUL>72105</ARTIKUL> <NAME_MATERIAL>Мельница Dr.E ALIMENTARI 4 перца 35 гр</NAME_MATERIAL> <SHORT_NAME_MATERIAL>Мельница Dr. E ALIMENTARI 4 перца 35 гр</SHORT_NAME_MATERIAL> <KPK_NAME_MATERIAL>4 перца 35 гр</KPK_NAME_MATERIAL> <name_manufacturer>Мистраль</name_manufacturer> <Code_manufacturer>128</Code_manufacturer> |
|||
1
Надсмотрщик
23.07.12
✎
10:36
|
Для счНомАв = 1 по НомАв.КоличествоУзлов Цикл
Не пробовал? |
|||
2
Надсмотрщик
23.07.12
✎
10:39
|
+(1) "Мельница Dr. E ALIMENTARI 4 перца 35 гр" - можешь на мыло скинуть
|
|||
3
Patrio_
O_Muerte 23.07.12
✎
10:50
|
(1)Пробовал, но там все узлы отличаются по именам, а метод ВыбратьУзлы требует конкретного имени узла. Как то не кошерно будет каждый раз менять имя узла :)
|
|||
4
Надсмотрщик
23.07.12
✎
11:09
|
Лови "рыбку" Сейчас пишу себе обмены
// //Заполним табличную часть Товары = СпРеквизитов.Получить("Товары"); ТоварыXML = ДобавитьПодчиненныйЭлемент(ЭлСчет1С, "Товары"); Для СЦ = 1 По Товары.КоличествоПодчиненных() Цикл Данные = Товары.ПолучитьПодчиненныйПоНомеру(СЦ); СпРеквизитов = СоздатьОбъект("СписокЗначений"); Для СЦк = 1 По Данные.КоличествоПодчиненных() Цикл ДанныеТ = Данные.ПолучитьПодчиненныйПоНомеру(СЦк); СпРеквизитов.ДобавитьЗначение(ДанныеТ, ДанныеТ.Наименование); КонецЦикла; Если СпРеквизитов.РазмерСписка() = 0 Тогда Продолжить; КонецЕсли; СпрТовары = СоздатьОбъект("Справочник.Номенклатура"); СпрТовары.НайтиПоКоду(СпРеквизитов.Получить("Ид").Значение); Счет.НоваяСтрока(); Счет.Товар = СпрТовары.ТекущийЭлемент(); Счет.Количество = Число(СпРеквизитов.Получить("Количество").Значение); Счет.Цена = Число(СпРеквизитов.Получить("ЦенаЗаЕдиницу").Значение); Счет.Сумма = Число(СпРеквизитов.Получить("Сумма").Значение); Счет.НДС = глПоказательДокумента(Счет, "НДС"); Счет.НП = глПоказательДокумента(Счет, "НП"); Счет.Всего = глПоказательДокумента(Счет, "СуммаСНалогами"); Если ВыгрузитьТоварВСчет(ТоварыXML, Счет, Счет.Товар, Счет.Комментарий) = 0 Тогда Возврат 0 КонецЕсли; КонецЦикла; |
|||
5
Patrio_
O_Muerte 23.07.12
✎
11:15
|
ВыбратьУзлы("./*");
... спасла отца русской демократии. |
|||
6
Patrio_
O_Muerte 23.07.12
✎
11:15
|
||||
7
Patrio_
O_Muerte 23.07.12
✎
11:16
|
Спасибо за помощь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |