Имя: Пароль:
1C
1С v8
Итоги в Запросе по входящей таблице значений
0 web_profiler
 
21.01.14
16:12
Заганяю в запрос ТЗ (номенклатура, родители номенклатуры, признак группы, осток по номенклатуре). Начал тупить - не могу построить по остаткам номенклатуры Итоги в родителе номенклатуры. Раздуплите меня, плиз. Вот скрин ТЗ: http://regfoto.ru/image/8329.html
Вот сам запрос:
ВЫБРАТЬ
    ТЗ.Наименование,
    ТЗ.Родитель,
    ТЗ.ЭтоГруппа,
    ТЗ.Остаток
ПОМЕСТИТЬ Таблица
ИЗ
    &ТЗ КАК ТЗ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Наименование КАК Наименование,
    Таблица.Родитель КАК Родитель,
    Таблица.ЭтоГруппа,
    СУММА(Таблица.Остаток) КАК Остаток
ИЗ
    Таблица КАК Таблица

СГРУППИРОВАТЬ ПО
    Таблица.Наименование,
    Таблица.Родитель,
    Таблица.ЭтоГруппа
ИТОГИ
    СУММА(Остаток)
ПО
    ОБЩИЕ,
    Наименование,
    Родитель
1 web_profiler
 
21.01.14
16:20
а еще варианты :( ?
2 Fram
 
21.01.14
16:21
(0) не очень понятно что хочешь получить в итоге
3 web_profiler
 
21.01.14
16:27
(2) просуммировать цифры подчиненных элементов и вывести в группы
4 Fram
 
21.01.14
16:28
(3) при этом сами элементы тебе нужны?
5 Fram
 
21.01.14
16:30
(3) все таки не очень понятно ты выражаешь свои мысли. лучше примером опиши че дано и че надо получить
6 web_profiler
 
21.01.14
16:33
на скрине же видно:
есть группа справочника,
есть подчиненные его элементы

так вот нужна сумма остатков в разрезе групп (только групп)
т.е. в запросе просуммировать элементы подчиненных групп и вывести обобщенные остатки в разрезе только групп
7 Fram
 
21.01.14
16:35
(6) тогда почему в группировке присутствует Таблица.Наименование и Таблица.ЭтоГруппа?
запросом методом тыка рисуешь?
8 Fram
 
21.01.14
16:35
*запросом = запрос
9 Fram
 
21.01.14
16:36
ВЫБРАТЬ
    ТЗ.Родитель,
    ТЗ.Остаток
ПОМЕСТИТЬ Таблица
ИЗ
    &ТЗ КАК ТЗ
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Таблица.Родитель КАК Родитель,
    СУММА(Таблица.Остаток) КАК Остаток
ИЗ
    Таблица КАК Таблица

СГРУППИРОВАТЬ ПО
    Таблица.Родитель
10 Fram
 
21.01.14
16:37
только зачем запрос, когда можно просто Свернуть
11 Fram
 
21.01.14
16:38
ой, пардон! таблица то неподготовленная
12 web_profiler
 
21.01.14
16:38
(10) ну и че я сверну? если сверну родителю - потом Родителя - родителя х... найду
13 web_profiler
 
21.01.14
16:38
да ладно сделал - сейчас скину запросик четенький
14 Fram
 
21.01.14
16:40
а если структура будет что то вроде
Группа1
  ВложеннаяГруппа1
    ВложеннаяГруппа2
и т.д.?
15 web_profiler
 
21.01.14
16:40
ВЫБРАТЬ
    ТЗ.Наименование,
    ТЗ.Родитель,
    ТЗ.ЭтоГруппа,
    ТЗ.Остаток
ПОМЕСТИТЬ Таблица
ИЗ
    &ТЗ КАК ТЗ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Родитель КАК Родитель,
    Номенклатура.ЭтоГруппа,
    Таблица.Остаток КАК Остаток
ИЗ
    Таблица КАК Таблица
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО Таблица.Наименование = Номенклатура.Ссылка
ИТОГИ
    СУММА(Остаток)
ПО
    Ссылка ТОЛЬКО ИЕРАРХИЯ
16 web_profiler
 
21.01.14
16:41
(14) так и есть
17 Fram
 
21.01.14
16:41
+(14) поэтому и спрашиваю что хочешь в итоге то получить
18 Fram
 
21.01.14
16:43
(13) а без внутр соединения никак? )
19 Fram
 
