|
Как представить числовое выражение в виде строки в запросе | ☑ | ||
---|---|---|---|---|
0
Lepochkin
01.09.11
✎
11:38
|
ВЫРАЗИТЬ(ВложенныйЗапрос.КоличествоМесяцев КАК строка) ругается на несовместимые типы, если писать "как число", то все ок
Подскажи ка правильно сделать? |
|||
1
Ненавижу 1С
гуру
01.09.11
✎
11:40
|
(0) а зачем?
|
|||
2
Wobland
01.09.11
✎
11:41
|
выбор когда количество=1 тогда "адын" иначе...
|
|||
3
lxs
01.09.11
✎
11:41
|
(1) +1
|
|||
4
Irbis
01.09.11
✎
11:42
|
Поищи по форуму преобразование типов в запросе
|
|||
5
Господин ПЖ
01.09.11
✎
11:42
|
(0) правильно - никак
|
|||
6
mzelensky
01.09.11
✎
11:43
|
(2) и так от минус бесконечности до плюс бесконечности :)
|
|||
7
mzelensky
01.09.11
✎
11:44
|
(1) (3) сам порой сталкивался - иногда НАДО!
|
|||
8
Ненавижу 1С
гуру
01.09.11
✎
11:44
|
(7) ну давай, рассказывай, делись уже
|
|||
9
lxs
01.09.11
✎
11:46
|
||||
10
lxs
01.09.11
✎
11:46
|
Научитесь поиском пользоваться
|
|||
11
Lepochkin
01.09.11
✎
11:49
|
(9)А читать уметь не надо??? Написано же в (0) Как ЧИСЛО работает, нужно Как СТРОКА
|
|||
12
Lepochkin
01.09.11
✎
11:49
|
(7)Как победил???
|
|||
13
Wobland
01.09.11
✎
11:50
|
(11) ВЫРАЗИТЬ(<Число> КАК ЧИСЛО)?
|
|||
14
catena
01.09.11
✎
11:51
|
//Функция создает выражения для представления числа в виде строки в запросе.
Функция ВЗапросеИзЧислаСтроку(ИмяПоля,ДлинаЦел,ДлинаДробь,ЛидирующийСимвол="") Экспорт Запрос = Новый Запрос("ВЫБРАТЬ ВЫРАЗИТЬ(0.5 КАК ЧИСЛО (15,0)) КАК Проверка"); РЗ = Запрос.Выполнить().Выбрать(); РЗ.Следующий(); ЗапросОкругляетПоАрифметическимПравилам = Рз.Проверка = 1; Ткст = "ВЫБОР КОГДА "+ИмяПоля+"<0 Тогда ""-"" ИНАЧЕ """" КОНЕЦ " + Символы.ПС; ИмяПоляАбс = " ВЫБОР КОГДА "+ИмяПоля+"<0 ТОГДА -"+ИмяПоля+" ИНАЧЕ "+ИмяПоля+" КОНЕЦ "; Парам = Pow(10,ДлинаЦел-1); Для Бегим = 1 По ДлинаЦел+ДлинаДробь цикл Ткст = Ткст + ?(Бегим = ДлинаЦел+1,"+"".""+","+"); Ткст = Ткст + " ВЫБОР " + Символы.ПС + ?(Бегим<ДлинаЦел," КОГДА " + ИмяПоляАбс + " < " +Формат(Парам,"ЧРД=.; ЧГ=")+" ТОГДА """+ЛидирующийСимвол+""" " + Символы.ПС,""); Для Цифирка = 0 По 9 Цикл Ткст = Ткст + " КОГДА "+ИмяПоляАбс+"-"+Формат(Парам*10,"ЧРД=.; ЧГ=")+"*ВЫРАЗИТЬ(("+ИмяПоляАбс+?(ЗапросОкругляетПоАрифметическимПравилам,"-"+Формат(Парам*5,"ЧРД=.; ЧГ="),"")+")/"+Формат(Парам*10,"ЧРД=.; ЧГ=")+" КАК ЧИСЛО(15, 0))"+" >= "+Формат((9-Цифирка)*Парам,"ЧН=0; ЧРД=.; ЧГ=")+" ТОГДА """+Формат(9-Цифирка,"ЧН=0; ЧРД=.; ЧГ=")+""" " + Символы.ПС; КонецЦикла; Ткст = Ткст + " ИНАЧЕ ""0"""+Символы.ПС+" Конец " + Символы.ПС; Парам = Парам/10; КонецЦикла; Возврат Ткст; //Запрос = Новый Запрос(" ВЫБРАТЬ ""Полученная строка : ""+"+ВЗапросеИзЧислаСтроку(ИмяПоля2,ДлинаЦел2,ДлинаДробь2)+" КАК Стр "); //РЗ = Запрос.Выполнить().Выбрать(); //пока РЗ.Следующий() цикл // Сообщить(РЗ.СТр); //конеццикла; КонецФункции (c)Не помню, где-то тут брала. |
|||
15
lxs
01.09.11
✎
11:53
|
(11) Вот и почитай! Написано, что нет в запросе преобразования типов
|
|||
16
Wobland
01.09.11
✎
11:54
|
(15) Приведение типа в языке запросов © СП
|
|||
17
mzelensky
01.09.11
✎
12:19
|
(12) нормально никак, приходилось через задницу обрабатывать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |