diff --git a/.claude/skills/meta-edit/child-operations.md b/.claude/skills/meta-edit/child-operations.md index f6cf6581..af6ca933 100644 --- a/.claude/skills/meta-edit/child-operations.md +++ b/.claude/skills/meta-edit/child-operations.md @@ -107,10 +107,34 @@ Batch через `;;` — можно указать разные ТЧ: `"Тов Формат: `ИмяЭлемента: ключ=значение, ключ=значение` -Ключи: `name` (rename), `type`, `synonym`, `indexing`, `fillChecking`, `use` и др. +**Спец-операции** (строчные ключи): `name` (переименование), `type` (смена типа), `synonym`. + +**Скалярные свойства** — по PascalCase XML-имени (как в выгрузке): `Indexing`, `FillChecking`, `Use`, +`FullTextSearch`, `DataHistory`, `PasswordMode`, `MultiLine`, `Mask`, `CreateOnInput`, `QuickChoice` и др. +Отсутствующее в XML свойство **создаётся** (в канонической позиции); неизвестное имя (опечатка) → **ошибка**. ```powershell -Operation modify-attribute -Value "СтароеИмя: name=НовоеИмя, type=Строка(500)" --Operation modify-attribute -Value "Комментарий: indexing=Index" +-Operation modify-attribute -Value "Комментарий: Indexing=Index, FullTextSearch=Use" -Operation modify-enumValue -Value "СтароеЗначение: name=НовоеЗначение" ``` + +### Структурные свойства реквизита + +По PascalCase-имени; сложные значения — через JSON DSL (`{ "modify": { "attributes": { "Имя": { ... } } } }`). +Отсутствующее свойство создаётся; существующее — заменяется. + +| Ключ | Значение | Пример (JSON) | +|------|----------|---------------| +| `Format` / `EditFormat` / `ToolTip` | строка (мультиязычная) | `"Format": "ДФ=dd.MM.yyyy"` | +| `ChoiceForm` | путь формы | `"ChoiceForm": "Catalog.Товары.Form.ФормаВыбора"` | +| `MinValue` / `MaxValue` | число или строка | `"MinValue": 0, "MaxValue": 100` | +| `FillValue` | значение по типу реквизита | `"FillValue": "EmptyRef"` · `true` · `10` · `{"nil": true}` | +| `LinkByType` | `{dataPath, linkItem?}` | `"LinkByType": {"dataPath": "Вид", "linkItem": 0}` | +| `ChoiceParameterLinks` | `[{name, dataPath, valueChange?}]` | `["Отбор.Организация=Организация"]` | +| `ChoiceParameters` | `[{name, type?, value?}]` | `[{"name": "Отбор.ЭтоГруппа", "value": false}]` | + +- `FillValue`: `"EmptyRef"` → пустая ссылка по типу реквизита; `{"emptyRef": true}` / `{"nil": true}` — явные маркеры. +- `ChoiceParameters` value: булево/число/строка/ссылочный путь/массив; `type` (напр. `EnumRef.СтавкиНДС`) разворачивает + короткие имена значений (`"Оптовая"` → `Enum.…EnumValue.Оптовая`). +- Пути данных (`LinkByType`/`ChoiceParameterLinks`) принимают короткое имя реквизита — разворачивается в полный путь объекта. diff --git a/.claude/skills/meta-edit/properties-reference.md b/.claude/skills/meta-edit/properties-reference.md index 74a7eb49..85976075 100644 --- a/.claude/skills/meta-edit/properties-reference.md +++ b/.claude/skills/meta-edit/properties-reference.md @@ -4,12 +4,17 @@ ## modify-property -Изменение скалярных свойств объекта. Формат: `Ключ=Значение` (batch через `;;`): +Изменение скалярных свойств объекта по PascalCase XML-имени (как в выгрузке). Формат: `Ключ=Значение` +(batch через `;;`): ```powershell -Operation modify-property -Value "CodeLength=11 ;; DescriptionLength=150" -Operation modify-property -Value "Hierarchical=true" ``` +Отсутствующее в XML свойство **создаётся** (типовые опущенные свойства вроде `FullTextSearch`, `DataHistory`); +неизвестное имя свойства (опечатка) → **ошибка** (а не тихий no-op). Набор допустимых имён — свойства +соответствующего типа объекта. + ## Complex properties Свойства со вложенной XML-структурой. Поддерживаются через inline `add-*` / `remove-*` / `set-*` и через JSON `modify.properties`.