diff --git a/api/rules/osv_headers.yaml b/api/rules/osv_headers.yaml index a0ac2a7..27648d3 100644 --- a/api/rules/osv_headers.yaml +++ b/api/rules/osv_headers.yaml @@ -12,7 +12,8 @@ sheet_markers: - 'оборотно\s*сальдовая\s+ведомость' - '^оборотн\w*\s+ведомост' # «Оборотная ведомость по счетам …» (выгрузки КТЗ) - - '^осв\b' # «ОСВ по сч. 41 за 3 кв.» (КТЗ) + # «ОСВ по сч. 41 за 3 кв.», «ОСВ по ДЗ по сч. 62.01» (КТЗ); не «ОСВ за квартал по счетам …» в перечне документов + - '^осв\s+по\s+(\w+\s+по\s+)?сч\b' - '^оборотн\w*\s+баланс' # «Оборотный баланс» (КТЗ) - '^фин\.?\s*обороты' # «Фин. Обороты Листок» (Navision, Айсберри) - '^отчет\s+по\s+главной\s+книге' # SAP, ООО «Виола» diff --git a/api/tests/synthetic/generate.py b/api/tests/synthetic/generate.py index acf2361..327c886 100644 --- a/api/tests/synthetic/generate.py +++ b/api/tests/synthetic/generate.py @@ -1286,8 +1286,9 @@ def _s54() -> list[SheetSpec]: def _s55() -> list[SheetSpec]: - """Негатив: названия, похожие на ведомость, но не ведомость (не с начала ячейки, «Оборотный капитал»), и отчёт 1С - «Обороты счета» с колонками корр. счетов между «Оборот Дт» и «Оборот Кт» (R-1) — все три листа прочие.""" + """Негатив: названия, похожие на ведомость, но не ведомость (не с начала ячейки, «ОСВ за квартал по счетам …» в + перечне документов шаблона банка, «Оборотный капитал»), и отчёт 1С «Обороты счета» с колонками корр. счетов между + «Оборот Дт» и «Оборот Кт» (R-1) — все листы прочие.""" return [ build_osv(OsvSpec(inn_col=5, first_sum_col=7), base_tree(), "ОСВ 60"), table_sheet( @@ -1299,6 +1300,15 @@ def _s55() -> list[SheetSpec]: ["Выручка", D("100000.00")], ], ), + table_sheet( + "Входные данные", + [ + ["Перечень документов к заявке"], + ["№", "Документ", "Срок"], + [1, "Расшифровка дебиторской задолженности", "ежеквартально"], + [2, "ОСВ за квартал по счетам бухгалтерского учета 02, 58, 60, 62, 66, 67, 76", "ежеквартально"], + ], + ), table_sheet( "Капитал", [ diff --git a/api/tests/synthetic/test_synthetic_files.py b/api/tests/synthetic/test_synthetic_files.py index 7afe5ed..2dd4ed3 100644 --- a/api/tests/synthetic/test_synthetic_files.py +++ b/api/tests/synthetic/test_synthetic_files.py @@ -941,7 +941,12 @@ def test_neg_s55_titles_like_osv_are_other(fixtures_dir: Path) -> None: «Оборот Кт» (R-1, R-11) — прочие листы; ОСВ одна.""" outcome = parse_named(fixtures_dir, S55) - assert [doc.locator for doc in documents(outcome)] == ["sheet:ОСВ 60"] + # «Входные данные» (перечень документов шаблона банка, R-13) пакет форм относит к расшифровке — как реальный лист + # «Входные данные_ИП» на базе; главное — не ОСВ и книга не падает + assert [(d.document_type, d.locator) for d in outcome.documents] == [ + ("OSV", "sheet:ОСВ 60"), + ("DISCLOSURE", "sheet:Входные данные"), + ] assert sheet_other(outcome) == ["sheet:Справка", "sheet:Капитал", "sheet:Обороты счета"]