8.х Расширенная работа с почтой

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем andrenko, 18 авг 2010.

  1. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Назрела проблема....
    Имеется достаточно большой поток входящей почты. Письмо состоит из текста и файла (*.doc, *.docx, *.rtf, *.pdf). Как можно конвертиовать файл в html?
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Пример кода изменения письма в HTML
    Код:
            СтруктураНовогоПисьма.Вставить("ВидТекста",                            Перечисления.ВидыТекстовЭлектронныхПисем.HTML);
    ФайлВФорматеHTML = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеHTML, ТипФайлаТабличногоДокумента.HTML);
    ТекстПисьма = Новый ТекстовыйДокумент;
    ТекстПисьма.Прочитать(ФайлВФорматеHTML);
    
    ХТМЛТекст = ТекстПисьма.ПолучитьТекст();
    
    НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
    НовыйHTMLДокумент.open("text/html");
    НовыйHTMLДокумент.write(ХТМЛТекст);
    НовыйHTMLДокумент.close();
    
    ТегТела = НовыйHTMLДокумент.all.tags("BODY");
    Для а = 0 По ТегТела.length - 1 Цикл
    ТегТела.item(а).innerHTML = "
    |-P*-BR*-BR*-BR* // на теги реакция неадекватная на форуме что и понятно :unsure:  заменил на *
    |-HR*
    |-/P*
    |-P*-/P*
    |" + ТегТела.item(а).innerHTML;
    КонецЦикла;
    
    ТекстСообщенияДляОтправки = "";
    Для а = 0 По НовыйHTMLДокумент.all.length - 1 Цикл
    Если НовыйHTMLДокумент.all.item(а).tagName = "HTML" Тогда
    ТекстСообщенияДляОтправки = НовыйHTMLДокумент.all.item(а).innerHTML;
    КонецЕсли; 
    КонецЦикла;
    
    СтруктураНовогоПисьма.Вставить("Тело", ТекстСообщенияДляОтправки);
    УдалитьФайлы(ФайлВФорматеТекст);
    
    
    
    
    Вложение файлов в разных форматах
    Код:
    Если ВложенияHTML Тогда
    Если ФайлВФорматеHTML = Неопределено Тогда
    ФайлВФорматеHTML = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеHTML, ТипФайлаТабличногоДокумента.HTML);
    КонецЕсли;
    СписокФайловВложений.Добавить(Новый Структура("Хранилище, ИмяФайла, Наименование", ПолучитьДвоичныеДанные(ФайлВФорматеHTML), (ИмяФайлаВложения + ".HTM"), ИмяФайлаВложения));
    КонецЕсли; 
    
    Если ВложенияTXT Тогда
    Если ФайлВФорматеТекст = Неопределено Тогда
    ФайлВФорматеТекст = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеТекст, ТипФайлаТабличногоДокумента.TXT);
    КонецЕсли; 
    СписокФайловВложений.Добавить(Новый Структура("Хранилище, ИмяФайла, Наименование", ПолучитьДвоичныеДанные(ФайлВФорматеТекст), (ИмяФайлаВложения + ".TXT"), ИмяФайлаВложения));
    КонецЕсли; 
    
    Если ВложенияMXL Тогда
    ФайлВФорматеMXL = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеMXL, ТипФайлаТабличногоДокумента.MXL);
    СписокФайловВложений.Добавить(Новый Структура("Хранилище, ИмяФайла, Наименование", ПолучитьДвоичныеДанные(ФайлВФорматеMXL), (ИмяФайлаВложения + ".MXL"), ИмяФайлаВложения));
    КонецЕсли; 
    
    Если ВложенияXLS Тогда
    ФайлВФорматеXLS = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеXLS, ТипФайлаТабличногоДокумента.XLS);
    СписокФайловВложений.Добавить(Новый Структура("Хранилище, ИмяФайла, Наименование", ПолучитьДвоичныеДанные(ФайлВФорматеXLS), (ИмяФайлаВложения + ".XLS"), ИмяФайлаВложения));
    КонецЕсли;
    
    Если СписокФайловВложений.Количество() > 0 Тогда
    СтруктураНовогоПисьма.Вставить("СписокФайловВложений", СписокФайловВложений);
    КонецЕсли;
    
    
    
    
  3. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    А как преобразовать doc в html? а то кроме программ перекодировщиков ничего в голову не приходит...
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104

Поделиться этой страницей