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

29.01.14

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

Поиск любых справочников по частям слов наименования

Файлы

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

Наименование Скачано Купить файл
Поиск номенклатуры.dt
.dt 2,04Mb
11 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Поиск любых справочников по частям слов наименования, при этом не важно, в каком порядке вводить части слов наименования.
Например при строке поиска "ламп 40 вт" результат будет тем же, что и при поиске по строке "вт ламп 40".
Поиск происходит очень быстро, при номенклатуре в 40 000 позиций, время работы около 1,5 - 2 сек.

Подключение к конфигурации производится путем объединения конфигураций.
В прилагаемом файле находится база данных с небольшим количеством номенклатуры для примера.
Конфигурация базы данных содержит только необходимые объекты метаданных:

1. Общий модуль с небходимыми процедурами
2. Подписка на событие "ПриЗаписи" объекта "СправочникОбъект.Номенклатура". Если необходимо выполнять поиск
    в другом справочнике, то его тип нужно добавить в список типов источника подписки.
3. Регистр сведений "_БазаСлов" хранит "огрызки" слов, составляющих наименования элементов справочника
4. Обработка "_ПереиндексацияБазыСлов" служит для первоначального заполнения регистра сведений "_БазаСлов", а 
    так же для его очистки в случае необходимости.
5. Обработка "_БыстрыйПоискЭлементовСправочника" служит для ввода поисковой строки и вызывается из формы списка
    справочника. Я в своем примере на форму списка номенклатуры добавил две кнопки "Поиск" и "ПоискОчистка", назначил
    им сочетания клавиш "F7" и "Ctrl+F7"

Не используются внешние компоненты.

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3768    13    1    

16

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    46034    31    13    

49

Поиск данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

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

13420 руб.

14.05.2012    169761    358    253    

589

Поиск данных Программист Пользователь 1С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Умное сравнение табличных документов с визуальной подсветкой. В отличие от стандартного сравнения, обработка ищет отличия по ключевому значению, игнорируя сдвиги строк. Результат — цветовая маркировка добавленных, удаленных и измененных строк прямо в документе + точный лог расхождений по каждой ячейке.

1 стартмани

27.04.2026    803    8    war41k    5    

15

Поиск данных Нейросети Программист Бесплатно (free)

Практический кейс исследовательской разработки (R&D) с использованием искусственного интеллекта и нейросетей в 1С для поиска по прайсам поставщиков. Рассматривается гибридный поиск (Hybrid Search: векторный + полнотекстовый), позволяющий находить товары по смыслу, а не по буквам — даже при сленге, опечатках и разном написании. Решение работает полностью локально, без облаков, и интегрируется с 1С.

14.01.2026    2676    Prepod2003    14    

13

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    4729    1    1    

3

Поиск данных 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

Расширение добавляет возможность в 1С в любых полях и отборах выбирать значения не только Код, Наименование или Номер, но и Уникальный идентификатор, Навигационную ссылку, Объект не найден, Представление документа.

2 стартмани

18.08.2025    7827    38    sapervodichka    14    

77
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cool.vlad4 2 30.01.14 01:27 Сейчас в теме
3. Регистр сведений "_БазаСлов" хранит "огрызки" слов, составляющих наименования элементов справочника
4. Обработка "_ПереиндексацияБазыСлов" служит для первоначального заполнения регистра сведений "_БазаСлов", а
так же для его очистки в случае необходимости.

А зачем? когда данная задача решается просто разбиением строки и формированием запроса через ПОДОБНО? и по скорости уж точно не медленнее, чем
Поиск происходит очень быстро, при номенклатуре в 40 000 позиций, время работы около 1,5 - 2 сек.
2. Re:аниматор 337 30.01.14 09:26 Сейчас в теме
Подскажу вам хитрость как это легко доработать в процедуре поиске стандартных конфигураций.

На примере обработки "Подбор номенклатуры" УТ 10.3

Процедура ВыполнитьПоиск()
...

		// заменим спецсимволы
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "~", "~~");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "%", "~%");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "_", "~_");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "[", "~[");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "-", "~-");
		ШаблонПоиска = "%" + ШаблонПоиска + "%";

		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("ШаблонПоиска", ШаблонПоиска);

...

Показать


Заменяем на

		// заменим спецсимволы
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "~", "~~");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "%", "~%");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "_", "~_");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "[", "~[");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "-", "~-");
		
		ШаблонПоиска = СокрЛП(ШаблонПоиска);

		ТекстИ = "
		|	И ";
		ТекстУсловияОтбораПоШаблону = "";
		СписокПодШаблонов = Новый СписокЗначений;
		ЕстьПробелы = Найти(ШаблонПоиска, " ") > 0;
		н = 0;
		Пока ЕстьПробелы Цикл
			ПозицияПробела = Найти(ШаблонПоиска, " ");
			ПодШаблон = Лев(ШаблонПоиска, ПозицияПробела - 1);
			ПодШаблон = "%" + ПодШаблон + "%";
			СписокПодШаблонов.Добавить(ПодШаблон);
			ШаблонПоиска = СокрЛП(Прав(ШаблонПоиска, СтрДлина(ШаблонПоиска) - ПозицияПробела));
			ЕстьПробелы = Найти(ШаблонПоиска, " ") > 0;
			ТекстУсловияОтбораПоШаблону = ТекстУсловияОтбораПоШаблону +
			?(ТекстУсловияОтбораПоШаблону = "", "", ТекстИ) + "	Номенклатура." + ЭлементыФормы.СписокВидовПоиска.Значение + " ПОДОБНО &ШаблонПоиска" + н + " СПЕЦСИМВОЛ ""~""";
			н = н + 1;
		КонецЦикла;
		
		ШаблонПоиска = "%" + ШаблонПоиска + "%";

		СписокПодШаблонов.Добавить(ШаблонПоиска);
		ТекстУсловияОтбораПоШаблону = ТекстУсловияОтбораПоШаблону +
		?(ТекстУсловияОтбораПоШаблону = "", "", ТекстИ) + "	Номенклатура." + ЭлементыФормы.СписокВидовПоиска.Значение + " ПОДОБНО &ШаблонПоиска" + н + " СПЕЦСИМВОЛ ""~""";
		
		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("ШаблонПоиска", ШаблонПоиска);

Показать


P.S. не нужно хранить "огрызки" слов. Время работы около 0,5 - 1 сек.
4. kida1 154 25.09.19 15:02 Сейчас в теме
(2) идея хорошая, вероятно вы выложили не весь текст который нужно заменить, и не совсем универсальный механизм.
Предлагаю в обработке Подбор номенклатуры в процедуре ВыполнитьПоиск() следующее:
	
	
		// заменим спецсимволы
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "~", "~~");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "%", "~%");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "_", "~_");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "[", "~[");
		ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "-", "~-");
		
		Запрос = Новый Запрос;
		
		ШаблонПоиска = СокрЛП(ШаблонПоиска);

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

		// Инициализируем структуру выбранной строки (реквизиты обработки).
		Если ПодборПоСправочнику Тогда

			Запрос.Текст = "
			|ВЫБРАТЬ ПЕРВЫЕ 51
			|	Номенклатура.Код КАК Код,
			|	Номенклатура.Артикул КАК Артикул,
			|	Номенклатура.Ссылка КАК Номенклатура,
			|	Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
			|	Номенклатура.Родитель КАК Родитель
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|
			|ГДЕ
			|   "+ТекстУсловияОтбораПоШаблону+"
			//|	Номенклатура." + ЭлементыФормы.СписокВидовПоиска.Значение + " ПОДОБНО &ШаблонПоиска СПЕЦСИМВОЛ ""~""
			|	И Номенклатура.ЭтоГруппа = Ложь
			|	" + ?(ЕстьНоменклатурнаяГруппа, "И Номенклатура.НоменклатурнаяГруппа В (&НоменклатурнаяГруппа)", "") + "
			|";

		Иначе
Показать
3. orfos 219 17.07.15 12:56 Сейчас в теме
Спасибо. Очень помогло.
5. user1583870 15.04.21 12:11 Сейчас в теме
Подскажите, а при поиске "ламп 40 вт" будет найдена запись, в которой "40 вт", "ламп 40", "ламп 40 вт желтый свет"? то есть записи, в которых совпал контекст совпал максимально?
Для отправки сообщения требуется регистрация/авторизация