Архивы: numeric

Как преобразовать число в строку в языке запросов 1С

Ранее я уже встречался с проблемой перевода даты в строку в языке запросов 1С. Сегодня при написании запроса в 1C столкнулся с проблемой выражения числа как строки. На просторах сети Интернет я нашел следующее решение, которое сохраню здесь (думаю, что тоже не раз пригодится мне в будущем):

ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 100 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 1000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 10 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 100 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + Объект.Число - (ВЫРАЗИТЬ(Объект.Число / 10 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ "."
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.01 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 0.1 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.001 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 0.01 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.0001 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 0.001 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.00001 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 0.0001 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)
+ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(Объект.Число / 0.000001 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(Объект.Число / 0.00001 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)