|
СКД, вывод дерева значений в СКД | ☑ | ||
---|---|---|---|---|
0
TeoFrast
22.06.13
✎
10:58
|
Существует дерево значений необходимо вывести его в СКД, возможно ли такое или придется использовать вывод через макет?
|
|||
1
zippygrill
22.06.13
✎
12:57
|
Через набор-объект?
|
|||
2
TeoFrast
22.06.13
✎
13:38
|
(1) Да, к примеру через внешний источник данных.
|
|||
3
GANR
23.06.13
✎
00:18
|
(0) Да возможно. Иерархические отчеты по "самопальной" иерархии описаны в книге Хрусталевой на странице 323 http://padabum.com/x.php?id=18905. Надо будет представить дерево значений в виде ТЗ, ТЗ загнать в набор данных СКД, а затем по книжке построить отчет. Все понятно?
|
|||
4
К_Дач
23.06.13
✎
00:56
|
||||
5
TeoFrast
23.06.13
✎
10:31
|
(3) Опишу поподробнее:
Производятся детали (спр-к) номенклатура, каждая деталь может производится из других деталей те в свою очередь еще из деталей. Иерархически эти детали не как не связаны между собой в справочнике номенклатуры. У меня есть ТЗ в которой есть для каждой детали, деталь для которой она изготавливается (еще есть уровень строки в исходном дереве значений) в СКД нужно получить следующее: Деталь1 Деталь1.1 Деталь1.1.1 Деталь1.1.1.1 Деталь1.1.2 Деталь1.2 Деталь1.3 Деталь1.3.1 |
|||
6
К_Дач
23.06.13
✎
10:53
|
Можно попробовать перед тем, как запихивать ТЗ в набор данных СКД - добавить колонку СслыкаНаРодителя, обойти ТЗ рекурсивно и заполнить эту колонку. Вот тебе будет связь между элементами. Потом пиши запрос по ТЗ с выводом иерархии и вперед
|
|||
7
TeoFrast
23.06.13
✎
11:00
|
(6) У меня в ТЗ уже есть СслыкаНаРодителя (т.е. это то для изготавливания какой детали нужна текущая). Когда выводишь в СКД с группировкой по СслыкаНаРодителя получается вот такой эффект:
Деталь1 Деталь1.1 Деталь1.1.1 Деталь1.2 Т.е. все становиться первого уровня что Деталь1.1, что Деталь1.1.1. |
|||
8
К_Дач
23.06.13
✎
11:16
|
(7) значит, ты неверно заполнил эту колонку. У тебя в ней хранятся ссылки на самого первого родителя, поэтому и выводятся одним уровнем, а ты заполни ссылками на непосредственного родителя
|
|||
9
TeoFrast
23.06.13
✎
12:36
|
(8)Дак тут как такового родителя нет, тут в качестве родителя выступает продукт для которого нужна текущая деталь...Т.е. в спровочнике номенклатура он не как не связаны.
|
|||
10
К_Дач
23.06.13
✎
16:32
|
(9) имею ввиду "родитель" - твоя главная деталь. Заполни эту колонку ссылкой на деталь верхнего уровня по тебе известным правилам
|
|||
11
TeoFrast
23.06.13
✎
16:41
|
(10) Спс за помощь!!! Но что не могу понять как это может помочь...подскажите плз.
|
|||
12
runoff_runoff
23.06.13
✎
18:43
|
(6) ИЕРАРХИЯ.. а как платформа поймет.. что именно поле СсылкаНаРодителя является родителем?..
|
|||
13
TeoFrast
24.06.13
✎
07:56
|
Актуально!
|
|||
14
GANR
24.06.13
✎
12:37
|
(5) Ответ в (3) целиком и полностью. Лично у меня получилось пример из Хрусталевой модифицировать так, чтобы можно было делать отчет по распределению, например - каждая проводочка имеет GUID, выступающий в роли родителя и имеет такой же Идентификатор строки. Кажется, в УПП есть отчеты по спецификациям номенклатуры. Таблицу значений можно загнать в СКД как НаборДанныхОбъект.
|
|||
15
TeoFrast
25.06.13
✎
10:58
|
(14) По хрусталевой смотрел, но я не могу понять как тут можно задать иерархию деталей? Ведь детали не как не связано между собой иерархически в справочнике номенклатура, а лишь связан иерархически в дереве значений.
Т.е. если использовать метод Хрусталевой, то НаборДанных Иерархия, должен быть некий иерархический справочник где заданы связи для деталей вида: Деталь1 Деталь1.1 Деталь1.1.1 Деталь1.1.1.1 Деталь1.1.2 Деталь1.2 Деталь1.3 Деталь1.3.1 прием для каждой другой головной детали, он имеет свою иерархию. |
|||
16
GANR
25.06.13
✎
15:11
|
(15) Загнать в СКД таблицу значений, в строках которой содержатся по крайней мере 2 поля - ИдентификаторЭлемента и ИдентификаторРодителя, ну а потом попытаться связать этот набор данных с самим собой так, как указано в Хрусталевой.
|
|||
17
TeoFrast
26.06.13
✎
10:14
|
(16) Руслан, огромное спасибо!!! Я просто когда изначально делал допустил ошибку)) а так все действительно получилось.
|
|||
18
GANR
26.06.13
✎
11:52
|
(17) Ура! Искренне рад!
|
|||
19
TeoFrast
27.06.13
✎
10:06
|
(18) Еще проблема возникла, при таком методе не возникает проблем с итогами?
меня получается как то не очень, на 3 м уровне итоги корректные а вот на втором абсолютно нет, при том число получается вообще какое то левое. |
|||
20
GANR
27.06.13
✎
12:04
|
(19) Еще один важный момент - в первый уровень выборки (ОсновнойНабор) должны попадать только элементы дерева, которые не имеют дочерних элементов (в набор Иерархия должны попадать все) - иначе сам элемент попадет в свою же собственную группу и итог по нему примешается к остальному.
|
|||
21
TeoFrast
27.06.13
✎
13:31
|
(20) Это я поправил но ошибка не ушло итоги также не корректно рассчитываются: вот ссылочка http://files.mail.ru/1B4209ACED8F4D44BB1877F5F2663DF8
Зеленным корректные итоги, красным нет. |
|||
22
GANR
27.06.13
✎
14:21
|
(21) Ага - вспомнил, была такая проблема... В моем случае с распределением проводок просто нет ресурсов в СКД - Сумма и СуммаУпр в СКД выступают как обычные поля, а ИТОГИ, как таковые вообще не считаются - они берутся прямо из проводок. Вот что могу тебе предложить: рассчитать итоги в ТЗ, перед тем, как подать ее на вход в СКД, ресурсы в СКД вообще не вводить, а вместо них в таблицу Иерархия добавить поля, по которым тебе нужны итоги - такой подход меня спас.
|
|||
23
TeoFrast
01.07.13
✎
15:26
|
(22) Что то не получается)))Может быть вы поможете мне не бесплатно конечно)))?
|
|||
24
GANR
01.07.13
✎
15:42
|
(23) Я и сам копал иерархию в СКД не глубже вас, да и видение задачи у вас лучше. И сам еще не пробовал, если честно, строить иерархию по загнанной в СКД таблице значений. Думаю, вы сами быстрее сделаете. Попробуйте лучше смоделировать (22) на простеньком примере из книжки Хрусталевой, или на своей упрещенном примере - вот моя рекомендация.
|
|||
25
GANR
01.07.13
✎
16:04
|
http://ximage.ru/data/imgs/1372680096.jpg - вот так понятно, что надо делать? Нужно до того, как загнать ТЗ в СКД рассчитать (делается посредством рекурсий)/получить итоги по иерархии.
|
|||
26
TeoFrast
01.07.13
✎
21:33
|
(25) Для получения ТЗ я делал просто запрос с итогами.
Нужно до того, как загнать ТЗ в СКД рассчитать (делается посредством рекурсий)/получить итоги по иерархии. - а таком методе я незнаю, где можно описание посмотреть? |
|||
27
GANR
01.07.13
✎
21:45
|
(26) Рассчитать итог по иерархии (25) можно посредством рекурсии, которая доходит до конечной детили, видит ее стоимость, а потом на рекурсивном возврате складывает итоги для агрегата. Вот кое-какой пример по рекурсиям в 1С http://forum.infostart.ru/forum24/topic27409/, но вот сам алгоритм я пока себе представляю не четко - подумайте сами.
|
|||
28
GANR
01.07.13
✎
21:50
|
ЗЫ, возможно, есть способ и попроще (27), но я не догадываюсь о нем.
|
|||
29
Eugeneer
01.07.13
✎
21:55
|
язык 1С могуч - можно делать почти все.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |