NODEDC_1C/docs/HARD_SEMANTIC/probe_matrix.md

3.9 KiB
Raw Permalink Blame History

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.