{ "generated_at": "2026-03-22T16:31:00", "endpoint": "http://localhost/buh_test/odata/standard.odata/", "source_files": [ "logs/metadata.xml", "logs/probe_report.json", "logs/sample_links.json", "logs/deep_subconto_join_probe.json" ], "chains": [ { "chain": "A", "name": "Document_Реализация -> Posting -> Account -> Subconto", "status": "derivable", "evidence": [ "Join proven by Ref_Key + LineNumber <-> Recorder + LineNumber", "Account key consistency verified on joined sample", "Subconto_Type extracted from linked document lines" ] }, { "chain": "B", "name": "Document_Поступление -> Posting -> Accounts", "status": "derivable", "evidence": [ "Document_ПоступлениеТоваровУслуг readable", "Recorder bridge to accounting register", "AccountDr/AccountCr present" ] }, { "chain": "C", "name": "Counterparty -> Contract -> Documents -> Movements", "status": "derivable", "evidence": [ "Catalog_Контрагенты + Catalog_ДоговорыКонтрагентов readable", "Owner_Key / Контрагент_Key / ДоговорКонтрагента_Key present", "Movement join via recorder derivable" ] }, { "chain": "D", "name": "Bank docs -> BankAccount -> Movements", "status": "derivable", "evidence": [ "Document_СписаниеСРасчетногоСчета readable", "Document_ПоступлениеНаРасчетныйСчет readable", "Bank/account keys + register join available" ] }, { "chain": "E", "name": "Document_ОперацияБух -> AccountingRegister -> Explainability", "status": "derivable", "evidence": [ "Document_ОперацияБух readable", "AccountingRegister_Хозрасчетный and RecordType readable", "Recorder/account fields allow explainability graph base" ] }, { "chain": "F", "name": "ChartOfAccounts -> SubcontoType -> Posting", "status": "derivable", "evidence": [ "Posting account keys are directly readable", "Subconto_Type is available on linked document line entities", "Mapping is data-driven; direct normative chart field mapping is not exposed" ] } ], "relations": [ { "relation": "Document->Posting", "status": "derivable", "evidence": "Recorder bridge in accounting register (+ LineNumber on deep probe)" }, { "relation": "Posting->debitAccount", "status": "direct", "evidence": "AccountDr_Key" }, { "relation": "Posting->creditAccount", "status": "direct", "evidence": "AccountCr_Key" }, { "relation": "Posting->Organization", "status": "direct", "evidence": "Организация_Key" }, { "relation": "Document->Counterparty", "status": "direct", "evidence": "Контрагент_Key in documents" }, { "relation": "Document->Contract", "status": "direct", "evidence": "ДоговорКонтрагента_Key in documents" }, { "relation": "Counterparty->Contract", "status": "direct", "evidence": "Owner_Key in contracts" }, { "relation": "Organization->BankAccount", "status": "direct", "evidence": "ОсновнойБанковскийСчет_Key and СчетОрганизации_Key" }, { "relation": "Posting->SubcontoType", "status": "derivable", "evidence": "Deep join proof in logs/deep_subconto_join_probe.json" } ], "write_guard": { "endpoint": "http://localhost/buh_test/odata/standard.odata/$metadata", "post_status": 405, "patch_status": 405, "delete_status": 405, "note": "transport-level check; role-level deny should be audited in 1C" }, "hard_gate_2026_03_22": { "source": "logs/deep_accounting_mvp_gate.json", "document_to_posting_to_accounts": "pass", "posting_to_subconto123_to_counterparty_contract_item": "fail", "saldo_explainability_from_movements": "pass", "verdict": "Not yet sufficient for MVP accounting ontology; deeper access is justified for failed checks." }, "deep_probe_snapshot": { "tested_document_key": "b8661088-b0f2-11e4-9980-5404a6c12c2c", "posting_rows_for_document": 108, "line_rows_for_document": 36, "joined_rows": 36, "account_match": true } }