mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-24 05:31:02 +03:00
Remove @use preset, merge DataProcessor/Report into @view
The @use preset name conflicted with the Use right semantics. DataProcessor and Report require Use+View together (View cannot be set without Use), so @view is the natural fit. Services (WebService, HTTPService, IntegrationService) use explicit rights. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
8b8bc1225a
commit
7aaa9fc070
@@ -42,6 +42,7 @@ powershell.exe -NoProfile -File .claude\skills\role-compile\scripts\role-compile
|
|||||||
"objects": [
|
"objects": [
|
||||||
"Catalog.Номенклатура: @view",
|
"Catalog.Номенклатура: @view",
|
||||||
"Document.Реализация: @edit",
|
"Document.Реализация: @edit",
|
||||||
|
"DataProcessor.Загрузка: @view",
|
||||||
"InformationRegister.Цены: Read, Update",
|
"InformationRegister.Цены: Read, Update",
|
||||||
{ "name": "Document.Продажа", "preset": "view", "rights": {"Delete": false}, "rls": {"Read": "#Шаблон(\"\")"} }
|
{ "name": "Document.Продажа", "preset": "view", "rights": {"Delete": false}, "rls": {"Read": "#Шаблон(\"\")"} }
|
||||||
]
|
]
|
||||||
@@ -54,12 +55,13 @@ powershell.exe -NoProfile -File .claude\skills\role-compile\scripts\role-compile
|
|||||||
|
|
||||||
| Пресет | Действие |
|
| Пресет | Действие |
|
||||||
|--------|----------|
|
|--------|----------|
|
||||||
| `@view` | Просмотр — Read, View (+InputByString для справочников/документов) |
|
| `@view` | Просмотр — Read, View (+InputByString для справочников/документов; Use+View для обработок/отчётов) |
|
||||||
| `@edit` | Полное редактирование — CRUD + Interactive* + Posting (документы) |
|
| `@edit` | Полное редактирование — CRUD + Interactive* + Posting (документы) |
|
||||||
| `@use` | Использование — Use, View (обработки/отчёты/сервисы) |
|
|
||||||
|
|
||||||
`@` обязателен в shorthand. В объектной форме — `"preset": "view"` без `@`.
|
`@` обязателен в shorthand. В объектной форме — `"preset": "view"` без `@`.
|
||||||
|
|
||||||
|
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: `"WebService.Имя: Use"`.
|
||||||
|
|
||||||
### Русские синонимы
|
### Русские синонимы
|
||||||
|
|
||||||
Поддерживаются русские типы (`Справочник`→Catalog, `Документ`→Document) и права (`Чтение`→Read, `Просмотр`→View). Смешивание допустимо: `"Справочник.Контрагенты: Чтение, View"`.
|
Поддерживаются русские типы (`Справочник`→Catalog, `Документ`→Document) и права (`Чтение`→Read, `Просмотр`→View). Смешивание допустимо: `"Справочник.Контрагенты: Чтение, View"`.
|
||||||
@@ -79,7 +81,7 @@ powershell.exe -NoProfile -File .claude\skills\role-compile\scripts\role-compile
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "ЧтениеНоменклатуры", "synonym": "Чтение номенклатуры",
|
"name": "ЧтениеНоменклатуры", "synonym": "Чтение номенклатуры",
|
||||||
"objects": ["Catalog.Номенклатура: @view", "Catalog.Контрагенты: @view", "DataProcessor.Загрузка: @use"]
|
"objects": ["Catalog.Номенклатура: @view", "Catalog.Контрагенты: @view", "DataProcessor.Загрузка: @view"]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
"Catalog.Номенклатура: @view",
|
"Catalog.Номенклатура: @view",
|
||||||
"Document.Реализация: @edit",
|
"Document.Реализация: @edit",
|
||||||
"InformationRegister.Цены: Read, Update",
|
"InformationRegister.Цены: Read, Update",
|
||||||
"DataProcessor.Загрузка: @use"
|
"DataProcessor.Загрузка: @view"
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- `preset` — базовый набор прав (`"view"`, `"edit"`, `"use"`)
|
- `preset` — базовый набор прав (`"view"`, `"edit"`)
|
||||||
- `rights` — переопределения: dict `{"Right": true/false}` или массив `["Right1", "Right2"]`
|
- `rights` — переопределения: dict `{"Right": true/false}` или массив `["Right1", "Right2"]`
|
||||||
- `rls` — RLS-ограничения: `{"ИмяПрава": "текст условия"}`
|
- `rls` — RLS-ограничения: `{"ИмяПрава": "текст условия"}`
|
||||||
|
|
||||||
@@ -70,6 +70,7 @@
|
|||||||
| InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, Constant, DocumentJournal | Read, View |
|
| InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, Constant, DocumentJournal | Read, View |
|
||||||
| Sequence | Read |
|
| Sequence | Read |
|
||||||
| CommonForm, CommonCommand, Subsystem, FilterCriterion, CommonAttribute | View |
|
| CommonForm, CommonCommand, Subsystem, FilterCriterion, CommonAttribute | View |
|
||||||
|
| DataProcessor, Report | Use, View |
|
||||||
| SessionParameter | Get |
|
| SessionParameter | Get |
|
||||||
| Configuration | ThinClient, WebClient, Output, SaveUserData, MainWindowModeNormal |
|
| Configuration | ThinClient, WebClient, Output, SaveUserData, MainWindowModeNormal |
|
||||||
|
|
||||||
@@ -87,13 +88,7 @@
|
|||||||
| SessionParameter | Get, Set |
|
| SessionParameter | Get, Set |
|
||||||
| CommonAttribute | View, Edit |
|
| CommonAttribute | View, Edit |
|
||||||
|
|
||||||
### `@use` — использование
|
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: `"WebService.Имя: Use"`.
|
||||||
|
|
||||||
| Тип объекта | Права |
|
|
||||||
|-------------|-------|
|
|
||||||
| DataProcessor, Report | Use, View |
|
|
||||||
| CommonForm, CommonCommand, Subsystem | View |
|
|
||||||
| WebService, HTTPService, IntegrationService | Use |
|
|
||||||
|
|
||||||
Если пресет не определён для типа объекта — предупреждение с подсказкой доступных.
|
Если пресет не определён для типа объекта — предупреждение с подсказкой доступных.
|
||||||
|
|
||||||
@@ -241,7 +236,7 @@
|
|||||||
"objects": [
|
"objects": [
|
||||||
"Catalog.Номенклатура: @view",
|
"Catalog.Номенклатура: @view",
|
||||||
"Catalog.Контрагенты: @view",
|
"Catalog.Контрагенты: @view",
|
||||||
"DataProcessor.Загрузка: @use"
|
"DataProcessor.Загрузка: @view"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -296,7 +291,7 @@
|
|||||||
"Справочник.Контрагенты: @view",
|
"Справочник.Контрагенты: @view",
|
||||||
"Документ.Реализация: Чтение, Просмотр",
|
"Документ.Реализация: Чтение, Просмотр",
|
||||||
"РегистрСведений.Цены: @edit",
|
"РегистрСведений.Цены: @edit",
|
||||||
"Обработка.ЗагрузкаДанных: @use"
|
"Обработка.ЗагрузкаДанных: @view"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ $script:knownRights = @{
|
|||||||
$script:nestedRights = @("View","Edit")
|
$script:nestedRights = @("View","Edit")
|
||||||
$script:commandRights = @("View")
|
$script:commandRights = @("View")
|
||||||
|
|
||||||
# --- 4. Presets (@view, @edit, @use) ---
|
# --- 4. Presets (@view, @edit) ---
|
||||||
|
|
||||||
$script:presets = @{
|
$script:presets = @{
|
||||||
"view" = @{
|
"view" = @{
|
||||||
@@ -289,6 +289,8 @@ $script:presets = @{
|
|||||||
"FilterCriterion" = @("View")
|
"FilterCriterion" = @("View")
|
||||||
"SessionParameter" = @("Get")
|
"SessionParameter" = @("Get")
|
||||||
"CommonAttribute" = @("View")
|
"CommonAttribute" = @("View")
|
||||||
|
"DataProcessor" = @("Use","View")
|
||||||
|
"Report" = @("Use","View")
|
||||||
"Configuration" = @("ThinClient","WebClient","Output","SaveUserData","MainWindowModeNormal")
|
"Configuration" = @("ThinClient","WebClient","Output","SaveUserData","MainWindowModeNormal")
|
||||||
}
|
}
|
||||||
"edit" = @{
|
"edit" = @{
|
||||||
@@ -309,16 +311,6 @@ $script:presets = @{
|
|||||||
"SessionParameter" = @("Get","Set")
|
"SessionParameter" = @("Get","Set")
|
||||||
"CommonAttribute" = @("View","Edit")
|
"CommonAttribute" = @("View","Edit")
|
||||||
}
|
}
|
||||||
"use" = @{
|
|
||||||
"DataProcessor" = @("Use","View")
|
|
||||||
"Report" = @("Use","View")
|
|
||||||
"CommonForm" = @("View")
|
|
||||||
"CommonCommand" = @("View")
|
|
||||||
"Subsystem" = @("View")
|
|
||||||
"WebService" = @("Use")
|
|
||||||
"HTTPService" = @("Use")
|
|
||||||
"IntegrationService" = @("Use")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- 5. Helpers ---
|
# --- 5. Helpers ---
|
||||||
@@ -341,7 +333,7 @@ function Resolve-Preset {
|
|||||||
$preset = $presetName.TrimStart('@')
|
$preset = $presetName.TrimStart('@')
|
||||||
|
|
||||||
if (-not $script:presets.ContainsKey($preset)) {
|
if (-not $script:presets.ContainsKey($preset)) {
|
||||||
Write-Warning "Unknown preset '@$preset'. Known: @view, @edit, @use"
|
Write-Warning "Unknown preset '@$preset'. Known: @view, @edit"
|
||||||
return @()
|
return @()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ Role JSON DSL — компактный JSON-формат, транслируем
|
|||||||
| Поле | Тип | Обяз. | Описание |
|
| Поле | Тип | Обяз. | Описание |
|
||||||
|------|-----|:-----:|----------|
|
|------|-----|:-----:|----------|
|
||||||
| `name` | string | да | Полное имя объекта: `Тип.Имя` |
|
| `name` | string | да | Полное имя объекта: `Тип.Имя` |
|
||||||
| `preset` | string | нет | Пресет: `"view"`, `"edit"`, `"use"` (без `@`) |
|
| `preset` | string | нет | Пресет: `"view"`, `"edit"` (без `@`) |
|
||||||
| `rights` | object\|array | нет | Переопределения: `{"Right": bool}` или `["Right1", "Right2"]` |
|
| `rights` | object\|array | нет | Переопределения: `{"Right": bool}` или `["Right1", "Right2"]` |
|
||||||
| `rls` | object | нет | RLS: `{"ИмяПрава": "текст условия или #шаблон"}` |
|
| `rls` | object | нет | RLS: `{"ИмяПрава": "текст условия или #шаблон"}` |
|
||||||
|
|
||||||
@@ -49,9 +49,8 @@ Role JSON DSL — компактный JSON-формат, транслируем
|
|||||||
|
|
||||||
| Пресет | Назначение |
|
| Пресет | Назначение |
|
||||||
|--------|------------|
|
|--------|------------|
|
||||||
| `view` | Просмотр: Read, View (+InputByString для справочников/документов) |
|
| `view` | Просмотр: Read, View (+InputByString для справочников/документов; Use+View для обработок/отчётов) |
|
||||||
| `edit` | Полное редактирование: CRUD + Interactive* + Posting (документы) |
|
| `edit` | Полное редактирование: CRUD + Interactive* + Posting (документы) |
|
||||||
| `use` | Использование: Use, View (обработки/отчёты/сервисы) |
|
|
||||||
|
|
||||||
Подробные таблицы прав для каждого типа объекта — в `.claude/skills/role-compile/dsl-reference.md`.
|
Подробные таблицы прав для каждого типа объекта — в `.claude/skills/role-compile/dsl-reference.md`.
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -35,7 +35,7 @@
|
|||||||
"objects": [
|
"objects": [
|
||||||
"Catalog.Номенклатура: @view",
|
"Catalog.Номенклатура: @view",
|
||||||
"Catalog.Контрагенты: @view",
|
"Catalog.Контрагенты: @view",
|
||||||
"DataProcessor.Загрузка: @use"
|
"DataProcessor.Загрузка: @view"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -59,9 +59,8 @@
|
|||||||
|
|
||||||
| Пресет | Действие |
|
| Пресет | Действие |
|
||||||
|--------|----------|
|
|--------|----------|
|
||||||
| `@view` | Просмотр: Read, View, InputByString (для справочников/документов); Read, View (для регистров) |
|
| `@view` | Просмотр: Read, View (+InputByString для справочников/документов; Use+View для обработок/отчётов) |
|
||||||
| `@edit` | Полное редактирование: CRUD + Interactive* + Posting (для документов) |
|
| `@edit` | Полное редактирование: CRUD + Interactive* + Posting (для документов) |
|
||||||
| `@use` | Использование: Use, View (для обработок/отчётов/сервисов) |
|
|
||||||
|
|
||||||
`@` обязателен в строковом shorthand. В объектной форме — ключ `preset` без `@`.
|
`@` обязателен в строковом shorthand. В объектной форме — ключ `preset` без `@`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user