docs: уточнены правила числового формата ББ/ОФР, QA-гайд и тестовые данные (#42)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c4c15bdfe0
commit
20dd0fe06a
@ -1094,8 +1094,12 @@ PDF-пути, решение №1 спеки 3a; `pages:…` — только е
|
|||||||
масштабирующие запятые (`#,##0,` → тысячи, `0,` → тысячи), число знаков после точки (не больше 2 — `numeric(18,2)`),
|
масштабирующие запятые (`#,##0,` → тысячи, `0,` → тысячи), число знаков после точки (не больше 2 — `numeric(18,2)`),
|
||||||
секции и условия (`[=0]"-"`, `[=-646532]"(647)"`); литерал условной секции разбирается как текстовая ячейка (скобки →
|
секции и условия (`[=0]"-"`, `[=-646532]"(647)"`); литерал условной секции разбирается как текстовая ячейка (скобки →
|
||||||
минус, пробелы/NBSP — разделители, «-»/«–»/«—»/пусто → `null`); округление «половина от нуля» (как в Excel); знак — от
|
минус, пробелы/NBSP — разделители, «-»/«–»/«—»/пусто → `null`); округление «половина от нуля» (как в Excel); знак — от
|
||||||
сырого значения. `General`/пустой формат — значение как в ячейке. Формат, который не удалось разобрать (`%`, экспонента,
|
сырого значения (для числовых секций; у секций-литералов значение берётся из литерала). Условия `[=x]` и значение
|
||||||
дробь, даты, `@`), — значение как в ячейке и одно предупреждение на документ с перечнем форматов. xlsb: стили не читаются
|
сравниваются с точностью 15 значащих цифр, как в Excel. Секция выбирается по порядку: при явных условиях ни одна не
|
||||||
|
подошла — формат не разобран, неявные условия у нефинальных секций — по умолчанию по числу секций. `General`/пустой
|
||||||
|
формат — значение как в ячейке. Формат, который не удалось разобрать (`%`, экспонента, дробь, даты, `@`, неизвестные
|
||||||
|
знаки вне кавычек вроде `₽`, больше четырёх секций, условие не по шаблону вроде `[=1E-5]`, литерал не число/пусто/
|
||||||
|
прочерк, результат вне `numeric(18,2)`), — значение как в ячейке и одно предупреждение на документ с перечнем форматов. xlsb: стили не читаются
|
||||||
— значения как в файле и одно предупреждение на документ «формат чисел xlsb не читается: значения как в файле». ОСВ
|
— значения как в файле и одно предупреждение на документ «формат чисел xlsb не читается: значения как в файле». ОСВ
|
||||||
правило не затрагивает. Единицы сверх формата не нормализуются: `header.units` — текст шапки; при «тыс.» и ≥ 10 %
|
правило не затрагивает. Единицы сверх формата не нормализуются: `header.units` — текст шапки; при «тыс.» и ≥ 10 %
|
||||||
отображаемых значений с дробной частью — предупреждение «значений с дробной частью при единице тыс. руб.: N из M»
|
отображаемых значений с дробной частью — предупреждение «значений с дробной частью при единице тыс. руб.: N из M»
|
||||||
|
|||||||
@ -157,7 +157,7 @@ arm-tabular-parser#11, OQ-131…OQ-135. ИНН организаций в шап
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 1С-xls постранично | `unagrande-co/2024-FY/`, `unagrande-group/{2024-FY,2025-Q3}/` | один файл = одна страница формы; на странице 1 титул (организация, ИНН, ОКПО, единица «в тыс. рублей», ОКЕИ, аудитор со **своим** ИНН), на странице 2 только «Форма 0710001 с.2»; пятизначные подстроки (11101…), значения в ячейке — рубли с копейками, в тысячи их переводит числовой формат (`#,##0,`), парсер берёт значение как показывает формат (OQ-138, #42); страниц 1 ББ в пакете нет (только актив) и ОФР Групп 2024 — только стр. 2 |
|
| 1С-xls постранично | `unagrande-co/2024-FY/`, `unagrande-group/{2024-FY,2025-Q3}/` | один файл = одна страница формы; на странице 1 титул (организация, ИНН, ОКПО, единица «в тыс. рублей», ОКЕИ, аудитор со **своим** ИНН), на странице 2 только «Форма 0710001 с.2»; пятизначные подстроки (11101…), значения в ячейке — рубли с копейками, в тысячи их переводит числовой формат (`#,##0,`), парсер берёт значение как показывает формат (OQ-138, #42); страниц 1 ББ в пакете нет (только актив) и ОФР Групп 2024 — только стр. 2 |
|
||||||
| Многолистовая xlsx ФСБУ 4/2023 | `npz/2025-Q3/` | ББ на 5 листах, ОФР на 3 (третий — одна строка 2400, присоединяется как продолжение); заголовок формы после титула; листы 2–5 без заголовка и маркера; строка 1105 «Гудвил», подстроки 12301…, строка без кода с суммами; лист ОФР с одной строкой 2400 (OQ-143) |
|
| Многолистовая xlsx ФСБУ 4/2023 | `npz/2025-Q3/` | ББ на 5 листах, ОФР на 3 (третий — одна строка 2400, присоединяется как продолжение); заголовок формы после титула; листы 2–5 без заголовка и маркера; строка 1105 «Гудвил», подстроки 12301…, строка без кода с суммами; лист ОФР с одной строкой 2400 (OQ-143) |
|
||||||
| `TDSheet` 66н | `mezheninovskaya/2025-Q3/` | вся форма на одном листе, дата тройкой «30 \| 9 \| 2025» числами, двухстрочные заголовки, строка нумерации колонок, значения — тысячи с дробной частью |
|
| `TDSheet` 66н | `mezheninovskaya/2025-Q3/` | вся форма на одном листе, дата тройкой «30 \| 9 \| 2025» числами, двухстрочные заголовки, строка нумерации колонок, значения — тысячи с дробной частью; формат `#,##0` показывает их целыми, парсер берёт показанное (OQ-138, #42) |
|
||||||
| Шаблоны | `templates/` | 66н и ФСБУ 4/2023: коды есть, сумм и шапки нет; заголовок на две строки; в шаблоне ФСБУ «АКТИВ» и код 1110 в одной строке (OQ-142) |
|
| Шаблоны | `templates/` | 66н и ФСБУ 4/2023: коды есть, сумм и шапки нет; заголовок на две строки; в шаблоне ФСБУ «АКТИВ» и код 1110 в одной строке (OQ-142) |
|
||||||
|
|
||||||
**Манифест** `tabular-parser/api/tests/statements_manifest.yaml`: для каждого из 18 файлов — организация, ИНН, документы по
|
**Манифест** `tabular-parser/api/tests/statements_manifest.yaml`: для каждого из 18 файлов — организация, ИНН, документы по
|
||||||
|
|||||||
@ -441,8 +441,10 @@ ENV_FILE=.env.test .venv/bin/python -m src.parser.cli "/путь/к/файлу.x
|
|||||||
дробной частью при единице тыс. руб.: N из M»: значения ББ/ОФР из Excel берутся как показывает числовой формат ячейки, OQ-138, #42; для xlsb — как в файле плюс предупреждение «формат чисел xlsb не читается», для неразобранных форматов — «формат чисел не разобран»), «колонка кодов не найдена»,
|
дробной частью при единице тыс. руб.: N из M»: значения ББ/ОФР из Excel берутся как показывает числовой формат ячейки, OQ-138, #42; для xlsb — как в файле плюс предупреждение «формат чисел xlsb не читается», для неразобранных форматов — «формат чисел не разобран»), «колонка кодов не найдена»,
|
||||||
«страница-продолжение без шапки». Ожидания по реальным файлам — `../tabular-parser/api/tests/statements_manifest.yaml` и
|
«страница-продолжение без шапки». Ожидания по реальным файлам — `../tabular-parser/api/tests/statements_manifest.yaml` и
|
||||||
таблица «файл → статус» в README `tabular-parser`; файлы — `../fixtures/statements-xlsx/` (синтетика `st01…st07`).
|
таблица «файл → статус» в README `tabular-parser`; файлы — `../fixtures/statements-xlsx/` (синтетика `st01…st07`).
|
||||||
Постраничные xls из 1С (страница 2 отдельным файлом, ББ только актив) и формы xlsb в рублях при шапке «тыс. руб.» (формат не читается) дают
|
Постраничные xls из 1С (страница 2 отдельным файлом, ББ только актив) дают `needs_check` — это штатно (OQ-138, OQ-140), не баг.
|
||||||
`needs_check` — это штатно (OQ-138, OQ-140), не баг; `done` ожидается только у форм, где §7 сходится (Межениновская).
|
`done` получают формы, где жёсткие соотношения §7 сходятся: Межениновская, НПЗ, ОФР Унагранде (страница 1); мягкие расхождения
|
||||||
|
(в пределах допуска) статус не меняют. Для xlsb числовой формат не читается (значения как в файле), поэтому при шапке «тыс. руб.»
|
||||||
|
и рублёвых значениях возможно `needs_check` или расхождение в пределах допуска округления — это следствие правила, не баг.
|
||||||
|
|
||||||
**Как делать свои файлы.** Возьмите любую реальную ОСВ и меняйте по одному признаку, после каждого — прогон и чек-лист:
|
**Как делать свои файлы.** Возьмите любую реальную ОСВ и меняйте по одному признаку, после каждого — прогон и чек-лист:
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user