api-design
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Типизированно изменить существующий объект метаданных 1С по логическому адресу одной транзакцией.
$ npx -y skills add IngvarConsulting/unica --skill meta-edit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/meta-editContext preview
The summary Claude sees to decide when to auto-load this skill.
Типизированно изменить существующий объект метаданных 1С по логическому адресу одной транзакцией.
name: meta-edit description: Типизированно изменить существующий объект метаданных 1С по логическому адресу одной транзакцией. argument-hint: <at> <operations> allowed-tools: - Read - Glob
объекта метаданных.
`main:Catalog.Валюты.Attribute` — его реквизиты. Физический путь остаётся внутренней деталью; наружу его отдаёт только аварийный `unica.resolve`.
"names"}`. `"main"` ниже только пример.
Когда пользователь поручил внести эту правку, вызови `unica.apply` только с `executionToken` из `data.executionToken` успешного плана.
публикуются они одной транзакцией — либо все, либо ни одной.
Ответ описывает правку семантическими `effects`, а не возвращает полный XML объекта.
объекта используй путь расширения, а не прямую правку служебных файлов.
приходит в каждом ответе `unica.view`, а подробный контракт одной операции читается адресом `<узел>.Can.<операция>`. Отказ `fixCall` несёт `next` к узлу, где операция исполнима: выполни его, а не подбирай аргументы.
| Предмет | Операции | |---|---| | Свойства объекта | `props.set` | | Реквизиты | `attribute.add`, `attribute.set`, `attribute.remove` | | Табличные части | `tabularSection.add`, `tabularSection.set`, `tabularSection.remove` | | Измерения и ресурсы | `dimension.*`, `resource.*` | | Значения перечисления | `enumValue.add`, `enumValue.set`, `enumValue.remove` | | Графы журнала | `column.add`, `column.set`, `column.remove` | | Макеты и команды | `template.*`, `command.*` | | Предопределённые элементы | `predefinedItem.add`, `predefinedItem.set`, `predefinedItem.remove` | | Ссылки наружу | `relation.add`, `relation.replace`, `relation.remove` | | Встроенная справка | `help.create` | | Объект целиком | `object.remove` |
Допустимые свойства, коллекции, виды типов и связей берутся из контракта операции (`argsSchema` подробного `can`). Общие прикладные правила — в [соглашениях по метаданным](../../references/platform/metadata-conventions.md).
**Член создаётся на владельце, а изменяется и удаляется по своему адресу.** `*.add` адресует того, кому член принадлежит, и несёт новые элементы в `items`: `attribute.add` с `at: "main:Catalog.Валюты"` добавляет реквизит шапки, а с `at: "main:Catalog.Валюты.TabularSection.Представления"` — реквизит этой табличной части. `*.set` и `*.remove` адресуют сам член: `main:Catalog.Валюты.TabularSection.Представления`, `main:Catalog.Валюты.Attribute.Код`, `main:Catalog.Валюты.TabularSection.Представления.Attribute.КодЯзыка`, `main:Enum.ВидыОпераций.EnumValue.Приход`, `…Dimension.<Имя>`, `…Resource.<Имя>`, `…Column.<Имя>`, `…Command.<Имя>`, `…Template.<Имя>`, `…PredefinedItem.<Имя>`. Имени члена в аргументах нет: `set` несёт в `values` только изменяемые поля, переименование — `newName`; `remove` аргументов не принимает. Прежний вызов с `scope.tabularSection` или `values.name` получает отказ, чей `next` называет правильный адрес.
Регистрация макета — `template.add` с `name` и необязательным `templateType` из закрытого набора `HTMLDocument`, `TextDocument`, `SpreadsheetDocument` (по умолчанию), `BinaryData`, `DataCompositionSchema`; снятие регистрации — `template.remove`. Наполнение содержимого остаётся у предметных инструментов своего вида.
`help.create` создаёт `Ext/Help.xml` и `Ext/Help/<lang>.html` владельца и включает `IncludeHelpInContents` его формам; повтор — отказ, операция создаёт только раз.
Коллекция доступна только для `Catalog`, `ChartOfAccounts`, `ChartOfCharacteristicTypes` и `ChartOfCalculationTypes`. Общие поля элемента: `id`, `name`, `code`, `description`. Дополнительные поля закрыты видом владельца:
опубликованной схемы, не строка и не QName;
`extDimensionTypes`;
Для плана счетов `accountType` допускает `Active`, `Passive`, `ActivePassive`; `accountingFlags` — закрытый объект `имя: boolean`; `extDimensionTypes` — массив объектов с `name` и необязательными `turnover`, `accountingFlags`. Явно переданные пустые `{}` и `[]` очищают соответственно поддержанные `Flag` и `ExtDimensionType`; отсутствие поля сохраняет прежнее значение.
`predefinedItem.add` на владельце создаёт только корневой элемент; `id` и `name` задаются здесь. Совпадающий UUID даёт no-op только при эквивалентном образе, иначе `already_exists`. `predefinedItem.set` адресует элемент `…PredefinedItem.<Имя>` и принимает в `values` изменяемые поля, переименование — `newName`; `predefinedItem.remove` — тот же адрес без аргументов. Имя находится на любой глубине иерархии и уникально в объекте: добавление или переименование на занятое имя отвергается. Удаление родителя удаляет всё его поддерево. Неуказанные поля и неизвестные XML-узлы сохраняются.
Элемент читается `unica.view` по тому же адресу: `props.id` — его UUID, остальные поля — в `props`. Список элементов отдаёт ветвь `…PredefinedItem` владельца.
Владельцы справочника и движения документа меняются через `relation.replace` со связью `owners` или `registerRecords`. Источник подписки заменяется той же операцией со связью `source`. Для точечного дополнения используй `relation.add`, для удаления перечисленных источ
Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…
Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…
Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…
Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…
Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля