odin_palace — это инструмент для парсинга и анализа банковских выписок в формате 1CClientBankExchange.
Спецификация 1CClientBankExchange v1.03
Для установки последней версии из репозитория можно воспользоваться следующей командой:
cargo install --git https://github.com/tochka-public/odin_palaceДля разбора банковской выписки предусмотрена команда:
odin_palace parse путь/к/файлу.txtгде путь/к/файлу.txt — путь к файлу выписки в формате 1CClientBankExchange. Результатом выполнения является структурированное представление выписки, выводимое в стандартный вывод (stdout).
1CClientBankExchange
ВерсияФормата=1.02
Кодировка=Windows
Отправитель=Tinkoff
Получатель=Иванов Иван Иванович
ДатаСоздания=16.04.2024
ВремяСоздания=15:36:40
ДатаНачала=01.04.2024
ДатаКонца=16.04.2024
РасчСчет=40802000000000000007
СекцияРасчСчет
ДатаНачала=01.04.2024
ДатаКонца=16.04.2024
РасчСчет=40802000000000000007
НачальныйОстаток=0
ВсегоПоступило=67770
ВсегоСписано=0
КонечныйОстаток=67770
КонецРасчСчет
СекцияДокумент=Банковский ордер
Номер=481554
Дата=13.04.2024
Сумма=1000
ДатаСписано=13.04.2024
Плательщик=Петров Петр Петрович
Плательщик1=Петров Петр Петрович
ПлательщикСчет=30233000000000000004
ПлательщикИНН=7700000001
ПлательщикРасчСчет=30233000000000000004
ПлательщикКорсчет=30101000000000000005
ПлательщикБИК=044525593
ПлательщикБанк1=АО "АЛЬФА-БАНК"
Получатель=Сидоров Сидор Сидорович
Получатель1=Сидоров Сидор Сидорович
ПолучательСчет=40802000000000000007
ПолучательИНН=260000000002
ПолучательРасчСчет=40802000000000000007
ПолучательКорсчет=30101000000000000008
ПолучательБИК=044525974
ПолучательБанк1=АО "ТИНЬКОФФ БАНК"
ПолучательКПП=
ВидОплаты=17
НазначениеПлатежа=Оплата по договору
Очередность=5
КонецДокумента
КонецФайла
Для использования в качестве библиотеки рекомендуется добавить зависимость в Cargo.toml:
odin_palace = { git = "https://github.com/tochka-public/odin_palace" }Пример использования:
use odin_palace::parser::Parser;
let content = std::fs::read("input.txt").unwrap();
let statement = Parser::default().parse(&content).unwrap();
println!("{:?}", statement);