Есть регистр ПродажиОбороты.

Формирую отчет с разделением продаж и возвратов.

Текст запроса:

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоПродажи,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаПродажи,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоВозврата,
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаВозврата
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
```

Создаю вычисляемое поле: ПроцентВозврата = 100*(КоличествоВозврата / КоличествоПродажи) и получаю деление на ноль.

Как избежать этого? Скриншот во вложении.
---
Решение: использовать агрегатную функцию СУММА() в запросе.

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ) КАК КоличествоПродажи,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ) КАК СуммаПродажи,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ) КАК КоличествоВозврата,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ) КАК СуммаВозврата
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}

    СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор
```
---
Выбор Когда Не КоличествоПродажи = 0 Тогда 100*(КоличествоВозврата / КоличествоПродажи) Иначе 0 Конец
---
Решение: использовать агрегатную функцию СУММА() в запросе.

```1c
    ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ) КАК КоличествоПродажи,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
    ТОГДА ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ) КАК СуммаПродажи,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Кол
    ИНАЧЕ 0
    КОНЕЦ) КАК КоличествоВозврата,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
    ТОГДА -ПродажиОбороты.Сумма
    ИНАЧЕ 0
    КОНЕЦ) КАК СуммаВозврата
    ИЗ
    РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
    ГДЕ
    ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
    {ГДЕ
    (ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
    (ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}

    СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.Договор,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Регистратор
```