Код 1C v 7.x
перем тзПустышка;
процедура ПриНачалеВыбораЗначения(стрНазвание, чисФлаг)
если стрНазвание = "стрУРЛа" тогда
запуститьприложение( стрУРЛа) ;
конецесли ;
конецпроцедуры
процедура кнПолучить()
стрИмяФайла = каталогпользователя( ) + "$$$$.###" ;
олеХМЛ = создатьобъект( "Microsoft.XMLHTTP" ) ;
олеХМЛ. Open( "GET" , стрУРЛа, 0 ) ;
олеХМЛ. Send( ) ;
олеАДО = создатьобъект( "ADODB.Stream" ) ;
олеАДО. Mode = 3 ;
олеАДО. Type = 1 ;
олеАДО. Open( ) ;
олеШелл = создатьобъект( "MSScriptControl.ScriptControl" ) ;
олеШелл. Language = "vbscript" ;
олеШелл. AddObject( "oleADO" , олеАДО) ;
олеШелл. AddObject( "oleXML" , олеХМЛ) ;
олеШелл. Eval( "oleADO.Write(oleXML.ResponseBody)" ) ;
олеАДО. SaveToFile( стрИмяФайла, 2 ) ;
олеАДО. Close( ) ;
олеАДО. Mode= 3 ;
олеАДО. Type = 2 ;
олеАДО. CharSet= "UTF-8" ;
олеАДО. Open( ) ;
олеАДО. LoadFromFile( стрИмяФайла) ;
стрТемп = "" ;
пока олеАДО. EOS( ) = 0 цикл
стрТемп = стрТемп + олеАДО. ReadText( - 2 ) + разделительстрок;
конеццикла ;
олеАДО. Close( ) ;
фс. УдалитьФайл( стрИмяФайла) ;
чисПозиция = найти( стрТемп, "Официальные курсы валют на" ) ;
если чисПозиция = 0 тогда
предупреждение( "Не получилось получить курсы валют" ) ;
иначе
тзТемп = создатьобъект( "ТаблицаЗначений" ) ;
тзПустышка. Выгрузить( тзТемп) ;
стрТемп = сред( стрТемп, чисПозиция) ;
дтКурса = дата( стрзаменить( стрполучитьстроку( стрТемп, 2 ) , "/" , "." ) ) ;
чисПозиция = 18 ;
чисКоличествоСтрок = стрколичествострок( стрТемп) ;
стрТекущая = стрполучитьстроку( стрТемп, чисПозиция) ;
пока найти( стрТекущая, "input type="" checkbox"" name="" idval"" " ) > 0 цикл
тзТемп. НоваяСтрока( ) ;
стрТекущая = стрполучитьстроку( стрТемп, чисПозиция + 1 ) ;
тзТемп. Количество = число( стрТекущая) ;
тзТемп. Наименование = сокрлп( стрзаменить( стрзаменить( стрТекущая, тзТемп. Количество, "" ) , "</td>" , "" ) ) ;
стрТекущая = стрполучитьстроку( стрТемп, чисПозиция + 2 ) ;
стрТекущая = сокрлп( стрзаменить( стрзаменить( стрТекущая, "<td class="" gen7"" align="" center"" >" , "" ) , "</td>" , "" ) ) ;
тзТемп. Код1 = лев( стрТекущая, 3 ) ;
тзТемп. Код2 = прав( стрТекущая, 3 ) ;
стрТекущая = стрполучитьстроку( стрТемп, чисПозиция + 5 ) ;
тзТемп. Курс = число( стрзаменить( стрзаменить( стрТекущая, "<td class="" gen7"" align="" center"" >" , "" ) , "</td>" , "" ) ) ;
чисПозиция = чисПозиция + 17 ;
если чисПозиция > чисКоличествоСтрок тогда
стрТекущая = "" ;
иначе
стрТекущая = стрполучитьстроку( стрТемп, чисПозиция) ;
конецесли ;
конеццикла ;
тзТемп. Выгрузить( тзКурсов) ;
конецесли ;
конецпроцедуры
стрУРЛа = "http://www.nationalbank.kz/?docid=460&uid=DD54B73C-802C-E8F0-E27EDF82ECF77C1D" ;
тзПустышка = создатьобъект( "ТаблицаЗначений" ) ;
тзПустышка. НоваяКолонка( "Количество" , "число" , 3 , 0 , "" , 5 ) ;
тзПустышка. НоваяКолонка( "Наименование" , "строка" , , , "Наименование" , 70 ) ;
тзПустышка. НоваяКолонка( "Код1" , "строка" , 3 , , "код" , 10 ) ;
тзПустышка. НоваяКолонка( "Код2" , "строка" , 3 , , "код" , 10 ) ;
тзПустышка. НоваяКолонка( "Курс" , "число" , 7 , 2 , "Курс" , 10 ) ;
тзПустышка. Выгрузить( тзКурсов) ;