Добрый день, пишу запрос по доп соглашением есть задача подсчитать СуммуКонтракта с учётом доп соглашения то есть оно может быть как в плюс так и в минус при заполнение пользователь выбирает на уменьшение или на увеличение вот из ходя из этих предложений мне и нужно сделать действие над суммой контракта.

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

Знаю что нужно использовать условие

```1c
    ЕСЛИ

    ДополнительныеСоглашенияНаименование == "на увеличение"

    ТОГДА

    ЦенаКонтракта + ДополнительныеСоглашенияСумма

    ИНАЧЕ

    ЦенаКонтракта - ДополнительныеСоглашенияСумма
```

 но не как не могу сообразить как сформулировать его в запросе ?
---
просто интересно, какой идиот вам базу дорабатывал? франчайзи?
кто так дает наименования Реквизитам?
у вас
РегистрСведений.ДополнительныеСоглашения
реквизиты достаточно именовать как

Контрагент,
НомерЗакупки,
Сумма,

а не
ДополнительныеСоглашенияКонтрагент,
ДополнительныеСоглашенияНомерЗакупки,
ДополнительныеСоглашенияСумма,

как совет, вместо реквизита: Наименование сделайте реквизит Увеличение тип Булево,
тогда ваш подзапрос будет выглядеть так

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

Контрагент,
НомерЗакупки,
Сумма,

а не
ДополнительныеСоглашенияКонтрагент,
ДополнительныеСоглашенияНомерЗакупки,
ДополнительныеСоглашенияСумма,

как совет, вместо реквизита: Наименование сделайте реквизит Увеличение тип Булево,
тогда ваш подзапрос будет выглядеть так

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

```1c
    ВЫБРАТЬ
    ДополнительныеСоглашения.ДополнительныеСоглашенияНомерЗакупки,
    СУММА(
    ВЫБОР КОГДА ДополнительныеСоглашения.ДополнительныеСоглашенияНаименование = "Да"
    ТОГДА ДополнительныеСоглашения.ДополнительныеСоглашенияСумма //это увеличение Сумма с Плюсом
    ИНАЧЕ -ДополнительныеСоглашения.ДополнительныеСоглашенияСумма //это уменьшение Сумма с Минусом
    КОНЕЦ) КАК Сумма
    ПОМЕСТИТЬ ВремТабСуммаСучётомДопСоглаш
    ИЗ
    РегистрСведений.ДополнительныеСоглашения КАК ДополнительныеСоглашения
    СГРУППИРОВАТЬ ПО
    ДополнительныеСоглашения.ДополнительныеСоглашенияНомерЗакупки
    ;
    ВЫБРАТЬ
    ОбщиеСведения.ЦенаКонтракта,
    ВремТабСуммаСучётомДопСоглаш.Сумма
    ИЗ
    РегистрСведений.ОбщиеСведения КАК ОбщиеСведения
    ЛЕВОЕ СОЕДИНЕНИЕ
    ВремТабСуммаСучётомДопСоглаш КАК ВремТабСуммаСучётомДопСоглаш
    ПО
    (ОбщиеСведения.НомерЗакупки = ВремТабСуммаСучётомДопСоглаш.ДополнительныеСоглашенияНомерЗакупки)
```

Получил результат с минусом. Но как его вычесть из ЦенаКонтракта ?
---
просто сложите суммы
---
Всё работает, но тут вылез косяк который сразу не учёл и не включил в вопрос у меня же 2 доп соглашения по одному мы увеличиваем сумму, а во втором уменьшаем сумму одного и того же контракта как тут быть ?
---
у меня же 2 доп соглашения
они уже просуммировались по НомеруЗаказа
(проверьте Номера, вообще в правильных базах используются Ссылки)
---
Выбор Когда ЧтоТоТам.Уменьшение Тогда ЗначениеОдно
Иначе ЗначениеДругое
Конец

или в параметр запроса выборку по условию
 Где ЧтоТоТам.Увеличение = ВыборПользователя
---
Вопрос в том как это описать
```1c
    ГДЕ
    ЦенаКонтракта.УВЕЛИЧЕНИЕ = "на увеличение"
```

Вы это имели в виду ?
---
да
или как в (4) или ЦенаКонтракта ПОДОБНО &Параметр
Параметр = "%на увеличение%"