|
|
|
СокрЛП - только для текста запроса | ☑ | ||
|---|---|---|---|---|
|
0
Алексей777
27.01.11
✎
13:41
|
Всем привет. Можем ли мы в запросе 1С у значения убрать слева и справа пробелы как это делает функция СокрЛП?
|
|||
|
1
PR
27.01.11
✎
13:41
|
Нет.
|
|||
|
2
unknown181538
27.01.11
✎
13:43
|
Запрос вроде сам убирает.
|
|||
|
3
supremum
27.01.11
✎
13:43
|
(0) Подобно в помощь
|
|||
|
4
Алексей777
27.01.11
✎
13:46
|
(3) каким образом подобно может помочь?
|
|||
|
5
PR
27.01.11
✎
13:50
|
(4) Да никаким. Просто ему тоже хочется что-нить сказать :))
|
|||
|
6
КонецЕсли
27.01.11
✎
13:57
|
(4) Выбор когда Реквизит ПОДОБНО " %" Тогда ПОДСТРОКА (Реквизит,2,200)
когда Реквизит ПОДОБНО " %" Тогда ПОДСТРОКА (Реквизит,3,200) когда Реквизит ПОДОБНО " %" Тогда ПОДСТРОКА (Реквизит,4,200) .... ыыыыы :))) а справа пробелы есть только у реквизитов фиксированной длины. |
|||
|
7
supremum
27.01.11
✎
14:06
|
(5) см (6)
|
|||
|
8
Алексей777
27.01.11
✎
14:14
|
(6) у меня как раз реквизит фиксированной длины - это номер документа :)
|
|||
|
9
hhhh
27.01.11
✎
14:35
|
(8) ну у номера длина небольшая, тут метод (6) 100% прокатит.
|
|||
|
10
hhhh
27.01.11
✎
14:37
|
(9)+ даже можно не через подобно, а через ВЫБОР.
|
|||
|
11
PR
27.01.11
✎
14:37
|
(7) Во-первых тогда уж не ПОДОБНО, а ПОДСТРОКА.
А во-вторых через пятую точку и кучу когда в выборе это да, возможно, но если так рассуждать, то можно и дату без времени в запросе получить в виде строки :))))) |
|||
|
12
supremum
27.01.11
✎
14:43
|
(11) Это уже детали ), главное что можно )
|
|||
|
13
Ненавижу 1С
гуру
27.01.11
✎
14:45
|
что ты хочешь сделать то?
|
|||
|
14
Slon747
27.01.11
✎
14:45
|
Если v8.2, то вроде как ВЫРАЗИТЬ здесь пригодится:
"В 1С:Предприятии 8.2 операция языка запросов ВЫРАЗИТЬ возвращает строку переменной длины (без концевых пробелов) при приведении к типу СТРОКА" |
|||
|
15
Алексей777
27.01.11
✎
14:48
|
(13) хочу убрать все пробелы справа у номера
|
|||
|
16
Sammo
27.01.11
✎
14:49
|
СКД еще не предлагали?
|
|||
|
17
Алексей777
27.01.11
✎
14:52
|
если использовать выбор когда подстрока(номер,1,1) = " " тогда
когда подстрока(номер,2,2) = " " тогда ... т.е. находим самый первый пробел и отсекаем, а вот если это нужный пробел и после него снова продолжается номер ... вот тут то я соглашусь с PR |
|||
|
18
cViper
27.01.11
✎
15:03
|
(0) К сожалению в 1С нет регулярных выражений (((
|
|||
|
19
Ненавижу 1С
гуру
27.01.11
✎
15:05
|
(15) что это даст тебе?
|
|||
|
20
Алексей777
27.01.11
✎
15:15
|
выкладываю данное чудо, вот только скорость отчета сократилась блин даже не знаю во сколько раз. Номер у меня 20-ти значный.
ВЫБОР КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 2, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 1) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 3, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 2) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 4, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 3) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 5, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 4) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 6, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 5) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 7, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 6) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 8, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 7) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 9, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 8) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 10, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 9) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 11, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 10) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 12, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 11) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 13, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 12) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 14, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 13) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 15, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 14) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 16, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 15) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 17, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 16) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 18, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 17) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 19, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 18) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 20, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 19) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 21, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 20) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 22, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 21) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 23, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 22) КОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 24, 2) = " " ТОГДА ПОДСТРОКА(ТребованиеНакладнаяМатериалы.Заказ.Номер, 1, 23) КОНЕЦ |
|||
|
21
supremum
27.01.11
✎
15:18
|
(20) Корявые данные - корявый код.
|
|||
|
22
Алексей777
27.01.11
✎
15:18
|
(19) номер без пробелов - он нужен для того, чтобы результат объединения один и тот же номер при группировке не выводил несколько раз. В объединении используются два запроса в одном номер без пробелов, а в другом с пробелами
|
|||
|
23
IamAlexy
27.01.11
✎
15:19
|
вкорячить функцию в общий модуль низя было ?
|
|||
|
24
Алексей777
27.01.11
✎
15:19
|
(21) есть лучше? напиши
|
|||
|
25
PR
27.01.11
✎
15:20
|
(12) Можно ли написать драйвер видеокарточки, работающий на платформе 1С?
|
|||
|
26
PR
27.01.11
✎
15:21
|
(14) О, вот оно как! Спасибо за инфу :))
|
|||
|
27
Алексей777
27.01.11
✎
15:21
|
(23) речь о запросе
|
|||
|
28
supremum
27.01.11
✎
15:22
|
(24) Это значит, чтобы не было корявого кода не надо допускать корявости в данных. На кой нужны лидирующие пробелы в номере?
|
|||
|
29
IamAlexy
27.01.11
✎
15:25
|
(27) в скд вроде можно было - что мешает использовать СКД ?
|
|||
|
30
supremum
27.01.11
✎
15:26
|
(25) Можно ли убрать лишние пробелы в запросе?
|
|||
|
31
Алексей777
27.01.11
✎
15:43
|
согласен что они не нужны, но как данность от неё уже никуда не уйти, согласен, что можно отчет не только запросом вывести, но это уже не тема ветки
|
|||
|
32
supremum
27.01.11
✎
15:46
|
(31) Иначе можно получить табличку с номерами и ссылками на документы, убрать лишние пробелы с помощью СокрЛП, и подцепить ее уже в запросе.
|
|||
|
33
Алексей777
27.01.11
✎
16:06
|
(32) как вариант попробую и сравню скорость.
|
|||
|
34
Живой Ископаемый
27.01.11
✎
16:09
|
2(24) пойнт не в том что лучше можно написать, а в том что при крявых данных хорошего кода не написать. В частности зачем дебильное объединение по номеру? Что нельзя по ссылке объединить? Наверное уже нельзя - потому что данные этого не предусматривают.
|
|||
|
35
Алексей777
27.01.11
✎
16:18
|
(34) LTRIM и RTRIM - скуль - крявых данных не бывает
|
|||
|
36
Алексей777
27.01.11
✎
16:27
|
кстати скорость отчета сократилась не намного, так что работает чудо
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |