Andrey Epifancev 9e89b9fde7 feat(review): шаблонные строки ББ/ОФР и выделение строк «БАЛАНС» (#19)
Фронт к RSHB/arm-core#80. Строки и ячейки с id = null (достроены сервером)
редактируются; правка уходит в PATCH по line_code, строки из БД — по line_id.
Ключ достроенной строки code-<код> (R-10). Строки 1600/1700 формы BALANCE
выделены фоном #f9f0ff и жирным (R-7). OpenSpec change statement-template-lines.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 12:18:44 +04:00

3.2 KiB
Raw Blame History

MODIFIED Requirements

Requirement: Форма ББ/ОФР — просмотр и правка

Экран SHALL показывать GET /documents/{id}/statement: шапку (ИНН, дата отчёта, единицы — значение и исходное при правке; наименование, ОКУД/ОКПО) и таблицу «строка (код, наименование) × колонки» с суммами из 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 запрос не отправляется, поле показывает ошибку формата