Имя: Пароль:
1C
1С v8
Как бы в запросе вызвать свою функцию?
0 Mashinist
 
03.03.16
21:35
ГДЕ
    Номенклатура.Артикул ПОДОБНО "%"+&Артикул+"%"

Клиент хочет что бы Артикул содержал пробелы, а поиск был без учета пробелов

Как бы для сравнения взять что-то типа Стрзаменить(Номенклатура.Артикул, " ","")
1 poligraf
 
03.03.16
21:41
(0) второй реквизит сделай.
функция, даже если вызовешь, очень не хорошо на время выполнения повлияет
2 Mashinist
 
03.03.16
21:43
(1) про второй реквизит это понятно
так и думал сделать... если других вариантов нет

ну и понятно, что это было бы не очень быстро...
помнится в 7ке можно было свою функцию вызывать :-)
3 shuhard_серый
 
03.03.16
21:49
(0) что мешает сделать через СКД ?
4 Mashinist
 
03.03.16
21:50
(3) на СКД можно? КАК?
5 Garykom
 
гуру
03.03.16
21:53
может лучше разбить артикул на части по пробелам и искать по этим частям?
6 Mashinist
 
03.03.16
21:57
(5) чет не очень понял

клиент хочет ввести "R23" и найти "KR 23526"
7 Garykom
 
гуру
03.03.16
21:59
(6) думал клиент хочет ввести наоборот "R 23" и найти в том числе "KR23526"
8 Garykom
 
гуру
03.03.16
22:00
(6) но тогда еще проще все, разбиваешь на отдельные символы свой артикул который ищем
и находишь все артикулы с данными вхождениями символов

затем второй прогон чтобы символы были в правильном порядке
9 Garykom
 
гуру
03.03.16
22:01
(8)+ хотя не надо второй, можно же "%R%2%3%"
10 shuhard_серый
 
03.03.16
22:06
(4) дык в СКД своя функция
11 Mashinist
 
03.03.16
22:08
(9) оно конечно прикольно
но такой шаблон находит так же "PR 2002-0003" т.е. "R20" тоже попадает, а не хотелось бы
но это уже кое-что

(10) в СКД есть вычисляемое поле. ты про это? так я как раз не понимаю как там СтрЗаменить вызвать
12 Garykom
 
гуру
03.03.16
22:14
(11) а можно функцию которая поймет что "R" отдельно, а "23" это вместе?

или такой функции нетути?
13 франц
 
03.03.16
23:19
Полнотекстный поиск
14 Mankubus
 
04.03.16
05:59
(11) сделай функцию в общем модуле и в вычисляемом поле ее вызывай
15 13_Mult
 
04.03.16
07:16
(13) +1
16 Fedor-1971
 
04.03.16
08:50
(7) замени "пробел" в артикуле на "_" - одиночный символ или "%" - любое количество символов.

В общем виде можешь написать инструкция: Если хотим найти чёткое соответствие пишем "Р 023", если хотим найти все записи с одиночным символом пишем "Р?23", если хотим найти записи начинающиеся на "Р" и содержащие "23" пишем "Р*23".
Перед поиском заменяешь ? на "_", а "*" на "%" и не паришься, что искали, то и получат.
17 Мимохожий Однако
 
04.03.16
09:02
В подобных случаях, однажды я сделал дополнительный реквизит (во всех типовых есть такой), в который поместил АртикулБезПробела. И поиск делал через регистр сведений с этим свойством.
18 vde69
 
04.03.16
09:17
можно пробовать полнотекстовый поиск, там возможностей больше...

а вообще я себе слабо представляю ЗАЧЕМ в запросе искать по артикулу? (если только это загрузка какая, но там вполне можно делать и в цикле доработку результата)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс