Как программно открыть обработку не помещая во временное хранилище?

1. Aleksandr_prof 203 22.02.20 18:12 Сейчас в теме
Нужно программно (нажатием на кнопку) открыть основную форму обработки так, чтобы это было так, будто мы открываем её через "файл - открыть". Кучу форумов излазил, много кода перепробовал но так и не получилось. Для чего мне это нужно - для того, чтобы снова открыть пересохранённую обработку для отладки. У меня получилось только открыть её повторно, но она из временного хранилища, поэтому отладка уже недоступна (только если в конфигураторе её открыть из папки temp). Элементарнейшая задача казалось бы, но на деле достаточно не простая. Прежде чем писать ответ по существую - проверьте сами, откроется ли у вас обработка и будет ли продолжать работать её отладка.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. Aleksandr_prof 203 22.02.20 21:33 Сейчас в теме
(2) Безупречно! Благодарю и отдаю $m. Как раз некоторых моментов мне и не хватало для решения. Проверил, упростил и оставлю здесь итоговый код решения.

&НаКлиенте
Процедура Переоткрыть(Команда)
	
	ИмяОбработки = ПолучитьИмяПодключеннойОбработки();
	ЭтаФорма.Закрыть();
	ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".ФормаОбъекта");
	
КонецПроцедуры

Функция ПолучитьИмяПодключеннойОбработки()
	
	ПолноеИмяФайла = РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
	ОЗООД = Новый ОписаниеЗащитыОтОпасныхДействий;
	ОЗООД.ПредупреждатьОбОпасныхДействиях = Ложь;
	ИмяОбработки = ВнешниеОбработки.Создать(ПолноеИмяФайла, Ложь, ОЗООД).Метаданные().Имя;
	
	Возврат ИмяОбработки;
	
КонецФункции
Показать
skillful; Maxvel82; MishinVl; uno-c; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. uno-c 267 22.02.20 20:29 Сейчас в теме +0.5 $m
Процедуру ПриЗакрытии - прописать в события формы
&НаКлиенте
Перем Переоткрывать;

&НаКлиенте
Процедура Переоткрыть(Команда)
	Переоткрывать = Истина;
	ЭтаФорма.Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	Если Переоткрывать = Истина Тогда
		Переоткрывать = Ложь;	
		ИмяОбработки = ПереоткрытьНаСервере();
		ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".ФормаОбъекта");
	КонецЕсли
КонецПроцедуры
&НаСервере
Функция ПереоткрытьНаСервере()
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ИмяФайла = ОбработкаОбъект.ИспользуемоеИмяФайла;
	ОЗООД = Новый ОписаниеЗащитыОтОпасныхДействий;
	ОЗООД.ПредупреждатьОбОпасныхДействиях = Ложь;
	ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла, Ложь, ОЗООД);
	Возврат ВнешняяОбработка.Метаданные().Имя;
КонецФункции
Показать
Aleksandr_prof; +1 Ответить
5. Aleksandr_prof 203 22.02.20 21:33 Сейчас в теме
(2) Безупречно! Благодарю и отдаю $m. Как раз некоторых моментов мне и не хватало для решения. Проверил, упростил и оставлю здесь итоговый код решения.

&НаКлиенте
Процедура Переоткрыть(Команда)
	
	ИмяОбработки = ПолучитьИмяПодключеннойОбработки();
	ЭтаФорма.Закрыть();
	ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".ФормаОбъекта");
	
КонецПроцедуры

Функция ПолучитьИмяПодключеннойОбработки()
	
	ПолноеИмяФайла = РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
	ОЗООД = Новый ОписаниеЗащитыОтОпасныхДействий;
	ОЗООД.ПредупреждатьОбОпасныхДействиях = Ложь;
	ИмяОбработки = ВнешниеОбработки.Создать(ПолноеИмяФайла, Ложь, ОЗООД).Метаданные().Имя;
	
	Возврат ИмяОбработки;
	
КонецФункции
Показать
skillful; Maxvel82; MishinVl; uno-c; +4 Ответить
3. uno-c 267 22.02.20 20:43 Сейчас в теме
Без использования события формы и процедуры ПриЗакрытии тоже переоткрывается в режиме отладки, но видок у нее какой-то не тот )
4. uno-c 267 22.02.20 20:51 Сейчас в теме
ИмяФайла можете конкретное прописать т.е. вместо
ИмяФайла = ОбработкаОбъект.ИспользуемоеИмяФайла;

написать тот путь к обработке, который в конфигураторе открыли и редактируете-сохраняете
ИмяФайла = "s:\WordPressWoo\ОбменWooCommerce.epf";
6. user942338 15.03.25 12:59 Сейчас в теме
ОГРОМНОЕ СПАСИБО ! искал долго тут все как доктор прописал, очень удобно при разработке приложений, на форме внешней обработке вешаешь кнопку обновить и можно отлаживать в конфигураторе, сохранять, а в предприятие обновлять
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот