Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ coverage.xml
*.log
local_settings.py
db.sqlite3
*.sqlite3
*.db

# Flask stuff:
instance/
Expand Down
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# IBAN Desktop Checker (Tkinter)

Десктопное приложение на Python + Tkinter для:

- валидации IBAN (RU/BY, длина 33, MOD-97 ISO 7064),
- извлечения БИК (символы 5–13),
- поиска реквизитов банка по БИК в локальной SQLite базе,
- поиска SWIFT по таблице `bic_to_swift` (с поддержкой ручного ввода),
- вывода ссылки на сайт банка (из данных ЦБ, либо через поисковую ссылку).

## Что делает приложение

1. Удаляет пробелы из IBAN.
2. Проверяет:
- длину 33,
- префикс `RU` или `BY`,
- контрольную сумму MOD-97.
3. Извлекает БИК из позиции 5..13.
4. При первом запуске загружает XML-справочник с официального сайта ЦБ РФ:
- `https://www.cbr.ru/scripts/XML_bic2.asp`
- (резервно) `https://www.cbr.ru/scripts/XML_bic.asp`
5. Импортирует данные в SQLite БД (`data/banks.sqlite3`) в таблицы:
- `banks(bic, bank_name, corr_account, address, inn, kpp, ogrn)`
- `bic_to_swift(bic, swift)`
6. Выводит реквизиты строго по списку:
- Наименование банка
- Адрес
- ИНН
- ОГРН
- SWIFT
- КПП
- Данные корреспондентских счетов
- Сайт банка

## Установка и запуск

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 iban_desktop_app.py
```

## Примечания

- Поля `КПП` и `Данные корреспондентских счетов` в открытом XML-справочнике ЦБ могут отсутствовать для части записей — в интерфейсе будет показано `Не найдено`.
- Таблица `bic_to_swift` предзаполнена для ряда крупных банков и может вручную расширяться через форму в приложении.
Loading