meta-operations

$npx mdskill add SteelMorgan/1c-agent-based-dev-framework/meta-operations

Compiles, edits, validates, and removes 1C metadata objects like catalogs and registers using JSON DSL commands.

  • Helps developers create and manage 1C configuration objects such as directories and documents.
  • Integrates with 1C metadata types and uses a JSON-based domain-specific language.
  • Executes operations based on specific triggers like needing to add attributes or check structures.
  • Presents results through command-line outputs and generated files in specified directories.

SKILL.md

.github/skills/meta-operationsView on GitHub ↗
---
name: meta-operations
description: Операции с объектами метаданных 1С (23 типа) — compile, info, edit, validate, remove. Используй при создании справочников, документов, регистров, перечислений и других объектов конфигурации.
---

# Meta Operations

Работа с объектами метаданных 1С (Catalog, Document, Register и др. — 23 типа).

## Когда применять

| Триггер | Действие |
|---------|----------|
| Нужно создать справочник/документ/регистр | `meta compile meta.json <output_dir>` |
| Нужно посмотреть структуру объекта | `meta info <objectPath>` |
| Нужно добавить реквизит/ТЧ/измерение | `meta edit <objectPath> --op add-attribute "Name: Type"` |
| Нужно проверить объект метаданных | `meta validate <objectPath>` |
| Нужно удалить объект из конфигурации | `meta remove <configDir> Type.Name` |

## Поддерживаемые типы (23)

| Категория | Типы |
|-----------|------|
| Ссылочные | Catalog, Document, Enum, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, ExchangePlan |
| Регистры | InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister |
| Процессы | BusinessProcess, Task |
| Сервисные | HTTPService, WebService |
| Прочие | Constant, DefinedType, CommonModule, Report, DataProcessor, ScheduledJob, DocumentJournal, EventSubscription |

## Команды

### meta compile

Генерация объекта из JSON DSL.

```bash
xml-gen meta compile <meta.json> <output_dir>
```

**JSON DSL:**
```json
{
  "type": "Catalog",
  "name": "Товары",
  "codeLength": 9,
  "descriptionLength": 150,
  "hierarchical": true,
  "attributes": [
    "Артикул: String(50)",
    "Цена: Number(15,2)",
    "Производитель: CatalogRef.Контрагенты"
  ],
  "tabularSections": [
    {
      "name": "Штрихкоды",
      "attributes": ["Штрихкод: String(13)"]
    }
  ]
}
```

### meta info

Анализ объекта: свойства, реквизиты, ТЧ, формы.

```bash
xml-gen meta info [--mode brief|overview|full] <objectPath>
```

### meta edit

Модификация объекта (add/remove/modify).

```bash
xml-gen meta edit <objectPath> --op <operation> "<value>"
```

**Операции:**
- `add-attribute` — `"Вес: Number(15,3) | indexing"`
- `add-dimension` — для регистров
- `add-resource` — для регистров
- `add-ts` — `"Штрихкоды"`
- `add-ts-attribute` — `"ТЧ.Штрихкоды: Значение: String(13)"`
- `add-enumValue` — `"Оплачен"`
- `add-form` / `add-template` / `add-command`
- `remove-attribute` / `remove-ts` / `remove-enumValue` и др.
- `modify-attribute` — `"Name: synonym=Новый синоним, type=String(100)"`
- `add-property` / `modify-property` — изменение свойств объекта

**Shorthand формат:**
```
ИмяРеквизита: ТипДанных | флаги >> after/before Якорь
```

Примеры:
```
Артикул: String(50)
Сумма: Number(15,2) | nonneg
Контрагент: CatalogRef.Контрагенты | indexing
```

### meta validate

Валидация объекта (~40 проверок).

```bash
xml-gen meta validate <objectPath>
```

**Проверки:** структура XML, UUID, Properties (Name, Synonym), boolean-свойства, type-specific правила (22 типа), StandardAttributes, forbidden properties, ChildObjects, InternalInfo/GeneratedType, файловая структура.

### meta remove

Удаление объекта из конфигурации.

```bash
xml-gen meta remove <configDir> <Type.Name> [--dry-run] [--keep-files] [--force]
```

**Алгоритм:**
1. Поиск файлов объекта
2. Проверка ссылок в XML/BSL
3. Удаление из Configuration.xml ChildObjects
4. Удаление из подсистем
5. Удаление файлов

## Русские синонимы типов

В shorthand можно использовать русские имена: Справочник → Catalog, Документ → Document, Перечисление → Enum, РегистрСведений → InformationRegister и т.д.

---
depends_on: []
metadata:
  category: 1c-development
  version: "1.0"
---

More from SteelMorgan/1c-agent-based-dev-framework

SkillDescription
1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
agent-development-ext>
agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.