Показать список выбора поля ввода программно

1. 18.03.20 19:35 Сейчас в теме
Как программно отобразить список выбора поля ввода?

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

В конце обработчика я бы хотел повторно обновить список выбора программно либо инициализировать еще раз АвтоПодбор программно
Прикрепленные файлы:
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 19.03.20 08:06 Сейчас в теме
(1) Уточните, пожалуйста, а зачем используется столь путанная схема? Зачем определять список выбора в обработчике ожидания, если его можно определить непосредственно в обработчике события АвтоПодбор? Но если уж очень хочется, то можно попробовать отключить стандартную обработку у автоподбора, а по завершении обработчика ожидания показать свой список с помощью метода "ПоказатьВыборИзСписка". При этом обработка выбора из списка также ложится на Ваши плечи.
3. Zixxx 19.03.20 11:31 Сейчас в теме
(2) После АвтоПодбор идет генерация списка значения, на что нужно некоторое время, поэтому используется Обработчик ожидания, и получается что определить список выбора непосредственно в Авто подборе уже нельзя. ПоказатьВыборИзСписка уведет фокус с поля ввода и невозможно будет дальше печатать текст
4. dhurricane 19.03.20 12:27 Сейчас в теме
(3) Извините, все равно не понимаю, зачем используется обработчик ожидания? 1С все равно "подвиснет" в момент его срабатывания, так зачем нужна пауза между автоподбором и формированием списка?
5. Zixxx 19.03.20 13:08 Сейчас в теме
(4) Да, действительно, на более сложных операциях подвисает и через обработчик
6. SlavaKron 19.03.20 14:18 Сейчас в теме
(3) Из того, что генерация списка занимает некоторое время, не следует что список нельзя определить в АвтоПодборе.
7. Zixxx 19.03.20 14:52 Сейчас в теме
(6) А разве кто-то говорил что нельзя?
8. SlavaKron 19.03.20 15:04 Сейчас в теме
(7) Наверно я не так понял. Получается, что вам принципиально нужна асинхронность автоподбора? Но тогда сгенерированный список может быть уже не актуальным к моменту окончания своего формирования - за это время пользователь продолжит печать текст или удалит его, то есть сформированный список может не удовлетворять новым условиям.
9. Zixxx 19.03.20 15:18 Сейчас в теме
(8) Правильно, поэтому я и хочу на последнем этапе сделать сделать обращение еще раз и обновить список. По судя по (4) в этом нет смыла так как обработчик ожидания будет также тормозить, именно в этом варианте он и не подходит.
В общем в 1с мне нужно было сделать обращение к сервисам https://dadata.ru/suggestions/#address, но вот при АвтоПодбор чувствуются небольшие подвисания
11. KroVladS 33 20.11.20 12:10 Сейчас в теме
(1)
Костыли
		
ПоследнийВведённыйСимвол = Прав(ЭтаФорма.Элементы.Наименование.ТекстРедактирования, 1);
Wsh = Новый COMОбъект("Wscript.shell");		
Wsh.SendKeys("{BKSP}"); 		
Wsh.SendKeys(ПоследнийВведённыйСимвол);
10. KroVladS 33 20.11.20 11:34 Сейчас в теме
(1)
Аналогичная проблема, жаль что решения не нашлось
Оставьте свое сообщение
Вопросы с вознаграждением