Проблема с построением произвольной многоуровневой иерархии в СКД

1. manserg 104 13.04.20 16:24 Сейчас в теме
Коллеги, нужна помощь!
Уже уйму времени убил на попытки вывести произвольную иерархию комплектов номенклатуры с остатками.
Конфигурация каркасная, у справочника номенклатура есть табличная часть "СоставКомплекта" где собственно перечислен состав, но при этом там могут быть и другие комплекты, т.е. структура многоуровневая.
Так же есть простейший регистр остатков товаров с измерениями склад и номенклатура и ресурсом количество.

Собираю все нужные данные в следующих таблицах значений "ТаблицаОстатков" и "ТаблицаСостава".

Поля Комплект и Элемент служат для построения иерархии и строятся путем конкатенации кодов справочников начиная с первого родителя таким образом чтобы каждая ветка иерархии содержала уникальный ключ.

В СКД сделаны настройки согласно стандартным рекомендациям по построению иерархии в СКД.

Однако вместо ожидаемой иерархии получаю плоскую таблицу.

Что я делаю не так и как правильно построить произвольную иерархию с условием что в остатках по которым она должна строиться могут быть как элементы(без состава) так и многоуровневые комплекты?

P.S. Пытался формировать через ссылки элементов номенклатуры, но столкнулся с тем, что при наличии допустим остатка комплекта "Секция левая" и "Шкаф "Виктория"" который в себе содержит "Секция левая" получается задвоение строк в такой иерархии.
Победить такое поведение попытался построением сложных ключей элементов и их родителей чтобы они четко связывались без дублей, но иерархия вообще перестала строится (
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Xershi 1490 13.04.20 20:09 Сейчас в теме
(1) иерархия в СКД это иерархический справочник.
Произвольную иерархию так не делают.

По поводу задвоения строк, то тут ничего подобного.
Сначала выводится итог как для элемента, затем как для группы в итоге тупняк с пониманием, что и как считает и выводит.

Если проблема в том что выводятся "дубли", то делайте отбор или условное оформление.
Также на ИС была статья как убирать группировки.
6. manserg 104 13.04.20 22:49 Сейчас в теме
(4)не знаю можно ли приводить тут ссылки на другие источники, но меня вдохновила вот эта статья: http://dop.a-franch.ru/public/576508/
в ней утверждается что очень даже можно подобным образом сделать произвольную иерархию, или я что то не так понял, можно мне пояснить как ее тогда правильно готовить?
7. manserg 104 13.04.20 22:53 Сейчас в теме
(4)
По поводу задвоения строк, то тут ничего подобного.
Сначала выводится итог как для элемента, затем как для группы в итоге тупняк с пониманием, что и как считает и выводит


в данном случае не так - просто на скрине не видно что у другого комплекта который представлен в единственном экземпляре нет задвоений строк состава.
8. manserg 104 13.04.20 22:54 Сейчас в теме
(4)
Произвольную иерархию так не делают.


а как ее делают?
2. VmvLer 13.04.20 16:55 Сейчас в теме
пытался вникнуть
и как пишут в статусах
все сложно


может будем решать вашу неполадку по тактике "маленьких шагов",
а то переваривать этот борщ лениво.

можете в качестве первого шага указать, что у вас не получилось с нарезкой капусты?
потом будем думать кто спер свеклу и т.д.
3. duhin 13.04.20 19:19 Сейчас в теме
Согласен с коллегой. Добавлю, что неплохо бы узнать чего надо то. Какие таблицы вы создали понятно, но какую задачу решаете так и неясно.
9. manserg 104 13.04.20 23:02 Сейчас в теме
(3)
Согласен с коллегой. Добавлю, что неплохо бы узнать чего надо то. Какие таблицы вы создали понятно, но какую задачу решаете так и неясно.


необходимо вывести на СКД остатки товаров при этом если товар является комплектом вывести всю его многоуровневую структуру.
частично мне удалось это сделать, но как и описал появляются дубли строк состава если один и тот же комплект входит в разные родители.
вот для решения этой проблемы и пытаюсь построить иерархию по составным ключам чтобы каждая ветка иерархии строилась индивидуально и не дублировалась с имеющимися.
на такую мысль натолкнула статья "Добавление иерархии в типовой неиерархический справочник": https://infostart.ru/public/576508/
10. duhin 14.04.20 06:02 Сейчас в теме
(9) Возможно перестает строить потому, что у вас нет в остатках составных кодов. Чтобы построилось, нужно остатки по составным тоже посчитать, мне кажется. Могу быть неправ, конструкция запутанная, и в голове поместилась не совсем.
12. manserg 104 15.04.20 14:57 Сейчас в теме
(10)
Возможно перестает строить потому, что у вас нет в остатках составных кодов

интересно, нужно проверить идею, спасибо
11. duhin 14.04.20 06:07 Сейчас в теме
(9) А чтобы построилось на чем есть, можно попробовать во второй строчке соединения поменять местами части соединения(поменять левое на правое)
13. manserg 104 15.04.20 14:58 Сейчас в теме
(11)
во второй строчке соединения поменять местами части соединения

уже пробовал, не помогает
5. manserg 104 13.04.20 22:42 Сейчас в теме
Даже не знаю как это все еще проще описать и на какие еще более маленькие шаги разбить...

Суть в том, что если я строю произвольную иерархию по ссылкам справочника, то часть строк дублируется компоновкой предположительно из за повторения иерархии пусть и при ее вхождении в другой комплект, все наглядно на последнем скрине.

Я же попытался решить эту проблему путем построения произвольной иерархии не по ссылке а по ключам строк составленным таким образом, чтобы даже при вхождении одного комплекта в разные родители ключ строки был уникальным в рамках родителя, например - код родителя "001", плюсуем к нему код комплекта "005" входящего в данного родителя и код товарной позиции "009", в итоге получаем ключ у данной строки "001005009", при этом ключ родителя у данного элемента имеет код "001005" и т.д. до верха. Опять же все очень наглядно представлено на первом скрине.

НО, при таком подходе СКД перестает вообще строить иерархию, вопрос - почему так происходит и что я делаю не так?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот