|
Отобрать в запросе только те, что можно привести к числу | ☑ | ||
---|---|---|---|---|
0
live in sky dreams
05.05.17
✎
09:42
|
Подскажите, как решить задачу?
Есть доки у которых есть номера (доп. поле тип: строка). Часть доков с номерами, содержащими префикс (например АА000000001) Есть часть доков с номерами без префикса (00000000001) Причем, префиксы разные. АА..АС..АГ и т.д. Мне нужно выбрать только те, которые не содержат префиксы.. То есть только те, у которых поле доп. номер можно привести к числу. Возможно ли это сделать в запросе? |
|||
1
polosov
05.05.17
✎
09:46
|
(0) ЕстьNULL(ВЫРАЗИТЬ ССылка.Номер КАК Число (10,2), "Не число")
|
|||
2
DrShad
05.05.17
✎
09:46
|
НЕ ПОДОБНО + регулярка на вхождение букв
|
|||
3
polosov
05.05.17
✎
09:47
|
+(1) А не, вру. Исключение будет
|
|||
4
FIXXXL
05.05.17
✎
09:47
|
(1) ошибку выдаст
"АА..АС..АГ и т.д. " если все с "А" начинаются - ПОДСТРОКА используй |
|||
5
Рэйв
05.05.17
✎
09:49
|
(0)Проще поставить условие на 3 строки в цикле обработки результата
|
|||
6
YFedor
05.05.17
✎
09:50
|
Эх, как я скучаю по семерке ...
|
|||
7
polosov
05.05.17
✎
09:52
|
(6) А что пой ней скучать.
В 8ке тоже можешь все запросом выбрать и потом в цикле как хочешь обрабатывать. |
|||
8
live in sky dreams
05.05.17
✎
09:52
|
Префиксы не все начинаются с "А"..
там их множество великое.. (3)ага, сперва тоже про выразить вспомнил... (2) можно подробнее? |
|||
9
polosov
05.05.17
✎
10:05
|
(8)
Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ. Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки: % (процент): последовательность, содержащая любое количество произвольных символов _ (подчеркивание): один произвольный символ […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона. [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки. Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ. Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов: буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в. Причем перед этой последовательностью может располагаться произвольный набор символов. |
|||
10
AlvlSpb
05.05.17
✎
11:07
|
ГДЕ Документ.Номер ПОДОБНО "[^А-Я]%"
Отберет только номера где первый знак НЕ буква |
|||
11
YFedor
05.05.17
✎
11:09
|
(7) В семерке просто Число(Что-то), если преобразовалось - на выходе конкретное число, если не преобразовалось - на выходе снова число - 0. А в восьмерке все через Ж, причем непонятно зачем
|
|||
12
live in sky dreams
05.05.17
✎
11:32
|
(9)(10) это отработает если в символах только латиница и символы могут присутствовать в номере обязательно в начала.
А есть и "0H", где Н - это "Аш" английская.. Номер может быть как 0H18, так и 0H0T000018 |
|||
13
live in sky dreams
05.05.17
✎
11:34
|
Я могу написать Если Номер подобно "[0-9]%", но это отберет только те номера, где первый символ число. Остальных буквенных или спецсиволов в других частях номера это не исключит
|
|||
14
Fish
05.05.17
✎
11:36
|
(11) "если преобразовалось - на выходе конкретное число, если не преобразовалось - на выходе снова число - 0." - А если это число - ноль? Как отличишь?
|
|||
15
live in sky dreams
05.05.17
✎
11:40
|
В квадратных скобках можно указывать несколько вариантов?
Например [0-9\ ] будет означать "любое число или пробел"? |
|||
16
catena
05.05.17
✎
11:46
|
(13)А длина номера не фиксированная чтоли?
|
|||
17
Неверный Параметр И
05.05.17
✎
11:49
|
(0) где номер не подобно "%[тут твои запрещенные символы]%"
(15) Справка –> 1С:Предприятие –>Встроенный язык –> Работа с запросами –> Синтаксис языка запросов –> Использование выражений в языке запросов –> Логические выражения –> ПОДОБНО – оператор проверки строк на подобие шаблону |
|||
18
live in sky dreams
05.05.17
✎
11:50
|
(17) запрещенные символы - это все существующие символы кроме чисел на всех языках?
Где справка по ПОДОБНО находится я знаю, спасибо |
|||
19
catena
05.05.17
✎
11:51
|
(15)Можно. Там в (9) прям с примером даже...
|
|||
20
Неверный Параметр И
05.05.17
✎
11:52
|
(18) И что там написано по поводу множественных вхождений?
|
|||
21
Неверный Параметр И
05.05.17
✎
12:02
|
И поищи в уникоде цифры, кстати. Где нибудь около
U+10E61. Многоязычный умник ты наш. |
|||
22
live in sky dreams
05.05.17
✎
12:04
|
работает вот так(условие запроса):
НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9][0-9]" ИЛИ НомерДоп ПОДОБНО "[0-9]" Выбирает номера, которые состоят из чисел, любой длины в пределах длины реквизита. Я могут собирать запрос и по циклу, но может есть какой то вариант упростить конструкцию? |
|||
23
Неверный Параметр И
05.05.17
✎
12:10
|
Не будет работать для номеров, начинающихся с пробела.
У тебя три возможности воздействия на результат запроса: синтаксис шаблона, логические условия с шаблоном и операции с выбраным множеством. Впрочем, твой готовый вариант все равно будет циклом. |
|||
24
YFedor
05.05.17
✎
12:22
|
(14) В 99% случаев это не нужно, а если нужно, то нужна всего лишь функция проверки типа значения.
Теперь в 99% случаев нужно сначала проверить, что можно преобразовать, а потом преобразовать В семерошном варианте в 99% случаев нужно просто преобразовать |
|||
25
Optan
05.05.17
✎
12:48
|
(0) Если номер фиксированной длины можно попробовать создать временную таблицу: что то похожее на "1" - 1, "2" - 2...
И соединять символы номера с ней |
|||
26
тарам пам пам
05.05.17
✎
13:54
|
(22) что за извращение? поставь условие НЕ ПОДОБНО "%[^0-9]%"
|
|||
27
live in sky dreams
05.05.17
✎
15:28
|
(26) Е мое.. точно же! Спасибо тебе, мил человек!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |