Change перенесён в openspec/changes/archive/2026-10-19-osv-indicator-column, дельта влита в openspec/specs/osv-parsing/spec.md (строки-показатели, колонка «Показатели», «В валюте», BU по умолчанию, счёт 90 в OQ-132). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5.9 KiB
Колонка «Показатели» и валютные строки ОСВ (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как пришёл.