v8: Запись значения в элемент управления со срабатывнием события ПриИзмененииУ каждого наверное хоть раз возникала необходимость после записи значения в какой либо элемент управления вызвать для него обработчик события ПриИзменении, а о вызове самого события вам приходилось только мечтать. Здесь вы найдете решение этой проблемы. | | Автор статьи: TormozIT | Редакторы: Гений 1С, Последняя редакция №7 от 14.02.07 | История URL: http://kb.mista.ru/article.php?id=479 | |
Ключевые слова: ПриИзменении, программно, элемент управления
1. Для максимальной универсальности нужно создать пустую форму, разумнее всего общую. Назовем ее "Пустышка".
2. Собственно сам код метода для выполнения такой записи:
// Интерактивно записывает значение в элемент управления. Интерактивность заключается в срабатывании
// события ПриИзменении у элемента управления. Элемент управления должен иметь фокус ввода.
//
// Параметры:
// ЭлементУправления – ЭлементУправления – которому присваиваем значение;
// Значение – Произвольный – присваиваемое значение.
//
Процедура ЛксИнтерактивноЗаписатьВЭлементУправления(ЭлементУправления, Значение) Экспорт
Форма = ПолучитьОбщуюФорму("Пустышка", ЭлементУправления);
Форма.ОповеститьОВыборе(Значение);
КонецПроцедуры // ЛксИнтерактивноЗаписатьВЭлементУправления()
Вместо формы-пустышки можно использовать любую форму. Но не забывайте о том, что на создание объекта формы тратится время, которое зависит от ее сложности. Таким образом, максимально быстро приведенная функция будет отрабатывать в случае самой простой формы.
Если же в контексте доступна какая либо форма, то можно воспользоваться и ее методом ОповеститьОВыборе. В этом случае операция будет выполнена еще быстрее. Но нужно иметь ввиду, что у нее должен быть установлен ВладелецФормы = ЭлементУправления. А это уже не всегда удобно.
От гения 1С:
Сначала не понял о чем это. Но потом просек фишку. Гениально! Интересно, а если вызывать для кнопки, на нее произойдет нажатие? |