Имя: Пароль:
1C
1С v8
Сравнение строк с учетом регистра в запросе
0 LevelUP
 
26.12.16
13:04
Здравствуйте.
Вот есть например запрос

ВЫБРАТЬ

        ЗначенияСвойствОбъектов.Ссылка

    ИЗ
        Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    где
    
ЗначенияСвойствОбъектов.наименование = "ТЕХНО-ромашка"

Для меня было несколько неожиданно, что запрос при выполнении возвращает элемент с наименованием "техно-ромашка" (вместо "ТЕХНО-ромашка"), то есть не учитывает регистр.
Есть ли возможность сделать сравнение строк в запросе с учетом регистра?
1 Мимохожий Однако
 
26.12.16
13:15
Попробуй использовать спецсимволы в шаблоне
2 Мимохожий Однако
 
26.12.16
13:16
Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

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

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

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

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

Причем перед этой последовательностью может располагаться произвольный набор символов.

см. также: Логические выражения
3 Лефмихалыч
 
26.12.16
13:16
поставить базе case sensitive collation - развве что. Но ты не хочешь этого делать.
4 Zmich
 
26.12.16
13:18
Оставить запрос как есть, при обходе результата отбрасывать ненужные.
5 LevelUP
 
26.12.16
13:20
(1) что-то не догнал как я его могу использовать в моей ситуации
6 LevelUP
 
26.12.16
13:21
(4) неплохой вариант, так и поступлю, всё лучше чем простой перебор.
7 LevelUP
 
26.12.16
13:22
(3) а где это ставится? просто для повышения кругозора.
8 Живой Ископаемый
 
26.12.16
13:26
2(7) в базе данных
9 Лефмихалыч
 
26.12.16
13:27
(7) в свойствах базы данных при создании оной
Программист всегда исправляет последнюю ошибку.