Merge pull request 'docs(#224): «76-исключения» в §4–§6, разнесение по стороне строки и по периметру (AURORA-2034)' (#225) from feat/224-acc76-exclusions into main

This commit is contained in:
aep 2026-11-10 12:15:16 +03:00
commit 7e29cbb960
4 changed files with 39 additions and 22 deletions

View File

@ -81,10 +81,10 @@ DBML и `05-domain-rules.md`, а этот документ поправь сле
|---|---|---| |---|---|---|
| 1 | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31 | false | | 1 | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31 | false |
| 1 | 76 | false | | 1 | 76 | false |
| 1 | 76.07.5, 76.07.9 | **true** | | 1 | «76-исключения» (§4: 76.07.1/.5/.9, 76.27.1/.5/.9, 76.37.1/.5/.9, 76.АВ, 76.ВА, 76.К, 76.Н, 76.НА, 76.ОТ) | **true** |
| 2 | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32 | false | | 2 | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32 | false |
| 2 | 76 | false | | 2 | 76 | false |
| 2 | 76.07.1 | **true** | | 2 | те же «76-исключения» | **true** |
(каждый счёт — отдельная строка таблицы; в примере сгруппированы для краткости) (каждый счёт — отдельная строка таблицы; в примере сгруппированы для краткости)
@ -103,8 +103,8 @@ DBML и `05-domain-rules.md`, а этот документ поправь сле
| 2 | 1170 ФВ долгосрочные | 58.01 | 1310 / 1350 | 80, 83 | manual | гудвилл (раздел 4.5) | | 2 | 1170 ФВ долгосрочные | 58.01 | 1310 / 1350 | 80, 83 | manual | гудвилл (раздел 4.5) |
| 3 | 1170 ФВ долгосрочные | 58.03 | 1410 Займы долгосрочные | 67.03 | min | | | 3 | 1170 ФВ долгосрочные | 58.03 | 1410 Займы долгосрочные | 67.03 | min | |
| 4 | 1240 ФВ краткосрочные | 58.03 | 1510 Займы краткосрочные | 66.03 | min | | | 4 | 1240 ФВ краткосрочные | 58.03 | 1510 Займы краткосрочные | 66.03 | min | |
| 5 | 1230 Дебиторка | 76 (кроме 76.07.5, 76.07.9) | 1510 | 66.04, 67.04 | min | проценты | | 5 | 1230 Дебиторка | 76 (кроме «76-исключений») | 1510 | 66.04, 67.04 | min | проценты |
| 6 | 1230 Дебиторка | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме 76.07.5, 76.07.9) | 1520 Кредиторка | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме 76.07.1) | min | основная пара | | 6 | 1230 Дебиторка | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме «76-исключений») | 1520 Кредиторка | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме «76-исключений») | min | основная пара |
| 7 | 1230 Дебиторка | те же, что № 6 | 1410 | 67 | min | | | 7 | 1230 Дебиторка | те же, что № 6 | 1410 | 67 | min | |
| 8 | 1230 Дебиторка | те же, что № 6 | 1510 | 66 | min | | | 8 | 1230 Дебиторка | те же, что № 6 | 1510 | 66 | min | |
@ -306,21 +306,21 @@ vgo_amount = eliminated_auto + eliminated_manual
| 62.01 | «БП Производство» | 106 311 116,46 | | 62.01 | «БП Производство» | 106 311 116,46 |
| 62.01 | «БП Аренда» | 1 401 330,00 | | 62.01 | «БП Аренда» | 1 401 330,00 |
| 76.06 | | 350 000,00 | | 76.06 | | 350 000,00 |
| 76.АВ | НДС по авансам | 2 366 666,69 | | 76.АВ | НДС по авансам | 2 366 666,69 — «76-исключение» §4, в правило не входит |
У «Русского бисквита» — одна строка 60.01 (кредиторка) на Счастливочную: 106 311 116,46. У «Русского бисквита» — одна строка 60.01 (кредиторка) на Счастливочную: 106 311 116,46.
**Упаковка:** 62.01 «БП Производство» 106 311 116,46 ↔ 60.01 РБ 106 311 116,46 — точная пара 1:1 (минимальная **Упаковка:** 62.01 «БП Производство» 106 311 116,46 ↔ 60.01 РБ 106 311 116,46 — точная пара 1:1 (минимальная
упаковка; вариант 2:1 «БП Производство + БП Аренда» = 107 712 446,46, расхождение 1,32 %, больше по числу строк и не упаковка; вариант 2:1 «БП Производство + БП Аренда» = 107 712 446,46, расхождение 1,32 %, больше по числу строк и не
выбирается). 62.01 «БП Аренда», 76.06, 76.АВ — без пары. выбирается). 62.01 «БП Аренда», 76.06 — без пары.
**Сумма элиминации (правило № 6):** ΣA = 110 429 113,15, ΣB = 106 311 116,46, расхождение 3,87 % ≤ 5 % → **Сумма элиминации (правило № 6):** ΣA = 108 062 446,46, ΣB = 106 311 116,46, расхождение 1,65 % ≤ 5 % →
элиминируется `min` = 106 311 116,46: статья 1230 у Счастливочной, 1520 у РБ. Это при условии, что у РБ нет 66.04 / 67.04 элиминируется `min` = 106 311 116,46: статья 1230 у Счастливочной, 1520 у РБ. Это при условии, что у РБ нет 66.04 / 67.04
на Счастливочную: иначе 76.06 и 76.АВ войдут и в правило № 5 — двойной учёт, пока аналитик не привяжет их вручную к на Счастливочную: иначе 76.06 войдёт и в правило № 5 — двойной учёт, пока аналитик не привяжет её вручную к
одному из правил (раздел 3.2a, AURORA-1751). одному из правил (раздел 3.2a, AURORA-1751).
**76.АВ** (НДС по авансам) сейчас входит в дебиторку по правилу «76 кроме 76.07.5/76.07.9». Эталон его исключает — **76.АВ** (НДС по авансам) с 10.11.2026 исключён из дебиторки вместе с остальными «76-исключениями» §4 (OQ-164 закрыт,
вопрос OQ-164 (В-9). AURORA-2034) — как в эталоне.
**Эталон** («Консолидация_Группа РБ.xlsx», лист `01.10.2024`) элиминирует у Счастливочной 108 062 тыс. — всё, кроме **Эталон** («Консолидация_Группа РБ.xlsx», лист `01.10.2024`) элиминирует у Счастливочной 108 062 тыс. — всё, кроме
76.АВ. Разница с нашим расчётом (1 751 тыс. = 1 401 330 + 350 000) — ожидаемая (OQ-155). 76.АВ. Разница с нашим расчётом (1 751 тыс. = 1 401 330 + 350 000) — ожидаемая (OQ-155).
@ -339,7 +339,7 @@ vgo_amount = eliminated_auto + eliminated_manual
| В-6 | Пара исчезла после перезагрузки ОСВ (суммы изменились, пара не собралась) — что с её корректировками: остаются, помечаются, снимаются? | не описано | | В-6 | Пара исчезла после перезагрузки ОСВ (суммы изменились, пара не собралась) — что с её корректировками: остаются, помечаются, снимаются? | не описано |
| В-7 | Средневзвешенная ставка НДС для выручки ОФР: ставка считается из ОСВ (по какому правилу) или вводится вручную? Хранить её негде: в модели она жила в `vgo_pair_match`, убранной в v5.10 | не описано | | В-7 | Средневзвешенная ставка НДС для выручки ОФР: ставка считается из ОСВ (по какому правилу) или вводится вручную? Хранить её негде: в модели она жила в `vgo_pair_match`, убранной в v5.10 | не описано |
| В-8 | Правила ОФР (Прил. 4): нужна формализация с методологами — счета сторон, режимы, НДС, акциз | открыто | | В-8 | Правила ОФР (Прил. 4): нужна формализация с методологами — счета сторон, режимы, НДС, акциз | открыто |
| В-9 | 76.АВ / 76.ВА (НДС по авансам) — исключать из ДЗ / КЗ? Есть ли ещё такие субсчета 76? | OQ-164 открыт, вопрос в AURORA-1373 | | В-9 | 76.АВ / 76.ВА (НДС по авансам) — исключать из ДЗ / КЗ? Есть ли ещё такие субсчета 76? | закрыт 10.11.2026 (OQ-164, AURORA-2034): список «76-исключений» §4 |
| В-10 | Округление при элиминации: рубли → тыс. руб. на выходе, ROUND_HALF_UP? | допущение OQ-26 | | В-10 | Округление при элиминации: рубли → тыс. руб. на выходе, ROUND_HALF_UP? | допущение OQ-26 |
| В-11 | Правило № 1: если у компании А нет ОСВ по 03 — результат в строку «ППА»? | открыто в §4 | | В-11 | Правило № 1: если у компании А нет ОСВ по 03 — результат в строку «ППА»? | открыто в §4 |
| В-12 | ~~Счета правил пересекаются — как избежать двойной элиминации?~~ | **решено 21.10.2026, реализовано (AURORA-1751):** каскад по остатку отменён, правила считаются отдельно, двойной учёт снимает ручное разнесение строк по правилам — `vgo_assignment`, раздел 3.2a | | В-12 | ~~Счета правил пересекаются — как избежать двойной элиминации?~~ | **решено 21.10.2026, реализовано (AURORA-1751):** каскад по остатку отменён, правила считаются отдельно, двойной учёт снимает ручное разнесение строк по правилам — `vgo_assignment`, раздел 3.2a |

View File

@ -652,11 +652,18 @@ closing_* = closing_* строки Qn
| 2 | 1170 ФВ долгосрочные | 58.01 | 1310 / 1350 УК / добавочный | 80, 83 | manual | **гудвилл**; если у Б нет ОСВ 80/83 — элиминируется 58.01 А; `1310(Б) − 58.01(А) > 0` → строка «Гудвилл» | | 2 | 1170 ФВ долгосрочные | 58.01 | 1310 / 1350 УК / добавочный | 80, 83 | manual | **гудвилл**; если у Б нет ОСВ 80/83 — элиминируется 58.01 А; `1310(Б) − 58.01(А) > 0` → строка «Гудвилл» |
| 3 | 1170 ФВ долгосрочные | 58.03 | 1410 Займы долгосрочные | 67.03 | min | | | 3 | 1170 ФВ долгосрочные | 58.03 | 1410 Займы долгосрочные | 67.03 | min | |
| 4 | 1240 ФВ краткосрочные | 58.03 | 1510 Займы краткосрочные | 66.03 | min | | | 4 | 1240 ФВ краткосрочные | 58.03 | 1510 Займы краткосрочные | 66.03 | min | |
| 5 | 1230 Дебиторка | 76 (кроме 76.07.5, 76.07.9) | 1510 Заёмные краткосрочные | 66.04, 67.04 | min | проценты | | 5 | 1230 Дебиторка | 76 (кроме «76-исключений») | 1510 Заёмные краткосрочные | 66.04, 67.04 | min | проценты |
| 6 | 1230 Дебиторка | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме 76.07.5, 76.07.9) | 1520 Кредиторка | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме 76.07.1) | min | основная пара | | 6 | 1230 Дебиторка | 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме «76-исключений») | 1520 Кредиторка | 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме «76-исключений») | min | основная пара |
| 7 | 1230 Дебиторка | те же, что № 6 | 1410 Заёмные долгосрочные | 67 | min | | | 7 | 1230 Дебиторка | те же, что № 6 | 1410 Заёмные долгосрочные | 67 | min | |
| 8 | 1230 Дебиторка | те же, что № 6 | 1510 Заёмные краткосрочные | 66 | min | | | 8 | 1230 Дебиторка | те же, что № 6 | 1510 Заёмные краткосрочные | 66 | min | |
**«76-исключения»** — субсчета 76, которые не участвуют в расчётах ВГО ни на одной стороне правил 5–8 и результирующей
таблицы §6 (решение по замечанию заказчика 09.11.2026, список — Лысенко 10.11.2026, AURORA-2034): аренда — 76.07.1,
76.07.5, 76.07.9, 76.27.1, 76.27.5, 76.27.9, 76.37.1, 76.37.5, 76.37.9; НДС и корректировки — 76.АВ, 76.ВА, 76.К, 76.Н,
76.НА, 76.ОТ. До 10.11.2026 исключались только 76.07.5/76.07.9 (дебет) и 76.07.1 (кредит правила 6). Правило 1 (аренда,
`manual`) считается по своим явным счетам 76.07.1/76.07.9 и не меняется. Версия правил 1 исправлена на месте (решение
владельца 10.11.2026: верифицированных версий консолидации нет; после выкладки — повторный seed).
Правило 5 % для пар: суммы равны → маппим; расхождение ≤ 5 % (к меньшей) → берём `min`; > 5 % → подсветка, авто не Правило 5 % для пар: суммы равны → маппим; расхождение ≤ 5 % (к меньшей) → берём `min`; > 5 % → подсветка, авто не
маппится, ждёт корректировки (`ADJUSTMENT`). маппится, ждёт корректировки (`ADJUSTMENT`).
@ -741,6 +748,14 @@ AURORA-1751; эндпоинт `GET …/vgo-assignments/distribute`, домен `
`VgoService`).** Тот же набор строк (`closing_debit`/`closing_credit` > 0, контрагент — компания периметра, правила ББ `VgoService`).** Тот же набор строк (`closing_debit`/`closing_credit` > 0, контрагент — компания периметра, правила ББ
`measure = closing`), но решение по строке — **одно на всю модель**, не по тройке: `measure = closing`), но решение по строке — **одно на всю модель**, не по тройке:
Принадлежность строки правилу — **по её стороне** (AURORA-2034): строка с дебетовым сальдо (или без кредитового)
относится к правилам, где её счёт входит в дебетовую сторону, с кредитовым — в кредитовую; исключения стороны
(«кроме …», §4) действуют только на своей стороне и не возвращаются через маску другой. Пример: Кт 76.05 входит только
в правило 6 (кредит «76»), а не в 5–8 через дебетовую маску «76». То же — для выбора правил в меню «Отнести к правилу».
Строка, у которой контрагент вне периметра версии или совпадает с владельцем («сам на себя»), в разнесение не входит —
ни в агрегаты, ни в нераспределённые; исключение — строка с ручным решением аналитика (`vgo_assignment`), она остаётся
видна, чтобы решение можно было снять (AURORA-2034: до 10.11.2026 такие строки висели в нераспределённых).
1. точные упаковки (п. 2) закрепляются первыми по возрастанию `rule_no` без повторного использования строк — у пары 1. точные упаковки (п. 2) закрепляются первыми по возрастанию `rule_no` без повторного использования строк — у пары
правило с меньшим номером Прил. 3 забирает строку раньше; правило с меньшим номером Прил. 3 забирает строку раньше;
2. из пар с расхождением (п. 2, `AMBIGUOUS` не считается) берутся те, что не делят ни одной строки ни с точной 2. из пар с расхождением (п. 2, `AMBIGUOUS` не считается) берутся те, что не делят ни одной строки ни с точной
@ -780,11 +795,12 @@ AURORA-1751; эндпоинт `GET …/vgo-assignments/distribute`, домен `
**Алгоритм — по ТЗ** (решение владельца 08.10.2026, OQ-155): пары, `min`, порог 5 %, а не полная элиминация каждой **Алгоритм — по ТЗ** (решение владельца 08.10.2026, OQ-155): пары, `min`, порог 5 %, а не полная элиминация каждой
стороны, как в эталонном Excel. Пример на фикстурах (Q3 2024, правило № 6): у Счастливочной на «Русский бисквит» 62.01 стороны, как в эталонном Excel. Пример на фикстурах (Q3 2024, правило № 6): у Счастливочной на «Русский бисквит» 62.01
«БП Производство» 106 311 116,46, 62.01 «БП Аренда» 1 401 330, 76.06 350 000, 76.АВ 2 366 666,69; у РБ — одна строка «БП Производство» 106 311 116,46, 62.01 «БП Аренда» 1 401 330, 76.06 350 000 (ещё 76.АВ 2 366 666,69 — «76-исключение»
60.01 106 311 116,46. Упаковка: точная пара 1:1 (106 311 116,46), остальные три строки Счастливочной — без пары. §4, в правило не входит); у РБ — одна строка 60.01 106 311 116,46. Упаковка: точная пара 1:1 (106 311 116,46), остальные
Сумма элиминации: ΣA = 110 429 113,15, ΣB = 106 311 116,46, расхождение 3,87 % ≤ 5 % → min = 106 311 116,46. На экране две строки Счастливочной — без пары. Сумма элиминации: ΣA = 108 062 446,46, ΣB = 106 311 116,46, расхождение 1,65 % ≤ 5 % →
«Пары ВГО» строки 76.06 и 76.АВ входят и в правило № 5, если у РБ есть 66.04/67.04 на Счастливочную, — двойной учёт min = 106 311 116,46 (до 10.11.2026, с 76.АВ: ΣA = 110 429 113,15, 3,87 %). На экране
(п. 1); на «Таблице корректировок» (п. 2a) без ручного решения они останутся нераспределёнными (`MULTIPLE_RULES`), а «Пары ВГО» строка 76.06 входит и в правило № 5, если у РБ есть 66.04/67.04 на Счастливочную, — двойной учёт
(п. 1); на «Таблице корректировок» (п. 2a) без ручного решения она останется нераспределённой (`MULTIPLE_RULES`), а
не посчитаются дважды. не посчитаются дважды.
--- ---
@ -817,7 +833,8 @@ one_sided = ровно одна из amount_a, amount_b равна 0 (знак
Фильтры строк — как в §3 (COUNTERPARTY, BU/SUM, `account_id IS NOT NULL`). Фильтры строк — как в §3 (COUNTERPARTY, BU/SUM, `account_id IS NOT NULL`).
Результирующая таблица «компания против группы» по статьям: Дебиторка (Дт 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, Результирующая таблица «компания против группы» по статьям: Дебиторка (Дт 60.02, 60.22, 60.32, 62.01, 62.03, 62.21,
62.31, 76 кроме 76.07.5/76.07.9), Кредиторка (Кт 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 кроме 76.07.1), 62.31, 76 кроме «76-исключений» §4), Кредиторка (Кт 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 кроме
«76-исключений»),
ФВ (Дт 58.01, 58.03), Долгосрочные займы (Кт 67, 67.03), Краткосрочные (Кт 66, 66.03, 66.04); колонка «Итого по группе». ФВ (Дт 58.01, 58.03), Долгосрочные займы (Кт 67, 67.03), Краткосрочные (Кт 66, 66.03, 66.04); колонка «Итого по группе».
--- ---

View File

@ -169,7 +169,7 @@
| OQ-161 | Документ, период которого не совпадает с периодом консолидации, молча не привязывается к версии: ручное подтверждение проходит (200), а `fits` (`period_year` = год версии, D-5 Среза 4) его отбрасывает, `period_check` остаётся `UNKNOWN` (OQ-120) — свод пуст без объяснения (владелец 12.10.2026: ОСВ за 1 кв. 2025 в консолидации 2026 Q1). Период ОСВ берётся из шапки и через API не правится. Нужно ли (1) предупреждение «документ не подходит ни одной версии» при загрузке или подтверждении, (2) правка периода документа аналитиком (рядом с первичкой, как `original_*`), (3) постоянный режим «период из консолидации» для файлов, загруженных в неё | разбор владельца 12.10.2026; RSHB/arm-core#103 | `fits`, свод, чек-лист (§2, §9.3), карточка документа | **закрыт решением владельца 21.10.2026 (RSHB/arm-ka-docs#147, AURORA-1442): вариант (2)** — аналитик уточняет период и счёт документа ОСВ на месте, распознанные значения — в `document.original_values` (DBML v5.20), аудит `RECOGNIZED_DATA_EDIT`; правка подтверждённой ОСВ сбрасывает подтверждение и снимает привязки к версиям «в работе»; строки `osv_entry` при смене счёта не меняются. Правило — `05-domain-rules.md` §9.5 п. 12. Варианты (1) и (3) не делаются. Прежнее временное допущение остаётся до появления правки на экране, затем флаг снимается отдельной задачей: настройка `CONSOLIDATION_PERIOD_FROM_VERSION` (по умолчанию `false`; в контуре — `OPENBAO__APP__CONSOLIDATION_PERIOD_FROM_VERSION`) — ОСВ, загруженная в консолидацию (`stored_file.consolidation_id`) и не подходящая ей по периоду шапки, считается нарастающей за год и квартал консолидации для привязки, свода, чек-листа и колонки «ОСВ»; документ не меняется; ББ/ОФР и файлы с рабочего стола — по шапке; склейки кварталов нет (один слот на счёт ЮЛ). Только для тестов. | | OQ-161 | Документ, период которого не совпадает с периодом консолидации, молча не привязывается к версии: ручное подтверждение проходит (200), а `fits` (`period_year` = год версии, D-5 Среза 4) его отбрасывает, `period_check` остаётся `UNKNOWN` (OQ-120) — свод пуст без объяснения (владелец 12.10.2026: ОСВ за 1 кв. 2025 в консолидации 2026 Q1). Период ОСВ берётся из шапки и через API не правится. Нужно ли (1) предупреждение «документ не подходит ни одной версии» при загрузке или подтверждении, (2) правка периода документа аналитиком (рядом с первичкой, как `original_*`), (3) постоянный режим «период из консолидации» для файлов, загруженных в неё | разбор владельца 12.10.2026; RSHB/arm-core#103 | `fits`, свод, чек-лист (§2, §9.3), карточка документа | **закрыт решением владельца 21.10.2026 (RSHB/arm-ka-docs#147, AURORA-1442): вариант (2)** — аналитик уточняет период и счёт документа ОСВ на месте, распознанные значения — в `document.original_values` (DBML v5.20), аудит `RECOGNIZED_DATA_EDIT`; правка подтверждённой ОСВ сбрасывает подтверждение и снимает привязки к версиям «в работе»; строки `osv_entry` при смене счёта не меняются. Правило — `05-domain-rules.md` §9.5 п. 12. Варианты (1) и (3) не делаются. Прежнее временное допущение остаётся до появления правки на экране, затем флаг снимается отдельной задачей: настройка `CONSOLIDATION_PERIOD_FROM_VERSION` (по умолчанию `false`; в контуре — `OPENBAO__APP__CONSOLIDATION_PERIOD_FROM_VERSION`) — ОСВ, загруженная в консолидацию (`stored_file.consolidation_id`) и не подходящая ей по периоду шапки, считается нарастающей за год и квартал консолидации для привязки, свода, чек-листа и колонки «ОСВ»; документ не меняется; ББ/ОФР и файлы с рабочего стола — по шапке; склейки кварталов нет (один слот на счёт ЮЛ). Только для тестов. |
| OQ-162 | ОСВ 1С, шапка варианта 2 «Детализация по субсчетам, субконто: Контрагенты, Контрагенты.ИНН» (ООО «Зерновая компания „Новопетровская“», ОСВ 60 за 9 мес. 2025, замечание банка 13.10.2026): ИНН выводится **отдельной строкой под** контрагентом (уровень глубже, те же суммы, ИНН числом). Парсер принимал «Контрагенты.ИНН» за второй уровень контрагентов: в «Контрагент / аналитика» — `2370012036.0`, наименования нет, ИНН у строк `null` → нет признака ГК/ГСК/Внешний, суммы контрагента в своде дважды | замечание банка 13.10.2026; RSHB/arm-tabular-parser#32 | tabular-parser §1.1, §1.3; свод и резолв контрагента в ядре | **решено владельцем 13.10.2026:** `<группировка>.ИНН` — реквизит, не уровень; строка ИНН склеивается с родительским контрагентом (ИНН — родителю, строка из `rows` убирается, дети — к контрагенту), только если она единственная у родителя и суммы равны; иначе строка `OTHER` и `needs_check`; пустая ячейка ИНН (физлицо) — склейка без ИНН (рулинг R-1); целое число из ячейки xls — без «.0». `05-domain-rules.md` §1.1, §1.3; **реализовано** RSHB/arm-tabular-parser#32 (713 из 716 контрагентов файла получили ИНН, 3 физлица без ИНН). Правило строки ИНН заменено OQ-163 (13.10.2026). | | OQ-162 | ОСВ 1С, шапка варианта 2 «Детализация по субсчетам, субконто: Контрагенты, Контрагенты.ИНН» (ООО «Зерновая компания „Новопетровская“», ОСВ 60 за 9 мес. 2025, замечание банка 13.10.2026): ИНН выводится **отдельной строкой под** контрагентом (уровень глубже, те же суммы, ИНН числом). Парсер принимал «Контрагенты.ИНН» за второй уровень контрагентов: в «Контрагент / аналитика» — `2370012036.0`, наименования нет, ИНН у строк `null` → нет признака ГК/ГСК/Внешний, суммы контрагента в своде дважды | замечание банка 13.10.2026; RSHB/arm-tabular-parser#32 | tabular-parser §1.1, §1.3; свод и резолв контрагента в ядре | **решено владельцем 13.10.2026:** `<группировка>.ИНН` — реквизит, не уровень; строка ИНН склеивается с родительским контрагентом (ИНН — родителю, строка из `rows` убирается, дети — к контрагенту), только если она единственная у родителя и суммы равны; иначе строка `OTHER` и `needs_check`; пустая ячейка ИНН (физлицо) — склейка без ИНН (рулинг R-1); целое число из ячейки xls — без «.0». `05-domain-rules.md` §1.1, §1.3; **реализовано** RSHB/arm-tabular-parser#32 (713 из 716 контрагентов файла получили ИНН, 3 физлица без ИНН). Правило строки ИНН заменено OQ-163 (13.10.2026). |
| OQ-163 | ОСВ, где ИНН контрагента выведен **отдельной строкой** рядом с наименованием, в любой раскладке: над / под × в дереве / не в дереве × с суммами / без (требование владельца 13.10.2026). До решения парсер склеивал только «над, не в дереве, без сумм» (OQ-130) и «под, в дереве» при подсказке «Контрагенты.ИНН» (OQ-162); «под, не в дереве, без сумм» отдавал ИНН следующему контрагенту | владелец, 13.10.2026; RSHB/arm-tabular-parser#35, #34 | tabular-parser §1.1, §1.3 | **решено владельцем 13.10.2026:** без подсказки в шапке строка ИНН — только с верной контрольной суммой ИНН (во всех раскладках, включая OQ-130); с подсказкой — без проверки, порядок элементов задаёт направление; «над, в дереве» — только единственный ребёнок; соседи — по суммам, без сумм — по направлению листа (шапка → пары по суммам → однозначные блоки); неоднозначное — строка `OTHER`, `needs_check`; ведущий ноль числовой строки ИНН (#34). Уточнения владельца (H-1): строка из 10/12 цифр с неверной контрольной суммой не склеивается, остаётся обычной строкой, предупреждение «похожа на ИНН …», `needs_check` (синтетика `s28`); (H-2): если пара найдена, но раскладка противоречит направлению подсказки `<группировка>.ИНН`, строка склеивается, но выдаётся отдельное предупреждение «стоит под/над наименованием … а шапка указывает над/под — проверьте» и `needs_check`. `05-domain-rules.md` §1.3; **реализовано** RSHB/arm-tabular-parser#35 | | OQ-163 | ОСВ, где ИНН контрагента выведен **отдельной строкой** рядом с наименованием, в любой раскладке: над / под × в дереве / не в дереве × с суммами / без (требование владельца 13.10.2026). До решения парсер склеивал только «над, не в дереве, без сумм» (OQ-130) и «под, в дереве» при подсказке «Контрагенты.ИНН» (OQ-162); «под, не в дереве, без сумм» отдавал ИНН следующему контрагенту | владелец, 13.10.2026; RSHB/arm-tabular-parser#35, #34 | tabular-parser §1.1, §1.3 | **решено владельцем 13.10.2026:** без подсказки в шапке строка ИНН — только с верной контрольной суммой ИНН (во всех раскладках, включая OQ-130); с подсказкой — без проверки, порядок элементов задаёт направление; «над, в дереве» — только единственный ребёнок; соседи — по суммам, без сумм — по направлению листа (шапка → пары по суммам → однозначные блоки); неоднозначное — строка `OTHER`, `needs_check`; ведущий ноль числовой строки ИНН (#34). Уточнения владельца (H-1): строка из 10/12 цифр с неверной контрольной суммой не склеивается, остаётся обычной строкой, предупреждение «похожа на ИНН …», `needs_check` (синтетика `s28`); (H-2): если пара найдена, но раскладка противоречит направлению подсказки `<группировка>.ИНН`, строка склеивается, но выдаётся отдельное предупреждение «стоит под/над наименованием … а шапка указывает над/под — проверьте» и `needs_check`. `05-domain-rules.md` §1.3; **реализовано** RSHB/arm-tabular-parser#35 |
| OQ-164 | Субсчета 76 с налоговой природой в ВГО: исключать ли **76.АВ** «НДС по авансам и предоплатам» из ДЗ и зеркально **76.ВА** «НДС по авансам выданным» из КЗ (правила № 5–8 и результирующая таблица §6: «76 кроме 76.07.5/76.07.9»). В ОСВ Счастливочной на 30.09.2024 на 76.АВ — 2 366 666,69 с контрагентом АО «Русский бисквит»: результирующая таблица даёт ДЗ 110 429 113,15, эталон (`fixtures/golden/Консолидация_Группа РБ.xlsx`, лист `01.10.2024`, строка 1230 «в т. ч. взаимные») — 108 062 тыс., ровно без 76.АВ (107 712 446,46 + 350 000 по 76.06 = 108 062 446,46). Есть ли ещё субсчета 76, которые нужно исключать | ревью RSHB/arm-core#114 (шахматка, AURORA-1537), 15.10.2026; вопрос аналитику — AURORA-1373 | `elimination_rule` (Прил. 3, данные), §4, §6; `RESULT_ARTICLES` шахматки; сверка с эталоном (OQ-155) | открыт: до ответа аналитика/методологов расчёт по §4/§6 как есть (76.АВ входит в ДЗ); исключение — правка правил-данных и §4/§6, не кода шахматки | | OQ-164 | Субсчета 76 с налоговой природой в ВГО: исключать ли **76.АВ** «НДС по авансам и предоплатам» из ДЗ и зеркально **76.ВА** «НДС по авансам выданным» из КЗ (правила № 5–8 и результирующая таблица §6: «76 кроме 76.07.5/76.07.9»). В ОСВ Счастливочной на 30.09.2024 на 76.АВ — 2 366 666,69 с контрагентом АО «Русский бисквит»: результирующая таблица даёт ДЗ 110 429 113,15, эталон (`fixtures/golden/Консолидация_Группа РБ.xlsx`, лист `01.10.2024`, строка 1230 «в т. ч. взаимные») — 108 062 тыс., ровно без 76.АВ (107 712 446,46 + 350 000 по 76.06 = 108 062 446,46). Есть ли ещё субсчета 76, которые нужно исключать | ревью RSHB/arm-core#114 (шахматка, AURORA-1537), 15.10.2026; вопрос аналитику — AURORA-1373 | `elimination_rule` (Прил. 3, данные), §4, §6; `RESULT_ARTICLES` шахматки; сверка с эталоном (OQ-155) | **закрыт 10.11.2026 (Лысенко, по замечанию заказчика 09.11.2026; AURORA-2034):** 76.АВ и 76.ВА исключаются вместе с остальными «76-исключениями» §4 — аренда 76.07/76.27/76.37 .1/.5/.9 и 76.К, 76.Н, 76.НА, 76.ОТ — на обеих сторонах правил 5–8 и в результирующей таблице §6; версия правил 1 исправлена на месте (решение владельца 10.11.2026). Результирующая таблица по Счастливочной на 30.09.2024 даёт ДЗ без 76.АВ, как эталон |
| OQ-165 | Склейка двух половинок одной формы из **одного** файла (Р-15): Excel с листом-продолжением другого типа, двойная печать формы, две таблицы ИС одного типа и периода. Сейчас вторая форма того же типа и периода хранится отдельным документом (Р-10), ни одна не автоподтверждается (Р-18), подтверждение второй при подтверждённой первой — 409 `DUPLICATE_FORM`; склейки нет — файл перезагружают. Нужна ли склейка (кнопка «объединить формы») и по каким правилам | change `unified-statement-normalization`, Р-15, Р-18 | arm-core (`document.file_ordinal`, подтверждение), arm-web, §9.5 п. 2 | открыт: от ИС Сканирование такой случай не ожидается (владелец 17.10.2026), основной источник — Excel; допущение — склейки нет, файл перезагружают | | OQ-165 | Склейка двух половинок одной формы из **одного** файла (Р-15): Excel с листом-продолжением другого типа, двойная печать формы, две таблицы ИС одного типа и периода. Сейчас вторая форма того же типа и периода хранится отдельным документом (Р-10), ни одна не автоподтверждается (Р-18), подтверждение второй при подтверждённой первой — 409 `DUPLICATE_FORM`; склейки нет — файл перезагружают. Нужна ли склейка (кнопка «объединить формы») и по каким правилам | change `unified-statement-normalization`, Р-15, Р-18 | arm-core (`document.file_ordinal`, подтверждение), arm-web, §9.5 п. 2 | открыт: от ИС Сканирование такой случай не ожидается (владелец 17.10.2026), основной источник — Excel; допущение — склейки нет, файл перезагружают |
| OQ-166 | Упрощённая форма ББ/ОФР (приказ 66н, прил. 5): признак — по структуре кодов (ББ: есть 1600, нет 1100 и 1200; ОФР: есть 2400 или 2110, нет 2100, 2200, 2300), ОКУД 0710096 признаком не служит. Набор соотношений §7 и перечень кодов упрощённой формы заданы по бланку (`05-domain-rules.md` §7, решение S-5 спеки; ББ — жёсткие, ОФР `2400 = 2110 − 2120 − 2330 + 2340 − 2350 − 2410` — мягкое, как `2400` полного набора, решение владельца 18.10.2026, Р-22; перечни — `contracts/statement-code-orders.yaml`, у `fsbu4` — как у 66н) без образца в `fixtures/` | change `unified-statement-normalization`, design (Decisions № 14) | `arm_statements` `statement_checks.yaml`, перечень кодов, `form_variant` | открыт: допущение — формулы §7 «Упрощённый набор»; нужен реальный образец упрощённой отчётности (Excel и скан) в `fixtures/` для проверки признака и формул | | OQ-166 | Упрощённая форма ББ/ОФР (приказ 66н, прил. 5): признак — по структуре кодов (ББ: есть 1600, нет 1100 и 1200; ОФР: есть 2400 или 2110, нет 2100, 2200, 2300), ОКУД 0710096 признаком не служит. Набор соотношений §7 и перечень кодов упрощённой формы заданы по бланку (`05-domain-rules.md` §7, решение S-5 спеки; ББ — жёсткие, ОФР `2400 = 2110 − 2120 − 2330 + 2340 − 2350 − 2410` — мягкое, как `2400` полного набора, решение владельца 18.10.2026, Р-22; перечни — `contracts/statement-code-orders.yaml`, у `fsbu4` — как у 66н) без образца в `fixtures/` | change `unified-statement-normalization`, design (Decisions № 14) | `arm_statements` `statement_checks.yaml`, перечень кодов, `form_variant` | открыт: допущение — формулы §7 «Упрощённый набор»; нужен реальный образец упрощённой отчётности (Excel и скан) в `fixtures/` для проверки признака и формул |
| OQ-167 | Несколько отчётных периодов в одном файле, отданном в ИС Сканирование (например, ББ за два квартала в одном PDF): шапка в json ИС одна на json и копируется во все его таблицы | change `unified-statement-normalization`, design шаг 1 (допущение владельца 17.10.2026) | scan-gateway (адаптер шага 1), период документа | допущение владельца: ИС отдаёт разные периоды разными json; образца нет — проверить на первом таком файле, при расхождении — шапка из json неверна для части таблиц | | OQ-167 | Несколько отчётных периодов в одном файле, отданном в ИС Сканирование (например, ББ за два квартала в одном PDF): шапка в json ИС одна на json и копируется во все его таблицы | change `unified-statement-normalization`, design шаг 1 (допущение владельца 17.10.2026) | scan-gateway (адаптер шага 1), период документа | допущение владельца: ИС отдаёт разные периоды разными json; образца нет — проверить на первом таком файле, при расхождении — шапка из json неверна для части таблиц |

View File

@ -875,8 +875,8 @@
| Статья | Счета | | Статья | Счета |
|---|---| |---|---|
| Дебиторская задолженность | дебет 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме 76.07.5, 76.07.9) | | Дебиторская задолженность | дебет 60.02, 60.22, 60.32, 62.01, 62.03, 62.21, 62.31, 76 (кроме субсчетов аренды 76.07/76.27/76.37 .1/.5/.9 и 76.АВ, 76.ВА, 76.К, 76.Н, 76.НА, 76.ОТ) |
| Кредиторская задолженность | кредит 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме 76.07.1) | | Кредиторская задолженность | кредит 60.01, 60.03, 60.21, 60.31, 62.02, 62.22, 62.32, 76 (кроме тех же субсчетов 76) |
| Финансовые вложения | дебет 58.01, 58.03 | | Финансовые вложения | дебет 58.01, 58.03 |
| Долгосрочные кредиты и займы | кредит 67, 67.03 | | Долгосрочные кредиты и займы | кредит 67, 67.03 |
| Краткосрочные кредиты и займы | кредит 66, 66.03, 66.04 | | Краткосрочные кредиты и займы | кредит 66, 66.03, 66.04 |