HelpF.pro

Ввод по строке - поиск по первым символам или в любом месте наименования

При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования!

В 1С 8.3 по умолчанию настройки справочника номенклатуры такие:

При такой настройке, механизм поиска в справочнике номенклатуры работает так:

 - в справочнике

- в документе вводим первые символы Пета и видим такой результат подсказки:

Но, такой поиск не удобен и менеджеры захотели подбирать номенклатуру по артикулу, например 1320

Для этого изменим настройки указав поиск по Любой части и включив полнотекстовый поиск:

Сохраняем конфигурацию и в режиме предприятие обновляем Полнотекстовый поиск: Меню - Все функции - Стандартные  - Управление полнотекстовый поиском

После этого пробуем в документе выполнить поиск по 1320 и видим:

Все ) Менеджеры пищат как дети на новогодней елке!


Пока писал эту статью нашел в интернете другое решение для платформы 8.2:

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)

ОбработкаПолученияДанныхВыбора (ChoiceDataGetProcessing)

Синтаксис:

ОбработкаПолученияДанныхВыбора(<ДанныеВыбора>, <Параметры>, <СтандартнаяОбработка>)

В модуле менеджера справочника "Номенклатура" пишем:

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

В  обработчике - ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбраблтка) для нас важны все три параметра. В первый "ДанныеВыбора" мы загружаем наш список номенклатуры, полученный по нашему алгоритму. Из параметра "Параметры" мы получим значение введенное пользователем, а третьему параметру "СтандартнаяОбработка" мы должны поставить значение "Ложь"(отключаем стандартный алгоритм системы).

В результате одной небольшой процедурой мы полностью решили поставленную задачу.


Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1767.html