В очередной раз прошу совета.
хочу в запросе проанализировать свойство контрагента. У контрагента создано свойство, может принимать значение "+" или "-" в зависимости от этого я хочу вычислять по разному поле "стоимость".
для этого пытаюсь использовать конструкцию "Выбор"., подскажите что я не верно делаю

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Проект КАК Проект,
    ПродажиОбороты.Подразделение КАК Подразделение,
    ПродажиОбороты.Контрагент КАК Покупатель,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    ПродажиОбороты.Организация КАК Организация,
    ПродажиОбороты.Регистратор КАК Регистратор,
    ПродажиОбороты.Период КАК Период,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц,
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС,
    ПродажиОбороты.НДСОборот КАК НДС,
    //***
    ВЫБОР
    (ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение.Наименование КАК Значение
    ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = "000000001"
    И ЗначенияСвойствОбъектов.Объект = ПродажиОбороты.Контрагент)
    КОГДА Ссылка.Наименование = "+"
    ТОГДА (ПродажиОбороты.СтоимостьОборот -2) КАК Стоимость
    ИНАЧЕ
    ПродажиОбороты.СтоимостьОборот КАК Стоимость
    КОНЕЦ,
    //***
    ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0) КАК Себестоимость
    ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Организация).* КАК Организация, (Проект).* КАК Проект, (Подразделение).* КАК Подразделение, (Контрагент).* КАК Покупатель, (ДоговорКонтрагента).* КАК ДоговорПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя}) КАК ПродажиОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПродажиСебестоимость.Номенклатура КАК Номенклатура,
    ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
    ВЫБОР
    КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    ТОГДА ПродажиСебестоимость.ДокументДвижения
    ИНАЧЕ ПродажиСебестоимость.Регистратор
    КОНЕЦ КАК Регистратор,
    СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
    ИЗ
    РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
    ГДЕ
    ПродажиСебестоимость.Период МЕЖДУ &ДатаНач И &ДатаКон
    {ГДЕ
    ПродажиСебестоимость.Проект.* КАК Проект,
    ПродажиСебестоимость.Подразделение.* КАК Подразделение,
    ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
    ПродажиСебестоимость.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}

    СГРУППИРОВАТЬ ПО
    ПродажиСебестоимость.Номенклатура,
    ПродажиСебестоимость.ХарактеристикаНоменклатуры,
    ПродажиСебестоимость.ЗаказПокупателя,
    ВЫБОР
    КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    ТОГДА ПродажиСебестоимость.ДокументДвижения
    ИНАЧЕ ПродажиСебестоимость.Регистратор
    КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость
    ПО (ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура)
    И (ТаблицаРегистраПродажиСебестоимость.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры)
    И (ТаблицаРегистраПродажиСебестоимость.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя)
    И (ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор)
```
---
Спасибо за идею!

```1c
    ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение
    ПОМЕСТИТЬ ВТ
    ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = "000000001"
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПродажиОбороты.Проект КАК Проект,
    ПродажиОбороты.Подразделение КАК Подразделение,
    ПродажиОбороты.Контрагент КАК Покупатель,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    ПродажиОбороты.Организация КАК Организация,
    ПродажиОбороты.Регистратор КАК Регистратор,
    ПродажиОбороты.Период КАК Период,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц,
    //ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС,
    ПродажиОбороты.НДСОборот КАК НДС,
    //высчитываем Стоимость
    Выбор
    Когда ВТ.Значение.Наименование = "+" Тогда
    ПродажиОбороты.СтоимостьОборот - (2 * ПродажиОбороты.КоличествоОборот)
    Иначе
    ПродажиОбороты.СтоимостьОборот
    Конец КАК Стоимость,
    //высчитываем стоимость без ндс
    Выбор
    Когда ВТ.Значение.Наименование = "+" Тогда
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот - (2 * ПродажиОбороты.КоличествоОборот)
    Иначе
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот
    Конец КАК СтоимостьБезНДС,
    //ПродажиОбороты.СтоимостьОборот КАК Стоимость,
    ВТ.Значение
    ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Организация).* КАК Организация, (Проект).* КАК Проект, (Подразделение).* КАК Подразделение, (Контрагент).* КАК Покупатель, (ДоговорКонтрагента).* КАК ДоговорПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя}) КАК ПродажиОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ
    ПО ПродажиОбороты.Контрагент = ВТ.Объект
```
---
Не понимаю я зачем такие сложности? Выберите значения доп свойств в отдельную виртуальную таблицу(2 поля - объект и Значение ) . И после через левое соединение соединяй с основной таблицей и рассчитывайте свою стоимость
---
Виртуальную или временную? если я верно понимаю это будет пакетный запрос, я хочу использовать параметр контрагент из текущего запроса, а тогда первую ВТ мне придется раньше вызвать, чтоб использовать в общем запросе или нет?
---
Спасибо за идею!

```1c
    ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект,
    ЗначенияСвойствОбъектов.Свойство,
    ЗначенияСвойствОбъектов.Значение
    ПОМЕСТИТЬ ВТ
    ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = "000000001"
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПродажиОбороты.Проект КАК Проект,
    ПродажиОбороты.Подразделение КАК Подразделение,
    ПродажиОбороты.Контрагент КАК Покупатель,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    ПродажиОбороты.Организация КАК Организация,
    ПродажиОбороты.Регистратор КАК Регистратор,
    ПродажиОбороты.Период КАК Период,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов,
    ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц,
    //ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС,
    ПродажиОбороты.НДСОборот КАК НДС,
    //высчитываем Стоимость
    Выбор
    Когда ВТ.Значение.Наименование = "+" Тогда
    ПродажиОбороты.СтоимостьОборот - (2 * ПродажиОбороты.КоличествоОборот)
    Иначе
    ПродажиОбороты.СтоимостьОборот
    Конец КАК Стоимость,
    //высчитываем стоимость без ндс
    Выбор
    Когда ВТ.Значение.Наименование = "+" Тогда
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот - (2 * ПродажиОбороты.КоличествоОборот)
    Иначе
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот
    Конец КАК СтоимостьБезНДС,
    //ПродажиОбороты.СтоимостьОборот КАК Стоимость,
    ВТ.Значение
    ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Организация).* КАК Организация, (Проект).* КАК Проект, (Подразделение).* КАК Подразделение, (Контрагент).* КАК Покупатель, (ДоговорКонтрагента).* КАК ДоговорПокупателя, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя}) КАК ПродажиОбороты
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ
    ПО ПродажиОбороты.Контрагент = ВТ.Объект
```