|
Как в запросе отобрать число как строку? | ☑ | ||
---|---|---|---|---|
0
Михаил Анянов
24.12.09
✎
09:43
|
Как реализовать к примеру если какое-то поле числовое, преобразовать его сразу в строку?
|
|||
1
Михаил Анянов
24.12.09
✎
09:44
|
В запросе, чтобы далее можно было использовать оператор ПОДОБНО
|
|||
2
Михаил Анянов
24.12.09
✎
09:45
|
Нужно что-то вроде Строка(Таблица.Поле1)
|
|||
3
mikecool
24.12.09
✎
09:51
|
(0) в запросе - никак
|
|||
4
mikecool
24.12.09
✎
09:51
|
+3 или извращаться с выбором, варианты уже были
|
|||
5
Defender aka LINN
24.12.09
✎
09:52
|
Еще один...
|
|||
6
mikecool
24.12.09
✎
09:52
|
(5) ты уж поконткретнее :)
|
|||
7
EasyRider
24.12.09
✎
09:54
|
Представление(Таблица.Поле1)
|
|||
8
mikecool
24.12.09
✎
09:58
|
(7) а к представлению можно функции применять?
|
|||
9
anatoly
24.12.09
✎
09:59
|
можно ВЫРАЗИТЬ КАК СТРОКА
(синтаксис точно не помню, посмотри в помощнике) |
|||
10
EasyRider
24.12.09
✎
09:59
|
(8)да
(9)Выразить не пойдет - это для составного типа |
|||
11
Широкий
24.12.09
✎
10:01
|
(10) Не обязательно для составного.. но согласен что не подойдет
|
|||
12
EasyRider
24.12.09
✎
10:02
|
(11)А для какого еще,кроме составного?
|
|||
13
mikecool
24.12.09
✎
10:03
|
(10) чета не работает
выбрать Представление(123) где Представление(123) подобно &Параметр грит неверные параметры Подобно где <<>>Представление(123) подобно &Параметр |
|||
14
mikecool
24.12.09
✎
10:03
|
+13 научи , как
|
|||
15
EasyRider
24.12.09
✎
10:06
|
(13)В условия нельзя.Я думал ты имеешь ввиду под функцией например: Представление(124/2)
|
|||
16
mikecool
24.12.09
✎
10:08
|
(15) дык, топик читай внимательно и не сей несбыточную мечту
|
|||
17
EasyRider
24.12.09
✎
10:12
|
(16)Хочет числовое поле преобразовать в строку.Я так и понял
|
|||
18
EasyRider
24.12.09
✎
10:13
|
а...про подобно не дочитал...
|
|||
19
also
24.12.09
✎
10:15
|
(16)
Функция ВЗапросеИзЧислаСтроку(ИмяПоля,ДлинаЦел,ДлинаДробь,ЛидирующийСимвол="") Запрос = Новый Запрос("ВЫБРАТЬ ВЫРАЗИТЬ(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)+" КАК Стр "); РЗ = Запрос.Выполнить().Выбрать(); пока РЗ.Следующий() цикл Сообщить(РЗ.СТр); конеццикла; взято отсюда v8: Сложение в запросе ВложенныЗапрос.Цена + "*". Может я хочу невозможного? |
|||
20
EasyRider
24.12.09
✎
10:17
|
(16)Вот так кстати работает:
ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как код, Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура где код подобно &Код |
|||
21
Defender aka LINN
24.12.09
✎
10:23
|
(20) Уж сколько раз твердили дя... миру. Представление() в запросе - НЕ СТРОКА. НЕ СТРОКА, хоть как ты не пыжься и не тычь мне в результаты запроса. НЕ СТРОКА.
|
|||
22
EasyRider
24.12.09
✎
10:24
|
(21)Чего раскричался?А что там?
|
|||
23
EasyRider
24.12.09
✎
10:25
|
+(22)Запрос-то так работает?
|
|||
24
Defender aka LINN
24.12.09
✎
10:27
|
(22) Представление. В документации все написано, но никто ж себя не утруждает чтением.
|
|||
25
EasyRider
24.12.09
✎
10:29
|
(24)Но запрос из (20) работает?Сравнивать со строкой дает?
|
|||
26
MoneG
24.12.09
✎
10:31
|
(25) дает, дает.. РезультатЗапроса дает, а не сам запрос.
|
|||
27
EasyRider
24.12.09
✎
10:31
|
(24)Функция ПРЕДСТАВЛЕНИЕ
Данная функция предназначена для получения строкового представления значения произвольного типа. Параметр функции – выражение любого типа. Возвращаемое значение – представление значения, тип Строка. Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ. |
|||
28
НЕА123
24.12.09
✎
10:34
|
странно, но (20) работает, и сравнивать дает... хоть и не строка.
|
|||
29
Рэйв
24.12.09
✎
10:35
|
(27)Последний абзац прочитай внимательно.
подобно- это как раз функция |
|||
30
DUDE
24.12.09
✎
10:35
|
выдержка из описания встроенного языка, раздел выражения языка запросов:
"Функция ПРЕДСТАВЛЕНИЕ Данная функция предназначена для получения строкового представления значения произвольного типа. Параметр функции – выражение любого типа. Возвращаемое значение – представление значения, тип Строка. Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ ". |
|||
31
EasyRider
24.12.09
✎
10:36
|
(29)И? Функция...с типом Строка
|
|||
32
mikecool
24.12.09
✎
10:36
|
(28) потому что Номенклатура.Код тип строка?
|
|||
33
EasyRider
24.12.09
✎
10:36
|
(32)Нет
|
|||
34
НЕА123
24.12.09
✎
10:38
|
(29)
ты спутал... это оператор. |
|||
35
MoneG
24.12.09
✎
10:38
|
(33) что "нет"? Ты псевдоним адекватный (уникальный) задай.
|
|||
36
EasyRider
24.12.09
✎
10:39
|
(35)Жесть...
|
|||
37
mikecool
24.12.09
✎
10:39
|
(33) что "Нет"? в 20 идет в подобно не Представление, а Номенклатура.Код
|
|||
38
Михаил Анянов
24.12.09
✎
10:39
|
(5) кто тут?
|
|||
39
EasyRider
24.12.09
✎
10:39
|
(35) ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(Номенклатура.КодЧ) как код, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где код подобно &Код |
|||
40
DUDE
24.12.09
✎
10:40
|
(29) +1. Но с другой стороны и в (24) ответ не особо корректный, думаю, на вопрос "А что там?" стоило ответить не тупо "Представление", а более понятно и развернута - "само по себе это - функция, а результат ее выполнения - строка".
|
|||
41
MoneG
24.12.09
✎
10:41
|
(39) чтобы ты понял, запусти вот это (ведь то же самое):
ВЫБРАТЬ ИСТИНА ИЗ Справочник.Номенклатура КАК Номенклатура где ПРЕДСТАВЛЕНИЕ(Номенклатура.КодЧ) подобно &Код |
|||
42
mikecool
24.12.09
✎
10:41
|
(39) нет такого поля КодЧ
|
|||
43
mikecool
24.12.09
✎
10:42
|
ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как кодЧ, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где кодЧ подобно &Код и так не находит поля КодЧ |
|||
44
EasyRider
24.12.09
✎
10:42
|
(35)Ах ты ж!Был неправ!Если псевдоним другой указаьб,то не работает...
|
|||
45
EasyRider
24.12.09
✎
10:42
|
(41)Да-да,понял
|
|||
46
MoneG
24.12.09
✎
10:43
|
(0) по теме: пока только 1 "действующий" вариант - (16)
добавлю еще v8: Дата в строку в запросе.. |
|||
47
НЕА123
24.12.09
✎
10:44
|
(35)+1
(37)+1 |
|||
48
Михаил Анянов
24.12.09
✎
10:44
|
Вобщем ПРЕДСТАВЛЕНИЕ - то что нужно мне было, спасибо огромное :)
|
|||
49
EasyRider
24.12.09
✎
10:45
|
Спорили,спорили,я наконец-то понял,что был неправ и на тебе...
|
|||
50
mikecool
24.12.09
✎
10:45
|
(48) и как ты решишь свою задачу?
|
|||
51
Рэйв
24.12.09
✎
10:48
|
(34)Почему ошибся? Функция. Возвращает значение булево
|
|||
52
DUDE
24.12.09
✎
10:51
|
(51) И по документации идет "Функция ПРЕДСТАВЛЕНИЕ блаблабла".
|
|||
53
Михаил Анянов
24.12.09
✎
10:54
|
Делаю
ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Номенклатура.Код) как кодЧ, Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура где кодЧ подобно &Код а он пишет что поле кодЧ не найдено :( |
|||
54
mikecool
24.12.09
✎
10:55
|
(53) прочитай уже всю ветку
|
|||
55
Рэйв
24.12.09
✎
10:55
|
(52)Я про ПОДОБНО :-)
|
|||
56
DUDE
24.12.09
✎
10:56
|
(55) эээмм тада ой :) прошу прощения)
|
|||
57
Rebelx
24.12.09
✎
10:58
|
||||
58
Михаил Анянов
24.12.09
✎
11:04
|
ВЫБРАТЬ
Обороты.Субконто1 КАК Подразделение, ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ КАК СтатьяЗатрат, СУММА(Обороты.СуммаОборотДт) КАК Сумма, Обороты.Период КАК Период, эсПорядокСтатейЗатрат.Порядок КАК Порядок ИЗ РегистрСведений.эсПорядокСтатейЗатрат КАК эсПорядокСтатейЗатрат ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты( , , Месяц, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщехозяйственныеРасходы), , , , ) КАК Обороты ПО (ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ = эсПорядокСтатейЗатрат.СЗ) СГРУППИРОВАТЬ ПО Обороты.Период, Обороты.Субконто1, эсПорядокСтатейЗатрат.Порядок, ВЫБОР КОГДА Обороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщепроизводственныеРасходы) ТОГДА Обороты.Субконто3 ИНАЧЕ Обороты.Субконто2 КОНЕЦ УПОРЯДОЧИТЬ ПО Порядок, СтатьяЗатрат, Период, Подразделение |
|||
59
НЕА123
24.12.09
✎
11:04
|
(51)
(52) в (29) речь идет про ПОДОБНО. ПОДОБНО - это логический оператор. |
|||
60
Михаил Анянов
24.12.09
✎
11:06
|
Вот мой "кривой" запрос, в справочнике просто несколько статей затрат с одним наименованием (ссылки разные), как мне отобрать (сгруппировать может) по наименованию именно
|
|||
61
НЕА123
24.12.09
✎
11:07
|
(59)+
хотя... какая разница... один крен с ПРЕДСТАВЛЕНИЕ() не работает. |
|||
62
Михаил Анянов
24.12.09
✎
11:07
|
Бухгалтерия кривая, подстраиваться приходится самому, бухгалтер ничего менять не хочет
|
|||
63
hhhh
24.12.09
✎
11:08
|
(62) а какая связь тут с числами? Наименование - это ведь строка.
|
|||
64
Михаил Анянов
24.12.09
✎
11:09
|
РегистрСведений.эсПорядокСтатейЗатрат - самодельный - ставлю соответствие статей затрат (реальных в базе) - их наименованию (нужно создать свою иерархию)
|
|||
65
Михаил Анянов
24.12.09
✎
11:12
|
Если я делаю в отборе везде субконто_.Наименование, соединение не работает :-/
|
|||
66
hhhh
24.12.09
✎
11:17
|
(65) но числа то там откуда взялись? Сделай везде строки.
|
|||
67
Михаил Анянов
24.12.09
✎
11:21
|
Простите, невыспался, сделал Наименование, вместо = в соединении прописал ПОДОБНО, запутался я уже просто
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |