Имя: Пароль:
1C
1С v8
Наименования с символами в запросе
0 who respawn
 
28.11.24
09:56
Привет, подскажите, как сделать условие в запросе, чтобы выводились только наименования контрагентов содержащие символы
нашел
ГДЕ
    ЕСТЬNULL(ПОДОБНО(Контрагент.Наименование, '%!@#$%^&*()_+{}[]|:";<>?/.,~`%'), ЛОЖЬ)
но ругается, не пойму как правильно это написать
1 Asmody
 
28.11.24
09:59
Пример тебе чатгпт писал? У ПОДОБНО другой синтаксис
2 Волшебник
 
28.11.24
09:59
символ "_" тоже является специальным
3 программистище
 
28.11.24
10:05
возможно
Выбор когда Контрагент.Наименование ЕСТЬ NULL ТОГДА ложь Иначе
через или каждый символ в Контрагент.Наименование ПОДОБНО '%!%' ИЛИ Контрагент.Наименование ПОДОБНО '%@%' и т.д.

регулярки в 8.23 но не в запросах
4 who respawn
 
28.11.24
10:03
(1) Да
Ну я не понимаю как это написать
Контрагенты.Наименование ПОДОБНО "%!@#$%^&*()_+{}[]|:";<>?/.,~`%" - ошибка
5 who respawn
 
28.11.24
10:04
(3) это да, но думал можно как то в параметре указать как в топике
6 Волшебник
 
28.11.24
10:06
WHERE Контрагенты.Наименование LIKE "%!%" 
OR Контрагенты.Наименование LIKE "%@%"
OR ...
7 программистище
 
28.11.24
10:06
(5) быстрее будет выбрать все и перебрать в цикле с регуляркой, наверное
8 программистище
 
28.11.24
10:07
(6) америконский шпийонь?
9 who respawn
 
28.11.24
10:07
(6) да понятно, говорю же я могу по 1 символу так искать, просто думал можно как то в условиях указать сразу все спецсимволы
10 Волшебник
 
28.11.24
10:07
(7) Можно использовать динамическую выборку
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
...
11 Волшебник
 
28.11.24
10:08
(8) Вас смутили стандартные SQL-конструкции, которые работают в 1С?
12 youalex
 
28.11.24
10:18
(0) проверяй
ПОДОБНО "%[\/\%]%" СПЕЦСИМВОЛ "\"
(для %, /)
13 программистище
 
28.11.24
10:26
14 who respawn
 
28.11.24
10:48
спасибо
2 + 2 = 3.9999999999999999999999999999999...