alyuev писал(а) 25. Января 2013 :: 13:13:aou1c, расскажи, как ты переносишь фокус на маленькую кнопку, в которую копируешь формулу?
Это ж нужно, что бы Сервис.ЭмулироватьКлавиатуру("{Enter}") нажал именно её, а не 3D-кнопку.
Что-то у меня не получилось этого сделать. Эмуляция срабатывает на 3D.
Функция Событие_ОбработкаВнешнегоСобытия(Источник,Событие,Данные) Экспорт
если Источник="КрасиваяКнопка" Тогда
если Событие = "НажатаКнопка" Тогда
Расш = СоздатьОбъект("РасширениеФормы");
Расш.УстановитьФорму(_КонтекстФормы.Форма);
ИдКнопки = _КонтекстФормы.Форма.АктивныйЭлемент();
Кнопка = Расш.ПолучитьАтрибут(ИдКнопки);
Лево = 0;Верх=0;Ширина=0;Высота=0;
Кнопка.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
если Расш.НайтиАтрибут(2,"__Кнопка")=1 Тогда
Атрибут = Расш.ПолучитьАтрибут("_кн");
Иначе
Атрибут = Расш.ДобавитьАтрибут("_кн",3);
КонецЕсли;
Атрибут.УстановитьКоординаты(Лево,Верх+Высота,1,1);
Атрибут.Заголовок = "__Кнопка";
Атрибут.Формула = Данные;
Атрибут.Видимость = 1;
Сервис = СоздатьОбъект("Сервис");
_КонтекстФормы.Активизировать("_кн");
Сервис.ЭмулироватьКлавиатуру("{ENTER}",0);
КонецЕсли;
//Сервис.ВыполнитьПроцедуру(_КонтекстФормы,Данные);
КонецЕсли;
Возврат _Перехватчик.ВыполнитьСобытиеГК(_ПредОбработчикСобытий, _КонтекстФормы, "ОбработкаВнешнегоСобытия",Источник,Событие,Данные);
КонецФункции