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

СКД. Вывести максимум по группировке и потом просуммировать максимумы в общих итогах.

СКД. Вывести максимум по группировке и потом просуммировать максимумы в общих итогах.
Я
   Никулин Леонид
 
06.08.20 - 00:25
Доброй ночи, уважаемые форумчане!

Есть отче на СКД. Тип отчета - Таблица. В Строках одна группировка по Номенклатуре. В колонках группировки: "Заголовок", "Склад", "Месяц", "Документ". Ресурс ПланПродажКоличество. Затруднение с последней группировкой по документу.
Нужно вывести МАКСИМУМ по детальным записям по Документу. А потом в ОБЩИЙ ИТОГ вывести СУММУ (минимумов) по документам. Почитал как это можно сделать. Рекомендуют воспользоваться ВычислитьВыражениеСГруппировкойМассив. Вот что делаю.
На вкладке "Ресурсы" добавил два раза ресурс. Первый раз написал Выражение Максимум(ПланПродажКоличество). Рассчитать по Документ. Здесь все ок. Отчет при отладке показывает правильно. И во второй строке для ресурса написал вот такое выражение

Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ПланПродажКоличество)", "Документ")) . Рассчитать по Общий итог. В результате по общему итогу показывает тоже МАКСИМУМ, а не СУММУ.

Битый час не могу понять где у меня ошибка. Подскажите, пожалуйста
   Никулин Леонид
 
1 - 06.08.20 - 00:32
up
   Никулин Леонид
 
2 - 06.08.20 - 00:40
Спасть пойду, но завтра вернусь...
   toypaul
 
3 - 06.08.20 - 07:27
нужны картинки
   Никулин Леонид
 
4 - 06.08.20 - 08:04
Доброго времени суток, уважаемые форумчане! Вопрос все еще актуален. Сейчас добавлю картинки.
Нашел у себя ошибку в описании задачи:
Нужно вывести МАКСИМУМ по детальным записям по Документу. А потом в ОБЩИЙ ИТОГ вывести СУММУ (максимумов) по документам.
   Никулин Леонид
 
5 - 06.08.20 - 08:34
Картинки https://yadi.sk/d/i91EaJdBbFpQZw Если нужно могу еще добавить. Манипуляции провожу с последней группировкой "Документ". На всякий случай текст запроса:

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

СГРУППИРОВАТЬ ПО
    ПланПродажТовары.Ссылка,
    ПланПродажТовары.Номенклатура,
    ПланПродажТовары.ДатаОтгрузки,
    ПланПродажТовары.Ссылка.Склад

ИНДЕКСИРОВАТЬ ПО
    Документ,
    Склад,
    Номенклатура,
    Месяц
;

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

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

СГРУППИРОВАТЬ ПО
    ПланПродажБП_ПланСдачи.Номенклатура,
    ПланПродажБП_ПланСдачи.ДатаСдачи,
    ПланПродажБП_ПланСдачи.Ссылка,
    ПланПродажБП_ПланСдачи.Ссылка.Склад,
    НАЧАЛОПЕРИОДА(ПланПродажБП_ПланСдачи.ДатаСдачи, МЕСЯЦ)

ИНДЕКСИРОВАТЬ ПО
    Документ,
    Склад,
    Номенклатура,
    Месяц
;

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

ВЫБРАТЬ
    ТЧ_Товары.Документ КАК Документ,
    ТЧ_Товары.Склад КАК Склад,
    ТЧ_Товары.Номенклатура КАК Номенклатура,
    ТЧ_Товары.Месяц КАК ПланПродажМесяц,
    ТЧ_ПланСдачи.Декада КАК ПланСдачиДекада,
    ТЧ_Товары.Количество КАК ПланПродажКоличество,
    ТЧ_ПланСдачи.Количество КАК ПланСдачиКоличество
ИЗ
    ТЧ_Товары КАК ТЧ_Товары
        ЛЕВОЕ СОЕДИНЕНИЕ ТЧ_ПланСдачи КАК ТЧ_ПланСдачи
        ПО ТЧ_Товары.Документ = ТЧ_ПланСдачи.Документ
            И ТЧ_Товары.Склад = ТЧ_ПланСдачи.Склад
            И ТЧ_Товары.Номенклатура = ТЧ_ПланСдачи.Номенклатура
            И ТЧ_Товары.Месяц = ТЧ_ПланСдачи.Месяц

В ТЧ_Товары у меня количество (продаж) за месяц. А в ТЧ_ПланСдачи количество (плановое) разбитое по декадам. Получается вот такая выборка:
НОМЕНКЛ    МЕСЯЦ         ДЕКАДА        КоличествоПродаж    КоличествоСдачи    ДОКУМЕНТ
Ном1       01.04.2020    01.04.2020    24                  4                  Док1
Ном1       01.04.2020    11.04.2020    24                  5                  Док1
Ном1       01.04.2020    21.04.2020    24                  6                  Док1
...

В Настройке участвуют поля "Месяц" и "КоличествоПродаж". Из-за этого в СКД беру МАКСИМУМ(КоличествоПродаж). А в ИТОГО все же нужна СУММА(КоличествоПродаж)
   toypaul
 
6 - 06.08.20 - 09:20
а если так

Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ПланПродажКоличество)", "Номенклатура, Документ"))
   Никулин Леонид
 
7 - 06.08.20 - 10:19
Вроде разобрался. У меня же в группировке один документ :) Вот я сумму по одному документу и получаю. Изначально не верно понял задачу. Как описано у меня в начале так делать можно и нужно. как описано в (6) тоже можно и тоже правильно. Может кому пригодится... Спасибо за активность!

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