21.01.14
16:44
вот так например?

ВЫБРАТЬ
    ТЗ.Наименование,
    ТЗ.Остаток
ПОМЕСТИТЬ Таблица
ИЗ
    &ТЗ КАК ТЗ
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Таблица.Наименование,
    Таблица.Остаток КАК Остаток
ИЗ
    Таблица КАК Таблица
ИТОГИ
    СУММА(Остаток)
ПО
  Ссылка ТОЛЬКО ИЕРАРХИЯ
20 web_profiler
 
21.01.14
16:44
(18) а как ты предлагаем итог по иерархии получить?
21 Fram
 
21.01.14
16:44
при этом сильно надеюсь что Наименование - это ссылка
22 web_profiler
 
21.01.14
16:45
(19) в таком виде итоги доступны только для элементов!!!! - это же ссылкана строку таб части
23 web_profiler
 
21.01.14
16:45
ТЗ ссори
24 Fram
 
21.01.14
16:46
(22) точно?
25 web_profiler
 
21.01.14
16:47
сто пудов - 2 часа с этим боролся пока с тобой не начал говорить - и догнал соединить со справоч. и получить иерархию
26 Fram
 
21.01.14
16:49
а вот так если?

ВЫБРАТЬ
    Выразить(ТЗ.Наименование как Справочник.Номенклатура) КАК Наименование,
    ТЗ.Остаток
ПОМЕСТИТЬ Таблица
ИЗ
    &ТЗ КАК ТЗ
;

////////////////////////////////////////////////////////////////////////////////


ВЫБРАТЬ
    Таблица.Наименование,
    Таблица.Остаток КАК Остаток
ИЗ
    Таблица КАК Таблица
ИТОГИ
    СУММА(Остаток)
ПО

  Ссылка ТОЛЬКО ИЕРАРХИЯ
27 Fram
 
21.01.14
16:50
пардон  
Наименование ТОЛЬКО ИЕРАРХИЯ
28 web_profiler
 
21.01.14
16:55
да, проканает, но это уже в прошлом - как теперь вывести только иерархию, вся остальная ерунда уже не нужна
т.е. получили итоги по иерархии - имено они только и нужны
29 sanja26
 
21.01.14
16:57
(28)ТЗ не типизированная.
сделай выразить(Таблица.Наименование, как строка(...))
30 web_profiler
 
21.01.14
16:58
:) это я уже прошол ТЗ -ТИПИЗИРОВАНА
    ТЗСсылки = новый ТаблицаЗначений;
    ТЗСсылки.Колонки.Добавить("Наименование", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"),"Наименование");
    ТЗСсылки.Колонки.Добавить("Родитель", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"),"Родитель");
    ТЗСсылки.Колонки.Добавить("ЭтоГруппа", Новый ОписаниеТипов("Булево"),"ЭтоГруппа");
    ТЗСсылки.Колонки.Добавить("Остаток", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(10, 3),"Остаток");
31 Fram
 
21.01.14
17:01
(28) опять непонятно! (26) тебе выедет ТОЛЬКО ИЕРАРХИЮ с итогами
(30) подозреваю, что все что лабаешь на несколько страниц кода вытаскивается из базы одним запросом
32 Fram
 
21.01.14
17:03
а нет.. с СКД путаю ))
внешний запрос или обход олько по группировкам
33 Fram
 
21.01.14
17:05
+(26) забыл перед ИТОГИ ПО
СГРУППИРОВАТЬ ПО Таблица.Наименование
34 web_profiler
 
21.01.14
17:10
да ладно, за.....ся

Результат12 = Запрос12.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка");
Пока Результат12.Следующий() Цикл
    
КонецЦикла;

проблема решена
35 sanja26
 
21.01.14
17:19
да уж
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший