|   |   | 
| 
 | 8.3, программно отправить e-mail | ☑ | ||
|---|---|---|---|---|
| 0
    
        YDen 11.10.24✎ 16:19 | 
        Здравствуйте.
 Поиском пользовался, но там объяснение как из готовых конфигураций послать средствами 1с печатную форму в xls формате. Плиз, кто делал, подскажите код. 8.3 версия, самописная конфигурация, простой документ с ТЧ, создана печатная форма. Нужно программно отправить e-mail с вложением печатной формы в формате xlsx. Благодарю | |||
| 1
    
        big 11.10.24✎ 16:22 | 
        воюшмать... 20 лет на форуме и не знать как мыло из снеговика отправить... ((((  рукалицо...     | |||
| 2
    
        Волшебник 11.10.24✎ 16:27 | Процедура ПослатьПисьмо(Получатели, ПутьФайла) ОтправительСистема1С = Справочники.УчетныеЗаписиЭлектроннойПочты.Системная; интернетПочта = Новый ИнтернетПочта; ПодключитьсяКСерверуЭлектроннойПочты(интернетПочта, ОтправительСистема1С); письмо = Новый ИнтернетПочтовоеСообщение; письмо.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.HTML); письмо.Тема = ТемаПисьма; Для Каждого получатель ИЗ Получатели Цикл получательПисьма = письмо.Получатели.Добавить(); получательПисьма.Адрес = получатель.Адрес; получательПисьма.ОтображаемоеИмя = получатель.Пользователь.Наименование; КонецЦикла; письмо.Отправитель = ОтправительСистема1С.АдресЭлектроннойПочты; письмо.ИмяОтправителя = "Система 1С"; письмо.Вложения.Добавить(ПутьФайла, "НазваниеВложения"); интернетПочта.Послать(письмо); ОтключитьсяОтСервераЭлектроннойПочты(интернетПочта); КонецПроцедуры //============================================================================== Процедура ПодключитьсяКСерверуЭлектроннойПочты(пИнтернетПочта, пУчетнаяЗапись) почтовыйПрофиль = УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(пУчетнаяЗапись); Попытка пИнтернетПочта.Подключиться(почтовыйПрофиль); Исключение инфоОбОшибке = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации( "ОтправкаОповещений.ПодключитьсяКСерверуЭлектроннойПочты", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(инфоОбОшибке) + Символы.ПС + __.JSON(почтовыйПрофиль)); ВызватьИсключение "Не удалось подключиться к серверу электронной почты для отправки сообщения. |" + КраткоеПредставлениеОшибки(инфоОбОшибке); КонецПопытки; КонецПроцедуры //============================================================================== Процедура ОтключитьсяОтСервераЭлектроннойПочты(пИнтернетПочта) Попытка пИнтернетПочта.Отключиться(); Исключение инфоОбОшибке = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации( "ОтправкаОповещений.ОтключитьсяОтСервераЭлектроннойПочты", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(инфоОбОшибке)); ВызватьИсключение "Не удалось отключиться от сервера электронной почты. |" + КраткоеПредставлениеОшибки(инфоОбОшибке); КонецПопытки; КонецПроцедуры | |||
| 3
    
        YDen 11.10.24✎ 16:31 | 
        (2) Благодарю, но чуть не то. Это выдернуто из контекста. У меня с нуля конфигурация. 
 Именно документ с ТЧ, его печатная форма по e-mail в xlsx. | |||
| 4
    
        yurikmellon2 11.10.24✎ 16:34 | 
        (0)          Профиль = Новый ИнтернетПочтовыйПрофиль;
 | |||
| 5
    
        YDen 11.10.24✎ 16:37 | 
        Коллеги, а с сохранением в xlsx и его последующей отправкой по e-mail нет кода? 
 Конфигурация - не коммерческий продукт, чисто на энтузиазме. благодарю | |||
| 6
    
        Волшебник 11.10.24✎ 16:43 | 
        (5) Вы сами что-то будете делать или всю работу хотите переложить на форум?     | |||
| 7
    
        YDen 11.10.24✎ 16:46 | 
        (6) Почему же, делаю. Не могу сообразить, как в Обработкупроведения запихать это:
 Процедура СформироватьДокумент(Макет) ТабДок = Новый ТабличныйДокумент; ШапкаОбласть = Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(ШапкаОбласть); ПотокВПамяти = Новый ПотокВПамяти(); ТабДок.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.XLSX); ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные(); Тема = "Тема от: "+Строка(Формат(ТекущаяДата()-86400, "ДФ=dd.MM.yyyy")); ТекстПисьма = ""; ОтправитьПисьмоПоЭлектроннойПочте("Адрес отправки", ,Тема, ТекстПисьма, ДвоичныеДанные, "Имя отправителя"); КонецПроцедуры &НаСервере Процедура ОтправитьПисьмоПоЭлектроннойПочте(АдресПочты, Копия = Неопределено, Тема, ТекстПисьма, Вложение = Неопределено, ИмяОтправителя) ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль; ПочтовыйПрофиль.ВремяОжидания = 300;// Google рекомендует 5 минут // Исходящая почта //Если ФормироватьIMAPПрофиль Тогда ПочтовыйПрофиль.АдресСервераIMAP = "imap.yandex.ru"; // imap.mail.ru ПочтовыйПрофиль.ПользовательIMAP = "from1C@yandex.ru"; // from1C@mail.ru ПочтовыйПрофиль.ПортIMAP = 993; // 993 Попытка ПочтовыйПрофиль.ИспользоватьSSLIMAP = Истина; Исключение Сообщить("Не работает служба SSL IMAP! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.ПарольIMAP = "123"; //КонецЕсли; //Если ФормироватьSMTPПрофиль Тогда ПочтовыйПрофиль.АдресСервераSMTP = "smtp.yandex.ru"; // smtp.mail.ru ПочтовыйПрофиль.ПользовательSMTP = "from1C@yandex.ru"; // from1C@mail.ru ПочтовыйПрофиль.ПортSMTP = 465; // 465 Попытка ПочтовыйПрофиль.ИспользоватьSSLSMTP = Истина; Исключение Сообщить("Не работает служба SSL SMTP! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.ПарольSMTP = "123"; ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login; //КонецЕсли; // Входящая почта //Если ФормироватьPOP3Профиль Тогда ПочтовыйПрофиль.АдресСервераPOP3 = "pop.yandex.ru"; // pop.mail.ru ПочтовыйПрофиль.Пользователь = "from1C@yandex.ru"; // from1C@mail.ru ПочтовыйПрофиль.ПортPOP3 = 993; // 995 Попытка ПочтовыйПрофиль.ИспользоватьSSLPOP3 = Истина; Исключение Сообщить("Не работает служба SSL POP3! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.Пароль = "123"; //Если НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.APOP Тогда // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.APOP; //ИначеЕсли НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.CramMD5 Тогда // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.CramMD5; //Иначе // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; //КонецЕсли; //КонецЕсли; ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение; ПочтовоеСообщение.Отправитель.Адрес = "Адрес"; ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя; ПочтовоеСообщение.Получатели.Добавить(АдресПочты); ПочтовоеСообщение.Тема = Тема; ПочтовоеСообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст); Если Вложение <> Неопределено Тогда Тема = Тема+".xlsx"; ПочтовоеСообщение.Вложения.Добавить(Вложение,Тема); КонецЕсли; Email = Новый ИнтернетПочта; Попытка Email.Подключиться(ПочтовыйПрофиль); Email.Послать(ПочтовоеСообщение); // Сообщить("Отправлено письмо на e-mail:"+СокрЛП(ТекПолучатель)); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Email.Отключиться(); КонецПроцедуры | |||
| 8
    
        Волшебник 11.10.24✎ 16:45 | 
        (7) При проведении нельзя взаимодействовать с почтовым сервером (крайне не рекомендуется).     | |||
| 9
    
        Lama12 11.10.24✎ 16:58 | 
        (7) Жесть. 🤦♂️
 Ставь задание в очередь. Потом очередь разбирай и отправляй письма. Проведение должно быть стремительным и быстрым. Нафига там отправка почты? | |||
| 10
    
        fly7 11.10.24✎ 23:13 | 
        (9) а если в конце проведения пульнуть отправку в фоновое задание?     | |||
| 11
    
        craxx 12.10.24✎ 06:56 | 
        (7) Мдя... 20 лет стажа на форуме...
 Просто слов нету.. | |||
| 12
    
        osa1C 12.10.24✎ 07:39 | 
        (11) Судя по темам человек 20 лет с клюшками работал. Так что не стоит осуждать     | |||
| 13
    
        Злоп 12.10.24✎ 12:38 | 
        (12) В клюшках те же советы что выше и здесь по 8-ке.
 костылестроителей везде хватает. . Автор, что будет в проведении при повторном проведении? | |||
| 14
    
        Fram 12.10.24✎ 15:58 | 
        (13) это будет его следующая тема здесь     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |