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:
Nick Shirokov
2026-02-10 13:18:08 +03:00
co-authored by Claude Opus 4.6
parent 8b8bc1225a
commit 7aaa9fc070
5 changed files with 19 additions and 32 deletions
+5 -3
View File
@@ -42,6 +42,7 @@ powershell.exe -NoProfile -File .claude\skills\role-compile\scripts\role-compile
"objects": [
"Catalog.Номенклатура: @view",
"Document.Реализация: @edit",
"DataProcessor.Загрузка: @view",
"InformationRegister.Цены: Read, Update",
{ "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 (документы) |
| `@use` | Использование — Use, View (обработки/отчёты/сервисы) |
`@` обязателен в shorthand. В объектной форме — `"preset": "view"` без `@`.
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: `"WebService.Имя: Use"`.
### Русские синонимы
Поддерживаются русские типы (`Справочник`→Catalog, `Документ`→Document) и права (`Чтение`→Read, `Просмотр`→View). Смешивание допустимо: `"Справочник.Контрагенты: Чтение, View"`.
@@ -79,7 +81,7 @@ powershell.exe -NoProfile -File .claude\skills\role-compile\scripts\role-compile
```json
{
"name": "ЧтениеНоменклатуры", "synonym": "Чтение номенклатуры",
"objects": ["Catalog.Номенклатура: @view", "Catalog.Контрагенты: @view", "DataProcessor.Загрузка: @use"]
"objects": ["Catalog.Номенклатура: @view", "Catalog.Контрагенты: @view", "DataProcessor.Загрузка: @view"]
}
```
+6 -11
View File
@@ -39,7 +39,7 @@
"Catalog.Номенклатура: @view",
"Document.Реализация: @edit",
"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"]`
- `rls` — RLS-ограничения: `{"ИмяПрава": "текст условия"}`
@@ -70,6 +70,7 @@
| InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, Constant, DocumentJournal | Read, View |
| Sequence | Read |
| CommonForm, CommonCommand, Subsystem, FilterCriterion, CommonAttribute | View |
| DataProcessor, Report | Use, View |
| SessionParameter | Get |
| Configuration | ThinClient, WebClient, Output, SaveUserData, MainWindowModeNormal |
@@ -87,13 +88,7 @@
| SessionParameter | Get, Set |
| CommonAttribute | View, Edit |
### `@use` — использование
| Тип объекта | Права |
|-------------|-------|
| DataProcessor, Report | Use, View |
| CommonForm, CommonCommand, Subsystem | View |
| WebService, HTTPService, IntegrationService | Use |
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: `"WebService.Имя: Use"`.
Если пресет не определён для типа объекта — предупреждение с подсказкой доступных.
@@ -241,7 +236,7 @@
"objects": [
"Catalog.Номенклатура: @view",
"Catalog.Контрагенты: @view",
"DataProcessor.Загрузка: @use"
"DataProcessor.Загрузка: @view"
]
}
```
@@ -296,7 +291,7 @@
"Справочник.Контрагенты: @view",
"Документ.Реализация: Чтение, Просмотр",
"РегистрСведений.Цены: @edit",
"Обработка.ЗагрузкаДанных: @use"
"Обработка.ЗагрузкаДанных: @view"
]
}
```
@@ -264,7 +264,7 @@ $script:knownRights = @{
$script:nestedRights = @("View","Edit")
$script:commandRights = @("View")
# --- 4. Presets (@view, @edit, @use) ---
# --- 4. Presets (@view, @edit) ---
$script:presets = @{
"view" = @{
@@ -289,6 +289,8 @@ $script:presets = @{
"FilterCriterion" = @("View")
"SessionParameter" = @("Get")
"CommonAttribute" = @("View")
"DataProcessor" = @("Use","View")
"Report" = @("Use","View")
"Configuration" = @("ThinClient","WebClient","Output","SaveUserData","MainWindowModeNormal")
}
"edit" = @{
@@ -309,16 +311,6 @@ $script:presets = @{
"SessionParameter" = @("Get","Set")
"CommonAttribute" = @("View","Edit")
}
"use" = @{
"DataProcessor" = @("Use","View")
"Report" = @("Use","View")
"CommonForm" = @("View")
"CommonCommand" = @("View")
"Subsystem" = @("View")
"WebService" = @("Use")
"HTTPService" = @("Use")
"IntegrationService" = @("Use")
}
}
# --- 5. Helpers ---
@@ -341,7 +333,7 @@ function Resolve-Preset {
$preset = $presetName.TrimStart('@')
if (-not $script:presets.ContainsKey($preset)) {
Write-Warning "Unknown preset '@$preset'. Known: @view, @edit, @use"
Write-Warning "Unknown preset '@$preset'. Known: @view, @edit"
return @()
}