Алгоритм создания и отправки электронного письма (со вложением) УТ 3.0 для Украины

20.07.15

Разработка - Математика и алгоритмы

Алгоритм позволит быстро создать письмо с вложением (например, печатная форма Заказа клиента в формате XLS) и отправить его партнеру. Для конфигурации Управление торговлей для Украины 3.0

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

Еще, обратите внимание, что в типовой конфигурации (Управление торговлей для Украины 3.0.10.1) не предусмотрены настройки для работы с почтовыми серверами, требующими SSL соединения, хотя на уровне платформы 1С (8.3.5.1336) уже реализована такая возможность. Поэтому нужно внести небольшое изменение в общем модуле "Электронная почта":

Функция СформироватьИнтернетПрофиль(знач УчетнаяЗапись,
знач Пароль = Неопределено,
знач ФормироватьSMTPПрофиль = Истина,
знач ФормироватьPOP3Профиль = Истина) Экспорт

Профиль = Новый ИнтернетПочтовыйПрофиль;

//+ 2015.07.13
Профиль.ИспользоватьSSLSMTP=Истина;
Профиль.ИспользоватьSSLPOP3=Истина;
//- 2015.07.13
Профиль.Пользователь = УчетнаяЗапись.Пользователь;

........

АЛГОРИТМ СОЗДАНИЯ ЭЛЕКТРОННОГО ПИСЬМА:

// Получим менеджер печати
ИмяМенеджераПечати = "Документ.ЗаказКлиента";
МенеджерПечати = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяМенеджераПечати);
// Подготовка параметров
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(ОбъектДок.Ссылка);
ОбъектыПечати = Новый СписокЗначений;
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

// Формируем печатный документ Заказа клиента
Таб = МенеджерПечати.СформироватьПечатнуюФормуЗаказаКлиента(МассивОбъектов, ОбъектыПечати, ПараметрыВывода);

// Создаем документ Электронное письмо
НачатьТранзакцию();
ЭлПисьмо = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
ЭлПисьмо.УстановитьНовыйНомер();
ЭлПисьмо.Автор = ПараметрыСеанса.ТекущийПользователь;
ЭлПисьмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
ЭлПисьмо.Дата = ТекущаяДата();
ЭлПисьмо.ДатаОтправления = ТекущаяДата();
ЭлПисьмо.Ответственный = ПараметрыСеанса.ТекущийПользователь;

// Получаем адрес эл. почты партнера
ПолучательАдрес = УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформацияОбъекта(ОбъектДок.Партнер, Справочники.ВидыКонтактнойИнформации.EmailПартнера);
ЭлПисьмо.СписокПолучателейПисьма = ПолучательАдрес;

// Формируем тему письма и имя файла (замените по-своему) и записываем файл xls
ИмяАгента = СокрЛП(ВыбАгент);
Тема = "Заказ " + СокрЛП(ОбъектДок.Партнер) + " (Полифарб, "+ИмяАгента+")";
НаименованиеФайла = "Заказ " + СокрЛП(ОбъектДок.Контрагент) + " от " + ИмяАгента + " " + Лев(ОбъектДок.Дата,10);

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

ЭлПисьмо.Тема = Тема;
ЭлПисьмо.ЕстьВложения = Истина;

// Пример получения адреса эл. почты для пользователя
//Запрос = Новый Запрос;
//Запрос.Текст = 
// "ВЫБРАТЬ
// | УчетныеЗаписиЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты
// |ИЗ
// | РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
// |ГДЕ
// | УчетныеЗаписиЭлектроннойПочты.ОтветственныйЗаОбработкуПисем = &Пользователь";
//Запрос.УстановитьПараметр("Пользователь", ЭлПисьмо.Ответственный);
//РезЗапроса = запрос.Выполнить();
//Выборка = РезЗапроса.Выбрать();
//Если Не Выборка.Следующий() Тогда
// Возврат;
//КонецЕсли;
//ЭлПисьмо.ОтправительПредставление = Выборка.УчетнаяЗапись;
//ЭлПисьмо.УчетнаяЗапись = Выборка.УчетнаяЗапись;

УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
ЭлПисьмо.ОтправительПредставление = УчетнаяЗапись;
ЭлПисьмо.УчетнаяЗапись = УчетнаяЗапись;
ЭлПисьмо.Записать(); 

ЗафиксироватьТранзакцию();
//| Файлы.Наименование КАК ПолноеНаименование,
//| Файлы.Расширение КАК Расширение,
//| Файлы.Ссылка КАК Ссылка,
//| Файлы.ЭлектронныеЦифровыеПодписи.(
//| НомерСтроки,
//| Подпись
//| ),
//| Файлы.ИДФайлаЭлектронногоПисьма
//|ИЗ
//| Справочник.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы КАК Файлы
//|ГДЕ
//| Файлы.ВладелецФайла = &ВладелецФайла";

// Формируем вложение 
Спр = Справочники.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы.СоздатьЭлемент();
Спр.ВладелецФайла = ЭлПисьмо.Ссылка;
Спр.Наименование = НаименованиеФайла;
Спр.Расширение = "xls";

Данные = Новый ДвоичныеДанные(ИмяФайла);
Спр.ФайлХранилище = Новый ХранилищеЗначения(Данные);
Спр.Записать();

соотвВложения = Новый Соответствие; 
соотвВложения.Вставить(НаименованиеФайла+".xls", Данные); 

// Заполняем параметры письма и отправляем
ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Тема", Тема);
ПараметрыПисьма.Вставить("Тело", НСтр("ru = 'Это сообщение отправлено подсистемой электронной почты 1С:Предприятие'"));
ПараметрыПисьма.Вставить("Кому", ПолучательАдрес);
ПараметрыПисьма.Вставить("Вложения", соотвВложения);

ИдентификаторПисьма = ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(ЭлПисьмо.УчетнаяЗапись, ПараметрыПисьма);

Электронное письмо УТ 3.0 Отправка электронного письма Создание электронного письма Отправка письма

См. также

"Акты сверки +" Групповая подготовка и рассылка актов сверки для Бухгалтерии 3.0.

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    22461    183    6    

163

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    84001    42    191    

127

Автоматическая рассылка отчетов из 1С: Управление торговлей 10.3 и 1С:УПП по электронной почте

Email рассылки Оптовая торговля Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Управленческий учет Платные (руб)

Многим сотрудникам предприятия требуется актуальная и достоверная информация для принятия верных управленческих решений. Получить данную информацию можно при помощи отчетов, существующих в конфигурации «1С: Управление торговлей 10.3» или «1С:УПП». Но не всегда у пользователей есть время, возможность и/или желание формировать отчеты непосредственно в системе. Намного привычней и удобней получать готовые отчеты на электронную почту, не открывая 1С.

12000 руб.

16.04.2014    84456    100    91    

94

Массовая рассылка печатных форм любых документов по электронной почте

Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

За $m и Руб. Решение для массовой рассылки печатных форм (в том числе и дополнительных) любых документов, и произвольных файлов по электронной почте. Рассылка пакета документов. Добавление факсимильных печати и подписи. Произвольные шаблоны HTML/Simple text с автозаполнением любыми полями документа. Любые форматы файлов. Упаковка вложений в архив. Транслитерация имен файлов. Разбиение рассылки на произвольные порции. Обход спам-фильтров. Журналирование рассылок.

3600 руб.

30.06.2022    9191    64    88    

27

Групповое создание актов сверок

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработки предназначены для массового создания актов сверки и отправки их по электронной почте для конфигураций Управление торговлей 10.3. и Бухгалтерия предприятия 3.0. Для Бухгалтерии 3.0 Разработка велась на 1С:Предприятие 8.3 (8.3.15.1830). проверялась на Бухгалтерия предприятия 3.0 (3.0.71.83) и 3.0.76.77 Для Управление торговлей 10.3 Разработка велась на 1С:Предприятие 8.3 релиз конфигурации (10.3.61.2) . РАБОТАЕТ НА БАЗОВЫХ и ПРОФ. ВЕРСИЯХ.

2000 руб.

24.04.2020    30561    121    66    

101

Групповое формирование, согласование, печать и отправка по e-mail актов сверок взаиморасчетов (Бухгалтерия предприятия, ред. 3.0)

Email рассылки Взаиморасчеты Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Указывайте любой период, список организаций, контрагентов, видов договоров (с покупателем, с поставщиком и др.), счетов бухгалтерского учёта, валюту, необходимость детализации по договорам, список печатных форм и форматов их сохранения, а затем формируйте, согласовывайте, контролируйте, печатайте и отправляйте по e-mail готовые акты сверок прямо из 1С: Бухгалтерия предприятия, ред. 3.0.

9000 руб.

03.04.2018    30671    64    24    

64
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Hisoka1992 31.05.16 09:44 Сейчас в теме
Для добавления вложения нужно еще записать двоичный файл в регистр ПрисоединенныеФайлы

МенеджерЗаписи = РегистрыСведений.ПрисоединенныеФайлы.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ПрисоединенныйФайл = Спр.Ссылка;
МенеджерЗаписи.ХранимыйФайл = Новый ХранилищеЗначения(ДвоичныеДанные);
МенеджерЗаписи.Записать();
6. tonimontana05 11.06.20 12:52 Сейчас в теме
Для УТ последних версий нужно добавить

МенеджерЗаписи = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Файл = Спр.Ссылка;
МенеджерЗаписи.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные);
МенеджерЗаписи.Записать();


Или файлы не будут открываться в 1С
2. Bor_ka 100 31.05.16 13:12 Сейчас в теме
Спасибо за комментарий.
3. nbeliaev 830 08.09.16 19:48 Сейчас в теме
4. Albert1980 26.09.16 18:18 Сейчас в теме
Письмо с вложением приходит, всё в порядке, спасибо!)

Но почему же в 1с потом само вложение не удаётся открыть из документа "Электронное письмо исходящее"?
5. Степной 27 12.09.19 18:46 Сейчас в теме
Для прикрепления вложений, которые не хранятся в базе, использовал следующий код:

ПрисоединенныеФайлыОбъект			= Справочники.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы.СоздатьЭлемент();
ПрисоединенныеФайлыОбъект.ВладелецФайла	= ИсходящееПисьмоОбъект.Ссылка; // ДокументСсылка.ЭлектронноеПисьмоИсходящее 
ПрисоединенныеФайлыОбъект.ТипХраненияФайла	= Перечисления.ТипыХраненияФайлов.ВТомахНаДиске;
ПрисоединенныеФайлыОбъект.Том				= ОсновнойТомХранения; // СправочникСсылка.ТомаХраненияФайлов
ПрисоединенныеФайлыОбъект.Наименование		= "123";
ПрисоединенныеФайлыОбъект.Расширение		= "zip";
ПрисоединенныеФайлыОбъект.ПутьКФайлу		= ИмяКаталогаВТоме + "123/zip";


Табуляция при вставке кода почему-то отображается не корректно.
7. 7OH 69 07.04.21 09:47 Сейчас в теме
А в БСП разве нет метода, который сам создаст документ и отправит почту ?
Отправка уже работает через БСП - документ руками создавать хоть и не долго, но вот не охота.
8. Bor_ka 100 07.04.21 10:13 Сейчас в теме
Не пробовал.
Вопрос, какую из двух задач будет выполнить быстрее? Мне кажется, что это вариант проще и быстрее.
Ваш вариант - нужно знать БСП и уметь это дело встроить в конфигурацию.
Если поделитесь опытом, будет всем интересно, пишите, поставлю лайк обязательно!
9. Serg243 15.03.22 16:05 Сейчас в теме
Спасибо. Это приблизило меня к пониманию как решить мою задачу.
Оставьте свое сообщение