Skip to content

Выписка банка ​

Бухгалтер загружает выписку из интернет-банка, система сопоставляет каждую операцию со счетами клиентов и документами поставщиков, бухгалтер проверяет и проводит отмеченное. План «ИИ повсеместно, но уместно», этап 2: здесь работает код, а не модель — формат выписки точный, ИНН и суммы читаются как есть.

Реализовано 05.10.2026: модуль internal/modules/bankstatements, POST /api/v1/finance/statements/match, миграция 0186 (индексы по ИНН компаний и поставщиков). Фронт — «Платежи → Выписка банка» (StatementImportPanel).

Формат ​

Файл обмена «1С — Клиент банка» (1CClientBankExchange, версия 1.0x) — его выгружает любой банк. Кодировка Windows-1251 по формату или UTF-8 (определяется сама). До 5 МБ.

Из секций СекцияДокумент … КонецДокумента берутся номер, дата, сумма, счета и ИНН сторон, назначение платежа. Направление: наш счёт (РасчСчет выписки) — получатель → поступление, плательщик → списание; если счёт не указан — по ДатаПоступило / ДатаСписано. Вторая сторона: плательщик у поступления, получатель у списания; «ИНН 7701234567 ООО …» в имени отрезается.

Сопоставление ​

НаправлениеСторона по ИННДокументы
Поступлениекомпания (companies.inn, действующая раньше)неоплаченные счета из реестра документов (RegistryRepository, пресет unpaid)
Списаниепоставщик (suppliers.inn)документы поставщика в статусе approved / partially_paid с остатком (сумма минус проведённые платежи)

Уверенность (confidence):

  • sure — номер документа есть в назначении платежа («по счёту № 69», «сч. 69», «N 69»), сумма не больше остатка;
  • likely — номера нет, но ровно один документ с остатком, равным сумме;
  • candidates — номер есть, но сумма больше остатка, или подходящих документов несколько: до пяти кандидатов, свежие первыми; у компании без неоплаченных счетов — пустой список (аванс);
  • none — контрагента с таким ИНН нет.

Счёт закрытого, потерянного или отменённого проекта помечается project_closed и не предлагается ни по номеру, ни по сумме: документы закрытого проекта не меняются, оплату на такой счёт сервер не разнесёт. Если номер в назначении указывает на такой счёт, строка — candidates с объяснением: провести без счёта (аванс) или открыть проект.

duplicate_of — неотменённый платёж с тем же счётом RMS (account_id), датой, суммой и направлением: строка уже внесена.

Проведение ​

Эндпоинт ничего не сохраняет. Фронт создаёт платежи обычным POST /payments по отмеченным строкам, статус «Проведён»:

  • поступление — контрагент «компания», разнесение на выбранный счёт на сумму не больше остатка (остаток платежа — аванс), счёт переходит в «Оплачен» / «Оплачен частично» через разнесения;
  • списание — по документу поставщика (supplier_document_id), сумма не больше остатка. Списание без документа (налоги, комиссии, зарплата) не проводится из выписки: у исходящего платежа обязательное основание расхода, его вносят вручную.

Неизвестного плательщика или получателя создают прямо в строке — «Создать компанию» / «Создать поставщика» (быстрое создание по ИНН, см. «создать на лету»).

Права ​

Разбор выписки — тем, кто ведёт платежи (accountingManageMW: accounting.manage / запись затрат). Кнопка «Выписка банка» — у финансового контура (accounts_manage).

Ошибки ​

КодКогда
bank_statement_formatне файл «1С — Клиент банка»
bank_statement_too_largeбольше 5 МБ
bank_statement_emptyв выписке нет операций

Загружаем документацию…