Функция ПолучитьВерсии() Перем Url, HtmlTab, Строк, Р, НомСтроки, Таб, Версия, ДатаВремя; ОчиститьОкноСообщений(); СтатусВозврата(0); Url = "http://www.1c.ru/ukraina/support/release.jsp?time=" + _GetPerformanceCounter(); Сообщить(Url); IE = СоздатьОбъект("InternetExplorer.Application"); IE.Navigate(Url); Пока (IE.readyState <> 4) Или (IE.Busy = -1) Цикл Состояние("Получение страницы... " + Url); КонецЦикла; HtmlTab = IE.Document.getElementsByTagName("table").item(4).rows(0).cells(4).childNodes.item(10); Строк = HtmlTab.rows.length; Таб = СоздатьОбъект("ТаблицаЗначений"); Таб.НоваяКолонка("Версия" , "Строка"); Таб.НоваяКолонка("Дата" , "Дата"); Таб.НоваяКолонка("Время" , "Строка"); Таб.НоваяКолонка("Продукт" , "Строка"); Для НомСтроки = 1 По Строк Цикл Р = HtmlTab.rows(НомСтроки - 1); Если Р.cells.length <> 3 Тогда Продолжить; КонецЕсли; Версия = Р.cells(2).innerText; Если Найти(Версия, "7.70.") = 0 Тогда Продолжить; КонецЕсли; ДатаВремя = Р.cells(0).innerText; Таб.НоваяСтрока(); Таб.Дата = ДатаВремя; Таб.Время = Сред(ДатаВремя, 12); Таб.Продукт = Р.cells(1).innerText; Таб.Версия = Версия; КонецЦикла; Таб.Сортировать("Дата-,Время-"); Возврат Таб; КонецФункции
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯчейки, Док, ТекстВЯчейке, ТабКурсов; Url = "http://www.bank.gov.ua/control/uk/curmetal/currency/search?formType=searchFormDate&time_step=" + ?(Ежедневно = 1, "daily", "monthly") + "&date=" + Формат(ДатаКурса, "ДДДММГГГГ") + "&outer=table&execute=run&time=" + _GetPerformanceCounter(); Сообщить(Url); Reader = СоздатьОбъект("MSXML2.XMLHTTP"); Reader.Open("Get", Url, 0); Reader.Send(); Пока Reader.ReadyState <> 4 Цикл Состояние("Чтение данных за <" + ДатаКурса + "> "); КонецЦикла; Док = СоздатьОбъект("HtmlFile"); Док.open("text/html"); Док.write(Reader.ResponseText); Док.close(); HtmlTab = Док.getElementsByTagName("table").item(5); ТабКурсов = СоздатьОбъект("ТаблицаЗначений"); ТабКурсов.НоваяКолонка("ЦифрКод" , "Строка", 3, , "Цифр. код"); ТабКурсов.НоваяКолонка("БуквКод" , "Строка", 3, , "Букв. код"); ТабКурсов.НоваяКолонка("Название" , "Строка"); ТабКурсов.НоваяКолонка("Курс" , "Число" ,14, 4); ТабКурсов.НоваяКолонка("Кратность" , "Число" , 9, 0); Строк = HtmlTab.rows.length; Для НомСтроки = 1 По Строк Цикл Р = HtmlTab.rows(НомСтроки - 1); Если (НомСтроки = 1) Или (Р.cells.length <> 5) Тогда // 1 - я заголовок, остальные не с данными Продолжить; КонецЕсли; ТабКурсов.НоваяСтрока(); ТабКурсов.ЦифрКод = СокрЛП(Р.cells(0).innerText); ТабКурсов.БуквКод = СокрЛП(Р.cells(1).innerText); ТабКурсов.Название = СокрЛП(Р.cells(3).innerText); ТабКурсов.Курс = 0 + СтрЗаменить(СокрЛП(Р.cells(4).innerText), " ", ""); ТабКурсов.Кратность = 0 + СтрЗаменить(СокрЛП(Р.cells(2).innerText), " ", ""); КонецЦикла; Reader = 0; ТабКурсов.ВыбратьСтроку(, "Курсы за " + ДатаКурса); Возврат ТабКурсов; КонецФункции
Функция ПолучитьТаблицуКурсов(ДатаКурса) Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯчейки, Док, ТекстВЯчейке, ТабКурсов; Reader = СоздатьОбъект("MSXML2.XMLHTTP"); Url = "http://tables.finance.ua/ru/currency/official/-/1/" + ДатаГод(ДатаКурса) + "/" + ДатаМесяц(ДатаКурса) + "/" + ДатаЧисло(ДатаКурса) + "?time=" + _GetPerformanceCounter(); Сообщить(Url); Reader.Open("Get", Url, 0); Reader.Send(); Пока Reader.ReadyState <> 4 Цикл Состояние("Чтение данных за <" + ДатаКурса + "> "); КонецЦикла; Док = СоздатьОбъект("HtmlFile"); Док.open("text/html"); Док.write(Reader.ResponseText); Док.close(); HtmlTab = Док.getElementByID("currency-official-table"); Строк = HtmlTab.rows.length; ТабКурсов = СоздатьОбъект("ТаблицаЗначений"); ТабКурсов.НоваяКолонка("ЦифрКод" , "Строка", 3, , "Цифр. код"); ТабКурсов.НоваяКолонка("БуквКод" , "Строка", 3, , "Букв. код"); ТабКурсов.НоваяКолонка("Название" , "Строка"); ТабКурсов.НоваяКолонка("Курс" , "Число" ,14, 4); ТабКурсов.НоваяКолонка("Кратность" , "Число" , 9, 0); Для НомСтроки = 1 По Строк Цикл Р = HtmlTab.rows(НомСтроки - 1); Если (НомСтроки = 1) Или (Р.cells.length <> 7) Тогда // 1 - я заголовок, остальные не с данными Продолжить; КонецЕсли; ТабКурсов.НоваяСтрока(); ТабКурсов.ЦифрКод = СокрЛП(Р.cells(0).innerText); ТабКурсов.БуквКод = СокрЛП(Р.cells(1).innerText); ТабКурсов.Название = СокрЛП(Р.cells(3).innerText); ТабКурсов.Курс = 0 + СтрЗаменить(СокрЛП(Р.cells(4).innerText), " ", ""); ТабКурсов.Кратность = 0 + СтрЗаменить(СокрЛП(Р.cells(2).innerText), " ", ""); КонецЦикла; Reader = 0; ТабКурсов.ВыбратьСтроку(, "Курсы за " + ДатаКурса); Возврат ТабКурсов; КонецФункции