в конфигурации УТ11 (ПРОФ) для справочника номенклатуры добавил дополнительный числовой реквизит "Процент скидки". Задумка такая, что для товарных остатков, которые помещаются на постоянную распродажу в карточке номенклатуры в доп.реквизитах указывается этот процент скидки, а дальше в цене "Цена со скидкой" автоматически вычисляется цена: от базовой цены отнимает указанный процент. Соответственно в видах цен создаю новый вид цены "Цена со скидкой" и там произвольный запрос к ИБ пишу. Но почему-то ругается на знак "-" в арифметическом выражении. Пишет: неверный параметр в запросе "-". Что неправильно в тексте запроса?

Запрос следующий:

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

```1c
    ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Упаковка,
    ЦеныНоменклатурыСрезПоследних.Валюта,
    ЦеныНоменклатурыСрезПоследних.Характеристика,
    ЦеныНоменклатурыСрезПоследних.Цена,
    1 КАК Коэффициент,
    НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
    НоменклатураДополнительныеРеквизиты.Свойство КАК Свойство,
    НоменклатураДополнительныеРеквизиты.Значение КАК Значение,
    ВЫБОР
    КОГДА НоменклатураДополнительныеРеквизиты.Значение > 0

    ТОГДА ВЫРАЗИТЬ ( ( ЦеныНоменклатурыСрезПоследних.Цена * ( ЕСТЬNULL(100, 0) - ЕСТЬNULL(ВЫРАЗИТЬ(НоменклатураДополнительныеРеквизиты.Значение КАК Число(15,2)), 0) ) / 100 ) КАК (Число(15,0) ) )
    ИНАЧЕ ВЫРАЗИТЬ( ЦеныНоменклатурыСрезПоследних.Цена КАК (Число(15,0)))
    КОНЕЦ КАК Цена
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &Период, ВидЦены = &видЦены1) КАК ЦеныНоменклатурыСрезПоследних
    ЛЕВОЕ СОЕДИНЕНИЕ
    Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
    ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура=НоменклатураДополнительныеРеквизиты.Ссылка
    ГДЕ
    НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
```
---
ЕСТЬNULL(100, 0)
вот это какую смысловую нагрузку несет?
---
никакой. Экспериментировал с преобразованием операнд, чтобы разность начало считать. Думал может "-" из-за "100" не работает
---
Построитель запроса не знает тип "НоменклатураДополнительныеРеквизиты.Значение" , не знает что это число.

И доп. реквизит может быть не заполнен, где проверка на NULL