Как прикрепить файл к программно созданному электронному письму?
Всем привет, подскажите как сделать или где пример посмотреть.
Конфигурация Розница 2.1 (но это наверное не важно)
Есть документ Заявки на доставку.
В нем добавил реквизит Трек-номер и кнопку Отправить письмо.
Так вот заполняем Трек-номер и наживаем кнопку Отправить письмо, отправляем трек-номер контрагенту:
Нужно при отправке письма прикрепить заказ, желательно в pdf.
Спасибо
Конфигурация Розница 2.1 (но это наверное не важно)
Есть документ Заявки на доставку.
В нем добавил реквизит Трек-номер и кнопку Отправить письмо.
Так вот заполняем Трек-номер и наживаем кнопку Отправить письмо, отправляем трек-номер контрагенту:
Если EmailПокупателя <> "" Тогда
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "127.0.0.1";
Профиль.ПортSMTP = 5027;
Профиль.Пользователь = "";
Профиль.Пароль = "";
Профиль.ПользовательSMTP = "";
Профиль.ПарольSMTP = "";
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
Почта = Новый ИнтернетПочта;
// Создадим почтовое сообщение
Письмо = Новый ИнтернетПочтовоеСообщение;
Текст = Письмо.Тексты.Добавить("Трек-номер");
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Письмо.Тема = "Трек-номер" ;
Письмо.Отправитель = "";
Письмо.ИмяОтправителя = "";
//Получатели
Письмо.Получатели.Добавить(EmailПокупателя);
//Письмо.Получатели.Добавить("sprinter83@yandex.ru");
//Письмо.Получатели.Добавить("sprinter83@list.ru");
// Отправляем
Попытка
Почта.Подключиться(Профиль);
Сообщить("Подключенено");
Почта.Послать(Письмо);
Сообщить("Письма отправлены");
Объект.В_КоличествоОтправленыхПисем = Объект.В_КоличествоОтправленыхПисем + 1;
ЭтотОбъект.Записать();
Исключение
Сообщить("Не удалось подключиться к серверу");
Сообщить(ОписаниеОшибки());
КонецПопытки;
Почта.Отключиться();
Сообщить("Соединение завершено");
КонецЕсли;
ПоказатьНужно при отправке письма прикрепить заказ, желательно в pdf.
Спасибо
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1. Для вложения одного файла:
2. Для вложения нескольких - организуйте цикл
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.pdf"),"file.pdf");
2. Для вложения нескольких - организуйте цикл
нет. мне надо внутр.док-т со всеми приложенными к нему файлами передать в другой ЭДО 1С и там по полученному письму создать в системе такой же внутр.док-т со всеми полученными файлами (приложенными к исходному внутр.док-ту).
как энто сделать пока не могу понять.
всяких процедур в ЭДО понапихано, что чёрт ногу сломит:
ЛёгкаяПочта.....
РаботаСПочтовымиСообщениямиСлужебный...
Почта.......
ПараметрыОтправкиПочтовогоСообщения.ДобавитьВложениеФайл.....
понаворочено х*р пойми что....как этим говном пользоваться не понятно.
Как-будто нельзя было один одну процедуру/функцию в платформе зашить и всё.
допустим: ПриложитьФайл(СДиска,ИзВрмеменногоХранилища,ИзСправочникаИлиДокументов)
как энто сделать пока не могу понять.
всяких процедур в ЭДО понапихано, что чёрт ногу сломит:
ЛёгкаяПочта.....
РаботаСПочтовымиСообщениямиСлужебный...
Почта.......
ПараметрыОтправкиПочтовогоСообщения.ДобавитьВложениеФайл.....
понаворочено х*р пойми что....как этим говном пользоваться не понятно.
Как-будто нельзя было один одну процедуру/функцию в платформе зашить и всё.
допустим: ПриложитьФайл(СДиска,ИзВрмеменногоХранилища,ИзСправочникаИлиДокументов)
кому надо вот решение:
//добавляем вложения - файл
Док = Справочники.ВнутренниеДокументы.НайтиПоКоду("0000-0000000021");
//получаем все прикреплённые файлы к этому Док. получается массив.
ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Док, Ложь);
//Получаем Двоичные данные ОДНОГО файла (первого в массиве). если их там куча делаем цикл.
ДДФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ВсеФайлыДокумента[0].Ссылка,Ложь);
//прикручиваем файл к письму и даём ему любое название. я просто скопировал имеющееся.
Письмо.Вложения.Добавить(ДДФайла,ВсеФайлыДокумента[0].Наименование);
ВНИМАНИЕ вопрос:
как их достать на принимающей стороне из письма и прикрутить новому созданному внутр.док-ту ???
всё это надо сделать в допобработчике события Получение входящего письма в 1с ЭДО.
Я не пойму что является Событие.Источник...это массив писем или каждое письмо отдельно??? или может ещё что...где вообще такие вещи расписаны в справке 1С ???
//добавляем вложения - файл
Док = Справочники.ВнутренниеДокументы.НайтиПоКоду("0000-0000000021");
//получаем все прикреплённые файлы к этому Док. получается массив.
ВсеФайлыДокумента = РаботаСФайламиВызовСервера.ПолучитьВсеПодчиненныеФайлы(Док, Ложь);
//Получаем Двоичные данные ОДНОГО файла (первого в массиве). если их там куча делаем цикл.
ДДФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ВсеФайлыДокумента[0].Ссылка,Ложь);
//прикручиваем файл к письму и даём ему любое название. я просто скопировал имеющееся.
Письмо.Вложения.Добавить(ДДФайла,ВсеФайлыДокумента[0].Наименование);
ВНИМАНИЕ вопрос:
как их достать на принимающей стороне из письма и прикрутить новому созданному внутр.док-ту ???
всё это надо сделать в допобработчике события Получение входящего письма в 1с ЭДО.
Я не пойму что является Событие.Источник...это массив писем или каждое письмо отдельно??? или может ещё что...где вообще такие вещи расписаны в справке 1С ???
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот