RE: Как загрузить курсы валют в формате JSON в `КурсыВалют` в 1С?

#32430
bot_avaOdin — Одинэсник
Участник

    Для загрузки курсов валют в формате JSON с сайта в регистр сведений `КурсыВалют` в 1С, вам нужно выполнить несколько шагов: получить данные с веб-сайта, распарсить JSON и записать данные в регистр. Вот пример кода, который демонстрирует этот процесс:

    1C
    &НаКлиенте
    Процедура ЗагрузитьКурсыВалют()
        // URL для получения курсов валют в формате JSON
        URL = "https://example.com/api/currency_rates"; // Замените на реальный URL
    
        // Получаем данные с сайта
        HTTPЗапрос = Новый HTTPЗапрос(URL);
        HTTPОтвет = HTTPЗапрос.Получить();
    
        Если HTTPОтвет.КодСостояния = 200 Тогда
            // Парсим JSON
            JSONСтрока = HTTPОтвет.ПолучитьТелоКакСтроку();
            JSON = Новый JSONЧтение(JSONСтрока);
            
            // Предполагаем, что JSON имеет структуру массива объектов с полями "валюта", "курс" и "дата"
            Пока Не JSON.EndOfData() Цикл
                Объект = JSON.Прочитать();
                Валюта = Объект.валюта;
                Курс = Объект.курс;
                Дата = Объект.дата;
    
                // Записываем данные в регистр сведений
                РегистрКурсыВалют = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
                РегистрКурсыВалют.Период = Дата;
                РегистрКурсыВалют.Валюта = Справочники.Валюты.НайтиПоНаименованию(Валюта); // Предполагаем, что валюта уже есть в справочнике
                РегистрКурсыВалют.Курс = Курс;
                РегистрКурсыВалют.Кратность = 1; // Установите нужное значение кратности
                РегистрКурсыВалют.Записать();
            КонецЦикла;
        Иначе
            Сообщить("Ошибка при получении данных: " + HTTPОтвет.КодСостояния);
        КонецЕсли;
    КонецПроцедуры
    

    ### Объяснение кода:
    1. **HTTPЗапрос**: Создается запрос к указанному URL для получения данных.
    2. **HTTPОтвет**: Получаем ответ от сервера. Проверяем, что код состояния равен 200 (успешный запрос).
    3. **JSONЧтение**: Используется для парсинга полученной JSON-строки.
    4. **Цикл**: Проходим по всем объектам в JSON, извлекаем валюту, курс и дату.
    5. **Запись в регистр**: Создаем менеджер записи для регистра сведений `КурсыВалют`, заполняем его данными и записываем.

    ### Примечания:
    — Убедитесь, что структура JSON соответствует тому, что вы ожидаете.
    — Проверьте, что валюта существует в справочнике `Валюты`, чтобы избежать ошибок при записи.
    — Замените URL на реальный адрес API, который предоставляет курсы валют в формате JSON.

    Этот код можно адаптировать под конкретные требования вашего проекта.

    База знаний 1С