Как в запросе число преобразовать к строке? #597104


#0 by RomaH
Надо получить  из двух чисел 2012 и 2015 строку типа "2012 - 2015"
#1 by andrewks
выразить
#2 by rsv
Никак. Фукнция Выразить не преобразует числа к строке.
#3 by rsv
+ И обратно.
#4 by Песец
#5 by andrewks
+ сорри, попутал. представление, конечно
#6 by Песец
Число будет преобразовано в строку, но как сделать конкатенацию? В языке запросов есть только арифметический оператор "+".
#7 by Ненавижу 1С
в языке запросов есть конкатенация, а вот преобразования как раз не будет
#8 by Wobland
конкатенацию нужно делать потом. кто скажет, зачем это именно в запросе?
#9 by andrewks
не, ну, если очень надо именно в запросе, то можно сделать и там конкатенацию. через небольшой изврат
#10 by КМ155
через 250 строк Выбор ?
#11 by Песец
Научи, если не влом: из (выбрать 2012 как _2012, 2015 как _2015 ) как числа
#12 by andrewks
ща, с банком закончу, и покажу
#13 by Песец
ПРЕДСТАВЛЕНИЕ преобразует число в строку. Функция ПРЕДСТАВЛЕНИЕ Данная функция предназначена для получения строкового представления значения произвольного типа. (с) ртфм
#14 by andrewks
проблема в том, что это преобразование уже идёт на стороне клиента, и в самом запросе  ничего не меняет
#15 by luckyluke
можно получить строку через соединение с ВТ, в которой соответствие числа и строки.
#16 by Песец
Ниче не понял. А представление например документа? Или представление числа в строку работает по-другому?     Для получения строки есть функция представление. Требуется соединить две строки. Ждем  andrewks.
#17 by luckyluke
серьёзно? прям вот так можно сделать конкатенацию двух представлений?
#18 by Maxus43
представления не сложить, ну не работает так
#19 by luckyluke
Во, нашел, вот так я делал:    1,    "1" ВЫБРАТЬ    2,    "2" ВЫБРАТЬ    3,    "3" ВЫБРАТЬ    4,    "4" ВЫБРАТЬ    5,    "5" ВЫБРАТЬ    6,    "6" ВЫБРАТЬ    7,    "7" ВЫБРАТЬ    8,    "8" ВЫБРАТЬ    9,    "9"
#20 by Maxus43
ПРЕДСТАВЛЕНИЕ(Ссылка) + "АмамбаХарамМамбаРум" - ошибку даст
#21 by НЕА123
подробнее можно?
#22 by Песец
В и утверждают обратное. Сделай вот это:    числа._2012 КАК ПервоеЧисло,
#23 by asady
90) нафуя? ясно же что это нужно уже при выводе результата ну так и делай это в процедуре вывода результата
#24 by Maxus43
тоже самое утверждают. Что не взлетит
#25 by Maxus43
+ не взлетит , и ВЫРАЗИТЬ(Число Как Строка)
#26 by Песец
Взлетит представление.
#27 by andrewks
не взлетит
#28 by Песец
Преобразование числа в строку я имел в виду.
#29 by andrewks
ну вот, например, простое преобразование целых положительных чисел в строку: (заранее прошу прощения, если кому-то режет глаз английский синтаксис, но мне так удобней)
#30 by Maxus43
>. У вас нет ошибки?
#31 by StanleyMarsh
- true ну вы (почти все) ребята сочинять))
#32 by Песец
А зачем это? в строку преобразовать не проблема:
#33 by НЕА123
де факто - ПЯТНИЦА!
#34 by andrewks
короче, прими за аксиому, что в запросе у тебя происходит СтрЗаменить(ТекстЗапроса,"представление","")
#35 by Песец
Т. е., если у меня в запросе, возвращающем стотыщь элементов справочника написано "представление(СсылкаНаЭлементСправочника)", то запрос вытащит ссылки, а потом 1С будет стотыщь раз дергать базу чтобы получить представление (а оно может быть наименованием или кодом)???
#36 by andrewks
вот так получается для периодов:
#37 by Maxus43
да если ты просто в запросе выбереш Док.Ссылка - при выводе система полезет за представлением. Док.Ссылка, представление(Док.Ссылка) - теже йайца только в профиль
#38 by andrewks
можно даже так:
#39 by andrewks
а куда автор пропал?
#40 by Serg_1960
А зачем нам автор? :) Тема вечная как... даже не знаю как что :))
#41 by Serg_1960
#42 by andrewks
там текст запроса динамический. это неспортивно. а у меня статический
#43 by rsv
Вообщето если замахнулись на CAST , так неплохо бы допиливать его до конца. До полноценного CAST и прочее.
#44 by andrewks
это ж делать надо. проще сказать: не допускается, и всё.
#45 by rsv
Проще сказать : лабайте все на клиенте через Пока Выбрать Если :)
#46 by Песец
Спасибо, правильно ли я понял: Недокументированная фича оператора "+", в запросе работает как конкатенация при условии, что операнды явно заданы строкой в тексте запроса.
#47 by andrewks
ну почему же недокументированная? Бинарными (арифметическими) операциями являются операции: + | – | * | /   Бинарные операции используются для типов ЧИСЛО. Для типа СТРОКА может использоваться бинарная операция +. © справка 1С
#48 by НЕА123
не совсем. проще принять .
#49 by MikleV
заюзать СКД и не ипать себе моск
#50 by Песец
Функция ПРЕДСТАВЛЕНИЕ Данная функция предназначена для получения строкового представления значения произвольного типа. Параметр функции – выражение любого типа. Возвращаемое значение – представление значения, тип СТРОКА. Результат работы функции не может быть использован внутри других функций, за исключением функции ПРЕДСТАВЛЕНИЕ. (с) Наверное, проще принять что в запросах есть некий тип "строковое представление" :)
#51 by НЕА123
правильно в . т.к. посмотрел запрос SQL в техжурнале. Для справочника это Наименование(в моем случае). Для документа это два поля Номер и Дата. т.е. следует, что строки-то и нет, она формируется потом. кстати, почему-то делается соединение "сам с собой" по ссылке.
#52 by НЕА123
+ при Представление еще и ссылка присутствует.
#53 by Maxus43
>>почему-то делается соединение "сам с собой" по ссылке дык Ссылка.Поле - это уже неявное соединение
#54 by Песец
Получается, что запрос добавляет (в зависимости от настроек представления) необходимые дополнительные поля, а окончательно их собирает в строку РезультатЗапроса?
#55 by НЕА123
запрос с тремя полями Ссылка, Номер, Дата SELECT T1._IDRRef, T1._Number, T1._Date_Time FROM _Document296 T1 запрос с одним полем Представление(ссылка) SELECT T1._IDRRef, T2._Number, T2._Date_Time FROM _Document296 T1 LEFT OUTER JOIN _Document296 T2 почему так?
#56 by НЕА123
очень похоже на это.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С