Имя: Пароль:
1C
 
как в запросе получить целое чило из дробного?
0 krava_vlad
 
07.11.08
13:34
ОстаткиНоменклатурыОстатки.КоличествоОстаток / НоменклатураНабор.Количество  - мне нужно получить только целое число без округления
1 and2
 
07.11.08
13:36
ВЫРАЗИТЬ(<Выражение> КАК <Тип>)
2 Helna
 
07.11.08
13:36
Окр(<Число>, <Разрядность>, <Режим округления>)
главное, правильный режим поставь
3 krava_vlad
 
07.11.08
13:39
(2) А в запросе можно использовать?
4 krava_vlad
 
07.11.08
13:39
(1) а как насчет целой части
5 and2
 
07.11.08
13:40
(3) а ты попробуй
6 and2
 
07.11.08
13:40
ВЫРАЗИТЬ((твоеЧисло-0,5) КАК Число(15,0))
7 Sadovnikov
 
07.11.08
13:41
(1) Посмотри, что выдаст
Select Cast(1.5 As Число(10,0))
8 krava_vlad
 
07.11.08
13:41
(3) такой функции нету в языке запросов :)
  и пробуй тоже результатов не дает
9 krava_vlad
 
07.11.08
13:42
(6) спасибо щас попробую
10 krava_vlad
 
07.11.08
16:57
А в системе задается способ округления?
11 krava_vlad
 
07.11.08
17:10
+(10) Можно задать??? Скажите пожалуйста
12 and2
 
07.11.08
17:12
(10) ???
в числовом реквизите в каждом есть
13 Krom
 
07.11.08
17:12
(11), округление оно и есть округление
14 Serg_1960
 
07.11.08
17:14
В запросе ВЫРАЗИТЬ() округляет по математическому принципу и управлять округлением (имхо) нельзя
15 krava_vlad
 
07.11.08
17:16
А если задать типа Окр(4.5) Что выдаст система по умолчанию?
16 krava_vlad
 
07.11.08
17:17
(14) А математический как округляет? Скажите пожалуйста.
17 relbler
 
07.11.08
17:24
Если число из 9 цифр
то по идее умножение этого чила на 1000000000 и потом делния на 1000000000
должно откинуть дробную часть,
но надо пробывать
18 Serg_1960
 
07.11.08
17:31
(15) Это что, шутка? :(
Окр (Round)
Синтаксис:
Окр(<Число>, <Разрядность>, <Режим округления>)
Параметры:
<Число> (обязательный)
Тип: Число. Исходное число.
<Разрядность> (необязательный)
Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов.
Параметр обязательный, если указан параметр <Режим округления>.
Значение по умолчанию: 0
<Режим округления> (необязательный)
Тип: РежимОкругления. Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2.
Значение по умолчанию: Окр15как20
19 Serg_1960
 
07.11.08
17:40
Если послушать 1С, то она скажет что Окр(1.5) это будет 2 :))

Запрос = Новый Запрос("ВЫБРАТЬ ВЫРАЗИТЬ(1.5 КАК Число(15,0)) КАК Итог");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(Выборка.Итог); // в окне сообщения будет указано "2"
20 relbler
 
07.11.08
17:50
А если так
Запрос = Новый Запрос("

ВЫБРАТЬ
ВЫБОР
КОГДА (ВЫРАЗИТЬ(Х КАК Число(15,0))-Х)>0
ТОГДА ВЫРАЗИТЬ(Х КАК Число(15,0))
ИНАЧЕ ВЫРАЗИТЬ(Х-0,5 КАК Число(15,0))
КОНЕЦ КАК Итог");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(Выборка.Итог);
21 Serg_1960
 
07.11.08
17:53
(20) А Итог сообщить "слабо" было?
22 and2
 
07.11.08
17:58
(19) ему уже предлагали 0.5 отнимать. тогда "выразить" целую часть вернет
23 relbler
 
07.11.08
17:58
(21) Такой запрос работает , проверил
Запрос = Новый Запрос("

ВЫБРАТЬ
ВЫБОР  КОГДА (ВЫРАЗИТЬ(&Перем КАК Число(15,0))-&Перем)<0
ТОГДА ВЫРАЗИТЬ(&Перем КАК Число(15,0))
ИНАЧЕ ВЫРАЗИТЬ(&Перем-0.5 КАК Число(15,0))
КОНЕЦ  КАК Итог");


Итог как и просили = значение "Перем" без дробной части
24 Krom
 
07.11.08
17:59
раздули ветку, ответ в (6) дан
25 Serg_1960
 
07.11.08
18:05
Хотите посмеяться (всё-таки пятница!): вот Вам аналог Цел() в запросе

   Запрос = Новый Запрос("ВЫБРАТЬ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ), ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ), СЕКУНДА, &НашеЧисло), СЕКУНДА) КАК Итог");
   Запрос.УстановитьПараметр("ТекДата", ТекущаяДата());
   Запрос.УстановитьПараметр("НашеЧисло", 12345.678);
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Сообщить(Выборка.Итог); // в окне сообщения будет указано "12345"
26 Serg_1960
 
07.11.08
18:10
(24) Да, разумеется в (6) автору дан верный ответ по существу. А мы здесь так, просто... развлекаемся *:о)
27 krava_vlad
 
07.11.08
18:12
(24) не раздули, а разяснили
28 krava_vlad
 
07.11.08
18:13
Всем спасибо за ответы, есть чему учиться, а не "просто раздули"