Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получить 3 максимальных значения в запросе 1с

Получить 3 максимальных значения в запросе 1с
Я
   AlekseiYunniPodavvan
 
24.04.20 - 05:12
Здравствуйте. Есть запрос по продажам, группировка по номенклатурным группам, необходимо в каждой номенклатурной группе получить 3 позиции с максимальными количествами. Прошу помощи.
   AneJIbcuH
 
1 - 24.04.20 - 05:16
(0) Это отчет или просто будет постобработка результата запроса?
   AlekseiYunniPodavvan
 
2 - 24.04.20 - 05:18
отчет План фактный анализ
   AlekseiYunniPodavvan
 
3 - 24.04.20 - 05:18
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.НоменклатураНоменклатурнаяГруппа,
    ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборот,
    ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот, 0) КАК СтоимостьОборот,
    ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот1, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборот1,
    ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот1, 0) КАК СтоимостьОборот1,
    ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот1, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент - ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ОтклонениеКоличество,
    ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот1, 0) - ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот, 0) КАК ОтклонениеСтоимость,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент <> 0
            ТОГДА ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот, 0) / (ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент)
    КОНЕЦ КАК ЦенаОборот,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот1, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент <> 0
            ТОГДА ЕСТЬNULL(ВложенныйЗапрос.СтоимостьОборот1, 0) / (ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот1, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент)
    КОНЕЦ КАК ЦенаОборот1,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент <> 0
            ТОГДА 100 * ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот1, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент / ЕСТЬNULL(ВложенныйЗапрос.КоличествоОборот, 0) * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентВыполнения
{ВЫБРАТЬ
    Номенклатура.*,
    НоменклатураНоменклатурнаяГруппа.*,
    КоличествоОборот,
    СтоимостьОборот,
    КоличествоОборот1,
    СтоимостьОборот1,
    ОтклонениеКоличество,
    ОтклонениеСтоимость,
    ВложенныйЗапрос.Контрагент.*,
    ВложенныйЗапрос.Договор.*,
    ВложенныйЗапрос.Период,
    ВложенныйЗапрос.Организация.*,
    ВложенныйЗапрос.Подразделение.*,
    ЦенаОборот,
    ЦенаОборот1,
    ПроцентВыполнения}
ИЗ
    (ВЫБРАТЬ
        ПланыПродажОбороты.Сценарий КАК Сценарий,
        ПланыПродажОбороты.Номенклатура КАК Номенклатура,
        ПланыПродажОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа,
        ВЫБОР
            КОГДА &СреднеДневной = ИСТИНА
                ТОГДА ПланыПродажОбороты.КоличествоОборот / (РАЗНОСТЬДАТ(&ДатаНач1, &ДатаКон1, ДЕНЬ) + 1)
            ИНАЧЕ ПланыПродажОбороты.КоличествоОборот / (РАЗНОСТЬДАТ(&ДатаНач1, &ДатаКон1, ДЕНЬ) + 1) * &коэффициент
        КОНЕЦ КАК КоличествоОборот,
        ВЫБОР
            КОГДА &СреднеДневной = ИСТИНА
                ТОГДА (ПланыПродажОбороты.СтоимостьОборот + ПланыПродажОбороты.НДСОборот) / (РАЗНОСТЬДАТ(&ДатаНач1, &ДатаКон1, ДЕНЬ) + 1)
            ИНАЧЕ (ПланыПродажОбороты.СтоимостьОборот + ПланыПродажОбороты.НДСОборот) / (РАЗНОСТЬДАТ(&ДатаНач1, &ДатаКон1, ДЕНЬ) + 1) * &коэффициент
        КОНЕЦ КАК СтоимостьОборот,
        ПланыПродажОбороты.Период КАК Период,
        ПланыПродажОбороты.Контрагент КАК Контрагент,
        ПланыПродажОбороты.Договор КАК Договор,
        0 КАК КоличествоОборот1,
        0 КАК СтоимостьОборот1,
        NULL КАК Организация,
        ПланыПродажОбороты.Подразделение КАК Подразделение
    ИЗ
        РегистрНакопления.ПланыПродаж.Обороты(&ДатаНач1, &ДатаКон1, Регистратор {(&Периодичность)}, {(Сценарий).* КАК Сценарий, (Подразделение).* КАК Подразделение, (Номенклатура).* КАК Номенклатура, (ДокументПланирования).* КАК ДокументПланирования}) КАК ПланыПродажОбороты
    {ГДЕ
        ПланыПродажОбороты.Сценарий.*}
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        NULL,
        ПродажиОбороты.Номенклатура,
        ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа,
        0,
        0,
        ПродажиОбороты.Период,
        ПродажиОбороты.Контрагент,
        ПродажиОбороты.ДоговорКонтрагента,
        ВЫБОР
            КОГДА &СреднеДневной = ИСТИНА
                ТОГДА ПродажиОбороты.КоличествоОборот / (РАЗНОСТЬДАТ(&ДатаНач3, &ДатаКон3, ДЕНЬ) + 1)
            ИНАЧЕ ПродажиОбороты.КоличествоОборот
        КОНЕЦ,
        ВЫБОР
            КОГДА &СреднеДневной = ИСТИНА
                ТОГДА ПродажиОбороты.СтоимостьОборот / (РАЗНОСТЬДАТ(&ДатаНач3, &ДатаКон3, ДЕНЬ) + 1)
            ИНАЧЕ ПродажиОбороты.СтоимостьОборот
        КОНЕЦ,
        ПродажиОбороты.Организация,
        ПродажиОбороты.Подразделение
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ПродажиОбороты) КАК ВложенныйЗапрос
{ГДЕ
    ВложенныйЗапрос.Номенклатура.*,
    ВложенныйЗапрос.НоменклатураНоменклатурнаяГруппа.*,
    ВложенныйЗапрос.Контрагент.*,
    ВложенныйЗапрос.Договор.*,
    ВложенныйЗапрос.Организация.*,
    ВложенныйЗапрос.Подразделение.*}
{УПОРЯДОЧИТЬ ПО
    НоменклатураНоменклатурнаяГруппа.*,
    Номенклатура.*}
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    СУММА(КоличествоОборот1),
    СУММА(СтоимостьОборот1),
    СУММА(ОтклонениеКоличество),
    СУММА(ОтклонениеСтоимость),
    ВЫБОР
        КОГДА СУММА(КоличествоОборот) <> 0
            ТОГДА СУММА(СтоимостьОборот) / СУММА(КоличествоОборот)
    КОНЕЦ КАК ЦенаОборот,
    ВЫБОР
        КОГДА СУММА(КоличествоОборот1) <> 0
            ТОГДА СУММА(СтоимостьОборот1) / СУММА(КоличествоОборот1)
    КОНЕЦ КАК ЦенаОборот1,
    ВЫБОР
        КОГДА СУММА(КоличествоОборот) <> 0
            ТОГДА 100 * СУММА(КоличествоОборот1) / СУММА(КоличествоОборот)
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентВыполнения
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Номенклатура.*,
    НоменклатураНоменклатурнаяГруппа.*,
    КоличествоОборот,
    СтоимостьОборот,
    КоличествоОборот1,
    СтоимостьОборот1,
    ОтклонениеКоличество,
    ОтклонениеСтоимость,
    ПроцентВыполнения,
    ВложенныйЗапрос.Контрагент.*,
    ВложенныйЗапрос.Договор.*,
    ВложенныйЗапрос.Подразделение.*}
   AneJIbcuH
 
4 - 24.04.20 - 05:33
(2) Если СКД, я бы сортировал по количеству внутри Групп, далее пронумеровал и установил отбор (опять же внутри групп) где номер <= 3
   AlekseiYunniPodavvan
 
5 - 24.04.20 - 05:50
(4) не СКД
   AlekseiYunniPodavvan
 
6 - 24.04.20 - 05:50
Запрос в УниверсальныйОтчет
   Конструктор1С
 
7 - 24.04.20 - 07:14
Сделать можно, но получится много временных таблиц
   Документовед
 
8 - 24.04.20 - 07:22
(0) Что входит в понятие "позиции". Если пара штук аналитик "номенклатура, договор" это одно, если все аналитики регистра: "Сценарии, Заказы, Подразделение, Организации" это другое.

(7) Если предположить, что существует ситуация когда у одной НомГруппы 4 и более одинаковых макс значений. Например что-то крупное и продают по 1шт. И есть 4 договора по которым продали 1шт., а  надо, чтобы было именно 3 договора - то таких временных таблиц будет очень-очень много.
   stopa85
 
9 - 24.04.20 - 07:26
Честно не пробовал, но как-то так:

ТекстЗапроса =
"ВЫБРАТЬ
|    ИсточникДанных.Измерение,
|    ИсточникДанных.Значение
|ПОМЕСТИТЬ втИсточникДанных
|ИЗ
|    &Таб КАК ИсточникДанных
|;
|
////////////////////////////////////////////////////////////////////////////////

|ВЫБРАТЬ
|    втИсточникДанныхЗначение.Измерение,
|    втИсточникДанныхЗначение.Значение,
|    КОЛИЧЕСТВО(втИсточникДанных.Значение) КАК Номер
|ПОМЕСТИТЬ втПронумернованыеИзмерения
|ИЗ
|    втИсточникДанных КАК втИсточникДанныхЗначение
|        ЛЕВОЕ СОЕДИНЕНИЕ втИсточникДанных КАК втИсточникДанных
|        ПО втИсточникДанныхЗначение.Измерение = втИсточникДанных.Измерение
|            И втИсточникДанныхЗначение.Значение <= втИсточникДанных.Значение
|
|СГРУППИРОВАТЬ ПО
|    втИсточникДанныхЗначение.Измерение,
|    втИсточникДанныхЗначение.Значение
|;
|
////////////////////////////////////////////////////////////////////////////////

|ВЫБРАТЬ
|    втПронумернованыеИзмерения.Измерение,
|    втПронумернованыеИзмерения.Значение,
|    втПронумернованыеИзмерения.Номер
|ИЗ
|    втПронумернованыеИзмерения КАК втПронумернованыеИзмерения
|ГДЕ
|    втПронумернованыеИзмерения.Номер <= 3";
   Документовед
 
10 - 24.04.20 - 07:30
(9) Это ты молодец.  А теперь учти что измерений 10 шт.
   Конструктор1С
 
11 - 24.04.20 - 07:35
(8) зачем так усложнять? Если у каких-то групп совпадёт количество, то все их вывести
   Документовед
 
12 - 24.04.20 - 07:43
Если без анализа одинаковых значенй, т.е. выводить ВСЕ записи с 3 максимальными значениями то как-то так

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

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

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

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

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

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

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

ВЫБРАТЬ
    взМакс3.КоличествоОборот,
    взМакс3.НоменклатурнаяГруппа
ПОМЕСТИТЬ втМакс3
ИЗ
    (ВЫБРАТЬ
        МАКСИМУМ(втДанные.КоличествоОборот) КАК КоличествоОборот,
        втДанные.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа
    ИЗ
        втДанные КАК втДанные
    ГДЕ
        НЕ (втДанные.НоменклатурнаяГруппа, втДанные.КоличествоОборот) В
                    (ВЫБРАТЬ
                        втМакс1.НоменклатурнаяГруппа,
                        втМакс1.КоличествоОборот
                    ИЗ
                        втМакс1 КАК втМакс1
            
                    ОБЪЕДИНИТЬ ВСЕ
            
                    ВЫБРАТЬ
                        втМакс2.НоменклатурнаяГруппа,
                        втМакс2.КоличествоОборот
                    ИЗ
                        втМакс2 КАК втМакс2)
    
    СГРУППИРОВАТЬ ПО
        втДанные.НоменклатурнаяГруппа) КАК взМакс3
;

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

ВЫБРАТЬ
    втДанные.Сценарий,
    втДанные.Подразделение,
    втДанные.Номенклатура,
    втДанные.ХарактеристикаНоменклатуры,
    втДанные.ДокументПланирования,
    втДанные.Проект,
    втДанные.Заказ,
    втДанные.Контрагент,
    втДанные.Договор,
    втДанные.ВариантРаспределения,
    втДанные.КоличествоОборот,
    втДанные.СтоимостьОборот,
    втДанные.НДСОборот,
    втДанные.НоменклатурнаяГруппа
ИЗ
    втДанные КАК втДанные
ГДЕ
    (втДанные.НоменклатурнаяГруппа, втДанные.КоличествоОборот) В
            (ВЫБРАТЬ
                втМакс1.НоменклатурнаяГруппа,
                втМакс1.КоличествоОборот
            ИЗ
                втМакс1 КАК втМакс1
        
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                втМакс2.НоменклатурнаяГруппа,
                втМакс2.КоличествоОборот
            ИЗ
                втМакс2 КАК втМакс2
        
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                втМакс3.НоменклатурнаяГруппа,
                втМакс3.КоличествоОборот
            ИЗ
                втМакс3 КАК втМакс3)
   Документовед
 
13 - 24.04.20 - 07:43
(11) > зачем так усложнять? Если у каких-то групп совпадёт количество, то все их вывести

Зависит от условия задачи.
   Конструктор1С
 
14 - 24.04.20 - 07:52
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Характеристика КАК Характеристика,
    ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиОбороты.КоличествоОборот КАК Количество
