Имя: Пароль:
1C
1С v8
Ошибка исполнения отчета, деление на 0
,
0 СэдКС
 
22.11.13
07:04
Доброе утро! При выполнении отчета вылетает следующая ошибка:

Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 10.0: Обнаружена ошибка: деление на ноль.
HRESULT=80040E14, SQLSrvr: SQLSTATE=22012, state=1, Severity=10, native=8134, line=1

Формирую отчет за период по дате док-та. Когда делаю отбор не по дате, а по док-ту регистратору, отчет формируется. В локальной базе отчет за период формируется отлично, за любой период (выгрузка раб. базы была примерно месяц назад). В рабочей же за эти же периоды не хочет.

В запросе отчета есть только деление на кол-во реализ. товаров, которое не может

быть 0. В чем может быть ошибка отчета?
1 shuhard
 
22.11.13
07:05
(0)[ В чем может быть ошибка отчета?]
в деление на нулевое количество в реализации
2 Wobland
 
22.11.13
07:05
не может быть - это значит, что есть выбор когда?
3 СэдКС
 
22.11.13
07:07
(2) в запросе есть выбор когда
4 Рэйв
 
22.11.13
07:08
(3)..Который относится совсем не к количеству?
5 Cube
 
22.11.13
07:08
(0) Так добавь проверку
Выбор Когда Количество = 0 Тогда 0 Иначе ... Конец

И прими это за правило. Ведь программист должен сделать не такую программу, которая работает без ошибок, а такую, которая работает при любом количестве ошибок.
6 СэдКС
 
22.11.13
07:09
ВЫБОР
КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000007"
ТОГДА ЕСТЬNULL(Продажи.Стоимость / Продажи.Количество * 100 / 112 - ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ ЕСТЬNULL(Продажи.Стоимость / Продажи.Количество - ЦеныНоменклатурыСрезПоследних.Цена, 0)
КОНЕЦ
7 Рэйв
 
22.11.13
07:09
намекаю...
ЕСТЬNULL(Продажи.Стоимость / Продажи.Количество * 100 / 112 - ЦеныНоменклатурыСрезПоследних.Цена, 0)
8 Wobland
 
22.11.13
07:09
(5) программа, написанная без ошибок является ошибкой
9 Рэйв
 
22.11.13
07:09
Есть NULL....
10 Wobland
 
22.11.13
07:10
(6) вот тебе и ноль, двоечница
11 Cube
 
22.11.13
07:10
(6) Делай так

ВЫБОР
КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000007"
ТОГДА Выбор Когда ЕСТЬNULL(Продажи.Количество, 0) = 0 Тогда 0 Иначе ЕСТЬNULL(Продажи.Стоимость, 0) / ЕСТЬNULL(Продажи.Количество, 0) * 100 / 112 - ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) Конец
ИНАЧЕ ...
КОНЕЦ
12 Рэйв
 
22.11.13
07:17
(11)Иначе 1
А то еще полгода будет думать:-)
13 Cube
 
22.11.13
07:19
(12) Тогда уж
ИНАЧЕ "Упс..."
:)
14 СэдКС
 
22.11.13
07:20
(10) а ну-ка не ругаться на меня с утра!)
(11) спасибо, добрый человек :)
15 Cube
 
22.11.13
07:20
+(13) А, я тебя не так понял... Ты про троеточие?)))
16 Рэйв
 
22.11.13
07:21
(12)А как потом она твой упс будет к какому-нибудь количеству прибавлять или цену вычислять?:-)
17 Wobland
 
22.11.13
07:21
(14) все девушки как девушки. красятся, ставят фотки в профиль.. только ты какая-то неправильная
18 Cube
 
22.11.13
07:22
(17) +100!)) Пора бы уж))
19 СэдКС
 
22.11.13
07:42
(17) кто сказал, что я не крашусь? Я сижу накрашенная, а фотки у меня в соц сетях размещены. Всё отлично со мной)
20 Wobland
 
22.11.13
07:49
(19) требуем сатисфакции