Добрый день, в данном запросе

```1c
    ВЫБРАТЬ
    Поставка.ПоставкаНомерЗакупки КАК ПоставкаНомерЗакупки,
    Поставка.ПоставкаНаименованиеПозиции,
    Поставка.ПоставкаСумма КАК ОстатокСуммы
    ПОМЕСТИТЬ
    ВремТабПоставкаСумма
    ИЗ
    РегистрСведений.Поставка КАК Поставка
    ГДЕ
    Поставка.ПоставкаНомерЗакупки = "1234567891011"
    ;

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

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

    ЛЕВОЕ СОЕДИНЕНИЕ

    ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО
    (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ

    ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО
    (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
```
пытаюсь выбрать из таблицы поставка по условию данные и так же из таблицы спецификация. И при соединить по полю СпецификацияКонтрактаНаименование, но почему то выдаёт синтаксическая ошибка "ЛЕВОЕ" ЛЕВОЕ СОЕДИНЕНИЕ
---
(7) "ГДЕ" должно быть в самом низу
---
```1c
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма,
    ЕСТЬNULL(ВремТабПоставкаКоличество.ОстатокКоличество,0),
    ЕСТЬNULL(ВремТабПоставкаСумма.ОстатокСуммы,0),
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество - ВремТабПоставкаКоличество.ОстатокКоличество КАК ОстатокКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма - ВремТабПоставкаСумма.ОстатокСуммы КАК ОстатокСуммы
    ИЗ
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
    ГДЕ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки = "1234567891011"
```
---
(7) "ГДЕ" должно быть в самом низу
---
точняк
---
Сделал

```1c
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма,
    ЕСТЬNULL(ВремТабПоставкаКоличество.ОстатокКоличество,0),
    ЕСТЬNULL(ВремТабПоставкаСумма.ОстатокСуммы,0),
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество - ВремТабПоставкаКоличество.ОстатокКоличество КАК ОстатокКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма - ВремТабПоставкаСумма.ОстатокСуммы КАК ОстатокСуммы
```

Всё так же
---
(13) Если переместить ГДЕ в низ результат куча повторяющихся данных
---
запятые убери

```1c
    ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество,
    ВремТабПоставкаСумма КАК ВремТабПоставкаСумма,
```
---
убрал так же
---
Запрос вручную чтоль написан?... Как-то все вкривь и вкось
---
Ну да в ручную.
---
Ну вот и попробуй сконструировать
---
попробуй скопируй

```1c
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество - ВремТабПоставкаКоличество.ОстатокКоличество КАК ОстатокКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма - ВремТабПоставкаСумма.ОстатокСуммы КАК ОстатокСуммы
    ИЗ
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
    ГДЕ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки = "1234567891011"

    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
```
---
и вроде бы сначала нужно получить поля ВремТабПоставкаКоличество.ОстатокКоличество и ВремТабПоставкаСумма.ОстатокСуммыэ
поместить результат во временную таблицу а потом уже математические действия выполнять
---
потом ВремТабПоставкаКоличество.ОстатокКоличество нужно заключить в ЕСТЬNULL

```1c
    ЕСТЬNULL(ВремТабПоставкаКоличество.ОстатокКоличество,0)
    ЕСТЬNULL(ВремТабПоставкаСумма.ОстатокСуммы,0)
```
---
```1c
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма,
    ЕСТЬNULL(ВремТабПоставкаКоличество.ОстатокКоличество,0),
    ЕСТЬNULL(ВремТабПоставкаСумма.ОстатокСуммы,0),
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество - ВремТабПоставкаКоличество.ОстатокКоличество КАК ОстатокКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма - ВремТабПоставкаСумма.ОстатокСуммы КАК ОстатокСуммы
    ИЗ
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
    ГДЕ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки = "1234567891011"
```
---
значит запрос работает
---
А как тогда добиться нужного результата ?
---
```1c
    ВЫБРАТЬ
    Поставка.ПоставкаНомерЗакупки КАК ПоставкаНомерЗакупки,
    Поставка.ПоставкаНаименованиеПозиции,
    СУММА(Поставка.ПоставкаСумма) КАК ОстатокСуммы
    ПОМЕСТИТЬ
    ВремТабПоставкаСумма
    ИЗ
    РегистрСведений.Поставка КАК Поставка
    ГДЕ
    Поставка.ПоставкаНомерЗакупки = "1234567891011"
    СГРУППИРОВАТЬ ПО
    Поставка.ПоставкаНомерЗакупки,
    Поставка.ПоставкаНаименованиеПозиции

    ;
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма,
    ЕСТЬNULL(ВремТабПоставкаКоличество.ОстатокКоличество,0),
    ЕСТЬNULL(ВремТабПоставкаСумма.ОстатокСуммы,0),
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество - ВремТабПоставкаКоличество.ОстатокКоличество КАК ОстатокКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаСумма - ВремТабПоставкаСумма.ОстатокСуммы КАК ОстатокСуммы
    ИЗ
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО (СпецификацияКонтракта.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
    ГДЕ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки = "1234567891011"
```
---
Но мне сумма не нужна в таблице Поставка хранятся данные сумма и количество которые я просто должен получить и вычесть из СпецфикацииКоличество и СпецефикацияСумма, а разницу добавить в колонку остаток количества и остаток сумма. Как это можно реализовать ?
(19)
---
```1c
    ВЫБРАТЬ
    СпецификацияКонтракта.СпецификацияКонтрактаНомерЗакупки,
    СпецификацияКонтракта.СпецификацияКонтрактаНаименование,
    Сумма(СпецификацияКонтракта.СпецификацияКонтрактаКоличество),
    СпецификацияКонтракта.СпецификацияКонтрактаЦенаЗаЕд,
    СпецификацияКонтракта.СпецификацияКонтрактаЕдИзм,
    СУММА(СпецификацияКонтракта.СпецификацияКонтрактаСумма)
    поместить ВТ

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

    из ВТ как ВТ

    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаКоличество КАК ВремТабПоставкаКоличество
    ПО ВТ.СпецификацияКонтрактаНаименование = ВремТабПоставкаКоличество.ПоставкаНаименованиеПозиции)
    ЛЕВОЕ СОЕДИНЕНИЕ ВремТабПоставкаСумма КАК ВремТабПоставкаСумма
    ПО (ВТ.СпецификацияКонтрактаНаименование = ВремТабПоставкаСумма.ПоставкаНаименованиеПозиции)
```
---
два первых запроса вообще зачем ?
---
Сообщение было скрыто модератором.
---
какой результат выдает запрос

```1c
    ВЫБРАТЬ
    Поставка.ПоставкаНомерЗакупки КАК ПоставкаНомерЗакупки,
    Поставка.ПоставкаНаименованиеПозиции,
    Поставка.ПоставкаСумма КАК ОстатокСуммы
    ПОМЕСТИТЬ
    ВремТабПоставкаСумма
    ИЗ
    РегистрСведений.Поставка КАК Поставка
    ГДЕ
    Поставка.ПоставкаНомерЗакупки = "1234567891011"
```
---
какой результат выдает запрос? скопируй его и выполни

```1c
    ВЫБРАТЬ
    Поставка.ПоставкаНомерЗакупки КАК ПоставкаНомерЗакупки,
    Поставка.ПоставкаНаименованиеПозиции,
    Поставка.ПоставкаСумма КАК ОстатокСуммы

    ИЗ
    РегистрСведений.Поставка КАК Поставка
    ГДЕ
    Поставка.ПоставкаНомерЗакупки = "1234567891011"
```
---
ну вот, посмотри в таблице повторяется наименование и номер контракта
---
что нужно сделать с этими цифрами ?
---
полагаю всетаки сложить
---
просуммировать количество и сумму по номеру контракта и наименованию
---
из за повторений сначала в первой таблице потом во второй таблице ты получаешь множество одинаковых строк при левом соединении
---
Спасибо, всё правильно в пылу поиска ответа не обратил внимания, что данные в РегСвед были переполнены лишним от этого и цифры били другими из чего и сделал вывод что результат запроса не верный.
---
и первый и второй запрос по сути к одному регистру, поэтому имеет смысл сделать один запрос из двух либо прямо его соединять без использования временных таблиц
---
Слухай менэ. Всё таки 20 лет в адинэсе разработчиком.
Пеши в канструкторе. Ашибак не будеть!