Вычисляемое поле ПроцентВозврата в отчете на СКД
Есть регистр ПродажиОбороты.
Формирую отчет с разделением продаж и возвратов.
Текст запроса:
Создаю вычисляемое поле: ПроцентВозврата = 100*(КоличествоВозврата / КоличествоПродажи) и получаю деление на ноль.
Как избежать этого? Скриншот во вложении.
Формирую отчет с разделением продаж и возвратов.
Текст запроса:
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Договор,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Регистратор,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ КАК КоличествоПродажи,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ КАК СуммаПродажи,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ КАК КоличествоВозврата,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ КАК СуммаВозврата
ИЗ
РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
ГДЕ
ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
{ГДЕ
(ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
(ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
ПоказатьСоздаю вычисляемое поле: ПроцентВозврата = 100*(КоличествоВозврата / КоличествоПродажи) и получаю деление на ноль.
Как избежать этого? Скриншот во вложении.
Прикрепленные файлы:
Найденные решения
Решение: использовать агрегатную функцию СУММА() в запросе.
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Договор,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Регистратор,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоПродажи,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ) КАК СуммаПродажи,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоВозврата,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ) КАК СуммаВозврата
ИЗ
РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
ГДЕ
ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
{ГДЕ
(ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
(ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Контрагент,
ПродажиОбороты.Договор,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Регистратор
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Решение: использовать агрегатную функцию СУММА() в запросе.
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Договор,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Регистратор,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоПродажи,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ОтгрузкаПокупателю)
ТОГДА ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ) КАК СуммаПродажи,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Кол
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоВозврата,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.Регистратор) = ТИП(Документ.ВозвратОтПокупателя)
ТОГДА -ПродажиОбороты.Сумма
ИНАЧЕ 0
КОНЕЦ) КАК СуммаВозврата
ИЗ
РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
ГДЕ
ПродажиОбороты.Номенклатура.ТипНоменклатурыБухгалтерии = &ТипНоменклатурыБухгалтерии
{ГДЕ
(ПродажиОбороты.Регистратор.Дата >= &НачалоПериода),
(ПродажиОбороты.Регистратор.Дата <= &КонецПериода)}
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Контрагент,
ПродажиОбороты.Договор,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Регистратор
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот