docs(#122): ревью — Р-44 в design.md, листы-продолжения, подписанный столбец без чисел

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-18 21:27:53 +04:00
parent 222d7e08fc
commit aafa656bc0
3 changed files with 17 additions and 7 deletions

View File

@ -1301,15 +1301,18 @@ file:<имя json>;table:<i>`; документа у такой таблицы
(`error`, колонка); аналитик ставит дату через PATCH (§9.5 п. 9); иначе пропуск. Колонка без даты не мешает периоду (`error`, колонка); аналитик ставит дату через PATCH (§9.5 п. 9); иначе пропуск. Колонка без даты не мешает периоду
формы (эффективная дата), но межформенная проверка и гудвилл «на отчётную дату» по ней не считаются, пока дата не формы (эффективная дата), но межформенная проверка и гудвилл «на отчётную дату» по ней не считаются, пока дата не
проставлена. Уверенность подписи — `label_confidence` (Excel — 100, подписи нет — `null`). проставлена. Уверенность подписи — `label_confidence` (Excel — 100, подписи нет — `null`).
**Числа правее таблицы формы** (решение владельца 18.10.2026, Р-31 плана 4; пример — Межениновская 2025-Q3, ББ, формулы **Числа правее таблицы формы** (решение владельца 18.10.2026, Р-44; ответ на вопрос Р-31 плана 4; пример — Межениновская 2025-Q3, ББ, формулы
аналитика `=M45*5/100` в столбцах U–W над пустой шапкой): если среди колонок значений сегмента есть хотя бы одна с аналитика `=M45*5/100` в столбцах U–W над пустой шапкой): если среди колонок значений сегмента есть хотя бы одна с
подписью периода (дата или относительная подпись бланка), то столбец **без текста подписи**, лежащий правее последней подписью периода (дата или относительная подпись бланка), то столбец **без текста подписи**, лежащий правее последней
такой колонки, колонкой сумм не считается: его числа в значения строк не попадают, `COLUMN_WITHOUT_DATE` нет, такой колонки, колонкой сумм не считается: его числа в значения строк не попадают, `COLUMN_WITHOUT_DATE` нет,
выдаётся одно предупреждение `NUMBERS_OUTSIDE_TABLE` (`info`, документ) с адресами ячеек («числа правее таблицы формы выдаётся одно предупреждение `NUMBERS_OUTSIDE_TABLE` (`info`, документ) с адресами ячеек («числа правее таблицы формы
не учитываются: V45, W57, …»: в тексте первые 10 адресов, дальше «и ещё N»; Excel — `<лист>!<A1>`, OCR — `row:<n>`). не учитываются: V45, W57, …»: в тексте первые 10 адресов, дальше «и ещё N»; Excel — `<лист>!<A1>`, OCR — `row:<n>`).
Адреса собираются по всем сегментам формы в одно предупреждение. На статус документа предупреждение не влияет. Не Адреса собираются по всем сегментам формы в одно предупреждение; у сегмента без подписанных колонок (лист-продолжение
без шапки) столбцы без текста подписи сверх числа колонок документа тоже считаются числами правее таблицы (иначе
`SEGMENT_COLUMNS_MISMATCH`). Подписанный столбец без чисел в строках с кодами (потерянная подпись объединённой ячейки)
границей таблицы не служит. На статус документа предупреждение не влияет. Не
меняется: подписанных колонок нет вовсе; столбец без подписи **между** подписанными — `COLUMN_WITHOUT_DATE`; столбец меняется: подписанных колонок нет вовсе; столбец без подписи **между** подписанными — `COLUMN_WITHOUT_DATE`; столбец
правее с **нечитаемой** подписью (OCR-мусор «| | г») — `COLUMN_WITHOUT_DATE`, как раньше. Правило общее для Excel и правее с **любым текстом подписи**, не разобранным ни как период, ни как исключение (OCR-мусор «| | г», «Проверка»), — `COLUMN_WITHOUT_DATE`, как раньше. Правило общее для Excel и
OCR и живёт в пакете `arm_statements` (шаг 2), не в адаптере хоста. OCR и живёт в пакете `arm_statements` (шаг 2), не в адаптере хоста.
7. **Столбец наименования** — подпись, начинающаяся с «наименование», в строке заголовка; иначе столбец левее кода с 7. **Столбец наименования** — подпись, начинающаяся с «наименование», в строке заголовка; иначе столбец левее кода с
наибольшим числом текстов, кроме «Пояснения» (пустые или ≤ 3 символов); наименование строки — ячейка этого столбца, наибольшим числом текстов, кроме «Пояснения» (пустые или ≤ 3 символов); наименование строки — ячейка этого столбца,

View File

@ -776,7 +776,7 @@ line_name, line_name_confidence, parent_ref, values}`: `line_code` — разо
`07-open-questions.md` (Р-15). Вопрос о сопоставлении файлового наименования со справочным закрыт Р-16: для `07-open-questions.md` (Р-15). Вопрос о сопоставлении файлового наименования со справочным закрыт Р-16: для
неуверенных кодов это условие `RECOGNIZED`, для остальных — только показ справочного имени. неуверенных кодов это условие `RECOGNIZED`, для остальных — только показ справочного имени.
### Решения владельца (Р-1…Р-19 — 17.10.2026, Р-20…Р-43 — 18.10.2026) ### Решения владельца (Р-1…Р-19 — 17.10.2026, Р-20…Р-44 — 18.10.2026)
- **Р-1** (шаг 1, п. 2) — **копия по скрипту.** Платформа не собирает Python-пакеты и не кладёт их в свой Nexus, поэтому - **Р-1** (шаг 1, п. 2) — **копия по скрипту.** Платформа не собирает Python-пакеты и не кладёт их в свой Nexus, поэтому
общий код — dataclass-ы шага 1 (сериализуемые в json), шаги 2–8, словари §7, периодов, заголовков форм, перечни и общий код — dataclass-ы шага 1 (сериализуемые в json), шаги 2–8, словари §7, периодов, заголовков форм, перечни и
@ -913,6 +913,11 @@ line_name, line_name_confidence, parent_ref, values}`: `line_code` — разо
- **Р-31** (план 4 В-2, план 5 Q-3) — если на прогоне реальных файлов (РБ, Счастливочная, НПЗ, Межениновская) форма - **Р-31** (план 4 В-2, план 5 Q-3) — если на прогоне реальных файлов (РБ, Счастливочная, НПЗ, Межениновская) форма
получает `needs_check` по правилу, которое спека считает законным, исполнитель останавливается и поднимает вопрос получает `needs_check` по правилу, которое спека считает законным, исполнитель останавливается и поднимает вопрос
владельцу по конкретному случаю; адаптер под файл не подгоняется. владельцу по конкретному случаю; адаптер под файл не подгоняется.
- **Р-44** (план 4, ответ на Р-31; 18.10.2026) — числа правее таблицы формы не колонки сумм: при наличии колонки с
подписью периода столбец без текста подписи правее последней такой колонки в значения не попадает, вместо
`COLUMN_WITHOUT_DATE` — `NUMBERS_OUTSIDE_TABLE` (`info`, адреса ячеек), статус не меняется (пример — Межениновская
2025-Q3, формулы аналитика в U–W). Уточняет P1-17 (№ 120). Цена ошибки: настоящая колонка сумм с потерянной подписью
будет отброшена с `info`; поэтому подписанный столбец без чисел границей не служит. Единые для Excel и OCR.
- **Р-32** (план 5 Q-1) — успешный json ИС без таблиц даёт `JSON_FAILED`, а не молчаливый пропуск. - **Р-32** (план 5 Q-1) — успешный json ИС без таблиц даёт `JSON_FAILED`, а не молчаливый пропуск.
- **Р-33** (план 5 Q-2) — если все json набора ошибочны, конверт `error` перечисляет `JSON_FAILED` каждого json; код - **Р-33** (план 5 Q-2) — если все json набора ошибочны, конверт `error` перечисляет `JSON_FAILED` каждого json; код
ошибки файла — от первого. ошибки файла — от первого.

View File

@ -317,9 +317,11 @@ tabular-parser и шаблоны `dates.py` scan-gateway; строки `test_dat
текста подписи правее **последней** такой колонки SHALL НЕ считаться колонкой сумм: его числа не попадают в значения текста подписи правее **последней** такой колонки SHALL НЕ считаться колонкой сумм: его числа не попадают в значения
строк, `COLUMN_WITHOUT_DATE` не выдаётся, вместо этого выдаётся одно предупреждение `NUMBERS_OUTSIDE_TABLE` (`info`) с строк, `COLUMN_WITHOUT_DATE` не выдаётся, вместо этого выдаётся одно предупреждение `NUMBERS_OUTSIDE_TABLE` (`info`) с
адресами ячеек, собранными по всем сегментам формы (в тексте — первые 10, дальше «и ещё N»). Предупреждение SHALL НЕ адресами ячеек, собранными по всем сегментам формы (в тексте — первые 10, дальше «и ещё N»). Предупреждение SHALL НЕ
влиять на статус документа. Решение владельца 18.10.2026 (Р-31). Правило общее для Excel и OCR и живёт в пакете. влиять на статус документа. Решение владельца 18.10.2026 (Р-44). Правило общее для Excel и OCR и живёт в пакете.
Без подписанных колонок, а также для столбца без подписи между подписанными и для столбца с нечитаемой подписью У сегмента без подписанных колонок (лист-продолжение без шапки) столбцы без текста подписи сверх числа колонок документа
поведение прежнее (`COLUMN_WITHOUT_DATE`). SHALL считаться числами правее таблицы. Подписанный столбец без чисел в строках с кодами границей таблицы не служит.
Адрес ячейки — `<лист>!<A1>` у Excel и `row:<n>` у OCR. Без подписанных колонок, а также для столбца без подписи между
подписанными и для столбца с любым текстом подписи, не разобранным как период или исключение, поведение прежнее (`COLUMN_WITHOUT_DATE`).
Подтверждение SHALL опираться только на уверенные источники, чтобы неуверенное не подтверждало само себя: для Подтверждение SHALL опираться только на уверенные источники, чтобы неуверенное не подтверждало само себя: для
неуверенной подписи эффективная дата — дата отчёта с уверенностью 100, иначе самая поздняя абсолютная дата колонок с неуверенной подписи эффективная дата — дата отчёта с уверенностью 100, иначе самая поздняя абсолютная дата колонок с