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

Merged
aep merged 43 commits from feat/14-slice-2b-statement-parser into main 2026-10-06 21:38:00 +03:00
2 changed files with 18 additions and 1 deletions
Showing only changes of commit 6a3661c41b - Show all commits

View File

@ -23,7 +23,7 @@ okud:
INCOME:
- '\b0710002\b'
DISCLOSURE:
- '\b0710(?!001|002)'
- '\b07100(0(3|4|5|6|7|8|9)|(1|2|3|4|5|6|7|8|9)\d)\b'
# Маркер страницы-продолжения в 1С-выгрузке: «Форма 0710001 с.2»
continuation:

View File

@ -31,6 +31,23 @@ def test_form_type_by_title_and_okud(rules: Rules) -> None:
assert headers.okud_type("0710001") == "BALANCE"
def test_okud_type_boundaries(rules: Rules) -> None:
"""Граничные случаи для кодов OKUD: диапазон 0710003-0710099 для DISCLOSURE."""
headers = rules.statement_headers
# Нижняя граница диапазона DISCLOSURE
assert headers.okud_type("0710003") == "DISCLOSURE"
# Верхняя граница диапазона DISCLOSURE
assert headers.okud_type("0710099") == "DISCLOSURE"
# Середина диапазона
assert headers.okud_type("0710010") == "DISCLOSURE"
assert headers.okud_type("0710050") == "DISCLOSURE"
# За границами диапазона
assert headers.okud_type("0710000") is None # до диапазона
assert headers.okud_type("07101") is None # неполный код
assert headers.okud_type("07100030") is None # слишком длинный
assert headers.okud_type("0710100") is None # за диапазоном
def test_continuation_marker_and_captions(rules: Rules) -> None:
headers = rules.statement_headers
assert headers.is_continuation("Форма 0710001 с.2")