Решения владельца 27.10.2026 (docs #172): субсчёт с 3 цифрами в сегменте под счётом шапки, код контрагента + название +
договоры (стратегия code_blocks), суммы субсчёта из «ИТОГ по …», «ИТОГ» — итог листа, «Поставщики» — вид субконто
в таблице, метка «За период» со значением в соседней ячейке, диапазон «01.01.25..30.06.25», год из двух цифр.
Синтетика s45 (период, организация) и s46 (блоки), спека osv-parsing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Нераспознанная метка в колонке «Показатели» давала OSV_ROWS на каждую строку (2 128 одинаковых
на 11.xlsx). Теперь построчные OSV_ROWS «строка N: <текст>» с одинаковым текстом сводятся в одно:
«метка «X» в колонке «Показатели» не распознана — K строк (первые 20 номеров, …) не участвуют в
проверках»; прочие одинаковые построчные — «<текст> — строк: K (…)». Одиночное предупреждение
не меняется. Коды и контракт не тронуты. Спека osv-parsing обновлена.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Метки «Счет Поставщика»/«Счет Клиента» добавлены в header_markers.account; код счёта читается из соседней ячейки строки,
«*» отбрасывается. При известном счёте шапки голый числовой код, не совпадающий с ним, не считается счётом.
Синтетика s45, тест на книге openpyxl, сценарий в спеке osv-parsing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Словарь data_types.yaml: row допускает единицу измерения после запятой
(«Кол-во, га» в ОСВ 43.1), indicator_column — «Кол. доп.» в колонке
«Показатели» (сч. 11). Код не меняется.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Часть, отличающаяся от ссылки [Content_Types].xml или *.rels только регистром
(xl/SharedStrings.xml при ссылке на sharedStrings.xml), до openpyxl
переименовывается по ссылке: раньше такая книга была UNREADABLE, а лист с
другим регистром имени openpyxl терял молча. Две части под одну ссылку не
угадываются.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change перенесён в openspec/changes/archive/2026-10-19-osv-flat-form,
дельта влита в openspec/specs/osv-parsing/spec.md (шапка «по счету: X»,
стратегия header_account, «Итого развернутое» в любом порядке,
контрагенты расчётных счетов).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I-1 (R-17): синоним COUNTERPARTY только «Организации» (^организации\b).
I-2 (R-18): правило расчётных счетов не применяется к строкам, известным словарю как не-контрагенты (валюта, «В валюте»).
I-4 (R-19): тождество у второй итоговой строки пропускается только без оборотов и при наличии другой «Итого».
M-1, M-5, M-6, M-7 (вымышленное ФИО ИП в синтетике), M-9.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
counterparty_accounts в osv_groups.yaml (R-9: без 71 и 73), is_counterparty_account,
OSV_ROWS по счёту; формулировка проверки «Итого» без корня ACCOUNT (T4.1);
ожидания s40–s44 в синтетике (T1.1/T1.2), тест испорченной «Итого» плоского списка (T4.2).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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>