Погода, курсы валют, RSS 8.3 (Получение информации из интернета для чайников)

0. 151 01.04.15 19:35 Сейчас в теме
Простенькая RSS читалка + прогноз погоды + курсы валют.
Пример использования HTTPСоединение, HTTPЗапрос, Msxml2.XMLHTTP, Msxml2.DOMDocument

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Aleksey.Bochkov 3499 03.04.15 05:53 Сейчас в теме
1С не возвращает текст новости, а только заголовки (т.е. текст пустой)

У меня все нормально загрузилось через HTTPСоединение.
http://i.imgur.com/nqwp7eG.png
2. Silmariil 151 03.04.15 07:05 Сейчас в теме
(1) Aleksey.Bochkov, имелось ввиду что конкретно сайт 1c.ru не использует текст новости в RSS, а только заголовки. Скорректировал в статье.
3. AganinEvgeniy 2 08.04.15 11:46 Сейчас в теме
У меня немного иначе реализован алгоритм получения курсов валют, так как столкнулся с проблемой безопасности. В смысле настроен иса сервер, который обычные запросы в интернет блокирует, пришлось воспользоваться найденной в своё время процедурой XML запроса (к сожалению за давностью лет уже и не упомню откуда она бралась), немного подкорректированной под свои нужды. Может кому-нибудь и пригодится:
Функция ЗапроситьФайлыССервера(СерверИсточникПараметр, СтрокаПараметраПолученияПараметр, ИмяВходящегоФайлаПараметр, HTTP = Неопределено) Экспорт

СерверИсточник = СерверИсточникПараметр;
СтрокаПараметраПолучения = СтрокаПараметраПолученияПараметр;
ИмяВходящегоФайла = ИмяВходящегоФайлаПараметр;
Попытка
aUrlRequest = "http://" + СерверИсточникПараметр + "/" + СтрокаПараметраПолучения;

oXMLHTTP = Новый COMОбъект("MSXML2.XMLHTTP");
oXMLHTTP.open("GET",aUrlRequest, False );
oXMLHTTP.Send();
FSO = Новый COMОбъект("Scripting.FileSystemObject");
Fso.CreateTextFile(ИмяВходящегоФайла,True);
FileFso =Fso.OpenTextFile(ИмяВходящегоФайла,2,True);
FileFso.writeline(oXMLHTTP.responseText);

Возврат Истина;
Исключение
Возврат Ложь;
КонецПопытки;


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

Процедура ПриОткрытии()
СерверИсточник = "cbrates.rbc.ru";
HTTP = Новый HTTPСоединение(СерверИсточник);
Адрес = "tsv/";
ТМП = Строка(Формат(ТекущаяДата(), "ДФ=/yyyy/MM/dd"));
ВремКаталог = "C:\\Kurses\download\";//Указываем любой каталог, в который будем записывать данные
СоздатьКаталог(ВремКаталог);
УдалитьФайлы(ВремКаталог,"*.*");
СпрВал = Справочники.Валюты.Выбрать();
Пока СпрВал.Следующий() Цикл
Если СпрВал.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
ИмяВходящегоФайла = ВремКаталог + Прав(СпрВал.Код,3) + ".txt";
СтрокаПараметраПолучения = Адрес + Прав(СпрВал.Код,3) + ТМП + ".tsv";
Если ЗапроситьФайлыССервера(СерверИсточник, СтрокаПараметраПолучения, ИмяВходящегоФайла, HTTP) <> Истина Тогда
Сообщить("Не удалось получить ресурс для валюты " + СокрЛП(СпрВал.Наименование) + " (код " + СпрВал.Код + "). Курс для валюты не загружен.");
Продолжить;
КонецЕсли;
// Далее блок чтения и записи курсов
КонецЦикла;
КонецПроцедуры
4. Yashazz 4106 08.04.15 19:04 Сейчас в теме
Забавно. Такие баянчики до сих пор популярны, хотя это всё считалось давно открытой америкой ещё в 2008-09 гг. Автор, а зачем нужно было юзать Msxml2.DOMDocument?
5. Silmariil 151 08.04.15 19:21 Сейчас в теме
(4) Yashazz, затем что другого способа не нашел. Поделитесь опытом, с радостью перейму опыт.
6. grum01 213 09.04.15 05:13 Сейчас в теме
А я вот так и не смог забрать погоду с gismeteo.
У кого-нибудь получалось? Даже гугля по этому поводу молчит...
7. ZIGRAS 18.01.16 21:20 Сейчас в теме
А дает ли яндекс картинки к погоде?
8. пользователь 12.01.20 16:39
Сообщение было скрыто модератором.
...
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Администратор 1C
Москва
зарплата до 110 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству