Имя: Пароль:
1C
1С v8
Проблема с отрицательными числами в вычисляемом поле СКД
0 BKL
 
25.09.19
10:20
Здравствуйте.

Помогите разобраться.

В вычисляемом поле есть следующее условие:

Выбор Когда Сумма>0 Тогда Сумма/1000 Конец

Все работает. Когда меняешь условие на:

Выбор Когда Сумма<0 Тогда Сумма/1000 Конец

при выполнении отчета происходит исключение: "Неправильный параметр /". Если убрать деление и "1000" - все работает. Умножение, деление ставлю - вылезает исключение.
Не могу понять, в чем дело, подскажите, пожалуйста.
1 ДенисЧ
 
25.09.19
10:27
Выбор Когда Сумма<0 Тогда (Сумма/1000) ИНАЧЕ Сумма Конец
2 vicof
 
25.09.19
10:44
Скобки необязательно
3 toypaul
 
гуру
25.09.19
10:57
Сумма может быть NULL, а с ним ничего делать нельзя
4 toypaul
 
гуру
25.09.19
10:58
ну и конечно без ИНАЧЕ эта конструкция не понятно что может посчитать когда будет иначе
5 Кир Пластелинин
 
25.09.19
11:22
(3) эт почему это нельзя ничего делать с null? null/число - будет null
6 BKL
 
25.09.19
12:11
Я дико извиняюсь, но вопрос у меня был в том, что Сумма>0 работает без "иначе", а Сумма<0 вызывает исключение при выполнении. Причем если Выбор Когда Сумма<0 Тогда Сумма Конец - работает. А когда Выбор Когда Сумма<0 Тогда Сумма/1000 Конец - исключение при выполнении.
7 Tonik992
 
25.09.19
12:32
Нужен полный текст ошибки.
8 BKL
 
25.09.19
13:36
(7) При попытки сформировать отчет, окно:  " Неверные параметры "/" ". Сама сумма берется из запроса к регистру ХозрасчетныйДвиженияССубконто, поле "Сумма".
9 Кир Пластелинин
 
25.09.19
14:05
проблема в итоговом типе значения поля 'сумма'. там не число и не null. отсюда и ошибка выполнения
10 BKL
 
25.09.19
14:17
(9) Возможно и так. А положительные числа, тогда почему делятся без ошибки поле же одно и тоже? Пробовал Число(Сумма)/1000 - "Синтаксическая ошибка Число()". Как быть? И почему, если не использовать математические операции (/, *), отрицательные числа выводятся без проблем?
11 Кир Пластелинин
 
25.09.19
14:21
(10) еще раз. проверяйте тип у 'сумма'. по всем симптомам там не число. разве сложно вывести в отчет отдельную колонку 'сумма' и колонку, которая будет ТИПЗНАЧЕНИЯ('сумма')? без вычисляемого выражения естественно. в первую очередь исключите это.
12 BKL
 
25.09.19
14:24
Спасибо за совет, попробую.
13 vova1122
 
25.09.19
14:35
(10) ну или может через неразрывный пробел в значении "Сумма". Попробуйте убрать его
14 Кир Пластелинин
 
25.09.19
14:40
(13) это позволит разделить строку на число?)
15 vova1122
 
25.09.19
14:44
(14) Функция Число("1 000") не преобразует это значение в число. Поэтому как вариант исключить в этом значении неразрывный пробел
16 Кир Пластелинин
 
25.09.19
14:46
(15) это как гланды через одно место удалять
17 toypaul
 
гуру
25.09.19
15:14
интересно какой такой тип значения может быть меньше 0 ... и при этом не быть числом
18 toypaul
 
гуру
25.09.19
15:14
насчет null согласен, что делить можно.
19 toypaul
 
гуру
25.09.19
15:16
если только строка ... (что вообще бред). тогда получается что сравнивается как Сумма < "0"
20 Сияющий в темноте
 
25.09.19
15:33
null или неопределено меньше любого числа
вставьте первым условием проверку на null
21 Кир Пластелинин
 
25.09.19
16:10
(20) выражение null/1000 не вернет ошибку, а null. даже null/0 емнп не вернет ошибки, а все тот же null. вот неопределено может. не проверял
22 Сияющий в темноте
 
25.09.19
19:19
Если выразить(поле,"число")есть Null
23 BKL
 
26.09.19
10:05
(11) Попробовал. Тип значения и у положительного и у отрицательного числа - "Число". Но. если положительное в вычисляемом поле делить на 1000 - ОК, а отрицательное - ошибка. Ничего не понимаю. Проблему я решил, конечно, поле сумма попадает в СКД из модуля формы, я делю там на 1000, а в вычисляемом поле ставлю Выбор Когда Сумма<>0 Тогда Сумма Конец. Но это же изврат, должно работать в вычисляемом поле...
24 BKL
 
26.09.19
10:06
(17) В том и дело, проверил тип - "Число". Загадка, в общем.Настройки формата смотрел, вдруг неотрицательное стоИт или еще где-нибудь, ничего такого не нашел.
AdBlock убивает бесплатный контент. 1Сергей