Имя: Пароль:
1C
1С v8
Деление на 0 СКД
,
0 dd74
 
04.12.19
11:08
Добрый день, комрады. Столкнулся с ошибкой. Если Вычисляемое поле с запросом
ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
    КОГДА   СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
КОНЕЦ
Выдает Деление на 0. Понимаю что где в условии есть 0 но как исправить?
1 hhhh
 
04.12.19
11:11
(0) вставить проверку на 0 в выражение
2 Nikoss
 
04.12.19
11:12
Всмысле как? Искать где 0, далее обернуть это в условие
3 Borteg
 
04.12.19
11:15
(0) убрать = 0 в условиях
4 dka80
 
04.12.19
11:16
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <0 ТОГДА
5 NUser
 
04.12.19
11:17
В тот же ВЫБОР Когда обрамить:
ВЫБОР КОГДА ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив <> 0 Тогда
ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
    КОГДА   СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
КОНЕЦ
ИНАЧЕ
КОНЕЦ  

и.т.д
6 NUser
 
04.12.19
11:18
+(5) ИНАЧЕ 0
7 hhhh
 
04.12.19
11:19
(5) ЕСТЬNULL(КоличествоПродажа,0) <0 , равно 0 здесь не может
8 NUser
 
04.12.19
11:24
(6) у него >=0 стоит
9 dd74
 
04.12.19
11:27
(4) Также остается
10 hhhh
 
04.12.19
11:28
(8) КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА   у него

и дальше везде СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)
11 hhhh
 
04.12.19
11:31
(8) а, да, это в дугом месте
12 dka80
 
04.12.19
11:32
ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
КОГДА ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1) <> 0 Тогда
   Выбор
        Когда СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
конец
иначе
0
КОНЕЦ
13 dd74
 
04.12.19
11:33
(6) Тот же эффект к сожалению
14 dd74
 
04.12.19
11:34
(12) Тоже Деление на 0 выдает
15 dka80
 
04.12.19
11:35
ВЫБОР

Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0

КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <> 0 И СреднийЗапас<> 0Тогда
   Выбор
        Когда СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))

    Иначе
0
конец
иначе
0
КОНЕЦ
16 hhhh
 
04.12.19
11:38
(14)  ну так
ВЫБОР КОГДА

ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
    КОГДА   СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
КОНЕЦ = 0

ТОГДА 0
ИНАЧЕ

ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
    КОГДА   СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
КОНЕЦ

КОНЕЦ
17 dd74
 
04.12.19
11:49
(15) Вот этот вариант вроде бы подошел. Сейчас буду проверять данные. Огромное спасибо
18 mikecool
 
04.12.19
11:52
оО детский сад штаны на лямках....
19 dd74
 
04.12.19
14:02
Вариант теперь не показывает "Деление на 0" но цифры совсем не те выдает
20 dd74
 
04.12.19
14:03
(16) Ваш вариант не могу проверить ссылается на ошибку.
21 dd74
 
04.12.19
14:05
Пока такой вариант
ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <> 0 И СреднийЗапас <> 0 И (ВЫБОР КОГДА ЕСТЬNULL(КоличествоПродажа,0) >0 ТОГДА
ВНаличииКонечныйОстаток*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1) /КоличествоПродажа
    Иначе
0
КОНЕЦ) < Норматив Тогда
   Выбор
        Когда СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив >= 0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))

    Иначе
0
конец
иначе
0
КОНЕЦ
но он не считает вот это
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
а если добавляю его перед последним 0 КОНЕЦ от показывает "Деление на 0"
22 dd74
 
04.12.19
14:29
Ошибка в том что в первоначальной формуле СреднийЗапас может быть 0
ВЫБОР
Когда СреднийЗапас <> 0 И ВНаличииКонечныйОстаток/СреднийЗапас >2 ТОГДА
0
КОГДА ЕСТЬNULL(КоличествоПродажа,0) <=0 ТОГДА
Себестоимость
    КОГДА   СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0)*(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив>=0  ТОГДА
(СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1)  -Норматив)*Себестоимость/СреднийЗапас/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
    Иначе
0
КОНЕЦ
Поставив так не помогает
(ЕСТЬNULL(СреднийЗапас,0)/ЕСТЬNULL(КоличествоПродажа,0) *(РАЗНОСТЬДАТ(&НАчалоПериода, &КонецПериода, "ДЕНЬ") + 1))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс