Имя: Пароль:
1C
1С v8
Иерархия по произвольному полю в запросе
,
0 alexshape
 
26.06.23
11:17
Привет, товарищи программисты. хотелось бы узнать, как получить иерархию по определенному полю в запросе, если конечно такое возможно.

Абстракная упрощенная задача:
Есть справочник "Номенклатура" он иерархический. В то же время есть свое поле "ГлавныйРодитель", который имеет тип тоже номенклатура. Как из запроса вытащить данные, в виде

| ГлавныйРодитель
____|ГлавныйРодитель
___________|ГлавныйРодитель

В стандартном варианте получается вот так

| ГлавныйРодитель
____|Родитель
___________|Родитель
1 Asmody
 
26.06.23
11:41
(0) ничего не понятно, но СКД умеет строить произвольные иерархии
2 alexshape
 
26.06.23
11:45
(1) не СКД, обычный запрос. В СКД я думаю подобработка присутсвует
3 rphosts
 
26.06.23
11:57
(2) тебе религия запрещает результат работы скд в таблицу выгрузить или не умеешь?
4 vde69
 
26.06.23
12:21
(0) а ты уверен, что твой "Главный родитель" не зациклен?

прежде чем городить в запросах левые иерархии сначала озаботся корректностью данных, в противном случае сервак завалишь.... Ну а если не уверен, то пользуйся только типовым функционалом
5 lodger
 
26.06.23
12:38
(2) емнип, Запрос умеет иерархии только иерархических объектов метаданных.
6 lodger
 
26.06.23
12:39
хочешь кастома - учись тискать СКД, или выгружай в ТЗ и обходи кодом каждую строчку сам.
7 alexshape
 
26.06.23
13:10
Спасибо. (5)
(6) все же пришел к выводу, что самый правильный вариант это делать отдельный справочник "Главные родители номенклатуры" с соответствующей ссылкой, но так чтобы для пользователя это было максимально незаметно.
8 АгентБезопасной Нацио
 
26.06.23
13:58
(7) ключевые слова: "инфостарт", "ildarovich", "транзитивное замыкание"
9 АгентБезопасной Нацио
 
26.06.23
13:59
(5) запрос умеет почти всё. просто не все умеют запрос.
10 Смотрящий
 
26.06.23
15:49
(8) Транзитивное замыкание это не про его задачу
(0) ИТОГИ ПО ГлавныйРодитель выведет тебе твою иерархию
11 АгентБезопасной Нацио
 
26.06.23
15:52
(10) может быть. пример бы исходных данных, и результата - от ТС'а...
Ошибка? Это не ошибка, это системная функция.