Полноценный агент для 1С-Битрикс, который автоматически обновляет курсы валют. Разместить в папке php_interface и зарегистрировать как агента с именем GetCurrencyMy().
Скрипт загружает XML-данные с сайта ЦБ РФ, парсит их через CDataXML, извлекает информацию о валютах и добавляет в систему через CCurrencyRates::Add().
<?php
if ($intGMTDiff > 0) {
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/xml.php");
$strQueryText = eregi_replace("\]{1,}>", "", $strQueryText);
$objXML = new CDataXML();
$objXML->LoadString($strQueryText);
$arData = $objXML->GetArray();
if(is_array($arData) && count($arData["ValCurs"]["#"]["Valute"])>0) {
$cdate = $arData["ValCurs"]["@"]["Date"]." ";
for ($j1 = 0; $j1 < count($arData["ValCurs"]["#"]["Valute"]); $j1++) {
$curr = str_replace(",", ".", $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Value"][0]["#"]);
$arFields = array(
"CURRENCY_ID" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["NumCode"][0]["#"],
"RATE" => round($curr, 2),
"RATE_CNT" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Nominal"][0]["#"],
"CURRENCY" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["CharCode"][0]["#"],
"DATE_RATE" => $cdate
);
CCurrencyRates::Add($arFields);
}
}
}
return "GetCurrencyMy();";
?>Функция возвращает своё собственное имя (return "GetCurrencyMy();") — стандартный способ регистрации повторяющихся агентов в Битриксе.
