Привет всем есть УТ 10.3 нужно было переделать стандартны поиск номенклатуры чтоб искал в наименовании, в добавленном справочнике кроссов, брендах, артикулах, причем по всякому по нескольким словам (к примеру: болт амор подвес Камаз) должен найти все болты амортизатора подвески для Камаза) + если ищут артикул искал и по точному совпадению и очищал строку поиска от посторонних символов (-/*,.) и искал по подобию, но не суть все работает только медленно дольше всего отрабатывает вот этот запрос секунд 15-20 не пойму что с ним не так
Подскажите что можно с ним сделать чтоб работал быстро ?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СправочникНоменклатура.Ссылка КАК Номенклатура,
| СправочникНоменклатура.Артикул,
| СправочникНоменклатура.Родитель,
| СправочникНоменклатура.Код
|ИЗ
| Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
| ПО СайтКроссыТоваров.Артикул = СправочникНоменклатура.ПолеПоиска
| И СайтКроссыТоваров.Бренд = СправочникНоменклатура.Бренд
|ГДЕ
| СайтКроссыТоваров.КроссПоисковыйАртикул ПОДОБНО &Представление
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НоменклатураСправочник.Ссылка,
| НоменклатураСправочник.Артикул,
| НоменклатураСправочник.Родитель,
| НоменклатураСправочник.Код
|ИЗ
| Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураСправочник
| ПО СайтКроссыТоваров.Артикул = НоменклатураСправочник.ПолеПоиска
| И СайтКроссыТоваров.Бренд = НоменклатураСправочник.Бренд
|ГДЕ
| СайтКроссыТоваров.КроссПоисковыйАртикул = &Крос";
Запрос.УстановитьПараметр("Представление", Т);
Запрос.УстановитьПараметр("Крос", Строка);
ТЗ = Запрос.Выполнить().Выгрузить();
ПоказатьПодскажите что можно с ним сделать чтоб работал быстро ?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Попробуйте такой запрос.
ВЫБРАТЬ
СайтКроссыТоваров.Артикул,
СайтКроссыТоваров.Бренд
ПОМЕСТИТЬ втСайтКроссыТоваров
ИЗ
Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
ГДЕ
СайтКроссыТоваров.КроссПоисковыйАртикул ПОДОБНО &Представление
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СайтКроссыТоваров.Артикул,
СайтКроссыТоваров.Бренд
ИЗ
Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
ГДЕ
СайтКроссыТоваров.КроссПоисковыйАртикул = &Крос
;
ВЫБРАТЬ РАЗЛИЧНЫЕ
СправочникНоменклатура.Ссылка,
СправочникНоменклатура.Артикул,
СправочникНоменклатура.Родитель,
СправочникНоменклатура.Код
ИЗ
втСайтКроссыТоваров КАК втСайтКроссыТоваров
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
ПО (втСайтКроссыТоваров.Артикул = СправочникНоменклатура.ПолеПоиска
И втСайтКроссыТоваров.Бренд = СправочникНоменклатура.Бренд)
Показать
(9) Я думаю он имел ввиду что-то подобное:
Вкладка Индекс, в конструкторе
ВЫБРАТЬ
СайтКроссыТоваров.Артикул,
СайтКроссыТоваров.Бренд
ПОМЕСТИТЬ втСайтКроссыТоваров
ИЗ
Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
ГДЕ
СайтКроссыТоваров.КроссПоисковыйАртикул ПОДОБНО &Представление
Индексировать ПО Артикул, Бренд
ПоказатьВкладка Индекс, в конструкторе
(1) вместо ОБЪЕДИНИТЬ ВСЕ можно изменить условие в ГДЕ:
ВЫБРАТЬ
СайтКроссыТоваров.Бренд,
СайтКроссыТоваров.Артикул
ПОМЕСТИТЬ втСайтКроссыТоваров
ИЗ
Справочник.СайтКроссыТоваров КАК СайтКроссыТоваров
ГДЕ
СайтКроссыТоваров.КроссПоисковыйАртикул = &Крос
ИЛИ СайтКроссыТоваров.КроссПоисковыйАртикул ПОДОБНО &Представление
ИНДЕКСИРОВАТЬ ПО
СайтКроссыТоваров.Бренд,
СайтКроссыТоваров.Артикул
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот