Ваше сообщение отправлено.
Спасибо за внимание!
Спасибо за внимание!
Цитата |
---|
Ну как бы уже решение практически готово |
Код |
---|
Процедура ОтправитьНажатие() КоличествоСтрок = ЭлементыФормы.ВыбДилеры.Значение.Количество(); Если КоличествоСтрок <> 0 тогда Для каждого Строка из ВыбДилеры цикл ВыбФайл=ТекстПисьма; ТемаОтправки=ТемаПисьма; глОтправитьОтчетПоПочте(,ВыбДилер,ТемаОтправки,0,ВыбФайл,2); КонецЦикла; КонецЕсли; Для каждого строкаТаблицы из ВыбФайлы цикл Если Выбфайл=0 тогда ВыбФайл=ВыбФайл+";"; //Выбфайл=ВыбФайл+ВыбФайлы.Путь; КонецЕсли; КонецЦикла; КонецПроцедуры |
Код |
---|
Процедура глОтправитьОтчетПоПочте(ТаблицаОтправки,Получатель,ТемаПисьма,Сообщения=1,ТелоПисьма="",ТипПисьма=0) Экспорт // // если ТипЗначенияСтр(ТаблицаОтправки)="Таблица" Тогда Если ТипЗнч(ТаблицаОтправки)=Тип("ТабличныйДокумент") или ТипЗнч(ТаблицаОтправки)=Тип("ПолеТабличногоДокумента") тогда // ИмяФайла=КаталогПользователя()+"Отчет"+СтрЗаменить(СокрЛП(ТекущаяДата()),".","")+"_"+СтрЗаменить(СокрЛП(ТекущееВремя()),":","")+".xls"; ИмяФайла=КаталогВременныхФайлов()+"Отчет"+Формат(ТекущаяДата(),"ДФ=""ддммгггг'_'ЧЧммсс""")+".xls"; // ТаблицаОтправки.Записать(ИмяФайла,1); ТаблицаОтправки.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS); //иначеесли ТипЗначенияСтр(ТаблицаОтправки)="Строка" тогда ИначеЕсли ТипЗнч(ТаблицаОтправки)=Тип("Строка") тогда // поз=Найти(ТаблицаОтправки,";"); поз=СтрНайти(ТаблицаОтправки,";"); ИмяФайла=Новый Массив;//""; пока поз<>0 цикл тестфайла=Лев(ТаблицаОтправки,поз-1); фс=Новый Файл(тестфайла); // если фс.СуществуетФайл(тестфайла)=1 тогда Если фс.Существует() тогда // если Пустоезначение(ИмяФайла)=0 тогда // ИмяФайла=ИмяФайла+";"; // конецесли; // ИмяФайла=ИмяФайла+тестфайла; ИмяФайла.Добавить(фс); конецесли; ТаблицаОтправки=Сред(ТаблицаОтправки,поз+1); поз=Найти(ТаблицаОтправки,";"); конеццикла; // фс=Новый Файл(ТаблицаОтправки); // если фс.СуществуетФайл(ТаблицаОтправки)=1 тогда Если фс.Существует() тогда //если Пустоезначение(ИмяФайла)=0 тогда // ИмяФайла=ИмяФайла+";"; //конецесли; //ИмяФайла=ИмяФайла+ТаблицаОтправки; ИмяФайла.Добавить(фс); конецесли; иначе ИмяФайла=""; конецесли; // АдресЭл=Константы.ЭлПочта.Получить(); Профиль=Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераSMTP=АдресЭл.Сервер; Профиль.АдресСервераPOP3=АдресЭл.Сервер; Профиль.Таймаут=60; Профиль.ПортSMTP=?(НЕ ЗначениеЗаполнено(АдресЭл.Порт),"25",Строка(АдресЭл.Порт)); Профиль.ПортPOP3=110; Профиль.ПользовательSMTP=АдресЭл.Логин; Профиль.ПарольSMTP=АдресЭл.Пароль; Профиль.Пользователь=АдресЭл.Логин; Профиль.Пароль=АдресЭл.Пароль; Профиль.АутентификацияSMTP=СпособSMTPАутентификации.Login; Сообщение=Новый ИнтернетПочтовоеСообщение; Сообщение.Отправитель=АдресЭл.АдресОтправителя; Сообщение.ИмяОтправителя=АдресЭл.Отправитель; Сообщение.Получатели.Добавить(СокрЛП(Получатель.ЭлПочта)); Сообщение.Тема=ТемаПисьма; Если НЕ ЗначениеЗаполнено(ТелоПисьма) тогда Сообщение.Тексты.Добавить(ТемаПисьма,ТипТекстаПочтовогоСообщения.ПростойТекст); ИначеЕсли лев(ТелоПисьма,5)="file:" тогда // ВК.ЗагрузитьИзФайла(СокрЛП(сред(ТелоПисьма,6))); ТекстСообщения=""; ФайлТекстаСообщения=Новый ТекстовыйДокумент; ФайлТекстаСообщения.Прочитать(СокрЛП(сред(ТелоПисьма,6))); ТекстСообщения=ФайлТекстаСообщения.ПолучитьТекст(); Сообщение.Тексты.Добавить(ТекстСообщения,ТипТекстаПочтовогоСообщения.HTML); Иначе Сообщение.Тексты.Добавить(ТелоПисьма,ТипТекстаПочтовогоСообщения.ПростойТекст); КонецЕсли; Если ТипЗНЧ(ИмяФайла)=Тип("Строка") и ЗначениеЗаполнено(ИмяФайла) тогда ФайлСообщения=Новый Файл(ИмяФайла); Сообщение.Вложения.Добавить(ИмяФайла,ФайлСообщения.Имя); ИначеЕсли ТипЗнч(ИмяФайла)=Тип("Массив") тогда Для каждого МЗнач из ИмяФайла Цикл Сообщение.Вложения.Добавить(ИмяФайла.ПолноеИмя,ИмяФайла.Имя); КонецЦикла; КонецЕсли; Почта=Новый ИнтернетПочта; Попытка Почта.Подключиться(Профиль); Исключение Сообщить("Ошибка отправки файла: "+ИмяФайла); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка Почта.Послать(Сообщение,ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать,ПротоколИнтернетПочты.SMTP); //СообщенияОтправки=Почта.Послать(Сообщение,ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать,ПротоколИнтернетПочты.SMTP); Исключение Сообщить(Получатель.ЭлПочта); Сообщить(ОписаниеОшибки()); КонецПопытки; УдалитьФайлы("file:G:\Bases2\Balance.htm"); Сообщить(Получатель.Наименование); Сообщить(ТемаПисьма); Почта.Отключиться(); КонецПроцедуры |