helpf.pro
Регистрация

v8: Выход из поля вводя без его редактирования

Migleon
25.10.2017 11:35Прочитано: 5175

Есть поле ввода.

Нужно отловить выход из поля не только, когда оно изменилось, но и когда осталось без изменений...Что-то не могу сообразить как это сделать...

Yandex
Возможно, вас также заинтересует
Реклама на портале
АВП
29.10.2017 13:44Ответ № 1

ОбработкаВыбора этого поля

Migleon
29.10.2017 15:45Ответ № 2

Не работает. Выбора же никакого не происходит, а поэтому и событие "обработка выбора не наступает"

АВП
29.10.2017 20:25Ответ № 3

Тогда уточняйте задачу. Если вы пытаетесь выбрать но оставляете выбор без изменения, то обработкаВыбора срабатывает. Вас же, наверное, интересует сам факт установки на этом поле. если это табличное поле, то событие ПриАктивизацииСтроки или ПриАктивизацииПоля

Migleon
29.10.2017 22:43Ответ № 4

На форме элемента справочника имеем поле ввода текстового реквизита. Когда пользователь вносит/изменяет реквизит - нам нужно проанализировать его значение. НО если пользователь находится в поле ввода но не изменил его, а нажал Enter  - нужно отловить это событие и обработать его. События "ПриИзменении", "ОБработкаВыбора". не наступают.

Платформа 8.3.9.1818. Режим совместимости 8.2.16

АВП
02.11.2017 18:47Ответ № 5

Если еще актуально, нашел как можно решить эту проблему, правда с "костылем"

Создать команду формы, например, СходСПоля, в свойствах команды Отображение - Только картинка, подобрать самую маленькую и невзрачную картинку и разместить ее в самый дальний незаметный угол формы, В свойствах же Видимость = Ложь

Смысл. Назначить этой кнопке горячую клавишу ENTER и при сходе с нужного поля введением ENTER вызывать действие прописанное в команде. Видимостью кнопки регулировать ее задейственность, чтобы  нажатие ENTER вне нужного поля не вызывало выполнение процедуры. 

Нужному полю назначить обработчик АвтоПодбор При переходе на нужное поле кнопка появляется, действие по кнопке возможно, при сходе с поля - кнопка выключается (исчезает с формы), действие по кнопке невозможно

Код примерно такой:

Код 1C v 8.3
 &НаКлиенте
Процедура СходСПоля(Команда)
    // Нужный обработчик
Элементы.ФормаСходСПоля.Видимость = Ложь; // Выключаем кнопку
КонецПроцедуры

&НаСервере
Функция БыстрыйВызов(Код, Alt=0, Control=0, Shift=0) Экспорт
    Возврат ЗначениеИзСтрокиВнутр("{""#"",69cf4251-8759-11d5-bf7e-0050bae2bc79,1,
        |{0,"+ Формат(Код, "ЧН=0; ЧГ=0") +","+ Формат(Alt*16+Control*8+Shift*4, "ЧН=0; ЧГ=0") +"}
        |}");
КонецФункции


&НаКлиенте
Процедура ПриОткрытии()
    Элементы.СходСПоля.СочетаниеКлавиш = БыстрыйВызов(13);
КонецПроцедуры


&НаКлиенте
Процедура Поле1АвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
Элементы.ФормаСходСПоля.Видимость = Истина; //Включаем кнопку
КонецПроцедуры




Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.