From b8a6a80d9a4acccc9a33a2ad8aa18a33202a4775 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 12 Jul 2026 11:03:41 +0300 Subject: [PATCH] =?UTF-8?q?docs(meta-edit):=20=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D1=83=D0=BB=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?,=20=D0=BD=D0=B5=20=D0=BE=D1=82=20=D1=80=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По фидбэку: инструкция навыка — о том КАК ПРИМЕНЯТЬ, а не как устроено внутри. Убраны детали реализации: «в канонической позиции», «создаётся/заменяется» механика, расшифровка флагов через внутренние XML-свойства (req→FillChecking=ShowError и т.п.), «вложенная XML-структура» → «свойства-списки». Поведение описано в пользовательских терминах (можно задать даже если не выставлено; опечатка → ошибка; короткие имена в путях). + строка-подсказка в SKILL.md про структурные свойства (обнаружимость возможности). Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/skills/meta-edit/SKILL.md | 3 +++ .claude/skills/meta-edit/child-operations.md | 24 +++++++++---------- .../skills/meta-edit/properties-reference.md | 15 ++++++------ 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/.claude/skills/meta-edit/SKILL.md b/.claude/skills/meta-edit/SKILL.md index ed8c11f1..d03a4f06 100644 --- a/.claude/skills/meta-edit/SKILL.md +++ b/.claude/skills/meta-edit/SKILL.md @@ -59,6 +59,9 @@ Batch через `;;` во всех операциях. Подробный си Позиционная вставка: `"Склад: CatalogRef.Склады >> after Организация"`. +`modify-attribute` умеет и структурные свойства реквизита — формат/подсказку, форму и параметры выбора, +значение заполнения, границы (`Format`, `ChoiceForm`, `ChoiceParameters`, `FillValue`, `MinValue`/`MaxValue` и др.). + ### Свойства объекта — [properties-reference.md](properties-reference.md) | Операция | Формат Value | Пример | diff --git a/.claude/skills/meta-edit/child-operations.md b/.claude/skills/meta-edit/child-operations.md index af6ca933..bc0b38ad 100644 --- a/.claude/skills/meta-edit/child-operations.md +++ b/.claude/skills/meta-edit/child-operations.md @@ -11,7 +11,7 @@ **Shorthand-формат** реквизитов: `ИмяРеквизита: Тип | флаги` -Флаги: `req` (FillChecking=ShowError), `index` (Indexing=Index), `master` (Master=true, только dimensions), `mainFilter` (MainFilterOperand, только dimensions). +Флаги: `req` — обязательное заполнение; `index` — индексировать; `master` — ведущее измерение (только dimensions); `mainFilter` — основной отбор (только dimensions). **Позиционная вставка**: `>> after ИмяЭлемента` или `<< before ИмяЭлемента`: ```powershell @@ -109,9 +109,10 @@ Batch через `;;` — можно указать разные ТЧ: `"Тов **Спец-операции** (строчные ключи): `name` (переименование), `type` (смена типа), `synonym`. -**Скалярные свойства** — по PascalCase XML-имени (как в выгрузке): `Indexing`, `FillChecking`, `Use`, -`FullTextSearch`, `DataHistory`, `PasswordMode`, `MultiLine`, `Mask`, `CreateOnInput`, `QuickChoice` и др. -Отсутствующее в XML свойство **создаётся** (в канонической позиции); неизвестное имя (опечатка) → **ошибка**. +**Свойства** задавайте по имени свойства 1С (PascalCase, как в конфигураторе): `Indexing`, `FillChecking`, +`Use`, `FullTextSearch`, `DataHistory`, `PasswordMode`, `MultiLine`, `Mask`, `CreateOnInput`, `QuickChoice` и др. +Свойство можно задать, даже если у реквизита оно ещё не выставлено. Опечатка в имени свойства → ошибка +(правка не теряется молча). ```powershell -Operation modify-attribute -Value "СтароеИмя: name=НовоеИмя, type=Строка(500)" @@ -121,20 +122,19 @@ Batch через `;;` — можно указать разные ТЧ: `"Тов ### Структурные свойства реквизита -По PascalCase-имени; сложные значения — через JSON DSL (`{ "modify": { "attributes": { "Имя": { ... } } } }`). -Отсутствующее свойство создаётся; существующее — заменяется. +Свойства со сложным значением задавайте через JSON DSL (`{ "modify": { "attributes": { "Имя": { ... } } } }`): | Ключ | Значение | Пример (JSON) | |------|----------|---------------| | `Format` / `EditFormat` / `ToolTip` | строка (мультиязычная) | `"Format": "ДФ=dd.MM.yyyy"` | -| `ChoiceForm` | путь формы | `"ChoiceForm": "Catalog.Товары.Form.ФормаВыбора"` | +| `ChoiceForm` | путь формы выбора | `"ChoiceForm": "Catalog.Товары.Form.ФормаВыбора"` | | `MinValue` / `MaxValue` | число или строка | `"MinValue": 0, "MaxValue": 100` | -| `FillValue` | значение по типу реквизита | `"FillValue": "EmptyRef"` · `true` · `10` · `{"nil": true}` | +| `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`) принимают короткое имя реквизита — разворачивается в полный путь объекта. +- `FillValue`: `"EmptyRef"` — пустая ссылка по типу реквизита; `{"emptyRef": true}` / `{"nil": true}` — явные маркеры. +- `ChoiceParameters` value — булево/число/строка/ссылочный путь или массив; укажите `type` (напр. + `EnumRef.СтавкиНДС`), чтобы задавать значения короткими именами (`"Оптовая"` вместо полного пути). +- В путях данных (`LinkByType`/`ChoiceParameterLinks`) можно писать короткое имя реквизита вместо полного пути. diff --git a/.claude/skills/meta-edit/properties-reference.md b/.claude/skills/meta-edit/properties-reference.md index 85976075..600f65e5 100644 --- a/.claude/skills/meta-edit/properties-reference.md +++ b/.claude/skills/meta-edit/properties-reference.md @@ -1,23 +1,22 @@ -# Свойства объекта и complex properties +# Свойства объекта и свойства-списки -Справочник операций для скалярных свойств объекта и свойств со вложенной XML-структурой (Owners, RegisterRecords, BasedOn, InputByString). +Справочник операций для обычных свойств объекта и свойств-списков (Owners, RegisterRecords, BasedOn, InputByString). ## modify-property -Изменение скалярных свойств объекта по PascalCase XML-имени (как в выгрузке). Формат: `Ключ=Значение` +Изменение свойств объекта по имени свойства 1С (PascalCase, как в конфигураторе). Формат: `Ключ=Значение` (batch через `;;`): ```powershell -Operation modify-property -Value "CodeLength=11 ;; DescriptionLength=150" -Operation modify-property -Value "Hierarchical=true" ``` -Отсутствующее в XML свойство **создаётся** (типовые опущенные свойства вроде `FullTextSearch`, `DataHistory`); -неизвестное имя свойства (опечатка) → **ошибка** (а не тихий no-op). Набор допустимых имён — свойства -соответствующего типа объекта. +Свойство можно задать, даже если оно ещё не выставлено у объекта (например `FullTextSearch`, `DataHistory`). +Опечатка в имени свойства → ошибка (правка не теряется молча). Допустимы имена свойств соответствующего типа объекта. -## Complex properties +## Свойства-списки -Свойства со вложенной XML-структурой. Поддерживаются через inline `add-*` / `remove-*` / `set-*` и через JSON `modify.properties`. +Свойства, значение которых — список ссылок. Управляются через inline `add-*` / `remove-*` / `set-*` и через JSON `modify.properties`. | Свойство | Объекты | Inline-значение | |----------|---------|-----------------|