ОСВ: реквизит «Контрагенты.ИНН» строкой под контрагентом — ИНН родителю, без «.0» (#32) #33
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/32-osv-inn-subconto"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #32.
Что было
ОСВ 60 ООО «Зерновая компания „Новопетровская“» за 9 мес. 2025 (замечание банка 13.10.2026): шапка варианта 2
«субконто: Контрагенты, Контрагенты.ИНН», ИНН — числом отдельной строкой под контрагентом. Парсер принимал
реквизит за второй уровень контрагентов: в «Контрагент / аналитика» —
2370012036.0, наименования нет, ИННnull→ нет признака ГК/ГСК/Внешний; в свод ядра попадали обе строки (наименование и ИНН) с одинаковыми суммами.
Что сделано
header.py:<группировка>.ИНН(суффикс — словарьservice_columns.inn, префикс — имя предыдущей группировкиCOUNTERPARTY) —
InnAttribute; вgroup_schemaне попадает, у владельцаhas_inn = true;GroupSchema.positionsдержит позицию строк для классификатора;
build_group_schema— прежний интерфейс.classify.py: строка реквизита — OTHER с ИНН ячейки (column_inn, R-24);glue_inn_attributesотдаёт ИННконтрагенту, убирает строку, поднимает её детей (договоры) на уровень, предупреждение «ИНН … отнесён к контрагенту
в строке …». Не склеилось (несколько строк ИНН, суммы не равны, ИНН не распознан или расходится) — OTHER,
предупреждение с причиной,
needs_check.readers/_common.py: целый float (xls) читается как int — без «.0».Контрагенты.ИННв блоке заголовка подКонтрагенты) — тот же реквизит (H-1,коммит
02ad8be); общая часть вариантов —_attach_inn_attribute,_positions.osv-dkb/novopetrovskaya/2025-Q3/60_ 9мес.2025г.xls+ golden — arm-ka-fixtures PR (веткаfeat/32-osv-inn-subconto).05-domain-rules.md§1.1, §1.3; OQ-162).Файл банка после правки:
done, 713 из 716 контрагентов с ИНН, 3 физлица без ИНН, «Итого» = корню.Проверки
make check— зелёный (2269 passed после варианта 1; golden прочих 138 файлов без изменений).make docker-build— ок.make test-integration— плавает 1 тест (test_request_gets_ack_then_parser_error_and_duplicate_gets_only_ack,«лишнее сообщение»): на тот же NATS
localhost:4222подписан контейнер стендаarm-ka-tabular-parser-1в той жеqueue group и забирает дубль; 2 из 3 прогонов зелёные, сценарий (битый zip) правкой не затронут.
Rulings I made
склеивается, ИНН контрагента остаётся
null,needs_checkне ставится. Иначе файл банка целиком уходил бы напроверку из-за трёх физлиц. Цена ошибки: если пустая ячейка где-то значит «ИНН потерян», аналитик не получит
needs_check— но строка контрагента без ИНН и так видна в «Нужно сопоставить» сводной ОСВ.Находки
02ad8beextraсодержит колонки C/G/K со значениями из объединённых ячеек сумм (поведение до правки, не связано с #32)🤖 Generated with Claude Code