Импорт из finmap (CSV)
inCash умеет принимать выгрузку из finmap.online как CSV. Скрипт переносит счета, категории, контрагентов и операции — с сохранением валют и курсов.
Подготовка
- Войдите в finmap.online → откройте журнал операций.
- Экспортируйте все операции в CSV (кнопка экспорта в фильтрах журнала).
- Сохраните файл как
data/import.csvв корне проекта inCash.
CSV finmap содержит колонки:
| № | Колонка | Что в ней |
|---|---|---|
| 1 | Дата | Дата операции |
| 2 | Со счёта | Имя счёта-источника (для расхода / перевода) |
| 3 | На счёт | Имя счёта-получателя (для дохода / перевода) |
| 4 | Сумма | В валюте операции, запятая как разделитель |
| 5 | Сумма в валюте компании | Для пересчёта в базовую |
| 6 | Категория | Иерархия через / |
| 7 | Контрагент | Имя |
| 8 | Комментарий | Свободный текст |
| 9 | Проект | Опционально |
Запуск скрипта
Из корня проекта:
npx tsx scripts/import-csv.ts
Что происходит:
- Читается
data/import.csv. - Создаются недостающие сущности: счета, категории (с иерархией), контрагенты, проекты.
- Тип операции определяется автоматически:
- Только «Со счёта» →
EXPENSE. - Только «На счёт» →
INCOME. - Оба заполнены →
TRANSFER.
- Только «Со счёта» →
- Кросс-валютные операции получают
amountInCompanyCurrencyиexchangeRateиз колонки 5. - Балансы счетов пересчитываются с учётом конвертации.
Эвристика валют
Если имя счёта содержит «Сумы», «Сўм» или «Kapital» — валюта счёта UZS. Иначе — USD по умолчанию. Если у вас другая базовая валюта или нестандартные имена — поправьте скрипт перед запуском.
Начальные балансы
Скрипт import-csv.ts не задаёт начальные балансы. После импорта нужно либо ввести их вручную в Настройках → Счета, либо запустить:
npx tsx scripts/set-initial-balances.ts
Скрипт пересчитывает баланс с учётом начального остатка и всех операций.
Что не переносится из finmap
- Файлы / вложения к операциям.
- Пользователи / роли (RBAC у inCash и finmap несовместим).
- Автоправила.
- Счета-фактуры (модуль выключен в inCash).
Альтернатива
Если CSV из finmap не подходит — используйте Excel-импорт или JSON snapshot (например, после экспорта из тестовой компании inCash).