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

(6) Тебе сказали, сформируй отчет и его отправляй.
8 KonstantinK90
 
10.11.16
06:36
ну я и говорю что пдф в тексте письма не отображается!
9 DDwe
 
10.11.16
06:45
(8) Ну так и отправляй пдф прикрепленным файлом. Кто тебе сказал, что почтовый клиент обязан показывать пдф?
10 KonstantinK90
 
10.11.16
06:49
в том то и дело что мне нужно не вложением отправлять а в тексте письма. пример
Текст =  "
|<h3>  Привет !</h3>
|Это  письмо с вложенной картинкой.<br />
|Картинка:<br  />
|<img  src=""file:///C|/test/pic.png"" /><br />
|Конец  письма.
|";
11 KonstantinK90
 
10.11.16
06:50
если я передаю пдф оно в тексте письма не отображается
12 DDwe
 
10.11.16
06:54
(10) ПДФ в тексте и не отобразится по определению, хотя может и есть какие-то плагины по отдельные браузеры.
13 DDwe
 
10.11.16
06:56
Сохраняй как хтмл, он точно покажется в тексте письма, что ты к пдф привязался.
14 KonstantinK90
 
10.11.16
06:58
в смысле  ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.хтмл) ?
15 KonstantinK90
 
10.11.16
06:59
сохранить в хтмл и передать в текст письма?
16 DDwe
 
10.11.16
07:00
Попробуй уже и посмотри на результат, за тебя пробовать никто не будет.
17 DDwe
 
10.11.16
07:03
И скорее всего задача у тебя в другом, озвучь задачу полностью, что и зачем.
18 KonstantinK90
 
10.11.16
07:08
ну я же уже писал приходит обменом документ поступление товаров и услуг. В момент прибытия мне нужно сотрудникам делать рассылку на почту о поступившем товаре т.е в тексте письма отобразить поступивший товар в виде
№| Товар| Место| Количество| Ед.Из
19 DDwe
 
10.11.16
07:12
(18) Ну и нахрена тебе пдф или джпег?
Ты попробовал с хтмл?
20 KonstantinK90
 
10.11.16
07:13
нет сейчас не могу по пробовать у нас почтовый сервер вырубили на час по каким то причинам
21 torgm
 
10.11.16
07:13
(18) формируй таблицу и отправляй, зачем здесь графика?
И как ты представляешь приход на 300 позиций в картинке?
22 KonstantinK90
 
10.11.16
07:13
как по пробую отпишусь
23 DDwe
 
10.11.16
07:15
(20) Просто в тексте письма таблицей отправляй, хотя (21) полностью прав, при приходе более 30 строк это будет просто издевательство и уродство.
24 KonstantinK90
 
10.11.16
07:16
а как в текст письма таблицу отправить это же мне нужно ее сохранить в хтмл и отправить ? Я правильно понял?
25 DDwe
 
10.11.16
07:22
(24) Вот как ты текст письма рисуешь тэгами, так и таблицу рисуй, но еще раз, а если придет 300 позиций? Кому будет нужно твое письмо?
26 KonstantinK90
 
10.11.16
07:26
да понятно все я сначало сделал во вложении отправлял пдф . не понравилось сказали делать в тексте письма
27 DDwe
 
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.Закрыть();

    КонецЕсли;

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

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