Имя: Пароль:
1C
1С v8
Получить целую часть в запросе.
0 Sova112
 
27.06.11
14:46
Можно ли получить целую часть в запросе.
1 dimoff
 
27.06.11
14:47
ВЫРАЗИТЬ(Поле КАК ЧИСЛО(15, 0))
2 PR
 
27.06.11
14:47
(1) Неправильно.
(0) В поиск.
3 marty0701
 
27.06.11
14:47
CAST ?
4 dimoff
 
27.06.11
14:48
(2) Аргументация.
5 Широкий
 
27.06.11
14:49
(4) это округление
6 dimoff
 
27.06.11
14:50
(5) То есть 120,78 вернет при таком подходе 121?
7 Wobland
 
27.06.11
14:52
(6) а проверить? да
8 73
 
27.06.11
14:52
(6)Да.
9 MikleV
 
27.06.11
14:52
можно просто арифметически отсечь
10 PR
 
27.06.11
14:52
(4) Целая часть от 1.9 = 1, а выразить даст 2.
11 Ненавижу 1С
 
гуру
27.06.11
14:53
ВЫРАЗИТЬ(Поле-0.5 КАК ЧИСЛО(15, 0))
12 dimoff
 
27.06.11
14:54
(7) Зачем? Я верю людям на слово.
13 Широкий
 
27.06.11
14:55
ВЫБРАТЬ
   ВЫБОР
       КОГДА &ТекЧисло > 0
           ТОГДА ВЫРАЗИТЬ(&ТекЧисло - 0.5 КАК ЧИСЛО(15, 0))
       ИНАЧЕ ВЫРАЗИТЬ(&ТекЧисло + 0.5 КАК ЧИСЛО(15, 0))
   КОНЕЦ КАК Поле1
14 73
 
27.06.11
15:01
(13) Это смотря что для отрицательных целой частью считать...
15 Ненавижу 1С
 
гуру
27.06.11
15:01
(13) это целая часть "по 1с", математическое определение в (11)
16 rs_trade
 
27.06.11
15:05
меня все время удивляет отсутствие в языке запросов 1С элементарных функций. только для работы с датами более-менее функционал есть.
17 lxs
 
27.06.11
15:07
(16) Чему удивляться? Давай перегоним туда этот функционал. насколько ты замедлишь работы запроса? Нахрена?
18 lxs
 
27.06.11
15:07
*работу
19 Ненавижу 1С
 
гуру
27.06.11
15:10
(17) проблема думаю больше в совместимости с разными СУБД, а так ведь многое есть в них и нормально
20 rs_trade
 
27.06.11
15:12
(17) да ну! каким образом например LEN ( string_expression )
замедлит работу запроса? замедляют работу не оптимальные индексы и в целом не оптимальное составление запроса. А пост обработка еще больше замедляет выполнение кода, чем обработка этих функций на сервере субд
21 rs_trade
 
27.06.11
15:13
(19) в каких субд нет % или LEN или CHARINDEX ? речь идет именно о таких вот элементарных функциях. для даты запилили же более-менее приличный функционал
22 Ненавижу 1С
 
гуру
27.06.11
15:17
(21) да в принципе согласен, наверное им слом заморачиваться просто
единственное они по разному называются на разных СУБД, например ЕСТЬNULL тот же
23 strange2007
 
27.06.11
15:18
(16) Правильно говоришь! Даже на асме вставки не сделать и через порты не обратиться к дискам. Вообще ни куда не годится
24 Ненавижу 1С
 
гуру
27.06.11
15:21
(23) тебе совсем про другое, зачем передергиваешь?
25 Steel_Wheel
 
27.06.11
15:21
(0) Вычти дробную часть числа
26 dimoff
 
27.06.11
15:25
(25) А как он получит дробную часть числа?
27 Широкий
 
27.06.11
15:25
(14)(15) Вы правы.
28 rs_trade
 
27.06.11
15:26
(26) вычтя целую часть числа. очевидно же! а как получить целую часть числа, мы уже знаем.
29 Tapo4ek
 
27.06.11
15:39
КОГДА ВЫРАЗИТЬ(Поле КАК ЧИСЛО(15, 0)) > Поле ТОГДА
ВЫРАЗИТЬ(Поле КАК ЧИСЛО(15, 0)) - 1
ИНАЧЕ ВЫРАЗИТЬ(Поле КАК ЧИСЛО(15, 0)) КОНЕЦ
30 dimoff
 
27.06.11
15:43
(28) Точно!