Имя: Пароль:
1C
 
Убрать пробелы в запросе
0 DayDreamer
 
04.02.09
13:19
Есть запрос:
ВЫБРАТЬ
   ВЫБОР
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 1
           ТОГДА "01"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 2
           ТОГДА "02"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 3
           ТОГДА "03"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 4
           ТОГДА "04"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 5
           ТОГДА "05"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 6
           ТОГДА "06"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 7
           ТОГДА "07"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 8
           ТОГДА "08"
       КОГДА РегионыПоРегистрации.КодРегионаВКоде = 9
           ТОГДА "09"
       ИНАЧЕ РегионыПоРегистрации.КодРегионаВКоде
   КОНЕЦ КАК Поле1,
   РегионыПоРегистрации.ТипАдресногоЭлемента КАК ТипАдресногоЭлемента,
   РегионыПоРегистрации.Наименование + " " + РегионыПоРегистрации.Сокращение КАК Поле2,
   КонтактнаяИнформация.Объект как объект
ИЗ
   РегистрСведений.АдресныйКлассификатор КАК РегионыПоРегистрации
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО (РегионыПоРегистрации.Наименование + " " + РегионыПоРегистрации.Сокращение = КонтактнаяИнформация.Поле2)

УПОРЯДОЧИТЬ ПО
   Поле1,
   ТипАдресногоЭлемента

Объект всегда NULL из-за того что РегионыПоРегистрации.Наименование + " " + РегионыПоРегистрации.Сокращение = КонтактнаяИнформация.Поле2 не выполняется, т.к. РегионыПоРегистрации.Наименование - Строка 52 символа, а при записи в рег.КонтактнаяИнформация.Поле2 пробелы обрезаются
как сравнить эти поля или как убрать лишние пробелы при сравнении в запросе???
1 ТелепатБот
 
гуру
04.02.09
13:19
2 Kashemir
 
04.02.09
13:20
ВЫРАЗИТЬ ... КАК СТРОКА(...)
... ПОДОБНО ...
3 DayDreamer
 
04.02.09
13:23
кол-во символов в строке всегда разное
4 Kashemir
 
04.02.09
13:27
Оператор проверки строки на подобие шаблону
------------------------------------------
Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:

% (процент): последовательность, содержащая любое количество произвольных символов
_ (подчеркивание): один произвольный символ
[…] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
[^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.

Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.

Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.

Причем перед этой последовательностью может располагаться произвольный набор символов.
5 DayDreamer
 
04.02.09
13:32
"Москва                  "+" "+ "г"
и
"Москва г"

как выразить через подобно?
6 DayDreamer
 
04.02.09
13:32
если "Москва                  " - одна перем
"г" - другая перем
"Москва г" третья
и все три вычисляются в запросе и в нем же сравниваются
7 Kashemir
 
04.02.09
13:35
(0) РегионыПоРегистрации.Наименование  ПОДОБНО "%" + КонтактнаяИнформация.Поле2+ "%"

Что-то вроде такого
8 НЕА123
 
04.02.09
13:37
КонтактнаяИнформация.Поле2  ПОДОБНО РегионыПоРегистрации.Наименование + "%"
И
КонтактнаяИнформация.Поле2  ПОДОБНО "%" + РегионыПоРегистрации.Сокращение  


может прокатит...
9 Kashemir
 
04.02.09
13:38
(5) "Москва                  "+" "+ "г" ПОДОБНО "%" + "Москва" + "%" + "г"
10 DayDreamer
 
04.02.09
13:39
так в том и дело что "Москва г" это целая строка
11 DayDreamer
 
04.02.09
13:40
и нельзя разбить на "Москва" + "г"
12 Kashemir
 
04.02.09
13:44
(0) РегионыПоРегистрации.Наименование + " " + РегионыПоРегистрации.Сокращение = КонтактнаяИнформация.Поле2

----------------
Отсюда: КонтактнаяИнформация.Поле2 ПОДОБНО РегионыПоРегистрации.Наименование + "%" + РегионыПоРегистрации.Сокращение

на примере (6)
"Москва г" ПОДОБНО "Москва                  " + "%" + "г"
----
13 Kashemir
 
04.02.09
13:45
Хотя действительно - так непрокатит. Боюсь медицина тут бессильна
14 Kashemir
 
04.02.09
13:45
Либо смотри (8)
15 НЕА123
 
04.02.09
13:57
(14) да нет. в (8) похоже куйня.
16 DayDreamer
 
04.02.09
14:18
ошибка 12, 13 платформ
17 hhhh
 
04.02.09
15:19
(16) и еще 14, 15 16 платформ.
18 DayDreamer
 
04.02.09
15:25
(17) дело в том что данная конструкция в 11 платформе работала
19 hhhh
 
04.02.09
16:27
(18) значит в 11 платформе была ошибка, недосмотрели. А теперь исправили.