Имя: Пароль:
1C
1С v8
Переопределение ввода по строке в управляемой форме
0 mazikovrv
 
09.08.20
10:22
Задача.
УНФ. При вводе строки в форме по должности, чтобы выдавался ограниченный список выбора.
Разместил в менеджере справочник ОбработкаПолученияДанныхВыбора(

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

Как ограничить список только определенной выборкой?


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

ДанныеВыбора  = Новый СписокЗначений;

Запрос = Новый Запрос;

Запрос.Текст = "
|ВЫБРАТЬ
|    Должности.Ссылка КАК Ссылка,
|    Должности.Наименование КАК Наименование
|ИЗ
|    Справочник.Должности КАК Должности
|ГДЕ
|    Должности.Наименование ПОДОБНО &Наименование + ""%""
|    И НЕ Должности.Наименование ПОДОБНО ""%(%""
|    И НЕ Должности.Наименование ПОДОБНО ""%к.%""
|    И НЕ Должности.ПометкаУдаления
|{ГДЕ
|    Должности.Наименование}
|";
Запрос.УстановитьПараметр("Наименование", Параметры.СтрокаПоиска);

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
     ДанныеВыбора.Добавить(Выборка.Ссылка,Выборка.Наименование);    
КонецЦикла;

СтандартнаяОбработка = Ложь;    
    
  
КонецПроцедуры
1 youalex
 
09.08.20
10:33
параметры выбора
2 mazikovrv
 
09.08.20
11:09
Переделал на жесткий отбор

|ВЫБРАТЬ
|    Должности.Ссылка КАК Ссылка,
|    Должности.Наименование КАК Наименование
|ИЗ
|    Справочник.Должности КАК Должности
|ГДЕ
|    Должности.Наименование ПОДОБНО &Наименование
|    И НЕ Должности.ПометкаУдаления
|";

Запрос.УстановитьПараметр("Наименование", "Повар");

Набираю Ме
Выдает
1 строка Повар
2 Менеджер
Менеджер с подсветкой "Ме"
3 MishaD
 
09.08.20
11:50
(2) Ну так иди в отладку, и смотри, что вызывается после "ОбработкаПолученияДанныхВыбора"
4 mazikovrv
 
09.08.20
12:43
В отладчике я первым делом посмотрел.
С данным вопросом разобрался. Код правильный. То что высвечивается, остатки проиндексированных значений полнотекстового поиска. Осталось найти где их вычистить.
5 acht
 
09.08.20
12:52
(4) В элементе поставь ИсторияВыбораПриВводе = Не использовать
6 mazikovrv
 
09.08.20
18:15
(5) Благодарю за наводку. Переключил программно. Заработало.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший