Complete name-first 1C adapter saved-state support

This commit is contained in:
2026-07-26 16:39:53 +03:00
parent b8c62fa8fa
commit aed134d817
44 changed files with 15436 additions and 697 deletions
@@ -92,13 +92,14 @@ def run_saved_state_search_with_object_name(params: dict[str, Any] | None = None
adapter_server.read_storage_file_bytes = lambda base_id, table, file_name, timeout_seconds=30: (stored, {"database": base_id}, None)
request_payload = {
"base_id": "upo_test",
"tables": ["ConfigCASSave"],
"layer": "extension_saved_state",
"object_type": "Catalog",
"object_name": "Номенклатура",
"query": "ПередЗаписью",
"limit": 10,
}
request_payload.update(params or {})
request_payload["include_storage"] = True
return adapter_server.call_method(
adapter_server.SAVED_STATE_MODULES_SEARCH_METHOD,
request_payload,
@@ -126,7 +127,9 @@ def run_checks() -> dict[str, Any]:
require((unknown_evidence.get("target") or {}).get("extension_action") == unknown_action, "unknown action must be carried into write_plan_evidence target", failures)
require("intent" not in unknown_evidence, "unknown action must not infer write intent", failures)
require(unknown_next.get("method") == adapter_server.SAVED_STATE_MODULES_SEARCH_METHOD, "write_plan_evidence must expose saved-state module resolver", failures)
require(unknown_next_params.get("tables") == ["ConfigCASSave"], "extension write_plan_evidence must search ConfigCASSave", failures)
require(unknown_next_params.get("layer") == "extension_saved_state", "extension write_plan_evidence must use extension_saved_state", failures)
require(unknown_next_params.get("ref") == "Catalog.Номенклатура", "extension write_plan_evidence must use a public object ref", failures)
require("tables" not in unknown_next_params and "owner_guid" not in unknown_next_params, "public extension evidence must hide storage selectors", failures)
controlled = run_override({"operation_class": "replace_with_control"})
controlled_action = first_action(controlled)
@@ -152,7 +155,8 @@ def run_checks() -> dict[str, Any]:
base_next_params = base_next.get("params") if isinstance(base_next.get("params"), dict) else {}
require(base_action.get("operation_class") == "base_definition", "base routine must be marked as base_definition", failures)
require(base_action.get("requires_control_fragment") is False, "base routine must not require control fragment", failures)
require(base_next_params.get("tables") == ["ConfigSave"], "base write_plan_evidence must search ConfigSave", failures)
require(base_next_params.get("layer") == "base_saved_state", "base write_plan_evidence must use base_saved_state", failures)
require(base_next_params.get("ref") == "Catalog.Номенклатура", "base write_plan_evidence must use a public object ref", failures)
saved_state = run_saved_state_search_with_object_name(controlled_next_params)
saved_state_owner = saved_state.get("owner_resolution") if isinstance(saved_state.get("owner_resolution"), dict) else {}