| 
    
            
         
         | 
    
    
  | 
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) это будет его следующая тема здесь     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |