64 lines
3.9 KiB
Markdown
64 lines
3.9 KiB
Markdown
# probe_matrix
|
||
|
||
## Probe Context
|
||
|
||
- Date: `2026-03-22`
|
||
- Endpoint: `http://localhost/buh_test/odata/standard.odata/`
|
||
- Source files:
|
||
- `logs/probe_report.json`
|
||
- `logs/sample_links.json`
|
||
- `logs/metadata.xml`
|
||
- `logs/deep_subconto_join_probe.json`
|
||
|
||
## Chain Status Matrix
|
||
|
||
| Chain | Description | Status | Evidence summary |
|
||
|---|---|---|---|
|
||
| A | `Document_Реализация -> Posting -> Account -> Subconto` | `derivable` | Proven by join: document lines (`Ref_Key + LineNumber`) to posting rows (`Recorder + LineNumber`), with account match and `Subconto_Type` present. |
|
||
| B | `Document_Поступление -> Posting -> Accounts` | `derivable` | Document rows are readable; account keys restored via `Recorder` bridge to accounting register. |
|
||
| C | `Counterparty -> Contract -> Documents -> Movements` | `derivable` | `Owner_Key`, `Контрагент_Key`, `ДоговорКонтрагента_Key` are available; movement path is derivable through recorder-based joins. |
|
||
| D | `Bank docs -> BankAccount -> Movements` | `derivable` | Bank documents and bank account keys are readable; movements are joinable via register records. |
|
||
| E | `Document_ОперацияБух -> AccountingRegister -> Explainability` | `derivable` | Manual operation docs and accounting register records are readable with stable account/recorder fields. |
|
||
| F | `ChartOfAccounts -> SubcontoType -> Posting` | `derivable` | Derivable in data-driven mode (posting account + linked document-line `Subconto_Type`), even though direct normative mapping from ChartOfAccounts fields is not exposed. |
|
||
|
||
## Relation-Level Status (core)
|
||
|
||
| Relation | Status | Evidence type |
|
||
|---|---|---|
|
||
| `Document -> Posting` | `derivable` | key-based join (`Ref_Key` <-> `Recorder`) plus `LineNumber` |
|
||
| `Posting -> debitAccount` | `direct` | `AccountDr_Key` in `AccountingRegister_Хозрасчетный_RecordType` |
|
||
| `Posting -> creditAccount` | `direct` | `AccountCr_Key` in `AccountingRegister_Хозрасчетный_RecordType` |
|
||
| `Posting -> Organization` | `direct` | `Организация_Key` in `AccountingRegister_Хозрасчетный_RecordType` |
|
||
| `Document -> Counterparty` | `direct` | `Контрагент_Key` in document entity sets |
|
||
| `Document -> Contract` | `direct` | `ДоговорКонтрагента_Key` in document entity sets |
|
||
| `Counterparty -> Contract` | `direct` | `Owner_Key` in `Catalog_ДоговорыКонтрагентов` |
|
||
| `Organization -> BankAccount` | `direct` | `ОсновнойБанковскийСчет_Key` / `СчетОрганизации_Key` |
|
||
| `Posting -> SubcontoType` | `derivable` | Proven in `logs/deep_subconto_join_probe.json` with joined rows and stable `Subconto_Type` extraction |
|
||
|
||
## Evidence Snapshot For Deep Subconto Probe
|
||
|
||
- Tested document key: `b8661088-b0f2-11e4-9980-5404a6c12c2c`
|
||
- Posting rows for document: `108`
|
||
- Document line rows: `36`
|
||
- Joined rows: `36`
|
||
- Account match in joined sample: `true`
|
||
- Chain A status in deep probe: `derivable`
|
||
- Chain F status in deep probe: `derivable`
|
||
|
||
## Caveat (important)
|
||
|
||
- `ChartOfAccounts -> SubcontoType` is currently reconstructed from observed data (`Posting + Line Subconto_Type`), not from an explicit normative field map exposed by OData metadata.
|
||
- For strict compliance scenarios, keep this caveat in model governance notes.
|
||
- Hard-gate check `posting -> subconto[1..3] -> counterparty/contract/item` is still incomplete: slots `1` and `2` are proven, slot `3` is not yet reproducibly proven (`logs/deep_accounting_mvp_gate.json`).
|
||
- Slot `3` recon artifact confirms this is a data/evidence gap on current sample (`logs/slot3_recon_report.json`): slot3 fields exist in metadata, but non-null slot3 values were not observed in sampled rows.
|
||
|
||
## Security Check (write deny)
|
||
|
||
Transport-level check on `$metadata`:
|
||
|
||
- `POST` -> `405`
|
||
- `PATCH` -> `405`
|
||
- `DELETE` -> `405`
|
||
|
||
Role-level read-only should still be audited in 1C permissions.
|