ОСВ других учётных систем: названия, запасной признак, группы, «ВСЕГО» (AURORA-1717, 1719, 1732) #82

Merged
aep merged 10 commits from feat/81-osv-other-systems into main 2026-10-28 20:28:53 +03:00
Owner

Closes #81. Jira: AURORA-1717, AURORA-1719, AURORA-1732.

ОСВ других учётных систем и отчётов 1С с другим названием теперь распознаются как ОСВ.

Что сделано

  • Названия ведомостей (sheet_markers, с начала ячейки): «Оборотная ведомость», «ОСВ по сч.» / «ОСВ по ДЗ по сч.», «Оборотный баланс», «Фин. Обороты Листок» (Navision), «Отчет по Главной книге» (SAP).
  • Запасной признак detect.has_osv_table: лист, который не опознан ни как ОСВ по названию, ни как форма/продолжение, — ОСВ, если строка групп, которую возьмёт разбор (в первых 30 строках), содержит все три группы, у каждой «Дебет» и «Кредит» стоят рядом (без колонок между ними), сальдо не свёрнуто. Проверяется раньше слабого продолжения формы.
  • Группы и стороны: «Остаток на начало/конец», «Остаток по дебету на начало», «Сальдо начальное/конечное», «Сальдо вх/исх», «НачалоДт/ОборотДт/КонецКт», сторона в ячейке группы — «Оборот по дебету», вплотную «…ДТВВ».
  • Итог «ВСЕГО» (total_row_exact).
  • Контрольный набор синтетики s48–s57: позитивы (точные суммы по сторонам) и негативы (почти-ОСВ: перечень документов, «Оборотный капитал», 1С «Обороты счета», расшифровка с остатками, без «начала», свёрнутое начало, шапка ниже 30-й строки, преамбула над шапкой, форма со словами «оборотная ведомость»). На базе позитивы падали, негативы проходили. Мутации каждого ограничения запасного признака и снятие якоря ^ ловит свой негатив.

Спека: openspec/changes/osv-other-systems/. Правило: arm-ka-docs, 05-domain-rules.md §1.0 (PR в docs из той же ветки). Fixtures: синтетика и golden — PR в arm-ka-fixtures из той же ветки (сливать первым).

Регрессия по банку первички (2152 файла)

Было Стало Файлов
ошибка INVALID_DOCUMENT ОСВ «Готово» 44
ошибка INVALID_DOCUMENT ОСВ «Требует проверки» 46
ошибка INVALID_DOCUMENT ошибка INVALID_FORMAT (лист узнан, дальше 1720–1723) 40
ошибка INVALID_FORMAT ОСВ «Готово» 16
ошибка INVALID_FORMAT ОСВ «Требует проверки» 20
ложное «Готово» расшифровки (1718) ОСВ «Требует проверки» 4
ложное «Готово» расшифровки (1718) ошибка иерархии (1721) 2

Ни один лист формы или прочий лист книги с формами не стал ОСВ. Ухудшения — только два файла «Сводная ОСВ … (забаланс)» (R-14).

Проверки

  • make check-full: 3181 passed + 10 integration, statements-check 0 (arm-statements 25b2bb8), образ собран; после исправления ревью I-1 make check — 3183 passed, регрессия банка без изменений.
  • tests/fixtures/test_osv_dkb.py: 29 passed. Golden: относительно main fixtures только добавлены 10 снимков s48–s57.

Rulings I made

  • R-1 — 1С «Обороты счета» вне объёма: 1 файл остаётся ошибкой.
  • R-2 — запасной признак смотрит первые 30 строк: безымянный лист с длинной преамбулой не распознаётся.
  • R-3 — свёрнутое сальдо запасного признака не даёт.
  • R-4 — AURORA-1722 («Дт оборот», SAP) не входит: файлы Виолы остаются с ошибкой.
  • R-5 — новые названия только с начала ячейки.
  • R-6 — запасной признак проверяет ту же строку групп, что возьмёт разбор (уточнено по ревью I-1): безымянная ОСВ с преамбулой «Обороты: …» не распознаётся.
  • R-7 — порядок PR: fixtures → tabular-parser → docs.
  • R-8 — приёмка: синтетика + check-full + нет ухудшений; число исправленных файлов — отчёт.
  • R-9 — «Остаток по дебету/кредиту на начало/конец» добавлено: лишняя запись, если не нужно.
  • R-10 — в синтетике SAP обороты «Оборот Дт/Кт», не реальное «Дт оборот» (1722).
  • R-11 — между Дт и Кт группы нет других подписей (иначе «Обороты счета» — ОСВ): ОСВ с колонкой между сторонами не распознаётся.
  • R-12 — запасной признак раньше слабого продолжения формы: лист-продолжение с полной таблицей ОСВ отделится от формы.
  • R-13 — «ОСВ …» сужено до «ОСВ по (… по) сч»: регрессия нашла перечень документов шаблона банка «ОСВ за квартал по счетам …» (86 книг падали).
  • R-14 — 2 файла «Сводная ОСВ (забаланс)»: ложное «Готово» → ошибка иерархии (1721); принято как честная ошибка вместо фальшивого успеха.

Deferred

  • I-2 — ошибка листа ОСВ роняет всю книгу вместе с формами (было и до ветки; меняет статус книги в контракте — решение владельца).
  • M-1 — «ВСЕГО» в точных итогах может обрезать таблицу на корневой строке «Всего» выше «Итого».
  • M-2 — правило «Дт и Кт рядом» не ловит корр. счета под слитым «Дебет» (теоретически).
  • M-3 — то же правило отсекает SAP-раскладку «все Дт, потом все Кт» в запасном признаке.
  • M-4 — формулировка спеки про сторону без границы слова строже кода (подзаголовок «ДТВВ»).
  • M-5 — classify_sheet (только тесты) не знает о слабом продолжении.
  • M-6 — к��мментарий к ^оборот(ы)?(?=\s*(дт|кт)): почему без \b.

Остаток файлов списков 1717/1719 держат AURORA-1720, 1721, 1722, 1723, 1730, 1731; 4 безымянные ведомости 009 — вторая половина AURORA-1718 (пакет, ждёт 1677).

🤖 Generated with Claude Code

Closes #81. Jira: AURORA-1717, AURORA-1719, AURORA-1732. ОСВ других учётных систем и отчётов 1С с другим названием теперь распознаются как ОСВ. ## Что сделано - **Названия ведомостей** (`sheet_markers`, с начала ячейки): «Оборотная ведомость», «ОСВ по сч.» / «ОСВ по ДЗ по сч.», «Оборотный баланс», «Фин. Обороты Листок» (Navision), «Отчет по Главной книге» (SAP). - **Запасной признак** `detect.has_osv_table`: лист, который не опознан ни как ОСВ по названию, ни как форма/продолжение, — ОСВ, если строка групп, которую возьмёт разбор (в первых 30 строках), содержит все три группы, у каждой «Дебет» и «Кредит» стоят рядом (без колонок между ними), сальдо не свёрнуто. Проверяется раньше слабого продолжения формы. - **Группы и стороны**: «Остаток на начало/конец», «Остаток по дебету на начало», «Сальдо начальное/конечное», «Сальдо вх/исх», «НачалоДт/ОборотДт/КонецКт», сторона в ячейке группы — «Оборот по дебету», вплотную «…ДТВВ». - **Итог «ВСЕГО»** (`total_row_exact`). - **Контрольный набор синтетики** s48–s57: позитивы (точные суммы по сторонам) и негативы (почти-ОСВ: перечень документов, «Оборотный капитал», 1С «Обороты счета», расшифровка с остатками, без «начала», свёрнутое начало, шапка ниже 30-й строки, преамбула над шапкой, форма со словами «оборотная ведомость»). На базе позитивы падали, негативы проходили. Мутации каждого ограничения запасного признака и снятие якоря `^` ловит свой негатив. Спека: `openspec/changes/osv-other-systems/`. Правило: arm-ka-docs, `05-domain-rules.md` §1.0 (PR в docs из той же ветки). Fixtures: синтетика и golden — PR в arm-ka-fixtures из той же ветки (**сливать первым**). ## Регрессия по банку первички (2152 файла) | Было | Стало | Файлов | |---|---|---| | ошибка INVALID_DOCUMENT | ОСВ «Готово» | 44 | | ошибка INVALID_DOCUMENT | ОСВ «Требует проверки» | 46 | | ошибка INVALID_DOCUMENT | ошибка INVALID_FORMAT (лист узнан, дальше 1720–1723) | 40 | | ошибка INVALID_FORMAT | ОСВ «Готово» | 16 | | ошибка INVALID_FORMAT | ОСВ «Требует проверки» | 20 | | ложное «Готово» расшифровки (1718) | ОСВ «Требует проверки» | 4 | | ложное «Готово» расшифровки (1718) | ошибка иерархии (1721) | 2 | Ни один лист формы или прочий лист книги с формами не стал ОСВ. Ухудшения — только два файла «Сводная ОСВ … (забаланс)» (R-14). ## Проверки - `make check-full`: 3181 passed + 10 integration, `statements-check` 0 (arm-statements 25b2bb8), образ собран; после исправления ревью I-1 `make check` — 3183 passed, регрессия банка без изменений. - `tests/fixtures/test_osv_dkb.py`: 29 passed. Golden: относительно main fixtures только добавлены 10 снимков s48–s57. ## Rulings I made - R-1 — 1С «Обороты счета» вне объёма: 1 файл остаётся ошибкой. - R-2 — запасной признак смотрит первые 30 строк: безымянный лист с длинной преамбулой не распознаётся. - R-3 — свёрнутое сальдо запасного признака не даёт. - R-4 — AURORA-1722 («Дт оборот», SAP) не входит: файлы Виолы остаются с ошибкой. - R-5 — новые названия только с начала ячейки. - R-6 — запасной признак проверяет ту же строку групп, что возьмёт разбор (уточнено по ревью I-1): безымянная ОСВ с преамбулой «Обороты: …» не распознаётся. - R-7 — порядок PR: fixtures → tabular-parser → docs. - R-8 — приёмка: синтетика + check-full + нет ухудшений; число исправленных файлов — отчёт. - R-9 — «Остаток по дебету/кредиту на начало/конец» добавлено: лишняя запись, если не нужно. - R-10 — в синтетике SAP обороты «Оборот Дт/Кт», не реальное «Дт оборот» (1722). - R-11 — между Дт и Кт группы нет других подписей (иначе «Обороты счета» — ОСВ): ОСВ с колонкой между сторонами не распознаётся. - R-12 — запасной признак раньше слабого продолжения формы: лист-продолжение с полной таблицей ОСВ отделится от формы. - R-13 — «ОСВ …» сужено до «ОСВ по (… по) сч»: регрессия нашла перечень документов шаблона банка «ОСВ за квартал по счетам …» (86 книг падали). - R-14 — 2 файла «Сводная ОСВ (забаланс)»: ложное «Готово» → ошибка иерархии (1721); принято как честная ошибка вместо фальшивого успеха. ## Deferred - I-2 — ошибка листа ОСВ роняет всю книгу вместе с формами (было и до ветки; меняет статус книги в контракте — решение владельца). - M-1 — «ВСЕГО» в точных итогах может обрезать таблицу на корневой строке «Всего» выше «Итого». - M-2 — правило «Дт и Кт рядом» не ловит корр. счета под слитым «Дебет» (теоретически). - M-3 — то же правило отсекает SAP-раскладку «все Дт, потом все Кт» в запасном признаке. - M-4 — формулировка спеки про сторону без границы слова строже кода (подзаголовок «ДТВВ»). - M-5 — `classify_sheet` (только тесты) не знает о слабом продолжении. - M-6 — к��мментарий к `^оборот(ы)?(?=\s*(дт|кт))`: почему без `\b`. Остаток файлов списков 1717/1719 держат AURORA-1720, 1721, 1722, 1723, 1730, 1731; 4 безымянные ведомости 009 — вторая половина AURORA-1718 (пакет, ждёт 1677). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 10 commits 2026-10-28 20:25:51 +03:00
AURORA-1717, AURORA-1719, AURORA-1732.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Генератор: название ведомости, безымянный лист, группы со стороной в ячейке, подпись итога.
Позитивы s48–s54 (xfail до словарей и запасного признака), негативы s55–s57.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AURORA-1717 (названия), AURORA-1719 (остатки, «по дебету», «Сальдо вх/исх», «ДТВВ»), AURORA-1732 («ВСЕГО»).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Лист без названия ведомости, не опознанный как форма, — ОСВ, если в первых 30 строках полный заголовок:
три группы, у каждой Дт и Кт рядом. Проверяется раньше слабого продолжения формы (R-12).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Регрессия банка первички: «ОСВ за квартал по счетам …» на листе «Входные данные_ИП» роняла книги расшифровок.
Негатив s55 дополнен листом-перечнем.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Преамбула «Обороты: …» над шапкой давала ОСВ, разбор листа падал и ронял книгу. Негатив s56 «Преамбула».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep merged commit 56af97cdb9 into main 2026-10-28 20:28:53 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-tabular-parser#82
No description provided.