Имя: Пароль:
1C
Админ
Посторить дерево запросом
0 prorokk
 
24.10.12
22:19
Нужно запросом вернуть такое Дерево Значений
Номенклатура Кол Цена
родитель1
 Родитель2
   Строка1   25   50
   Строка2   21   55

ВЫБРАТЬ
   ПриходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
   СУММА(ПриходнаяНакладнаяЗапасы.Количество) КАК Приход,
   СУММА(ПриходнаяНакладнаяЗапасы.Цена) КАК ЦенаПриход
ИЗ
   Документ.ПриходнаяНакладная.Запасы КАК ПриходнаяНакладнаяЗапасы
ГДЕ
   ПриходнаяНакладнаяЗапасы.Ссылка = &Документ

СГРУППИРОВАТЬ ПО
   ПриходнаяНакладнаяЗапасы.Номенклатура
ИТОГИ ПО
   ПриходнаяНакладнаяЗапасы.Номенклатура ИЕРАРХИЯ

У меня же получается

Номенклатура Кол Цена
родитель1
 Родитель2
   Строка1   25   50
   Строка1   25   50
   Строка2   21   55
   Строка2   21   55

Помогите скажите где туплю.
1 Живой Ископаемый
 
24.10.12
22:20
Все хорошо... просто не выгружай детальные записи
2 prorokk
 
24.10.12
22:21
ВремТаблица = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   ЗначениеВДанныеФормы(ВремТаблица,ДеревоНоменклатуры);
3 PR
 
24.10.12
22:22
После выгрузки пробегись по дереву и удали все конечные ветки, то есть строки, где количество строк в строке ноль.
4 prorokk
 
24.10.12
22:23
(3) К_Реактивное решение... А как же оптимизация...?!
5 Живой Ископаемый
 
24.10.12
22:33
ВЫБРАТЬ
   ПриходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
   СУММА(ПриходнаяНакладнаяЗапасы.Количество) КАК Приход,
   СУММА(ПриходнаяНакладнаяЗапасы.Цена) КАК ЦенаПриход
ИЗ
   Документ.ПриходнаяНакладная.Запасы КАК ПриходнаяНакладнаяЗапасы
ГДЕ
   ПриходнаяНакладнаяЗапасы.Ссылка = &Документ

СГРУППИРОВАТЬ ПО
   ПриходнаяНакладнаяЗапасы.Номенклатура
ИТОГИ ПО
   ПриходнаяНакладнаяЗапасы.Номенклатура ИЕРАРХИЯ


http://screencast.com/t/JE0j86KtdvS
6 Живой Ископаемый
 
24.10.12
22:35
ффак.. скриншот тот, запрос не тот.. вот правильный:

ВЫБРАТЬ
   ПриходнаяНакладнаяЗапасы.Номенклатура КАК Номенклатура,
   ПриходнаяНакладнаяЗапасы.Количество КАК Приход,
   ПриходнаяНакладнаяЗапасы.Цена КАК ЦенаПриход
ИЗ
   Документ.ПоступлениеТоваровУслуг.Товары КАК ПриходнаяНакладнаяЗапасы
ГДЕ
   ПриходнаяНакладнаяЗапасы.Ссылка = &Документ
ИТОГИ
   СУММА(Приход),
   СУММА(ЦенаПриход)
ПО
   Номенклатура ТОЛЬКО ИЕРАРХИЯ
7 Живой Ископаемый
 
24.10.12
22:36
правда смысла суммировать цену... ну... блин не могу придумать.. разве чтобы потом среднею посчитать.
8 Живой Ископаемый
 
24.10.12
22:36
не, ваще не могу.
9 kotletka
 
24.10.12
22:37
(6)вот как он у него родителя здесь выберет?
10 ProProg
 
24.10.12
22:38
(0) у тебя же есть моя обработка. там идеальный пример как что делать.
11 kotletka
 
24.10.12
22:38
какая иерархия может быть в документе?
12 Живой Ископаемый
 
24.10.12
22:38
2(9)Что?
13 ProProg
 
24.10.12
22:39
(0) это особенность 1С и ты никуда от нее не денешся. детальные записи. есть выход.
Если ты сделаешь на СКД и программно ег овыведешь в дерево - детальных записей не будет.
Или как вариант через промежуточную.

Выгружаешь запрос в Дерево. И далее из этого дерева делаешь свое дерево путем обхода рекурсией и игнора детальных записей.
14 ProProg
 
24.10.12
22:40
(11) причем тут документ. иерархия обращается к номенклатуре.
Епт. в регистрах тоже иерархии нет. тупим на ночь глядя?
15 ProProg
 
24.10.12
22:41
(7) МАКСИМУМ ставишь и все.
16 kotletka
 
24.10.12
22:42
родитель1
 Родитель2
   Строка1   25   50
   Строка2   21   55

Как запросом из (6) получить структуру родителей?
17 Живой Ископаемый
 
24.10.12
22:42
(15) почему не минимум? почему не среднее?
18 Живой Ископаемый
 
24.10.12
22:43
2(16) Посмотри  на скриншот из (5) том что-то не видно?
19 kotletka
 
24.10.12
22:45
тьху туплю вторую ночь подряд, надо скорее выздоравливать
20 Живой Ископаемый
 
24.10.12
22:46
но правда это у меня 8.3... может в 8.2 это по-другому.
21 kotletka
 
24.10.12
22:48
(17)так безразницы же в этом случае
22 Живой Ископаемый
 
24.10.12
22:49
(21)мне ваще все равно. мое дело предупредить.. а там хоть в степень возводите.
23 ProProg
 
24.10.12
22:50
Как я уже писал выше - СКД избавляет от детальных записей.
Решение обхода через промежуточное дерево решает тоже все вопросы.
24 Живой Ископаемый
 
24.10.12
22:51
2(23) а (6) стало быть не решает? и скриншот я в фотошопе намалевал?
25 ProProg
 
24.10.12
22:54
(24) а в 6 у тебя ТОЛЬКО ИЕРАРХИЯ а нужно и то и другое.
26 Живой Ископаемый
 
24.10.12
22:55
2(25) что и другое?
27 ProProg
 
24.10.12
22:55
ты определись какие у тебя там запрос правильный а какой неправильный.
28 prorokk
 
24.10.12
23:00
(6) Спс. помогло, работает!
29 Живой Ископаемый
 
24.10.12
23:03
2(27) то есть линзы снял и уже можно не читать? тоже логика...

http://screencast.com/t/gah6TzhwRE
30 Живой Ископаемый
 
24.10.12
23:04
2(28) то есть в 8.2 тоже правильно работает?
31 prorokk
 
24.10.12
23:04
Еще вопрос... Как программно развернуть дерево на управляемой форме?
32 prorokk
 
24.10.12
23:05
(30) и в 8.3 тоже работает.
33 Feanorko
 
24.10.12
23:05
(31) ты не поверишь! метод "Развернуть" для того и существует
34 ProProg
 
24.10.12
23:06
(33) только добавь сразу - что придется к каждому узлу бежать применять. итого придется рекурсией все дерево обойти чтобы развернуть свернуть.
35 Живой Ископаемый
 
24.10.12
23:09
2(34) Так что на счет (25) извинения будут?

Вот что получается если по списку документов среди которых есть доки с повтряющимися строками

http://screencast.com/t/QJQnTJ6e
Запрос тот же что и в (6)
36 prorokk
 
24.10.12
23:09
(33) смутил синтаксис помощник(
ДеревоЗначений (ValueTree)

Методы:

ВыбратьСтроку (ChooseRow)
Скопировать (Copy)
37 Feanorko
 
24.10.12
23:10
(36) Дерево на форме не есть "ДеревоЗначений"
38 Живой Ископаемый
 
24.10.12
23:15
2(32) в 8.3 точно работает, я просто думал вдруг бредни Маньяка действительно в случае 8.2 правдивы...
39 prorokk
 
24.10.12
23:18
(33)(34) Спасибо.!
40 prorokk
 
24.10.12
23:18
(38) да в 8.2 все ровно.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший