# Полная Инвентаризация OData (2026-03-22)

## 1. Текущее Состояние Интеграции

- OData endpoint: `http://localhost/buh_test/odata/standard.odata/`
- Metadata endpoint: `http://localhost/buh_test/odata/standard.odata/$metadata`
- Web сервер: IIS (`Microsoft-IIS/10.0`)
- Аутентификация: Basic (`realm="1C:Enterprise 8.3"`)
- Интеграционный пользователь: `ndc_probe`
- Режим доступа: read-only (подтверждено командой; role-deny на запись нужно хранить и проверять в 1С)

## 2. Что Мы Имеем По Metadata

Из `logs/metadata.xml` и `logs/entity_sets_annotated.json`:

- Всего entity sets: `1189`
- Приоритетных по ключевым словам: `602`
- Семейств сущностей: `11`

### Разрез По Семействам

| Семейство | Кол-во |
|---|---:|
| `Document_*` | 517 |
| `InformationRegister_*` | 270 |
| `Catalog_*` | 162 |
| `AccumulationRegister_*` | 102 |
| `Constant_*` | 95 |
| `DocumentJournal_*` | 21 |
| `ExchangePlan_*` | 14 |
| `ChartOfCharacteristicTypes_*` | 4 |
| `AccountingRegister_*` | 2 |
| `ChartOfAccounts_*` | 1 |
| `ChartOfCalculationTypes_*` | 1 |

## 3. Ключевые Бизнес-Сущности (Проверка Наличия)

Подтверждено наличие в metadata:

- `Catalog_Контрагенты`
- `Catalog_ДоговорыКонтрагентов`
- `Catalog_Организации`
- `Catalog_БанковскиеСчета`
- `Catalog_Номенклатура`
- `Document_ПоступлениеТоваровУслуг`
- `Document_РеализацияТоваровУслуг`
- `Document_СписаниеСРасчетногоСчета`
- `Document_ПоступлениеНаРасчетныйСчет`
- `AccountingRegister_Хозрасчетный`

## 4. Что Подтверждено Probe-Запросами

Источник: `logs/probe_report.json` (прогон от `2026-03-22T12:30:33Z`).

- Целевых сущностей в прогоне: `8`
- Успешных: `8`
- Ошибок: `0`

| Сущность | Записей | Подозреваемых link-полей |
|---|---:|---:|
| `Catalog_Контрагенты` | 5 | 7 |
| `Catalog_ДоговорыКонтрагентов` | 5 | 9 |
| `Catalog_Организации` | 3 | 9 |
| `Catalog_БанковскиеСчета` | 5 | 5 |
| `Document_АвансовыйОтчет` | 5 | 7 |
| `Document_ПоступлениеТоваровУслуг` | 5 | 13 |
| `Document_РеализацияТоваровУслуг` | 5 | 24 |
| `AccountingRegister_Хозрасчетный` | 5 | 1 |

## 5. Связи, Которые Уже Видны В Данных

Источник: `logs/sample_links.json`.

### 5.1 Контрагенты

`Catalog_Контрагенты` содержит ссылочные поля:
- `ГоловнойКонтрагент_Key`
- `ОсновнойДоговорКонтрагента_Key`
- `ОсновнойБанковскийСчет_Key`
- `СтранаРегистрации_Key`

### 5.2 Договоры

`Catalog_ДоговорыКонтрагентов` содержит:
- `Owner_Key` (владелец/контрагент)
- `Организация_Key`
- `ВалютаВзаиморасчетов_Key`
- `ВидВзаиморасчетов_Key`

### 5.3 Документы

`Document_ПоступлениеТоваровУслуг` показывает связи на:
- `Контрагент_Key`
- `ДоговорКонтрагента_Key`
- `Организация_Key`
- `Склад_Key`
- `СчетУчетаРасчетовСКонтрагентом_Key`

`Document_РеализацияТоваровУслуг` показывает расширенный граф:
- контрагент и договор
- организация и банковский счет
- набор счетов учета расчетов/доходов/расходов
- дополнительные ролевые связи (ответственные, руководитель и т.д.)

### 5.4 Проводки/учетный регистр

`AccountingRegister_Хозрасчетный` читается и содержит ссылку `Recorder`, что дает базу для цепочки:

`Проводка -> Регистратор (документ) -> Контрагент/Договор/Организация`.

## 6. Что Это Значит Для MVP

Уже сейчас подтверждена техническая возможность:

1. Читать живые данные 1С по OData без ручных выгрузок.
2. Строить канонический слой не только по плоским записям, но и по ссылочным связям.
3. Реализовать прикладные эндпоинты:
- документы за период,
- документы контрагента,
- проводки по счету,
- граф связей документа.

## 7. Ограничения На Текущий Момент

1. Часть регистров в выборке может вернуть `0` строк из-за малого окна `top` и фактического наполнения данных.
2. Read-only модель подтверждена организационно, но технический контроль write-deny нужно держать на уровне роли 1С.
3. Для production-сценариев нужны целевые query-шаблоны, а не только универсальный `top`.

## 8. Где Лежит Полный Снэпшот Всех Сущностей

- Полный JSON-снэпшот: `docs/snapshots/entity_sets_snapshot_2026-03-22.json`
- Полный Markdown-снэпшот: `docs/snapshots/entity_sets_snapshot_2026-03-22.md`

Оба файла содержат весь список (`1189`) entity sets.

## 9. Артефакты Проверки

- `logs/metadata.xml`
- `logs/entity_sets.json`
- `logs/entity_sets_annotated.json`
- `logs/entity_sets_annotated.txt`
- `logs/probe_report.json`
- `logs/sample_links.json`
