Загрузка курсов Тенге в 1С 8.3 с сайта nationalbank.kz
тзВалюта = Новый ТаблицаЗначений;
тзВалюта.Колонки.Добавить("Code");
тзВалюта.Колонки.Добавить("Ccy");
тзВалюта.Колонки.Добавить("Валюта", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
справ = Справочники.Валюты.Выбрать();
Пока справ.Следующий() Цикл
справНаим = СокрЛП(справ.Наименование);
Если НЕ справ.Ссылка = Константы.ВалютаРегламентированногоУчета Тогда
нс = тзВалюта.Добавить();
нс.Code = справ.Код;
нс.Ccy = справ.Наименование;
нс.Валюта = справ.Ссылка;
КонецЕсли;
КонецЦикла;
ИмяВременногоФайла = ПолучитьимяВременногоФайла("json");
HTTP = Новый HTTPСоединение("nationalbank.kz",,,,, 0,Новый ЗащищенноеСоединениеOpenSSL,);
ТекДата = НачалоПериодаЗагрузки;
Пока ТекДата <= ОкончаниеПериодаЗагрузки Цикл;
httpЗапрос = Новый HTTPЗапрос(СтрШаблон("/rss/get_rates.cfm?fdate=%1", Формат(ТекДата, "ДФ=""дд.ММ.гггг""")));
Попытка
Ответ = HTTP.Получить(httpЗапрос, ИмяВременногоФайла);
Исключение
ПриЗагрузкеВозниклиОшибки = Истина;
ЗаписьЖурналаРегистрации("Валюта ошибка", УровеньЖурналаРегистрации.Ошибка,, Формат(ТекДата, "ДФ=""дд.ММ.гггг"""), ОписаниеОшибки());
Возврат Новый Массив;
КонецПопытки;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяВременногоФайла); //,"iso-8859-4");
xml = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
ЧтениеXML.Закрыть();
Для каждого стр Из xml.item Цикл
нв = тзВалюта.Найти(стр.title,"Ccy");
Если НЕ нв = Неопределено Тогда
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Валюта.Установить(нв.Валюта);
НаборЗаписей.Отбор.Период.Установить(ПреобразоватьВДату(xml.date));
Запись = НаборЗаписей.Добавить();
Запись.Валюта = нв.Валюта;
Запись.Период = ПреобразоватьВДату(xml.date);
Запись.Курс = стр.description;
Запись.Кратность= стр.quant;
НаборЗаписей.Записать();
КонецЕсли;
КонецЦикла;
ТекДата = КонецДня(ТекДата) + 1;
КонецЦикла;