8.х Проверка деления на ноль в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Alex_Staf, 1 май 2010.

  1. TopicStarter Overlay
    Alex_Staf
    Offline

    Alex_Staf

    Регистрация:
    8 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Добрый день, есть запрос, результат которого выводится в табличное поле.
    Код:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДатаНачала1", ДатаН1);
    Запрос.УстановитьПараметр("ДатаКонца1", КонецДня(ДатаК1));
    Запрос.УстановитьПараметр("ДатаНачала2", ДатаН2);	
    Запрос.УстановитьПараметр("ДатаКонца2", КонецДня(ДатаК2));
    Запрос.УстановитьПараметр("Группа", Группа);
    Запрос.Текст = "
    |ВЫБРАТЬ
    |ВЗ.Товар КАК Товар,
    |ВЗ.Магазин КАК Магазин,
    |СУММА(ВЗ.Сумма_Розница1) КАК Сумма_Розница1,
    |СУММА(ВЗ.Сумма_Закуп1) КАК Сумма_Закуп1,
    |СУММА(ВЗ.Сумма_Розница1)/СУММА(ВЗ.Сумма_Закуп1) КАК К1,
    |СУММА(ВЗ.Сумма_Розница2) КАК Сумма_Розница2,
    |СУММА(ВЗ.Сумма_Закуп2) КАК Сумма_Закуп2
    |ИЗ
    |(
    |ВЫБРАТЬ
    |ТоварГруппы.Ссылка КАК Товар,
    |ТоварКассаПродажаВозврат.Магазин КАК Магазин,	
    |СУММА(ТоварКассаПродажаВозврат.СуммаПродЦен) КАК Сумма_Розница1,
    |СУММА(ТоварКассаПродажаВозврат.СуммаУчетЦен) КАК Сумма_Закуп1,
    |СУММА(0)КАК Сумма_Розница2, 
    |СУММА(0)КАК Сумма_Закуп2
    |ИЗ
    |(ВЫБРАТЬ
    |Товар.Ссылка КАК Ссылка
    |ИЗ Справочник.Товары КАК Товар
    |ГДЕ 
    |Товар.Родитель В ИЕРАРХИИ(&Группа)
    |И
    |(Товар.ЭтоГруппа=Ложь)) КАК ТоварГруппы
    
    |Полное СОЕДИНЕНИЕ
    |РегистрНакопления.КассаПродажаВозврат КАК ТоварКассаПродажаВозврат
    |
    |ПО
    |ТоварГруппы.Ссылка = ТоварКассаПродажаВозврат.Товар
    |ГДЕ
    |ТоварКассаПродажаВозврат.Период МЕЖДУ &ДатаНачала1 И &ДатаКонца1 И 
    |ТоварКассаПродажаВозврат.Товар В ИЕРАРХИИ(&Группа)
    
    |СГРУППИРОВАТЬ ПО
    |ТоварКассаПродажаВозврат.Магазин,
    |ТоварГруппы.Ссылка
    
    |ОБЪЕДИНИТЬ
    </span>
    |ВЫБРАТЬ
    |ТоварГруппы.Ссылка,
    |ТоварКассаПродажаВозврат.Магазин,	
    |СУММА(0)КАК Сумма_Розница1, 
    |СУММА(0)КАК Сумма_Закуп1,
    |СУММА(ТоварКассаПродажаВозврат.СуммаПродЦен) КАК Сумма_Розница2,
    |СУММА(ТоварКассаПродажаВозврат.СуммаУчетЦен) КАК Сумма_Закуп2
    |ИЗ
    |(ВЫБРАТЬ
    |Товар.Ссылка КАК Ссылка
    |ИЗ Справочник.Товары КАК Товар
    |ГДЕ 
    |Товар.Родитель В ИЕРАРХИИ(&Группа)
    |И
    |(Товар.ЭтоГруппа=Ложь)) КАК ТоварГруппы
    
    |Полное СОЕДИНЕНИЕ
    |РегистрНакопления.КассаПродажаВозврат КАК ТоварКассаПродажаВозврат
    |
    |ПО
    |ТоварГруппы.Ссылка = ТоварКассаПродажаВозврат.Товар
    |ГДЕ
    |ТоварКассаПродажаВозврат.Период МЕЖДУ &ДатаНачала2 И &ДатаКонца2 И 
    |ТоварКассаПродажаВозврат.Товар В ИЕРАРХИИ(&Группа)
    
    |СГРУППИРОВАТЬ ПО
    |ТоварКассаПродажаВозврат.Магазин,
    |ТоварГруппы.Ссылка) КАК ВЗ
    
    |СГРУППИРОВАТЬ ПО
    |ВЗ.Магазин,
    |ВЗ.Товар
    
    |ИТОГИ
    |СУММА(Сумма_Розница1),
    |СУММА(Сумма_Закуп1),
    |СУММА(К1),
    |СУММА(Сумма_Розница2),
    |СУММА(Сумма_Закуп2)
    |ПО 
    |ВЗ.Магазин,
    |ВЗ.Товар   ТОЛЬКО ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ";
    Результат = Запрос.<span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/выполнить')">Выполнить();
    Выборка = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ТП.Значение = Выборка;;
    ЭлементыФормы.ТП.СоздатьКолонки();
    
    Подскажите, как сделать в запросе проверку деления на ноль
    Код:
    |СУММА(ВЗ.Сумма_Розница1)/СУММА(ВЗ.Сумма_Закуп1) КАК К1
    
    Спасибо.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Тему должна была быть размещена в другом разделе - переместил
    2. Нечто, типа:
    Код:
    ВЫБОР КОГДА СУММА(ВЗ.Сумма_Закуп1) = 0 ТОГДА 
    0 
    ИНАЧЕ 
    СУММА(ВЗ.Сумма_Розница1)/СУММА(ВЗ.Сумма_Закуп1) 
    КОНЕЦ КАК к1
    

Поделиться этой страницей