Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion)¶
| Тип | Поддерживаются языки | Важность | Включена по умолчанию | Время на исправление (мин) | Теги |
|---|---|---|---|---|---|
Ошибка | BSLOS | Важный | Да | 5 | badpracticestandard |
Параметры¶
| Имя | Тип | Описание | Значение по умолчанию |
|---|---|---|---|
searchDeleteFileMethod | Строка | Ключевые слова поиска методов удаления / перемещения файлов | УдалитьФайлы|DeleteFiles|НачатьУдалениеФайлов|BeginDeletingFiles|ПереместитьФайл|MoveFile |
Описание диагностики¶
После окончания работы с временным файлом или каталогом, его необходимо удалить самостоятельно. Нельзя рассчитывать на автоматическое удаление файлов и каталогов при следующем запуске платформы, это может привести к исчерпанию свободного места в каталоге временных файлов.
Примеры¶
Неправильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml"); Данные.Записать(ИмяПромежуточногоФайла); // далее нет удаления файла Правильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml"); Данные.Записать(ИмяПромежуточногоФайла); // Работа с файлом ... // Удаляем временный файл Попытка УдалитьФайлы(ИмяПромежуточногоФайла); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Особенности работы¶
Диагностика определяет корректность работы с временными файлами по наличию методов удаления либо перемещения.
Если в прикладном решении используется свой метод удаления/перемещения поверх платформенного, то стоит указать его в параметре диагностики, добавив через |. Диагностика понимает как глобальные методы, так и расположенные в общих модулях или модулях менеджеров.
Ниже приведены примеры настройки
- Глобальный метод
МоеУдалениеФайловв модулеГлобальныйСерверв параметре указывается какМоеУдалениеФайлов - Метод
МоеУдалениеФайловв общем модулеФайлыКлиентСерверв параметре указывается какФайлыКлиентСервер.МоеУдалениеФайлов - Метод
МоеУдалениеФайловв модуле менеджера справочникаФайловыеОперациив параметре указывается какСправочники.ФайловыеОперации.МоеУдалениеФайлов
и так далее.
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:MissingTemporaryFileDeletion-off // BSLLS:MissingTemporaryFileDeletion-on Параметр конфигурационного файла¶
"MissingTemporaryFileDeletion": { "searchDeleteFileMethod": "УдалитьФайлы|DeleteFiles|НачатьУдалениеФайлов|BeginDeletingFiles|ПереместитьФайл|MoveFile" }