Имя: Пароль:
1C
1С v8
мистика деления на 0
,
0 Stim
 
15.03.13
09:56
Код:
Результат =?(число1 =0,0,число2/число1)

Почему когда число1=0 1с выдает ошибку деления на ноль?
При том, что когда отладка останавливается по ошибке, отладчик рассчитывает строку равной 0
1 XLife
 
15.03.13
09:57
д.о.?
2 pessok
 
15.03.13
09:57
(0) потому что у тебя там "0"
3 1Сергей
 
15.03.13
09:57
Какую строку? нифига не понял
4 pessok
 
15.03.13
09:58
+(1) а в условии 0
5 НЕА123
 
15.03.13
09:59
Результат =?(0+число1 =0,0,число2/число1)
6 wade25
 
15.03.13
10:00
Потому, что в условии буква "О"?)
7 butterbean
 
15.03.13
10:00
у меня работает
8 Evpatiy
 
15.03.13
10:00
Преобразование отрабатывает
9 pessok
 
15.03.13
10:01
Результат =?(Число(число1)=0,0,число2/число1)
10 Лефмихалыч
 
15.03.13
10:02
(0) не бывает числа 01. 01 - это строка
11 Evpatiy
 
15.03.13
10:03
+(8) У тебя Число1 не число, а, например, строка "0". Тогда условие проходит, при делении отрабатыает преобразование и получаешь деление на ноль
12 Stim
 
15.03.13
10:04
(11) условие возвращает ложь в отладчике
13 Aprobator
 
15.03.13
10:04
(0) в отладчике есть очень полезная функция - там тип значения переменной можно посмотреть.
14 Лефмихалыч
 
15.03.13
10:04
только что проверил

а = 3/01;
а = 3/"01";
а = "3"/"01";

отлично компилится и выполняется без ошибок.
15 Evpatiy
 
15.03.13
10:05
(12) Потому что строка "0" не равна число 0
16 Stim
 
15.03.13
10:05
(10) бред написал, это причем здесь
17 vde69
 
15.03.13
10:06
Результат = ?(ЗначениеЗаполнено(Число1),число2/число1,0)


дело в приведение типов
18 Evpatiy
 
15.03.13
10:06
(14) Там в топике не "...Число1 = 01..", а "...Число1 = 0     1с....." :)
19 Aprobator
 
15.03.13
10:06
(12) потому что строка не равно число. А у тебя число1 = "0". Проверить отладчиком элементарно. Потому условие уходит на число2/число1, где "0" успешно преобразуется в  0 и в результате - оишбка.
20 Stim
 
15.03.13
10:12
Проблема разрешилась сама собой. Без изменения кода и данных 1с перестало выдавать ошибку деления на ноль.. сегодня походу пятница
21 Aprobator
 
15.03.13
10:15
по другому сел за комп, не иначе )))
22 Stim
 
15.03.13
10:19
(21) новое кресло поставили,мб в этом причина?)
23 pessok
 
15.03.13
10:23
просто явное приведение типов в другом месте написал пятничный барабашка :)