В какой момент удалять файлы внешних обработок?

1. Kutuzov 750 26.06.13 16:32 Сейчас в теме
В конфигурации УПП внешние обработки хранятся в справочнике. При запуске такой обработки сначала создается временный файл, в него записывается эта обработка, после чего она запускается как внешняя. В связи с этим возникает вопрос. В типовой УПП не отрабатывается удаление этих временных файлов. В помощнике 1С сказано, что не удаленные временные файлы будут удалены при "следующем запуске" платформы. Но вот база крутится на сервере, следовательно платформа не перезапускается, и файлы не удаляются.
Некоторые отчеты, которые запускаются пользователями очень часто (форма отчета каждый раз заново создается), находятся во внешних. Соответственно, эти файлы накапливаются и никуда не деваются.
Вопрос: какие есть подводные камни, если сразу после открытия формы внешней обработки удалять ее файлы? Т.е. что-то вроде такого:

ИмяФайла = ПолучитьИмяВременногоФайла();
Обработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Обработка 1");
ДвоичныеДанные = Обработка.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла);
Форма = ВнешняяОбработка.ПолучитьФорму();
Форма.Открыть();
УдалитьФайлы(ИмяФайла);

В типовой почему-то так не сделано.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
15. echo77 1921 26.06.13 22:18 Сейчас в теме
(14) Угу, видимо это исправили. Помню давным давно видел такой недостаток, возможно еще на 8.1 :-)
После чего сама 1С в одном из модулей открытия внешних отчетов закомментировала строчку удаления временного файла.

Думаю, теперь можно удалять файл сразу, после открытия
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. echo77 1921 26.06.13 17:55 Сейчас в теме
(1) Сразу раскажу про подводные камни.
Для примера попробуйте сваять простой отчет на СКД: тупо схема и все, система сама нарисует форму и все обработчики. Сделайте удаление сразу после запуска обработки. Подключите отчет в базу данных через внешние отчеты.
Сформируйте отчет, попробуйте выполнить расшифровку результата и сами все поймете.

Рекомендую удалять или при начале работы системы или призавершении

p.s. Что тема делает в разделе LIFE?
14. Kutuzov 750 26.06.13 18:15 Сейчас в теме
(10) echo77,
>p.s. Что тема делает в разделе LIFE?
Это инфостарт: я указал тему прог-ие 8.2, нажал "пред. просмотр", а он взял, и тему поменял. Всегда так делает, забываю иногда.
>Рекомендую удалять или при начале работы системы или при завершении
Как я уже говорил, у нас база на сервере, т.е. этот вариант не годится.
>Сразу раскажу про подводные камни.
Можно еще раз? Подробнее.
Что я сделал: создал внешний отчет (просто как файл), запустил его. Удалил внешний отчет с диска. Запустил расшифровку. Все сработало нормально.
15. echo77 1921 26.06.13 22:18 Сейчас в теме
(14) Угу, видимо это исправили. Помню давным давно видел такой недостаток, возможно еще на 8.1 :-)
После чего сама 1С в одном из модулей открытия внешних отчетов закомментировала строчку удаления временного файла.

Думаю, теперь можно удалять файл сразу, после открытия
2. Akuji 22 26.06.13 16:37 Сейчас в теме
все обработки допиливать...
может регламентным заданием почистить папку или не 1с средствами
3. Kutuzov 750 26.06.13 16:41 Сейчас в теме
(2) Akuji, почему все обработки?? Не совсем понял.
Про регламентное задание - а как понять - какие файлы используются прямо сейчас, а какие - нет? Не годится.
4. Akuji 22 26.06.13 16:48 Сейчас в теме
если сразу после открытия формы внешней обработки удалять ее файлы

ну значит данный код надо вставить во все внешние обработки по идее
5. Kutuzov 750 26.06.13 16:50 Сейчас в теме
(4) Akuji, нет, этот код вставляется в то место, откуда вызывается внешняя обработка. См. выше пример кода.
6. biker1052 26.06.13 16:52 Сейчас в теме
Проще всего дописать в модуле после запуска внешней обработки процедуру удаления временного файла.
7. deniseek77 86 26.06.13 17:02 Сейчас в теме
(6) biker1052, Они же пмшутся методом КаталогВременныхФайлов(), то есть темп, а разве он по мере заполнения не чистится системой?


Сорри, действительно, видимо не чистится.
9. Kutuzov 750 26.06.13 17:47 Сейчас в теме
(6) biker1052, (8) deniseek77, так я ж и пишу - сразу после открытия формы внешнего отчета или обработки (она продолжает висеть у пользователя на экране) удаляется файл. Никакого исключения не вызывается, все отрабатывается нормально, файл на самом деле удаляется. Это делает код, написанный выше, в самом начале. При этом обработка продолжает работать, пользователь тыкает кнопки, все норм. Вопрос - таит ли этот способ какую-либо опасность? Если нет, почему в типовой конфе 1с-ники так не сделали?
11. biker1052 26.06.13 17:57 Сейчас в теме
(9) Kutuzov, Нет не открытия формы а закрытия... т.е. когда он ее закрыл тогда и удалять.
8. deniseek77 86 26.06.13 17:22 Сейчас в теме
С помощью wsh получить все темпы разных пользователей системы, ну а потом регламентным заданием 1 раз в неделю (например), через попытку- исключение чистить. Можно например так.
12. biker1052 26.06.13 18:00 Сейчас в теме
Форма.Открыть();
УдалитьФайлы(ИмяФайла);

По идее удалить файлы срабатывает уже после закрытия формы.
Или я не прав?
13. Kutuzov 750 26.06.13 18:06 Сейчас в теме
(12) biker1052, нет, это верно только для случая модального открытия. Посмотрите в отладчике)
Оставьте свое сообщение

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