diff --git a/files/field.go b/files/field.go
index 6f96d48951b48421e3317930fad63aa2afcd7d9e..b1293b7ec6f40960eb247807166e1c9a982212bb 100644
--- a/files/field.go
+++ b/files/field.go
@@ -134,12 +134,7 @@ func (t FileType) PreSave(ctx context.Context, _ *field.Field, v interface{}, _
 		return nil, false, nil
 	}
 
-	// Пропускаем, если файл уже постоянный.
-	if !f.Temporary {
-		return f, false, nil
-	}
-
-	// Помечаем временный файл как постоянный.
+	// Помечаем файл как постоянный.
 	updated, err := t.fs.UpdateFile(ctx, f.ID, &UpdateFileRequest{
 		Temporary: optional.False,
 	})
@@ -147,7 +142,9 @@ func (t FileType) PreSave(ctx context.Context, _ *field.Field, v interface{}, _
 		return nil, false, errors.Wrap(err, "update file")
 	}
 
-	return updated, true, nil
+	changed := f.Temporary != updated.Temporary
+
+	return updated, changed, nil
 }
 
 // Field - создает новое поле Field типа FileType