#0
by Pasha12312
Доброго времени суток. Разбираюсь с ПостроительDOM. Вот выгрузка: .... вот код для загрузки: Чтение = Новый ЧтениеXML; проблема следующая, в СписокЗначений попалает только первый документ, так как я не знаю как опустится с узла "СчетаНаОплату" на "Документ", а сразу начинаю с узла "Документ"... Подскажите ,пожалуйста, как сделать обход для каждого узла "Документ" , а не только для одного...
#1
by alexei366
СчетаНаОплату скорее всего будет у тя ЭлементДокумента, посмотри в отладчике, а следом значит все дочерние узды будут у тя Документ, или же у Документ взять свойство Следующий, оно по теории укажет тебе на следующий документ
#2
by Pasha12312
не совсем понял...имеется введу - Пока POSITION.Следующий ...? покажите , пожалуйста , что нужно изменить в коде.
#9
by Pasha12312
Алексей, написал как вы говорите .... при отладке во всех "Документ.ИмяУзла" значение "Документ" .. "Документ.ТекстовоеСодержимое" значение имеет весь текст (Дата,Контрагент......) В списокЗначений по прежнему не попадает...
#14
by alexei366
У него пространства имен нет, а так-то можно и ФабрикуXDTO применить. Да и пока этого хватит, человек с ЧтенияXML начинал, пусть пока с ДокументDOM разберётся. И вообще Pasha12312 пробуй побольше отладчиком пользоваться, там сразу всё поймешь что куда и откуда
#17
by alexei366
Фиг его знает, помню как-то случайно затер пространство имен в пакете, так конфигуратор не давал сохранить
#19
by alexei366
Ты точку останова сделай в цикле где получаешь УзелДокумента, к примеру на первом Если, и посмотри его свойства, там если не ошибаюсь есть ИмяУзла, ЛокальноеИмя и ещё всякая фигня.
#21
by Fragster
нет. просто сделать безо всяких дополнительных приблуд. единственное, что потребуется - это через XMLЗначение преобразовывать числа и даты - потому как там все текстовое содержимое будет строками
#23
by alexei366
я конешь сам не пробывал, но в СП пишет что преобразовывать при методе Прочитать без указания типа будет пытаться к любому поддерживаемому сериализацию, а эт как понимаю наличие xsd. Я конеш могу ошибаться.
#24
by Pasha12312
тут разобрался, значения попадают , но в СпискеЗначений все равно загружает только 1-й документ.
#27
by alexei366
А вот теперь представь, что у него в СчетаНаОплату будет только 1 Документ. И наверно Список превратиться в свойство, эт ему ещё логику распаралеливать придётся немного
#34
by alexei366
И это в отладчике сколько циклов делает если поставить точку останова после Для Каждого Документ Из СчетНаОплату.ДочерниеУзлы Цикл , на НоваяСтрока = СписокЗначений.Добавить;?
#35
by alexei366
можно конешь автору ещё разочек ФабрикуXDTO предложить, но я думаю щас уже не согласиться.
#36
by Pasha12312
я проверил отладчиком "СчетНаОплату.ДочерниеУзлы" - количество документов 10 (правильно), "Документ.ДочерниеУзлы" - тоже правильно показывает , а чего цикл проходит только раз не понимаю.. ... я б согласен делать через ФабрикаXDTO, только ничего ниразу не делал через нее..
#37
by alexei366
Посмотри СчетНаОплату.ДочерниеУзлы.Количество, если 10 то значит гдето в коде или ошибка вылетает (хотя как понимаю нет), или же мож Прервать где написал, или СписокЗначений гдето очищаешь постоянно, или инициализируешь.
#43
by Pasha12312
оооо тут уже ФабрикаXDTO)) ... Ветки так поменять? Тип("СписокXDTO")=СчетНаОплату.Документ.Тип
#48
by alexei366
Закоментируй весь код который присваивает значения в колонки, оставь только где НоваяСтрока = СписокЗначений.Добавить; а остальное в коммент, и посмотри сколько пустых строк на выходе вышло.
#52
by Pasha12312
товарищи , в особенности alexei366, большое человеческое СПАСИБО, за помощь сегодня..
#53
by alexei366
Чувак я честно говоря даж конфигуратор не запускал (всмысле своим делом занимался) чтоб твой пример посмотреть, из памяти фигачил, ты посмотри в отладчике и СП как определить Тип свойства ОбъектаXDTO, я просто не помню.
#54
by Pasha12312
я не знаю как определить Тип свойства ОбъектаXDTO, но я посмотрел значение "СчетНаОплату.Документ" и там - о чудо !! )) все мои 10 документов , со всеми записями и табличными частями . ета строка обязательно нужна?:
#55
by Pasha12312
...и я надеюсь последний вопрос , у меня там в документе еще Табличная часть есть...как обойти еще ёё?
#56
by alexei366
Там фишка в чём, если количество у тя будет 1 то у тя там не список будет и тогда у тя ошибка вывалется на Для Каждого Документ Из СчетНаОплату.Документ Цикл
#59
by alexei366
Для Каждого СтрокаТабЧасти Из Документ.Табличная_Часть_Товары Цикл ............................
#62
by Pasha12312
блин, опять лажа у меня: {Форма.Форма.Форма}: Итератор для значения не определен Для Каждого СтрокаТабЧасти Из Документ.Табличная_Часть_Товары Цикл
#63
by Pasha12312
и может кто в курсе какой тип тут задать? Если СчетНаОплату.Документ.Тип(??? ) = Тип("СписокXDTO")
#65
by alexei366
Ну тут опять тотже венегред, если строка таб части одна, то это уже не список и обход элементов не применим.
#66
by Fragster
автору можно получить большой левелап, если он сам покурить про схемы xml, сделает схему, создаст фабрику с этой схемой и будет уже работать со схемой. Тогда там где список - всегда будет список, примитивные типы сами станут нормальными значениями и прочее. Но это если точить есть время.
#67
by Pasha12312
тут есть еще 3-й вариант ( по поводу табличной части документа). Если в табличной части нет ни одной записи тоже ошибка. Как тут проверить ёё на Количество . Документ.Табличная_Часть_Товары.Количество - нет такого метода. Как по другому , может кто подскажет?
#72
by Pasha12312
так ето есть ! А если табличная часть вообше пустая!? оно выдает что "поле объекта не обнаружено"... Вот что у меня:
#76
by Pasha12312
{Форма.Форма.Форма}: Метод объекта не обнаружен (Свойство) Если Документ.Свойство("Табличная_Часть_Услуги") <> Неопределено Тогда
#83
by alexei366
Чот я тя не понял, какая нафиг Номенклатура Если Документ.Свойства.Получить("Табличная_Часть_Услуги") <> Неопределенно Тогда
#90
by Pasha12312
так я же что -то пробовал с построителем!не получалось немного.. "немного" затянулось почти на 100 сообщений))
#92
by zladenuw
да вариант решение милионы :). я про то, что слепо ждать ответа, тут не надо. а гугл в помощь. кто то, ведь, когда то делал, что то такое
#93
by Pasha12312
так я так и делал.. сначала было прямое чтение, потом построителем пару вариантов пробовал ,ВычислитьВыражениеXPath ...
#94
by Pasha12312
Здравствуйте, снова.. Опять вернулся к этой обработку. Хотел перегрузить док, где в ТабЧасть 3 наименования, получил ошибку.. Подскажите , как мне тут получить значение колонки "Номенклатура"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Как создать базовую версию конфигурации
- Ошибка SQL: Попытка вставки неуникального значения в уникальный индекс
- Отчет не сформирован! Не найдено поле замены "РегистраторПодразделение"
- Ошибка при выводе на печать счет-фактуры
- Подключения макета Word в 1с
- Зависание при проведении "Закрытие месяца"
- Учет в разрезе инвойсов УПП
- 1С:Фабрика отчетов
- СКД. Пользовательское поле выражение итоговых записей.
- Что быстрее работает - ГДЕ или соединение?
- УФ - Таблица - надо заполнить список выбора для текущей строки - как?
- 1С 8.2 УТ11 анализ оборачиваемости товаров
- Настройка Mercury CL-200 в терминале
- v7: Как программно записать текущий документ?
- Ошибка при открытии оборотно-сальдовой ведомости
- Модуль управляемого приложения, глобальные переменные
- где можно смотреть список ошибок в релизах 1с
- Отчет "Ведомость по взаиморасчетам с контрагентами" УТ 10.3
- Пересчет аванса, полученного в иностранной валюте
- Вопрос по УТ 10.3 - проведение документов "Оперативное" и "Неоперативное"