|
v8: Поиск по артикулу
| ☑ |
0
palladyi
26.12.13
✎
10:47
|
Добрый день!
Поставили задачу - не могу понять с какой стороны подойти к решению.
Нужно найти элемент номенклатуры по артиклу, но без спец символов.
то есть у нас есть артикул к примеру: 0556-32*
нужно найти его по значению 055632
|
|
1
Леопольд Роскошный
26.12.13
✎
10:48
|
в запросе, ключевое слово подробно
|
|
2
IamNotAlexy
26.12.13
✎
10:49
|
|
|
3
Леопольд Роскошный
26.12.13
✎
10:50
|
(1)
(2) ну или так
|
|
4
Поpyчик-4
26.12.13
✎
10:52
|
(0) Полнотекстовый поиск или держать второе поле с нормализованным значением и искать по нему.
|
|
5
palladyi
26.12.13
✎
10:54
|
хм... Спасибо, попробую все варианты, посмотрим, что быстрее отработает.
|
|
6
palladyi
26.12.13
✎
12:56
|
что-то не получается, пишу после каждого символа из введенного артикула "_", затем получившуюся строку использую как шаблон для ПОДОБНО, но поиск все равно ничего не дает.
|
|
7
palladyi
26.12.13
✎
12:59
|
все, получилось!
|
|
8
palladyi
26.12.13
✎
13:00
|
Спасибо всем!
если кому поможет - выкладываю текст.
поле Артикул - вводится на форме.
Для Н = 1 По СтрДлина(Артикул) - 1 Цикл
АртШаблон = "%" + АртШаблон + Сред(Артикул, Н, 1) + "_";
КонецЦикла;
АртШаблон = АртШаблон + "%";
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул ПОДОБНО &Арт";
Запрос.УстановитьПараметр("Арт", АртШаблон);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Ном = Выборка.Ссылка.ПолучитьОбъект();
Форма = Ном.ПолучитьФорму("ФормаЭлемента");
Форма.Открыть();
КонецЦикла;
|
|