Имя: Пароль:
1C
1С v8
Запрос 1С 8 выдает ошибку SQL деление на ноль
0 1CForEver
 
04.01.17
12:05
Вем Здрасте! Помогите найти деление на ноль, вот запрос:

    Запрос = Новый Запрос;
    
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    РеализацияТоваровУслугТовары.НомерСтроки КАК POSITIONNUMBER,
    |    РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК DESCRIPTION,
    |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
    |    РеализацияТоваровУслугТовары.Упаковка КАК Упаковка,
    |    ВЫБОР
    |        КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |            ТОГДА РеализацияТоваровУслугТовары.Количество / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Количество * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)
    |    КОНЕЦ КАК DELIVEREDQUANTITY,
    |    ВЫБОР
    |        КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |            ТОГДА РеализацияТоваровУслугТовары.Количество / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Количество * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)
    |    КОНЕЦ КАК INVOICEDQUANTITY,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслугТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
    |            ТОГДА РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения.МеждународноеСокращение
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Упаковка.МеждународноеСокращение
    |    КОНЕЦ КАК INVOICEUNIT,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
    |            ТОГДА ВЫБОР
    |                    КОГДА РеализацияТоваровУслугТовары.Количество = 0
    |                        ТОГДА ВЫРАЗИТЬ(0 КАК ЧИСЛО(15, 2))
    |                    ИНАЧЕ ВЫБОР
    |                            КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |                                ТОГДА ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Сумма - РеализацияТоваровУслугТовары.СуммаНДС) / (РеализацияТоваровУслугТовары.Количество / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                            ИНАЧЕ ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Сумма - РеализацияТоваровУслугТовары.СуммаНДС) / (РеализацияТоваровУслугТовары.Количество * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                        КОНЕЦ
    |                КОНЕЦ
    |        ИНАЧЕ ВЫБОР
    |                КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |                    ТОГДА ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Цена * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                ИНАЧЕ ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Цена / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |            КОНЕЦ
    |    КОНЕЦ КАК UNITPRICE,
    |    ВЫБОР
    |        КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
    |            ТОГДА ВЫБОР
    |                    КОГДА РеализацияТоваровУслугТовары.Количество = 0
    |                        ТОГДА ВЫРАЗИТЬ(0 КАК ЧИСЛО(15, 2))
    |                    ИНАЧЕ ВЫБОР
    |                            КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |                                ТОГДА ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС) / (РеализацияТоваровУслугТовары.Количество / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                            ИНАЧЕ ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС) / (РеализацияТоваровУслугТовары.Количество * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                        КОНЕЦ
    |                КОНЕЦ
    |        ИНАЧЕ ВЫБОР
    |                КОГДА ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1) < 1
    |                    ТОГДА ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Цена / ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |                ИНАЧЕ ВЫРАЗИТЬ((РеализацияТоваровУслугТовары.Цена * ЕСТЬNULL(РеализацияТоваровУслугТовары.Упаковка.Числитель, 1)) КАК ЧИСЛО(15, 2))
    |            КОНЕЦ
    |    КОНЕЦ КАК GROSSPRICE,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслугТовары.Ссылка.ЦенаВключаетНДС
    |            ТОГДА РеализацияТоваровУслугТовары.Сумма - РеализацияТоваровУслугТовары.СуммаНДС
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Сумма
    |    КОНЕЦ КАК AMOUNT,
    |    203 КАК AMOUNTTYPE,
    |    7 КАК FUNCTION,
    |    ""VAT"" КАК TAXTYPECODE,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = &СтавкаНДС18
    |            ТОГДА 18
    |        ИНАЧЕ ВЫБОР
    |                КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = &СтавкаНДС10
    |                    ТОГДА 10
    |                ИНАЧЕ 0
    |            КОНЕЦ
    |    КОНЕЦ КАК TAXRATE,
    |    РеализацияТоваровУслугТовары.СуммаНДС КАК TAXAMOUNT,
    |    ""S"" КАК CATEGORY
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка
    |";
    
    Запрос.УстановитьПараметр("Ссылка",ЭтотОбъект.Объект.Реализация.Ссылка);
    Запрос.УстановитьПараметр("СтавкаНДС18",Перечисления.СтавкиНДС.НДС18);
    Запрос.УстановитьПараметр("СтавкаНДС10",Перечисления.СтавкиНДС.НДС10);
1 mehfk
 
04.01.17
12:08
Сколько платят за решение вопроса?
2 Фрэнки
 
04.01.17
12:10
в запросе нет хватает проверок на ноль.
ЕСТЬNULL - это не та проверка, которая нужна
3 1CForEver
 
04.01.17
12:11
(2) Спасибо
4 Волшебник
 
модератор
04.01.17
12:15
(0) Классный ник
5 NicaAlexa
 
04.01.17
19:07
Мне понравился тоже, 1С навсегда)
6 Помогите
 
04.01.17
22:47
Да, хороший ник. Мне тоже нравится.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.