Имя: Пароль:
1C
1С v8
СКД. Целочисленное деление. Реально?
0 ilpar
 
03.09.12
12:21
интересует момент, для отчета.

Нужно:
10/3 = 3
1 Heckfy
 
03.09.12
12:22
Цел(<Число>) Не оно?
2 ilpar
 
03.09.12
12:23
в запросе не катит на СКД
3 MaxisUssr
 
03.09.12
12:23
(0)
Используй вычисляемые поля в СКД
4 KAO111
 
03.09.12
12:25
В запросе

выразить(10/3 как число(5,0))
5 KAO111
 
03.09.12
12:25
для отчета лучше формат
6 Axel2009
 
03.09.12
12:28
(4) выразить(10/3-0.5 как число(5,0))
7 Axel2009
 
03.09.12
12:29
выразить((10-0.5)/3 как число(5,0))
8 ilpar
 
03.09.12
12:37
Не катит
Выбрать выразить(11/3 как число(5,0)) = 4
9 ilpar
 
03.09.12
12:37
а должно быть Выбрать выразить(11/3 как число(5,0)) = 3
10 Ахиллес
 
03.09.12
12:41
(11-(11%3))/3 Так?
11 Cube
 
03.09.12
12:41
(8) Тебе же сказали, Выбрать выразить((11/3)-0.5 как число(5,0)) = 4
12 Cube
 
03.09.12
12:42
+(11) т.е. = 3))
13 ilpar
 
03.09.12
12:43
спасибо, не понял сразу :)
14 ilpar
 
03.09.12
12:46
Выбрать выразить(0-0.5 как число(5,0))
15 ilpar
 
03.09.12
12:46
но это уже детали :)
16 ilpar
 
03.09.12
12:46
Выбрать выразить(0-0.5 как число(5,0)) = -1
17 Zmich
 
03.09.12
12:48
(16). Всё верно, так и должно быть. Целая часть от (-0.5) - это (-1).
18 Cube
 
03.09.12
12:48
(16) Выбор Когда ... Тогда ... Иначе ... Конец
19 mozzga
 
03.09.12
12:49
просто в оформлении поля формат, число 0 знаков после запятой, если только считать ничего больше не надо
20 Reset
 
03.09.12
12:51
(16)
выразить((&Делимое/&Делитель)-(выбор когда &Делимое>0 тогда 0.5 когда &Делимое=0 тогда 0 иначе -0.5 конец) как число(5,0))
21 Reset
 
03.09.12
12:51
(20) бррр
22 Zmich
 
03.09.12
12:52
(20). Неправильно, если и Делимое, и Делитель < 0
23 Reset
 
03.09.12
12:53
(22) Согласен
выразить((&Делимое/&Делитель)-(выбор когда &Делимое*&Делитель>0 тогда 0.5 когда &Делимое*&Делитель=0 тогда 0 иначе -0.5 конец) как число(5,0))
24 Reset
 
03.09.12
12:56
или без умножения
выразить((&Делимое/&Делитель)-(выбор когда &Делимое>0 И &Делитель>0 ИЛИ &Делимое<0 И &Делитель<0 тогда 0.5 когда &Делимое=0 тогда 0 иначе -0.5 конец) как число(5,0))

жесть имхо
25 Ахиллес
 
03.09.12
13:01
чем (10) не устраивает?
26 Eugene555
 
03.09.12
13:14
выбор когда выразить(м как число(10,0)) >м тогда  выразить(м как число(10,0))-1 иначе м конец
27 Eugene555
 
03.09.12
13:15
точнее так: выбор когда выразить(м как число(10,0)) >м тогда  выразить(м как число(10,0))-1 иначе выразить(м как число(10,0)) конец
28 Axel2009
 
03.09.12
13:56
тогда уж так
выразить((10+0.5)/3 как число(5,0))-1
29 vmv
 
03.09.12
14:01
решиния 2

1. в запросе(выражении СКД) Выразиить(...тра ля ля), как было указано
2. в выражении СКД использовать нечто МойОбщийМодуль.Форматирование(Значение, ФорматнаяСтрока, СтруктураПрочихПараметров)

думаю мысль ясна, остальные варианты от лукавого или просто вода.
30 НЕА123
 
03.09.12
14:12
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), СЕКУНДА, &Делимое / &Делитель), СЕКУНДА)
31 Reset
 
03.09.12
14:20
(30) На отрицательных числах не будет работать :(
Частично можно наладить, проставив 1999 год. тогда будет работать для диапазона -1999*секундВГоде ... + 1999*секундВГоде
32 Staffa
 
03.09.12
14:51
а не проще сделать функцию в общем модуле, которая обычными средствами языка будет делать деление и возвращать результат в СКД?
33 Axel2009
 
03.09.12
14:53
(32) проще то оно проще, но по времени накладнее на порядочек минимум
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.