helpf.pro
Регистрация
 0 
Распечатать

1С 8.3 : Как получить текст из html?

Один мой хороший клиент использует встроенный в 1С почтовый клиент.

До этого все работало хорошо, но недавно из-за установки нового банк-клиента на компьютере обновили Internet Explorer до 11 версии - стала появляться ошибка:

Поле объекта не обнаружено innerText

Пришлось немного доработать типовую функцию получения текста из html:

Код 1C v 8.х
 Функция ПреобразоватьТекстИзХТМЛФорматаВПростой(ТекстВФорматеХТМЛ) Экспорт
Попытка
НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
НовыйHTMLДокумент.open("text/html");
НовыйHTMLДокумент.write(ТекстВФорматеХТМЛ);
НовыйHTMLДокумент.close();

Возврат СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), "");
Исключение
Построитель = Новый ПостроительDOM;
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(ТекстВФорматеХТМЛ);
ДокументHTML = Построитель.Прочитать(ЧтениеHTML);

Возврат СокрЛП(ДокументHTML.Тело.ТекстовоеСодержимое);
КонецПопытки;
КонецФункции

еще функции пример получения:

Код 1C v 8.х
 // Процедура изменяет признак формат текста письма (Текст, HТМЛ),
// и при этом конвертирует сам текст.
//
// Параметры:
//  ЭУHTML,ЭУТекст - Элементы управления формы, соответственно поле HTML и поле Текст
//  Кнопка - выбранная кнопка ее текст "Простой текст" или "HTML" новый вид текста письма
//  либо текст кнопки если пометку кнопки менять не требуется, соответственно 
//  вопрос о потере форматирования задаваться не будет
// Возвращаемое значение:
//  Булево, признак выполнения изменения формата
//
Функция удИзменитьФорматТекста(ЭУHTML,ЭУТекст, Кнопка) Экспорт
    Если ТипЗнч(Кнопка) = Тип("Строка") Тогда
        НовыйВидТекстаПисьма = Кнопка;
        ЕстьКнопка = Ложь;
    Иначе
        Если Кнопка.Пометка Тогда 
            Возврат Ложь; 
        КонецЕсли;
        НовыйВидТекстаПисьма = Кнопка.Текст;        
        ЕстьКнопка = Истина;
    КонецЕсли;     
        
    Если Найти(НовыйВидТекстаПисьма,"Простой текст") > 0 Тогда          
        ИсходныйТекст = ЭУHTML.ПолучитьТекст();
        НачалоBODY = Найти(ИсходныйТекст, "<BODY>");
        КонецBODY  = Найти(ИсходныйТекст, "</BODY>");
        Если ЕстьКнопка и (НачалоBODY > 0 И КонецBODY > 0 И (НачалоBODY + 6) < КонецBODY) Тогда
            СтрокаВопроса = "Будет потеряно форматирование текста. Продолжить?";
            ОтветНаВопрос = Вопрос(СтрокаВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
            Если ОтветНаВопрос <> КодВозвратаДиалога.Да Тогда                
                Возврат Ложь;
            КонецЕсли;
        КонецЕсли;
        ФорматТекста = ЭУHTML.Документ.all.item(0).innerText;             
        ЭУТекст.Значение =  СтрЗаменить(ФорматТекста, Символ(13), "");
        ЭУТекст.Видимость = Истина;
        ЭУHTML.Видимость = Ложь;
        ЭУHTML.УстановитьТекст("");                        
    Иначе
        ФорматХТМЛ = СтрЗаменить(ЭУТекст.Значение, Символы.ПС, "<BR>");
    
        ЭУHTML.УстановитьТекст(ФорматХТМЛ);
        ЭУHTML.Видимость = Истина;
        ЭУТекст.Видимость = Ложь;
    КонецЕсли; 
    
    Если ЕстьКнопка Тогда
        Кнопка.Пометка = Истина;         
    КонецЕсли;   
    Возврат Истина;                     


КонецФункции // обИзменитьФорматТекста()
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 6423
 0 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 0
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 0
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: ... по причине: Ошибка компоновки данных по причине: Ошибка...
PostgreSQL: установка, настройка, обслуживание 2
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.