Имя: Пароль:
1C
1С v8
Поиск в поле ввода по строке
0 varyag
 
21.11.13
12:25
Управляемое приложение.
Подскажите, возможно ли реализовать поиск по строке в справочнике "Номенклатура" механизмами платформы как на скриншоте. Но при условии что поле ввода (реквизит) будет иметь тип "Строка". Для чего это долго объяснять, но так нужно
http://storage9.static.itmages.ru/i/13/1121/h_1385022333_2571633_8eb209e360.jpg
1 ДенисЧ
 
21.11.13
12:25
8.3 ставь....
2 Wobland
 
21.11.13
12:26
я тебе на ушко шепну: наименование - это строка
3 varyag
 
21.11.13
12:30
(1) у меня итак 8.3 правда режим совместимости интерфейса 8.2
А что это даст?

(2) а я тебе громко скажу :) а поле ввода должно ссылаться на реквизит с типом СправочникСсылка.   Или че не понял я??
4 varyag
 
21.11.13
13:07
Хэй Ап!
5 varyag
 
21.11.13
13:57
Неужели никто не подскажет?
6 kosts
 
21.11.13
14:05
7 vicof
 
21.11.13
14:05
ПолеВвода.АвтоПодборТекста (TextBox.AutoCompleteText)
ПолеВвода (TextBox)
АвтоПодборТекста (AutoCompleteText)
Синтаксис:

АвтоПодборТекста(<Текст>, <ТекстАвтоПодбора>, <СтандартнаяОбработка>)
Параметры:

<Текст>

Тип: Строка.
Строка текста, введенная в поле ввода.
<ТекстАвтоПодбора>

Тип: Строка.
После завершения обработки события содержит текст для размещения в поле ввода.
<СтандартнаяОбработка>

Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина
Описание:

Возникает во время начала ожидания ввода текста (в процессе набора текста сделана пауза).
При стандартной отработке события происходит поиск в порядке полей, определенном при конфигурировании в свойстве объекта метаданных "Ввод по строке". Если найдено единственное значение, то производится автоподстановка полного текста.
Если введенному тексту соответствует несколько значений, то автоподстановки не происходит. Если в этот момент перейти на другой элемент управления, то возникает событие ОкончаниеВводаТекста.
См. также:

ПолеВвода, событие ОкончаниеВводаТекста
8 varyag
 
22.11.13
05:07
(6) Благодарю, не мог разобраться что делать в перехвате события АвтоПодбор, не знал про событие ОбработкаПолученияДанныхВыбора. Сейчас буду пробовать
9 varyag
 
22.11.13
11:53
В общем не могу ничего сделать, вешал и на автоподбор и на окончание ввода текста. Подсовываю список значений в ДанныеВыбора и ничего.. =(
ткните носом плиз(

&НаКлиенте
Процедура ТоварыТоварАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
    
    ДанныеВыбора = ПолучитьСписокТоваров();
    //Ожидание = 0;
    Параметры.СпособПоискаСтроки = СпособПоискаСтрокиПриВводеПоСтроке.ЛюбаяЧасть;
    Параметры.ПолнотекстовыйПоиск = ПолнотекстовыйПоискПриВводеПоСтроке.НеИспользовать;
    Параметры.РежимПолученияДанныхВыбора = РежимПолученияДанныхВыбораПриВводеПоСтроке.Непосредственно;

    
КонецПроцедуры

&НаКлиенте
Процедура ТоварыТоварОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
    
    ДанныеВыбора = ПолучитьСписокТоваров();
    Параметры.СпособПоискаСтроки = СпособПоискаСтрокиПриВводеПоСтроке.ЛюбаяЧасть;
    Параметры.ПолнотекстовыйПоиск = ПолнотекстовыйПоискПриВводеПоСтроке.НеИспользовать;
    Параметры.РежимПолученияДанныхВыбора = РежимПолученияДанныхВыбораПриВводеПоСтроке.Непосредственно;
    
КонецПроцедуры
10 varyag
 
22.11.13
11:56
Путь к данным у поля ввода таблицы к реквизиту с типом "Текст". Может как то тип подсовывать СправочникСсылка?
11 varyag
 
22.11.13
11:58
12 varyag
 
22.11.13
12:16
Откликнитесь кто-нибудь, не верится, что никто не сталкивался
13 varyag
 
22.11.13
12:36
Подниму
14 hhhh
 
22.11.13
12:37
а где СтандартнаяОбработка = Ложь?
15 varyag
 
22.11.13
13:00
&НаКлиенте
(14) Убрал, т.к. рнаьше с ней вообще ничего не происходило. Щас сделал так, но при вводе символов они удаляются и ничего не выбирается. Хотя б появился выпадающий список) Щас буду решать

Процедура ТоварыТоварАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ДанныеВыбора = ПолучитьСписокТоваров();
    Параметры.СтрокаПоиска = Текст;
    Параметры.СпособПоискаСтроки = СпособПоискаСтрокиПриВводеПоСтроке.ЛюбаяЧасть;
    Параметры.ПолнотекстовыйПоиск = ПолнотекстовыйПоискПриВводеПоСтроке.НеИспользовать;
    Параметры.РежимПолученияДанныхВыбора = РежимПолученияДанныхВыбораПриВводеПоСтроке.Непосредственно;

КонецПроцедуры
16 varyag
 
22.11.13
13:10
Сделал так. Не пойму в чем дело. Почему ввожу символы и они тут же удаляются и никакого отбора в выпавшем списке не происходит

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

КонецПроцедуры
17 hhhh
 
22.11.13
13:11
зачем вам полнотекстовый поиск? Оставьте его в покое. Лучше сразу выкиньте его из конфы, чтобы глаза не мозолил.
18 varyag
 
22.11.13
13:34
(17) ок. Удалю я эту строчку.. А что дальше?
19 varyag
 
22.11.13
13:59
какого то завершающего фрагмента не хватает в коде. Но какого?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший