From 2f3f3087dbcd6bbe35a2444e6fc8ef0b3e0d7af7 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Fri, 9 Oct 2026 12:56:25 +0400 Subject: [PATCH] =?UTF-8?q?openspec:=20=D0=B0=D1=80=D1=85=D0=B8=D0=B2=20st?= =?UTF-8?q?atement-template-lines=20(#19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Спека document-review-ui обновлена дельтой change'а; change перенесён в openspec/changes/archive/2026-10-09-statement-template-lines/. Реализация — PR #20. Co-Authored-By: Claude Opus 5.5 --- .../.openspec.yaml | 0 .../design.md | 0 .../proposal.md | 0 .../specs/document-review-ui/spec.md | 0 openspec/specs/document-review-ui/spec.md | 26 ++++++++++++++----- 5 files changed, 19 insertions(+), 7 deletions(-) rename openspec/changes/{statement-template-lines => archive/2026-10-09-statement-template-lines}/.openspec.yaml (100%) rename openspec/changes/{statement-template-lines => archive/2026-10-09-statement-template-lines}/design.md (100%) rename openspec/changes/{statement-template-lines => archive/2026-10-09-statement-template-lines}/proposal.md (100%) rename openspec/changes/{statement-template-lines => archive/2026-10-09-statement-template-lines}/specs/document-review-ui/spec.md (100%) diff --git a/openspec/changes/statement-template-lines/.openspec.yaml b/openspec/changes/archive/2026-10-09-statement-template-lines/.openspec.yaml similarity index 100% rename from openspec/changes/statement-template-lines/.openspec.yaml rename to openspec/changes/archive/2026-10-09-statement-template-lines/.openspec.yaml diff --git a/openspec/changes/statement-template-lines/design.md b/openspec/changes/archive/2026-10-09-statement-template-lines/design.md similarity index 100% rename from openspec/changes/statement-template-lines/design.md rename to openspec/changes/archive/2026-10-09-statement-template-lines/design.md diff --git a/openspec/changes/statement-template-lines/proposal.md b/openspec/changes/archive/2026-10-09-statement-template-lines/proposal.md similarity index 100% rename from openspec/changes/statement-template-lines/proposal.md rename to openspec/changes/archive/2026-10-09-statement-template-lines/proposal.md diff --git a/openspec/changes/statement-template-lines/specs/document-review-ui/spec.md b/openspec/changes/archive/2026-10-09-statement-template-lines/specs/document-review-ui/spec.md similarity index 100% rename from openspec/changes/statement-template-lines/specs/document-review-ui/spec.md rename to openspec/changes/archive/2026-10-09-statement-template-lines/specs/document-review-ui/spec.md diff --git a/openspec/specs/document-review-ui/spec.md b/openspec/specs/document-review-ui/spec.md index 5eeae4c..4191a47 100644 --- a/openspec/specs/document-review-ui/spec.md +++ b/openspec/specs/document-review-ui/spec.md @@ -25,18 +25,30 @@ ### Requirement: Форма ББ/ОФР — просмотр и правка Экран SHALL показывать `GET /documents/{id}/statement`: шапку (ИНН, дата отчёта, единицы — значение и исходное при -правке; наименование, ОКУД/ОКПО) и таблицу «строка (код, наименование) × колонки» с суммами из `values[]`. Ячейки с -`confidence < 100` или `is_recognized = false` SHALL подсвечиваться как «требует внимания», с `is_modified = true` — как -«исправлено» с исходным значением `original_amount` в подсказке. Единицы (`header.units`) SHALL выводиться над таблицей. -Пока документ не `CONFIRMED`, ячейка SHALL быть редактируемой: ввод проверяется по формату суммы (до 2 знаков после -точки, знак минус допустим, пустое — `null`), сохранение отправляет `PATCH /documents/{id}/statement {values: -[{line_id, column_id, amount}]}` суммой-строкой, ответ заменяет состояние экрана. Правка шапки (ИНН, дата отчёта, -единицы) SHALL отправляться тем же `PATCH` в `header`; `inn: null` не отправляется. +правке; наименование, ОКУД/ОКПО) и таблицу «строка (код, наименование) × колонки» с суммами из `values[]`, включая +строки и ячейки, достроенные сервером по справочнику редакции (`id = null`). Ячейки с `confidence < 100` или +`is_recognized = false` SHALL подсвечиваться как «требует внимания», с `is_modified = true` — как «исправлено» с +исходным значением `original_amount` в подсказке; пустая достроенная ячейка не подсвечивается. Строки «БАЛАНС» формы +`BALANCE` (коды 1600 и 1700) SHALL выделяться фоном `#f9f0ff` и жирным шрифтом; подсветка ячейки перекрывает фон строки. +Единицы (`header.units`) SHALL выводиться над таблицей. Пока документ не `CONFIRMED`, ячейка SHALL быть редактируемой: +ввод проверяется по формату суммы (до 2 знаков после точки, знак минус допустим, пустое — `null`), сохранение +отправляет `PATCH /documents/{id}/statement {values: [...]}` суммой-строкой: ячейка строки из БД — `{line_id, +column_id, amount}`, ячейка достроенной строки (`id = null`) — `{line_code, column_id, amount}`; ответ заменяет +состояние экрана. Правка шапки (ИНН, дата отчёта, единицы) SHALL отправляться тем же `PATCH` в `header`; +`inn: null` не отправляется. #### Scenario: Исправление ячейки - **WHEN** аналитик меняет значение ячейки и сохраняет - **THEN** ячейка помечена «исправлено», проверки пересчитаны по ответу сервера, акцепт снят +#### Scenario: Заполнение строки, которой не было в распознавании +- **WHEN** у формы нет строки 1700 из источника, аналитик вводит сумму в достроенную строку 1700 и сохраняет +- **THEN** уходит `{line_code: "1700", column_id, amount}`, по ответу строка получила `id`, ячейка помечена «исправлено» + +#### Scenario: Строки «БАЛАНС» +- **WHEN** открыта форма `BALANCE` +- **THEN** строки 1600 и 1700 выделены цветом и жирным, у ОФР выделения нет + #### Scenario: Неверный формат суммы - **WHEN** аналитик вводит «12,3,4» - **THEN** запрос не отправляется, поле показывает ошибку формата