Добрый день! Поджскажите пожалуйста как в отчете СКД прописать если строка пустая то неделать расчет по этой строке.

```1c
    ВЫБОР
    КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
    ТОГДА 0
    ИНАЧЕ "расчет"
    КОНЕЦ
```

Скрин выложил - как убрать расчет напротив строки пустой, чтоб она тоже пустая была?
---
Запрос нужно смотреть, чтобы понять что там может быть в "СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам".

Но если ещё включить в условие проверку на 0(ноль) и пустую строку, то точно, исключит:)

```1c
    ВЫБОР
    КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = ""
    ТОГДА 0
    ИНАЧЕ "расчет"
    КОНЕЦ
```
---
ИЛИ очень часто приводит к не оптимальному плану запроса. Когда записей миллиарды - это сразу ощутимо.

Посему лучше взять за правило заменять ИЛИ в запросе на более "приятную" СУБД конструкцию.

для ВЫБОР на

```1c
    Истина В (УсловиеИЛИ_1,... УсловиеИЛИ_N)
```

для ГДЕ на

```1c
    ВЫБОР 1 В (
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_1
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_2
    ......
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_N)
```

такие конструкции более "понятны" и СУБД и человеку.
А от скопление ИЛИ только рябь в глазах и тормоза.
---
не используйте ИЛИ в запросах

в вашем случае лучше так

```1c
    ВЫБРАТЬ
    СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам КАК ПФРНаДоплатуШахтерам,
    ВЫБОР
    КОГДА ИСТИНА В (СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = ")
    ТОГДА 0
    ИНАЧЕ "Расчет"
    КОНЕЦ КАК Доплата
    ИЗ
    СтраховыеВзносыПоФизическимЛицам КАК СтраховыеВзносыПоФизическимЛицам
```
---
ВЫБОР КОГДА ИСТИНА В (СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0, СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = "") ТОГДА 0 ИНАЧЕ "Расчет"

почему неиспользовать?,да у вас код тоже работает
---
ИЛИ очень часто приводит к не оптимальному плану запроса. Когда записей миллиарды - это сразу ощутимо.

Посему лучше взять за правило заменять ИЛИ в запросе на более "приятную" СУБД конструкцию.

для ВЫБОР на

```1c
    Истина В (УсловиеИЛИ_1,... УсловиеИЛИ_N)
```

для ГДЕ на

```1c
    ВЫБОР 1 В (
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_1
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_2
    ......
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1 ГДЕ УсловиеИЛИ_N)
```

такие конструкции более "понятны" и СУБД и человеку.
А от скопление ИЛИ только рябь в глазах и тормоза.
---
Запрос нужно смотреть, чтобы понять что там может быть в "СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам".

Но если ещё включить в условие проверку на 0(ноль) и пустую строку, то точно, исключит:)

```1c
    ВЫБОР
    КОГДА СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = НЕОПРЕДЕЛЕНО
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам ЕСТЬ NULL
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = 0
    ИЛИ СтраховыеВзносыПоФизическимЛицам.ПФРНаДоплатуШахтерам = ""
    ТОГДА 0
    ИНАЧЕ "расчет"
    КОНЕЦ
```
---
спасибо да помогло надо было все вырианты использовать походу:)
---
кстати заодно спрошу, можно как нибудь где колонка доплата шахтерам прописать название колонки "Доплата шахтерам 6%" цифры в название колонки он недает писать()
---
Можно. На закладке "Настройка" правой кнопкой мыши по выбранному полю - установить загловок
---
нашел тут сам
---
Скорее всего, условий на ноль и NULL достаточно