|
Не работает запрос: поиск части числового значения (поиск числа по подстроке) | ☑ | ||
---|---|---|---|---|
0
бегинер
26.07.17
✎
14:38
|
Запрос.Текст="выбрать вагоны.код, выразить(вагоны.код как строка (8)) как число_строкой из справочник.дислокациявагонысписок как вагоны где число_строкой подобно"+""""+"%"+ элементыформы.ИскомаяЧастьНомераВагона.Значение + "%"+"""";
код - тип число хочу искать все числа-номера к которых есть определенные-искомые наборы цифр например найти все номера в которых есть 234. ругается: Поле не найдено "число_строкой" подскажите как правильно организовать запрос-поиск подстроки в числовом поле, где ошибка в запросе? |
|||
1
Ёпрст
26.07.17
✎
14:40
|
(26)
пиши так: "выбрать вагоны.код из справочник.дислокациявагонысписок как вагоны где вагоны.код подобно"+""""+"%"+ элементыформы.ИскомаяЧастьНомераВагона.Значение + "%"+""""; |
|||
2
Ёпрст
26.07.17
✎
14:42
|
и лучше, так:
"выбрать вагоны.код из справочник.дислокациявагонысписок как вагоны где вагоны.код подобно ""%"+СокрЛП( элементыформы.ИскомаяЧастьНомераВагона.Значение) + "%"""; |
|||
3
бегинер
26.07.17
✎
14:44
|
(2)
ругается Неверные параметры "ПОДОБНО" выбрать вагоны.код из справочник.дислокациявагонысписок как вагоны где <<?>>вагоны.код подобно "%330%" повторюсь: вагоны.код - числовое поле |
|||
4
Рабочая имитация
26.07.17
✎
14:47
|
>поиск числа по подстроке
Не взлетит. ВЫРАЗИТЬ в языке запросов предназначено только для уточнения существующего типа, например выделения из составного типа или уточнения длины/разрядности числа или строки. |
|||
5
бегинер
26.07.17
✎
14:52
|
подскажите как взлететь :)
|
|||
6
Ёпрст
26.07.17
✎
14:56
|
(3) ну переделай код в строку, делов-то
В запросе из числа строку не слепишь без извратов, тут каста и конверта нема |
|||
7
Вафель
26.07.17
✎
15:01
|
выполнить запрос, преобразовать в строку, выполнить новый запрос по тз
|
|||
8
dezss
26.07.17
✎
15:01
|
держи изврат)))
http://catalog.mista.ru/public/461171/ |
|||
9
Ненавижу 1С
гуру
26.07.17
✎
15:20
|
нефиг коды в справочниках делать числовыми
|
|||
10
Ёпрст
26.07.17
✎
15:21
|
(9) толи дело клюшки, там code - всегда строка была в самих табличках.
|
|||
11
бегинер
26.07.17
✎
15:28
|
(9) да уж ошибся получается давно, поленился проверять на числовое значение, задал жестко тип коду "число"
а так тоже не пройдет? ВЫБРАТЬ врм_табл.Код КАК код, ПРЕДСТАВЛЕНИЕ(врм_табл.Код) КАК число_строкой ПОМЕСТИТЬ врм_табл ИЗ Справочник.ДислокацияВагоныСписок КАК врм_табл ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ врм_табл.Код ИЗ врм_табл ГДЕ врм_табл.число_строкой ПОДОБНО &z |
|||
12
бегинер
26.07.17
✎
15:29
|
Неверные параметры "ПОДОБНО" опять ругается
|
|||
13
Ёпрст
26.07.17
✎
15:29
|
(11) нет.
Представление - эта хрен после запроса получает |
|||
14
PR
26.07.17
✎
15:29
|
(0) Ни. Как.
|
|||
15
Timon1405
26.07.17
✎
15:34
|
0) успокоиться и понять что (14)
1) добавить свойство/реквизит. 2) заполнять его при записи 3) искать по нему 4) прекратить %мозг% себе и окружающим |
|||
16
бегинер
26.07.17
✎
15:37
|
буду курить как связать (8) с моим запросом
сразу не вьехал еще как юзать: т.е. есть вот это: "выбрать вагоны.код из справочник.дислокациявагонысписок как вагоны где вагоны.код подобно ""%"+СокрЛП( элементыформы.ИскомаяЧастьНомераВагона.Значение) + "%"""; меняем на: "выбрать вагоны.код из справочник.дислокациявагонысписок как вагоны где" +ТекстЗапросаИзЧислаВСтроку(вагоны.код, 8, 0)+ " подобно ""%"+СокрЛП( элементыформы.ИскомаяЧастьНомераВагона.Значение) + "%"""; верно? |
|||
17
бегинер
26.07.17
✎
15:38
|
справочник не тяжелый, не больше 100 элементов, поэтому можно и по извращаться :)
на край тупо перебором в цикле и в коде уже по подстроке сам поиущу... |
|||
18
Ёпрст
26.07.17
✎
15:40
|
(16) быстрее будет, открыть пофигуратор, поменять тип кода на строку и сохранить
|
|||
19
бегинер
26.07.17
✎
15:42
|
(18) ну там в других местах уже много на числовом типе завязано...
всем спасибо! |
|||
20
FIXXXL
26.07.17
✎
15:43
|
(17) выгрузи в ТЗ, добавь колонку "СтрКод", заполни в цикле
ТЗ обратно в запрос и ищи а можно и в прямо в цикле по СтрНайти() |
|||
21
бегинер
26.07.17
✎
15:45
|
(20) уже так и делаю, хотелось красивости :)
а тут грабельки.... |
|||
22
FIXXXL
26.07.17
✎
15:47
|
(21) красивости в (15) :)
а это кастылики |
|||
23
dezss
26.07.17
✎
16:59
|
(16) а фигли там непонятного...
первый запрос меняешь на выборку твоих кодов во втором тебе нужно только это ВЫБРАТЬ ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) + ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 10000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) + ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 1000 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) + ПОДСТРОКА("0123456789", 1 + (ВЫРАЗИТЬ(ТЗ.Поле / 10 - 0.5 КАК ЧИСЛО(14, 0))) - (ВЫРАЗИТЬ(ТЗ.Поле / 100 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1) + ПОДСТРОКА("0123456789", 1 + ТЗ.Поле - (ВЫРАЗИТЬ(ТЗ.Поле / 10 - 0.5 КАК ЧИСЛО(14, 0))) * 10, 1)+ КАК СтрокаПоле ИЗ ТЗ КАК ТЗ Добавляешь выражений (ПОДСТРОКА) до нужного числа разрядов, профит. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |