тзВалюта = Новый ТаблицаЗначений;
тзВалюта.Колонки.Добавить("Code");
тзВалюта.Колонки.Добавить("Ccy");
тзВалюта.Колонки.Добавить("Валюта", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
справ = Справочники.Валюты.Выбрать();
Пока справ.Следующий() Цикл
справНаим = СокрЛП(справ.Наименование);
Если справНаим = "RUB"
ИЛИ справНаим = "USD"
ИЛИ справНаим = "EUR" Тогда
нс = тзВалюта.Добавить();
нс.Code = справ.Код;
нс.Ccy = справ.Наименование;
нс.Валюта = справ.Ссылка;
КонецЕсли;
КонецЦикла;
ИмяВременногоФайла = ПолучитьимяВременногоФайла("json");
HTTP = Новый HTTPСоединение("cbu.uz/ru",,,,, 0,,);
ТекДата = НачалоПериодаЗагрузки;
Пока ТекДата <= ОкончаниеПериодаЗагрузки Цикл;
httpЗапрос = Новый HTTPЗапрос(СтрШаблон("/arkhiv-kursov-valyut/json/all/%1/", Формат(ТекДата, "ДФ=""гггг-ММ-дд""")));
Попытка
Ответ = HTTP.Получить(httpЗапрос, ИмяВременногоФайла);
Исключение
ПриЗагрузкеВозниклиОшибки = Истина;
ЗаписьЖурналаРегистрации("Валюта ошибка", УровеньЖурналаРегистрации.Ошибка,, Формат(ТекДата, "ДФ=""гггг-ММ-дд"""), ОписаниеОшибки());
Возврат Новый Массив;
КонецПопытки;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ИмяВременногоФайла); //,"iso-8859-4");
json = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Для каждого стр Из json Цикл
нв = тзВалюта.Найти(стр.Ccy,"Ccy");
Если НЕ нв = Неопределено Тогда
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Валюта.Установить(нв.Валюта);
НаборЗаписей.Отбор.Период.Установить(ПреобразоватьВДату(стр.Date));
Запись = НаборЗаписей.Добавить();
Запись.Валюта = нв.Валюта;
Запись.Период = ПреобразоватьВДату(стр.Date);
Запись.Курс = стр.Rate;
Запись.Кратность = стр.Nominal;
НаборЗаписей.Записать();
КонецЕсли;
КонецЦикла;
ТекДата = КонецДня(ТекДата) + 1;
КонецЦикла;