- AURORA-1702: таблица в порядке файла — счёт, субсчёт и подразделение с вложенными строками выводятся
строками-группами (жирным, со своими сальдо и оборотами), вложенные — с отступом по уровню; фильтр по счёту
оставляет счёт и все его субсчета, при поиске строки-группы скрываются.
- AURORA-1703: строки-показатели («Кол.», «НУ», «Вал.», «ПР»/«ВР»: OTHER, вид не BU/SUM и не равен виду
родителя) в рублёвую таблицу не попадают и родителя группой не делают — строка БУ снова видна с
наименованием и рублями. В EntryOut добавлен data_type (ядро его уже отдаёт).
- filterRows перенесён в osvRows.ts (чистая функция с тестами); спека document-review-ui обновлена.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Слияние с #39 (PR #40): scroll.x считается от фактических колонок, scroll.y — числом
для virtual. Колонки сумм расширены до 160 px: итоги из 17 цифр («Итого по документу»)
переносились на две строки и обрезались внизу таблицы (O-3). Спека: поиск — по аналитике.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Таблица строк ОСВ получила virtual (antd 6): в DOM только видимые строки.
Высота области прокрутки считается числом (osvBodyHeight) и обновляется при
изменении окна. В спеку document-review-ui добавлено требование про виртуализацию.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Требование «ОСВ-документ» описывало дерево с колонками «контрагент, ИНН»,
что расходилось с плоской таблицей (#12) и с новым правилом колонок (#39).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Заголовок колонки считается по видам строк-листьев (osvRows.analyticsHeading): «Контрагент»,
название вида из файла или «Аналитика» с подсказкой. Колонка ИНН и подсказка поиска — только при
контрагентах; labelSpan и ширина scroll.x зависят от числа колонок. Требование — в specs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Sidebar: после создания консолидации перечитывается список группы
- useLegalEntityFiles: убран biome-ignore в зависимостях эффекта
- FilesDrawer: курсор и pointer-events у недоступной кнопки загрузки
- design.md: решения R-4..R-8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Фронт к 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>
Решения владельца 08.10.2026 (arm-core #74, отмена П-1):
- ИНН из файла — просто текстом, без «Указать», даже если ЮЛ не найдено;
- строка сопоставлена без ИНН в файле — «таблетка» с `counterparty_entity_inn`, клик открывает выбор организации,
у текущего ЮЛ — неактивное «Связано» (закрывает D-1 из #16);
- нет ни ЮЛ, ни ИНН — «Указать» на подсвеченной ячейке.
Колонка ИНН — моноширинный шрифт по центру, воронка фильтра `unmapped`; баннер и кнопка «Показать ЮЛ без ИНН» —
цвета `osv-mapping-alert` макета. Спека consolidated-osv-ui и README (1381 → 1260) обновлены.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
- ИНН-ячейка строк без сопоставления подсвечена, ссылка «Указать» рядом с ИНН из файла [32-osv-no-inn].
- Модалка «Выбор организации для связи с …» [32-osv-map-counterparty]: поиск с паузой 300 мс,
scope group / весь справочник (от 3 символов), блок «Рекомендуемые», «Связать».
- POST …/osv/entries/{последняя entry_id}/counterparty; 409 ALIAS_TAKEN → перенос алиаса (move_alias),
LOCK_REQUIRED → «Взять версию в работу?» → POST …/lock → повтор, LOCKED_BY_OTHER → имя держателя.
- После успеха перечитываются строки и сводка («Осталось N»).
- Чистые функции counterpartyMapping.ts + тесты; спека consolidated-osv-ui.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
- Последняя колонка — бейдж ГСК (синий) / ГК (зелёный) / Внешний (серый), цвета из
osv-type-badge макета; чистая функция counterpartyTypeBadge с тестом.
- Фильтр признака перенесён из «Контрагенты» на колонку «Тип контрагента» (одно
значение: API принимает один counterparty_type); «Контрагенты» — только поиск.
- «Применить» / «Сбросить» и Enter закрывают окно фильтра (close из antd).
- Спека consolidated-osv-ui: колонка и фильтры по макету, «способ сопоставления»
убран из колонок (в макете [30] его нет).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Макет [41] рисует бумажную шапку с ОКПО/ОКОПФ/ОКФС/адресом, которых распознавание не отдаёт
(arm-scan-gateway#15) — вместо пустых рамок показываем то, что извлекается надёжно.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
Сервер отдаёт строки по коду и без заголовков разделов (§12, OQ-36): порядок и разделы восстанавливаются
по соотношениям §7 только при показе; приклеенные OCR заголовки срезаются, полное имя — в подсказке.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
Обвязка из adopt-project.sh дополнена описанием репозитория по коду: источники истины
для фронта, ветка test как интеграционная, правило «запросы только через api/client».
.gitignore: исправлена склейка строк (package-lock.json.superpowers/), добавлен dist/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3