|
Необходимо в 1С с сайта мосбиржи получить курс акции Яндекса YNDX | ☑ | ||
---|---|---|---|---|
0
VAVANSTR
07.10.21
✎
01:03
|
Необходимо в 1С с сайта мосбиржи получить курс акции Яндекса YNDX
API и примеры кода на других языках https://www.moex.com/a2193 //////////////////// Пример кода как с мосбиржи получают курсы валют ИмяВходящегоФайла = ПолучитьИмяВременногоФайла("xml"); СерверИсточник="iss.moex.com"; НачалоПериода = Формат(ДатаНачала, "ДФ=yyyy-MM-dd"); КонецПериода = Формат(ДатаКонца, "ДФ=yyyy-MM-dd"); СтрокаПараметраПолучения = "iss/statistics/engines/currency/markets/fixing/USDFIXME.xml?from="+НачалоПериода+"&till="+КонецПериода+"%20"; HTTP = Новый HTTPСоединение(СерверИсточник); HTTP.Получить(СтрокаПараметраПолучения, ИмяВходящегоФайла); ВыбФайл = Новый Файл(ИмяВходящегоФайла); Если ВыбФайл.Существует() Тогда ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяВходящегоФайла); Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя="row" Тогда Если ЧтениеXML.КоличествоАтрибутов() > 0 Тогда НоваяСтрока = КурсыФиксинга.Добавить(); Для Сч=0 По ЧтениеXML.КоличествоАтрибутов()-1 Цикл Если ЧтениеXML.ИмяАтрибута(Сч) = "tradedate" Тогда НоваяСтрока.Дата = Дата(СтрЗаменить(ЧтениеXML.ЗначениеАтрибута(Сч),"-","")); КонецЕсли; Если ЧтениеXML.ИмяАтрибута(Сч) = "rate" Тогда НоваяСтрока.Курс = ЧтениеXML.ЗначениеАтрибута(Сч); КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
1
VAVANSTR
07.10.21
✎
01:05
|
Примеры http Запросов к сайту мосбиржы
https://iss.moex.com/iss/reference/ |
|||
2
VAVANSTR
07.10.21
✎
01:10
|
Сам не могу сообразить как правильно составить ссылку к сайту МосБиржи
|
|||
3
Stephen Ordo
07.10.21
✎
02:36
|
xml не нужен. :)
Функция ЗапросПолучитьДанные(АдресЗапроса, ПоляСДатами = "") HTTPСоединение = Новый HTTPСоединение("iss.moex.com"); Запрос = Новый HTTPЗапрос("/iss/" + АдресЗапроса); Попытка Ответ = HTTPСоединение.Получить(Запрос); Если Ответ.КодСостояния <> 200 тогда Возврат Неопределено; КонецЕсли; Чтение = Новый ЧтениеJSON; Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); Данные = ПрочитатьJSON(Чтение, Ложь, ПоляСДатами); Чтение.Закрыть(); Исключение Возврат Неопределено; КонецПопытки; Возврат Данные; КонецФункции Функция ОчиститьДату(СтрДата) Возврат СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрДата, "-", ""), " ", ""), ":", ""); КонецФункции Функция ЗагрузитьКотировкиДень(КодИнструмента, НачалоПериода, КонецПериода, СекцияРынка) Экспорт СтрокаЗапроса = "engines/stock/markets/"+СекцияРынка+"/securities/" + КодИнструмента + "/candles.json" + "?from=" + Формат(НачалоПериода, "ДФ=yyyy-MM-dd") + "&till=" + Формат(КонецПериода, "ДФ=yyyy-MM-dd") + "&interval=24" + "&start="; // получаем данные порциями по 500 ТекущаяПозиция = 0; Пока Истина цикл Данные = ЗапросПолучитьДанные(СтрокаЗапроса + Формат(ТекущаяПозиция, "ЧГ=0")); Если Данные = Неопределено тогда Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не удалось загрузить данные"; Сообщение.Сообщить(); Возврат Ложь; КонецЕсли; Если Данные.candles.data.Количество() = 0 тогда Возврат Истина; КонецЕсли; Для каждого Свеча из Данные.candles.data цикл ЗаписьКотировки = РегистрыСведений.КотировкиДень.СоздатьМенеджерЗаписи(); ЗаписьКотировки.Период = ОчиститьДату(Свеча[6]); ЗаписьКотировки.Тикер = КодИнструмента; ЗаписьКотировки.Open = Свеча[0]; ЗаписьКотировки.Close = Свеча[1]; ЗаписьКотировки.High = Свеча[2]; ЗаписьКотировки.Low = Свеча[3]; ЗаписьКотировки.Value = Свеча[4]; ЗаписьКотировки.Volume = Свеча[5]; ЗаписьКотировки.Записать(); КонецЦикла; ТекущаяПозиция = ТекущаяПозиция + 500; КонецЦикла; Возврат Истина; КонецФункции В твоем случае КодИнструмента = "YNDX", СекцияРынка = "shares" |
|||
4
VAVANSTR
07.10.21
✎
09:35
|
(3) Stephen Ordo, всё работает как часы! Спасибо! Вы лучший!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |