В шапке варианта 2 «субконто: Контрагенты, Контрагенты.ИНН» 1С выводит ИНН
отдельной строкой на уровень глубже контрагента. Парсер принимал реквизит за
второй уровень контрагентов: строка ИНН становилась контрагентом с именем
«2370012036.0» и без ИНН, у наименования ИНН тоже не было, в свод ядра
попадали обе строки.
- header: элемент «<группировка>.ИНН» — InnAttribute, в group_schema не
попадает, у владельца has_inn = true; GroupSchema.positions держит позицию
для классификатора;
- classify: строка реквизита — OTHER с ИНН ячейки (column_inn, R-24);
glue_inn_attributes отдаёт ИНН контрагенту, убирает строку, поднимает её
детей; не склеилось (несколько строк, суммы не равны, ИНН не распознан или
расходится) — OTHER, предупреждение, needs_check; пустая ячейка (физлицо) —
склейка без ИНН (R-1);
- readers: целый float из xls читается как int — без «.0».
Файл банка: 713 из 716 контрагентов с ИНН, 3 физлица без ИНН, status done.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- test_osv_dkb.py: на каждом из 25 файлов пакета ДКБ — статусы листов по манифесту osv_dkb_expectations.yaml (данные, не
if по имени файла), период по каталогу (2025-Q3, 2024-10_2025-09), структура строк, контракт, время разбора.
- golden: osv-dkb/** до порога GOLDEN_MAX_BYTES = 1 МиБ (22 из 25 файлов; три файла Агрокомплекса 9–14 МБ — без снимков);
golden_update, golden_helpers (подкаталог osv-dkb/), conftest (dkb_file, dkb_golden_file), хелперы.
- dkb_helpers: expected_period, манифест; юнит-тесты без каталога fixtures.
Stacked on #15. Closes#10
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b