gifts2017

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

Опубликовал Shtyr (Shtyr) в раздел Обработки - Обработка справочников

Обработка предназначена для загрузки значений ставок рефинансирования с сайта центробанка России и записи данных значений в базу 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

Скачать файлы

Наименование Файл Версия Размер
ЗагрузкаСтавокРефинансирования.ert 121
.ert 53,50Kb
26.02.10
121
.ert 53,50Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Дониэла Иванова (Доня) 26.02.10 19:03
Очень! нужная обработка!
Но при "выполнить" выдает:
ИЕ.Navigate(СокрЛП(ВыбАдрес));
ЗАГРУЗКАСТАВОКРЕФИНАНСИРОВАНИЯ.ERT(144)}: :

Делаю в Бухгалтерский учет 7.7
Что у меня не так?
Подскажите, чтобы открывалась
2. Igоr Sаulеviсh (gutentag) 26.02.10 19:41
+ за идею, однозначный!
---
А почму с сайта ЦБ, а не rbc.ru или еще какого то сайта?
разве трудно установить ссылку на сайт с которого надо искать значения ставок7
3. Igоr Sаulеviсh (gutentag) 26.02.10 20:13
(0) вопрос про другие сайты снял. сорри
(1) только что протестил, бух, релиз-512 и Интенет-7, все ОК
4. Дониэла Иванова (Доня) 26.02.10 20:25
(3) Простите невежду, что такое "Интернет-7"
Ну очень жаль!
Выдает ошибку
5. Shtyr (Shtyr) 26.02.10 20:29
(1) честно говоря даже не знаю из-за чего у Вас появляется такая ошибка в этом месте... У Вас при открытии обработки в поле Адрес появляется адрес сайта ЦБ - http://cbr.ru/print.asp?file=/statistics/credit_statistics/refinancing_rates.htm - он должен быть обязательно. Еще вопрос такой - какая у Вас версия Windows, какая на ней установлена версия InternetExplorer
(2) я пытался найти на РБК возможность загрузки ставок рефинансирования в удобном виде типа xml или csv, но не нашел... Видимо считается, что это слишком редко изменяющаяся информация, чтобы ради нее делать информер. А Адрес сайта ЦБ забит в обработке в процедуре ПриОткрытии(), но есть возможность его изменить на форме - на случай если они у себя на сайте перенесут данную страничку без изменений в другое место

P.S. проверил еще на Internet Explorer версии 6.0 - работает...
6. Дониэла Иванова (Доня) 27.02.10 09:34
(5) Как то неожидано открылось и загрузиловсь!
Мне очень нравится
Спасибо
Хороший +
7. strangerr (strangerr) 18.03.10 13:13
8. Shtyr (Shtyr) 18.03.10 13:17
Кстати ошибку с 1991 годом на сайте ЦБ уже исправили... Мелочь, а приятно ;)
9. Алина Алинова (Acasta) 30.10.11 21:25