Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=13673)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Наши сервисы _ Загрузка межбанковского курса валют в 1С
Автор: Vofka 04.08.13, 19:13
Сервис больше не поддерживается.
Привет!
Представляю вашему вниманию новый сервис . Суть его из названия темы должна быть понятна. Сервис доступен по адресу: https://pro1c.org.ua/services/interbank_rate/out.php. Сейчас работаем с 3 валютами: доллар, евро и рубль. Другие валюты на текущий момент добавлять не планирую.
На данный момент доступны 2 операции с сервисом (в будущем, возможно, будет больше):
- Получение, собственно, курса валют. Чтобы обратиться к сервису, необходимо обратиться к операции getCourse, указав 3 параметра: МФО банка, код валюты в международном формате и дату. Например, я хочу получить курс доллара по приватбанку на 02.08.2013. Для этого мне нужно обратиться к сервису таким образом:
_http://pro1c.org.ua/services/interbank_rate/out.php?operation=getCourse&mfo=305299&code=840&date=20130802
Первый параметр operation=getCourse говорит о том, что нужно получить информацию по курсам валют. Второй и третий параметр - это МФО банка и код валюты, в общем, тут комментарии излишне. Последний параметр - дата в формате ГодМесяцЧисло.
[Добавлено 22.12.2013] Параметр mfo можно не указывать. В таком случае будет выведена информация по всем доступным банкам. Курс может меняться несколько раз в день, поэтому может быть ситуация, когда по одному и тому же банку будут разные курсы. Что с этим делать - решается на стороне вызывающей программы: выбрать последний; выбрать максимальный/минимальный; выбрать средний; и т.п.
- Для того, чтобы получить информацию о том, по каким банкам можно получить курс на текущий момент, необходимо обратиться к сервису так:
_http://pro1c.org.ua/services/interbank_rate/out.php?operation=checkLoad&code=840
Операция checkLoad, code = код валюты в международном формате.
На выходе вы получите XML, который можно обрабатывать как душе угодно. Так же XML вы получите в случае ошибки. Я старался делать описание ошибок понятным, так что, надеюсь, разберетесь. Если не разберетесь - спрашивайте.
Курс валют на выходной день может отсутствовать.
Представляю вашему вниманию 2 обработки.
Вышеуказанные конфигурации - это конфигурации для Украины. Не исключено, что для Российских аналогов обработка тоже будет работать. Но это не проверялось. Кто пишет на 7.7, можете написать и выложить обработку работы с типовыми семерочными конфигурациями и пользователи семерки вам будут благодарны за это
.
Вроде бы все, что хотел сказать я сказал. Если что-то забыл - буду обновлять первый пост и сигнализировать об этом в данной теме.
Сервис находится в бета-стадии, поэтому большая просьба отписывать об обнаруженных ошибках. Так же просьба отписывать, если ошибок не обнаружено и заявленный функционал отрабатывает нормально. Предложения и пожелания принимаются. Если будут интересные предложения по улучшению функционала - пишите и если это будет действительно интересно и технически нормально реализуемо - сервис будет наращивать функционал.
Сервис загрузки курса валют НБУ: https://pro1c.org.ua/index.php?showtopic=415
Автор: Vofka 12.08.13, 18:41
Готовы обработки для работы с типовыми Украинскими конфигурациями. Первый пост обновлен. Пароль стандартный. Просьба отписаться, кто попробует сервис в работе. Предложения и пожелания так же высказывайте. Ещё тем кому сервис интересен - советую подписаться на тему, что бы быть в курсе всех новостей, изменений и обновлений.
Автор: olegbilas 15.08.13, 17:52
За разработку автору большое спасибо, однако, по моему мнению, официальный курс НБУ был бы более востребованным, так как исходя именно из такого курса бухгалтера пересчитывают валюту в гривны на дату баланса или на дату покупки-продажи валюты в бухгалтерском и налоговом учете.
Автор: Vofka 15.08.13, 18:51
olegbilas, http://pro1c.org.ua/index.php?showtopic=415
Автор: Nitrochaos 04.10.13, 3:37
перехожу по ссылке, а в ответ это:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<InterbankCurrencyRate>
<status>TRUE</status>
<response>
<purchase>8.11</purchase>
<sale>8.15</sale>
</response>
</InterbankCurrencyRate>
Автор: Vofka 04.10.13, 7:57
Nitrochaos, ну и?
Автор: logist 09.12.13, 16:41
А как насчет варианта который будет отдавать сразу информацию по всем банкам? Смысл - мне нужен средний курс (ну или даже информация по большей части банков), а получать список банков, потом по каждому делать запрос как-то не кошерно
Автор: Vofka 09.12.13, 17:10
logist, на данный момент такой возможности нету. А для каких целей это надо, если не секрет?
Автор: logist 09.12.13, 17:56
Цитата(Vofka @ 09.12.13, 18:10) http://pro1c.org.ua/index.php?act=findpost&pid=78958
logist, на данный момент такой возможности нету
Можешь дать out.php я посмотрю на него, и сделаю такой вариант.
Автор: Vofka 09.12.13, 21:33
Цитата(logist @ 09.12.13, 17:56)
Можешь дать out.php я посмотрю на него, и сделаю такой вариант.
Если обладаешь достаточными навыками в пхп, могу предложить написать свой сервис, опубликую специально для тебя
. И зная из чего состоит этот веб-сервис, скажу, что out.php тебе ровным счетом ничего не даст, а всю систему я не дам
. Я не обещаю, но постараюсь сделать то, что ты просишь до НГ.
Автор: logist 10.12.13, 10:46
Цитата(Vofka @ 09.12.13, 22:33) http://pro1c.org.ua/index.php?act=findpost&pid=78973
могу предложить написать свой сервис
Можешь просто сказать откуда берешь информацию для своей базы
Может мне проще будет оттуда взять то, что мне надо.
Цитата(Vofka @ 09.12.13, 22:33)
Я не обещаю, но постараюсь сделать то, что ты просишь до НГ.
А сколько стоит, что бы пообещал?
Автор: Vofka 22.12.13, 14:16
logist, доработал сервис. Обновил в первом посте описание.
Автор: group_aprel 22.05.14, 11:39
Добрый день, а какой у вас "стандарный" пароль?
Автор: Vofka 22.05.14, 11:41
group_aprel, в правилах сказано.
Автор: Rurikovi4 23.11.15, 18:07
Vofka, такой вопрос. Если я хочу выбрать информацию по днях начиная с 13-го года, не обрубает ли меня сервер на n-ном запросе?
Автор: Rurikovi4 26.11.15, 13:16
Цитата(Vofka @ 04.08.13, 19:13)
Кто пишет на 7.7, можете написать и выложить обработку работы с типовыми семерочными конфигурациями и пользователи семерки вам будут благодарны за это wink.gif .
Дам код получения курса на дату. В принципе, для любого програмиста там все понятно.
Передаваемая переменная "Дт" - это дата получения курсов
Попытка
Соединение = СоздатьОбъект("Addin.V7HttpReader");
Исключение
Сообщить("Не удалось создать объект Addin.V7HttpReader!");
КонецПопытки;
Валюта ="840";
МФО = "305299";
//Дт - переменная с датой для получения курсов
Если СтрДлина(МФО)<6 Тогда
ТекстСсылки = "http://pro1c.org.ua/services/interbank_rate/out.php?operation=getCourse&code="+Строка(Валюта)+"&date="+Строка(СокрЛП(Формат(Дт,"Д ГГГГММДД")));
Иначе
ТекстСсылки = "http://pro1c.org.ua/services/interbank_rate/out.php?operation=getCourse&mfo="+Строка(МФО)+"&code="+Строка(Валюта)+"&date="+Строка(СокрЛП(Формат(Дт,"Д ГГГГММДД")));
КонецЕсли;
стр = "";
Попытка
Ошибка = 0;
Соединение.ПолучитьКакСтроку(ТекстСсылки, Стр);
Исключение
Сообщить("Неудачная попытка соединения. Курсы по валюте """ + Валюта +""" не загружены.");
Ошибка = 1;
КонецПопытки;
КурсПокупки=0;
КвоКурсовПокупки=0;
КурсПродажи=0;
КвоКурсовПродажи=0;
Стр1 = "";
Стр2 = "";
Для к=1 по СтрКоличествоСтрок(Стр) Цикл
Перебор = СтрПолучитьСтроку(Стр,к);
//Сообщить(Перебор);
Если СтрЧислоВхождений(Перебор,"purchase")>0 Тогда
Стр1 = СтрЗаменить(Перебор,"<purchase>","");
Стр2 = СтрЗаменить(Стр1,"</purchase>","");
КурсПокупки = КурсПокупки + Число(СокрЛП(Стр2));
КвоКурсовПокупки = КвоКурсовПокупки+1;
Стр1 = "";
Стр2 = "";
КонецЕсли;
Если СтрЧислоВхождений(Перебор,"sale")>0 Тогда
Стр1 = СтрЗаменить(Перебор,"<sale>","");
Стр2 = СтрЗаменить(Стр1,"</sale>","");
КурсПродажи = КурсПродажи + Число(СокрЛП(Стр2));
КвоКурсовПродажи = КвоКурсовПродажи+1;
Стр1 = "";
Стр2 = "";
КонецЕсли;
КонецЦикла;
Если КвоКурсовПокупки>0 Тогда
// Средний курс покупки
Сообщить("Покупка "+Строка(КурсПокупки/КвоКурсовПокупки));
КонецЕсли;
Если КвоКурсовПродажи>0 Тогда
// Средний курс продажи
Сообщить("Продажа "+Строка(КурсПродажи/КвоКурсовПродажи));
КонецЕсли;
Автор: Vofka 26.11.15, 13:20
Rurikovi4, я забыл разобраться с вашим предыдущем сообщением. Вопрос ещё актуальный?
Автор: Rurikovi4 26.11.15, 13:39
Цитата(Vofka @ 26.11.15, 13:20)
Rurikovi4, я забыл разобраться с вашим предыдущем сообщением. Вопрос ещё актуальный?
Да, если не затруднит.
Автор: Vofka 26.11.15, 13:59
Rurikovi4, попробуйте помесячно выбирать. Я думаю, проблем не будет.
Автор: Vofka 14.11.19, 10:00
Сервис больше не поддерживается.
Автор: pablo 14.11.19, 10:16
Обнови, пожалуйста, первый пост.
Автор: Vofka 14.11.19, 10:38
Готово.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua