Загрузка ставок рефинансирования с сайта ЦБ РФ


Обработка предназначена для загрузки значений ставок рефинансирования с сайта центробанка России и записи данных значений в базу 1С.

Обработка предназначена для загрузки значений ставок рефинансирования с сайта центробанка России и записи данных значений в базу 1С.

Замечания:

  1. Для загрузки используется COM-объект InternetExplorer.Apllication, работа проверялась только на Windows с версией IE8.0
  2. Обработка сильно завязана на структуру документа на сайте ЦБ — ищутся объекты с тэгом TABLE, из выбираются только те таблицы, которые не имеют вложенных таблиц, признаком нужной таблицы является наличие слова «ПЕРИОД» в первой строке таблицы (заголовок). Также считается, что нужные данные содержатся в первых двух колонках таблицы и есть зависимость от формата даты изменения ставки рефинансирования в первой колонке.
  3. Также можно отметить, что обработка завязана на URL-адрес страницы на сайте ЦБ, но есть возможность изменить его перед загрузкой.
  4. В настоящее время нет возможности задать название объекта метаданных, в которых хранится история изменения ставок — по умолчанию используется константа «СтавкаРефинансирования». В будущем, если данная опция понадобится, есть в планах её добавить.
  5. В обработке добавлена попытка поймать ошибки и зависания — если объект IE не переходит в состояние готовности дольше, чем таймаут в 10 секунд (т.е. слишком долго пытается загрузить сайт или выполнить парсинг страницы), то обработка прекращает ожидание ответа. Также ошибкой считается несовпадение адреса страницы, которую мы пытались открыть, и которая в итоге открылась — это бывает при отсутствии соединения с интернетом, IE автоматически перенаправляет на сообщение об ошибке.
  6. В будущем планируется добавить возможность полностью автоматической работы — например в случае запуска обработки при начале работы системы из глобального модуля с передачей нужных параметров.

История версий и изменений:

1.00  13.02.2010: Обработка загружает значения ставок рефинансирования с сайта центробанка России с помощью COM-объекта InternetExplorer.Application. Производится парсинг загруженной страницы — поиск основной таблицы с данными по признаку наличия 6 букв «ПЕРИОД» в первой строке таблицы. Выполняется разбор данных и заполнение таблицы значений на форме.
1.01  15.02.2010: Добавлена обработка возможных ошибок — в качестве таймаута выбрано значение 10 секунд — после чего ожидание ответа от ИЕ прекращается. В случае если URL документа отличается от заданного в начале, это воспринимается как ошибка связи, т.е. ИЕ перенаправил страницу на сообщение об ошибке. Добавлен кусок для корректного завершения работы, чтобы процесс ИЕ не оставался висящим в памяти. Сделаны мелкие улучшения и оптимизация кода.
1.02  16.02.2010: Добавлена возможность выбора периода загрузки. Добавлена базовая возможность — сохранение загруженных значений в историю константы «СтавкаРефинансирования».
1.03  26.02.2010: Добавлена возможность предварительной очистки истории значений константы «СтавкаРефинансирования». Вся работа с историей значений теперь выполняется с помощью объекта «Периодический». Мелкие интерфейсные доработки и подготовка к первой публичной версии.

 

P.S. Прошу строго не судить — это моя первая публикация здесь, постарался все оформить получше и подробнее. Да, возможно такая обработка уже была, но я такой не нашел и когда понадобилось писать отчет по расчету пеней, заодно и такая вещь пригодилась. Может конечно и не сильно нужна такая обработка, т.к. ставки рефинансирования редко используются и не так уж часто меняются, но в моем случае она сильно облегчает жизнь бухгалтерам и устраняет еще одну заморочку — помнить о необходимости обновления ставок рефинсирования в константах (ну это конечно, если я ее доделаю в итоге до полностью автоматического запуска при каждом запуске).

P.P.S. А на сайте ЦБ РФ кстати есть ошибка Wink У них самое первое значение ставки рефинансирования указано на дату 01.01.1991, хотя должно быть явно 01.01.1992

9 Comments

  1. Доня

    Очень! нужная обработка!

    Но при «выполнить» выдает:

    ИЕ.Navigate(СокрЛП(ВыбАдрес));

    ЗАГРУЗКАСТАВОКРЕФИНАНСИРОВАНИЯ.ERT(144)}: :


    Делаю в Бухгалтерский учет 7.7

    Что у меня не так?

    Подскажите, чтобы открывалась

    Reply
  2. gutentag

    + за идею, однозначный!



    А почму с сайта ЦБ, а не rbc.ru или еще какого то сайта?

    разве трудно установить ссылку на сайт с которого надо искать значения ставок7

    Reply
  3. gutentag

    (0) вопрос про другие сайты снял. сорри

    (1) только что протестил, бух, релиз-512 и Интенет-7, все ОК

    Reply
  4. Доня

    (3) Простите невежду, что такое «Интернет-7»

    Ну очень жаль!

    Выдает ошибку

    Reply
  5. Shtyr

    (1) честно говоря даже не знаю из-за чего у Вас появляется такая ошибка в этом месте… У Вас при открытии обработки в поле Адрес появляется адрес сайта ЦБ — http://cbr.ru/print.asp?file=/statistics/credit_statistics/refinancing_rates.htm — он должен быть обязательно. Еще вопрос такой — какая у Вас версия Windows, какая на ней установлена версия InternetExplorer

    (2) я пытался найти на РБК возможность загрузки ставок рефинансирования в удобном виде типа xml или csv, но не нашел… Видимо считается, что это слишком редко изменяющаяся информация, чтобы ради нее делать информер. А Адрес сайта ЦБ забит в обработке в процедуре ПриОткрытии(), но есть возможность его изменить на форме — на случай если они у себя на сайте перенесут данную страничку без изменений в другое место

    P.S. проверил еще на Internet Explorer версии 6.0 — работает…

    Reply
  6. Доня

    (5) Как то неожидано открылось и загрузиловсь!

    Мне очень нравится

    Спасибо

    Хороший +

    Reply
  7. strangerr

    ишшь!

    молодец аднако

    Reply
  8. Shtyr

    Кстати ошибку с 1991 годом на сайте ЦБ уже исправили… Мелочь, а приятно 😉

    Reply
  9. Acasta

    Спасибо за обработку!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *