Перейти к содержанию
bslls:MissingTemporaryFileDeletion

Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion)

  • Тип: Ошибка
  • Важность: Важный
  • Включена по умолчанию: Да
  • Теги: badpractice, standard

Описание диагностики

После окончания работы с временным файлом или каталогом, его необходимо удалить самостоятельно. Нельзя рассчитывать на автоматическое удаление файлов и каталогов при следующем запуске платформы, это может привести к исчерпанию свободного места в каталоге временных файлов.

Примеры

Неправильно:

ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);
// далее нет удаления файла

Правильно:

ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);

// Работа с файлом
...

// Удаляем временный файл
Попытка
   УдалитьФайлы(ИмяПромежуточногоФайла);
Исключение
   ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

Особенности работы

Диагностика определяет корректность работы с временными файлами по наличию методов удаления либо перемещения.

Если в прикладном решении используется свой метод удаления/перемещения поверх платформенного, то стоит указать его в параметре диагностики, добавив через |. Диагностика понимает как глобальные методы, так и расположенные в общих модулях или модулях менеджеров.

Ниже приведены примеры настройки

  • Глобальный метод МоеУдалениеФайлов в модуле ГлобальныйСервер в параметре указывается как МоеУдалениеФайлов
  • Метод МоеУдалениеФайлов в общем модуле ФайлыКлиентСервер в параметре указывается как ФайлыКлиентСервер.МоеУдалениеФайлов
  • Метод МоеУдалениеФайлов в модуле менеджера справочника ФайловыеОперации в параметре указывается как Справочники.ФайловыеОперации.МоеУдалениеФайлов

и так далее.

Источники

Соответствие стандартам

Источник диагностики