v7: Перебрать строки табличной части документа. Реквизит строки с типом - Документ. #685149


#0 by america2013
Приветствую Вас, участники форума! Прошу помощи в таком вопросе: имею документ с табличной частью; в табличной части есть реквизит с типом Документ. Есть потребность перебрать так же строки этого документа из строки табличной части; выбрать строки документа проблем не вызывает, проблема выбрать строки из выбранной строки. Надеюсь описал доступно : ). Структура: Документ - Маршрутный лист. Табличная часть: Реквизит - РеализацияТоваров, типа Документ.РеализацияТоваров Код: Приветствую Вас, участники форума! Прошу помощи в таком вопросе: имею документ с табличной частью; в табличной части есть реквизит с типом Документ. Есть потребность перебрать так же строки этого документа из строки табличной части; выбрать строки документа проблем не вызывает, проблема выбрать строки из выбранной строки. Надеюсь описал доступно : ). Код:     Док = СоздатьОбъект("Документ.МаршрутныйЛист");
#1 by america2013
Поправочка: Реквизит - ДокументРеализации, тип Документ.РеализацияТоваров
#2 by Shaman100M
А что за метод, ТекущаяСтрока у документа? Возможно, нужен номер строки. ТекДок.ДокументРеализации.НомерСтроки;
#5 by eRik
ТекДок = Док.ДокументРеализации;
#6 by america2013
Что это - .НомерСтроки? Нужно фактически указать номер конкретной строки для чтения? А как все строки выбрать? Ещё один цикл по количеству строк в документе?
#7 by palpetrovich
как-то так:
#8 by Rie
ЧегоТоТам.ВыбратьСтроки - прекрасно работает. После этого обращаешься к реквизитам строк напрямую.
#9 by Rie
Это - круто! Но это - для 8-ки :-(
#10 by palpetrovich
аааааааа
#11 by Rie
+ Ну, естественно, не забывая ЧегоТоТам.ПолучитьСтроку.
#12 by america2013
Это и работает в первом цикле. Но далее есть ещё один, в котором идет перебор строк документа из строки, где этот документ находится. Смотрю по отладке - после .ВыбратьСтроки сразу переходит к конец, не проходя цикл .ПолучитьСтроку. Хотя, строки в документе есть.
#13 by Mikeware
вот для 7.7 :-) ТекстЗапросаВеса=" |SELECT
#14 by Rie
"Не верю!" (c) К.С.Станиславский
#15 by america2013
О_о
#16 by Rie
Как минимум одну строку кода ты забыл :-)
#18 by Mikeware
да вроде только заремленое убрал....
#19 by Rie
Ту, в которой ЗагрузитьВнешнююКомпоненту вызывается :-)
#20 by Mikeware
а, ну это уже подразумевается....
#21 by Rie
Но ТС об этом может и не знать. "Стаж: 10 дней".
#22 by america2013
Ничего не сообщает. Для меня странно то, что при отладке, когда получаю строку из МаршрутныйЛист (первый цикл), рассчитываю увидеть в табло реквизиты документа, номер, дата - есть, а напротив реквизита ДокументРеализации (рассчитываю увидеть номер, дата и табличную часть) - пустота.
#23 by Rie
ОК. Ну а так: В цикле: Видно чего?
#24 by america2013
Если Реализации.НайтиДокумент(ТекДок.ДокументРеализации)=1 Тогда {C:USERSUSERDESKTOPПОГРУЗОЧНЫЙ ОТЧЕТПОГРУЗОЧНЫЙ ОТЧЕТ V0.5.ERT}: Недопустимая операция
#25 by america2013
ТекДок.ДокументРеализации -- пусто. Но реквизит в документе (видно на форме документа) заполнен.
#26 by Rie
А какого типа реквизит ДокументРеализации? (В я имел в виду ТекДок из ; впрочем, вместо ТекДок - прекрасно можно использовать Док).
#27 by america2013
Реквизит - ДокументРеализации, тип Документ.РеализацияТоваров
#28 by Rie
Если было написано Реализации = СоздатьОбъект("Документ.РеализацияТоваров"); а ТекДок (или Док) взято внутри цикла Пока Док.ПолучитьДокумент=1 то
#29 by america2013
Чему вы не верите? Приведу код на данный момент, думаю, что именно он должен быть рабочим, но значение переменной - ДокРеализации - пусто(((((
#30 by Rie
Если ДокРеализации пусто - значит, пустое значние имеет и Док.ДокументРеализации. Значит, соответствующий реквизит - попросту не заполнен.
#31 by america2013
Но как это может быть, если я получаю МаршрутныйЛист (вижу его номер, дату...), открываю в базе - табличная часть заполнена, а при обращении программно к документу и его табличной части, выходит, что - не заполнено? (прям, мой 9 вагон пустой (с) М.Задорнов). Я уже было подумал, что там изврат какой-то, типа при открытии документа табличная часть заполняется каждый раз по-новой, но нет там такого к счастью.
#32 by Mikeware
откройте для себя отладчик....
#33 by Rie
Чудес не бывает. Может, в форме документа Вы видите вычисляемую текстовую колонку с документом реализации. Может, ещё чего.
#34 by america2013
именно так я и увидел, что там ничего не выводится, вообще табличная часть пустая. согласен, что не бывает... но реквизит на форме имеет тип - Документ.РеализацияТоваров.
#35 by abfm
Вот тут выбери и получи строку ТекДок
#36 by Rie
А учитываете ли Вы, что Отладчик в 7-ке несколько своеобразно работает с внешними отчётами и обработками? В частности, у него иногда хватает ума сохранить открытую для отладки обработку у себя, любимого - и показывать вовсе не те операторы, которые реально исполняются?
#37 by america2013
так я вроде это и делаю....
#38 by abfm
Пока ТекДок.ПолучитьСтроку = 1 Цикл Где эти строки?
#39 by america2013
Я ПОНЯЛ ВАС!!! Бесконечно благодарен!!!!!! Суть дела оказалась в чем:
#40 by america2013
Благодарю всех участников за помощь!!!
#41 by 1dvd
О том, что ДокументРеализации находится в табличной части, надо было говорить заранее
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С