52 lines
5.9 KiB
Markdown
52 lines
5.9 KiB
Markdown
# Колонка «Показатели» и валютные строки ОСВ (AURORA-1613, AURORA-1661 — валютная часть)
|
||
|
||
Issue: RSHB/arm-tabular-parser#58. Ветки `feat/58-osv-indicators` в tabular-parser, docs, fixtures.
|
||
|
||
## Why
|
||
|
||
Прогон выгрузки тестового контура (AURORA-1639, свод `admin/1639-contour-run/`, находки O-7, O-8) и тестирование
|
||
AURORA-1534 показали два дефекта одного механизма — вида данных строки ОСВ:
|
||
|
||
- **AURORA-1613.** 1С печатает вид суммы строки отдельной колонкой «Показатели» (БУ / НУ / Кол. / Вал. / ПР / ВР;
|
||
31 файл контура). Парсер о колонке не знает: метка уходит в `extra`, `data_type` строк НУ/Кол. — `null` (шапка без
|
||
«Выводимые данные»); строка НУ с пустым текстом получает текст из колонки «Показатели» и отступ «колонка глубже»,
|
||
становится ребёнком строки БУ — «дети = родитель» и «Итого» не сходятся, документ `needs_check`, на экране оборот
|
||
удваивается. Вторая строка «Итого» (по НУ) обрезается как подвал с предупреждением «ниже таблицы есть числа».
|
||
- **AURORA-1661, валютная часть.** Строки «В валюте» не распознаются как валютные: суммы в валюте (69,6 млн USD)
|
||
записываются как рублёвые и попадают в свод.
|
||
- Строки без вида данных (шапка без «Выводимые данные», нет метки) получают `data_type = null`, а ядро берёт в свод
|
||
только BU/SUM — строки молча пропадают из сводной ОСВ.
|
||
|
||
Решения владельца 19.10.2026 — минимальное исправление: строки, которые не являются БУ, изолируются от данных БУ.
|
||
Глубокая аналитика НУ и валют вынесена в AURORA-1669 и AURORA-1670 (бэклог аналитики).
|
||
|
||
## What Changes
|
||
|
||
- Колонка «Показатели» определяется по заголовку (словарь `service_columns.indicator`); метка строки читается по
|
||
новому словарю `data_types.indicator_column`: «БУ» → BU (обычная строка), «НУ» → NU, «Кол.» → QUANTITY, «Вал.» →
|
||
CURRENCY, «ПР»/«ВР»/метка не из словаря → `data_type = null` (метка не из словаря — с предупреждением).
|
||
- Понятие **строки-показателя** (`indicator`) — признак строки, а не значение `data_type`: строки-показатели в колонке
|
||
текста («Вал.», «Кол.», «Кол-во», код валюты, **новое** «В валюте») и строки с меткой колонки «Показатели», кроме
|
||
«БУ». Строки-показатели не передаются в каскад иерархии; родитель — предыдущая строка данных, уровень на один
|
||
глубже. В проверки «дети = родитель» и «Итого» не входят (как сейчас CURRENCY/QUANTITY); тождество строки — как у всех.
|
||
- `row_value` строки с меткой колонки — метка (а не повтор текста объединённой ячейки строки БУ).
|
||
- Итоговая строка с меткой показателя сразу за «Итого» — TOTAL, в подвал не уходит, в сверку не входит.
|
||
- Строки без вида данных при шапке без «Выводимые данные» — `data_type = BU` с предупреждением; `header.data_type`
|
||
остаётся `null` (шапка его не называет).
|
||
- «Валюта <код>» — обычная строка (OTHER, рубли): поведение не меняется, закрепляется тестом.
|
||
- §1.3/§1.4 `05-domain-rules.md` — отдельным PR в arm-ka-docs (ветка `feat/58-osv-indicators`).
|
||
- Синтетика s33–s36 и golden — PR в arm-ka-fixtures.
|
||
|
||
Затронутые репозитории: arm-tabular-parser (код, словари, тесты, спека `osv-parsing`), arm-ka-docs (§1.3, §1.4),
|
||
arm-ka-fixtures (синтетика, golden). Таблицы DBML v5.19 не меняются (`osv_entry.data_type` уже включает NU, CURRENCY,
|
||
QUANTITY, NULL); контракт `recognition-result` не меняется. Срез: поддержка после Среза 2a (ошибки контура).
|
||
|
||
## Non-goals
|
||
|
||
- Собственные проверки по НУ, итоги по видам данных, хранение «ПР»/«ВР» отдельными значениями — AURORA-1669.
|
||
- Код валюты строки, мультивалютные контрагенты, пересчёт; пересмотр «USD» как CURRENCY (в ТЗ — разрез с рублями) —
|
||
AURORA-1670.
|
||
- Плоская форма 1С (шапка «по счету: X», плоский список без строки счёта, «Итого развернутое» перед «Итого»,
|
||
контрагенты на расчётных счетах) — отдельный трек AURORA-1661 (`.wt/osv-flat/`).
|
||
- Изменения arm-core: ядро уже берёт в свод только BU/SUM и пишет `data_type` как пришёл.
|