Форматы ОСВ из пакета ДКБ: скользящий период, счёт 91, несколько корней без строки счёта, шапка ОСВ 63, «Итого развернутое» #11

Closed
opened 2026-10-06 11:20:35 +03:00 by aep · 4 comments
Owner

Найдено прогоном CLI по fixtures/osv-dkb (arm-ka-fixtures#6, README там же). 1) Период «Октябрь 2024 г. – Сентябрь 2025 г.» разбирается как 2024 Q4 нарастающий — нужен разбор диапазона и признак «не с начала года» (НПЗ, Агрокомплекс 76). 2) Счёт 91: строки аналитики только с оборотами → тождество сальдо нарушено на всех строках → needs_check (Цимлянский, Приманыческий) — вопрос к §1.4 (исключать 90/91/99?). 3) Вариант 2 без строки корневого счёта (верхний уровень 58.01/58.03): «Итого» ≠ первому корню → needs_check на каждом листе (Новоросметалл, Агрокомплекс) — сверять «Итого» с суммой строк уровня 0 (OQ-106). 4) Шапка ОСВ 63 Новоросметалл: «Бухгалтерский | 9 месяцев 2025 г.», колонки «Счет: Код / Наименование» — не найдены счёт, период, тип данных. 5) «Итого развернутое» — вторая итоговая строка. 6) Агрокомплекс 62: нарушения тождества в блоке магазинов под 62.04 (строки 48201+) — проверить разнос колонок.

Найдено прогоном CLI по fixtures/osv-dkb (arm-ka-fixtures#6, README там же). 1) Период «Октябрь 2024 г. – Сентябрь 2025 г.» разбирается как 2024 Q4 нарастающий — нужен разбор диапазона и признак «не с начала года» (НПЗ, Агрокомплекс 76). 2) Счёт 91: строки аналитики только с оборотами → тождество сальдо нарушено на всех строках → needs_check (Цимлянский, Приманыческий) — вопрос к §1.4 (исключать 90/91/99?). 3) Вариант 2 без строки корневого счёта (верхний уровень 58.01/58.03): «Итого» ≠ первому корню → needs_check на каждом листе (Новоросметалл, Агрокомплекс) — сверять «Итого» с суммой строк уровня 0 (OQ-106). 4) Шапка ОСВ 63 Новоросметалл: «Бухгалтерский | 9 месяцев 2025 г.», колонки «Счет: Код / Наименование» — не найдены счёт, период, тип данных. 5) «Итого развернутое» — вторая итоговая строка. 6) Агрокомплекс 62: нарушения тождества в блоке магазинов под 62.04 (строки 48201+) — проверить разнос колонок.
Author
Owner

PR #13 (слит, коммиты 30f78c4, 6fd7add, af8ec91) закрывает пункты 1 (период-диапазон месяцев, признак «не с начала года» через null/null + предупреждение; поля period_start/period_end/is_from_year_start — контракт v1.2, Срез 2b, issue #14), 3 («Итого» ↔ Σ уровня 0, OQ-133), 4 (шапка ОСВ 63 Новоросметалл, OQ-134), 5 («Итого развернутое»), 6 (Агрокомплекс 62: дефекта разноса нет, в файле нет сальдо на конец у аналитики магазинов — тот же класс, что OQ-132). Открытым остаётся пункт 2 — счёт 91, решение владельца по OQ-132.

PR #13 (слит, коммиты 30f78c4, 6fd7add, af8ec91) закрывает пункты 1 (период-диапазон месяцев, признак «не с начала года» через null/null + предупреждение; поля period_start/period_end/is_from_year_start — контракт v1.2, Срез 2b, issue #14), 3 («Итого» ↔ Σ уровня 0, OQ-133), 4 (шапка ОСВ 63 Новоросметалл, OQ-134), 5 («Итого развернутое»), 6 (Агрокомплекс 62: дефекта разноса нет, в файле нет сальдо на конец у аналитики магазинов — тот же класс, что OQ-132). Открытым остаётся пункт 2 — счёт 91, решение владельца по OQ-132.
Author
Owner

Подтверждение п. 4 и п. 5 от тестирования — перенесено из RSHB/arm-core#37 (SalminMP, сценарий P11, 07.10.2026).

Файл: НМ_ОСВ_63_Контрагенты_2025.09-01_24498-требуется проверка.xlsx (прямой прогон tabular-parser, Windows, commit неизвестен; JSON результата приложен к arm-core#37).

Ожидание (P11): счёт 63 — по первой строке-счёту таблицы; период «9 месяцев 2025 г.» — из отдельной ячейки; тип данных «Бухгалтерский»; организация «НОВОРОСМЕТАЛЛ ООО»; последняя строка без подписи — «Итого» с предупреждением и не входит в сумму дочерних строк.

Факт: status: needs_check; organization_name: «Бухгалтерский»; account_code_raw пусто; period_text пусто; period_year/period_quarter = null; data_type = null; последняя строка распознана как дочерняя строка счёта 63 — общий итог включён в сумму детей, сумма удвоилась.

Все 318 числовых значений перенесены корректно — ошибка в определении структуры (шапка и итоговая строка), не в суммах.

Подтверждение п. 4 и п. 5 от тестирования — перенесено из RSHB/arm-core#37 (SalminMP, сценарий P11, 07.10.2026). Файл: `НМ_ОСВ_63_Контрагенты_2025.09-01_24498-требуется проверка.xlsx` (прямой прогон tabular-parser, Windows, commit неизвестен; JSON результата приложен к arm-core#37). **Ожидание (P11):** счёт 63 — по первой строке-счёту таблицы; период «9 месяцев 2025 г.» — из отдельной ячейки; тип данных «Бухгалтерский»; организация «НОВОРОСМЕТАЛЛ ООО»; последняя строка без подписи — «Итого» с предупреждением и не входит в сумму дочерних строк. **Факт:** `status: needs_check`; `organization_name: «Бухгалтерский»`; `account_code_raw` пусто; `period_text` пусто; `period_year`/`period_quarter` = null; `data_type` = null; последняя строка распознана как дочерняя строка счёта 63 — общий итог включён в сумму детей, сумма удвоилась. Все 318 числовых значений перенесены корректно — ошибка в определении структуры (шапка и итоговая строка), не в суммах.
Author
Owner

Решение владельца 07.10.2026 по OQ-132 (п. 2 этой issue): вариант Б — счета без сальдо по аналитике исключаются из тождества строк §1.4; список счетов — данные в rules/*.yaml (не код), начальный состав 91 и 99 (90 не включать: внутри года сальдо по субсчетам 90 обычно есть). Контроль «Итого» и иерархии (сумма детей = родитель) сохраняется. Правило — в 05-domain-rules.md §1.4 (RSHB/arm-ka-docs#62).

Решение владельца 07.10.2026 по OQ-132 (п. 2 этой issue): вариант Б — счета без сальдо по аналитике исключаются из тождества строк §1.4; список счетов — данные в `rules/*.yaml` (не код), начальный состав **91 и 99** (90 не включать: внутри года сальдо по субсчетам 90 обычно есть). Контроль «Итого» и иерархии (сумма детей = родитель) сохраняется. Правило — в `05-domain-rules.md` §1.4 (RSHB/arm-ka-docs#62).
aep closed this issue 2026-10-07 23:24:57 +03:00
Author
Owner

Пункт 2 (OQ-132) закрыт PR #26 (merge 49f725d) и эталонами arm-ka-fixtures#14 (merge 7f76d7d): счета 91, 99 вне тождества строк (api/rules/osv_checks.yaml), обе ОСВ 91 — done. Пункты 1, 3–6 закрыты ранее PR #13. Отложенное — в follow-up issue.

Пункт 2 (OQ-132) закрыт PR #26 (merge 49f725d) и эталонами arm-ka-fixtures#14 (merge 7f76d7d): счета 91, 99 вне тождества строк (api/rules/osv_checks.yaml), обе ОСВ 91 — done. Пункты 1, 3–6 закрыты ранее PR #13. Отложенное — в follow-up issue.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-tabular-parser#11
No description provided.