() Ничего сложного на самом деле, сам юзаю такую кнопку.
У меня лично такая кнопка со времен 77 называется "Перезагрузить" :)
помнится, даже спец.скрипт для Опенконфа делал для автодобавления этой кнопки на форму прямо в конфигураторе.
() ты не прав, так не удобно, (6) более прав - весь вопрос в телодвижениях, хотя и к нему есть вопросы :)
() что-то как-то сложно и нерационально у тебя в неуправляемой форме :(
все можно и нужно уместить в одной процедуре, лично у меня так и сделано.
1. Зачем делить на КоманднаяПанель1ОткрытьЕщеРаз и ПриЗакрытии() ?
Нужно тупо в КоманднаяПанель1ОткрытьЕщеРаз вместо оператора Прервать вставить код из ПриЗакрытии.
2. Реквизиты ФормаКОткрытию и ИмяФайла совсем не нужны, имя файла можно узнать непосредственно в момент вызова кнопки.
Ведь в управляемой у тебя фактически так и сделано? :(
т.е. схема-то простейшая - при нажатии кнопки Перезагрузить открываем новую форму для этого же файла, а старую закрываем.
в итоге все что нужно - вот этот код
Процедура КоманднаяПанель1ОткрытьЕщеРаз(Кнопка)
Для каждого ИмяФормы Из ЭтаФорма.Метаданные().Формы Цикл
ПолученнаяФорма = ПолучитьФорму(ИмяФормы);
Если СокрЛП(ИмяФормы.ТипФормы) = "Обычная" Тогда
Если ПолученнаяФорма.Открыта() Тогда
Обработка = ВнешниеОбработки.Создать(ЭтотОбъект.ИспользуемоеИмяФайла);
лФорма = Обработка.ПолучитьФорму(ИмяФормы); // форма лучше не присваивать
лФорма.Открыть();
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Закрыть();
КонецПроцедуры
Показать