Изменить ТЗ в Дерево значений #671222


#0 by bUbA
Есть таблица значений, мне её нужно заменить на дерево значений. Узлы должны создаваться по значениям колонки Код, если длина кода 4 символа - это первый узел, если 6 символов - второй. Как это реализовать можно?
#1 by ДенисЧ
ЗАпросом, разумеется
#2 by Поросенок Петр
Что пытался сделать, что не получилось...
#3 by Maxus43
я за запрос
#4 by bUbA
эта таблица получилась путём выгрузки из xls, никаких запросов не было...
#5 by Славен
залей твое тз в запрос и уже оттуда сделай дерево
#6 by ptiz
Чем простой перебор не устраивает?
#7 by bUbA
через временные таблицы?
#8 by Поросенок Петр
+1. А нащщет адептов запросов, отметившихся в этой ветке, хотелось бы услышать каким образом будет построена произвольная иерархия без использования СКД.
#9 by Поросенок Петр
Плюс, наверняка, отношение элементов к узлам явно не задано в ТЗ, а следует из текущего порядка строк.
#10 by Professor83
Как-то так наверное? :)
#11 by Nexux
скд
#12 by hhhh
ИТОГИ в запросе вроде без использования СКД делают дерево
#13 by pessok
в упыпырище есть метод, познает рекурсию, чтобы познать рекурсию. а вообще, да, запросом с итогами
#14 by pessok
идет курить матчасть, да
#15 by AaNnDdRrEeYy
Дерево = Запрос.Выполнить.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); вот тогда точно дерево получишь.
#16 by Поросенок Петр
ИТОГИ добавляют новые строки, сортировка по иерархии требует иерархический объект (справочник, например)... Что из этого может помочь?
#17 by Поросенок Петр
Если за матчасть считаешь своё поверхностное знание работы запросов, то да, таких у меня нет. И не нужно.
#18 by AaNnDdRrEeYy
>>Что из этого может помочь? матчасть поможет
#19 by Поросенок Петр
Присоединяюсь к ТС, жду гени(т)ального решения на запросах.
#20 by AaNnDdRrEeYy
пример таблицы в студию.
#21 by pessok
ВЫБРАТЬ Ном, ВЫБОР КОГДА Код > ПОДСТРОКА(Код, 1, 4) ТОГДА 1 ИНАЧЕ 2 КАК Уровень Из &Таблица КАК Таблица ; ВЫБРАТЬ * ИЗ Таблица ИТОГИ ПО Уровень
#22 by pessok
">" заменить на "="
#23 by pessok
ну и поместить там не забыть, есессна
#25 by pessok
хотя не, чепуху написал :) пойду обедать
#26 by pessok
эммм. а почему нельзя СРАЗУ делать ДЗ в твоем случае?
#27 by bUbA
потому что в документе экселя всё построчно идёт, а в 1с мне нужно сгруппировать инфу и запихнуть в справочник
#28 by pessok
ИмпортируемыеКоды сделай ДЗ, а не ТЗ, и по своему условию делай ИмпортируемыеКоды.Строки.Строки.Добавить
#29 by bUbA
но получается, что это будет обход в цикле, без запроса
#30 by Trainee
Если док. записываешь, можно и перебором(хотя, там будет поиск в колонке, говорят, это затратно по времени  работает) Если не записываешь, запросом, тогда ТЗ придется Выгрузить предварительно. Только дерево - это скорее красиво, чем хорошо. По итогу у тебя будет 2 таблицы, если в дереве будет какой-нибудь расчет-пересчет, то запаришься, потом править.
#31 by bUbA
пока у меня что то такое получилось Для Каждого Строка Из ИмпортируемыеКоды Цикл
#32 by bUbA
потом всё это будет записываться в справочник, ну и пересчетов там быть не должно
#33 by zladenuw
прочитай про ЗаполнитьЗначенияСвойств Если СтрДлина(Строка.Код) = 4 Тогда
#34 by bUbA
если мне теперь необходимо записать всё это в справочник, лучше использовать метод СоздатьГруппу или СоздатьЭлемент?
#35 by bUbA
ещё вопрос, как можно сравнить шестизначное число с первыми шестью цифрами десятизначного числа? возможно ли такое вообще?
#36 by bUbA
никто не знает, или так нельзя сравнивать?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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