Нормализатор: строка ИС с несколькими кодами в ячейке («1500\n1700») — разлеплять, а не пропускать #16

Closed
opened 2026-10-08 11:49:17 +03:00 by aep · 1 comment
Owner

Проблема

На ответах настоящей ИС по ББ РБ и Счастливочной за 1 кв. 2025 (fixtures/ocr/Бухгалтерская отчетность 1 кв.25.json, БО 1 кв 2025.json) ИС склеила две последние строки баланса в одну:

0: «Итого по разделу V\n\nБАЛАНС» | 1: «1500\n1700» | 2: «917 775\n2 371 333» | 4: «783 941\n2 096 754» | 5: «746 404\n1 818 018»

Нормализатор пропускает строку как «строк с нечисловым кодом пропущено», и в документе BALANCE нет 1500 и 1700 у обеих компаний → на экране [41] не сходятся проверки с 1500/1700, добавить строку в UI нельзя.

Решение владельца 08.10.2026 (правило — 05-domain-rules.md §11, OQ в 07-open-questions.md)

Ячейка кода с несколькими кодами, разделёнными переводом строки, при том же числе значений (через перевод строки) в каждой непустой ячейке сумм → столько же строк, i-й код ↔ i-е значения; наименование — по непустым частям, если их столько же, иначе общее. Число частей не сходится — строка пропускается, как сейчас, с предупреждением.

Что сделать (bounded)

  • TDD: юнит-тест на разлепление и на несходящееся число частей.
  • Предупреждение о разлеплённой строке (видно в metrics.warnings).
  • Пересобрать эталоны fixtures/ocr/expected_normalize (отдельный PR в arm-ka-fixtures).
## Проблема На ответах настоящей ИС по ББ РБ и Счастливочной за 1 кв. 2025 (`fixtures/ocr/Бухгалтерская отчетность 1 кв.25.json`, `БО 1 кв 2025.json`) ИС склеила две последние строки баланса в одну: ``` 0: «Итого по разделу V\n\nБАЛАНС» | 1: «1500\n1700» | 2: «917 775\n2 371 333» | 4: «783 941\n2 096 754» | 5: «746 404\n1 818 018» ``` Нормализатор пропускает строку как «строк с нечисловым кодом пропущено», и в документе BALANCE нет 1500 и 1700 у обеих компаний → на экране [41] не сходятся проверки с 1500/1700, добавить строку в UI нельзя. ## Решение владельца 08.10.2026 (правило — `05-domain-rules.md` §11, OQ в `07-open-questions.md`) Ячейка кода с несколькими кодами, разделёнными переводом строки, при том же числе значений (через перевод строки) в каждой непустой ячейке сумм → столько же строк, i-й код ↔ i-е значения; наименование — по непустым частям, если их столько же, иначе общее. Число частей не сходится — строка пропускается, как сейчас, с предупреждением. ## Что сделать (bounded) - TDD: юнит-тест на разлепление и на несходящееся число частей. - Предупреждение о разлеплённой строке (видно в metrics.warnings). - Пересобрать эталоны `fixtures/ocr/expected_normalize` (отдельный PR в arm-ka-fixtures).
aep closed this issue 2026-10-08 13:54:43 +03:00
Author
Owner

Закрыто: код — PR #17, эталоны — RSHB/arm-ka-fixtures#17, правило §11.1 п. 4 и OQ-156 — RSHB/arm-ka-docs#70. Проверено на чистом стенде (комментарий в PR #17). Попутные находки — в follow-up.

Закрыто: код — PR #17, эталоны — RSHB/arm-ka-fixtures#17, правило §11.1 п. 4 и OQ-156 — RSHB/arm-ka-docs#70. Проверено на чистом стенде (комментарий в PR #17). Попутные находки — в follow-up.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-scan-gateway#16
No description provided.