Имя: Пароль:
1C
1С v8
Отправка почты с прикрепленным файлом из временного хранилища
0 Avily
 
25.10.12
05:38
Необходимо сохранить печатную форму документа в файл и отправить ее по почте.
Как отправить почту и как прикрепить файл разобралась.
Проблема в следующем:
Если сохраняю файл куда-нибудь в конкретную папку, все работает:

Путь="C:\Temp\ЗаявкиДляОтправки";
СоздатьКаталог(Путь);
ПутьФайла=Путь+"\"+Номер+".xls";
ТабДокумент.Записать(ПутьФайла,ТипФайлаТабличногоДокумента.XLS);
...
Письмо.Вложения.Добавить(ПутьФайла,"Заявка");

Если же помещаю во Временное хранилище:

АдресВремен=ПоместитьВоВременноеХранилище(ТабДокумент);
...
Письмо.Вложения.Добавить(АдресВремен,"Заявка");

Выдает ошибку:
Каталог не обнаружен 'e1cib\tempstorage\aed171cc-f7d4-4d6d-9a92-d5954c0c62ca'

Догадываюсь, что проблема именно с адресом Временного хранилища, и система не понимает откуда взять Вложения.
Подскажите, плз, как написать правильно.
1 alextom81
 
25.10.12
06:01
А КаталогВременныхФайлов + имяфайла использовать нельзя ?
А вообще путь смотреть, и добавлять к АдресВремен нужные символы
2 alextom81
 
25.10.12
06:05
Глобальный контекст (Global context)
ПолучитьИмяВременногоФайла (GetTempFileName)
Синтаксис:

ПолучитьИмяВременногоФайла(<Расширение>)
Параметры:

<Расширение> (необязательный)

Тип: Строка.
Указывает желаемое расширение имени временного файла. Если параметр не задан, то создается временный файл с расширением по умолчанию (.tmp). Желаемое расширение задается строкой, которая и будет использована в качестве расширения. Указание точки в начале расширения не обязательно. Например, при указании ".xml" или "xml" результат будет одинаковый.
Возвращаемое значение:

Тип: Строка.

Описание:

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

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Рекомендуется удалять временный файл самостоятельно после его использования.
Пример:

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


Вот как-то так реализовывали
3 Avily
 
25.10.12
06:22
Все получилось. Спасибо большое за помощь.
ИмяВременногоФайла=ПолучитьИмяВременногоФайла("xls");
ТабДокумент.Записать(ИмяВременногоФайла,ТипФайлаТабличногоДокумента.XLS);
...
Письмо.Вложения.Добавить(ИмяВременногоФайла,"Заявка");

Единственный минус в том, что он сам генерит имя файла и как я поняла никак нельзя вмешаться в этот процесс.
4 Wobland
 
25.10.12
06:48
(3) получай временный каталог и пиши туда под своим именем