Skip to content
Back to skills

Meta Add

ASecurity

Создать объект метаданных 1С и при необходимости настроить его в том же вызове одной транзакцией.

  • 213 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agents

Works with

  • mcp

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add IngvarConsulting/unica --skill meta-add --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Meta Add?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Meta Add
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ingvarconsulting-meta-add/badge)](https://www.skillsdirectory.com/skills/ingvarconsulting-meta-add)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: meta-add
description: Создать объект метаданных 1С и при необходимости настроить его в том же вызове одной транзакцией.
argument-hint: <at> <operations>
allowed-tools:
  - Read
  - Glob
---

# /unica:meta-add — создание объекта метаданных

## MCP routing

- Preferred path: use MCP `unica` tool `unica.apply` с операцией
  `object.create`.
- `object.create` адресуется корнем конфигурации — `<набор>:Configuration`, —
  а вид и имя нового объекта передаются в `values`. Следующие операции того же
  плана адресуются уже самим объектом. Физическое расположение XML внутри
  выгрузки — внутренняя деталь; наружу путь отдаёт только аварийный
  `unica.resolve`.
- Имя набора даёт `unica.view {}`. `"main"` ниже только пример.
- Сначала вызови `unica.apply` с `at` и `ops`: это план без записи.
  Когда пользователь поручил внести эту правку, вызови `unica.apply` только
  с `executionToken` из `data.executionToken` успешного плана.
- Настройка при создании — это следующие операции того же плана: они видят
  результат предыдущих и публикуются одной транзакцией, либо все, либо ни
  одной.
- Читай из ответа `changed`, `effects` по порядку операций и диагностики.
  Ответ описывает правку семантическими `effects`, а не возвращает
  полный XML созданного объекта.
- Один план создаёт один объект. Несколько объектов — несколько планов.

## Операции создания и настройки

| Операция | Что делает |
|---|---|
| `object.create` | Создаёт объект метаданных по адресу |
| `props.set` | Задаёт свойства объекта именами платформы |
| `attribute.add`, `tabularSection.add`, `dimension.add`, `resource.add`, `enumValue.add`, `column.add` | Добавляют элементы коллекции; `at` — сам объект, элементы идут в `items` |
| `template.add`, `command.add` | Регистрируют макет и команду |
| `predefinedItem.add` | Добавляет предопределённый элемент |
| `relation.add`, `relation.replace`, `relation.remove` | Задают ссылки объекта наружу |
| `help.create` | Заводит встроенную справку владельца |

Виды, свойства, коллекции и варианты типов берутся из опубликованной схемы
операции: схема является контрактом, поэтому перечень здесь не дублируется.
Общие прикладные правила — в
[соглашениях по метаданным](../../references/platform/metadata-conventions.md).

Источник подписки на событие задаётся `relation.replace` со связью `source`;
отдельной операции под источник нет. `Event` и `Handler` передавай через
`props.set` в том же вызове, если выбранный шаблоном обработчик итоговой
связке не подходит.

Тип уникального идентификатора задаётся закрытым вариантом `{"kind": "uuid"}`.
Свойство наблюдения `mutationCapability` из ответа читателя во вход писателя
не передаётся, и неизвестный QName нельзя копировать из XML в аргументы.

Тип значения константы задаётся через `props.set` по адресу константы:
`values: {"Type": {"variants": [{"kind": "boolean"}]}}`. При создании помести
эту операцию сразу после `object.create` в том же вызове. Для ссылки используй
вариант `{"kind": "reference", "metadataPath": "Catalog.Номенклатура"}`;
строка QName не принимается. Состав типов и квалификаторы те же, что у
реквизитов. `view` возвращает тип в `props.type` как компактную JSON-строку.

Если схема не представляет сценарий, остановись и скажи прямо, что оставшийся
шаг выполняется в Конфигураторе. Не подставляй составное значение строкой и не
заводи временный файл определения.

## MCP examples

### Создать и настроить одним вызовом

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Configuration",
      "ops": [
        {
          "op": "object.create",
          "args": {
            "at": "main:Configuration",
            "values": {"kind": "Catalog", "name": "НовыйСправочник"}
          }
        },
        {
          "op": "props.set",
          "args": {
            "at": "main:Catalog.НовыйСправочник",
            "values": {"Comment": "Создан и настроен одним планом"}
          }
        },
        {
          "op": "attribute.add",
          "args": {
            "at": "main:Catalog.НовыйСправочник",
            "items": [
              {
                "name": "ВнешнийИдентификатор",
                "type": {"variants": [{"kind": "uuid"}]},
                "required": true
              }
            ]
          }
        }
      ]
    }
  }
}
```

### Создать подписку с типизированным источником

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.apply",
    "arguments": {
      "at": "main:Configuration",
      "ops": [
        {
          "op": "object.create",
          "args": {
            "at": "main:Configuration",
            "values": {
              "kind": "EventSubscription",
              "name": "ПередЗаписьюНоменклатуры"
            }
          }
        },
        {
          "op": "relation.replace",
          "args": {
            "at": "main:EventSubscription.ПередЗаписьюНоменклатуры",
            "values": {
              "relation": "source",
              "targets": [
                {"kind": "object", "metadataPath": "Catalog.Номенклатура"}
              ]
            }
          }
        },
        {
          "op": "props.set",
          "args": {
            "at": "main:EventSubscription.ПередЗаписьюНоменклатуры",
            "values": {
              "Event": "BeforeWrite",
              "Handler": "CommonModule.ОбработчикиПодписок.ПередЗаписьюНоменклатуры"
            }
          }
        }
      ]
    }
  }
}
```

Объект каталога передаёт событию `BeforeWrite` параметр `Cancel`; обработчик
должен быть экспортной процедурой `(Source, Cancel)` в общем модуле с явными
`Global=false`, `Server=true`. Пустой итоговый `Source`, примитивы, ссылки,
неизвестное событие или несовместимая сигнатура отклоняются до публикации.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…