# Полная Инвентаризация 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`