Ошибка "Каталог не обнаружен" после помещения файла во временное хранилище

1. dklp 42 10.02.22 10:36 Сейчас в теме
Для ускорения процесса правки и тестирования внешнего отчета в режиме отладки под толстым клиентом на управляемых формах я хочу добавить функционал "переоткрытия" отчета - грубо говоря, повесить на основную форму отчета кнопку, при нажатии на которую будет выполняться команда, закрывающая отчет и открывающая его заново. Код модуля формы отчета приводится ниже.

Это нужно лишь для того, чтобы при редактировании внешнего отчета в процессе отладки (в том числе при изменении содержимого процедуры модуля отчета ПриКомпоновкеРезультата) не нужно было затем вручную закрывать и открывать его заново, чтобы отобразились изменения, а сделать это в один клик по нажатию кнопки переоткрытия (или еще быстрее - с использованием назначенного ей сочетания клавиш).

Вопрос в том, что при сохранении новой версии отчета после внесения изменений в отчет и вызове обработчика команды "ПереоткрытьОтчет" выскакивает ошибка типа "Каталог не обнаружен 'e1cib\tempstorage\698e1b83-889a-4733-8d05-507b3b1f6646'. 3(0x00000003): Системе не удается найти указанный путь".

Есть идеи, как это можно исправить?

// в модуле основной формы отчета

&НаКлиенте
Процедура ПереоткрытьОтчет(Команда)    
	
	АдресХранилища = "";
	Результат = ПоместитьФайл(АдресХранилища, ИмяФайлаВнешнегоОтчета(), , Ложь);
	ИмяФайла = ПодключитьВнешнийОтчет(АдресХранилища);
	
	НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
	НоваяФорма.Открыть();
	ЭтаФорма.Закрыть(); 
	
КонецПроцедуры

&НаСервере
Функция ИмяФайлаВнешнегоОтчета()
	Возврат РеквизитФормыВЗначение("Отчет").ЭтотОбъект.ИспользуемоеИмяФайла;
КонецФункции

&НаСервере
Функция ПодключитьВнешнийОтчет(АдресХранилища)
	Возврат ВнешниеОтчеты.Подключить(АдресХранилища, , Ложь);
КонецФункции
Показать

Для наглядности прилагается небольшой видеоролик, воспроизводящий ошибку.
Прикрепленные файлы:
2022-02-10-10-53-46.mp4
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 10.02.22 10:44 Сейчас в теме
(1) Попробуйте так:
Результат = ПоместитьФайл(АдресХранилища, ИмяФайлаВнешнегоОтчета(), , Ложь, Новый УникальныйИдентификатор);
3. dklp 42 10.02.22 10:45 Сейчас в теме
(2)
Новый УникальныйИдентификатор
Пробовал. К сожалению, не помогает. Вылезает та же ошибка. Кнопка переоткрытия работает ровно до тех пор, пока я в Конфигураторе не нажму "Ctrl+S", чтобы сохранить новую версию отчета.
4. dklp 42 10.02.22 13:54 Сейчас в теме
Ничего пока лучше не придумал для переоткрытия файла отчета, кроме как через имитацию нажатия горячих клавиш:
&НаКлиенте
Процедура ПереоткрытьОтчет(Команда)     

	// сначала копируем имя файла отчета в буфер обмена
	ОбъектHtml = Новый COMОбъект("htmlfile");
	ОбъектHtml.ParentWindow.ClipboardData.Setdata("Text", ИмяФайла());

    ЭтаФорма.Закрыть();  
	
	// имитируем нажатие горячих клавиш как при ручном открытии файла  
	ОбъектShell = Новый COMОбъект("WScript.Shell"); 
	ОбъектShell.SendKeys("^o");  
	ОбъектShell.SendKeys("^щ");
	ОбъектShell.SendKeys("^v");
	ОбъектShell.SendKeys("^м");
	ОбъектShell.SendKeys("{ENTER}");
	
КонецПроцедуры                                       

&НаСервере
Функция ИмяФайла()    
	
	ИмяФайла = РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла;
	Возврат ИмяФайла;
	
КонецФункции
Показать
Оставьте свое сообщение

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