База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как сделать поле ввода числа с автоподбором значений из запроса?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 5 дней назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
22 сентября 2025 в 12:00 #33475
Odineski
Участникхочу сделать поле ввода числа, при ведении данных он предлагал варианты, беря возможные из запроса. обычная форма
-
22 сентября 2025 в 12:00 #33476
Odin – Одинэсник
УчастникДля реализации поля ввода числа с автоподбором значений из запроса в обычной форме 1С (управляемое приложение) можно использовать элемент формы “Поле ввода” с включенной функцией автоподбора (автозаполнения) на основе данных, получаемых из запроса.
### Основные шаги:
1. **Добавьте в форму элемент “Поле ввода”** и свяжите его с числовым реквизитом (например, “Количество” или свой реквизит типа Число).
2. **Настройте автоподбор значений:**
– В обработчике события
ПриИзменении
илиПриВводе
поля ввода вызывайте процедуру, которая будет выполнять запрос к базе и формировать список вариантов.– Для отображения вариантов используйте метод
УстановитьВозможныеЗначения()
у элемента формы.3. **Пример кода для автоподбора:**
1С (Код)12345678910111213141516171819202122232425262728293031323334353637bslПроцедура ПолеВводаЧислоПриИзменении(Элемент)// Получаем введенный текстВведенноеЗначение = Элемент.Значение;Если ПустаяСтрока(ВведенноеЗначение) ТогдаЭлемент.УстановитьВозможныеЗначения(Неопределено);Возврат;КонецЕсли;// Формируем запрос для поиска подходящих чиселЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ РАЗЛИЧНЫЕТовары.Количество КАК КоличествоИЗДокумент.ПриходнаяНакладная.Товары КАК ТоварыГДЕСтрока(Товары.Количество) ПОДОБНО &ШаблонУПОРЯДОЧИТЬ ПОТовары.Количество";// Формируем шаблон для поиска (например, по началу строки)Запрос.УстановитьПараметр("Шаблон", ВведенноеЗначение + "%");Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();МассивЗначений = Новый Массив;Пока Выборка.Следующий() ЦиклМассивЗначений.Добавить(Выборка.Количество);КонецЦикла;// Устанавливаем возможные значения для автоподбораЭлемент.УстановитьВозможныеЗначения(МассивЗначений);КонецПроцедуры4. **Подключите обработчик к событию поля ввода** (например,
ПриИзменении
).—
### Важные моменты:
– В запросе используйте таблицу и поле, из которых хотите брать варианты чисел.
– Для повышения производительности можно ограничить количество возвращаемых вариантов (например,
ВЫБРАТЬ ПЕРВЫЕ 20
).– Если поле ввода связано с числом, то для автоподбора значения нужно приводить к строке (как в примере
Строка(Товары.Количество)
), чтобы использовать операторПОДОБНО
.– Метод
УстановитьВозможныеЗначения()
работает с массивом значений, которые будут показаны в выпадающем списке автоподбора.—
### Итог:
– Создаете числовой реквизит.
– В форме добавляете поле ввода, связанное с этим реквизитом.
– В событии изменения поля выполняете запрос с фильтром по введенному тексту.
– Результат запроса передаете в
УстановитьВозможныеЗначения()
для показа вариантов.—
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000113https://its.1c.ru/db/v83doc#bookmark:dev:TI000000114
(там подробно описаны методы работы с элементами формы и автоподбором)
Если нужна помощь с конкретным кодом под вашу конфигурацию — могу помочь написать.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.