как установить признак изменения поля ввода? #747935


#0 by DES
Такая проблема, есть поле ввода, на нем висит процедура ПриИзменении. Если заполнить поле программно, то процедура не срабатывает при переходе по Ентер. Как сымулировать интерактивный ввод в это поле ?
#1 by МимохожийОднако
Вызови команду, которая лежит в процедуре ПриИзменении
#2 by DES
как я ее вызову при Нажатии Ентер в этом поле ?
#3 by DTXqueque
Ничего непонятно. При нажатии энтер происходит вход в режим редактирования? В какой момент пытаешь программно что-то изменить?
#4 by DES
есть поле: 1 вариант (рабочий) - в поле вводится текст, нажимается Ентер, выполняется функция ПриИзменении 2 вариант, поле заполнено программно, нажимаем Ентер, ничего не происходит, така не срабатывает функция ПриИзменени (а нужно чтоб сработала как в 1 варианте.)
#5 by Marine Band
ты вызываешь форму выбора и там нажимаешь энтер. Смотри обработка выбора
#6 by DES
не вызываю я форму выбора, данные УЖЕ ВНЕСЕНЫ !!
#7 by DTXqueque
Каша.. Так вызови ПриИзменении этого поля в тот момент, когда данные программно заполняешь..
#8 by DES
низя, пользователь регулирует момент Принятия данных, может быть он захочет их изменить?
#9 by DES
По идее мне нужно событие ВыходИзПоляВыбора
#10 by DES
или поставить признак ЭтоПолеИзменено = Истина
#11 by DTXqueque
ПриОкончанииРедактирования?
#12 by DES
нет факта  РЕДАКТИРОВАНИЯ !
#13 by DTXqueque
Так вход в режим редактирования должен быть.
#14 by Marine Band
не понятно что за энтер ))) в общем действительно каша
#15 by DES
но он мне не нужен
#16 by МимохожийОднако
Покажи код заполнения программно.
#17 by DES
ПолеВвода1 = "0459632";
#18 by Бурулька
вызови при изменении поля
#19 by Сергиус
Как вариант - при заполнении поля программно, делай изменение не самого значения, а свойства Выделенный текст. ЭлементыФормы.ПолеВвода1.ВыделенныйТекст = "1" к примеру. После этого в обработчике ПриИзменении смотри, если Выделенный текст не пустая и не равна ПолеВвода1.Значение, то присваивай ПолеВвода1.Значение = ЭлементыФормы.ПолеВвода1.ВыделенныйТекст.
#20 by mszsuz
Тоже столкнулся с этим неудобством. В 7.7 формула в реквизите на форме срабатывает всегда, независимо от изменения. В 8 не нашел аналога.
#21 by DES
а разве сработает ПриИзменении ?
#22 by Остап Сулейманович
Аналог в 8-е : Синтаксис: ОбновлениеОтображения Описание: Возникает при обновлении формы или при изменении данных формы.
#23 by DES
ну вот как это  заюзать ?
#24 by Остап Сулейманович
Тебе это вообще не нужно. (В контексте твоего вопроса). Тебе уже несколько раз сказали что нужно делать. Как есть сейчас : Вызывается один раз при интерактивном изменении поля. При программном изменении соответственно ничего не происходит. Нужно так : Процедура ПриИзмененииЗначенияПоляИмяРек1     ... КонецПроцедуры В любом другом месте кода :
#25 by Остап Сулейманович
+ А заюзать ОбновлениеОтображения проще простого - вынести туда весь код для формирования внешнего вида формы. И все. Но заюзать там (внутри) изменение данных - это вызвать каскад ОбновлениеОтображения, который может завалить всю систему. А тем более вызов каких либо интерактивных вопросов, предупреждений... Только формирование внешнего вида.
#26 by DES
так как это уже будет выполнение действий не санкционированных пользователем. (В этом то вся и загвоздка, если кто не понял.)
#27 by Сергиус
Сработает, попробуй сам.
#28 by Сергиус
+Т.е. в коде пишешь ЭлементыФормы.ПолеВвода1.ВыделенныйТекст = "1", текст в поле ввода меняется(значение остается тоже), а когда в поле ввода пользователь нажмет Enter, то тут же сработает ПолеВвода1ПриИзменении.
#29 by DTXqueque
Почему когда пользователь что-то вводит в поле, заполнение срабатывает, а когда ты программно его меняешь, ты ждём ентера от пользователя, хотя изменение уже было?
#30 by Сергиус
Потому что ПриИзменении это интерактивное событие.
#31 by DTXqueque
Авто хочет такого поведения. Это глупо.
#32 by Сергиус
Почему глупо - не всегда желания разработчика совпадают на 100% с возможностями системы. Поэтому надо искать обходные пути)
#33 by DTXqueque
Система позволяет вызвать ПриИзменении после программного изменения поля.
#34 by Сергиус
Именно самое событие? Понятно, что всегда можно вызвать процедуру отдельно.
#35 by Сергиус
+Тут просто сложность в том, что это событие должен инициировать пользователь.
#36 by DTXqueque
Дуб, орех или мочало - начинаем все сначала!
#37 by Сергиус
Пользователь должен подтвердить изменение(или ввести другое значение)
#38 by HawkEye
как пользователь санкционирует это: ?
#39 by DTXqueque
Мсье знает толк в извращениях.. Интересно, в какой момент происходит программная установка значения. Для таких дел целесообразно использовать кнопки
#40 by HawkEye
на форму положить текст и в него прописать функцию, но есть нюансы, поэтому ответь сначала на
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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