AURORA-1900 (возврат 12.11): единицы у всех денежных колонок, комментарии без денежных подписей, НДС шапки плана в Excel как на экране #334

Merged
aep merged 2 commits from feat/333-aurora-1900-units-rework into test 2026-11-12 17:01:49 +03:00
Owner

Closes #333. Доработка AURORA-1900 по возврату тестировщика 12.11.2026 (Jira, комментарий 10035643). Исходный PR — #291.

Дефекты и причины

  1. Не у всех денежных колонок есть единица. В #291 существовавший текст «тыс. руб.» заменили на {unit}, но там, где единицы не было, её не добавили. Таких колонок 964 на экране и столько же пропусков в Excel: договоры, секвестирование, резерв, итоговая смета, закрытие кварталов, платежи, переносы, бронь, факт; «Сумма (без НДС)» формы 4; форма РФ — основные листы и лист «Смета»; свод 2; страница сводов проектов.
  2. У текстовых комментариев денежные подписи. В исходном шаблоне у группы «Комментарий» в кварталах форм 1/4 и на «Структуре» был подзаголовок «Сумма, тыс. руб. (…)».
  3. Подпись НДС в шапке плана в Excel не совпадает с экраном. _vat_placeholders подставлял в {vat_plan} текст подколонок. Ф.1 АХР и Ф.4 АХР/Операц/Структура: на экране «с учётом складского НДС», в Excel «без НДС». Ф.4 КВ: на экране «с учётом НДС», в Excel «без НДС».

Что сделано

  • Экран (кодмод по AST конфигов колонок, 687 заголовков): единица {unit} ставится в самый верхний заголовок группы, где все колонки денежные. Если в группе есть текст, единица идёт в заголовок самой колонки. Подписи вида «Сумма (без НДС)» получают её в колонке: «Сумма, {unit} (без НДС)». Подзаголовок комментария теперь пустой.
  • Свод 2: {unit} по тому же правилу. Страница сводов проектов: фиксированное «тыс. руб.», потому что селектора разрядности там нет.
  • Журнал аудита: {unit} в пути колонки подставляется как «тыс. руб.».
  • Excel: у шапки плана своя подпись НДС для каждого листа, по экрану (FORM1/FORM4_SHEET_PLAN_VAT_WORDING), подколонки не менялись. «тыс. руб.» в раскладках FORM1/FORM2, АХР-сателлитах, проектах, SMETA форм 2/4 и в патчах формы 4 расставлено по тому же правилу; у комментариев денежная подпись убрана.
  • collegial.approved («Коллегиальные органы → Сумма (без НДС)», в БД collegial_approval.approved_amount NUMERIC) после AURORA-1899 считалась текстом: не масштабировалась разрядностью и не получала единицу. Теперь она денежная.
  • Регрессионные тесты:
    • web/.../utils/columnUnitLabels.test.js проверяет все 22 конфига колонок: у каждой денежной колонки есть единица, у текстовых денежной подписи нет.
    • api/tests/unit/test_export_unit_labels.py проверяет то же на реальных раскладках выгрузки форм 1/2/4, плюс что шапка плана совпадает с экраном.
  • В конфигах импорт columnColors теперь с расширением .js: иначе node --test их не загружает.

Проверка

  • Frontend: node --test src/components/RealtimeTable/utils/*.test.js — 238 passed, 0 failed; npm run build проходит.
  • Backend: полный набор на чистой БД — 948 passed, 4 skipped. Падают только 10 известных тестов (form3 add_project, satellite spod ×3, upd_form_cells_subtree ×3, 0037_guard, export_service_query_params ×2), как на чистой test. Три теста, которые сверяли точный текст подписей (test_export_form1_form4_mapping ×2, test_export_form2_mapping), обновлены под новые подписи.
  • Ручную проверку на стенде (экран + выгрузка Ф.1 Операц/АХР, Ф.4 АХР, «Смета РФ») я не делал — нужна после деплоя.

Rulings I made

  • R-1 Единица ставится в самый верхний заголовок группы, где все колонки денежные, а не в ближайший. Например, «Расходы, планируемые РФ на {year} год, тыс. руб.», а не «I квартал, тыс. руб.» в каждом квартале. Это сходится с примером, который пользователь утвердил («Корректировка сметы расходов, тыс. руб.»), и так подписей меньше. Если ошибся — придётся перезапустить кодмод с другим правилом.
  • R-2 Подписи «Сумма …» получают единицу в самой колонке («Сумма, {unit} (без НДС)»), как это уже было на других листах.
  • R-3 Если в подписи есть скобка с НДС или знаковый маркер «(< 0)/(> 0)/(= 0)», единица вставляется перед ней. В остальных случаях — в конец подписи.
  • R-4 collegial.approved переведена из текстовых в денежные (меняет поведение AURORA-1899). Если ошибся, при разрядности ≠ «тыс.» эта сумма снова не будет пересчитываться.
  • R-5 У страницы сводов проектов и у журнала аудита селектора разрядности нет, поэтому подпись там фиксированная — «тыс. руб.».
  • R-6 Свод 2 и сводов проектов не покрыты тестом: колонки собираются внутри JSX-модулей, а выносить их отдельно — рефакторинг вне задачи.

Deferred

  • O-1 В журнале аудита {year} в пути колонки показывается без подстановки. Так было и до этого PR.
  • O-2 Ручная проверка на стенде не проводилась.
  • O-3 Неиспользуемые self.sheet_writers и _write_sheet_rows в ExportService (старый путь openpyxl) не тронуты; там шапка плана по-прежнему нерендеренная.

🤖 Generated with Claude Code

Closes #333. Доработка AURORA-1900 по возврату тестировщика 12.11.2026 (Jira, комментарий 10035643). Исходный PR — #291. ## Дефекты и причины 1. **Не у всех денежных колонок есть единица.** В #291 существовавший текст «тыс. руб.» заменили на `{unit}`, но там, где единицы не было, её не добавили. Таких колонок 964 на экране и столько же пропусков в Excel: договоры, секвестирование, резерв, итоговая смета, закрытие кварталов, платежи, переносы, бронь, факт; «Сумма (без НДС)» формы 4; форма РФ — основные листы и лист «Смета»; свод 2; страница сводов проектов. 2. **У текстовых комментариев денежные подписи.** В исходном шаблоне у группы «Комментарий» в кварталах форм 1/4 и на «Структуре» был подзаголовок «Сумма, тыс. руб. (…)». 3. **Подпись НДС в шапке плана в Excel не совпадает с экраном.** `_vat_placeholders` подставлял в `{vat_plan}` текст подколонок. Ф.1 АХР и Ф.4 АХР/Операц/Структура: на экране «с учётом складского НДС», в Excel «без НДС». Ф.4 КВ: на экране «с учётом НДС», в Excel «без НДС». ## Что сделано - **Экран** (кодмод по AST конфигов колонок, 687 заголовков): единица `{unit}` ставится в самый верхний заголовок группы, где все колонки денежные. Если в группе есть текст, единица идёт в заголовок самой колонки. Подписи вида «Сумма (без НДС)» получают её в колонке: «Сумма, {unit} (без НДС)». Подзаголовок комментария теперь пустой. - **Свод 2:** `{unit}` по тому же правилу. **Страница сводов проектов:** фиксированное «тыс. руб.», потому что селектора разрядности там нет. - **Журнал аудита:** `{unit}` в пути колонки подставляется как «тыс. руб.». - **Excel:** у шапки плана своя подпись НДС для каждого листа, по экрану (`FORM1/FORM4_SHEET_PLAN_VAT_WORDING`), подколонки не менялись. «тыс. руб.» в раскладках FORM1/FORM2, АХР-сателлитах, проектах, SMETA форм 2/4 и в патчах формы 4 расставлено по тому же правилу; у комментариев денежная подпись убрана. - **`collegial.approved`** («Коллегиальные органы → Сумма (без НДС)», в БД `collegial_approval.approved_amount NUMERIC`) после AURORA-1899 считалась текстом: не масштабировалась разрядностью и не получала единицу. Теперь она денежная. - **Регрессионные тесты:** - `web/.../utils/columnUnitLabels.test.js` проверяет все 22 конфига колонок: у каждой денежной колонки есть единица, у текстовых денежной подписи нет. - `api/tests/unit/test_export_unit_labels.py` проверяет то же на реальных раскладках выгрузки форм 1/2/4, плюс что шапка плана совпадает с экраном. - В конфигах импорт `columnColors` теперь с расширением `.js`: иначе `node --test` их не загружает. ## Проверка - Frontend: `node --test src/components/RealtimeTable/utils/*.test.js` — 238 passed, 0 failed; `npm run build` проходит. - Backend: полный набор на чистой БД — 948 passed, 4 skipped. Падают только 10 известных тестов (form3 add_project, satellite spod ×3, upd_form_cells_subtree ×3, 0037_guard, export_service_query_params ×2), как на чистой `test`. Три теста, которые сверяли точный текст подписей (`test_export_form1_form4_mapping` ×2, `test_export_form2_mapping`), обновлены под новые подписи. - Ручную проверку на стенде (экран + выгрузка Ф.1 Операц/АХР, Ф.4 АХР, «Смета РФ») я не делал — нужна после деплоя. ## Rulings I made - **R-1** Единица ставится в самый верхний заголовок группы, где все колонки денежные, а не в ближайший. Например, «Расходы, планируемые РФ на {year} год, тыс. руб.», а не «I квартал, тыс. руб.» в каждом квартале. Это сходится с примером, который пользователь утвердил («Корректировка сметы расходов, тыс. руб.»), и так подписей меньше. Если ошибся — придётся перезапустить кодмод с другим правилом. - **R-2** Подписи «Сумма …» получают единицу в самой колонке («Сумма, {unit} (без НДС)»), как это уже было на других листах. - **R-3** Если в подписи есть скобка с НДС или знаковый маркер «(< 0)/(> 0)/(= 0)», единица вставляется перед ней. В остальных случаях — в конец подписи. - **R-4** `collegial.approved` переведена из текстовых в денежные (меняет поведение AURORA-1899). Если ошибся, при разрядности ≠ «тыс.» эта сумма снова не будет пересчитываться. - **R-5** У страницы сводов проектов и у журнала аудита селектора разрядности нет, поэтому подпись там фиксированная — «тыс. руб.». - **R-6** Свод 2 и сводов проектов не покрыты тестом: колонки собираются внутри JSX-модулей, а выносить их отдельно — рефакторинг вне задачи. ## Deferred - **O-1** В журнале аудита `{year}` в пути колонки показывается без подстановки. Так было и до этого PR. - **O-2** Ручная проверка на стенде не проводилась. - **O-3** Неиспользуемые `self.sheet_writers` и `_write_sheet_rows` в `ExportService` (старый путь openpyxl) не тронуты; там шапка плана по-прежнему нерендеренная. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 2 commits 2026-11-12 13:45:51 +03:00
Возврат тестировщика 12.11. В #291 существовавший текст «тыс. руб.» заменили на
{unit}, но там, где единицы не было, её не добавили. Не было её у договоров,
секвестирования, резерва, итоговой сметы, закрытия кварталов, платежей,
переносов, брони, факта; у «Сумма (без НДС)» формы 4; на основных листах и
листе «Смета» формы РФ; в своде 2 и на странице сводов проектов. Комментарии в
кварталах форм 1/4 и на «Структуре» были подписаны «Сумма, {unit} (…)».

- Конфиги колонок (кодмод на AST): единица ставится в самый верхний заголовок
  группы, где все колонки денежные; если в группе есть текст — в заголовок
  самой колонки. Подписи вида «Сумма (без НДС)» получают единицу в колонке:
  «Сумма, {unit} (без НДС)». Подзаголовок комментария — пустой.
- Свод 2 — {unit} в группах и колонках по тому же правилу; страница сводов
  проектов — фиксированное «тыс. руб.» (селектора разрядности там нет).
- Журнал аудита: {unit} в пути колонки подставляется как «тыс. руб.».
- Импорт columnColors в конфигах с расширением .js, чтобы node --test мог
  загрузить конфиги.
- columnUnitLabels.test.js: у каждой денежной колонки всех конфигов есть
  единица, у текстовых денежной подписи нет.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Возврат тестировщика 12.11.

- Шапка «План {year} (тыс. руб.) {vat_plan}» подставляла текст подколонок:
  Ф.1 АХР и все листы Ф.4 выгружались «без НДС», а на экране — «с учётом
  складского НДС» (Ф.4 КВ — «с учётом НДС»). Теперь у шапки своя подпись
  по экрану (FORM1/FORM4_SHEET_PLAN_VAT_WORDING), подколонки не менялись.
- Раскладки Excel (FORM1/FORM2 depth, АХР-сателлиты, проекты, SMETA формы 2/4,
  патчи формы 4): «тыс. руб.» по тому же правилу, что на экране; у комментариев
  убран подзаголовок «Сумма, тыс. руб. (…)».
- «Коллегиальные органы → Сумма (без НДС)» (collegial.approved,
  collegial_approval.approved_amount NUMERIC) считалась текстом (AURORA-1899):
  не масштабировалась разрядностью и не получала единицу. Теперь денежная.
- test_export_unit_labels.py: на реальных раскладках выгрузки форм 1/2/4 у каждой
  денежной колонки есть «тыс. руб.», у текстовых нет, шапка плана — как на экране.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tsygankoviva approved these changes 2026-11-12 14:09:06 +03:00
aep requested review from PotapovaA 2026-11-12 14:34:35 +03:00
PotapovaA approved these changes 2026-11-12 16:49:13 +03:00
aep merged commit ab7d25ed2d into test 2026-11-12 17:01:49 +03:00
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/DFiP_Budget_planing#334
No description provided.