From fd83a6cac2b4854bc09a82675e4f850bbcfdd9a5 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Mon, 5 Oct 2026 15:20:55 +0400 Subject: [PATCH] =?UTF-8?q?osv/synthetic:=20s14=E2=80=93s16=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=81=D0=BB=D0=BE=D0=B2=D0=B0=D1=80=D0=B5=D0=B9=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D1=81=D0=B5=D1=80=D0=B0=20(=D0=A1=D1=80=D0=B5=D0=B7=202a?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Формы ББ/ОФР по одному признаку, названия групп сумм (входящее/начальное/конечное/исходящее сальдо), шапка без организации, период «2024», пояснение к валюте, метки группировок отдельными строками, «Детализация: …» и группировки OTHER. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2 --- README.md | 2 +- osv/synthetic/README.md | 6 ++++++ osv/synthetic/s14_statement_forms.xlsx | Bin 0 -> 7568 bytes osv/synthetic/s15_group_title_synonyms.xlsx | Bin 0 -> 6932 bytes osv/synthetic/s16_header_synonyms.xlsx | Bin 0 -> 6919 bytes 5 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 osv/synthetic/s14_statement_forms.xlsx create mode 100644 osv/synthetic/s15_group_title_synonyms.xlsx create mode 100644 osv/synthetic/s16_header_synonyms.xlsx diff --git a/README.md b/README.md index 2f6eadb..42c2dc3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ``` osv/{rb,schastl}/<ГГГГ-Qn | ГГГГ-FY>/ ОСВ по счетам, исходные имена файлов (разложены по шапке, не по имени) -osv/synthetic/ синтетика s01–s13 для форматов, которых нет в реальных данных (Срез 2a); генератор и описание — osv/synthetic/README.md +osv/synthetic/ синтетика s01–s16 для форматов, которых нет в реальных данных (Срез 2a); генератор и описание — osv/synthetic/README.md statements/{rb,schastl}/ ББ/ОФР в PDF (машиночитаемые и сканы) statements-xlsx/ ББ/ОФР в Excel — запросить у аналитиков (пока пусто) ocr/ пары «вход → выход» ИС Сканирование: aep_N.pdf + aep_N.json diff --git a/osv/synthetic/README.md b/osv/synthetic/README.md index efef4b4..69ecdf3 100644 --- a/osv/synthetic/README.md +++ b/osv/synthetic/README.md @@ -38,6 +38,12 @@ cd tabular-parser/api | `s11_header_repeat.xlsx` | заголовок таблицы повторяется внутри данных (печать по страницам); период «12 месяцев 2025 г.» | строки заголовка пропущены, дерево и суммы не нарушены | | `s12_statement_and_osv.xlsx` | лист ББ («Бухгалтерский баланс», 0710001) и лист «ОСВ 60»; данные «НУ», период «январь - сентябрь 2025 г.» | один документ, предупреждение «skipped: statement» | | `s13_no_outline_indent.xlsb` | та же ведомость, что `s02`, в формате xlsb; отступ — ведущими пробелами текста | результат равен `s02` кроме предупреждения «xlsb: outline level недоступен» | +| `s14_statement_forms.xlsx` | три листа форм, каждый опознаётся одним признаком: «Форма по ОКУД 0710001», «Отчет о финансовых результатах», «Форма по ОКУД 0710002»; лист «ОСВ 60» | один документ, три предупреждения «skipped: statement» | +| `s15_group_title_synonyms.xlsx` | названия групп сумм: лист «ОСВ 60» — «Входящее сальдо»/«Конечное сальдо», лист «ОСВ 62» — «Начальное сальдо»/«Исходящее сальдо» | два документа, все шесть колонок сумм найдены, `done` | +| `s16_header_synonyms.xlsx` | лист «ОСВ 60»: нет названия организации, период «2024», валюта «RUB (код 643)», «Счет» и «Контрагенты» отдельными строками под «Дебет/Кредит»; лист «ОСВ 62» (вариант 2): «Детализация по субсчетам: Номенклатура, Статьи затрат, Нематериальные активы, Валюта» | `organization_name=""` + предупреждение, `Q4`/2024, `currency=RUB`, схема листа 62 — `ACCOUNT` + четыре `OTHER` | + +`s14`–`s16` добавлены тестом покрытия словарей `tabular-parser` (`rules/*.yaml`, решение R-22): каждая запись словаря +должна сработать на реальных или синтетических файлах; эти файлы закрывают записи, которых нет в реальных ОСВ. ## О файле xlsb diff --git a/osv/synthetic/s14_statement_forms.xlsx b/osv/synthetic/s14_statement_forms.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c0902feaa7a555be9aa21de27d0383a3a5edd8b4 GIT binary patch literal 7568 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 XP{u$G-v9ty1!OiD4(# literal 0 HcmV?d00001 diff --git a/osv/synthetic/s15_group_title_synonyms.xlsx b/osv/synthetic/s15_group_title_synonyms.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3e9ed1f340755647a8830e24ebc5c0c5ef49111d GIT binary patch literal 6932 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 literal 0 HcmV?d00001 diff --git a/osv/synthetic/s16_header_synonyms.xlsx b/osv/synthetic/s16_header_synonyms.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ff9f1f4e7c1b36a6cfc0363e5caaef2fcc41f007 GIT binary patch literal 6919 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