Имя: Пароль:
1C
1С v8
Как задать имя временному файлу (вложенный) при отправке письма по почте?
0 spiller26
 
13.05.13
16:25
Создал процедуру которая отправляет письма по почте с вложением
Как переименовать файл отправки, имя которого формирует система атоматом? Помогите плиз

   //формирование макета
   ТабДокумент = новый ТабличныйДокумент;
   Макет    = ПолучитьМакет("Макет");
   //
   Обл    = Макет.ПолучитьОбласть("Область1");
   ТабДокумент.Вывести(Обл);
   //вложение
   ФайлВФорматеXLS = ПолучитьИмяВременногоФайла("xls");
   ИмяФайлаВложения = "файл таблица";
   ТабДокумент.Записать(ФайлВФорматеXLS, ТипФайлаТабличногоДокумента.XLS97);
   //    
   Письмо.Вложения.Добавить(ФайлВФорматеXLS);
   //отправка
   Попытка
       Почта.Подключиться(Профиль);
       Сообщить("Подключенено");
       Почта.Послать(Письмо);
       Сообщить("Письма отправлены");
   Исключение
       Сообщить("Не удалось подключиться к серверу");
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   Почта.Отключиться();
   Сообщить("Соединение завершено");
   //удаление временного файла    
   Попытка
       УдалитьФайлы(ФайлВФорматеXLS);
   Исключение
   КонецПопытки;
1 Maxus43
 
13.05.13
16:28
зачем так получаешь имя временного? называй сам как хочешь, сохраняй в папку КаталогВременныхФайлов()
2 spiller26
 
13.05.13
16:32
(1) ФайлВФорматеXLS = КаталогВременныхФайлов() + ИмяФайлаВложения + ".xls";

Так?
3 Maxus43
 
13.05.13
16:33
(2) примерно... плохо чтоли?)
4 Defender aka LINN
 
13.05.13
16:37
А СП почитать, не?

Вариант синтаксиса: Двоичные данные

Синтаксис:

Добавить(<ДвоичныеДанные>, <НаименованиеВложения>)
Параметры:

<ДвоичныеДанные> (обязательный)

Тип: ДвоичныеДанные.
Данные вложения.
<НаименованиеВложения> (необязательный)

Тип: Строка.
Наименование вложения.
Значение по умолчанию: Пустая строка
Описание варианта метода:

Добавляет ПочтовоеВложение в коллекцию почтовых вложений как данные с наименованием.
5 spiller26
 
13.05.13
16:37
(3) что-то об этом не подумал как-то. Сенкс.
6 spiller26
 
13.05.13
16:42
(4) не срабатывает
7 Defender aka LINN
 
13.05.13
16:45
(6) У меня срабатывает. ЧЯДНТ?
8 Maxus43
 
13.05.13
16:46
можно заюзать это и (4), хз почему не срабатывает
Глобальный контекст (Global context)
ПоместитьВоВременноеХранилище (PutToTempStorage)
Синтаксис:

ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)
9 spiller26
 
13.05.13
16:55
Стоит
Письмо = Новый ИнтернетПочтовоеСообщение;

Но!!!
1 Общие объекты/Интернет/Почта/ПочтовоеСообщение/Свойства/Вложения
2 Общие объекты/Интернет/ИнтернетПочта/ИнтернетПочтовоеСообщение/Свойства/Вложения

Идет по 1 пути
10 mxs089
 
13.05.13
17:06
ПереместитьФайл (MoveFile)
Синтаксис:

ПереместитьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
Параметры:

<ИмяФайлаИсточника> (обязательный)

Тип: Строка.
Полное имя файла-источника (полное исходное имя файла).
<ИмяФайлаПриемника> (обязательный)

Тип: Строка.
Полное имя файла-приемника (полное новое имя файла).
Описание:

Выполняет перемещение (переименование) указанного файла.

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

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

Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами.
На веб-клиенте метод работает только с локальными файлами.
Пример:

ПереместитьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm");
11 bvg
 
13.05.13
17:13
//сначала заполняю параметры письма
соотвВложения = Новый Соответствие;    
соотвВложения.Вставить(ИмяФайла, ДвоичныеДанные);
ПараметрыПисьма.Вставить("Вложения", соотвВложения);

//при отправке в другой процедуре заполняю вложения
Письмо = Новый ИнтернетПочтовоеСообщение;
Если Вложения <> Неопределено Тогда
Для Каждого ЭлементВложение Из Вложения Цикл
Письмо.Вложения.Добавить(ЭлементВложение.Значение,    ЭлементВложение.Ключ);
КонецЦикла;
КонецЕсли;
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.