Имя: Пароль:
1C
 
Как в СКД к самодельной иерархии добавить реквизиты?
0 toypaul
 
гуру
20.12.16
14:20
На СКД есть отчет с самодельной иерархией. Два набора. Первый - элементы без подчиненных (базовая таблица). Второй - собственно иерархия. Все работает. Но теперь понадобилось к иерархии добавить некоторые реквизиты. Допустим есть таблица со ссылкой на элемент иерархии и список реквизитов.

Как можно эту таблицу к иерархии "присобачить"? В полях доступны только реквизиты поля "базовой таблицы". Пробовал к набору иерархии таблицу доп реквизитов добавить - как-то не очень получается.

Проблема в том, что в базовой таблице не все элементы. Если сделать все элементы - начинается дублирование (иерархия нестандартная - один элемент может быть на разных уровнях). Да все равно даже если в базовую таблицу включить все элементы на уровне иерархии доп реквизиты недоступны.
1 ИсчадиеADO
 
20.12.16
14:50
попробовать можно СКДшные доп характеристики, где источник - запрос
2 toypaul
 
гуру
20.12.16
14:53
Вроде получилось. Добавил в саму иерархию реквизит и в базовую таблицу такое же. И вроде показывает на всех уровнях то, что нужно. Реквизит добавил как функцию, без функции (то есть на Сумма(Реквизит), а просто Реквизит).
3 toypaul
 
гуру
20.12.16
14:58
Вот так вот заполнил реквизиты в иерархии в базовой таблице

    Для каждого Элемент Из ЗацикленныеСтатьи Цикл
    
        Строки = ТаблицаЗависимостей.НайтиСтроки(Новый Структура("Ссылка",Элемент.Значение));
        Для каждого СтрокаИерархии Из Строки Цикл
            СтрокаИерархии.ЕстьЦикл = Истина;
        КонецЦикла;
        Строка = ПоследнийУровень.Найти(Элемент.Значение,"Ссылка");
        Если Строка <> Неопределено Тогда
            Строка.ЕстьЦикл = Истина;
        КонецЕсли;
    
    КонецЦикла;
4 toypaul
 
гуру
20.12.16
14:59
В описании наборов Иерархии и Элементов (базовая таблица) добавил поле ЕстьЦикл.

В ресурсы добавил функцию ЕстьЦикл = ЕстьЦикл.

Вроде работает.
5 ИсчадиеADO
 
20.12.16
15:04
(4) лично я нифига не понял :(
6 toypaul
 
гуру
20.12.16
15:06
(5) ты не постиг дзэн :)

я сам пока еще не верю в то, что работает. но работает.
7 ИсчадиеADO
 
20.12.16
15:07
таблица иерархии - это внешний набор данных?
8 toypaul
 
гуру
20.12.16
15:08
(5) Вот смотри. У меня 2 набора.

Иерархия (Ссылка, Родитель) и
Элементы (Ссылка) - базовый набор (только конечные элементы, то есть без подчиненных), с которого (как я понимаю) 1С стартует иерархию.
9 toypaul
 
гуру
20.12.16
15:08
(7) оба набора это таблицы значений. хотя не суть ведь внешние они или запросом.
10 ИсчадиеADO
 
20.12.16
15:09
(8) непонятно, к чему ты (3) пишешь.Что вообще кому это сказать должно?
11 toypaul
 
гуру
20.12.16
15:11
И вот смотрю я в поля доступные и вижу, что доступны только из таблицы Элементы. Ой думаю ... а как же мне выводить реквизиты в группировке иерархии. Если просто добавить поле ЕстьЦикл в иерархию оно не доступно в полях. Тогда я добавил это поле в оба набора. И дальше как в (3) и в (4).

И вроде выводит реквизит в группировке родительской.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.