|
Загрузка курсов с РБК | ☑ | ||
---|---|---|---|---|
0
АЛьФ
17.03.22
✎
09:11
|
Пытался спросить в старой теме, но не заметил, что она утопленная. Спрашиваю в отдельной.
Второй день уже с РБК в начале дня грузятся курсы вчерашнего дня. Это какие-то новые правила или есть место, откуда можно актуальные курсы загрузкить? |
|||
1
Asmody
17.03.22
✎
09:17
|
||||
2
Сукпун
17.03.22
✎
09:17
|
так сейчас курс ЦБ устанвливает не утром , а в 17-00
|
|||
3
АЛьФ
17.03.22
✎
09:20
|
2(1) Преогроменное спасибочки.
|
|||
4
Плехоть
17.03.22
✎
09:22
|
Убрал в БП загрузку с альтернативного сервера - подгрузились корректные курсы
|
|||
5
Alexor
17.03.22
✎
09:26
|
(4) а конкретно где это указывается?
|
|||
6
Плехоть
17.03.22
✎
09:28
|
(5) Я через константs включал/выключал. "Использовать альтернативный сервер для загрузки курсов валют (Константы)". В интерфейсе не нашел )
|
|||
7
Alexor
17.03.22
✎
09:33
|
(6) спасибо. А то как раз сейчас позвонили
|
|||
8
Быдло замкадное
17.03.22
✎
09:41
|
в УПП такая же проблема.
Вручную обработкой, если выбрать 1С то грузится нормально. Придется что-то переписывать.. маразм |
|||
9
Быдло замкадное
17.03.22
✎
09:45
|
(2) в 17:00 они устанавливают курс на ЗАВТРА.
А 2 дня подряд курс с РБК грузится сегодня ВЧЕРАШНИЙ. Вобщем это ошибка |
|||
10
Быдло замкадное
17.03.22
✎
09:49
|
есть у кого код загрузки с СБРФ?
|
|||
11
АЛьФ
17.03.22
✎
15:11
|
Функция ЗагрузитьУзлыXMLвСЗ(Корень, Узлы)
сзРезультат = СоздатьОбъект("СписокЗначений"); ПрефИмениУзла = ""; АтрибутыУзла = Корень.Attributes; Если АтрибутыУзла.length <> 0 Тогда Для атр = 0 По АтрибутыУзла.length - 1 Цикл узелАтрибута = АтрибутыУзла.item(атр); ИмяАтрибута = узелАтрибута.nodename; сзРезультат.ДобавитьЗначение(узелАтрибута.text, ИмяАтрибута); КонецЦикла; КонецЕсли; Для инд = 0 По Узлы.length - 1 Цикл узел = Узлы.item(инд); ИмяУзла = узел.nodename; ПодчиненныеУзлы = узел.childNodes; Если ПодчиненныеУзлы.length = 0 Тогда Если ИмяУзла = "#text" Тогда сзРезультат = узел.text; Иначе сзРезультат.ДобавитьЗначение(узел.text, ИмяУзла); КонецЕсли; Иначе сзРезультат.ДобавитьЗначение(ЗагрузитьУзлыXMLвСЗ(узел, ПодчиненныеУзлы), ИмяУзла); КонецЕсли; КонецЦикла; Возврат сзРезультат; КонецФункции // ЗагрузитьУзлыXMLвСЗ Функция ЗагрузитьXMLвСЗ(текстXML) XMLDOM = СоздатьОбъект("Microsoft.XMLDOM"); XMLDOM.loadXML(текстXML); Возврат ЗагрузитьУзлыXMLвСЗ(XMLDOM.DocumentElement, XMLDOM.DocumentElement.childNodes); КонецФункции // ЗагрузитьXMLвСЗ Функция ПреобразоватьОтвет(ОтветСервера) тзРезультат = глСоздатьТаблицу("Дата,Курс,Кратность"); сзСтруктураОтвета = ЗагрузитьXMLвСЗ(ОтветСервера); Для инд = 1 По сзСтруктураОтвета.РазмерСписка() Цикл ИмяУзла = ""; ЭлементОтвета = сзСтруктураОтвета.ПолучитьЗначение(инд, ИмяУзла); Если ИмяУзла <> "Record" Тогда Продолжить; КонецЕсли; тзРезультат.НоваяСтрока(); тзРезультат.Дата = Дата(ЭлементОтвета.Получить("Date")); тзРезультат.Курс = Число(СтрЗаменить(ЭлементОтвета.Получить("Value"), ",", ".")); тзРезультат.Кратность = Число(СтрЗаменить(ЭлементОтвета.Получить("Nominal"), ",", ".")); КонецЦикла; Возврат тзРезультат; КонецФункции // ПреобразоватьОтвет Функция ФорматДаты(дат) Возврат СтрЗаменить(Формат(дат,"ДДДММГГГГ"), ".", "/"); КонецФункции // ФорматДаты Процедура Загрузить(НачальнаяДатаЗагрузки) Адрес = "https://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=" + ФорматДаты(НачальнаяДатаЗагрузки) + "&date_req2=" + ФорматДаты(ТекущаяДата()) + "&VAL_NM_RQ="; СписокВалют = ЗагрузитьСписокВалют(); Для индВалюты = 1 По СписокВалют.РазмерСписка() Цикл Если СписокВалют.Пометка(индВалюты) = 0 Тогда Продолжить; КонецЕсли; ТекущаяВалюта = СписокВалют.ПолучитьЗначение(индВалюты); Сообщить("Загрузка курсов валюты: " + ТекущаяВалюта); Если СокрЛП(ТекущаяВалюта.Код) = "978" Тогда ТекстЗапроса = Адрес + "R01239"; ИначеЕсли СокрЛП(ТекущаяВалюта.Код) = "840" Тогда ТекстЗапроса = Адрес + "R01235"; ИначеЕсли СокрЛП(ТекущаяВалюта.Код) = "826" Тогда ТекстЗапроса = Адрес + "R01035"; Иначе Сообщить("Не удалось определить идентификатор валюты"); Продолжить; КонецЕсли; Сообщить(ТекстЗапроса); ОтветСервера = ПолучитьКакСтроку(ТекстЗапроса); тзКурсыВалюты = ПреобразоватьОтвет(ОтветСервера); Курсы = СоздатьОбъект("Периодический"); Курсы.ИспользоватьОбъект("Курс",ТекущаяВалюта); КурсыВнутр = СоздатьОбъект("Периодический"); КурсыВнутр.ИспользоватьОбъект("КурсВнутренний",ТекущаяВалюта); Кратности = СоздатьОбъект("Периодический"); Кратности.ИспользоватьОбъект("Кратность",ТекущаяВалюта); тзКурсыВалюты.ВыбратьСтроки(); Пока тзКурсыВалюты.ПолучитьСтроку() = 1 Цикл Курсы.ВыбратьЗначения(тзКурсыВалюты.Дата,тзКурсыВалюты.Дата); Курсы.ПолучитьЗначение(); Если тзКурсыВалюты.Курс <> Курсы.Значение Тогда Если (тзКурсыВалюты.Курс <> Курсы.Значение) и (Курсы.Значение <> 0) Тогда ТекстПисьма = ТекстПисьма + " |" + ТекущаяВалюта + " за " + тзКурсыВалюты.Дата + ": " + Курсы.Значение + " >> " + тзКурсыВалюты.Курс; Продолжить; КонецЕсли; Курсы.ДатаЗнач = тзКурсыВалюты.Дата; Курсы.Значение = тзКурсыВалюты.Курс; Курсы.Записать(); Если тзКурсыВалюты.Дата >= '03.03.2022' Тогда КурсыВнутр.ДатаЗнач = тзКурсыВалюты.Дата; КурсыВнутр.Значение = тзКурсыВалюты.Курс*?(Константа.КоэффициентКурса = 0, 1, Константа.КоэффициентКурса); КурсыВнутр.Записать(); КонецЕсли; Кратности.ДатаЗнач = тзКурсыВалюты.Дата; Кратности.Значение = тзКурсыВалюты.Кратность; Если ТекущаяВалюта.Кратность.Получить(тзКурсыВалюты.Дата) <> тзКурсыВалюты.Кратность Тогда Кратности.Записать(); КонецЕсли; Сообщить(Строка(тзКурсыВалюты.Дата) + СимволТабуляции + тзКурсыВалюты.Курс + СимволТабуляции + тзКурсыВалюты.Кратность + СимволТабуляции + "загружен","I"); Иначе Сообщить(Строка(тзКурсыВалюты.Дата) + СимволТабуляции + тзКурсыВалюты.Курс + СимволТабуляции + тзКурсыВалюты.Кратность + СимволТабуляции + "не изменился","I"); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры // Загрузить |
|||
12
Guk
17.03.22
✎
16:02
|
о, АЛьФ тоже до сих пор на клюшках ваяет. я не одинок ;)...
|
|||
13
АЛьФ
18.03.22
✎
10:52
|
2(12) Но переход на "заваленную бесконечность" мелкими шажочками все же идет.
|
|||
14
Guk
18.03.22
✎
10:53
|
(13) ну и у нас так же...
|
|||
15
АЛьФ
21.03.22
✎
09:03
|
В (11) код неверный. Оказывается ЦБ не заполняет курсы на выходные и праздничные дни, в отличие от РБК.
|
|||
16
Быдло замкадное
21.03.22
✎
11:49
|
я пока переделал на загрузку с сайта 1С
|
|||
17
Azverin
21.03.22
✎
11:58
|
Центральный банк Российской Федерации установил с 19.03.2022:
840 USD 1 Доллар США 103,9524 Что у вас там поломалось? в УПП всё так. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |