Имя: Пароль:
1C
1С v8
Как с помощью объекта "Почта" отправить таблицу в теле письма?
,
0 redding
 
08.03.15
19:44
С помощью интернетпочты можно таким образом:
Сообщение.Тексты.Добавить(HTML, ТипТекстаПочтовогоСообщения.HTML);

Можно провернуть, что либо подобное с почтой?
Формы обычные.
1 vde69
 
08.03.15
19:48
без проблем, только таблица должна быть сформирована внутри хтмл тела письма, тегами <table><td><tr>
2 redding
 
08.03.15
19:56
(1) Она так и сформирована.
Записываю ее в свойство текст ПочтовогоСообщения. а на выходе получаю тот же набор тегов.
3 vde69
 
08.03.15
20:15
(2) реально работающий код


Функция ОтправитьПисьмо (Письмо, МассивАдресов, СсылкаНаОбъект, Регистратор, Комментарий = "", УчетнаяЗапись = Неопределено, РегистрироватьОшибки = Истина, Отправка = Истина) Экспорт
    
    _УчетнаяЗапись = УчетнаяЗапись;
    Если УчетнаяЗапись = Неопределено Тогда
        _УчетнаяЗапись = ПолучитьСистемнуюУчетнуюЗапись();
    КонецЕсли;
    
    Если не _УчетнаяЗапись.ИспользоватьДляОтправки Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Если Не Письмо.ОправлятьПочтовыеУведомления Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Если МассивАдресов = Неопределено Тогда
        Возврат Ложь;                            
    КонецЕсли;
    
    Если МассивАдресов.Количество() = 0 Тогда
        Возврат Ложь;
    КонецЕсли;                                                  
    
    //Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.Сделка") Тогда
    //    Если СсылкаНаОбъект.ОтправленыеУведомления.Найти(Регистратор,"Источник") <> Неопределено Тогда
    //        Возврат Ложь;
    //    КонецЕсли;
    //КонецЕсли;
    
    
    _Отправка = Отправка;
    Если не Отправка Тогда
        Если не _УчетнаяЗапись.ОтложенаяОтправкаПочты Тогда
            _Отправка = Истина;
        КонецЕсли;
    КонецЕсли;
    
    Если не _Отправка Тогда
        // запись в регистр отложеной отправки
        Запись = РегистрыСведений.ДоставкаПочты.СоздатьМенеджерЗаписи();
        Запись.МассивОтправки     = Новый ХранилищеЗначения(МассивАдресов);
        Запись.Объект             = СсылкаНаОбъект;
        Запись.ШаблонПисьма        = Письмо;
        Запись.Оправлен            = Ложь;
        Запись.Комментарий        = Комментарий;
        Запись.ДокументРегистратор    = Регистратор;
        Запись.Записать(Истина);
    Иначе
        // собствено отправка
        ТемаПисьма         = СобратьЭлементПочтовогоСообщения(Письмо.Тема, СсылкаНаОбъект);
        СообщениеПисьма = СобратьЭлементПочтовогоСообщения(Письмо.Сообщение, СсылкаНаОбъект, Комментарий);
        
        Если      Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTML
              ИЛИ Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками Тогда
              
            ОбработатьПереносСтроки(ТемаПисьма);
            ОбработатьПереносСтроки(СообщениеПисьма);
        КонецЕсли;
        
        СистемнаяПочта  = СокрЛП(_УчетнаяЗапись.АдресЭлектроннойПочты);
        ТипСообщения = Неопределено;
        Профиль = СформироватьИнтернетПрофиль(_УчетнаяЗапись);
        
        Попытка
            Сообщение = Новый ИнтернетПочтовоеСообщение;
            Сообщение.Тема             = ТемаПисьма;
            Сообщение.Отправитель     = СистемнаяПочта;
            
            Для Каждого ПочтовыйАдрес из МассивАдресов Цикл
                Если Найти(ПочтовыйАдрес, "@") > 0 Тогда
                    Сообщение.Получатели.Добавить(ПочтовыйАдрес);
                КонецЕсли;
            КонецЦикла;
            
            Если      Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTML
                  ИЛИ Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками Тогда
                  
                Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.HTML);
                
            ИначеЕсли Письмо.ТипТекстаПисьма = Перечисления.ТипыТекстовЭлектронныхПисем.РазмеченныйТекст Тогда
                
                Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.РазмеченныйТекст);
                
            Иначе
                Сообщение.Тексты.Добавить(СообщениеПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст);
            КонецЕсли;
            
            Почта = Новый ИнтернетПочта;
            Почта.Подключиться(Профиль);
            Почта.Послать(Сообщение);
            Почта.Отключиться();
            
            
            //Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.Сделка") Тогда
            //    оСделка = СсылкаНаОбъект.ПолучитьОбъект();
            //    НоваяСтрока = оСделка.ОтправленыеУведомления.Добавить();
            //    НоваяСтрока.Источник = Регистратор;
            //    оСделка.ОбменДанными.Загрузка = Истина;
            //    оСделка.Записать();
            //КонецЕсли;
            
            
        Исключение
            Если РегистрироватьОшибки Тогда
                ЗарегистрироватьОшибкуОтправкиПочты(СсылкаНаОбъект, Письмо, МассивАдресов, ОписаниеОшибки(), Регистратор, Комментарий);
            КонецЕсли;
            Возврат Ложь;
        КонецПопытки;
    КонецЕсли;
    
    Возврат Истина;
КонецФункции
4 redding
 
08.03.15
20:22
(3)  Почта = Новый ИнтернетПочта;
А у меня просто Почта. Это разные вещи.
5 vde69
 
08.03.15
20:24
(4) так поменяй :)
6 andreymongol82
 
08.03.15
20:26
(2) Используй HTML-теги, Люк
7 redding
 
08.03.15
20:31
(5) С радостью бы), но надо через Установленный почтовый клиент отправлять.
8 redding
 
08.03.15
20:32
(6) Их использую. Но они в виде обычного текста в письме отображаются.
9 vde69
 
08.03.15
20:39
(7)эмммм.... нафига тебе?

скорее всего у тебя активное содержание заблокировано по безопасности...
10 Сергиус
 
08.03.15
23:16
(2)Где ты проверяешь получаемое письмо? В каком клиенте? Может там просто стоит режим отображения - текст, не учитывая html тэги?