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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Aleksey.Bochkov 3502 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 4117 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
Сообщение было скрыто модератором.
...
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Ведущий программист-консультант 1С (УХ)
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

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

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

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

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