Всем доброго дня! Подскажите как посчитать сумму только номенклатуры с определенным видом, а в запрос вывести все документы ?
т.е. Мне нужна и общая сумма продаж и сумма продаж товара с видом номенклатуры по условию.

```1c
    ВЫБРАТЬ
    ОтчетОРозничныхПродажах.Ссылка,
    ОтчетОРозничныхПродажах.СуммаДокумента,
    ОтчетОРозничныхПродажах.Товары.(
    Сумма,
    Номенклатура.ВидНоменклатуры
    )

    ИЗ
    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
    ГДЕ
    ОтчетОРозничныхПродажах.Товары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
    И ОтчетОРозничныхПродажах.Дата МЕЖДУ &НАчДата И &КонДата
```
---
типа того

```1c
    Выбрать
    СУММА(ТЧ.Сумма) КАК суммаДокумента ,
    СУММА(Выбор Когда ТЧ.Номенклатура.Вид = &НужныйВид Тогда
    ТЧ.Сумма
    Иначе 0
    Конец) КАК СуммаПоНужномуВиду,
    ТЧ.Ссылка КАК Документ
    Из Документ.Товары КАК ТЧ
    сгруппировать по ТЧ.Ссылка
```

"Убрать номенклатуру" буквально можно в конструкторе консоли запросов,
в ней же на будущее прорешать кейсы из руководства по языку
---
Если решать в консоли запросов, то с помощью

```1c
    Выбрать
    СуммаОборот
    из РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач,&ДатаКон,,ПриходРасход = &Расход и
    СтатьяДвиженияДенежныхСредств = &СтатьяЗП)
    Поместить ВыплатаЗП
```

например.

Прошу заметить, на 21 сообщении нет достаточных Критериев Готовности (definition of done) решения задачи.
Хотелки без критериев приемки удовлетворить невозможно по причине недостаточного понимания заказчиком результата, который ему от вас нужен.

Посему, может, вернемся к описанию условий задачи?
---
```1c
    ВЫБРАТЬ
    ЗаказКлиентаТовары.Ссылка КАК Ссылка,
    СУММА(ЗаказКлиентаТовары.Сумма) КАК Сумма,
    ЗаказКлиентаТовары.Ссылка.СуммаДокумента КАК СуммаДокумента
    ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
    ГДЕ
    ЗаказКлиентаТовары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
    СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Ссылка
```

но здесь есть одно но - заказы в которых нет ни одной номенклатуры данного вида, в результат не попадут
---
Так без этого и мой код работает ((
---
Точный ответ подразумевает 5 уровней ответа на вопрос "с какой целью",
в общем случае (3) удовлетворяет условиям "все документы" и "видна сумма номенклатуры по фильтру".
Приятней, все же, отвечать, видя ясную цель https://www.youtube.com/watch?v=s6tLGo9yij0 .
Извиняюсь за вмешательство, избалован корректными требованиями.
---
тогда нужно левое соединение

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

    СГРУППИРОВАТЬ ПО
    ЗаказКлиента.СуммаДокумента,
    зкТовары.Ссылка
```
 PS а ещё лучше левое соединение делать с вложенным запросом из (2)
---
```1c
    Выбрать
    ТЧ.Номенклатура,
    Выбор Когда ТЧ.Номенклатура.Вид = &НужныйВид Тогда
    ТЧ.Сумма
    Иначе 0
    Конец КАК СуммаПоНужномуВиду,
    ТЧ.Ссылка КАК Документ
    Из Документ.Товары КАК ТЧ
```
---
А как убрать Номенклатуру ?
Такого вида нужно: Документ --- суммаДокумента --- суммаНужногоВида
---
ну убрать строку с номенклатурой из запроса, сгруппировать по документу.
Вообще лучше конечно по запросам SQL что-нибудь почитать, если что-то программируешь, в любом случае полезно будет. У 1С язык запросов в основе тот же SQL.
---
типа того

```1c
    Выбрать
    СУММА(ТЧ.Сумма) КАК суммаДокумента ,
    СУММА(Выбор Когда ТЧ.Номенклатура.Вид = &НужныйВид Тогда
    ТЧ.Сумма
    Иначе 0
    Конец) КАК СуммаПоНужномуВиду,
    ТЧ.Ссылка КАК Документ
    Из Документ.Товары КАК ТЧ
    сгруппировать по ТЧ.Ссылка
```

"Убрать номенклатуру" буквально можно в конструкторе консоли запросов,
в ней же на будущее прорешать кейсы из руководства по языку
---
Что то не получается ( видать мозгов не хватает. Буду пытаться.
---
выведи, что получается
---
Спасибо! Получилось.

```1c
    Выбрать
    ОтчетОРозничныхПродажахТовары.Склад,
    СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК суммаДокумента ,
    СУММА(Выбор Когда ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры = &НужныйВид Тогда
    ОтчетОРозничныхПродажахТовары.Сумма
    Иначе 0
    Конец) КАК СуммаПоНужномуВиду,
    ОтчетОРозничныхПродажахТовары.Ссылка КАК Документ
    Из Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары

    ГДЕ
    ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
    сгруппировать по ОтчетОРозничныхПродажахТовары.Ссылка,
    ОтчетОРозничныхПродажахТовары.Склад
```
---
Подскажите, почему суммаРасход в 2 раза больше и если Движение Денежных средств больше 1, то увеличивается продажи.
Где Ошибка ?

```1c
    ВЫБРАТЬ
    ТЗ.Склад как ТЗСклад,
    ТЗ.Касса как ТЗКасса

    ПОМЕСТИТЬ втТЗ
    ИЗ
    &ТЗ КАК ТЗ
    ;

    ВЫБРАТЬ
    втТЗ.ТЗСклад как ТЗсклад,
    втТЗ.ТЗКасса как ТЗКасса,

    ОтчетОРозничныхПродажахТовары.Склад,
    СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Выручка ,
    СУММА(Выбор Когда ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры = &НужныйВид Тогда
    ОтчетОРозничныхПродажахТовары.Сумма
    Иначе 0
    Конец) КАК СуммаПоНужномуВиду,

    ДвиженияДенежныхСредств.БанковскийСчетКасса Как РасходККМ,
    ДвиженияДенежныхСредств.ПриходРасход,
    ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств как Статья,
    Сумма (ДвиженияДенежныхСредств.Сумма) как суммаРасход

    ИЗ втТЗ КАК втТЗ
    Левое СОЕДИНЕНИЕ
    // Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах

    Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары

    ПО втТЗ.ТЗСклад = ОтчетОРозничныхПродажахТовары.Склад
    Левое СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств КАК ДвиженияДенежныхСредств
    ПО ДвиженияДенежныхСредств.БанковскийСчетКасса = втТЗ.ТЗкасса
    ГДЕ
    ОтчетОРозничныхПродажахТовары.ССылка.Дата МЕЖДУ &НачПериода И &КонПериода
    И
    ДвиженияДенежныхСредств.Период МЕЖДУ &НачПериода И &КонПериода
    и
    ДвиженияДенежныхСредств.ПриходРасход = &Расход и
    ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств = &СтатьяЗП

    СГРУППИРОВАТЬ ПО
    втТЗ.ТЗКасса,
    втТЗ.ТЗСклад,
    ОтчетОРозничныхПродажахТовары.Склад,
    ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств,
    ДвиженияДенежныхСредств.БанковскийСчетКасса,
    ДвиженияДенежныхСредств.ПриходРасход
```
---
в 2 раза больше так работает левое соединение без предварительной группировки правой таблицы по ключам соединения, бро. Пиши, что чего больше, в парных картинках "ожидание-реальность", так понятней, пжл.
---
Вот по этим полям суммируется

СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Выручка,
СуммаПоНужномуВиду
Сумма (ДвиженияДенежныхСредств.Сумма) как суммаРасход
---
Нужен весь контекст задачи, телепатия разрушает мозг.
---
Хорошо)). Нужен отчет по складам одной строкой: Склад | суммаПродаж(поСкладу) | суммаПродаж( поСкладу и НужномуВидуНоменклатуры) | Сумма РасходовДС(по нужной статье) за период

Связь между Продажи и Расходы через ТаблицуПараметров: Склад = Касса = КассаКМ
---
1.
Имхо помещать в 1 запрос сырые таблицы документов продажи и регистра расходы
противоречит стандартам получения данных в запросах, как минимум, регистр продажи отдаст требуемые данные быстрее.
2.
 Левое СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств КАК ДвиженияДенежныхСредств
    ПО ДвиженияДенежныхСредств.БанковскийСчетКасса = втТЗ.ТЗкасса левое соединение без предварительной группировки по ключам соединения.

Мало-мальски похожее на типовой отчет решение представляю так:

Нарисовать исходные таблицы и их поля на бумаге (чтобы не запутаться, оперируя несколькими таблицами).
Создать отчет на базе скд.
Создать 3 набора данных согласно требованиям задачи, предварительно отфильтровать и сгруппировать их по полям соединения
Создать связи наборов данных, ресурсы и настройки вывода.

В отличие от текста запроса, получившийся отчет можно будет запустить на чужой базе и посмотреть, что именно с ним не так.

Эджайл сказал:
1.Разделяем сложные задачи на простые.
2.Решаем простые по одной.
3.Выкладываем и фиксим баги.
---
ясно, что ничего не ясно!!
---
Тоже любил решать задачи, не включая разум. Прошло, как закончились деньги
---
как сделать левое соединение с предварительной группировкой ?
---
Если решать в консоли запросов, то с помощью

```1c
    Выбрать
    СуммаОборот
    из РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач,&ДатаКон,,ПриходРасход = &Расход и
    СтатьяДвиженияДенежныхСредств = &СтатьяЗП)
    Поместить ВыплатаЗП
```

например.

Прошу заметить, на 21 сообщении нет достаточных Критериев Готовности (definition of done) решения задачи.
Хотелки без критериев приемки удовлетворить невозможно по причине недостаточного понимания заказчиком результата, который ему от вас нужен.

Посему, может, вернемся к описанию условий задачи?
---
Выбрать
СуммаОборот
из РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач,&ДатаКон,,ПриходРасход = &Расход и
           СтатьяДвиженияДенежныхСредств = &СтатьяЗП)
Поместить ВыплатаЗП

Вот на что ругается ? Вроде все правильно.
 Синтаксическая ошибка "ПОМЕСТИТЬ"
<<?>>ПОМЕСТИТЬ ВыплатаЗП
---
Вот так ошибки нет

```1c
    Выбрать
    СуммаОборот
    Поместить ВыплатаЗП
    из РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач,&ДатаКон,,ПриходРасход = &Расход и
    СтатьяДвиженияДенежныхСредств = &СтатьяЗП)
```
---
Спасибо, все получилось и запрос стал в 2 раза быстрее 1,7 сек

```1c
    Выбрать
    СуммаОборот как Зарплата,
    БанковскийСчетКасса Как Касса
    Поместить ВыплатаЗП
    из РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачПериода,&КонПериода,,ПриходРасход = &Расход и
    СтатьяДвиженияДенежныхСредств = &СтатьяЗП)

    ;
    ВЫБРАТЬ
    ТЗ.Склад как ТЗСклад,
    ТЗ.Касса как ТЗКасса

    ПОМЕСТИТЬ втТЗ
    ИЗ
    &ТЗ КАК ТЗ
    ;

    ВЫБРАТЬ
    втТЗ.ТЗСклад как ТЗсклад,
    втТЗ.ТЗКасса как ТЗКасса,
    ВыплатаЗП.Касса,
    ВыплатаЗП.Зарплата,

    ОтчетОРозничныхПродажахТовары.Склад,
    СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Выручка,
    СУММА(Выбор Когда ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры = &НужныйВид Тогда
    ОтчетОРозничныхПродажахТовары.Сумма
    Иначе 0
    Конец) КАК СуммаПоНужномуВиду
    ИЗ втТЗ КАК втТЗ
    Левое СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
    ПО втТЗ.ТЗСклад = ОтчетОРозничныхПродажахТовары.Склад
    Левое Соединение ВыплатаЗП
    ПО ВыплатаЗП.Касса = втТЗ.ТЗкасса
    ГДЕ
    ОтчетОРозничныхПродажахТовары.ССылка.Дата МЕЖДУ &НачПериода И &КонПериода

    СГРУППИРОВАТЬ ПО
    втТЗ.ТЗКасса,
    втТЗ.ТЗСклад,

    ВыплатаЗП.Касса,
    ВыплатаЗП.Зарплата,
    ОтчетОРозничныхПродажахТовары.Склад
```