ПОМЕСТИТЬ ПродажиЗаПериод
ИЗ
    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
;

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

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

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

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

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

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

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

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

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

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

ВЫБРАТЬ
    ПерваяГруппа.Номенклатура КАК Номенклатура,
    ПерваяГруппа.Характеристика КАК Характеристика,
    ПерваяГруппа.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПерваяГруппа.Количество КАК Количество
ИЗ
    ПерваяГруппа КАК ПерваяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВтораяГруппа.Номенклатура,
    ВтораяГруппа.Характеристика,
    ВтораяГруппа.НоменклатурнаяГруппа,
    ВтораяГруппа.Количество
ИЗ
    ВтораяГруппа КАК ВтораяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТретьяГруппа.Номенклатура,
    ТретьяГруппа.Характеристика,
    ТретьяГруппа.НоменклатурнаяГруппа,
    ТретьяГруппа.Количество
ИЗ
    ТретьяГруппа КАК ТретьяГруппа
   Документовед
 
15 - 24.04.20 - 07:57
(14)  ПродажиЗаПериод.Номенклатура КАК Номенклатура,
    ПродажиЗаПериод.Характеристика КАК Характеристика,
    ПродажиЗаПериод.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    МАКСИМУМ(ПродажиЗаПериод.Количество) КАК Количество

ТУт ты получаешь максимальное значение для (Номенклатура ,Характеристика , НоменклатурнаяГруппа ) а надо найти максимум только для НоменклатурнаяГруппа
   Документовед
 
16 - 24.04.20 - 08:01
(14)
При первоначальных данных
 ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Характеристика КАК Характеристика,
    ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиОбороты.КоличествоОборот КАК Количество
ПОМЕСТИТЬ ПродажиЗаПериод

 Собственно никаких "макс" - не будет. При получении данных из виртуально таблицы данные сворачиваются по тем измерениями которые задействованы.

Т.е. на набора (Номенклатура , Характеристика ) - будет только одно значения и не из чего будет выбирать максимум.
   Конструктор1С
 
17 - 24.04.20 - 08:03
(15) тогда так:

ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Характеристика КАК Характеристика,
    ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиОбороты.КоличествоОборот КАК Количество
ПОМЕСТИТЬ ПродажиЗаПериод
ИЗ
    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
;

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

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

СГРУППИРОВАТЬ ПО
    ПродажиЗаПериод.НоменклатурнаяГруппа
;

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

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

СГРУППИРОВАТЬ ПО
    ПродажиЗаПериод.НоменклатурнаяГруппа
;

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

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

СГРУППИРОВАТЬ ПО
    ПродажиЗаПериод.НоменклатурнаяГруппа
;

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

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура КАК Номенклатура,
    ПродажиЗаПериод.Характеристика КАК Характеристика,
    ПродажиЗаПериод.Количество КАК Количество
ИЗ
    ПерваяГруппа КАК ПерваяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ПерваяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура,
    ПродажиЗаПериод.Характеристика,
    ПродажиЗаПериод.Количество
ИЗ
    ВтораяГруппа КАК ВтораяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ВтораяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура,
    ПродажиЗаПериод.Характеристика,
    ПродажиЗаПериод.Количество
ИЗ
    ТретьяГруппа КАК ТретьяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ТретьяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа
   Конструктор1С
 
18 - 24.04.20 - 08:07
Не, вру, будет так

ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Характеристика КАК Характеристика,
    ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиОбороты.КоличествоОборот КАК Количество
ПОМЕСТИТЬ ПродажиЗаПериод
ИЗ
    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
;

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

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

СГРУППИРОВАТЬ ПО
    ПродажиЗаПериод.НоменклатурнаяГруппа
;

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

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

СГРУППИРОВАТЬ ПО
    НоменклатурныеГруппы.НоменклатурнаяГруппа
;

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

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

СГРУППИРОВАТЬ ПО
    НоменклатурныеГруппы.НоменклатурнаяГруппа
;

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

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

СГРУППИРОВАТЬ ПО
    НоменклатурныеГруппы.НоменклатурнаяГруппа
;

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

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура КАК Номенклатура,
    ПродажиЗаПериод.Характеристика КАК Характеристика,
    ПродажиЗаПериод.Количество КАК Количество
ИЗ
    ПерваяГруппа КАК ПерваяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ПерваяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура,
    ПродажиЗаПериод.Характеристика,
    ПродажиЗаПериод.Количество
