Здравствуйте. Писала так

```1c
    "ВЫБРАТЬ
    | СУММА(ВЫБОР
    | КОГДА ДвиженияДенежныхСредствОстатки.СуммаОстаток = NULL
    | ТОГДА 0
    | ИНАЧЕ ДвиженияДенежныхСредствОстатки.СуммаОстаток
    | КОНЕЦ) КАК СуммаОстаток,
```

Писала так

```1c
    "ВЫБРАТЬ
    | СУММА(ЕстьNULL(ДвиженияДенежныхСредствОстатки.СуммаОстаток,0) ) КАК СуммаОстаток,
```

Все равно
в выборке
Если ВыборкаДетальныеЗаписи.СуммаОстаток > 0 Тогда
ругается на Операции сравнения на больше-меньше допустимы..
Ну что я делаю не так?!
Надо: получить сальдо на начало времен (условно 01.01.0001), если задаю дату после первой записи в регистр, допустим 15.02.2016, то сальдо считает верно.
---
```1c
    ЕСТЬNULL(СУММА(ДвиженияДенежныхСредствОстатки.СуммаОстаток),0) КАК СуммаОстаток,
    ЕСТЬNULL(СУММА(ДвиженияДенежныхСредствОстатки.СуммаДокОстаток),0) КАК СуммаДокОстаток,
```
 и т.д.
---
регистр накопления, Остатки
---
весь текст запроса можно ?
---
получить сальдо на начало времен - мне кажется, что всегда 0 (до первой записи в регистре )
---
это условно.
допустим взаиморасчеты начались 02.11.18
на дату 01.11.2018- я хочу чтобы было СуммаОстаток=0
---
если хотите получить "остатки" на дату до начала всех записей, то остатков в принципе быть не должно и запрос вернет пустую выборку.
Если по конкретному взаиморасчету, то его не будет в выборке.
---
второй вариант в запросе правильный. Но ошибка не с этим связана.
В запросе скорее всего используются общие итоги.
Первыми записями выборки будут только группировки, остальные поля будут всегда NULL. Вот на эту первую строку и нарываетесь.
Не видя вашего кода могу предложить так:

```1c
    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.СуммаОстаток) И ВыборкаДетальныеЗаписи.СуммаОстаток > 0 Тогда
```
---
нет

```1c
    ВЫБРАТЬ
    | СУММА(ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаОстаток,0)) КАК СуммаОстаток,
    | СУММА(ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаДокОстаток,0)) КАК СуммаДокОстаток,
    | СУММА(ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаРубОстаток,0)) КАК СуммаРубОстаток,
    | СУММА(ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаДокРубОстаток,0)) КАК СуммаДокРубОстаток
    |ИЗ
    | РегистрНакопления.ДвиженияДенежныхСредств.Остатки(&НачалоПериода, ) КАК УП_ДвиженияДенежныхСредствОстатки
    |ГДЕ
    | ДвиженияДенежныхСредствОстатки.МестонахождениеДенежныхСредств В ИЕРАРХИИ(&МестонахождениеДенежныхСредств)
```
---
```1c
    ЕСТЬNULL(СУММА(ДвиженияДенежныхСредствОстатки.СуммаОстаток),0) КАК СуммаОстаток,
    ЕСТЬNULL(СУММА(ДвиженияДенежныхСредствОстатки.СуммаДокОстаток),0) КАК СуммаДокОстаток,
```
 и т.д.
---
Спасибо...
чтото я конструктом пользоваться умею, а подумать куда в другое место поставить нул не смогла(((
Сальдо начальное выводит как надо - пустую строку!
---
тогда давайте полный текст ошибки и код выборки
---
если это весь текст запроса, то проверка на null вообще не нужна. Ресурсы не могут быть null.
И сам запрос нерабочий. имя "УП_ДвиженияДенежныхСредствОстатки", а выбираете по "ДвиженияДенежныхСредствОстатки". Что-то недоговариваете.
---
не правда...
 - не было проверки на нул, он ругался на это ВыборкаДетальныеЗаписи.СуммаОстаток > 0
потому, я начала громоздить NULL
---
Может быть там тип не Null, а Неопределено.
---
Сравнивать с null'ом нельзя, он ничему не равен, даже другому null'у)

А если поставить Остановку по ошибке - то в отладчике чему равна СуммаОстаток?
---
null
---
```1c
    "ВЫБРАТЬ
    | СУММА(ВЫБОР
    | КОГДА ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаОстаток,0) = 0
    | ТОГДА 0
    | ИНАЧЕ ЕСТЬNULL(ДвиженияДенежныхСредствОстатки.СуммаОстаток,0)
    | КОНЕЦ) КАК СуммаОстаток,
```
---
| КОГДА ДвиженияДенежныхСредствОстатки.СуммаОстаток = NULL

Сравнивать с Null через "=" нельзя. Нужно так:

| КОГДА ДвиженияДенежныхСредствОстатки.СуммаОстаток Есть NULL

На ИТС есть "очень хорошее" описание почему так:
https://its.1c.ru/db/metod8dev/content/2512/hdoc