Подчиненные строки дерева в таблицу значений #631559


#0 by STAYEKR
Всем добра! Стоит задача выгрузки данных 1с в ексель. Выгрузка осуществляется некорректно, т.к. выгружаются только "родительские" строки. Возник вопрос: как сделать так, чтобы выгружались и вложенные строки? Использую следующий код (нашел в инете): Буду признателен за любую помощь
#1 by STAYEKR
+ при этом выводить "корневую" строку не надо. А с этим кодомона выводится
#2 by Азат
идею могу подсказать за косарик
#3 by Азат
слово РЕ-КУР-СИЯ ни о чем не говорит?
#4 by STAYEKR
Косарика у меня нету, любезнейший. Рекурсия - страшное слово, мало о чем говорит
#5 by Мимо Проходил
Чтобы понять рекурсию, надо понять рекурсию (с) не мое
#6 by STAYEKR
но от Вашей идейки не отказался бы!
#7 by Maxus43
зачем именно дерево выгружать? выгружай ТЗ с добавлением колонки "Родитель" типа таго
#8 by STAYEKR
про рекурсия прочитал, проникся. А при чем здесь она? можно примерчик, уважаемый?
#9 by STAYEKR
я в отдельной процедуре перегоняю ДЗ в ТЗ, а ТЗ потом уже выгружаю в ОО.
#10 by zladenuw
При работе с деревом главное понять, что каждая строка дерева это коллекция подчиненных строк (возможно пустая)
#11 by Maxus43
ну фигово перегоняеш, если строк подчинённых нет
#12 by STAYEKR
я догадываюсь об этом. Только не могу понять, как выгружать вложенные строки, а не родительскую.
#13 by STAYEKR
Вот так перегоняю. Что не так? Функция ВыгрузитьДеревоЗначенийВТаблицуЗначений(ДеревоЗаказы, ТаблицаРезультата)
#14 by Kashemir
#15 by zladenuw
#16 by STAYEKR
Спасибо, но не осилил. Это для перегона из ДЗ в ТЗ?
#17 by Kashemir
Неа - просто получение "кроны" дерева.
#18 by КуплюКровать
нужно учить одно из двух слов: рекурсия, косарик
#19 by STAYEKR
Косарик поможет осуществить твою голубую мечту? "Крона" уже с вложенными строками будет?
#20 by STAYEKR
Помогите нубу, гуры и гурии!
#21 by Kashemir
#22 by STAYEKR
Прошу прощения за откровенную тупежку, но никак не пойму, что нужно писать в закомментаренных Вами областях :(
#23 by Kashemir
В закомментаренных областях переменная Строка принимает последовательно (в иерархии) значения каждой ветки дерева. Следовательно можно вставить нужный обработчик для строки
#24 by STAYEKR
Беда. Как эту иерархию описать?
#25 by Kashemir
Представь себе дерево: Именно в током порядке как видишь и будет осуществлен обход дерева приведенной функцией. Так где стоят комментарии, переменная Строка принимаем значение Элемент N Может хоть так понятнее ?
#26 by STAYEKR
Дерево себе представляю. Из Ваших постов понял (возможно, ошибочно), что в зависимости от "Строка.Строки.Количество" циклом должны обходится либо вложенные ветки, либо родительские. Так? Если так, то не могу себе представить сам цикл
#27 by STAYEKR
+ т.е. ЧТО должно быть написано в каждом случае (кол-во = о и иначе)
#28 by Kashemir
Проверка на количество подчиненных нужна в случае если надо разделить обработчики конечных строк и имеющих подчиненные. Если такового не требуется
#29 by STAYEKR
Для Каждого СтрокаДерева Из ДеревоЗаказы.Строки Цикл не так должно примерно выглядеть?
#30 by Kashemir
А где рекурсивный вызов ? Ну обойдешь ты первый уровень ... а глубже ?
#31 by vmv
тупая ветка
#32 by STAYEKR
Вот и не знаю :( Поэтому, собсно, обратился. ПомогЁте?
#33 by STAYEKR
Не спорю. От Ваших гениальных постов она умней не станет, дядя
#34 by Kashemir
Ты не в состоянии использовать готовое решение. Не вижу чем тут еще можно помочь.
#35 by STAYEKR
Большое спасибо за потраченное на меня время! Буду курить матан
#36 by STAYEKR
рекурсивный вызов это вызов процедуры в самой себе?
#37 by Kashemir
Да
#38 by STAYEKR
Запилил так: (процедра называется "ВыгрузитьДеревоЗначенийВТаблицуЗначений(ДеревоЗаказы, ТаблицаРезультата)") Для Каждого СтрокаДерева Из ДеревоЗаказы.Строки Цикл Рухнуло все и 1с закрылась :(
#39 by vmv
его уже в школе в старших классах учат, зачем ты с 5-го решил заняться программированием, подрасти надо
#40 by STAYEKR
А я люблю сразу со сложного начинать. Вот сидел, беседовал с мудрым человеком. А тут рррраз! и Наимудрейший самый ценный в этой ситуации Секрет открыл! Расти, говорит, надо! Спасибо огромное! Жизнь моя отныене никогда не будет прежней! Спасибо!
#41 by vmv
главное - скажи нет наркотикам и все получиться)
#42 by STAYEKR
в суть верна? Не могу проверить, падает 1с :(
#43 by STAYEKR
Я с постижением Великой Истины сказал нет всему: еде, друзьям, сну. На наркотики и раньше не было времени, куда уж теперь
#44 by vmv
ВыгрузитьДеревоЗначенийВТаблицуЗначений(ДеревоЗаказы ты в рекурсию передаешь тот же узел, что вошел в текущий вызов и как итог зацикленность и падение, я же говорю расти надо
#45 by STAYEKR
Спасибо. А как же её тогда вызывать, енту рекурсию?
#46 by vmv
загуглить и найти на викии статью "Рекурсия для самых маленьких"
#47 by STAYEKR
в вики про рекурсию все ясно. Даже для не самых маленьких. А в 1С не совсем. Думаю, подсказав чуток, Добрый Дядя приблизил бы Юного Падавана к изучению Матана.
#48 by Kashemir
Падает очевидно потому что зацикливается. Как вызывать смотри
#49 by vmv
рекурсия в Африке рекурсия и нечего врать, что в 1С она по другим правилам работает и я не потакаю лени, хотел написать и тупости тоже, но это будет не политкорректно
#50 by STAYEKR
а что же так несмело? или боитесь, что пативен выедет в НЭзалЭжну? Так и написали бы. Я не говорю, что в 1С она работает по другому. Пршу ткнуть носом посильнее в то место, где её внедрить.
#51 by Kashemir
По мотивам твое творения должно выглядеть примерно так:
#52 by vmv
на понт меня решил взять, щенок?) тебя уже ткнули и не раз, до свидания
#53 by STAYEKR
На кол бы Вас взять, дядя. прямо неполиткорректной хохляцкой ж*пой, да погулбже! А вообще, в хохлостане, я гляжу, все боксеры! Кто в Раде, кто по-переписке! Неунывающие такие пенсионеры))
#54 by vmv
да я живу в демократической стране, в которой каждый имеет право быть клоуном - не завидуй!)
#55 by STAYEKR
Не забудьте, пожалуйста, принять свой галоперидол. Сегодня лучше даже двойную дозу. До свидания!
#56 by vmv
пока, карапуз)
#57 by STAYEKR
Огромное спасибО! Все работает! Еще раз благодарю за потраченные нервы и время!
#58 by Stim
деньги в кассу форума занесите, не забудьте
#59 by STAYEKR
а вы не подмазывайтесь, гражданин! Вот заебдетесь также, тогда поговорим
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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