|
Информационные технологии
:: Как страшно жить
|
|
| ||
Fragster 29.12.20 - 10:54 | |||
mave13 1 - 29.12.20 - 10:57 | Аналогично | ||
ptiz 2 - 29.12.20 - 11:05 | Вчерашние курсы подсунули? | ||
ptiz 3 - 29.12.20 - 11:10 | Может, они неправильно поняли указание о "заморозке цен"? :) | ||
mave13 4 - 29.12.20 - 11:17 | (2) ага | ||
Волшебник 5 - 29.12.20 - 11:26 | Никогда такого не было и вот опять...
Курсы надо грузить от первоисточника - Центробанка России. Если оттуда не грузится, то от РБК и обязательно проверять вручную. | ||
Fragster 6 - 29.12.20 - 11:30 | (5) в старых БСП грузится с этого ресурса, в более новых - с ИТС или с этого ресурса | ||
kzot 7 - 29.12.20 - 11:31 | |||
Fragster 8 - 29.12.20 - 11:59 | (7) у центробанка вот с этого: https://www.cbr.ru/development/DWS/
получается полная шляпа: https://i.imgur.com/JKgk8pW.png | ||
Fragster 9 - 29.12.20 - 11:59 | в ответ вместо данных приходит схема данных ответа | ||
Волшебник 10 - 29.12.20 - 12:06 | (7) Вероятность очень мала. Даже если у Центробанка вдруг будет техническая ошибка, то есть вероятность, что её узаконят где-то в недрах ЦБ. | ||
ptiz 11 - 29.12.20 - 12:21 | (8)
Процедура КнопкаВыполнитьНажатие(Кнопка) ТекстОшибки = ""; ПроксиВебСервиса = ПолучитьНовыйПроксиВебСервисаКурсовВалютЦБ(ТекстОшибки); Если ЗначениеЗаполнено(ТекстОшибки) Тогда Сообщить(ТекстОшибки); Возврат; КонецЕсли; // курсы ДатаСтрокой = Формат(ДатаКурса, "ДФ=yyyy-MM-ddTHH:mm:ss"); ТипWSПараметра = ПроксиВебСервиса.ФабрикаXDTO.Пакеты.Получить("http://web.cbr.ru/").Получить("GetCursOnDateXML"); WSПараметр = ПроксиВебСервиса.ФабрикаXDTO.Создать(ТипWSПараметра); WSПараметр.On_date = ДатаСтрокой; Попытка СтрокаОтвета = ПроксиВебСервиса.GetCursOnDateXML(WSПараметр); Исключение ТекстОшибки = "Ошибка веб-сервиса: " + ОписаниеОшибки(); КонецПопытки; Если ЗначениеЗаполнено(ТекстОшибки) Тогда Сообщить(ТекстОшибки); Иначе //Сообщить(СтрокаОтвета); Для каждого Элемент Из СтрокаОтвета.GetCursOnDateXMLResult.ValuteData.ValuteCursOnDate Цикл Сообщить(СокрЛП(Элемент.Vname) + " - " + СокрЛП(Элемент.Vcurs)); КонецЦикла; КонецЕсли; КонецПроцедуры Функция ПолучитьНовыйПроксиВебСервисаКурсовВалютЦБ(ТекстОшибки = "", ТаймАут = 5) Экспорт Пользователь = ""; Пароль = ""; ОпределениеСервиса = Неопределено; АдресВебСервиса = "http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL"; ТекстОшибки = ""; Попытка ОпределениеСервиса = Новый WSОпределения(АдресВебСервиса, Пользователь, Пароль, ТаймАут); Исключение ТекстОшибки = ОписаниеОшибки(); ОпределениеСервиса = Неопределено; КонецПопытки; Если ОпределениеСервиса = Неопределено Тогда ТекстОшибки = ТекстОшибки + ?(ТекстОшибки = "", "", Символы.ПС) + "Не удалось получить определение веб-сервиса"; Возврат Неопределено; КонецЕсли; Попытка Сервис = ОпределениеСервиса.Сервисы[0]; Прокси = Новый WSПрокси(ОпределениеСервиса, Сервис.URIПространстваИмен, Сервис.Имя, Сервис.ТочкиПодключения[0].Имя, ТаймАут); Прокси.Пользователь = Пользователь; Прокси.Пароль = Пароль; Исключение ТекстОшибки = ОписаниеОшибки(); ОпределениеСервиса = Неопределено; Прокси = Неопределено; КонецПопытки; Если Прокси = Неопределено Тогда ТекстОшибки = ТекстОшибки + ?(ТекстОшибки = "", "", Символы.ПС) + "Не удалось получить прокси веб-сервиса"; Возврат Неопределено; КонецЕсли; Возврат Прокси; КонецФункции Процедура ПриОткрытии() ДатаКурса = ТекущаяДата(); КонецПроцедуры | ||
Fragster 12 - 29.12.20 - 12:26 | (11) уже сделал так:
Адрес = "https://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL"; Определение = Новый WSОпределения(Адрес); Сервис = Определение.Сервисы[Определение.Сервисы.Количество() - 1]; ПространствоИмен = Сервис.URIПространстваИмен; ТочкаПодключения = Сервис.ТочкиПодключения[Сервис.ТочкиПодключения.Количество() - 1]; Прокси = Новый WSПрокси(Определение, ПространствоИмен, Сервис.Имя, ТочкаПодключения.Имя); Фабрика = Определение.ФабрикаXDTO; Тип = Фабрика.Тип(ПространствоИмен, "EnumValutes"); Параметр = Фабрика.Создать(Тип); Результат = Прокси.EnumValutes(Параметр); СписокВалют = Результат.EnumValutesResult.diffgram.ValuteData.EnumValutes; Для каждого СтрокаВалют Из СписокВалют Цикл Если СтрокаВалют.Получить("VcharCode") = "EUR" Тогда КодВалюты = СокрЛП(СтрокаВалют.Vcode); Прервать; КонецЕсли; КонецЦикла; Тип = Фабрика.Тип(ПространствоИмен, "GetCursDynamic"); //Тип = Фабрика.Тип(ПространствоИмен, "GetCursDynamicXML"); Параметр = Фабрика.Создать(Тип); Параметр.FromDate = НачалоДня(ТекущаяДата() - 5*86400); Параметр.ToDate = НачалоДня(ТекущаяДата()); Параметр.ValutaCode = КодВалюты; Результат = Прокси.GetCursDynamic(Параметр); //Результат = Прокси.GetCursDynamicXML(Параметр); Курсы = Результат.GetCursDynamicResult.diffgram.ValuteData.ValuteCursDynamic Для каждого СтрокаКурсов Из Курсы Цикл КонецЦикла; | ||
Fragster 13 - 29.12.20 - 12:26 | у них свои коды прост. + ответ они отдают неправильный, из-за которого он AnyType | ||
Fragster 14 - 29.12.20 - 12:27 | и надо что влечет некоторое количество кода на преобразование список-объект и строк в числа идаты | ||
Fragster 15 - 29.12.20 - 12:32 | как-то так:
Курсы = Результат.GetCursDynamicResult.diffgram.ValuteData.ValuteCursDynamic; Если ТипЗнч(Курсы) <> Тип("СписокXDTO") Тогда ТМП = Новый Массив; ТМП.Добавить(Курсы); Курсы = ТМП; КонецЕсли; Для каждого СтрокаКурсов Из Курсы Цикл Дата = XMLЗначение(Тип("Дата"), СтрокаКурсов.CursDate); Курс = XMLЗначение(Тип("Число"), СтрокаКурсов.Vcurs); Кратность = XMLЗначение(Тип("Число"), СтрокаКурсов.Vnom); КонецЦикла; | ||
Fragster 16 - 29.12.20 - 12:32 | + оно с пропусками дат (в отличии от РБК) | ||
Оболтус 17 - 29.12.20 - 12:40 | РБК чинить-то собирается? | ||
ДенисЧ 18 - 29.12.20 - 12:45 | (17) Сейчас пообедаем и будем чинить. Иншалла починим... | ||
kzot 19 - 29.12.20 - 13:13 | (18) не поел ещё ? цб курс выдало на 30.12 90,2074 | ||
ДенисЧ 20 - 29.12.20 - 13:15 | (19) Я же сказал - иншалла... | ||
kzot 21 - 29.12.20 - 14:19 | |||
ДенисЧ 22 - 29.12.20 - 14:20 | (21) Ты хочешь оскорбить чувства свиноедов или свиней? | ||
Оболтус 23 - 29.12.20 - 14:36 | Да, поправили. Наконец-то. |
|
Список тем форума |