Имя: Пароль:
1C
1С v8
Иерархия по двум справочникам (дерево в дереве)
0 dark_avenger
 
05.03.14
13:41
Добрый день уважаемые. Битый час сижу не приходит в голову решение одной задачки. Необходимо организовать структуру (для отчета) в которой будут участвовать 2 иерархических справочника. Причем один другому не подчинен.
Имеется справочник1 и справочник2.
Структура нужна следующая:

- Группа1Спр1
-- Элемент1Спр1
--- Группа1Спр2
---- Элемент1Спр2
---- Элемент2Спр2
---- Элемент3Спр2

- Группа1Спр1
-- Элемент2Спр1
--- Группа2Спр2
---- Элемент1Спр2
---- Элемент2Спр2
---- Элемент3Спр2

- Группа1Спр1
-- Элемент3Спр1
--- Группа1Спр2
---- Элемент1Спр2
---- Элемент2Спр2
---- Элемент3Спр2
--- Группа2Спр2
---- Элемент1Спр2
---- Элемент2Спр2
---- Элемент3Спр2


Т.е. вариации вложенного справочника могут быть разные.
Для организации этой структуры я создал регистр св. в которому указываю принадлежность групп Спр2 к элементам Спр1.
Получается примерно следующее:
Элемент1Спр1 - Группа1Спр2
Элемент2Спр1 - Группа2Спр2
Элемент3Спр1 - Группа1Спр2
Элемент3Спр1 - Группа2Спр2

Теперь вот ломаю голову как это все структурировано в запросе собрать...

заранее спасибо что прочитали данную тему !
1 wade25
 
05.03.14
13:43
Т.е. регистр проще реквизита для подчинения?) (изначально идея фигня)
2 dark_avenger
 
05.03.14
13:56
А как он будет подчинен? Если спр2 подчинить спр1, то придется дублировать элементы спр2. Но это недопустимо, т.к. данные уже занесены за более чем 5 лет (спр1 - это субконто1, а спр2 - это субконто2, но выводить нужно весь спр не только с данными)
3 wade25
 
05.03.14
14:36
Понял. Как свойство еще вариант использовать.
4 Михаил Козлов
 
05.03.14
14:38
(3) Свойство и есть РС.
(0) Попробуйте итоги в запросе.
5 dark_avenger
 
05.03.14
14:59
Итоги крутил по всякому... они выводят подчинение, но не условное...

Сейчас есть пока одно решение - через процедуры рекурсивно собирать дерево значений. Но боюсь это будет очень медленно.
6 Necessitudo
 
05.03.14
15:09
(5) Писал код для рекурсивного обхода дерева в сто тысяч строк. Довольно быстро.