name: subsystem-interface description: "Use for создания подсистем, управления их составом и настройки CommandInterface.xml (видимость, порядок команд, размещение в группах). Helps поддерживать навигацию конфигурации через xml-gen subsystem/interface compile/edit/validate."
Subsystem + Interface Operations
Когда применять
| Триггер | Действие |
|---|---|
| Создать подсистему из JSON | subsystem compile subsystem.json <output_dir> |
| Посмотреть состав подсистемы | subsystem info <subsystemPath> |
| Добавить объект в подсистему | subsystem edit <path> --op add-content --value "Catalog.Товары" |
| Проверить подсистему | subsystem validate <subsystemPath> |
| Дерево подсистем | subsystem info --mode tree <subsystemPath> |
| Скрыть/показать команду | xml-gen interface edit … --op hide/show |
| Разместить команду в группе | xml-gen interface edit … --op place |
| Задать порядок команд/подсистем/групп | xml-gen interface edit … --op set-order/set-subsystem-order/set-group-order |
| Проверить CommandInterface.xml | xml-gen interface validate <ciPath> |
| Видимость по роли | xml-gen interface edit … --op hide --role <RoleName> |
§1 Subsystem operations
subsystem compile
xml-gen subsystem compile <subsystem.json> <output_dir> [--parent <parentSubsystem.xml>] [--no-stubs]
--parent <path>— bottom-up регистрация: новая подсистема добавляется в ChildObjects родительской (а не в Configuration.xml).--no-stubs— отключить автосоздание stub-XML дляcontent/childrenбез файлов. По умолчанию включено — нужно чтобы валидация не падала в промежуточном состоянии.
subsystem info
xml-gen subsystem info [--mode brief|overview|full|tree|ci] <subsystemPath>
subsystem edit
xml-gen subsystem edit <subsystemPath> --op <operation> --value <value>
Операции: add-content / remove-content / add-child / remove-child / set-property
add-content—"Catalog.Товары"или["Catalog.Товары","Document.Заказ"]add-child— если файл<Parent>/Subsystems/<childName>.xmlотсутствует — создаётся stub-XML.set-property—"IncludeInCommandInterface=true","Synonym=Торговля","Picture=CommonPicture.ТорговляИСклад"
subsystem validate
13 проверок: XML-структура, Properties, Content, ChildObjects, файлы, CommandInterface.
xml-gen subsystem validate <subsystemPath>
§2 Interface operations
interface edit
xml-gen interface edit <ciPath> --op <operation> --value <value> [--role <RoleName>] [--create-if-missing] [--no-validate] [--definition-file <file.json>]
ciPath— путь кCommandInterface.xmlили к директории подсистемы (Ext/CommandInterface.xmlдобавляется автоматически).--definition-file— JSON-файл с массивом операций (пакетный режим; несовместим с--op).--create-if-missing— создать новый файл если отсутствует.--no-validate— пропустить авто-валидацию после изменений.
Операции
| Операция | Аргумент --value |
|---|---|
hide |
"Catalog.Товары.StandardCommand.Create" или ["Cmd1","Cmd2"] |
show |
"Report.Продажи.Command.Отчёт" |
place |
"command=Catalog.X.StandardCommand.Create group=CommandGroup.Документы" |
set-order |
'{"group":"CommandGroup.Отчеты","commands":["Cmd1","Cmd2"]}' |
set-subsystem-order |
'["Subsystem.X.Subsystem.A","Subsystem.X.Subsystem.B"]' |
set-group-order |
'["NavigationPanelOrdinary","NavigationPanelImportant"]' |
Пакетный режим (definition-file)
[
{ "op": "hide", "value": "Catalog.Товары.StandardCommand.OpenList" },
{ "op": "show", "value": "Report.Продажи.Command.Отчёт" },
{ "op": "place", "value": "command=CommonCommand.Настройки group=CommandGroup.Сервис" }
]
interface validate
xml-gen interface validate <ciPath> [--detailed] [--max-errors <N>]
13 проверок: корневой элемент <CommandInterface>, допустимые секции (CommandsVisibility/CommandsPlacement/CommandsOrder/SubsystemsOrder/GroupsOrder), канонический порядок секций, формат ссылок, дубликаты, значения true/false, ссылки на группы, формат Subsystem.X.Subsystem.Y, encoding UTF-8 BOM, лишние атрибуты.
Субагент reviewer обязан вызвать interface validate перед финальным ревью изменений в CommandInterface.xml.
Формат ссылок на команды
| Тип | Пример |
|---|---|
| Общая команда | CommonCommand.ОткрытьСправочник |
| Стандартная команда каталога | Catalog.Товары.StandardCommand.Create |
| Стандартная команда (список) | Catalog.Товары.StandardCommand.OpenList |
| Команда объекта | Catalog.Товары.Command.ПечатьЭтикетки |
| Команда отчёта | Report.Продажи.Command.Отчёт |
| UUID-ссылка | 0:<uuid> |
По умолчанию interface edit запускает interface validate после каждого изменения.