ИЗ
    ВтораяГруппа КАК ВтораяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ВтораяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПродажиЗаПериод.НоменклатурнаяГруппа,
    ПродажиЗаПериод.Номенклатура,
    ПродажиЗаПериод.Характеристика,
    ПродажиЗаПериод.Количество
ИЗ
    ТретьяГруппа КАК ТретьяГруппа
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ТретьяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа
   Конструктор1С
 
19 - 24.04.20 - 08:08
(16) Собственно никаких "макс" - не будет. При получении данных из виртуально таблицы данные сворачиваются по тем измерениями которые задействованы

Спасибо, кэп, но как ты собрался без МАКСИМУМ ранжировать?
   Документовед
 
20 - 24.04.20 - 08:11
(17)       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПродажиЗаПериод КАК ПродажиЗаПериод
        ПО ПерваяГруппа.НоменклатурнаяГруппа = ПродажиЗаПериод.НоменклатурнаяГруппа

Надо еще с макс. количеством сравнивать
   Документовед
 
21 - 24.04.20 - 08:23
И так чтобы получить именно ТРИ макс значения, то как-то так.


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

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

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

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

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

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

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

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

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

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

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

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

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

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

ВЫБРАТЬ
    взНППМакс.НоменклатурнаяГруппа,
    взНППМакс.НПП
ПОМЕСТИТЬ взНППМакс
ИЗ
    (ВЫБРАТЬ
        взМаксНПП.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
        взМаксНПП.НПП КАК НПП
    ИЗ
        (ВЫБРАТЬ
            втДанныДляМакс.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
            втДанныДляМакс.НПП КАК НПП,
            СУММА(1) КАК МаксНПП
        ИЗ
            втДанныДляМакс КАК втДанныДляМакс
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ втДанныДляМакс КАК втДанныДляМакс1
                ПО втДанныДляМакс.НоменклатурнаяГруппа = втДанныДляМакс1.НоменклатурнаяГруппа
                    И втДанныДляМакс.КоличествоОборот > втДанныДляМакс1.КоличествоОборот
                    И (ВЫБОР
                        КОГДА втДанныДляМакс.КоличествоОборот = втДанныДляМакс.КоличествоОборот
                            ТОГДА втДанныДляМакс.КоличествоОборот >= втДанныДляМакс1.КоличествоОборот
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ)
        
        СГРУППИРОВАТЬ ПО
            втДанныДляМакс.НоменклатурнаяГруппа,
            втДанныДляМакс.НПП) КАК взМаксНПП
    ГДЕ
        взМаксНПП.МаксНПП <= 3) КАК взНППМакс
;

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

ВЫБРАТЬ
    втДанныеНПП.Сценарий,
    втДанныеНПП.Подразделение,
    втДанныеНПП.Номенклатура,
    втДанныеНПП.ХарактеристикаНоменклатуры,
    втДанныеНПП.ДокументПланирования,
    втДанныеНПП.Проект,
    втДанныеНПП.Заказ,
    втДанныеНПП.Контрагент,
    втДанныеНПП.Договор,
    втДанныеНПП.ВариантРаспределения,
    втДанныеНПП.НоменклатурнаяГруппа,
    втДанныеНПП.НПП,
    втДанныеНПП.КоличествоОборот,
    втДанныеНПП.СтоимостьОборот,
    втДанныеНПП.НДСОборот
ИЗ
    втДанныеНПП КАК втДанныеНПП
ГДЕ
    (втДанныеНПП.НоменклатурнаяГруппа, втДанныеНПП.НПП) В
            (ВЫБРАТЬ
                взНППМакс.НоменклатурнаяГруппа,
                взНППМакс.НПП
            ИЗ
                взНППМакс КАК взНППМакс)
   Документовед
 
22 - 24.04.20 - 08:26
в  (21) Строку    ТОГДА втДанныДляМакс.КоличествоОборот >= втДанныДляМакс1.КоличествоОборот заменить на    ТОГДА втДанныДляМакс.НПП >= втДанныДляМакс1.НПП
   AlekseiYunniPodavvan
 
23 - 24.04.20 - 08:57
(8) Есть номенклатурные группы, в каждой из которых нужно выделить ТОП-3 по количеству продаж
   AlekseiYunniPodavvan
 
24 - 24.04.20 - 08:57
(22) Спасибо!
   Документовед
 
25 - 24.04.20 - 09:02
(24) Тогда только как в (21)+(22)
   AlekseiYunniPodavvan
 
26 - 24.04.20 - 09:42
(25) Спасибо большое! Все получилось!


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