Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: СКД. Итоги в группировке по одинаковым строкам.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
jonik_joker
Всем привет.Ситуация следующая:
Часть отчета выводится в виде

Группировка1(СрокОплаты)
Группировка2(Инвойс) СуммаИнвойса(Ресурс)

В случае, если во 2-й группировке 2 одинаковых инвойса(соответственно и сумма по ним одна и та же) в итог по группировке сумма по данному инвойсу попадает дважды. Как этого избежать?
Petre
Установить для данной группировки расчет ресурса как "МАКСИМУМ()".
jonik_joker
вот код

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

СГРУППИРОВАТЬ ПО
    ПрохождениеТаможниСостав.Заявка,
    ПрохождениеТаможниСостав.Ссылка
;

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

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

УПОРЯДОЧИТЬ ПО
    ВложенныйЗапрос.Инвойс.Дата УБЫВ


а вот какая таблица получается в итоге

Инвойс Заявка Стоимость Оборот

MLT-03371 000006309 3719,47 3719,47
MLT-03371 000006310 13332,76 13332,76
MLT-03344 000006289 16796,16 16796,16
MLT-03343 000006289 16796,16 16796,16
....
MLT-02812 000005907 144,96
MLT-02813 000005913 17088,48 2000
MLT-02813 000005913 17088,48 15088,48

как сделать чтобы в скд при вычислении итога в столбце "стоимость" по группировке "инвойс" ресурсы по MLT-02813 не складывались?
jonik_joker
Решил проблему с помощью функции ВычислитьВыражениеСГруппировкойМассив(),советую.Но потом...переписал заново запрос и обошелся без нее)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.