Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Отправка эл. письма на почту! 8,3

Отправка эл. письма на почту! 8,3
Я
   KonstantinK90
 
10.11.16 - 06:11
Всем привет! подскажите как сделать! мне нужно отправлять програмно письма сотрудникам по некому событию. С самой процедурой отправки разобрался. Вопрос: У меня есть документ у него есть таб.Ч. "Товары" как мне сделать картинку табЧасти с форматом к примеру ".jpg" что бы эту картинку отправлять в тексте письма!
Может как то можно сделать к примеру ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.PDF);".jpg"????
 
 
   KonstantinK90
 
1 - 10.11.16 - 06:15
Уже весь интернет перерыл ни чего найти не могу
   Любопытная
 
2 - 10.11.16 - 06:19
Сформируй печатную форму и сохрани её в пдф. Её потом отправляй
   KonstantinK90
 
3 - 10.11.16 - 06:21
пробовал так при открытии письма с пдф в тексте письма не отопражается красный крестик
   KonstantinK90
 
4 - 10.11.16 - 06:21
ой наоборот отображается красный крестик
   KonstantinK90
 
5 - 10.11.16 - 06:22
а если я картинку".jpg" укажу то в тексте письма все нормально отображается
   KonstantinK90
 
6 - 10.11.16 - 06:23
вот и вопрос как сделать картинку если у меня есть только табличная часть
   DDwe
 
7 - 10.11.16 - 06:29
Какой крестик? Ты о чем?

(6) Тебе сказали, сформируй отчет и его отправляй.
   KonstantinK90
 
8 - 10.11.16 - 06:36
ну я и говорю что пдф в тексте письма не отображается!
   DDwe
 
9 - 10.11.16 - 06:45
(8) Ну так и отправляй пдф прикрепленным файлом. Кто тебе сказал, что почтовый клиент обязан показывать пдф?
   KonstantinK90
 
10 - 10.11.16 - 06:49
в том то и дело что мне нужно не вложением отправлять а в тексте письма. пример 
Текст =  "
|<h3>  Привет !</h3>
|Это  письмо с вложенной картинкой.<br />
|Картинка:<br  />
|<img  src=""file://C|/test/pic.png"" /><br />

|Конец  письма.
|";
 
 Рекламное место пустует
   KonstantinK90
 
11 - 10.11.16 - 06:50
если я передаю пдф оно в тексте письма не отображается
   DDwe
 
12 - 10.11.16 - 06:54
(10) ПДФ в тексте и не отобразится по определению, хотя может и есть какие-то плагины по отдельные браузеры.
   DDwe
 
13 - 10.11.16 - 06:56
Сохраняй как хтмл, он точно покажется в тексте письма, что ты к пдф привязался.
   KonstantinK90
 
14 - 10.11.16 - 06:58
в смысле  ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.хтмл) ?
   KonstantinK90
 
15 - 10.11.16 - 06:59
сохранить в хтмл и передать в текст письма?
   DDwe
 
16 - 10.11.16 - 07:00
Попробуй уже и посмотри на результат, за тебя пробовать никто не будет.
   DDwe
 
17 - 10.11.16 - 07:03
И скорее всего задача у тебя в другом, озвучь задачу полностью, что и зачем.
   KonstantinK90
 
18 - 10.11.16 - 07:08
ну я же уже писал приходит обменом документ поступление товаров и услуг. В момент прибытия мне нужно сотрудникам делать рассылку на почту о поступившем товаре т.е в тексте письма отобразить поступивший товар в виде
№| Товар| Место| Количество| Ед.Из
   DDwe
 
19 - 10.11.16 - 07:12
(18) Ну и нахрена тебе пдф или джпег?
Ты попробовал с хтмл?
   KonstantinK90
 
20 - 10.11.16 - 07:13
нет сейчас не могу по пробовать у нас почтовый сервер вырубили на час по каким то причинам
   torgm
 
21 - 10.11.16 - 07:13
(18) формируй таблицу и отправляй, зачем здесь графика?
И как ты представляешь приход на 300 позиций в картинке?
   KonstantinK90
 
22 - 10.11.16 - 07:13
как по пробую отпишусь
   DDwe
 
23 - 10.11.16 - 07:15
(20) Просто в тексте письма таблицей отправляй, хотя (21) полностью прав, при приходе более 30 строк это будет просто издевательство и уродство.
   KonstantinK90
 
24 - 10.11.16 - 07:16
а как в текст письма таблицу отправить это же мне нужно ее сохранить в хтмл и отправить ? Я правильно понял?
   DDwe
 
25 - 10.11.16 - 07:22
(24) Вот как ты текст письма рисуешь тэгами, так и таблицу рисуй, но еще раз, а если придет 300 позиций? Кому будет нужно твое письмо?
   KonstantinK90
 
26 - 10.11.16 - 07:26
да понятно все я сначало сделал во вложении отправлял пдф . не понравилось сказали делать в тексте письма
   DDwe
 
27 - 10.11.16 - 07:27
(26) Отправь им тестовое письмо с приходом позици1 на 100-150, они сразу станут смирными ))
   бегинер
 
28 - 10.11.16 - 07:30
можно сделать табличку в html. тип текста почтового сообщения используй html
вот функция из ТЗ в HTML табл:
http://catalog.mista.ru/public/174149/
   бегинер
 
29 - 10.11.16 - 07:36
вот правил под себя, чтоб шапка с именами полей-колонок выводилась:
Функция ПолучитьHTMLизТаблицыЗначений(рТаблица,Знач рПараметры="",докВладелец=Неопределено) Экспорт

    // распознаем параметры


    Если ТипЗнч(рПараметры)<>Тип("Структура") Тогда рПараметры=Новый Структура КонецЕсли;

    //рКодировка=?(рПараметры.Свойство("Кодировка"),рПараметры.Кодировка,"UTF-8");


    рШиринаРамки=?(рПараметры.Свойство("ШиринаРамки"),рПараметры.ШиринаРамки,0);// в пикселях


    Если рШиринаРамки<>0 Тогда// имеет смысл


        рЦветРамки=?(рПараметры.Свойство("ЦветРамки"),рПараметры.ЦветРамки,"");

        рЦветРамкиЯркий=?(рПараметры.Свойство("ЦветРамкиЯркий"),рПараметры.ЦветРамкиЯркий,"");

        рЦветРамкиТёмный=?(рПараметры.Свойство("ЦветРамкиТемный"),рПараметры.ЦветРамкиТемный,"");

        рТипРамки=?(рПараметры.Свойство("ТипРамки"),рПараметры.ТипРамки,"hsides");

        рЛинии=?(рПараметры.Свойство("Линии"),рПараметры.Линии,"all");

    КонецЕсли;

    рМеждуЯчейками=?(рПараметры.Свойство("МеждуЯчейками"),рПараметры.МеждуЯчейками,0);

    рОтступДоЯчейки=?(рПараметры.Свойство("ОтступДоЯчейки"),рПараметры.ОтступДоЯчейки,1);

    рШирина=?(рПараметры.Свойство("Ширина"),рПараметры.Ширина,100);// макс.ширина, пиксели или проценты


    рВысота=?(рПараметры.Свойство("Высота"),рПараметры.Высота,1);

    рЦветФона=?(рПараметры.Свойство("ЦветФона"),рПараметры.ЦветФона,"");

    рВыравнивание=?(рПараметры.Свойство("Выравнивание"),рПараметры.Выравнивание,"center");

    рВыравниваниеГор=?(рПараметры.Свойство("ВыравниваниеГоризонтальное"),рПараметры.ВыравниваниеГоризонтальное,"middle");

    рВыравниваниеВерт=?(рПараметры.Свойство("ВыравниваниеВертикальное"),рПараметры.ВыравниваниеВертикальное,"center");



    // определимся с документом


    Если докВладелец=Неопределено Тогда

        док=Новый ДокументHTML("");

        телдок=док.СоздатьЭлемент("BODY");

        док.Тело=телдок;

    Иначе

        док=докВладелец;

        телдок=док.Тело;

    КонецЕсли;


    текст=док.СоздатьЭлемент("P");
    текст.ТекстовоеСодержимое="Здравствуйте!";
    телдок.ДобавитьДочерний(текст);
    
    текст=док.СоздатьЭлемент("pre")//тег сохраняет исходное форматирование, перевод строк сохраниться в теле письма

    текст.ТекстовоеСодержимое=рПараметры.ТелоПисьма;
    телдок.ДобавитьДочерний(текст);

    
    
    таб=док.СоздатьЭлемент("TABLE");

    // ставим параметры таблицы в целом, имеющие свойства в объектной модели 1С


    таб.Выравнивание=рВыравнивание;// align


    таб.Рамка=СокрЛП(рШиринаРамки);// border


    таб.ОтступДоЯчейки=СокрЛП(рОтступДоЯчейки);// cellPadding


    таб.РасстояниеМеждуЯчейками=СокрЛП(рМеждуЯчейками);// cellSpacing


    таб.ЦветФона=СокрЛП(рЦветФона);// bgColor


    таб.Ширина=СокрЛП(рШирина);// width


    Если рШиринаРамки<>0 Тогда// имеет смысл


        таб.Линии=СокрЛП(рЛинии);// rules (допустимо: all, groups, cols, none, rows)


    КонецЕсли;



    // ставим параметры таблицы в целом, НЕ имеющие свойств в объектной модели 1С


    // ставим их в атрибуты именно к таб, а не ко всему Телу документа, и не к Телу таблицы


    атр=док.СоздатьАтрибут("height");

    атр.Значение=СокрЛП(рВысота);

    таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

    //


    атр=док.СоздатьАтрибут("cols");// общее объявление


    атр.Значение=СокрЛП(рТаблица.Колонки.Количество());

    таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

    //


    //атр=док.СоздатьАтрибут("nowrap"); // запрет переносов текста (кому понадобится, раскомментите)


    //атр.Значение=Истина;


    //таб.Атрибуты.УстановитьИменованныйЭлемент(атр);


    // аналогичным образом можно устанавливать прочие свойства таблицы в целом, её строк и ячеек




    Если рШиринаРамки<>0 Тогда// имеет смысл


        атр=док.СоздатьАтрибут("borderColor");

        атр.Значение=СокрЛП(рЦветРамки);

        таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

        атр=док.СоздатьАтрибут("borderColorLight");

        атр.Значение=СокрЛП(рЦветРамкиЯркий);

        таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

        атр=док.СоздатьАтрибут("borderColorDark");

        атр.Значение=СокрЛП(рЦветРамкиТёмный);

        таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

        // доступные типы рамок: void, above, below, lhs, rhs, hsides, vsides, box


        атр=док.СоздатьАтрибут("frame");

        атр.Значение=СокрЛП(рТипРамки);

        таб.Атрибуты.УстановитьИменованныйЭлемент(атр);

    КонецЕсли;



    // добавляем таблицу и её тело


    телдок.ДобавитьДочерний(таб);

    телтаб=док.СоздатьЭлемент("TBODY");

    таб.ДобавитьДочерний(телтаб);



    // заполняем таблицу

    добавить_имена_полей=1;
    Для каждого рСтрока Из рТаблица Цикл

        стро=таб.ВставитьСтроку(1); 
        стро.ВертикальноеПоложение=рВыравниваниеВерт;
        стро.Выравнивание=рВыравниваниеГор;
        стро.ЦветФона=рЦветФона;
        телтаб.ДобавитьДочерний(стро);
        если добавить_имена_полей=1 тогда;
            Для каждого кол Из рТаблица.Колонки Цикл;
                
                
                яч=док.СоздатьЭлемент("TD");
                яч.ТекстовоеСодержимое=кол.Имя;
                стро.ДобавитьДочерний(яч);

            КонецЦикла;
            стро=таб.ВставитьСтроку(1); 
                стро.ВертикальноеПоложение=рВыравниваниеВерт;
                стро.Выравнивание=рВыравниваниеГор;
                стро.ЦветФона=рЦветФона;
                телтаб.ДобавитьДочерний(стро);
        конецесли;
        добавить_имена_полей=0;
        Для каждого кол Из рТаблица.Колонки Цикл
            яч=док.СоздатьЭлемент("TD");
            рЗначение=рСтрока[кол.Имя];
            яч.ТекстовоеСодержимое=СокрЛП(Строка(рЗначение));
            стро.ДобавитьДочерний(яч);
        КонецЦикла;
    КонецЦикла;



    Если докВладелец<>Неопределено Тогда

        Возврат таб;// нужна таблица как ЭлементHTML


    Иначе

        // нужен полноценный текст результата, записываем получившееся


        зап1=Новый ЗаписьHTML;

        зап1.УстановитьСтроку();// вопреки документации, параметр Кодировка не допускается


        зап2=Новый ЗаписьDOM;// обойдёмся без явного указания конфигурации записи DOM


        зап2.Записать(док,зап1);

        Возврат зап1.Закрыть();

    КонецЕсли;

КонецФункции


   KonstantinK90
 
30 - 10.11.16 - 07:46
Спасибо! Как почта заработает по пробую!
   бегинер
 
31 - 10.11.16 - 08:11
(30) :)
ну результата функции сохрани в файл с расш html  и открой в браузере этот файл - увидишь тело письма.
и не надо ждать почты :)
   KonstantinK90
 
32 - 10.11.16 - 08:33
а как результат функции сохранить в html  
   KonstantinK90
 
33 - 10.11.16 - 08:34
а и кстати передаю я в текст письма html тоже не отображается
 
 
   Lexey_
 
34 - 10.11.16 - 08:54
(32) если результат функции - табличный документ, то:
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Синтаксис:
Записать(<ИмяФайла>, <ТипФайлаТаблицы>)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует