Имя: Пароль:
1C
1С v8
Добавление файлов в "Электронное письмо"
,
0 FuriKuri
 
03.05.13
11:14
Столкнулся с такой проблемой. Нужно программно добавить в электронное письмо файлы.

Пробовал так:
-создавал ТЗ из файлов

НоваяСтрока = Вложения.Добавить();
           НоваяСтрока.ИмяФайла = КаталогВременныхФайлов()+"Счет-Фактура.pdf";
           НоваяСтрока.Наименование = "Счет-фактура";

-заполнял собственно сам документ:

Письмо = Документы.ЭлектронноеПисьмо.СоздатьДокумент();
ФормаПисьма = Письмо.ПолучитьФорму("ФормаДокумента");
ФормаПисьма.Тема = Тема;
ФормаПисьма.ТекстПисьма = ТекстПисьма;
ФормаПисьма.Кому = Кому;
ТабЧасть = ФормаПисьма.ВложенияПисьмаТЗ;

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


Но при открытии письма, вместо самих файлов в таблице получается просто текст. Что не так делаю?
1 FuriKuri
 
03.05.13
11:15
1с УТ 10.3
2 IamAlexy
 
03.05.13
11:15
там же в типовой УТ10 это реализовано...

см. работу со вложениями электронного письма
3 FuriKuri
 
03.05.13
11:21
(2) там сделано через "Письмо = новое". Там не таким образом заполняется
4 FuriKuri
 
03.05.13
11:32
Все разобрался. Сделал вот так -

Для каждого СтрокаТЗ Из Вложения Цикл
   ПолученныйФайл = Новый Файл(СтрокаТЗ.ИмяФайла);
   НовыйФайл = ТабЧасть.Добавить();
       НовыйФайл.ИмяФайла = ПолученныйФайл.Имя;
       НовыйФайл.Данные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПолученныйФайл.ПолноеИмя), Новый СжатиеДанных());
КонецЦикла;
5 FuriKuri
 
03.05.13
12:35
Еще такой вопрос, почему когда имя файла задается как
НоваяСтрока.ИмяФайла = КаталогВременныхФайлов()+"Расходная накладная.pdf";

делается все нормально, но стоит заменить например имя на переменную:

НоваяСтрока.ИмяФайла = КаталогВременныхФайлов()+Имя+".pdf";

то выдает ошибку:

Ошибка при вызове конструктора (ДвоичныеДанные)
       НовыйФайл.Данные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПолученныйФайл.ПолноеИмя), Новый СжатиеДанных());
по причине:
Недопустимое значение параметра (параметр номер '1')
6 Wobland
 
03.05.13
12:40
НоваяСтрока.ИмяФайла и ПолученныйФайл - как-то разные вещи
7 FuriKuri
 
03.05.13
12:44
(6) Извиняюсь. Вне контекста написал. я заношу файл в тз:

ТабЗП.Записать(КаталогВременныхФайлов()+"Заказ покупателя"+Имя+".pdf",ТипФайлаТабличногоДокумента.PDF);
           НоваяСтрока = Вложения.Добавить();
           НоваяСтрока.ИмяФайла =КаталогВременныхФайлов()+"Заказ покупателя"+Имя+".pdf";
           НоваяСтрока.Наименование = "Заказ покупателя";

и тогда при заполнении вложений как в (4) вылезает эта ошибка
8 FuriKuri
 
03.05.13
12:54
Я наверно делаю ошибку при указании

ТабЗП.Записать(КаталогВременныхФайлов()+"Заказ покупателя"+Имя+".pdf",ТипФайлаТабличногоДокумента.PDF);
так как сохраненый файл не имеет расширения
9 Wobland
 
03.05.13
12:55
вот! второй раз приходит в голову мысль, что автор где-то что-то врёт
10 FuriKuri
 
03.05.13
12:58
(9) так что не так то?))
11 Wobland
 
03.05.13
13:05
(10) Записать(+".пдф"), сохраненый файл не имеет расширения

ПолученныйФайл = Новый Файл(СтрокаТЗ.ИмяФайла);
Новый ДвоичныеДанные(ПолученныйФайл.ПолноеИмя)
всё верно
12 FuriKuri
 
03.05.13
13:14
(11)  так вроде указано там что пдф, но оно его не видит
13 FuriKuri
 
03.05.13
13:18
ТабЗП.Записать(КаталогВременныхФайлов()+Имя+".pdf",ТипФайлаТабличногоДокумента.PDF);
14 FuriKuri
 
03.05.13
13:41
(13) Все. разобрался. Просто название файла было слишком большое