v8: Лента новостей в 1с Ключевые слова: лента новостей, rss
Для начала определим сервер от которого будем получать новости в формате rss 2.0, например http://lenta.ru.
Далее, создадим внешнюю обработку и разместим на ее форме ПолеHTMLДокумента и кнопку по котрой будем обновлять новости.
В событие Нажатие кнопки поместим следующий код:
// формируем HTML документ новостей
ТекстHTML =
"";
Соединение = Новый HTTPСоединение("lenta.ru");
ИмяФайла = ПолучитьИмяВременногоФайла(".rss");
Соединение.Получить("/r/EX/import.rss", ИмяФайла);
ПараметрыЧтенияXML = Новый ПараметрыЧтенияXML(,,,, Истина, Истина,Истина,Истина,Истина);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла, ПараметрыЧтенияXML);
ЧтениеXML.Прочитать();
Если ЧтениеXML.Имя = "rss" Тогда
ЧтениеXML.Прочитать();
Если ЧтениеXML.Имя = "channel" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
// Выводим заголовок новостей
title = ПрочитатьЗначениеТега(ЧтениеXML, "title");
ТекстHTML = ТекстHTML + "
|<TITLE> " + title + "</TITLE>
|<BODY>";
link = ПрочитатьЗначениеТега(ЧтениеXML, "link");
description = ПрочитатьЗначениеТега(ЧтениеXML, "description");
// Выводим link
ТекстHTML = ТекстHTML + "
| <a href = """ + link + """> "+ description +"</a>";
// выводим новости в таблице
ТекстHTML = ТекстHTML + "
|<table>";
НомерНовости = 0;
// читаем собственно сами новости
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.Имя = "item" и ЧтениеXML.ТипУзла=ТипУзлаXML.НачалоЭлемента Тогда
НомерНовости = НомерНовости + 1;
title = ПрочитатьЗначениеТега(ЧтениеXML, "title");
link = ПрочитатьЗначениеТега(ЧтениеXML, "link");
description = ПрочитатьЗначениеТега(ЧтениеXML, "description");
pubDate = ПрочитатьЗначениеТега(ЧтениеXML, "pubDate");
category = ПрочитатьЗначениеТега(ЧтениеXML, "category");
// выводим новости в таблице
ТекстHTML = ТекстHTML + "
|<tr>
| <td> " + Строка(НомерНовости) + ".</td>
| <td><a href="""+link+"""a>" + title + "</a></td>
|</tr>";
КонецЕсли;
КонецЦикла;
// закрываем вывод новостей
ТекстHTML = ТекстHTML + "
|</table>";
КонецЕсли;
КонецЕсли;
ТекстHTML = ТекстHTML + "
|</BODY>
|</HTML>";
ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(ТекстHTML);
Функция ПрочитатьЗначениеТега(ЧтениеXML, Имя)
Результат = Неопределено;
ЧтениеXML.Прочитать(); // начало
Если ЧтениеXML.Имя = Имя И ЧтениеXML.ТипУзла=ТипУзлаXML.НачалоЭлемента Тогда
ЧтениеXML.Прочитать();
Результат = ЧтениеXML.Значение;
КонецЕсли;
ЧтениеXML.Прочитать(); // конец
Возврат Результат;
КонецФункции
И видим на форме обработки новости! |