Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Сохраняю в файл табличный документ. Не могу этот файл удалить. (http://forums.kuban.ru/f1040/sohranyayu_v_fajl_tablichnyj_dokument_ne_mogu_etot_fajl_udalit--2776072.html)

Викторр 29.06.2012 15:15

Сохраняю в файл табличный документ. Не могу этот файл удалить.
 
8.2

Делаю рассылку уведомлений по email. К уведомлению в виде вложений должны прилагаться файлики, которые я получаю, записывая в файл ТабличныйДокумент

Файлики=Новый Массив;
Пока Выбка.Следующий() Цикл
ТекстПисьма = ТекстПисьма+Символы.ПС+ Выбка.Физлицо+Символы.Таб+Формат(Выбка.ДатаОкончания,"ДЛФ=DD");
Файлики.Добавить(СоздатьФайлУведомления(Выбка.Ссылка)); // СоздатьФайлУведомления создает файл для вложения во временной папке и возвращает его имя
КонецЦикла;

//пропущено формирование заголовков сообщения

Для Каждого Файлик из Файлики Цикл
Сообщение.Вложения.Добавить(Файлик, Выбка.Физлицо);
КонецЦикла;
Почта.Послать(Сообщение);
Для Каждого Файлик из Файлики Цикл
УдалитьФайлы(Файлик);
КонецЦикла;

Далее собственно функция, где я получаю файлики:


Функция СоздатьФайлУведомления(Сотрудник)

//Всякие запросы пропущены
ТабДок=Новый ТабличныйДокумент;
Макет=ПолучитьОбщийМакет("УведомлениеОбУвольнении");
//Тут всякая фигня выводится в ТабДок
Файл=КаталогВременныхФайлов()+Чел.ФИО+".xls";
ТабДок.Записать(Файл,ТипФайлаТабличногоДокумента.XLS);
Возврат Файл;
КонецФункции

Викторр 29.06.2012 15:15

Вкратце: создаю сообщение, создаю несколько файликов, прицепляю их в виде вложений, а потом пытаюсь эти временные файлики удалить за ненадобностью.
Ну и проблема в том, что при выполнении УдалитьФайл(Файлик) выдается ошибка совместного доступа к файлу.
Как же этот файл закрыть, чтобы его удалить можно было?

GreenDragon 29.06.2012 15:58

После записи в файл, его нужно закрыть, иначе он так и останется открытым. Файл.Закрыть();

GreenDragon 29.06.2012 15:58

пример:
Файл = Новый ЗаписьТекста(ИмяФайла);
Файл.ЗаписатьСтроку("Привет!");
Файл.ЗаписатьСтроку("Как дела?");
Файл.Закрыть();

Uho 29.06.2012 16:06

2-GreenDragon > что за чушь?
0-Викторр > попробуй удалять после Почта.Отключиться()

ЗЫ. а почему не "Физличико", "Сообщеньеце", "ТекстПисьмеца" и т.п.?

Викторр 02.07.2012 08:51

Всё, нашел.
Почта.Отключиться() тоже не помогает, но если пересоздать сообщение (новый Сообщение), то всё ок.


Текущее время: 16:55. Часовой пояс GMT +3.