# 1c Meta Validate

> Валидация объекта метаданных 1С. Используй после создания или модификации объекта конфигурации для проверки корректности

- Skill: `desko77/1c-meta-validate` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add desko77/1c-meta-validate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/desko77/1c-meta-validate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Desko77 (https://skillmd.com/u/desko77)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/desko77/1c-meta-validate

---


# /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
```

