Andrey Epifancev f5b73d2146 spec: ОСВ других учётных систем — признаки листа, группы, «ВСЕГО» (#81)
AURORA-1717, AURORA-1719, AURORA-1732.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:52:43 +04:00

4.1 KiB
Raw Blame History

Why

Прогон банка первичных документов (AURORA-1706, архивы «ДКБ отчетность» 20.10.2026, 1681 табличная ОСВ) показал, что парсер знает только ведомости 1С с названием «Оборотно-сальдовая ведомость» и написания групп сумм 1С. ОСВ других учётных систем (SAP, Navision, выгрузки КТЗ) и отчёты 1С с другим названием отклоняются целиком:

  • AURORA-1717 — 119 файлов INVALID_DOCUMENT «в книге нет листов ОСВ или форм»: «Оборотная ведомость», «ОСВ по сч.», «Оборотный баланс», «Фин. Обороты Листок» (Navision), «Отчет по Главной книге», листы без названия; ещё 10 файлов «Оборотный баланс» получают ложное «Готово» как расшифровка формы (часть AURORA-1718);
  • AURORA-1719 — 159 файлов INVALID_FORMAT «не найден заголовок таблицы ОСВ»: «Остаток на начало/конец», «Начальное / Конечное сальдо», «Сальдо вх/исх Дт» (SAP), «НачалоДт/КонецКт» (Navision), «Оборот по дебету/кредиту» (группа и сторона в одной ячейке), «Сальдо НачальноеДТВВ» (сторона приклеена к названию);
  • AURORA-1732 — итог листа «ВСЕГО» (ГК КТЗ, сч. 009) не распознаётся как «Итого» («ИТОГ» и «ИТОГ по …» уже добавлены AURORA-1714).

Gitea: RSHB/arm-tabular-parser#81.

What Changes

  • Признаки листа ОСВ (sheet_markers): синонимы названий ведомости других систем и отчётов 1С.
  • Запасной признак листа ОСВ: лист, который не опознан ни как ОСВ по названию, ни как форма ББ/ОФР или её продолжение, считается ОСВ, если в его первых строках найден полный заголовок таблицы ОСВ (три группы сумм, у каждой — Дебет и Кредит). Проверка выполняется последней, только для листов, которые иначе ушли бы в «прочее» (SHEET_OTHER).
  • Синонимы групп сумм (groups.opening, groups.closing) и сторон (debit, credit), включая сторону в одной ячейке с группой («Оборот по дебету», «НачалоДт») и приклеенную к названию группы («НачальноеДТВВ»).
  • Итоговая строка «ВСЕГО» (total_row_exact).
  • Синтетика на каждое новое написание (правило покрытия словарей R-22).
  • 05-domain-rules.md §1.1–§1.2 — правило поиска листа и написания групп (отдельный PR в arm-ka-docs, та же ветка feat/81-osv-other-systems).

Capabilities

Modified Capabilities

  • osv-parsing: признак листа ОСВ — название ведомости или (запасной путь) полный заголовок таблицы; написания групп и сторон других учётных систем.

Impact

  • api/rules/osv_headers.yaml, api/src/parser/detect.py (классификация листа, поиск стороны), синтетика tests/synthetic/generate.py, golden-снимки синтетики (отдельный коммит в fixtures).
  • Контракт результата не меняется. arm-core не меняется.
  • Пакет arm_statements не меняется (не ждёт AURORA-1677).