Коллеги, нужна помощь!
Уже уйму времени убил на попытки вывести произвольную иерархию комплектов номенклатуры с остатками.
Конфигурация каркасная, у справочника номенклатура есть табличная часть "СоставКомплекта" где собственно перечислен состав, но при этом там могут быть и другие комплекты, т.е. структура многоуровневая.
Так же есть простейший регистр остатков товаров с измерениями склад и номенклатура и ресурсом количество.
Собираю все нужные данные в следующих таблицах значений "ТаблицаОстатков" и "ТаблицаСостава".
Поля Комплект и Элемент служат для построения иерархии и строятся путем конкатенации кодов справочников начиная с первого родителя таким образом чтобы каждая ветка иерархии содержала уникальный ключ.
В СКД сделаны настройки согласно стандартным рекомендациям по построению иерархии в СКД.
Однако вместо ожидаемой иерархии получаю плоскую таблицу.
Что я делаю не так и как правильно построить произвольную иерархию с условием что в остатках по которым она должна строиться могут быть как элементы(без состава) так и многоуровневые комплекты?
P.S. Пытался формировать через ссылки элементов номенклатуры, но столкнулся с тем, что при наличии допустим остатка комплекта "Секция левая" и "Шкаф "Виктория"" который в себе содержит "Секция левая" получается задвоение строк в такой иерархии.
Победить такое поведение попытался построением сложных ключей элементов и их родителей чтобы они четко связывались без дублей, но иерархия вообще перестала строится (
(1) иерархия в СКД это иерархический справочник.
Произвольную иерархию так не делают.
По поводу задвоения строк, то тут ничего подобного.
Сначала выводится итог как для элемента, затем как для группы в итоге тупняк с пониманием, что и как считает и выводит.
Если проблема в том что выводятся "дубли", то делайте отбор или условное оформление.
Также на ИС была статья как убирать группировки.
(4)не знаю можно ли приводить тут ссылки на другие источники, но меня вдохновила вот эта статья: http://dop.a-franch.ru/public/576508/ в ней утверждается что очень даже можно подобным образом сделать произвольную иерархию, или я что то не так понял, можно мне пояснить как ее тогда правильно готовить?
По поводу задвоения строк, то тут ничего подобного.
Сначала выводится итог как для элемента, затем как для группы в итоге тупняк с пониманием, что и как считает и выводит
в данном случае не так - просто на скрине не видно что у другого комплекта который представлен в единственном экземпляре нет задвоений строк состава.
Согласен с коллегой. Добавлю, что неплохо бы узнать чего надо то. Какие таблицы вы создали понятно, но какую задачу решаете так и неясно.
необходимо вывести на СКД остатки товаров при этом если товар является комплектом вывести всю его многоуровневую структуру.
частично мне удалось это сделать, но как и описал появляются дубли строк состава если один и тот же комплект входит в разные родители.
вот для решения этой проблемы и пытаюсь построить иерархию по составным ключам чтобы каждая ветка иерархии строилась индивидуально и не дублировалась с имеющимися.
на такую мысль натолкнула статья "Добавление иерархии в типовой неиерархический справочник": https://infostart.ru/public/576508/
(9) Возможно перестает строить потому, что у вас нет в остатках составных кодов. Чтобы построилось, нужно остатки по составным тоже посчитать, мне кажется. Могу быть неправ, конструкция запутанная, и в голове поместилась не совсем.
Даже не знаю как это все еще проще описать и на какие еще более маленькие шаги разбить...
Суть в том, что если я строю произвольную иерархию по ссылкам справочника, то часть строк дублируется компоновкой предположительно из за повторения иерархии пусть и при ее вхождении в другой комплект, все наглядно на последнем скрине.
Я же попытался решить эту проблему путем построения произвольной иерархии не по ссылке а по ключам строк составленным таким образом, чтобы даже при вхождении одного комплекта в разные родители ключ строки был уникальным в рамках родителя, например - код родителя "001", плюсуем к нему код комплекта "005" входящего в данного родителя и код товарной позиции "009", в итоге получаем ключ у данной строки "001005009", при этом ключ родителя у данного элемента имеет код "001005" и т.д. до верха. Опять же все очень наглядно представлено на первом скрине.
НО, при таком подходе СКД перестает вообще строить иерархию, вопрос - почему так происходит и что я делаю не так?