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

10.09.24

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

Устали от стокового поиска номенклатуры в табличной части документов? Постоянно вспоминаете, как же называется та или иная позиция? Хватит это терпеть! вводите то, что запомнили, и выбирайте из списка нужное.

Клиент попросил поиск номенклатуры в табличной части документа как и в глобальном поиске, по любому вхождению. В результате написал такой код.

Все через запрос, через "Подобно".

Для снижения нагрузки на базу можно реализовать начала поиска при вводе пробела. В моем коде запросы срабатывают после вводе каждого символа, начиная с с третьего.

Основная особенность в том, что ищет по двум раздельным словам. К примеру, номенклатура: "Шоколад (Milka/С клубникой со сливками/300г.)" можно ввести "Milka 300" и запрос найдет максимально схожую номенклатуру, несмотря на лишние слова между искомыми словами в названии номенклатуры.

Код встраиваем в нужный нам документ:

&НаКлиенте
Процедура РасшПоиск_ТоварыНоменклатураАвтоПодборПосле(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	Если СтрДлина(Текст) < 2 тогда
		Возврат;
	КонецЕсли;
	СтандартнаяОбработка = Ложь; 
	СписокН = Новый СписокЗначений;
	СписокН.ЗагрузитьЗначения(ПолучитьНоменклатуру(Текст));
	ДанныеВыбора = СписокН;      
КонецПроцедуры

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

 

Infostart MagicInput

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


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

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

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

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

См. также

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

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

180000 руб.

05.09.2025    5492    2    1    

4

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

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

6000 руб.

25.02.2026    5820    19    1    

21

Поиск данных Системный администратор Программист 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    172906    360    253    

591

Поиск данных Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Беларусь Россия Казахстан Платные (руб)

Встройте искусственный интеллект прямо в вашу 1С за один вечер. «Цифровой сотрудник» - это чат с нейросетью внутри привычного интерфейса 1С, который умеет отвечать не «в общем», а по вашим данным: обучите его на регламентах, инструкциях и прайсах компании, подключите к данным информационной базы - и получите ассистента, который консультирует бухгалтера по учёту, отвечает менеджеру по прайсу и достаёт цифры из базы по запросу на обычном русском языке. Поддерживаются OpenAI, DeepSeek, Qwen и локальные LLM - включая вариант, когда данные вообще не покидают ваш контур.

3660 руб.

03.08.2026    938    1    0    

3

Поиск данных 1С:Управление торговлей 11 Россия Платные (руб)

Возможность по ИНН контрагента быстро найти Партнера с которым связан контрагент.

7015 руб.

11.09.2025    1226    1    0    

3

НДС 22% Поиск данных Регламентированный учет и отчетность Взаиморасчеты Учет доходов и расходов Анализ учета Учет документов Бизнес-аналитик Бухгалтер Пользователь 1С 8.3 1С:Бухгалтерия 3.0 Россия Налоговый учет НДС Абонемент ($m)

🔍 Обработка предназначена для быстрого анализа входящего НДС по документам поступления. Она позволяет увидеть, какие ставки НДС применены в каждом документе, выявить ошибки в их использовании и проконтролировать корректность учета.

6100 руб.

06.07.2026    316    1    0    

2

Учетные задачи Поиск данных Подбор и обработка объектов 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    701    2    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SirStefan 55 19.10.24 15:09 Сейчас в теме
|ГДЕ 
	|	Номенклатура.ЭтоГруппа = ЛОЖЬ
        |        " + СтрокаПоиска;

и тогда не нужно будет проверять "Если Индекс = 0 Тогда"
Для отправки сообщения требуется регистрация/авторизация