/subsystem-edit — редактирование подсистемы 1С
MCP routing
- Preferred path: use MCP
unicatoolunica.applyс операциямиcontent.add,content.remove,childSubsystem.add,childSubsystem.removeиprops.set. - Do not call internal MCP/CLI adapters directly. They are hidden behind
unicaand synchronized by the orchestrator. - Подсистему называет адрес:
args.atвида<набор>:Subsystem.<Имя>. Дочерняя — продолжением того же адреса. Путь к XML наружу не выходит; из диффа или лога его переводит аварийныйunica.resolve. - Всегда сначала
dryRun: true. ПрименяйdryRun: falseтолько когда пользователь явно попросил внести именно эту правку, и только сifRevиз предпросмотра. - Проверка поддержки поставщика работает внутри
unica. Если она блокирует заблокированный объект на поддержке, предпочитай расширение или явный план смены состояния поддержки, а не правку метаданных поддержки напрямую.
Операции
| Операция | args |
Что делает |
|---|---|---|
content.add |
items: [{object}] |
Добавляет объекты в состав |
content.remove |
items: [{object}] |
Удаляет объекты из состава |
childSubsystem.add |
items: [{name}] |
Заводит дочернюю подсистему |
childSubsystem.remove |
items: [{name}] |
Удаляет дочернюю подсистему |
props.set |
values: {…} |
Меняет свойства: Synonym, IncludeInCommandInterface, UseOneCommand и прочие |
Элемент списка можно писать строкой вместо объекта. Операции применяются по
порядку и публикуются одной транзакцией: либо все, либо ни одной. Повтор
эквивалентной операции даёт changed: false без записи.
Заведение дочерней подсистемы создаёт и её собственный файл, и ссылку на неё у родителя — это одна правка, а не две.
Порядок
- Найди подсистему:
unica.search {corpus: "names", kind: "Subsystem"}. - Прочти её:
unica.view {at}— состав и дочерние лежат в ветвях. - Предпросмотр:
unica.applyсdryRun: true; ответ несёт план иifRev. - Применение: тот же вызов с
dryRun: falseи этимifRev. - Проверка:
unica.check {at}.
Примеры
Состав: добавить и убрать за один раз
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.apply",
"arguments": {
"at": "main:Subsystem.Продажи",
"ops": [
{
"op": "content.add",
"args": {
"at": "main:Subsystem.Продажи",
"items": [{"object": "Catalog.Товары"}, {"object": "Report.Продажи"}]
}
},
{
"op": "content.remove",
"args": {
"at": "main:Subsystem.Продажи",
"items": [{"object": "Report.Старый"}]
}
}
],
"dryRun": true
}
}
}
Дочерняя подсистема и свойство
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.apply",
"arguments": {
"at": "main:Subsystem.Продажи",
"ops": [
{
"op": "childSubsystem.add",
"args": {
"at": "main:Subsystem.Продажи",
"items": [{"name": "Заказы"}]
}
},
{
"op": "props.set",
"args": {
"at": "main:Subsystem.Продажи",
"values": {"IncludeInCommandInterface": false}
}
}
],
"dryRun": false,
"ifRev": "<rev из предпросмотра>"
}
}
}