1. user820837 25.03.20 18:20 Сейчас в теме

ПОДОБНО таблице значений

Пытаюсь сделать удобный поиск номенклатуры по наименованию. Нужно чтобы искало по отдельным слогам.

К примеру есть наименование "Колодки тормозные передние" нужно чтобы при вводе в "кол пер" выдавало эту номенклатуру.

Для начала я разбил запрос на отдельные слова
РазбитыйЗапрос = СтрРазделить(Элемент.Значение, " ", ложь);


получившийся массив внес в таблицу значений
 
	Слоги = новый таблицазначений;
        Слоги.Колонки.Добавить("название", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)));
        Для Каждого ЭлементМассива из РазбитыйЗапрос Цикл
        стр = Слоги.добавить();
        стр.название = ЭлементМассива;
        КонецЦикла;
 


теперь запросом запросом нужно сравнить слоги из ТЗ с наименованием номенклатуры, тут у меня тупик.
Пока набрасал такой запрос

	
		Запрос = Новый Запрос;

	       Запрос.Текст =
		"ВЫБРАТЬ
		| ВнешнийИсточник.название
		|ПОМЕСТИТЬ ВременнаяТаблица
		|ИЗ
		|    &ВнешнийИсточник КАК ВнешнийИсточник
		|;
		|
		////////////////////////////////////////////////////////////­////////////////////
		
		|ВЫБРАТЬ
		| ВременнаяТаблица.название,
		| Номенклатура.Код
		|ИЗ
		| Справочник.Номенклатура КАК Номенклатура
		|        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК ВременнаяТаблица
		|        ПО Номенклатура.Наименование ПОДОБНО ВременнаяТаблица.название
		|";   

		Запрос.УстановитьПараметр("ВнешнийИсточник", Слоги);
Показать


И ессестно оно не работает.
Найденные решения
4. Jen1978 16 26.03.20 11:02 Сейчас в теме
нужно так
Слоги= "%" + СтрЗаменить(Элемент.Значение," ","%") + "%";э



затем
Запрос = Новый Запрос;

           Запрос.Текст ="
        |ВЫБРАТЬ
        | Номенклатура.Наименование,
        | Номенклатура.Код
        |ИЗ
        | Справочник.Номенклатура КАК Номенклатура
        |        ГДЕ Номенклатура.Наименование ПОДОБНО &Слоги
        |";   

        Запрос.УстановитьПараметр("Слоги", Слоги);
Показать
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. antz 25.03.20 19:43 Сейчас в теме
Не надо никакой таблицы значений. Вы справку про ПОДОБНО читали вообще?
3. muskul 26.03.20 04:11 Сейчас в теме
Мало того родной поиск так и сработает как вы хотите
4. Jen1978 16 26.03.20 11:02 Сейчас в теме
нужно так
Слоги= "%" + СтрЗаменить(Элемент.Значение," ","%") + "%";э



затем
Запрос = Новый Запрос;

           Запрос.Текст ="
        |ВЫБРАТЬ
        | Номенклатура.Наименование,
        | Номенклатура.Код
        |ИЗ
        | Справочник.Номенклатура КАК Номенклатура
        |        ГДЕ Номенклатура.Наименование ПОДОБНО &Слоги
        |";   

        Запрос.УстановитьПараметр("Слоги", Слоги);
Показать
5. user820837 26.03.20 11:13 Сейчас в теме
(4) Спасибо большое за помощь!
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день