(1) как в 1 описано может и будет нажиматься из формы только это форма будет обработки объекта созданного локально а не формы запущенной где-то.. то есть смысла нажимать кнопки в пользовательских формах нет да и не надо это практически
// Программное нажатие на кнопку (обычную или на командной панели) на *чужой* форме с вызовом связанного события
// через переопределение действия формы ПриПовторномОткрытии
// увы, без передачи элемента кнопки в качестве параметра
// для режима запуска "обычное приложение"
Процедура ИнтерактивноНажатьКнопку(Кнопка, ФормаКнопки) Экспорт
// Удостоверимся что есть права на нажатие
// Кнопка
стрОшибка = "";
Попытка
Если Кнопка.Видимость = Ложь Тогда
стрОшибка = стрОшибка + ", Невидима";
КонецЕсли;
Исключение
КонецПопытки;
Попытка
Если Кнопка.Доступность = Ложь Тогда
стрОшибка = стрОшибка + ", Недоступна";
КонецЕсли;
Исключение
КонецПопытки;
Если стрОшибка <> "" Тогда
стрОшибка = Сред(стрОшибка, 3)+" кнопка, которую требуется нажать";
ВызватьИсключение(стрОшибка);
КонецЕсли;
Если ТипЗнч(Кнопка) = Тип("КнопкаКоманднойПанели") Тогда
Действие = Кнопка.Действие;
ИначеЕсли ТипЗнч(Кнопка) = Тип("Кнопка") Тогда
Действие = Кнопка.ПолучитьДействие("Нажатие");
КонецЕсли;
буфДействие = ФормаКнопки.ПолучитьДействие("ПриПовторномОткрытии");
ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", Действие);
Попытка
// собственно вызов нажатия кнопки
ФормаКнопки.Открыть();
ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", буфДействие);
Исключение
ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", буфДействие);
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Показать
Пример вызова.
*Подразумевается что форма, на которой расположена кнопка должна быть открытой.
Как вариант. Подключаем обработчик изменения данных, соответствующий нужной кнопке (в примере "ЗаполнитьПоИНННажатие") и изменяем. Измененные данные (в примере "наименование") потом можно обратно вернуть.
Форма = ПолучитьФорму("Обработка.РаботаСДиаграммами.Форма");
Форма.Открыть();
Форма.Элементы.Группа1.ТекущаяСтраница = Форма.Элементы.Гистограмма_;
Форма.ПостроитьГистограмм(Неопределено); // специально сделала ее Экспорт на Команду кнопки!!!! чтобы нажималась кнопка программно)
главное - это на команде кнопки должен стоять ЭКСПОРТ