Обработка предназначена для загрузки значений ставок рефинансирования с сайта центробанка России и записи данных значений в базу 1С.
Замечания:
- Для загрузки используется COM-объект InternetExplorer.Apllication, работа проверялась только на Windows с версией IE8.0
- Обработка сильно завязана на структуру документа на сайте ЦБ — ищутся объекты с тэгом TABLE, из выбираются только те таблицы, которые не имеют вложенных таблиц, признаком нужной таблицы является наличие слова «ПЕРИОД» в первой строке таблицы (заголовок). Также считается, что нужные данные содержатся в первых двух колонках таблицы и есть зависимость от формата даты изменения ставки рефинансирования в первой колонке.
- Также можно отметить, что обработка завязана на URL-адрес страницы на сайте ЦБ, но есть возможность изменить его перед загрузкой.
- В настоящее время нет возможности задать название объекта метаданных, в которых хранится история изменения ставок — по умолчанию используется константа «СтавкаРефинансирования». В будущем, если данная опция понадобится, есть в планах её добавить.
- В обработке добавлена попытка поймать ошибки и зависания — если объект IE не переходит в состояние готовности дольше, чем таймаут в 10 секунд (т.е. слишком долго пытается загрузить сайт или выполнить парсинг страницы), то обработка прекращает ожидание ответа. Также ошибкой считается несовпадение адреса страницы, которую мы пытались открыть, и которая в итоге открылась — это бывает при отсутствии соединения с интернетом, IE автоматически перенаправляет на сообщение об ошибке.
- В будущем планируется добавить возможность полностью автоматической работы — например в случае запуска обработки при начале работы системы из глобального модуля с передачей нужных параметров.
История версий и изменений:
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. А на сайте ЦБ РФ кстати есть ошибка У них самое первое значение ставки рефинансирования указано на дату 01.01.1991, хотя должно быть явно 01.01.1992
Очень! нужная обработка!
Но при «выполнить» выдает:
ИЕ.Navigate(СокрЛП(ВыбАдрес));
ЗАГРУЗКАСТАВОКРЕФИНАНСИРОВАНИЯ.ERT(144)}: :
Делаю в Бухгалтерский учет 7.7
Что у меня не так?
Подскажите, чтобы открывалась
+ за идею, однозначный!
—
А почму с сайта ЦБ, а не rbc.ru или еще какого то сайта?
разве трудно установить ссылку на сайт с которого надо искать значения ставок7
(0) вопрос про другие сайты снял. сорри
(1) только что протестил, бух, релиз-512 и Интенет-7, все ОК
(3) Простите невежду, что такое «Интернет-7»
Ну очень жаль!
Выдает ошибку
(1) честно говоря даже не знаю из-за чего у Вас появляется такая ошибка в этом месте… У Вас при открытии обработки в поле Адрес появляется адрес сайта ЦБ —http://cbr.ru/print.asp?file=/statistics/credit_statistics/refinancing_rates.htm — он должен быть обязательно. Еще вопрос такой — какая у Вас версия Windows, какая на ней установлена версия InternetExplorer
(2) я пытался найти на РБК возможность загрузки ставок рефинансирования в удобном виде типа xml или csv, но не нашел… Видимо считается, что это слишком редко изменяющаяся информация, чтобы ради нее делать информер. А Адрес сайта ЦБ забит в обработке в процедуре ПриОткрытии(), но есть возможность его изменить на форме — на случай если они у себя на сайте перенесут данную страничку без изменений в другое место
P.S. проверил еще на Internet Explorer версии 6.0 — работает…
(5) Как то неожидано открылось и загрузиловсь!
Мне очень нравится
Спасибо
Хороший +
ишшь!
молодец аднако
Кстати ошибку с 1991 годом на сайте ЦБ уже исправили… Мелочь, а приятно 😉
Спасибо за обработку!