# 1C MCP Toolkit Semantic Probe Report

Дата обновления: 2026-03-23

## 1. Цель probe

Проверить воспроизводимо три жёсткие цепочки:

1. `document -> posting -> debit/credit account`
2. `posting -> subconto[1..3] -> counterparty / contract / item`
3. Объяснение одного реального остатка/сальдо через набор движений

## 2. Ограничения

- Только read-only вызовы.
- `execute_code` не используется.
- Локальный контур.

## 3. Матрица статусов

| Цепочка | Статус | Комментарий |
|---|---|---|
| document -> posting -> debit/credit account | PROVEN | Есть реальная проводка + чтение документа по ссылке |
| posting -> subconto[1..3] -> counterparty/contract/item | PROVEN | Зафиксированы реальные примеры по контрагент/договор и номенклатура |
| balance/saldo -> movements explanation | PROVEN | Сальдо счёта совпало с агрегатом движений (delta = 0) |

## 4. Доказательства

### 4.1 `document -> posting -> debit/credit account`

- Пример проводки:
  - Регистратор: `Счет-фактура полученный 00000000001 от 03.08.2030 12:00:00`
  - Дт: `68.02`
  - Кт: `19.04`
  - Сумма: `500`
- Документ по ссылке успешно прочитан через `get_object_by_link`.

Артефакты:
- `X:\1C\NDC_1C\docs\snapshots\toolkit\semantic_context_row_with_org.json`
- `X:\1C\NDC_1C\docs\snapshots\toolkit\get_link_of_object_doc_live.json`
- `X:\1C\NDC_1C\docs\snapshots\toolkit\get_object_by_link_doc_live.json`

### 4.2 `posting -> subconto[1..3] -> counterparty / contract / item`

- Пример `counterparty + contract`:
  - `СубконтоКт1 (Контрагенты)` = `Ассоциация "СРО"СОВЕТ ПРОЕКТИРОВЩИКОВ"`
  - `СубконтоКт2 (Договоры)` = `дело А40-201628/21`
- Пример `item`:
  - `СубконтоКт1 (Номенклатура)` = `Портьерные шторы Garden kolor`
  - В том же движении есть `СубконтоКт3 (Склады)` = `Основной склад`

Артефакты:
- `X:\1C\NDC_1C\docs\snapshots\toolkit\subconto_examples_selected.json`
- `X:\1C\NDC_1C\docs\snapshots\toolkit\subconto_item_value_example.json`

### 4.3 `balance/saldo -> movements explanation`

- Счёт: `68.02`
- Из `Остатки` (агрегат по счёту): `СальдоИтого = 28363.8`
- Из `ДвиженияССубконто`:
  - `ОборотДт = 49600886.74`
  - `ОборотКт = 49572522.94`
  - `СальдоПоДвижениям = 28363.8`
- Сверка: `delta = 0.0` (полное совпадение)

Артефакты:
- `X:\1C\NDC_1C\docs\snapshots\toolkit\q_saldo_account_total.json`
- `X:\1C\NDC_1C\docs\snapshots\toolkit\q_saldo_account_movements_total.json`

## 5. Техническое замечание

Для полиморфных `Субконто` прямые сравнения в некоторых запросах давали ошибку совместимости типов; для check #3 использован устойчивый account-level срез (реальный бухгалтерский счёт + агрегаты по движениям).

## 6. Вывод

Три обязательные проверки закрыты в read-only режиме.  
По критерию семантической доказуемости для MVP: `OData sufficient for broad read` + `toolkit confirms deeper runtime semantics` в живом контуре.
