Подскажите пожалуйста как с помощью консоли запросов можно реализовать группировку выбранных значений, а после выборки с условиями по ней. Стандартно группировка накладывается после вывода всех значений , а мне нужно, как я понимаю, использовать что то наподобие оператора ИМЕЮЩИЕ, так вот правильно ли я думаю и что нажать нужно в консоли запроса что бы прописать его?
---
Для секции ИМЕЮЩИЕ в конструкторе запроса нет отдельных опций. Вы просто пишете нужные условия среди прочих, а конструктор сам сообразит, что выражения, содержащие агрегатные функции (Сумма, Максимум и т.д.) нужно добавить не в секцию ГДЕ, а в секцию ИМЕЮЩИЕ.
---
Для секции ИМЕЮЩИЕ в конструкторе запроса нет отдельных опций. Вы просто пишете нужные условия среди прочих, а конструктор сам сообразит, что выражения, содержащие агрегатные функции (Сумма, Максимум и т.д.) нужно добавить не в секцию ГДЕ, а в секцию ИМЕЮЩИЕ.
---
Как мне можно одним запросом с помощью секции ИМЕЮЩИЕ (заданием условия) выполнить группировку, а после, например, присоединить левым соединением другую таблицу в сгруппированную уже таблицу, либо для такого лучше делать отдельные виртуальные таблицы и все?
---
Есть такая штука как временные таблицы:

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

    ВЫБРАТЬ
    СуммыРеализаций.Контрагент,
    СуммыРеализаций.Сумма
    ИЗ
    ВТСуммыРеализаций КАК СуммыРеализаций
    ГДЕ
    СуммыРеализаций.Сумма > 10000
```
---
временные таблицы:

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

ВЫБРАТЬ

Спасибо, я умею ими пользоваться, но может не в должной мере. Посмотрите пожалуйста запрос приведенный мною выше.
---
Мне кажется, вам незачем было так усложнять. Можно было сделать объединение таблиц по условию типа документа, за основу взяв ВТ1

```1c
    ВЫБРАТЬ
    ВТ1.Номенклатура КАК НоменклатураВозврат,
    ВТ1.Склад КАК СкладВозврат,
    СУММА(ВТ1.ВНаличииПриход) КАК ПриходВозврат
    0 КАК РасходСписание

    ИЗ
    ВТ1 КАК ВТ1
    ГДЕ
    ТИПЗНАЧЕНИЯ(ВТ1.Регистратор) = ТИП(Документ.ВозвратТоваровОтКлиента)

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

    ВЫБРАТЬ
    ВТ1.Номенклатура КАК НоменклатураСписание,
    ВТ1.Склад,
    0,
    СУММА(ВТ1.ВНаличииРасход)
    ИЗ
    ВТ1 КАК ВТ1
    ГДЕ
    ТИПЗНАЧЕНИЯ(ВТ1.Регистратор) = ТИП(Документ.СписаниеНедостачТоваров)

    СГРУППИРОВАТЬ ПО
    ВТ1.Номенклатура,
    ВТ1.Склад
```

Ну и т.д. остальные условия
---
Хм, тогда получиться без временных таблиц получется, а с колличеством подзапросов равным колличеству регистраторов.
---
Можно через временную таблицу, сформировать в ней записи, удовлетворяющие условиям, а в следующем запросе выполнить группировку записей временной таблицы.
---
Я так и сделал. В одном запросе можно как то это сделать?
---
Да ваша конкретная задача решается и без временных таблиц.
Кстати я заметил вы путаете понятия "Временная таблица" и "Виртуальная таблица" - рекомендую разобраться...
---
Вам просто надо научиться писать запросы...
А консоль вам в подмогу.
Вы можете использовать временные таблицы для получения промежуточного результата, если он вам нужен.
И уже потом группировать окончательно
---
Я так и делаю, но задумался о том можно ли сразу это реализовать за один раз. Нельзя?
---
Что значит за один раз?
Может вы все же хоть какой запрос приведете свой?
---
Например, запрос для отчёта по регистру "ТоварыНаСкладах", который покажет НачальныйОстаток, Приход, Расход, КонецныйОстаток, а также разбитый по регистраторам приход и расход. Для этого я сначала взял виртуальную таблицу "ТоварыНаСкладахОстатки" по периоду и регистратору. Далее сохранил ее как виртуальную таблицу. Далее из этов виртуальной таблицы в каждой последующие виртуально таблице получил данные по определенному типу документа (по регистратору), а после уже эту виртуальную таблицу начальную сгрупировал и присоединил левым соединением все остальные таблицы для вывода подробной информации, так как если я не группирую начальную таблицу, то получается естественно некорректный результат.
Вот запрос

```1c
    ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток) КАК ВНаличииНачальныйОстаток,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход) КАК ВНаличииПриход,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход) КАК ВНаличииРасход,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток) КАК ВНаличииКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор
    ПОМЕСТИТЬ ВТ1
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
    &НачалоПериода,
    &КонецПериода,
    Регистратор,
    ,
    Номенклатура.ВидНоменклатуры.Наименование <> "топливо"
    И Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ1.Номенклатура КАК НоменклатураСписание,
    ВТ1.Склад КАК СкладСписание,
    СУММА(ВТ1.ВНаличииРасход) КАК РасходСписание
    ПОМЕСТИТЬ ВТ3_Списание
    ИЗ
    ВТ1 КАК ВТ1
    ГДЕ
    ТИПЗНАЧЕНИЯ(ВТ1.Регистратор) = ТИП(Документ.СписаниеНедостачТоваров)

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

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

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ1.Номенклатура КАК НоменклатураПересчет,
    ВТ1.Склад КАК СкладПересчет,
    СУММА(ВТ1.ВНаличииПриход) КАК ПриходПересчет,
    СУММА(ВТ1.ВНаличииРасход) КАК РасходПересчет
    ПОМЕСТИТЬ ВТ6_Пересчет
    ИЗ
    ВТ1 КАК ВТ1
    ГДЕ
    ТИПЗНАЧЕНИЯ(ВТ1.Регистратор) = ТИП(Документ.ПересчетТоваров)

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ1.Номенклатура,
    СУММА(ВТ1.ВНаличииНачальныйОстаток) КАК ВНаличииНачальныйОстаток,
    СУММА(ВТ1.ВНаличииПриход) КАК ВНаличииПриход,
    СУММА(ВТ1.ВНаличииРасход) КАК ВНаличииРасход,
    СУММА(ВТ1.ВНаличииКонечныйОстаток) КАК ВНаличииКонечныйОстаток,
    ВТ1.Склад
    ПОМЕСТИТЬ ВТ8_Групировка
    ИЗ
    ВТ1 КАК ВТ1

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(ВТ2_Возврат.ПриходВозврат) КАК ПриходВозврат,
    СУММА(ВТ3_Списание.РасходСписание) КАК РасходСписание,
    СУММА(ВТ4_Реализация.РасходРеализация) КАК РасходРеализация,
    СУММА(ВТ5_Пересортица.ПриходПересортица) КАК ПриходПересортица,
    СУММА(ВТ5_Пересортица.РасходПересортица) КАК РасходПересортица,
    СУММА(ВТ6_Пересчет.ПриходПересчет) КАК ПриходПересчет,
    СУММА(ВТ6_Пересчет.РасходПересчет) КАК РасходПересчет,
    СУММА(ВТ7_Оприходование.ПриходОприходование) КАК ПриходОприходование,
    ВТ1_Групировка.Номенклатура,
    ВТ1_Групировка.ВНаличииНачальныйОстаток,
    ВТ1_Групировка.ВНаличииПриход,
    ВТ1_Групировка.ВНаличииРасход,
    ВТ1_Групировка.ВНаличииКонечныйОстаток,
    ВТ1_Групировка.Склад
    ИЗ
    ВТ8_Групировка КАК ВТ1_Групировка
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ2_Возврат КАК ВТ2_Возврат
    ПО ВТ1_Групировка.Номенклатура = ВТ2_Возврат.НоменклатураВозврат
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ3_Списание КАК ВТ3_Списание
    ПО ВТ1_Групировка.Номенклатура = ВТ3_Списание.НоменклатураСписание
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ4_Реализация КАК ВТ4_Реализация
    ПО ВТ1_Групировка.Номенклатура = ВТ4_Реализация.НоменклатураРеализация
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ5_Пересортица КАК ВТ5_Пересортица
    ПО ВТ1_Групировка.Номенклатура = ВТ5_Пересортица.НоменклатураПересортица
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ6_Пересчет КАК ВТ6_Пересчет
    ПО ВТ1_Групировка.Номенклатура = ВТ6_Пересчет.НоменклатураПересчет
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ7_Оприходование КАК ВТ7_Оприходование
    ПО ВТ1_Групировка.Номенклатура = ВТ7_Оприходование.НоменклатураОприходование

    СГРУППИРОВАТЬ ПО
    ВТ1_Групировка.Номенклатура,
    ВТ1_Групировка.ВНаличииНачальныйОстаток,
    ВТ1_Групировка.ВНаличииПриход,
    ВТ1_Групировка.ВНаличииРасход,
    ВТ1_Групировка.ВНаличииКонечныйОстаток,
    ВТ1_Групировка.Склад
```