8.3 УФ Перехват события автоподбор в поле ввода #727089


#0 by Марусенька
Добрый день! Мне нужно переписать модальные окна при использовании Вопрос под УФ. Попробовала написать так. Окно открывается при нажатии кнопки выпадающего списка, но тем не менее позволяет произвести выбор значения и только потом блокируется. Что я делаю не так? Пробовала использовать НачалоВыбораИЗСписка - не помогло. Спасибо. &НаКлиенте
#1 by Марусенька
апну, вдруг кто сталкивался с подобной проблемой.
#2 by vicof
эмм...а автор знает, что такое модальные окна?
#3 by Coldboy
а можно скриншот, какой именно кнопки вы хотите перехватить событие ?
#4 by Franchiser
попробуй другое событие...
#5 by cw014
Используй событие не "АвтоПодборТекста" а "НачалоВыбора" (или "НачалоВыбораИзСписка")
#6 by Марусенька
я в курсе, что такое модальные окна в обычном приложении,  на УФ они работают несколько иначе и на УФ я с ними не работала еще. Потому и вопрос возник. Вот ссылка Окно блокируется,но позволяет при этом выбрать значение в поле ввода перед блокировкой. это событие тоже не дает нужного эффекта, пробовала
#7 by Марусенька
ап
#8 by olegves
а не проще рулить доступностью этого поля при изменении ДоговорАренды?
#9 by olegves
+ вопрос надо задавать в обработке Приизменении, и в случае отмены восстанавливать предыдущее значение (для его хранения надо создать реквизит формы и заполнять его при создании на сервере и приизменении)
#10 by Марусенька
я думала о том, чтоб управлять видимостью, но во-первых, тогда мне придется ввести новые объекты на форму, типа переключателя для режима выбора заполнения ТЧ, и я хотела по минимуму изменять типовую конфу, а во-вторых, надо же разобраться как это делается. Попробую поискать в типовых конфах пример, как отловить нажатие кнопки автоподбора все же. Вообще, считаю, что уход от модальности это очень фу, но что поделать - такова селява.
#11 by Марусенька
у меня работало ПриИзменении в БП 2.0, все хорошо было, но в _типовой_ БП 3.0 этой кнопки нет, я, конечно, могу ее вынести, но все же - хочу разобраться как работать с автоподбором. Ибо ситуация не единственная.
#12 by RomaH
это не кнопка,а событие слишком категоричное заявление предположим, что выбор значения у пользователя занимает продолжительное время, - вот он пять минут думал, варианты прикидывал - наконец выбрал, а тут, бац, вторая смена
#13 by Марусенька
имелась ввиду кнопка, которая это событие вызывает. Меня интересует, как перехватить событие при нажатии кнопки выпадающего списка. Событие Автоподбор его перехватывает, но позволяет сделать выбор до того, как окно блокирует доступ к этому полю ввода.
#14 by ВРедная
Смысл отказа от модальности в том, что у тебя не блокируется поле ввода. Если до решения пользователя не нужно производить выбор из списка - пиши "СтандартнаяОбработка = ложь", а выбор после того, как пользователь решится реализуй отдельно
#15 by Марусенька
Мне как раз нужно модальность сымитировать. В момент нажатия на кнопку выпадающего списка нужно или подтвердить действие выбора (и тогда позволить заполнить поле ввода), или отказаться от него, не меняя поле ввода. Стандартная обработка = Ложь где ты предлагаешь написать?
#16 by Aleksandr N
Тогда вам нужно в параметрах обработки оповещения передать еще и предыдущее значение подразделения, и если пользователь отказывается его менять, то присваивать его обратно.
#17 by Aleksandr N
+ и да, кстати вот это не нужно:
#18 by Марусенька
согласна, можно, а нельзя никак вообще не менять значение поля ввода и к черту все блокировать сразу, чтобы список не выпадал в принципе?
#19 by Aleksandr N
Не совсем понятно, что нужно получить в итоге.
#20 by Aleksandr N
Можно, конечно, в событии авто подбора написать что-то типа: Но тогда вообще становится ничего не понятно)
#21 by Марусенька
нужно в итоге -> Так, как работало событие НачалоВыбора при нажатии кнопки [...] в БП 2.0.
#22 by Aleksandr N
Может, стоит воспользоваться обработчиком "ОбработкаВыбора"?
#23 by Марусенька
Событие ОбработкаВыбора вызывается, когда значение уже выбрано, не подойдет.
#24 by Марусенька
а я бы зотела, чтобы значение в поле ввода не менялось, пока пользователь не скажет "Да"
#25 by Марусенька
*хотела
#26 by Aleksandr N
В ОбработкеВыбора как раз значение выбрано, но еще не применилось. Поэтому в этом обработчике предыдущее значение еще доступно через ТекущийЭлемент.ТекущиеДанные.НужныйРеквизит
#27 by Aleksandr N
+ его можно передать в качестве параметра в обработку оповещения.
#28 by Aleksandr N
Короче, я делал так:                 ПоказатьВопрос(Новый ОписаниеОповещения("УслугиПодразделениеЗатратОбработкаВыбораЗавершение", ЭтотОбъект, Новый Структура("ТекущееПодразделение, ТекущиеДанные", ТекущееПодразделение, ТекущиеДанные)), НСтр(Текст), Режим, 0);
#29 by olegves
а что тогда ей делать в событиях: ОкончаниеВводаТекста и ПриВводеСтроки ?
#30 by Aleksandr N
Хм, думаю, ничего.
#31 by Марусенька
вопрос в том, что я вообще хочу лишить пользователя возможности что-то выбирать, а не возвращать на место первоначальное значение в случае отказа от выбора (это уже просто способ обхода данной проблемы). Мне нужно, чтобы список вообще не выпадал (в идеале) или выпадал, но блокировался, это возможно? Пользователи бывают, как маленькие дети, нужно просто запретить в принципе действие, во избежание лишних вопросов и манипуляций, шаг влево-вправо - расстрел. Нельзя выбирать, значит и списка быть не должно вообще. Разве не так?
#32 by Марусенька
посмотрю, спасибо.
#33 by Марусенька
в вашем случае имеет значение, какое именно подразделение выбрано, имеет смысл обработка выбора. А у меня изначально известно, что ничего корректировать нельзя и не надо.
#34 by Aleksandr N
#35 by Aleksandr N
*Стандартная
#36 by Марусенька
я как раз и использую СтандартнаяОбработка = Ложь (или не там написала?), но блокировка срабатывает только после того, как пользователь что-то выбрал. Я как раз и писала об этом в самом начале.
#37 by Aleksandr N
В каких обработчиках используете?
#38 by Марусенька
&НаКлиенте
#39 by Aleksandr N
Попробуйте в свойстве поля ИсторияВыбораПриВводе поставить НеИспользовать
#40 by Aleksandr N
+ в св-ве поля подразделение в смысле
#41 by Марусенька
но в тех случаях, когда пользователь вправе ввести значение - менять это свойство? попробую, но тоже залипуха по-моему) Вообще конечно странно. Ну если вызывается окно с вопросом, то почему оно блокируется только после окончания выбора, вот что я не могу понять, это же не логично - блокировать действие после выбора.
#42 by Aleksandr N
Не хочу долго объяснять, просто кину ссылку - там все очень подробно расписано
#43 by Aleksandr N
Потому что блокирующее окно не останавливает действия, происходящее на форме в отличие от модального.
#44 by Марусенька
Я читала эту статью, правда не до конца. Вот о том и речь. И никак не сделать, чтоб блокировалось, получается. Только в обход идти. Ненавижу 1С.
#45 by Марусенька
а окно блокируется, только не сразу.
#46 by Aleksandr N
А я люблю. Наверно, я мазохист)))
#47 by olegves
а зря, Обработка выбора в этих случаях не срабатывает
#48 by Марусенька
Что люблю, то и ненавижу. А модальные окна это очень важная часть функционала, была.. как можно было от них отказаться! И плевать я хотела на Веб-клиент. Меня и в тонком клиенте неплохо кормят, оставили бы в тонком и толстом клиенте все как раньше. Хуже всего что извращаться чаще всего приходится именно с какими-то мелкими вещами, типа вот этой.
#49 by Aleksandr N
Так в свойствах конфигурации можно просто поставить нужный режим использования модальных окон и ничего не переписывать
#50 by Марусенька
не хочу. Принцип нашей работы - уход от типовой по минимуму.
#51 by Марусенька
->
#52 by Марусенька
хотя... может быть это будет проще, чем менять кучу обработчиков
#53 by olegves
странно, более месяца на форуме, а фотки до сих пор нет
#54 by Aleksandr N
Я именно это и имел в виду
#55 by Aleksandr N
Кстати, да. Гиде?
#56 by Марусенька
а нету)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С