Всем привет! 1С:Комплексная автоматизация 2 (2.4.13.170). Делаю в отчете СКД расчет, по формулам:

```1c
    1) ВТ1.Цена * 1.04 * 1.015 * 1.07 КАК СтараяЦена,
    2) СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена КАК ЦенаПродажи,
    3) (СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена) * 1.04 * 1.015 * 1.07 КАК НоваяЦена,
    4) ВТ2.ЦенаЗаказКлиента - (СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена) * 1.04 * 1.015 * 1.07 КАК ИтоговыйРасчет
```

сам отчет:

```1c
    ВЫБРАТЬ
    ЗаказПоставщикуТовары.Ссылка КАК ДокументЗаказПоставщику,
    ЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки,
    ЗаказПоставщикуТовары.НоменклатураПартнера КАК НоменклатураПартнера,
    ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
    ЗаказПоставщикуТовары.Характеристика КАК Характеристика,
    ЗаказПоставщикуТовары.Упаковка КАК Упаковка,
    ЗаказПоставщикуТовары.КоличествоУпаковок КАК КоличествоУпаковок,
    ЗаказПоставщикуТовары.Количество КАК Количество,
    ЗаказПоставщикуТовары.ДатаПоступления КАК ДатаПоступления,
    ЗаказПоставщикуТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
    ЗаказПоставщикуТовары.Цена КАК Цена,
    ЗаказПоставщикуТовары.Сумма КАК Сумма,
    ЗаказПоставщикуТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
    ЗаказПоставщикуТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
    ЗаказПоставщикуТовары.СтавкаНДС КАК СтавкаНДС,
    ЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС,
    ЗаказПоставщикуТовары.СуммаСНДС КАК СуммаСНДС,
    ЗаказПоставщикуТовары.КодСтроки КАК КодСтроки,
    ЗаказПоставщикуТовары.Отменено КАК Отменено,
    ЗаказПоставщикуТовары.СтатьяРасходов КАК СтатьяРасходов,
    ЗаказПоставщикуТовары.АналитикаРасходов КАК АналитикаРасходов,
    ЗаказПоставщикуТовары.ПричинаОтмены КАК ПричинаОтмены,
    ЗаказПоставщикуТовары.Склад КАК Склад,
    ЗаказПоставщикуТовары.Назначение КАК НазначениеЗаказПоставщику,
    ЗаказПоставщикуТовары.Подразделение КАК Подразделение,
    ЗаказПоставщикуТовары.СписатьНаРасходы КАК СписатьНаРасходы,
    ЗаказПоставщикуТовары.ТоварыВПути КАК ТоварыВПути,
    ЗаказПоставщикуТовары.ПланируемаяДатаПоставки КАК ПланируемаяДатаПоставки,
    ЗаказПоставщикуТовары.Ссылка.ДокументОснование КАК ДокументОснование
    ПОМЕСТИТЬ ВТ1
    ИЗ
    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЗаказКлиентаТовары.Ссылка.Валюта КАК ВалютаЗаказКлиента,
    ЗаказКлиентаТовары.Номенклатура КАК НоменклатураЗаказКлиента,
    ЗаказКлиентаТовары.Цена КАК ЦенаЗаказКлиента,
    ЗаказКлиентаТовары.Сумма КАК СуммаЗаказКлиента,
    ЗаказКлиентаТовары.Ссылка КАК Ссылка,
    ЗаказКлиентаТовары.Ссылка.ДокументОснование КАК ДокументОснование,
    ЗаказКлиентаТовары.Ссылка.Назначение КАК НазначениеЗаказКлиента,
    ЗаказКлиентаТовары.Ссылка.Номер КАК НомерЗаказКлиента
    ПОМЕСТИТЬ ВТ2
    ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    КоммерческоеПредложениеКлиентуТовары.Ссылка КАК Ссылка,
    КоммерческоеПредложениеКлиентуТовары.кнлНаценка КАК кнлНаценка,
    КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК Номенклатура,
    КоммерческоеПредложениеКлиентуТовары.кнлПошлина КАК кнлПошлина
    ПОМЕСТИТЬ ВТ3
    ИЗ
    Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ1.ДокументЗаказПоставщику.Дата КАК ДатаЗаказПоставщику,
    ВТ1.Номенклатура КАК НоменклатураЗаказПоставщику,
    ВТ1.Цена КАК ЦенаЗаказПоставщику,
    ВТ1.Сумма КАК СуммаЗаказПоставщику,
    ВТ2.ВалютаЗаказКлиента КАК ВалютаЗаказКлиента,
    ВТ2.ЦенаЗаказКлиента КАК ЦенаЗаказКлиента,
    ВТ2.СуммаЗаказКлиента КАК СуммаЗаказКлиента,
    ВТ1.ДокументЗаказПоставщику КАК ДокументЗаказПоставщику,
    ВТ2.НоменклатураЗаказКлиента КАК НоменклатураЗаказКлиента,
    ВТ3.кнлНаценка КАК НаценкаИзКП,
    ВТ1.Количество КАК КоличествоЗаказПоставщику,
    ВТ3.кнлПошлина КАК ПошлинаИзКП,
    ВТ1.НоменклатураПартнера.Артикул КАК НоменклатураПартнераАртикул,
    ВТ1.ТоварыВПути КАК ТоварыВПути,
    ВТ2.НомерЗаказКлиента КАК НомерЗаказКлиента,
    ВТ1.Цена * 1.04 * 1.015 * 1.07 КАК СтараяЦена,
    СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена КАК ЦенаПродажи,
    (СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена) * 1.04 * 1.015 * 1.07 КАК НоваяЦена,
    ВТ2.ЦенаЗаказКлиента - (СУММА(ВТ2.ЦенаЗаказКлиента / 90) - СУММА(ВТ1.Цена * 1.04 * 1.015 * 1.07) + ВТ1.Цена) * 1.04 * 1.015 * 1.07 КАК ИтоговыйРасчет
    ИЗ
    ВТ1 КАК ВТ1
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
    ПО ВТ2.ДокументОснование = ВТ3.Ссылка
    И ВТ2.НоменклатураЗаказКлиента = ВТ3.Номенклатура
    ПО ВТ1.НазначениеЗаказПоставщику = ВТ2.НазначениеЗаказКлиента
    И ВТ1.Номенклатура = ВТ2.НоменклатураЗаказКлиента
    ГДЕ
    ВТ1.ДокументЗаказПоставщику.Дата МЕЖДУ &Д1 И &Д2

    СГРУППИРОВАТЬ ПО
    ВТ1.ДокументЗаказПоставщику.Дата,
    ВТ1.Номенклатура,
    ВТ1.Цена,
    ВТ1.Сумма,
    ВТ2.ВалютаЗаказКлиента,
    ВТ2.ЦенаЗаказКлиента,
    ВТ2.СуммаЗаказКлиента,
    ВТ1.ДокументЗаказПоставщику,
    ВТ2.НоменклатураЗаказКлиента,
    ВТ3.кнлНаценка,
    ВТ1.Количество,
    ВТ3.кнлПошлина,
    ВТ1.НоменклатураПартнера.Артикул,
    ВТ1.ТоварыВПути,
    ВТ2.НомерЗаказКлиента
```

Мне необходимо как то в формулах вместо числа "1.07", вставить переменную, так как если в 4 формуле ответ получается с минусом, то нужно пересчитать результат прибавив к "числу" 0.01, если опять ответ с минусом, то опять прибавлять 0.01 пока не станет ответ положительный.
Пробовал через пользовательские поля считать, но там нельзя использовать созданное поле дальше для расчета, нужно все делать в одном. Полез делать через СКД, еще пробовал через вычисляемые поля.
Всем спасибо за ответы!!!
---
ВТ1.Цена * 1.04 * 1.015 * 1.07 КАК СтараяЦена
ВТ1.Цена * &Переменная1 * &Переменная2 * &Переменная3 КАК СтараяЦена

Запрос.УстановитьПараметр("Переменная1", 1.04);
---
ВТ1.Цена * 1.04 * 1.015 * 1.07 КАК СтараяЦена
ВТ1.Цена * &Переменная1 * &Переменная2 * &Переменная3 КАК СтараяЦена

Запрос.УстановитьПараметр("Переменная1", 1.04);
---
Спасибо, как мне теперь пикрутить проверку, если общая сумма расчета меньше 0, тогда "Переменную3" нужно увеличить на 0.01 и опять проверить меньше или нет. Нужен цикл))) как его можно использовать в СКД или вычисляемое поле ?
---
Вы уже используете процедуру ПриКомпоновкеРезультата в модуле отчета? Если нет, придется. Вот там цикл и реализуйте.
---
нет, буду изучать, спасибо