git:20260428.73f4551 to git:20260819.286b4b8

32 added, 1 removed. Audit A to A.

---
name: 1c-meta-validate
description: Валидация объекта метаданных 1С. Используй после создания или модификации объекта конфигурации для проверки корректности
- argument-hint: <ObjectPath> [-Detailed] [-MaxErrors 30] — pipe-separated paths for batch
+ argument-hint: <ObjectPath> [-IndexPath index.json] [-Detailed] [-MaxErrors 30] - pipe-separated paths for batch
allowed-tools:
- Bash
- Read
- Glob
---
# /meta-validate — валидация объекта метаданных 1С
Проверяет XML объекта метаданных из выгрузки конфигурации на структурные ошибки.
## Параметры
| Параметр | Обяз. | Умолч. | Описание |
|------------|:-----:|---------|-------------------------------------------------|
| ObjectPath | да | — | Путь к XML-файлу или каталогу. Через `\|` для batch |
| Detailed | нет | — | Подробный вывод (все проверки, включая успешные) |
| MaxErrors | нет | 30 | Остановиться после N ошибок (per object) |
| OutFile | нет | — | Записать результат в файл (UTF-8 BOM) |
+ | IndexPath | нет | - | Индекс конфигурации от `1c-config-index`: включает сверку ссылочных типов с остальной конфигурацией |
## Команда
```powershell
powershell.exe -NoProfile -File skills/1c-meta-validate/scripts/meta-validate.ps1 -ObjectPath "Catalogs/Номенклатура/Номенклатура.xml"
powershell.exe -NoProfile -File skills/1c-meta-validate/scripts/meta-validate.ps1 -ObjectPath "Catalogs/Банки|Documents/Заказ"
+ ```
+
+ ## Сверка ссылочных типов (проверка 16)
+
+ Реквизит с типом `CatalogRef.Контрагенты` при отсутствующем справочнике проходил валидацию: объект
+ проверялся сам по себе. Проверка 16 закрывает это - она сверяет типы реквизитов, измерений,
+ ресурсов, реквизитов табличных частей и значение самого объекта с тем, что есть в конфигурации.
+
+ Два источника ответа:
+
+ - **`-IndexPath`** - индекс от навыка `1c-config-index`. Точный ответ: индекс несет ВСЕ порождаемые
+ типы конфигурации, включая `Characteristic.ВидыСубконто` и `DefinedType.МойТип`. Строится один раз
+ на прогон, поэтому годится для проверки всей конфигурации подряд.
+ - **Без него** - резерв: объект ищется файлом в каталоге конфигурации. Для одного объекта дешево, на
+ всей конфигурации - обход каталога на каждую ссылку.
+
+ Нет ни того, ни другого (одиночный файл вне выгрузки) - проверка не выполняется и прямо об этом
+ сообщает. Молчать нельзя: молчание читалось бы как "нарушений нет".
+
+ Тяжесть всегда предупреждение, не ошибка. Проверяется ОДИН объект, и валидатор не знает, полна ли
+ выгрузка: файл могли достать из конфигурации побольше. В расширении и у заимствованного объекта
+ (`ObjectBelonging = Adopted`) формулировка мягче - там ссылка на основную конфигурацию нормальна.
+
+ Ссылочный тип узнается по форме имени: часть до первой точки кончается на `Ref` либо это
+ `Characteristic` или `DefinedType`. Прочее с точкой не трогается - ложное срабатывание дороже
+ пропуска.
+
+ ```bash
+ python skills/1c-config-index/scripts/config-index.py -ConfigPath src -OutFile .cache/index.json
+ python skills/1c-meta-validate/scripts/meta-validate.py -ObjectPath src/Catalogs/Контрагенты.xml -IndexPath .cache/index.json
```