![]() |
![]() |
![]() |
|
Как выбрать только те элементы справочника который содержат кирилицу | ☑ | ||
---|---|---|---|---|
0
beholder
02.05.07
✎
10:38
|
Вот. Пытаюсь с помощью LIKE сделать, но че-то туго соображается :( похмелье-с, спасайте карады.
|
|||
1
Тулеген
02.05.07
✎
10:46
|
Элементы справочника которые содержат кирилицу где?
|
|||
2
beholder
02.05.07
✎
10:48
|
в наименовании
|
|||
3
beholder
02.05.07
✎
10:49
|
Пока только смог придумать вот это:
ЗЫ я знаю что это ужасно :(((( не пинайте сильно SELECT Серии.DESCR as СерийныйНомер FROM SC48608 AS Серии WHERE Серии.DESCR LIKE '%й%' OR Серии.DESCR LIKE '%ц%' OR Серии.DESCR LIKE '%у%' OR Серии.DESCR LIKE '%к%' OR Серии.DESCR LIKE '%е%' OR Серии.DESCR LIKE '%н%' OR Серии.DESCR LIKE '%г%' OR Серии.DESCR LIKE '%ш%' OR Серии.DESCR LIKE '%щ%' OR Серии.DESCR LIKE '%з%' OR Серии.DESCR LIKE '%х%' OR Серии.DESCR LIKE '%ъ%' OR Серии.DESCR LIKE '%ф%' OR Серии.DESCR LIKE '%ы%' OR Серии.DESCR LIKE '%в%' OR Серии.DESCR LIKE '%а%' OR Серии.DESCR LIKE '%п%' OR Серии.DESCR LIKE '%р%' OR Серии.DESCR LIKE '%о%' OR Серии.DESCR LIKE '%л%' OR Серии.DESCR LIKE '%д%' OR Серии.DESCR LIKE '%ж%' OR Серии.DESCR LIKE '%э%' OR Серии.DESCR LIKE '%я%' OR Серии.DESCR LIKE '%ч%' OR Серии.DESCR LIKE '%с%' OR Серии.DESCR LIKE '%м%' OR Серии.DESCR LIKE '%и%' OR Серии.DESCR LIKE '%т%' OR Серии.DESCR LIKE '%ь%' OR Серии.DESCR LIKE '%б%' OR Серии.DESCR LIKE '%ю%' |
|||
4
NDN
02.05.07
✎
10:50
|
Мб вырезать по одной букве и сравнивать через КодСимв()?
|
|||
5
Лефмихалыч
02.05.07
✎
10:53
|
(0) есть такое предложение CONTAINS. Его курить надо
|
|||
6
beholder
02.05.07
✎
10:55
|
(4) обработка так будет два дня работать :)
(5) Спасибо. Сейчас покурыим. |
|||
7
Лефмихалыч
02.05.07
✎
10:59
|
(6) да не за что, только ты учти, что фигню ты затеял - задача (0) средствами SQL не решается, SQL не для этого придуман. CONTIANS поможет переписать условие (3) в более короткой форме, а работать это в любом случае будет скорее всего до морковкина заговенья
|
|||
8
spock
02.05.07
✎
11:11
|
не взлетит CONTAINS
|
|||
9
beholder
02.05.07
✎
12:40
|
Вот так вроде работает
SELECT Серии.DESCR as СерийныйНомер FROM SC48608 AS Серии WHERE Серии.DESCR LIKE '%[йцукенгшщзхъфывапролджэячсмитьбю]%' |
|||
10
spock
02.05.07
✎
12:52
|
ё
|
|||
11
beholder
02.05.07
✎
12:59
|
(10) тьфу ты! забыл про Ё :)))))))))
|
|||
12
smaharbA
02.05.07
✎
13:05
|
А адинесовским запросом никак ?
|
|||
13
Chieftain
02.05.07
✎
13:07
|
(12) Делай проверку во внешней функии
|
|||
14
smaharbA
02.05.07
✎
13:09
|
(13) вы это кому ?
|
|||
15
beholder
02.05.07
✎
13:11
|
(12) хых! например?
|
|||
16
smaharbA
02.05.07
✎
13:15
|
(15)
|
|||
17
smaharbA
02.05.07
✎
13:16
|
+(16) конечно можно и чиста адинес средствами
|
|||
18
beholder
02.05.07
✎
14:39
|
(16) - респект! Сейчас потестю.
|
|||
19
Папа Гапа
02.05.07
✎
14:48
|
(18) Ушел тестить и не вернулся...
|
|||
20
КонецЦикла
02.05.07
✎
14:49
|
Про большие буквы забыли... тогда уж НРег()
|
|||
21
Папа Гапа
02.05.07
✎
14:52
|
(20) Подожди ты код наворачивать. У него ещё этот вариант выполняться не закончил... А ты уже наворачиваешь.
|
|||
22
beholder
02.05.07
✎
14:57
|
(19) :) не я пока не тестил. времени нету, следующую задачку пишу пока.
|
|||
23
smaharbA
02.05.07
✎
14:57
|
(20) не забыли
|
|||
24
КонецЦикла
02.05.07
✎
15:04
|
Ага, я путаюсь все время
|
|||
25
beholder
02.05.07
✎
15:14
|
(23) - слушай
а вот не так надо? Рег.pattern="%[а-яё]%"; |
|||
26
smaharbA
02.05.07
✎
15:16
|
(25) нет
|
|||
27
smaharbA
02.05.07
✎
15:32
|
Так конечно быстрее будет, а то в первом разе все время СоздатьОбъект(...
|
|||
28
Черепахыч
02.05.07
✎
15:35
|
кусок из БУХ 77
//****************************************************************************** // СтрокаНаписанаРусскимиИлиЛатинскими() // // Параметры: // СтрокаПараметр - строка, проверяемая строка. // // Возвращаемое значение: // 1 - строка состоит из допустимых символов // 0 - в строке встречаются недопустимые символы // // Описание: // Строка проверяется на наличие только русских и латинских букв; // кроме того, допускаются дефис, "Ё", "ё". // Функция СтрокаНаписанаРусскимиИлиЛатинскими(Знач СтрокаПараметр) //если получили реквизит справочника - подстрахуемся СтрокаПараметр = СокрЛП(СтрокаПараметр); Русские = 0; КоличествоСимволов = СтрДлина(СтрокаПараметр); Если КоличествоСимволов > 0 Тогда ПервыйСимвол = КодСимв(Лев(СтрокаПараметр,1)); Если (ПервыйСимвол >= 192) или (ПервыйСимвол = 184) или (ПервыйСимвол = 168) Тогда Русские = 1; КонецЕсли; КонецЕсли; СписокДопустимыхЗначений = СоздатьОбъект("СписокЗначений"); СписокДопустимыхЗначений.ДобавитьЗначение(184); // ё СписокДопустимыхЗначений.ДобавитьЗначение(168); // Ё СписокДопустимыхЗначений.ДобавитьЗначение(45); // "-" Для Сч = 1 По КоличествоСимволов Цикл Код = КодСимв(Сред(СтрокаПараметр,Сч)); // Большие латинские буквы: 65 - 90 // Маленькие латинские буквы: 97 - 122 // Русские буквы: 192 и больше //русские: Если (Русские = 1) Тогда Если (СписокДопустимыхЗначений.Принадлежит(Код) = 0) и (Код < 192) Тогда Возврат 0; КонецЕсли; // латинские: Иначе Если (Код <> 45) и ((Код < 65) или (Код > 90) и (Код < 97) или (Код > 122)) Тогда Возврат 0; КонецЕсли; КонецЕсли; КонецЦикла; Возврат 1; КонецФункции // СтрокаНаписанаРусскимиИлиЛатинскими() |
|||
29
Лефмихалыч
02.05.07
✎
15:37
|
(28) вот это вот, если натравить на справочник номенклатуры, в которомо больше 1000 элементов, будет работать до конца вечности...
|
|||
30
smaharbA
02.05.07
✎
15:37
|
(28) "10243-5364, 67/21 #123 №56" - ???
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |