Срез 2b: парсер ББ и ОФР из Excel (§12), контракт v1.2 #14

Closed
opened 2026-10-06 12:14:13 +03:00 by aep · 1 comment
Owner

Второй тип документа tabular-parser: формы ББ (0710001) и ОФР (0710002) из XLS/XLSX/XLSB → statementDocument контракта v1.2, тот же, что у scan-gateway. Правила — docs/context/05-domain-rules.md §12, фикстуры — fixtures/statements-xlsx/** (15 реальных файлов в трёх раскладках: постраничные xls 1С, многолистовая книга ФСБУ 4/2023, TDSheet) и шаблоны 66н/ФСБУ.

Решения владельца 06.10.2026 (brainstorming):

  • объём — только парсер и контракт (маппинг в ядро — Срез 3);
  • страница-продолжение в отдельном файле не склеивается: документ отдаётся с пустой шапкой, needs_check, предупреждение (переход к признаку в контракте — позже);
  • единицы и значения отдаются как есть; расхождение «тыс. руб.» против значений с копейками — предупреждение, OQ для методологов;
  • все строки с кодом, включая пятизначные подстроки «в том числе»; §7 по четырёхзначным, сумма подстрок — мягкая проверка;
  • контракт v1.2: DISCLOSURE в statementDocument.document_type, statementDocument.checks, osvDocument.header.period_start/period_end/is_from_year_start;
  • формы без колонки кодов — needs_check, сопоставление по именам отложено (OQ).

Архитектура: BookParser (книга, классификация листов, раздача конвейерам), OsvParser сужается до листа ОСВ, новый пакет src/parser/statements/, словари rules/statement_*.yaml (включая соотношения §7 как данные). Спека — openspec/changes/slice-2b-statement-parser/. Сквозной change — arm-ka-docs (контракт v1.2, §12, OQ). Golden и синтетика — arm-ka-fixtures. Копии схемы v1.2 — bounded-PR в arm-core и scan-gateway до мержа парсера.

Второй тип документа tabular-parser: формы ББ (0710001) и ОФР (0710002) из XLS/XLSX/XLSB → `statementDocument` контракта v1.2, тот же, что у scan-gateway. Правила — `docs/context/05-domain-rules.md` §12, фикстуры — `fixtures/statements-xlsx/**` (15 реальных файлов в трёх раскладках: постраничные xls 1С, многолистовая книга ФСБУ 4/2023, TDSheet) и шаблоны 66н/ФСБУ. Решения владельца 06.10.2026 (brainstorming): - объём — только парсер и контракт (маппинг в ядро — Срез 3); - страница-продолжение в отдельном файле не склеивается: документ отдаётся с пустой шапкой, `needs_check`, предупреждение (переход к признаку в контракте — позже); - единицы и значения отдаются как есть; расхождение «тыс. руб.» против значений с копейками — предупреждение, OQ для методологов; - все строки с кодом, включая пятизначные подстроки «в том числе»; §7 по четырёхзначным, сумма подстрок — мягкая проверка; - контракт v1.2: `DISCLOSURE` в `statementDocument.document_type`, `statementDocument.checks`, `osvDocument.header.period_start/period_end/is_from_year_start`; - формы без колонки кодов — `needs_check`, сопоставление по именам отложено (OQ). Архитектура: `BookParser` (книга, классификация листов, раздача конвейерам), `OsvParser` сужается до листа ОСВ, новый пакет `src/parser/statements/`, словари `rules/statement_*.yaml` (включая соотношения §7 как данные). Спека — `openspec/changes/slice-2b-statement-parser/`. Сквозной change — arm-ka-docs (контракт v1.2, §12, OQ). Golden и синтетика — arm-ka-fixtures. Копии схемы v1.2 — bounded-PR в arm-core и scan-gateway до мержа парсера.
Author
Owner

Реализовано: PR #16 (merge 1b9296f), fixtures #10, docs #27, копии схемы arm-core #27 (scan-gateway #5 ждёт мержа). Архив change — PR #19. Отложенное — follow-up #20.

Реализовано: PR #16 (merge 1b9296f), fixtures #10, docs #27, копии схемы arm-core #27 (scan-gateway #5 ждёт мержа). Архив change — PR #19. Отложенное — follow-up #20.
aep closed this issue 2026-10-06 21:42:12 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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