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