Имя: Пароль:
1C
1С v8
округлить до целого в запросе
0 gorilla
 
06.11.15
10:34
Добрый день.подскажите как в запросе  взять целое число без нулей  Единицы.Вес КАК Вес,
тоесть 10.000 сделать 10
1 Горогуля
 
06.11.15
10:35
выразить(ч-0.5 как число(10, 0))
2 Горогуля
 
06.11.15
10:35
так округлить или целую часть?
3 Fragster
 
гуру
06.11.15
10:36
есть мнение, что автор имеет ввиду формат числа при выводе
4 Fragster
 
гуру
06.11.15
10:37
Сообщить(10.0000 = 10)
5 gorilla
 
06.11.15
10:38
целую часть
6 Горогуля
 
06.11.15
10:38
8 Горогуля
 
06.11.15
10:49
(7) чтобы взять и НЗ.Загрузить() одним махом, например. да мало ли, какие у человека скрытые желания
9 hhhh
 
06.11.15
11:18
(5) в запросе такое не делается. Это делается уже при выводе результата запроса на форму.
10 Nuobu
 
06.11.15
11:19
(9) А если очень нужно?
11 Горогуля
 
06.11.15
11:20
(9) а если нет формы?
12 hhhh
 
06.11.15
11:46
форма всегда есть
13 Горогуля
 
06.11.15
11:48
(12) спасибо, буду знать
14 hhhh
 
06.11.15
11:49
(13) обращайтесь
15 Nuobu
 
06.11.15
11:51
(12) И не поспоришь.
16 Deon
 
06.11.15
12:03
Пошел искать форму регламентного задания. Найду, отпишусь.
17 lenochka-semicova
 
06.11.15
12:07
Примерно так:
    |                КОГДА (ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 0))) = (ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 3)))
    |                    ТОГДА ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 0))
    |                ИНАЧЕ ВЫБОР
    |                        КОГДА (ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 0))) * КомплектПокупки.Количество - ТоварыКоличество.Количество >= 0
    |                            ТОГДА (ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 0))) - 1
    |                        ИНАЧЕ ВЫРАЗИТЬ(ТоварыКоличество.Количество / КомплектПокупки.Количество КАК ЧИСЛО(15, 0))
    |                    КОНЕЦ
    |            КОНЕЦ
18 Ненавижу 1С
 
гуру
06.11.15
12:09
(17) тогда лучше (1)
19 lenochka-semicova
 
06.11.15
12:10
(1) просто округлит.
здесь берется целое.
20 Горогуля
 
06.11.15
12:11
(19) у тебя тоже окгрулить, а не возьмёт целое
21 Deon
 
06.11.15
12:13
(19) (1) возьмет целое, стопудово
22 lenochka-semicova
 
06.11.15
12:14
(20) Берем калькулятор и считаем.
Когда в результате будет отличаться от целого, тогда и будем что-то утверждать.
23 lenochka-semicova
 
06.11.15
12:15
(21) Я просто проверяла выгрузкой в ТЗ с доп. колонкой неокругленной и обходом с проверкой функцией Цел()
24 Горогуля
 
06.11.15
12:15
(22) хочешь сказать, выразить() не округляет?
25 lenochka-semicova
 
06.11.15
12:15
Массив данных брала, разумеется, очень большой.
Но вдруг (20) перельман в помощь
26 Ненавижу 1С
 
гуру
06.11.15
12:15
(22) в (1) точно целую часть берет
27 Ненавижу 1С
 
гуру
06.11.15
12:16
(20) у нее возьмет целое, но решение в (1) лаконичнее
28 Горогуля
 
06.11.15
12:17
(27) придираюсь. если уж леночка утверждает, что (1) округляет, значит округляет и (17) ;)
29 lenochka-semicova
 
06.11.15
12:18
ВЫБРАТЬ
1 КАК Цифра
ПОМЕСТИТЬ ТЗ

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
6

;
ВЫБРАТЬ ТЗ.Цифра/3, ВЫРАЗИТЬ(ТЗ.Цифра/3 КАК ЧИСЛО(10, 0)) Из ТЗ
30 lenochka-semicova
 
06.11.15
12:19
Какаой результат должен быть в строке 5, например?
31 Deon
 
06.11.15
12:20
(30) Пример из (1) переписан неправильно. Ты не учла -0.5
32 lenochka-semicova
 
06.11.15
12:23
Да. Согласна - работала с положительными

Вот для примера
ВЫБРАТЬ
    1 КАК Цифра
ПОМЕСТИТЬ ТЗ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    6
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТЗ.Цифра / 3 КАК Поле1,
    ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0)) КАК Поле2,
    ВЫБОР
        КОГДА (ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0))) = ТЗ.Цифра / 3
            ТОГДА ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0))
        ИНАЧЕ ВЫБОР
                КОГДА (ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0))) - ТЗ.Цифра / 3 >= 0
                    ТОГДА (ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0))) - 1
                ИНАЧЕ ВЫРАЗИТЬ(ТЗ.Цифра / 3 КАК ЧИСЛО(10, 0))
            КОНЕЦ
    КОНЕЦ КАК Поле3
ИЗ
    ТЗ КАК ТЗ
33 lenochka-semicova
 
06.11.15
12:23
Для отрицательных нужно еще условие
34 lenochka-semicova
 
06.11.15
12:23
Но мне уже лень писать. А работать будет совершенно точно
35 lenochka-semicova
 
06.11.15
12:23
А вам, мальчики, срочно на урок математики.
36 hhhh
 
06.11.15
12:24
(34) пример (1) работает и для отрицательных.
37 lenochka-semicova
 
06.11.15
12:27
(36) Убедили.
38 Timon1405
 
06.11.15
12:33
(36) для "-0.6" (1) дает "-1", а должно быть "-2"
(37) Рано же вы сдаетесь
39 Timon1405
 
06.11.15
12:41
(38) * Это если под "целым" считать ближайшее целое меньшее либо равное исходному.
В любом случае "Единицы.Вес КАК Вес" как бы намекает что спорить тут вообще говоря не о чем.
40 hhhh
 
06.11.15
12:41
(38) для "-0.6" должно быть "-2"

отсыпь.
41 Ненавижу 1С
 
гуру
06.11.15
12:48
в (1) ноль превращается в -1
42 Timon1405
 
06.11.15
12:54
(40) и правда, забористая у меня
http://www.wolframalpha.com/input/?i=integerpart(x)
43 lenochka-semicova
 
06.11.15
13:04
(38) Не вижу смысла разводить воду на киселе.
Пример писан. переписан.
а по (1) - да - даже перельман плачет, походу
44 Nuobu
 
06.11.15
13:05
(37) И правда рано сдаётесь.
Выразить(-1.1 - 0.5 КАК ЧИсло(15,0))
Даст -2
45 hhhh
 
06.11.15
13:05
(44) нет оно даст -1.
46 Nuobu
 
06.11.15
13:06
(45) Только что проверил  - дало -2
47 hhhh
 
06.11.15
13:06
(46) а нет, даст -2, но и должно дать -2, по условию задачи. Так что (37) сдалась не рано.
48 Горогуля
 
06.11.15
13:07
(43) у Перельмана в метаданных веса не включена галка "неотрицательное"
выразить(ч-0.4999 как число(10, 0))
49 Nuobu
 
06.11.15
13:07
по условию задачи

Целое без нулей от -1.1 = -1.
50 Ненавижу 1С
 
гуру
06.11.15
13:07
(1) дает неправильно для целых неположительных, как написано в (41)
51 Ненавижу 1С
 
гуру
06.11.15
13:08
(49) прочти, что такое целая часть
52 hhhh
 
06.11.15
13:09
(49) по определению, целое - это самое ближайшее меньшее, чем исходное. Так что -1 не подходит в любом случае. Оно больше.
53 Nuobu
 
06.11.15
13:10
(51) Сорри, мой протуп.
54 Drac0
 
06.11.15
13:12
(1) Для 1,5 вернет 1 вместо 2.
55 Drac0
 
06.11.15
13:13
(54) Пля, тему прочитал, а сам пост нет...
56 lenochka-semicova
 
06.11.15
14:01
(51) (53)
На всякий случай, чтобы тема не заглохла.
НУ давайте-ка посчитаем целое от -1.1
И на всякий случай в платформе 1С проверим.
57 lenochka-semicova
 
06.11.15
14:05
Ну и функция Int в калькуляторе виндовс тоже как бы намекает...
58 Nuobu
 
06.11.15
14:11
59 Deon
 
06.11.15
14:16
А Int в калькуляторе, и правда, просто отбрасывает дробную часть.
60 HalamBalam
 
06.11.15
14:19
Функция в (1) для положительных ч возвращает пол, а для отрицательных - потолок.
61 lenochka-semicova
 
06.11.15
14:20
(60) а для 0?
62 Nuobu
 
06.11.15
14:21
(60) Она для обоих случаев возвращает пол.
63 Горогуля
 
06.11.15
14:21
(60) что весьма согласуется с определением
(61) а для 0 есть (48)
64 lenochka-semicova
 
06.11.15
14:22
(58) Согласна. Все проверенные почему-то работают по принципу инт(-х) = -инт(х)
Пойду, уточню определение у матаноидов.
65 Горогуля
 
06.11.15
14:23
а если хотеть целое в понимании 1С (цел()), тогда надо смотреть в знак
66 lenochka-semicova
 
06.11.15
14:23
(63) А для 0.0001 Что есть?
67 Горогуля
 
06.11.15
14:24
(66) то же
68 Горогуля
 
06.11.15
14:24
(65) или в окр(ч)-ч=ч
69 lenochka-semicova
 
06.11.15
14:25
(68) А как же компактность?
70 Nuobu
 
06.11.15
14:25
(64) К матаноидам не надо ходить. А то (38) уже сходил.
71 Горогуля
 
06.11.15
14:25
(68) сторно. фигню сморозил
72 Горогуля
 
06.11.15
14:26
(69) а не получится
73 lenochka-semicova
 
06.11.15
14:33
Вот так всегда - когда у меня некомпактность, так это я виновата.

а как у других, так просто - не получится.

Все. Самоуничтожаюсь. Я устала. Я ухожу.
74 Nuobu
 
06.11.15
14:33
Женщины.
75 Горогуля
 
06.11.15
14:38
каждая женщина должна иметь скилл превращения мужиков в виноватых. вроде только сказали "тогда лучше (1)", а как-то некомфортно теперь стало ;)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.