Обработка данных банков (cbr.ru)

09.11.23

Интеграция - WEB-интеграция

Кусок кода для обработки данных(XML) по банкам с сайта cbr.ru. Пойдёт в любую самописку для простенького справочника с банками.
    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
    HTTP = Новый HTTPСоединение("www.cbr.ru",,,,,,ЗащищенноеСоединение);
    ХТТПЗапрос = Новый HTTPЗапрос;
    ХТТПЗапрос.АдресРесурса = "/s/newbik";
    HTTP.Получить(ХТТПЗапрос);
    ОтветСервера = HTTP.ВызватьHTTPМетод("GET", ХТТПЗапрос);
    Если ОтветСервера.КодСостояния = 301 Тогда
        АдресРесурса = ОтветСервера.Заголовки.Получить("Location");
        ХТТПЗапрос = Новый HTTPЗапрос;
        ХТТПЗапрос.АдресРесурса = АдресРесурса;
        HTTP.Получить(ХТТПЗапрос);
        ОтветСервера = HTTP.ВызватьHTTPМетод("GET", ХТТПЗапрос);
        Если ОтветСервера.КодСостояния = 200 Тогда
            Ответ = ОтветСервера.ПолучитьТелоКакДвоичныеДанные();
            ФайлДД = ПолучитьИмяВременногоФайла(".zip");
            Ответ.Записать(ФайлДД);
            Архив = Новый ЧтениеZipФайла(ФайлДД);
            Архив.ИзвлечьВсе(КаталогВременныхФайлов(), РежимВосстановленияПутейФайловZIP.Восстанавливать);
            Для Каждого Файл ИЗ Архив.Элементы Цикл
                ПутьКФайлу = КаталогВременныхФайлов() + Файл.Имя;
                Парсер = Новый ЧтениеXML;
                Парсер.ОткрытьФайл(ПутьКФайлу);
                Построитель = Новый ПостроительDOM;
                Документ = Построитель.Прочитать(Парсер);
                Для Каждого Элемент0 Из Документ.ЭлементДокумента.ДочерниеУзлы Цикл
                    Если Элемент0.ИмяУзла = "BICDirectoryEntry" Тогда
                        БИК = Элемент0.Атрибуты.ПолучитьИменованныйЭлемент("BIC").Значение;
                        Для Каждого Элемент1 ИЗ Элемент0.ДочерниеУзлы Цикл
                            Если Элемент1.ИмяУзла = "ParticipantInfo" Тогда
                                НазваниеБанка = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("NameP").Значение;
                                PtType = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("PtType").Значение;
                                Закрыт = ?(PtType = "90", Истина, Ложь);
                            ИначеЕсли Элемент1.ИмяУзла = "Accounts" Тогда
                                КоррСчет = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("Account").Значение;
                            КонецЕсли;
                        КонецЦикла;
                        ДанныеБанка = Новый Структура("БИК, НазваниеБанка, КоррСчет, Закрыт", БИК, НазваниеБанка, КоррСчет, Закрыт);
                        ОбработатьДанные(ДанныеБанка); //Здесь процедура для обработки полученных данных
                    КонецЕсли;
                КонецЦикла;
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;

 

1. Из-за того, что основная ссылка ведёт на страницу с редиректом - получаем два HTTP запроса.

2. Разархивируем полученный файл.

3. Разбираем XML через ПостроительDOM.

Данных в полученном XML файле гораздо больше, чем я получил, но для просто справочника - достаточно.

Соответственно, вот в этой части кода по образу и подобию:

Если Элемент1.ИмяУзла = "ParticipantInfo" Тогда
     НазваниеБанка = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("NameP").Значение;
     PtType = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("PtType").Значение;
     Закрыт = ?(PtType = "90", Истина, Ложь);
ИначеЕсли Элемент1.ИмяУзла = "Accounts" Тогда
     КоррСчет = Элемент1.Атрибуты.ПолучитьИменованныйЭлемент("Account").Значение;
КонецЕсли;

добавляем нужные нам атрибуты.

На уникальность и "супер-крутость" кода не претендую:)

Просто решил поделиться, кому-нибудь будет полезно, уверен.

банки xml справочник

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 24894 руб.

12.06.2017    145370    846    299    

437

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.20.x), также подходят для релиза 11.5 (11.5.19.x).

35000 руб.

23.07.2020    55656    254    73    

208

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    74017    196    154    

135

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2621    3    0    

10

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.240.x) и БП 3.0 (3.0.169.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    25909    184    55    

139

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16260 руб.

18.02.2016    188922    614    534    

536

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    34693    68    45    

27

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

55778 руб.

24.04.2015    197501    157    244    

287
Отзывы
2. user1880116 12.11.23 10:01 Сейчас в теме
(1)
как получить ссылку редиректа
https://httpwg.org/specs/rfc9110.html#status.301

The server SHOULD generate a Location header field in the response containing a preferred URI reference for the new permanent URI. The user agent MAY use the Location field value for automatic redirection.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tsatsur 45 09.11.23 13:58 Сейчас в теме
Если кто-то знает как получить ссылку редиректа (301), подскажите:)
А то:
не по красоте, конечно:))
2. user1880116 12.11.23 10:01 Сейчас в теме
(1)
как получить ссылку редиректа
https://httpwg.org/specs/rfc9110.html#status.301

The server SHOULD generate a Location header field in the response containing a preferred URI reference for the new permanent URI. The user agent MAY use the Location field value for automatic redirection.
3. tsatsur 45 13.11.23 12:59 Сейчас в теме
(2)
server SHOULD generate a Location header field in the response containing a preferred URI reference for the new permanent URI.

Спасибо:) Тупанул. Сейчас поправлю код и обновлю.
Оставьте свое сообщение