|
СокрЛП в Запросе | ☑ | ||
---|---|---|---|---|
0
neo1109
14.12.11
✎
07:38
|
Собственно сабж.
Можно ли как то "откусить" в строковом реквизите пробелы справа? Вдогонку задача 2: а потом получить после этого самый правый символ... |
|||
1
zak555
14.12.11
✎
07:39
|
зачем строки в запросе ?
|
|||
2
neo1109
14.12.11
✎
07:40
|
Нууу, например то же наименование - чем не строка?
|
|||
3
Aleksey
14.12.11
✎
07:41
|
ВЫРАЗИТЬ ?
|
|||
4
zak555
14.12.11
✎
07:41
|
выводить куда будешь ? в макет ? там и откусывай =)
|
|||
5
Aleksey
14.12.11
✎
07:44
|
Начиная с 8.2.9
Операция языка запросов ВЫРАЗИТЬ возвращает строку переменной длины (без концевых пробелов) при приведении к типу СТРОКА. В режиме совместимости с версией 8.1 поведение не изменилось. |
|||
6
neo1109
14.12.11
✎
07:51
|
Спасибо, Aleksey! )
Идем дальше ;) А как быть с задачей 2? |
|||
7
Паучог
14.12.11
✎
07:52
|
(5) А разве ВЫРАЗИТЬ применимо не только к полям составных типов?
|
|||
8
mirosh
14.12.11
✎
07:53
|
(7) чой-то?
|
|||
9
Wobland
14.12.11
✎
07:54
|
(7) истина
(6) обрабатывай уже после. зачем тебе это в запросе? |
|||
10
neo1109
14.12.11
✎
07:58
|
(9) см. задачу 2.
нужен самый правый символ далее в запросе причем не пробел. |
|||
11
Wobland
14.12.11
✎
08:01
|
(10) посмотрел. ответь на (9)
|
|||
12
mirosh
14.12.11
✎
08:01
|
(7) (9)
да вы чего, парни? с помощью ВЫРАЗИТЬ, я, например, могу округлить число до целой части. И это не составной тип :). |
|||
13
Wobland
14.12.11
✎
08:03
|
(12) я не против, чего ты на меня "вы чего"? ;)
|
|||
14
neo1109
14.12.11
✎
08:15
|
(11)
самый правый символ нужен далее в запросе |
|||
15
Wobland
14.12.11
✎
08:16
|
(14) не верю ;)
|
|||
16
neo1109
14.12.11
✎
08:16
|
(15) а если на секунду поверить? ;)
|
|||
17
dk
14.12.11
✎
08:19
|
меня тож бесит, что таких простых функций по работе с текстом в запросах 8-ки нету
|
|||
18
Wobland
14.12.11
✎
08:19
|
(16) запроса не вижу, верить не стану. строки - вообще ветреная штука. сегодня один символ справа, завтра другой. имхо проблема в пути решения, которым ты пришёл к правому символу
|
|||
19
dk
14.12.11
✎
08:21
|
хотя часть задач можно через "подобно" решить
|
|||
20
neo1109
14.12.11
✎
08:33
|
(18) вопрос то не в этом - оптимально или нет я решил ;)
вопрос всего лишь - возможно или нет получить правый символ?.. |
|||
21
andrewks
14.12.11
✎
08:34
|
(20) возможно. через изврат
|
|||
22
Ненавижу 1С
гуру
14.12.11
✎
08:36
|
зачем?
|
|||
23
Evil-Wisp
14.12.11
✎
08:45
|
ПОДСТРОКА(&Строка, ВЫБОР
КОГДА &Строка = (ВЫРАЗИТЬ(&Строка КАК СТРОКА(1))) ТОГДА 1 ИНАЧЕ ВЫБОР КОГДА &Строка = (ВЫРАЗИТЬ(&Строка КАК СТРОКА(2)) ТОГДА 2 ИНАЧЕ .... КОНЕЦ КОНЕЦ, 1) Предварительно убрать в строке пробел сзади. Ну и выборов 20-30. В зависимости от того, какой длинны максимум у тебя будет строка |
|||
24
Evil-Wisp
14.12.11
✎
08:48
|
(23) Скобку потерял, после "КАК СТРОКА(2)".
Ну вот он, собстно изврат:) |
|||
25
luckyluke
14.12.11
✎
09:01
|
(23) только вот на кой вот эти все иначе, потом еще вылезет ошибка об ограничении вложенности оператора ВЫБОР.
|
|||
26
Ненавижу 1С
гуру
14.12.11
✎
09:05
|
(25) на кой этот изврат я не в курсе, но я также не в курсе зачем делать вложенные ВЫБОР, если он нормально раскладывается в один длинный ВЫБОР
|
|||
27
andrewks
14.12.11
✎
09:06
|
(24) не, настоящий изврат не так, и для произвольной длины строки
|
|||
28
mirosh
14.12.11
✎
09:12
|
извращенцы 80-го уровня))
|
|||
29
andrewks
14.12.11
✎
09:29
|
сделал для произвольной строки. страшно показывать :)
кстати, вопрос: почему условие подстрока(стр,n,1)>"" ложно не тольуо для пустых строк, но и пробелов? как и подстрока(стр,n,1)<>""? |
|||
30
neo1109
14.12.11
✎
10:43
|
(20) будем считать что нельзя ;)
|
|||
31
Anita_Rost
14.12.11
✎
11:04
|
(29) Потому что в "" - 0 символов. Если будет " ", то будет истина
|
|||
32
Ненавижу 1С
гуру
14.12.11
✎
11:09
|
потому что конечные пробелы срезаются
|
|||
33
Max1986
14.12.11
✎
11:28
|
(10)нафига в запросе вырезать крайний правый символ.
Была такая задача - можно и запросом - через временную ТЗ, только работает МЕДЛЕННО. Через ТЗ быстрее намного |
|||
34
andrewks
14.12.11
✎
14:42
|
(32) проблема не только в конечных пробелах.
при расщеплении строки на символы с таким условием вылетают ВСЕ пробелы из строки, т.к. условие для пробела не выполняется. но, если выбрать без условия, то в результате правильно стоит символ пробела, а не пустая строка. где собака порылась? |
|||
35
vovus
14.12.11
✎
14:45
|
(34) Делай два запроса, а не один.
Сформировал таблицу, откуда "поткусывать надо", выгрузил в ТЗ, обработал функцией СокрЛП, потом обратился к этой таблице из нового запроса |
|||
36
andrewks
14.12.11
✎
14:48
|
(35) это некошерно :)
я делаю одним. да собственно, в применении к сабжу он и работает корректно. просто интересно, почему пробелы выпадают |
|||
37
vovus
14.12.11
✎
14:51
|
Мне кажется, некошерно будет потом в таком извратном запросе работать, но наверное дело вкуса
|
|||
38
andrewks
14.12.11
✎
14:53
|
(37) зри в сабж, мопед не мой :)
я просто сделал решение извращённой проблемы ТС настолько же извращённым методом, и наткнулся на (34). стало интересно выяснить причину |
|||
39
andrewks
14.12.11
✎
16:52
|
ап к (34)
|
|||
40
Ненавижу 1С
гуру
14.12.11
✎
17:15
|
(39) потому что если там пробел, то он как конечный (единственный вообще) обрезается и считается, что " "=""
|
|||
41
andrewks
14.12.11
✎
17:16
|
(40) а почему тогда в результат запроса идёт не "", а " "
получается, тут в уме держу, а тут нет? какое-то странное поведение, имхо |
|||
42
Ненавижу 1С
гуру
14.12.11
✎
17:21
|
(41) странное, сам не согласен, но тем не менее это даже стандарт SQL, которого придерживаются большинство СУБД
просто хотел сделать движок, который бы единообразно работал всюду: на клиенте и в запросах, а тут такой замес (( |
|||
43
andrewks
14.12.11
✎
17:36
|
(42) ясно. ну, нет - так нет. просто раньше не сталкивался, а щас столкнулся - удивился
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |