Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Получение сумм по нижестоящим группировкам в таблице значений

Получение сумм по нижестоящим группировкам в таблице значений
Я
   trey1
 
02.11.16 - 06:25
Коллеги такая проблема возникла, обхожу результат запросов по группировкам, требуется узнать суммы документов в вышестоящей группировке, попробую показать наглядно:
https://cloud.mail.ru/public/D6Mq/Yt3AvpGJF
Дело в том, что мне нужно знать сумму документа по нижестоящим группировкам, если я итоги по сумме возьму, то в группировке по документу будет 202 тысячи * кол-во этих документов, хотя мне надо только лишь сумма 202, если я возьму итог по максимуму, то в этой группировке будет все норм, но в вышестоящей(назову ее по контрагенту) возьмется лишь максимум по документам, как быть не знаю, на СКД это сделалось бы в 2 счета но нужно именно Обход результата по группировкам
 
 
   Romyr
 
1 - 02.11.16 - 06:29
скд? там вроде были промежуточные итоги
   trey1
 
2 - 02.11.16 - 06:31
(1) В чем и дело что не СКД, получается результат запроса и мне его надо обойти по группировкам
   shadow_sw
 
3 - 02.11.16 - 06:35
запрос в студию
   trey1
 
4 - 02.11.16 - 06:41
(3) Конфа немного доработанная, поэтому запрос в типовых не будет работать.

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

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

ВЫБРАТЬ
    ВозвратТоваровОтКлиента.Ссылка КАК ВозвратБУ,
    ВозвратТоваровОтКлиента.Контрагент,
    ВозвратТоваровОтКлиента.СуммаДокумента КАК СуммаВозвратаБУ
ПОМЕСТИТЬ ВозвратыБУ
ИЗ
    Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
ГДЕ
    ВозвратТоваровОтКлиента.ДокументРеализации В
            (ВЫБРАТЬ
                ДокументыБУ.ДокументБУ.Ссылка
            ИЗ
                ДокументыБУ КАК ДокументыБУ)
    И ВозвратТоваровОтКлиента.Проведен = ИСТИНА
;

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

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Контрагент,
    РеализацияТоваровУслуг.СуммаДокумента
ПОМЕСТИТЬ РеализацииУУ
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.РеализацияБУ.Ссылка В
            (ВЫБРАТЬ
                ДокументыБУ.ДокументБУ.Ссылка
            ИЗ
                ДокументыБУ КАК ДокументыБУ)
;

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

ВЫБРАТЬ
    ВозвратТоваровОтКлиента.Ссылка КАК ВозвратУУ,
    ВозвратТоваровОтКлиента.Контрагент,
    ВозвратТоваровОтКлиента.СуммаДокумента КАК СуммаВозвратаУУ
ПОМЕСТИТЬ ВозвратыУУ
ИЗ
    Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
ГДЕ
    ВозвратТоваровОтКлиента.ДокументРеализации В
            (ВЫБРАТЬ
                РеализацииУУ.Ссылка
            ИЗ
                РеализацииУУ КАК РеализацииУУ)
;

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

ВЫБРАТЬ
    ДокументыБУ.Контрагент КАК Контрагент,
    ДокументыБУ.ДокументБУ КАК ДокументБУ,
    ВозвратыБУ.СуммаВозвратаБУ КАК СуммаВозвратаБУ,
    ДокументыБУ.СуммаБУ КАК СуммаДокументаБУ,
    РеализацииУУ.Ссылка КАК ДокументУУ,
    РеализацииУУ.СуммаДокумента КАК СуммаДокументаУУ,
    ВозвратыУУ.СуммаВозвратаУУ КАК СуммаВозвратаУУ
ИЗ
    ДокументыБУ КАК ДокументыБУ
        ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыБУ КАК ВозвратыБУ
        ПО ДокументыБУ.ДокументБУ = ВозвратыБУ.ВозвратБУ.ДокументРеализации.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РеализацииУУ КАК РеализацииУУ
            ЛЕВОЕ СОЕДИНЕНИЕ ВозвратыУУ КАК ВозвратыУУ
            ПО РеализацииУУ.Ссылка.Ссылка = ВозвратыУУ.ВозвратУУ.ДокументРеализации.Ссылка
        ПО ДокументыБУ.ДокументБУ.Ссылка = РеализацииУУ.Ссылка.РеализацияБУ.Ссылка
ГДЕ
    ДокументыБУ.СуммаБУ <> РеализацииУУ.СуммаДокумента

УПОРЯДОЧИТЬ ПО
    ДокументыБУ.ДокументБУ.Номер
ИТОГИ ПО
    Контрагент,
    ДокументБУ
   shadow_sw
 
5 - 02.11.16 - 06:43
регистр продажи использовать?
   Потрошитель Запросов
 
6 - 02.11.16 - 06:43
В запросе на вкладке итоги берите Среднее() по всем группировкам, а сумму по вышестоящей группировке считайте в коде. Вы же все равно обход по группировкам делаете.

Выборка1Уровень = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Сумма1Уровень = 0;
Пока Выборка1Уровень.Следующий() Цикл
Выборка2Уровень = Выборка1Уровень.Выбрать();
Пока Выборка2Уровень.Следующий() Цикл
Сумма1Уровень = Сумма1Уровень + Выборка2Уровень.Среднее;
КонецЦикла;
КонецЦикла;
   shadow_sw
 
7 - 02.11.16 - 06:43
документы в запросе..не гут
   trey1
 
8 - 02.11.16 - 06:48
(7) Есть такое), но мне бы для начала с итогами разобраться, запрос можно допилить если время будет
   shadow_sw
 
9 - 02.11.16 - 06:51
если использовать РН продажи, то там через выбор и типзначения(регистратор) = тип(документы.*) получить то что ты хочешь, с итогом по контрагентам, тогда все свернется корректно
   darius357
 
10 - 02.11.16 - 07:40
ну как всегда побакланили, и нифига толку
 
 Рекламное место пустует
   Потрошитель Запросов
 
11 - 02.11.16 - 08:09
(9) Так что ли?

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

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.Регистратор,
    ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот

ИТОГИ
    СУММА(СуммаВыручкиОборот)
ПО
    Контрагент

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует