Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загрузка межбанковского курса валют в 1С
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Общий раздел > http://pro1c.org.ua/ > Наши сервисы
Vofka
Сервис больше не поддерживается.

Привет!

Представляю вашему вниманию новый сервис smile.gif . Суть его из названия темы должна быть понятна. Сервис доступен по адресу: необходимо зарегистрироваться для просмотра ссылки. Сейчас работаем с 3 валютами: доллар, евро и рубль. Другие валюты на текущий момент добавлять не планирую.

На данный момент доступны 2 операции с сервисом (в будущем, возможно, будет больше):

  1. Получение, собственно, курса валют. Чтобы обратиться к сервису, необходимо обратиться к операции 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 можно не указывать. В таком случае будет выведена информация по всем доступным банкам. Курс может меняться несколько раз в день, поэтому может быть ситуация, когда по одному и тому же банку будут разные курсы. Что с этим делать - решается на стороне вызывающей программы: выбрать последний; выбрать максимальный/минимальный; выбрать средний; и т.п.

  2. Для того, чтобы получить информацию о том, по каким банкам можно получить курс на текущий момент, необходимо обратиться к сервису так:

    _http://pro1c.org.ua/services/interbank_rate/out.php?operation=checkLoad&code=840

    Операция checkLoad, code = код валюты в международном формате.


На выходе вы получите XML, который можно обрабатывать как душе угодно. Так же XML вы получите в случае ошибки. Я старался делать описание ошибок понятным, так что, надеюсь, разберетесь. Если не разберетесь - спрашивайте.

Курс валют на выходной день может отсутствовать.


Представляю вашему вниманию 2 обработки.


Вышеуказанные конфигурации - это конфигурации для Украины. Не исключено, что для Российских аналогов обработка тоже будет работать. Но это не проверялось. Кто пишет на 7.7, можете написать и выложить обработку работы с типовыми семерочными конфигурациями и пользователи семерки вам будут благодарны за это wink.gif .

Вроде бы все, что хотел сказать я сказал. Если что-то забыл - буду обновлять первый пост и сигнализировать об этом в данной теме.

Сервис находится в бета-стадии, поэтому большая просьба отписывать об обнаруженных ошибках. Так же просьба отписывать, если ошибок не обнаружено и заявленный функционал отрабатывает нормально. Предложения и пожелания принимаются. Если будут интересные предложения по улучшению функционала - пишите и если это будет действительно интересно и технически нормально реализуемо - сервис будет наращивать функционал.

Сервис загрузки курса валют НБУ: необходимо зарегистрироваться для просмотра ссылки
Vofka
Готовы обработки для работы с типовыми Украинскими конфигурациями. Первый пост обновлен. Пароль стандартный. Просьба отписаться, кто попробует сервис в работе. Предложения и пожелания так же высказывайте. Ещё тем кому сервис интересен - советую подписаться на тему, что бы быть в курсе всех новостей, изменений и обновлений.
olegbilas

 ! 

Правила, п.13
 


За разработку автору большое спасибо, однако, по моему мнению, официальный курс НБУ был бы более востребованным, так как исходя именно из такого курса бухгалтера пересчитывают валюту в гривны на дату баланса или на дату покупки-продажи валюты в бухгалтерском и налоговом учете.
Vofka
olegbilas, необходимо зарегистрироваться для просмотра ссылки
Nitrochaos
перехожу по ссылке, а в ответ это:
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
Nitrochaos, ну и?
logist
А как насчет варианта который будет отдавать сразу информацию по всем банкам? Смысл - мне нужен средний курс (ну или даже информация по большей части банков), а получать список банков, потом по каждому делать запрос как-то не кошерно smile.gif
Vofka
logist, на данный момент такой возможности нету. А для каких целей это надо, если не секрет?
logist
Цитата(Vofka @ 09.12.13, 18:10) необходимо зарегистрироваться для просмотра ссылки
А для каких целей это надо, если не секрет?

Управленческий учет предприятие ведет в долларах на основании среднего курса МВБУ, это более реальная картина, привязываться к конкретному банку не имеет смысла, по ряду причин их внутренних особенностей учета.

Цитата(Vofka @ 09.12.13, 18:10) необходимо зарегистрироваться для просмотра ссылки
logist, на данный момент такой возможности нету

Можешь дать out.php я посмотрю на него, и сделаю такой вариант.
Vofka
Цитата(logist @ 09.12.13, 17:56) необходимо зарегистрироваться для просмотра ссылки
Можешь дать out.php я посмотрю на него, и сделаю такой вариант.

Если обладаешь достаточными навыками в пхп, могу предложить написать свой сервис, опубликую специально для тебя smile.gif . И зная из чего состоит этот веб-сервис, скажу, что out.php тебе ровным счетом ничего не даст, а всю систему я не дам bk.gif . Я не обещаю, но постараюсь сделать то, что ты просишь до НГ.
logist
Цитата(Vofka @ 09.12.13, 22:33) необходимо зарегистрироваться для просмотра ссылки
Если обладаешь достаточными навыками в пхп

Обладаю smile.gif

Цитата(Vofka @ 09.12.13, 22:33) необходимо зарегистрироваться для просмотра ссылки
могу предложить написать свой сервис

Можешь просто сказать откуда берешь информацию для своей базы wink.gif Может мне проще будет оттуда взять то, что мне надо.

Цитата(Vofka @ 09.12.13, 22:33) необходимо зарегистрироваться для просмотра ссылки
Я не обещаю, но постараюсь сделать то, что ты просишь до НГ.

А сколько стоит, что бы пообещал? wink.gif
Vofka
logist, доработал сервис. Обновил в первом посте описание.
group_aprel
Добрый день, а какой у вас "стандарный" пароль? smile.gif
Vofka
group_aprel, в правилах сказано.
Rurikovi4
Vofka, такой вопрос. Если я хочу выбрать информацию по днях начиная с 13-го года, не обрубает ли меня сервер на n-ном запросе?
Rurikovi4
Цитата(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
Rurikovi4, я забыл разобраться с вашим предыдущем сообщением. Вопрос ещё актуальный?
Rurikovi4
Цитата(Vofka @ 26.11.15, 13:20) необходимо зарегистрироваться для просмотра ссылки
Rurikovi4, я забыл разобраться с вашим предыдущем сообщением. Вопрос ещё актуальный?

Да, если не затруднит.
Vofka
Rurikovi4, попробуйте помесячно выбирать. Я думаю, проблем не будет.
Vofka
Сервис больше не поддерживается.
pablo
Обнови, пожалуйста, первый пост.
Vofka
Готово.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.