Алгоритм создания и отправки электронного письма (со вложением) УТ 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 Отправка электронного письма Создание электронного письма Отправка письма

См. также

SALE! 50%

Мессенджеры и боты SMS рассылки Email рассылки Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

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

4800 2400 руб.

07.04.2014    86819    55    199    

140

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

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

4800 руб.

25.11.2020    25865    277    9    

238

SALE! 15%

Email рассылки Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

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

4920 4182 руб.

30.06.2022    12153    82    102    

43

Взаиморасчеты 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) . РАБОТАЕТ НА БАЗОВЫХ и ПРОФ. ВЕРСИЯХ.

2520 руб.

24.04.2020    32424    126    66    

103

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

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

12000 руб.

16.04.2014    86190    101    91    

96

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

Данная обработка позволяет сократить объем ручных операций, выполняемых ежемесячно бухгалтером или его помощником за счет автоматизации систематического процесса.

7800 руб.

12.02.2019    34255    27    24    

26

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

Создать и отправить 1000 Актов серки контрагентам за 5 мин?! Легко! Разработано для конфигурации 1C:УНФ. Массовое создание и рассылка Актов сверки в три клика.

6000 руб.

13.01.2022    11344    9    13    

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

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

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


Или файлы не будут открываться в 1С
2. Bor_ka 101 31.05.16 13:12 Сейчас в теме
Спасибо за комментарий.
3. nbeliaev 837 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 70 07.04.21 09:47 Сейчас в теме
А в БСП разве нет метода, который сам создаст документ и отправит почту ?
Отправка уже работает через БСП - документ руками создавать хоть и не долго, но вот не охота.
8. Bor_ka 101 07.04.21 10:13 Сейчас в теме
Не пробовал.
Вопрос, какую из двух задач будет выполнить быстрее? Мне кажется, что это вариант проще и быстрее.
Ваш вариант - нужно знать БСП и уметь это дело встроить в конфигурацию.
Если поделитесь опытом, будет всем интересно, пишите, поставлю лайк обязательно!
9. Serg243 15.03.22 16:05 Сейчас в теме
Спасибо. Это приблизило меня к пониманию как решить мою задачу.
Оставьте свое сообщение