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