Как реализовать поиск по части слова

1. squall84 04.12.13 15:29 Сейчас в теме
Добрый день.
Была поставлена цель добиться поиска по любой части слова в Заказах Покупателя.
Т.е. при создании заказа мне нужно вводить номенклатуру с первой буквы, иначе поиск не происходит. А хотелось бы вводить любую часть из любого слова номенклатуры для поиска.
Обновил платформу до 8.3.3. В конфигураторе изменил в свойствах Документа "Заказ Покупателя" настройку поля ввода и выставил поиск по любой части. Но ничего не изменилось.
Подсказали, что можно написать запрос и вставить в процедуру окончания ввода в строке. Но мне бы хотя бы пример какой-нибудь получить подобного скрипта?
Подскажите, как можно решить эту проблему?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Поручик 4674 04.12.13 16:06 Сейчас в теме
(1) Используйте или полнотекстовый поиск или в запросе используйте ПОДОБНО. Информацию ищите в гугле, на тему поиска по неполному соответствию исписаны гигабайты страниц.
5. kao_andi 20 04.12.13 17:33 Сейчас в теме
(1) squall84, Делаешь поиск в чем в форме выбора, подбора или в поле номенклатуры табличной части?
20. AnryMc 849 04.01.21 10:34 Сейчас в теме
(1)
Т.е. при создании заказа мне нужно вводить номенклатуру с первой буквы, иначе поиск не происходит.


Посмотри на рисунок ниже
Прикрепленные файлы:
23. tusv 211 30.05.22 13:25 Сейчас в теме
(1)Лучше не в окончание ввода по строке, а в АвтоПодбор. И без всяких запросов
&НаКлиенте
Процедура НоменклатураАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	ПараметрыПолученияДанных.СпособПоискаСтроки = СпособПоискаСтрокиПриВводеПоСтроке.ЛюбаяЧасть;
КонецПроцедуры
2. Мать Тереза 04.12.13 15:58 Сейчас в теме
А на какой конфигурации это у вас - в УТ 11 поиск идет по любой части слова или артикула.
4. squall84 04.12.13 16:32 Сейчас в теме
(2) Мать Тереза, УПП у меня. Поиск по любой части работает в номенклатурах. Но не работает в заказах покупателей.
6. cool.vlad4 2 04.12.13 17:38 Сейчас в теме
алгоритм просто до безобразия, дробишь введенное на слова, прибавляешь к словам спецсимволы, ищешь через запрос "подобно". пример? ну где-то я в комментариях когда-то писал. лучше посмотреть готовую подсистему http://infostart.ru/public/89892/ (там кстати и неправильная раскладка и транслит по моему учтены. хотя могу и ошибаться )
7. Enyel 04.12.13 17:48 Сейчас в теме
Как-то так
Процедура ТоварыНоменклатураОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
запрос=новый запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО &Наименование");
запрос.УстановитьПараметр("Наименование","%"+текст+"%");
выборка=запрос.Выполнить().Выбрать();
СписокВыборки=новый списокзначений;
пока выборка.Следующий() цикл
Списоквыборки.добавить(Выборка.Ссылка);
конеццикла;
элемент.значение=Выбратьизсписка(Списоквыборки,элемент,).значение;
КонецПроцедуры
10. Styvi 6 05.12.13 14:45 Сейчас в теме
(7) орфографические ошибки:
элемент.значение=СписокВыборки.ВыбратьЭлемент("Выбор товара",).значение;
11. Enyel 06.12.13 11:11 Сейчас в теме
(10) Styvi, это не орфографическая ошибка. В вашем случае открывается модальное окно с выбором, а в моём - выпадающий список, сходный со стандартным.

С поиском по артикулу будет выглядеть так:

Процедура ТоварыНоменклатураОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
запрос=новый запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО &Наименование
| ИЛИ Номенклатура.Артикул ПОДОБНО &Наименование");
запрос.УстановитьПараметр("Наименование","%"+текст+"%");
выборка=запрос.Выполнить().Выбрать();
СписокВыборки=новый списокзначений;
пока выборка.Следующий() цикл
Списоквыборки.добавить(Выборка.Ссылка);
конеццикла;
СписокВыборки.СортироватьПоЗначению();
ВыбранноеЗначение=ВыбратьИзСписка(СписокВыборки,Элемент,);
попытка
элемент.значение=ВыбранноеЗначение.значение
исключение
конецпопытки;
КонецПроцедуры
12. squall84 06.12.13 16:12 Сейчас в теме
(7) Enyel, Спасибо!!! Заработало. Вот только возник один вопрос.
Я ввожу часть слова и мне выпадает список. Если я хочу продолжить ввод, т.е. нажимаю на любую часть рабочей области 1с, то мне выдается ошибка "Значение не является значением объектного типа (значение)".
Оно не особо мешает, но все-таки немного напрягает. Не могу понять, в чем проблема.
13. Enyel 06.12.13 16:23 Сейчас в теме
(12) squall84, в (11) я дописал условие чтобы эта ошибка не возникала. Дело в том, что если отменить выбор, то значения и не будет, вот и ругается. во втором варианте если не находит значения - то возвращается к стандартному поиску и можно или дальше дописать или отменить поиск.
14. squall84 06.12.13 17:08 Сейчас в теме
(13) Enyel, Спасибо огромное!!!
15. Enyel 06.12.13 17:41 Сейчас в теме
(14) squall84, Рад был помочь :)
21. Farhat95 30.05.22 10:55 Сейчас в теме
(7) Огромное тебе спасибо!!! Работает на Ура!!!
22. Farhat95 30.05.22 12:22 Сейчас в теме
8. Enyel 05.12.13 12:33 Сейчас в теме
Однако есть один минус такой замены - не будет поиска по артикулу
9. Styvi 6 05.12.13 14:39 Сейчас в теме
(8) так по Артикулу-то можно добавить поиск в эту же процедуру, и будет список вариантов - сначала подобные по Наименованию, а потом подобные по Артикулу - в одном списке выбора...
16. user1207871 21.04.19 09:32 Сейчас в теме
Мы реализовали поиск по части слова и исправление ошибок при вводе через ElasticSearch
17. q81 03.01.21 20:50 Сейчас в теме
Я совсем чайник. А куда эту процедуру вводить?
Зашел в конфигуратор, но не могу найти процедуру.
18. user1503726 03.01.21 21:05 Сейчас в теме
(17) в конфигураторе есть пункт меню Глобальный поиск (если не ошибаюсь, меню Конфигурация).
Вопрос в пользовательском режиме - включать или нет функцию полнотекстрвого поиска и как для конкретного пользователя переключить поиск с поиска по части слова на поиск по первым символам и обратно.
Возможно я не разглядела преимущества полнотекстового поиска, но был момент, когда свежедобавленные элементы в него не попадали, а после перезагрузки и отключения полнотекстового поиска появились (но по первым символам).
19. q81 03.01.21 21:41 Сейчас в теме
А что вводить в запрос поиска?
24. Farhat95 12.09.22 13:29 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот