Создание дерева. Рекурсивная процедура. Vtools.dll #286378


#0 by Stereo
Здесь производство. Конфа самописная. Количество уровней вложения комплектов неограниченно. Справочник "Номенклатура" имеет реквизит  "СоставКомплекта" (документ, где в многострочной части (компоненты) тоже являются справочником "Номенклатура"). Таким образом формируется состав готового изделия. Прередо мной стоит задача создания дерева  (использую Vtools) для визуального отображения состава изделия. Проблемы возникли в построении алгоритма дерева. В данный момент код такой (дерево формируется некорректно) :
#1 by ТелепатБот
#2 by Stereo
+  Вобщем интирисует любая инфа, примеры алгоритмов, советы по теме использования рекурсивных процедур в производстве.
#3 by Stereo
Ауууу. товарищи! неужели никто не делал подобного?
#4 by GrayT
Да просто с втоолс разбираться лениво. Посмотри стандартный отчет дерево документов. Я бы еще добавил механизм защиты от зацикливания. На вскидку - у тебя два цикла по строкам документов - уже не совсем красиво для рекурсии. имхо, одна процедура для вывода номенклатуры. В ней перебор строк и рекурсивный вызов для номенклатуры в строке
#5 by mikecool
я не делал, пользовался только для отображения грида...
#6 by Ёпрст2
Это где такому учат ? ....
#7 by Злопчинский
проверял - работает.
#8 by Stereo
текДС= СоздатьОбъект("Документ.Состав"); а ДС.НайтиДокумент(текТовар.ДокСостав) использую т.к. при обращении напрямую по ссылке ( текТовар.ДокСостав ) при переборе строк не возвращает значение реквизита строчной части . Глюк какойто. Ты бы лучше что путное сказал.
#9 by Ёпрст2
#10 by GrayT
мне показалось, что получитьСтроку не обязан быть у объекта созданного чнрез СоздатьОбъект?
#11 by Ёпрст2
ВыбратьСтроки еще прикрутить надо :) ....
#12 by GrayT
ВыбратьСтроки также работают у текущийДокумент
#13 by Stereo
Перем ДС ДС = СоздатьОбъект("Документ");  - объявленно в основном тексте программы. На этом не заостял внимание. тут проблема с родителем, когда начинает уменьшаться уровень.
#14 by Ёпрст2
+11 хотя в 1с-ине есть такой глючок - если переменная на форме с типом документ ... то можно сразу получать строки, без ВыбратьСтроки... хотя, в данном случае, просто забыл ...
#15 by Stereo
Спасибо, похоже что где-то тут ...
#16 by Ёпрст2
А зря ...
#17 by Stereo
Как найти родителя нижестоящего уровня при уменьшении вложенности цикла рекурсивной процедуры?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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