Ошибка "Каталог не обнаружен" после помещения файла во временное хранилище
Для ускорения процесса правки и тестирования внешнего отчета в режиме отладки под толстым клиентом на управляемых формах я хочу добавить функционал "переоткрытия" отчета - грубо говоря, повесить на основную форму отчета кнопку, при нажатии на которую будет выполняться команда, закрывающая отчет и открывающая его заново. Код модуля формы отчета приводится ниже.
Это нужно лишь для того, чтобы при редактировании внешнего отчета в процессе отладки (в том числе при изменении содержимого процедуры модуля отчета ПриКомпоновкеРезультата) не нужно было затем вручную закрывать и открывать его заново, чтобы отобразились изменения, а сделать это в один клик по нажатию кнопки переоткрытия (или еще быстрее - с использованием назначенного ей сочетания клавиш).
Вопрос в том, что при сохранении новой версии отчета после внесения изменений в отчет и вызове обработчика команды "ПереоткрытьОтчет" выскакивает ошибка типа "Каталог не обнаружен 'e1cib\tempstorage\698e1b83-889a-4733-8d05-507b3b1f6646'. 3(0x00000003): Системе не удается найти указанный путь".
Есть идеи, как это можно исправить?
Для наглядности прилагается небольшой видеоролик, воспроизводящий ошибку.
Это нужно лишь для того, чтобы при редактировании внешнего отчета в процессе отладки (в том числе при изменении содержимого процедуры модуля отчета ПриКомпоновкеРезультата) не нужно было затем вручную закрывать и открывать его заново, чтобы отобразились изменения, а сделать это в один клик по нажатию кнопки переоткрытия (или еще быстрее - с использованием назначенного ей сочетания клавиш).
Вопрос в том, что при сохранении новой версии отчета после внесения изменений в отчет и вызове обработчика команды "ПереоткрытьОтчет" выскакивает ошибка типа "Каталог не обнаружен 'e1cib\tempstorage\698e1b83-889a-4733-8d05-507b3b1f6646'. 3(0x00000003): Системе не удается найти указанный путь".
Есть идеи, как это можно исправить?
// в модуле основной формы отчета
&НаКлиенте
Процедура ПереоткрытьОтчет(Команда)
АдресХранилища = "";
Результат = ПоместитьФайл(АдресХранилища, ИмяФайлаВнешнегоОтчета(), , Ложь);
ИмяФайла = ПодключитьВнешнийОтчет(АдресХранилища);
НоваяФорма = ПолучитьФорму(ЭтаФорма.ИмяФормы,,,Истина);
НоваяФорма.Открыть();
ЭтаФорма.Закрыть();
КонецПроцедуры
&НаСервере
Функция ИмяФайлаВнешнегоОтчета()
Возврат РеквизитФормыВЗначение("Отчет").ЭтотОбъект.ИспользуемоеИмяФайла;
КонецФункции
&НаСервере
Функция ПодключитьВнешнийОтчет(АдресХранилища)
Возврат ВнешниеОтчеты.Подключить(АдресХранилища, , Ложь);
КонецФункции
ПоказатьДля наглядности прилагается небольшой видеоролик, воспроизводящий ошибку.
Прикрепленные файлы:
2022-02-10-10-53-46.mp4
По теме из базы знаний
- Практика применения инструментов продвинутого разработчика 1С
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- 1С on demand – скажи "нет" постоянным билд-агентам
- Мастер-класс SonarQube. В омут с головой
- Самые используемые методы БСП 3.1.9
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ничего пока лучше не придумал для переоткрытия файла отчета, кроме как через имитацию нажатия горячих клавиш:
&НаКлиенте
Процедура ПереоткрытьОтчет(Команда)
// сначала копируем имя файла отчета в буфер обмена
Объект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}");
КонецПроцедуры
&НаСервере
Функция ИмяФайла()
ИмяФайла = РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла;
Возврат ИмяФайла;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот