Приложение для парсинга ежемесячных и заказных html отчётов с выводом результатов в csv таблицу. Поскольку я веду семейный бюджет, то иногда приходится сравнивать выписки по карте с имеющимися данными. На этом этапе возникает главная проблема - автоматически можно импортировать только табличные данные (csv, xls). Из Bank можно получить html или pdf, что вызывает определенные трудности получения табличного документа.
[WIP] Добавлена поддержка выгрузки данных из PDF. Для выписки по платёжному счёту Bank извлекаются категория, дата и время операции, отдельная дата обработки («Проведено»), место расчётов, сумма и остаток. Над таблицей показаны пополнения и списания из шапки отчёта рядом с суммами распарсенных операций. Если в источнике нет итогов, отображается «нет данных».
Перед сохранением CSV выберите кодировку в списке над таблицей:
Windows-1251 (по умолчанию) или UTF-8 (с BOM для распознавания в Excel).
Выбранная кодировка применяется к заголовкам и всем строкам отчёта.
Справа над результатами расположен редактор схем соответствия категорий.
Выберите схему или нажмите «+», введите уникальное имя и подтвердите «ОК».
Категории загруженного отчёта добавляются в выбранную схему автоматически:
достаточно заполнить соседнюю колонку «Категория 1С». Новые пары можно вводить
в пустой строке внизу; выбранные строки удаляются клавишей Delete.
Схемы и выбранная схема сохраняются автоматически в том же settings.json,
что и настройки импорта. Количество схем не ограничено.
Подменённые категории выделяются жёлтым. «Показать исходные категории» меняет
только отображение; в CSV сохраняются категории по выбранной схеме.
Выбор «Без схемы» восстанавливает исходные категории и для экспорта.
Клик по строке соответствия фильтрует операции по исходной категории этой строки.
Правая кнопка мыши в списке соответствий или кнопка «Показать все операции» сбрасывает выбор и фильтр.
Для удаления соответствия нажмите кнопку × в первом столбце его строки; изменения сохраняются автоматически. Смена схемы или загрузка нового отчёта также
сбрасывает фильтр. CSV всегда содержит все операции с подменёнными категориями
выбранной схемы, независимо от фильтра и показа исходных категорий.
После «Место» выгружаются пустая колонка, «Карта/счёт» с выбранным перед
импортом именем и пустая «Статья расходов» для дальнейшего заполнения.
При открытии отчёта имя карты можно ввести вручную или выбрать из выпадающего списка.
После подтверждения имя сохраняется в %LOCALAPPDATA%\ParserBankReports\card-names.json
и доступно при следующих запусках. Пустое имя подтвердить нельзя; отмена закрывает
диалог без импорта отчёта. Имена сравниваются без учёта регистра и пробелов по краям.
Загрузка карт из 1С пока не реализована. На проверенной локальной установке «1С:Деньги 8» обнаружена 32-разрядная платформа, но COMConnector не зарегистрирован. Для подключения необходимо настроить внешнее соединение соответствующей разрядности и определить справочник карт в метаданных конфигурации.
Для сохранения в Excel нажмите «Файл → Сохранить» и выберите «Excel (*.xlsx)» в поле «Тип файла» окна сохранения. Экспорт содержит все операции и категории выбранной схемы, независимо от фильтра. Суммы сохраняются как числа, даты — как даты Excel; отсутствующие даты остаются пустыми. Кодировка применяется только к CSV.
В меню «Файл» доступны «Последние отчёты», «Открыть проект…», «Сохранить проект…» и «Последние проекты обработки». История хранит по 10 путей каждого типа между запусками. JSON-проект содержит операции, исходные категории, итоги отчёта, настройки отображения и соответствия. Исходный PDF/HTML для повторного открытия проекта не требуется. Перед открытием другого файла приложение предлагает сохранить текущую обработку. Открытый проект сохраняется в тот же файл, в том числе при подтверждении сохранения перед выходом. Выбор места нужен только при первом сохранении нового проекта.
Общие правила выбранной схемы копируются в проект. Новые соответствия по умолчанию локальные: заполните «Категория 1С», при необходимости уточните «Название содержит». Так можно разделить операции Bank по получателю или назначению. Чтобы использовать правило в следующих импортах, выберите общую схему и установите флаг «Добавить в схему категорий». Снятие флага оставляет дальнейшие изменения в проекте, не удаляя ранее сохранённое общее правило. Локальные правила сохраняются через «Сохранить проект…». Удаление строки с установленным флагом удаляет и общее правило.
Для разных счетов у одинаковых переводов нажмите ПКМ по операции → «Во временную категорию…» и введите счёт. Ячейка категории выделяется фиолетовым. Значение сохраняется только в JSON-проекте и экспорте, без добавления в соответствия. ПКМ → «Очистить временную категорию» возвращает категорию по правилам. F6 очищает временные категории всех операций проекта после подтверждения с их количеством, включая операции, скрытые фильтром. Новых столбцов для временных категорий нет. F3 в таблице операций прокручивает список соответствий к правилу выбранной строки, с учётом исходной категории и названия. Фильтр при этом не меняется. Сортировка таблиц доступна по клику на заголовок столбца; повторный клик меняет направление. При открытии отчёта или проекта операции отсортированы по исходной категории. Выбранная сортировка сохраняется при применении и сбросе фильтра.