Имя: Пароль:
1C
1С v8
Не пойму в чем ошибка в запросе?
,
0 Elf56
 
30.04.14
08:17
Всем доброго времени суток.

Имеется 1с 8.3 УТ 11 есть отчет построенные с помощью СКД.

Вот сам запрос, выдает ошибку "Деление на 0 значение типа Numeric" ошибка это появилась после добавление нового поля "ПроцентСкидки" если его убрать то ошибка не вылазиет.

ВЫБРАТЬ
    ЗаказКлиентаТовары.Ссылка.Партнер,
    ЗаказКлиентаТовары.Ссылка КАК Ссылка,
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.осиРМ,
    СУММА(ЗаказКлиентаТовары.СуммаСНДС) КАК СуммаСНДС,
    СУММА(ЗаказКлиентаТовары.СуммаРучнойСкидки) КАК СуммаРучнойСкидки,
    СУММА(ЗаказКлиентаТовары.СуммаАвтоматическойСкидки) КАК СуммаАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентРучнойСкидки
ПОМЕСТИТЬ Товары
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
    ЗаказКлиентаТовары.Ссылка.Проведен

СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Ссылка,
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.осиРМ,
    ЗаказКлиентаТовары.Ссылка.Партнер,
    ЗаказКлиентаТовары.ПроцентАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентРучнойСкидки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    осиОплатаВыручкаОбороты.Партнер КАК Партнер,
    осиОплатаВыручкаОбороты.Заказ КАК Заказ,
    (Товары.СуммаСНДС + Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС КАК ПрайсЦена,
    осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) КАК Скидка,
    осиОплатаВыручкаОбороты.СуммаОплатыОборот КАК СуммаСоСкидкой,
    осиОплатаВыручкаОбороты.Номенклатура,
    осиОплатаВыручкаОбороты.Заказ.осиНаправлениеДеятельности,
    осиОплатаВыручкаОбороты.РекламноеМесто,
    Товары.ПроцентРучнойСкидки,
    Товары.ПроцентАвтоматическойСкидки,

//Вот это самое поле

    ВЫБОР
        КОГДА Товары.ПроцентРучнойСкидки = 0
                И Товары.ПроцентАвтоматическойСкидки <> 0
            ТОГДА Товары.ПроцентАвтоматическойСкидки
        КОГДА Товары.ПроцентРучнойСкидки <> 0
                И Товары.ПроцентАвтоматическойСкидки = 0
            ТОГДА Товары.ПроцентРучнойСкидки
        КОГДА Товары.ПроцентРучнойСкидки <> 0
                И Товары.ПроцентАвтоматическойСкидки <> 0
            ТОГДА Товары.ПроцентРучнойСкидки + Товары.ПроцентАвтоматическойСкидки
    КОНЕЦ КАК ПроцентСкидки

//-------------------

ИЗ
    РегистрНакопления.осиОплатаВыручка.Обороты(, , Авто, Заказ.осиВидСчета <> ЗНАЧЕНИЕ(Перечисление.осиВидыСчетов.ДокументальныйСчет) {(Партнер = &Партнер), (Заказ.осиНаправлениеДеятельности = &НаправлениеДеятельности)}) КАК осиОплатаВыручкаОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Товары КАК Товары
        ПО осиОплатаВыручкаОбороты.Заказ = Товары.Ссылка
            И осиОплатаВыручкаОбороты.Номенклатура = Товары.Номенклатура
            И осиОплатаВыручкаОбороты.РекламноеМесто = Товары.осиРМ
ГДЕ
    ВЫБОР
            КОГДА &ВключатьРК
                ТОГДА &ВключатьРК
            ИНАЧЕ осиОплатаВыручкаОбороты.Заказ.Партнер = &РКЛГ
                        И осиОплатаВыручкаОбороты.Заказ.Организация <> &ЛГОфис
                    ИЛИ осиОплатаВыручкаОбороты.Заказ.Партнер <> &РКЛГ
        КОНЕЦ


Подскажите что это за ошибка такая? Всем заранее спасибо
1 1dvd
 
30.04.14
08:19
где-то Товары.СуммаСНДС = 0 или (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) = 0
2 golden-pack
 
30.04.14
08:20
В запросе нет деления для этого поля, но например -вычисляемое поле СКД может делить. В том место просто проверку написать
3 Elf56
 
30.04.14
08:24
(1)

(Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) = 0

так это просто операция сложения причем тут деление на 0

(2) вот именно как это место найти
4 shuhard
 
30.04.14
08:26
(3)[ это появилась после добавление нового поля "ПроцентСкидки" ]
какая буква не понятна ?
5 Wobland
 
30.04.14
08:28
(3) а можно ты нам сам поищешь все деления и доложишь в компактном и понятном виде?
6 Elf56
 
30.04.14
08:34
странно это все просто вывожу поле

Товары.ПроцентРучнойСкидки,

и выводает именно на этом поле такую ошибку ну так типо у него просто число. И по идее уже должен иметь какое то значение в запросе деление на 0 нету че то не пойму как вывести это поле?
7 Wobland
 
30.04.14
08:36
(6) нужно больше знаков препинания или хотя бы смысла
8 1dvd
 
30.04.14
08:38
(3) математику в школе прогуливал?

осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) КАК Скидка
9 Wobland
 
30.04.14
08:40
>ВЫБОР КОГДА &ВключатьРК ТОГДА &ВключатьРК

кэп?
10 Адинэснег
 
30.04.14
08:40
локализаторы 146%
11 Elf56
 
30.04.14
08:41
(8) я просто с СКД особо не дружу. Что в этой строке надо поменять чтобы было условие проверки на 0 ?
12 Адинэснег
 
30.04.14
08:41
>>РК
13 1dvd
 
30.04.14
08:41
(11) А с запросами ты дружишь?
14 Wobland
 
30.04.14
08:41
(11) представь, что СКД у тебя отобрали
15 Адинэснег
 
30.04.14
08:42
Выбор Когда 0 Тогда 0
Иначе ТвояФормула
КонецВыбора
16 Elf56
 
30.04.14
08:44
Но а как это вставить в строку

осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) КАК Скидка

Если поле Товары.СуммаСНДС уже берется из документа. Как тогда в формулу еще одну формулу вставить?

И почему не выдает там ошибку если нет для выводя поля Товары.ПроцентРучнойСкидки, т.е. нет его вобще в запросе как добавляешь в запрос так выдает ошибку мистика какая то
17 1dvd
 
30.04.14
08:48

ВЫБРАТЬ
    осиОплатаВыручкаОбороты.Партнер КАК Партнер,
    осиОплатаВыручкаОбороты.Заказ КАК Заказ,
    ВЫБОР
        КОГДА Товары.СуммаСНДС = 0 ТОГДА 0
        ИНАЧЕ (Товары.СуммаСНДС + Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС
    КОНЕЦ КАК ПрайсЦена,
    ВЫБОР
        КОГДА Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) = 0 ТОГДА 0
        ИНАЧЕ осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки)
    КОНЕЦ КАК Скидка,
    осиОплатаВыручкаОбороты.СуммаОплатыОборот КАК СуммаСоСкидкой,
    осиОплатаВыручкаОбороты.Номенклатура,
    осиОплатаВыручкаОбороты.Заказ.осиНаправлениеДеятельности,
    осиОплатаВыручкаОбороты.РекламноеМесто,
    Товары.ПроцентРучнойСкидки,
    Товары.ПроцентАвтоматическойСкидки,
18 Wobland
 
30.04.14
08:50
а с чего вообще сумма товара умножается на сумму сумм скидок?
19 hhhh
 
30.04.14
09:26
(18) неправильно в (17) переписали. Она не умножается.
20 Wobland
 
30.04.14
09:28
ну вот с (0): Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки)
21 hhhh
 
30.04.14
09:36
(20) нет.

/ Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки)

Товары.СуммаСНДС в знаменателе, а скидки в числителе.
22 Wobland
 
30.04.14
09:40
нуда
Закон Брукера: Даже маленькая практика стоит большой теории.