|
Можно ли запросом получить Артикул и строковую функцию СтрДлина(Артикул)? | ☑ | ||
---|---|---|---|---|
0
Мимохожий Однако
08.01.13
✎
14:49
|
Если сделать выборку, то можно получить строковой функцией СтрДлина(). Однако есть ли возможность получить список Артикулов и их строковую длину?
|
|||
2
Мимохожий Однако
08.01.13
✎
15:19
|
.
|
|||
3
PR
08.01.13
✎
15:20
|
Нет
|
|||
4
palpetrovich
08.01.13
✎
15:28
|
(3) чего это, заводи отдельный ревизит СтрДлинаАртикул зависимый от Артикул - и вуаля :)
|
|||
5
Мимохожий Однако
08.01.13
✎
15:54
|
(4)"Вуаля" ...)) У клиентов в базе артикул является началом наименования и надо проверить соответствие начала наименования и артикула. Сделал в выборке.
|
|||
6
palpetrovich
08.01.13
✎
16:30
|
(5) а ПОДОБНО не спасает? у Артикул-а длина-же переменная наверное
|
|||
7
Мимохожий Однако
08.01.13
✎
16:37
|
(6)Пробовал
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Наименование ПОДОБНО Номенклатура.Артикул ... Даёт пустой список .. ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Наименование НЕ ПОДОБНО Номенклатура.Артикул .. Даёт весь список товара |
|||
8
palpetrovich
08.01.13
✎
16:44
|
(7) а артикулы разной длины? ...както так напрашивется:
ГДЕ Номенклатура.Артикул ПОДОБНО ВЫРАЗИТЬ(Номенклатура.Наименование КАК Строка (5)) |
|||
9
Мимохожий Однако
08.01.13
✎
17:06
|
Артикулы к сожалению разной длины от 5 до 25 символов с черточками и точками.
|
|||
10
Мимохожий Однако
08.01.13
✎
17:07
|
Честно говоря, мой пост скорее теоретический. В данному случае, рулит только выборка и обработка каждой строки.
|
|||
11
hhhh
08.01.13
✎
17:08
|
(7) как-то так
ВЫБОР КОГДА ПОДСТРОКА(Артикул,1,1) = Артикул ТОГДА 1 КОГДА ПОДСТРОКА(Артикул,1,2) = Артикул ТОГДА 2 КОГДА ПОДСТРОКА(Артикул,1,3) = Артикул ТОГДА 3 КОГДА ПОДСТРОКА(Артикул,1,4) = Артикул ТОГДА 4 КОГДА ПОДСТРОКА(Артикул,1,5) = Артикул ТОГДА 5 КОГДА ПОДСТРОКА(Артикул,1,6) = Артикул ТОГДА 6 КОГДА ПОДСТРОКА(Артикул,1,7) = Артикул ТОГДА 7 КОГДА ПОДСТРОКА(Артикул,1,8) = Артикул ТОГДА 8 КОГДА ПОДСТРОКА(Артикул,1,9) = Артикул ТОГДА 9 КОГДА ПОДСТРОКА(Артикул,1,10) = Артикул ТОГДА 10 КОНЕЦ КАК ДлинаАртикула |
|||
12
palpetrovich
08.01.13
✎
17:14
|
о, так работает кажись
ГДЕ НЕ Номенклатура.Артикул="" И Номенклатура.Наименование ПОДОБНО Номенклатура.Артикул+"%" |
|||
13
Mafoni
08.01.13
✎
17:19
|
(12) +100500
вот полный текст запроса у меня работает ВЫБРАТЬ Тест1.Код, Тест1.Наименование, ВЫБОР КОГДА Тест1.Наименование ПОДОБНО Тест1.Код + "%" ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК Подобие ИЗ Справочник.Тест1 КАК Тест1 в справочнике "Тест1" ввел три элемента вот такие - 1. Код = 000000001 Наименование = 000000001 лабуда 2. Код = 000000002 Наименование = 000000002 - лабуда 2 3. Код = 000000003 Наименование = 000000002 - лабуда 3 результат запроса вот такой Код Наименование Подобие 000000001 000000001 лабуда Да 000000002 000000002 - лабуда 2 Да 000000003 000000002 - лабуда 3 Нет |
|||
14
Mafoni
08.01.13
✎
17:19
|
(0) думаю эт то что требовалось !
|
|||
15
palpetrovich
08.01.13
✎
17:21
|
(13) все с назаполненным Код-ом - будут в выборке, так что (12) всетаки получше :)
|
|||
16
Mafoni
08.01.13
✎
17:23
|
(15) спорить не буду - вы правы на все 100% но отборы то уж пущай ТС добавляет.
|
|||
17
Мимохожий Однако
08.01.13
✎
17:27
|
(12)Попробовал. У меня не работает. Результат как в (8). Появляется весь список номенклатуры.
(13)Мне кажется с кодом пример неудачный, т.к. там фиксированная строка. (11)Пока не опробовал, но посмотрю. |
|||
18
palpetrovich
08.01.13
✎
17:30
|
(17) точно точно? у меня нижеследующее работает как надо
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.Артикул="" И Номенклатура.Наименование ПОДОБНО Номенклатура.Артикул+"%" |
|||
19
palpetrovich
08.01.13
✎
17:30
|
+18 "+"%" - точно не забыл? :)
|
|||
20
hhhh
08.01.13
✎
17:31
|
(14) не прокатит. Например, такое
код "1", наименование "11 лабуда" |
|||
21
palpetrovich
08.01.13
✎
17:35
|
(20) "11 лабуда" в (18) прокатывает :)
|
|||
22
Fragster
гуру
08.01.13
✎
17:35
|
автор уже 100500 раз проверил бы в постобработке запроса. правда наверняка пропустил бы (20)
|
|||
23
Mafoni
08.01.13
✎
17:38
|
(20) согласен
|
|||
24
Mafoni
08.01.13
✎
17:39
|
(21) а у вас коллега какой результат получился
в моем случае код = 1 подобно наименование = "11 лабуда" ? |
|||
25
palpetrovich
08.01.13
✎
17:41
|
(24) попадает в результат. Только у меня Артикул = 1
|
|||
26
Mafoni
08.01.13
✎
17:44
|
(0) ТС - а чего не используеш постобработку запроса ? в этом какие то трудности ? или принципиально хочется сделать запросом ?
|
|||
27
palpetrovich
08.01.13
✎
17:52
|
короче, немоного тероии
"Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ. Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки: • % (процент): последовательность, содержащая любое количество произвольных символов..." ну и т.д. т.е. ГДЕ ПРОВЕРЯЕМОЕ ПОДОБНО ШАБЛОН+"%" ИСТИНА при, кпримеру, ПРОВЕРЯЕМОЕ = "Впкплплдоуд" и ШАБЛОН = "Впкп" и т.д. |
|||
28
Mafoni
08.01.13
✎
17:53
|
(27) да не старайсы ты так - ТС - то слился уже поди!
|
|||
29
palpetrovich
08.01.13
✎
17:54
|
(28) ну и ладненько, мне тоже пора :)
|
|||
30
Мимохожий Однако
08.01.13
✎
17:59
|
(19)Код скопировал один в один
(22)Постообработка - это фактически обыкновенная выборка. (28) не надо нервничать )) Я здесь. Немножко работаю, немножко на форум смотрю. Твой код еще не проверил. |
|||
31
Мимохожий Однако
08.01.13
✎
18:00
|
(22) Уточню. Делать обработку после получения результатов запроса то же самое, что просто запустить выборку по справочнику. Этот вариант я уже сделал в самом начале еще до того как открыл ветку.
|
|||
32
Mafoni
08.01.13
✎
18:04
|
(30) да я спокоен как удав. :)
проверь - интересно что у тя получится ! :) |
|||
33
Мимохожий Однако
08.01.13
✎
18:35
|
ВЫБРАТЬ
Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул, ВЫБОР КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 1) = Номенклатура.Артикул ТОГДА 1 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 2) = Номенклатура.Артикул ТОГДА 2 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 3) = Номенклатура.Артикул ТОГДА 3 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 4) = Номенклатура.Артикул ТОГДА 4 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 5) = Номенклатура.Артикул ТОГДА 5 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 6) = Номенклатура.Артикул ТОГДА 6 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 7) = Номенклатура.Артикул ТОГДА 7 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 8) = Номенклатура.Артикул ТОГДА 8 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 9) = Номенклатура.Артикул ТОГДА 9 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 10) = Номенклатура.Артикул ТОГДА 10 КОНЕЦ КАК ДлинаАртикула ПОМЕСТИТЬ Временная ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.Артикул = "" СГРУППИРОВАТЬ ПО ВЫБОР КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 1) = Номенклатура.Артикул ТОГДА 1 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 2) = Номенклатура.Артикул ТОГДА 2 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 3) = Номенклатура.Артикул ТОГДА 3 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 4) = Номенклатура.Артикул ТОГДА 4 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 5) = Номенклатура.Артикул ТОГДА 5 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 6) = Номенклатура.Артикул ТОГДА 6 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 7) = Номенклатура.Артикул ТОГДА 7 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 8) = Номенклатура.Артикул ТОГДА 8 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 9) = Номенклатура.Артикул ТОГДА 9 КОГДА ПОДСТРОКА(Номенклатура.Артикул, 1, 10) = Номенклатура.Артикул ТОГДА 10 КОНЕЦ, Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Временная.Ссылка, Временная.Наименование, ПОДСТРОКА(Временная.Артикул, 1, Временная.ДлинаАртикула) КАК АртикулПодстрокой, ПОДСТРОКА(Временная.Наименование, 1, Временная.ДлинаАртикула) КАК НачалоНаименования ПОМЕСТИТЬ ВтораяВремянка ИЗ Временная КАК Временная ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтораяВремянка.Ссылка, ВтораяВремянка.Наименование, ВтораяВремянка.АртикулПодстрокой, ВтораяВремянка.НачалоНаименования ИЗ ВтораяВремянка КАК ВтораяВремянка ГДЕ НЕ ВтораяВремянка.АртикулПодстрокой ПОДОБНО ВтораяВремянка.НачалоНаименования |
|||
34
Мимохожий Однако
08.01.13
✎
18:38
|
Остаётся придумать цикличную функцию по формированию текста запроса для произвольной длины сравниваемых реквизитов.))
|
|||
35
palpetrovich
09.01.13
✎
13:16
|
(34) а че тут думать? просто все:
ТекстВЫБОР = "ВЫБОР" Для Инд По ТекДлинаАртикула Цикл ТекстВЫБОР = ТекстВЫБОР + " КОГДА ПОДСТРОКА(Номенклатура.Артикул,1,"+Инд+") = Номенклатура.Артикул ТОГДА "+Инд; КонецЦикла; ТекстВЫБОР = ТекстВЫБОР + " КОНЕЦ КАК ДлинаАртикула"; а насчет (18) - мне даже интересно, почему у меня работает, а у тебя нет http://4put.ru/pictures/max/501/1540226.jpg |
|||
36
Мимохожий Однако
09.01.13
✎
20:23
|
(35) Работает вот такой запрос
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование, Номенклатура.Артикул ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Артикул <> "" И НЕ Номенклатура.Наименование ПОДОБНО Номенклатура.Артикул + "%" |
|||
37
Мимохожий Однако
09.01.13
✎
20:24
|
а (18) не работает.
|
|||
38
МихаилМ
09.01.13
✎
21:33
|
||||
39
palpetrovich
09.01.13
✎
22:48
|
(36) (18) работает, выводит ИМЕННО совпадающие!
...короче, ворос формулировать надо поточне, что-бы не было недопонимания ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |