Поиск по произвольным частям текста

07.04.19

Задачи пользователя - Поиск данных

Часто мы точно не знаем точное и полное название элемента справочника. Но знаем примерно его части. Например, хотим найти валюту "Доллар США", но помним только что название точно содержит два слова "олл" и "ША".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Поиск по произвольным частям текста, демо-база
.dt 273,95Kb ver:1
3
3 Скачать (1 SM) Купить за 1 850 руб.

Демо-база работает на платформе 1с.8.3.12 и выше.

Часто мы точно не знаем точное и полное название элемента справочника. Но знаем примерно его части. Например, хотим найти валюту "Доллар США", но помним только что название точно содержит два слова "олл" и "ША".

Паттерн получения запроса:

Функция ПолучитьЗапросНаПоискПоЛексемамВСправочнике(Текст,Справочник="Валюты",Тип="Справочник",Поле="Наименование") Экспорт
	
	// может будет медленно, когда ссылок будет много.
	// разделим строку поиска на лексемы через пробел
	МассивЛексем	= СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Текст," ");
	Для Счетчик = 0 По МассивЛексем.Количество()-1 Цикл
		МассивЛексем[Счетчик]	= "%"+МассивЛексем[Счетчик]+"%";
	КонецЦикла;
	//Если СтрокаМассива.Количество()>5 Тогда
	//	Сообщить("Поиск будет произведен только по первым пяти частям строки.",СтатусСообщения.Внимание);
	//КонецЕсли;
	
	Запрос	= Новый Запрос;
	Запрос.УстановитьПараметр("Лексема0",МассивЛексем[0]);
	Запрос.УстановитьПараметр("Лексема0Р",ВосстановитьРаскладку(МассивЛексем[0]));
	Запрос.Текст	= 
		"ВЫБРАТЬ различные
		|	Справочник.Ссылка,Справочник.ПометкаУдаления
		|ИЗ
		|	Справочник.Валюты КАК Справочник
		|ГДЕ
		|	(Справочник.Наименование ПОДОБНО &Лексема0
		|	ИЛИ Справочник.Наименование ПОДОБНО &Лексема0Р)"
		;
		
	Для Счетчик = 1 По МассивЛексем.Количество()-1 Цикл
		Запрос.УстановитьПараметр("Лексема"+Счетчик+"",МассивЛексем[Счетчик]);
		Запрос.УстановитьПараметр("Лексема"+Счетчик+"Р",ОбщегоНазначения.ВосстановитьРаскладку(МассивЛексем[Счетчик]));
		Запрос.Текст	= Запрос.Текст+"
			|И (Справочник.Наименование ПОДОБНО &Лексема"+Счетчик+"
			|	ИЛИ Справочник.Наименование ПОДОБНО &Лексема"+Счетчик+"Р)";
	КонецЦикла;
		
	Запрос.Текст	= СтрЗаменить(Запрос.Текст,"Валюты",Справочник);	
	Запрос.Текст	= СтрЗаменить(Запрос.Текст,"Справочник",Тип);	
	Запрос.Текст	= СтрЗаменить(Запрос.Текст,"Наименование",Поле);
		
	Возврат Запрос;	
	
КонецФункции

 

Использование запроса в управляемых формах - подключение к полю выбора:

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	СтандартнаяОбработка	= Ложь;

	Запрос			= ОбщегоНазначения.ПолучитьЗапросНаПоискПоЛексемамВСправочнике(Параметры.СтрокаПоиска,"Валюты");		
	//Запрос.Текст	= Запрос.Текст+" И НЕ Справочник.НеИспользоватьВВыборе";
	
	Результат				= Запрос.Выполнить();
	
	ДанныеВыбора			= Новый СписокЗначений;
	ВыборкаДетальныеЗаписи	= Результат.Выбрать();
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		Структура = Новый Структура("Значение,ПометкаУдаления",ВыборкаДетальныеЗаписи.Ссылка,ВыборкаДетальныеЗаписи.ПометкаУдаления);
		
		Элемент = ДанныеВыбора.Добавить();
		Элемент.Значение = Структура;
		
	КонецЦикла;
	
КонецПроцедуры

 

текст поиск вхождение слов

См. также

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    159857    341    253    

574

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55592    17    23    

43

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    19913    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    23280    mrXoxot    44    

130

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18319    1228    elcoan    53    

125

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

3 стартмани

10.04.2023    12853    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    7893    kalyaka    6    

33

WEB-интеграция Работа с интерфейсом Пользователь Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для конфигурации 1С:Розница 2.3.

3600 руб.

29.04.2022    14401    2    10    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7262 07.04.19 20:12 Сейчас в теме
Чем не устроил стандартный механизм?
Прикрепленные файлы:
4. user635629_exter 37 09.04.19 16:33 Сейчас в теме
(1) спасибо, не знал про это.
(3) спасибо, перед публикацией честно искал дубли, не нашел. По ссылке хорошая вещь, но мне бы по-проще.
2. RustIG 1836 07.04.19 20:30 Сейчас в теме
(0) интересный способ!
(1) то, что обратили внимание на типовой механизм +
а так-то можно и порассуждать:
а) типовой механизм - работает только для справочников, а в статье универсально механизм - можно применить алгоритм для поиска всех документов с комментарием "Иванов" + "наличка"
б) типовой механизм работает только для поля ввода, а в статье универсально - для любого элемента формы можно запустить поиск - например, обход строк в ТабличномДокументе и поиск чего-либо
в) неизвестно как запрограммирован типовой алгоритм, а тут код открыт - можно свою функциональность довнести.
3. Evg-Lylyk 4926 08.04.19 11:29 Сейчас в теме
Оставьте свое сообщение