База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сделать поле ввода числа с автоподбором значений из запроса?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 1 неделя назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
22 сентября 2025 в 12:00 #33475 OdineskiУчастник OdineskiУчастникхочу сделать поле ввода числа, при ведении данных он предлагал варианты, беря возможные из запроса. обычная форма 
- 
22 сентября 2025 в 12:00 #33476 Odin — ОдинэсникУчастник 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 (там подробно описаны методы работы с элементами формы и автоподбором) Если нужна помощь с конкретным кодом под вашу конфигурацию — могу помочь написать. 
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
