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

Как загрузить курсы...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Как загрузить курсы валют в формате JSON с сайта в РегистрСведений.КурсыВалют ?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для загрузки курсов валют в формате 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.

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



   
ОтветитьЦитата