Имя: Пароль:
1C
1С v8
Запрос. Убрать лишние нули.
, ,
0 polkin
 
28.11.14
14:33
Запросом вывожу цену номенклатуры.
Цена имеет формат 8-5  8 до запятой, 5 после.
Если цена 0,00125 - выглядит нормально.
если 15,00000 то 5 нулей напрягают.
Как их убрать запросом? Или есть более простой способ?
1 ДенисЧ
 
28.11.14
14:34
Запрос тебе отдаёт числа.
Нули появляются при выводе. Там и копай.
2 Defender aka LINN
 
28.11.14
14:34
Запрос получает ДАННЫЕ.
15,00000, 15.00, 15, 15-0 - это все ПРЕДСТАВЛЕНИЕ данных.
3 DCKiller
 
28.11.14
14:35
Цена номенклатуры 0,00125 рублей - это круто! Не в бюджетной организации работаешь?
4 zulu_mix
 
28.11.14
14:35
выбор когда цена > 1 тогда выразить(цена как число(8,2)) иначе...
5 polkin
 
28.11.14
14:36
(1) Как? Запрос выводит таблицу. Всю таблицу циклом лопатить?
6 beholder13
 
28.11.14
14:37
(0)
ВЫБОР
  КОГДА Цена >= 1
    ТОГДА ВЫРАЗИТЬ(Цена КАК ЧИСЛО(8,2))
  ИНАЧЕ Цена
КОНЕЦ
7 polkin
 
28.11.14
14:38
(4) а если 15,12500???
8 beholder13
 
28.11.14
14:38
(7) тогда отрежет
9 polkin
 
28.11.14
14:39
(8) Не катит.
10 zulu_mix
 
28.11.14
14:39
(9) тогда лопать все в цикле
11 beholder13
 
28.11.14
14:40
(7) Кодом на выходе в цикле обойти таблицу только и проверить дробную часть, через формат() уже вывести столько знаков, сколько у тебя самый правый в дробной части не ноль
12 Nenaviwu1c20
 
28.11.14
14:41
13 Nenaviwu1c20
 
28.11.14
14:41
И если целое тогда выражай как 8,8 иначе число.Ок?)))
14 Nenaviwu1c20
 
28.11.14
14:41
8,2 то есть
15 zulu_mix
 
28.11.14
14:42
хотя... можно через
выбор когла выразить как число (5,5) = выразить как число (4,4) тогда
выбор когда выразить как число (5,5) = выразить как число (3,3) тогда
....
16 beholder13
 
28.11.14
14:43
(15) х))) это уже шаманские пляски какие-то)
17 hhhh
 
28.11.14
14:43
(9) а если так ВЫРАЗИТЬ(Цена КАК Число)
18 GROOVY
 
28.11.14
14:43
А в таблице при выводе формат применить нельзя?
19 polkin
 
28.11.14
14:44
(11)Как. Если 5 знак после запятой =0, тогда его удалить?
20 polkin
 
28.11.14
14:46
(18) нет. формат разный
21 Defender aka LINN
 
28.11.14
14:46
(18) Тихо, не мешай людям :)
22 Defender aka LINN
 
28.11.14
14:46
(20) Серьезно, разный?
23 GROOVY
 
28.11.14
14:47
(22) Ты тожде не вмешивайся :)
24 polkin
 
28.11.14
14:48
(22)
Имею 3 цены
15,00000
15,12500
0,00125

хочу получить
15
15,125
0,00125
25 mooo
 
28.11.14
14:48
Выводи без формата, какие проблемы?
Формат(0,00125, "") = "0,00125"
Формат(15, "") = "15"
Ну или тоже самое
Строка(0,00125) = "0,00125"
Строка(15) = "15"
26 zulu_mix
 
28.11.14
14:50
(23) первый вопрос был "как убрать нули запросом". а дальше мы не читали
27 polkin
 
28.11.14
14:52
(25) не получится. 5 разных форматов и множество цен.
28 beholder13
 
28.11.14
15:05
(0) дружище, а ты вообще уверен, что не хочешь эти нули?)
29 beholder13
 
28.11.14
15:06
так-то в цикле можно не проверять, просто Строка(цена) отрежет тебе все, что правее есть лишнего, но вообще будет лестница так-то
30 RomanYS
 
28.11.14
15:07
пятнично
31 polkin
 
28.11.14
15:09
(28) Да напрягают....

Есть возможность получить конкретный разряд цифры?
Если  Строка(цена) пятый разряд =0, тогда формат числа (4,4)
32 beholder13
 
28.11.14
15:13
(31) 5разряд = ЦЕЛ((число*10000 - ЦЕЛ(число*10000))*10), это геморройный путь, на выходе просто в строку преобразуй, ну
33 beholder13
 
28.11.14
15:20
(24) это называется вывод вообще без формата, самый безобразный и бескультурный способ вывода, ну это так, к слову)
34 Drac0
 
28.11.14
15:23
(24) редкий случай, когда ничего делать не надо: что хочешь, то и получишь.
35 RomanYS
 
28.11.14
15:26
(34) ты лучше объясни ТС как ему не сделать, то что он сделал, чтобы не получить то, что он получить не хотел
36 polkin
 
28.11.14
15:28
(33) "вывод вообще без формата"

Спасибо, помогло.
37 beholder13
 
28.11.14
15:54
(36) кто бы мог подумать)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший