Как прикрепить файл к программно созданному электронному письму?

1. 1malder1 7 14.02.15 12:42 Сейчас в теме
Всем привет, подскажите как сделать или где пример посмотреть.

Конфигурация Розница 2.1 (но это наверное не важно)
Есть документ Заявки на доставку.
В нем добавил реквизит Трек-номер и кнопку Отправить письмо.

Так вот заполняем Трек-номер и наживаем кнопку Отправить письмо, отправляем трек-номер контрагенту:

	Если EmailПокупателя <> "" Тогда
		 	
		Профиль = Новый ИнтернетПочтовыйПрофиль;
		Профиль.АдресСервераSMTP = "127.0.0.1";
		Профиль.ПортSMTP = 5027;
		Профиль.Пользователь = "";
		Профиль.Пароль = "";
		Профиль.ПользовательSMTP = "";
		Профиль.ПарольSMTP = "";
		Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
		Почта = Новый ИнтернетПочта;
		
		// Создадим почтовое сообщение
		Письмо = Новый ИнтернетПочтовоеСообщение;
		Текст = Письмо.Тексты.Добавить("Трек-номер");
		Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
		Письмо.Тема = "Трек-номер"   ; 
		Письмо.Отправитель = "";
		Письмо.ИмяОтправителя = "";
		
		
		//Получатели
		Письмо.Получатели.Добавить(EmailПокупателя);
		//Письмо.Получатели.Добавить("sprinter83@yandex.ru");    
		//Письмо.Получатели.Добавить("sprinter83@list.ru");
		
		// Отправляем
		Попытка
			Почта.Подключиться(Профиль);
			Сообщить("Подключенено");
			Почта.Послать(Письмо);
			Сообщить("Письма отправлены");
			Объект.В_КоличествоОтправленыхПисем = Объект.В_КоличествоОтправленыхПисем + 1;
			ЭтотОбъект.Записать();
		Исключение
			Сообщить("Не удалось подключиться к серверу");
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
		
		Почта.Отключиться();
		Сообщить("Соединение завершено");
	КонецЕсли;
Показать


Нужно при отправке письма прикрепить заказ, желательно в pdf.
Спасибо
13Gregory; +1 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 393 14.02.15 13:13 Сейчас в теме
(1) 1malder1, В Письмо есть свойство: "Вложения". Не вспомню как точно называется.
1. Подготовить список значений вложений. Где: Значение - путь к файлу, Представление - Имя файла.
2. Добавить в массив (или список значений, не вспомню) данные с п.1.
3. yaroslavkravets 24 15.08.17 12:23 Сейчас в теме
1. Для вложения одного файла:
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.pdf"),"file.pdf");

2. Для вложения нескольких - организуйте цикл
Gendelf; always_newbie; Новичок1с; maksa2005; EvgeniyNP; +5 Ответить
4. user1162836 15.01.21 10:52 Сейчас в теме
а как приложить внутренний документ в ЭДО (не на диске компа) ?
Допустим из Справочника.ВнутренниеДокументы.НайтиПоРеквизиту("Регномер","7898");
5. user868505 15.01.21 12:25 Сейчас в теме
(4)Вам же не сам документ нужно приложить, а его печатную форму, верно? Сформировать табличный документ, например, сохранить как временный файл, и его уже вкладывать.
6. user1162836 15.01.21 14:51 Сейчас в теме
нет. мне надо внутр.док-т со всеми приложенными к нему файлами передать в другой ЭДО 1С и там по полученному письму создать в системе такой же внутр.док-т со всеми полученными файлами (приложенными к исходному внутр.док-ту).
как энто сделать пока не могу понять.
всяких процедур в ЭДО понапихано, что чёрт ногу сломит:
ЛёгкаяПочта.....
РаботаСПочтовымиСообщениямиСлужебный...
Почта.......
ПараметрыОтправкиПочтовогоСообщения.ДобавитьВложениеФайл.....

понаворочено х*р пойми что....как этим говном пользоваться не понятно.
Как-будто нельзя было один одну процедуру/функцию в платформе зашить и всё.
допустим: ПриложитьФайл(СДиска,ИзВрмеменногоХранилища,ИзСправочникаИлиДокументов)
7. user1162836 28.01.21 23:17 Сейчас в теме
кому надо вот решение:

//добавляем вложения - файл
Док = Справочники.ВнутренниеДокументы.НайтиПоКоду("0000-0000000021");
//получаем все прикреплённые файлы к этому Док. получается массив.
ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Док, Ложь);
//Получаем Двоичные данные ОДНОГО файла (первого в массиве). если их там куча делаем цикл.
ДДФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ВсеФайлыДокумента[0].Ссылка,Ложь);
//прикручиваем файл к письму и даём ему любое название. я просто скопировал имеющееся.
Письмо.Вложения.Добавить(ДДФайла,ВсеФайлыДокумента[0].Наименование);

ВНИМАНИЕ вопрос:
как их достать на принимающей стороне из письма и прикрутить новому созданному внутр.док-ту ???
всё это надо сделать в допобработчике события Получение входящего письма в 1с ЭДО.
Я не пойму что является Событие.Источник...это массив писем или каждое письмо отдельно??? или может ещё что...где вообще такие вещи расписаны в справке 1С ???
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот