Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор по наименованию Содержит и Равно , как сделать идеальный отбор          
Yevhenii_S Подменю пользователя
сообщение 30.03.19, 13:29
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Хмельницкий
Спасибо сказали: 2 раз
Рейтинг: 0

1С:Предприятие 8.2 (8.2.19.130)

"Управление торговым предприятием для Украины", редакция 1.2.
Разработка конфигурации: "ABBYY Ukraine", 2007-2015 (1.2.29.1)

Здравствуйте коллеги.
Хочу реализовать что то подобное "Живому поиску" по названию номенклатуры.
Для этого ловлю событие "АвтоподборТекста"
в событии делаю классический отбор по наименованию. Всё вроде работает. Но возникает ньюанс к примеру есть ном. "ГП-01 мужской" и "П-01". Если делаю сравнение "содержит" то при вводе "П-0" в список попадают все записи с "ГП-0". Когда делаю отбор по сравнению с "Равно" нужно полностью вводить название модели что не очень удобно, да и часто есть необходимость быстро выбрать по порядку наименования типа "П-01", "П-02", ......"П-09"
пробовал добавлять в значение сравнения символ "%", но он не работает так же как в запросе.

Есть ли у кого то идеи по этому поводу?
код привожу, заранее благодарен

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




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


Хотя суть дела не меняется)

TrasserZero Подменю пользователя
сообщение 30.03.19, 19:51
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 3 раз
Рейтинг: 0

Yevhenii_S @ Сегодня, 14:29 * ,
Шаблоны подстановки имхо только..
Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.
Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:
• % (процент): последовательность, содержащая любое количество произвольных символов
• _ (подчеркивание): один произвольный символ
• […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
• [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.
Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.
Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.
Причем перед этой последовательностью может располагаться произвольный набор символов.


Signature

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 1:27
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!