Role DSL — полная справка
Подробная справка по JSON DSL для /role-compile. Компактное описание — в SKILL.md.
Структура верхнего уровня
{
"name": "ИмяРоли",
"synonym": "Отображаемое имя роли",
"comment": "",
"setForNewObjects": false,
"setForAttributesByDefault": true,
"independentRightsOfChildObjects": false,
"objects": [ ... ],
"templates": [ ... ]
}
name — программное имя роли (обязательно)
synonym — отображаемое имя (по умолчанию = name)
comment — комментарий (по умолчанию пусто)
- Глобальные флаги — по умолчанию
false, true, false
Объекты: два формата
Массив objects принимает строки (shorthand) и объекты (полная форма).
Строковый shorthand
"ОбъектМетаданных: @пресет"
"ОбъектМетаданных: Право1, Право2"
Примеры:
"objects": [
"Catalog.Номенклатура: @view",
"Document.Реализация: @edit",
"InformationRegister.Цены: Read, Update",
"DataProcessor.Загрузка: @view"
]
Объектная форма (для RLS и переопределений)
{
"name": "Document.Реализация",
"preset": "view",
"rights": { "Delete": false },
"rls": { "Read": "#ДляОбъекта(\"\")" }
}
preset — базовый набор прав ("view", "edit")
rights — переопределения: dict {"Right": true/false} или массив ["Right1", "Right2"]
rls — RLS-ограничения: {"ИмяПрава": "текст условия"}
Пресеты — подробные таблицы
Пресеты обозначаются @ в строковом формате. В объектной форме ключ preset без @.
@view — просмотр
| Тип объекта |
Права |
| Catalog, ExchangePlan, Document, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task |
Read, View, InputByString |
| 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 |
@edit — полное редактирование
| Тип объекта |
Права |
| Catalog, ExchangePlan, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes |
Read, Insert, Update, Delete, View, Edit, InputByString, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark |
| Document |
Read, Insert, Update, Delete, View, Edit, InputByString, Posting, UndoPosting, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractivePosting, InteractivePostingRegular, InteractiveUndoPosting, InteractiveChangeOfPosted |
| BusinessProcess |
Read, Insert, Update, Delete, View, Edit, InputByString, Start, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractiveActivate, InteractiveStart |
| Task |
Read, Insert, Update, Delete, View, Edit, InputByString, Execute, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractiveActivate, InteractiveExecute |
| InformationRegister, AccumulationRegister, AccountingRegister, Constant |
Read, Update, View, Edit |
| DocumentJournal |
Read, View |
| Sequence |
Read, Update |
| SessionParameter |
Get, Set |
| CommonAttribute |
View, Edit |
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: "WebService.Имя: Use".
Если пресет не определён для типа объекта — предупреждение с подсказкой доступных.
Русские синонимы
Скрипт автоматически транслирует русские имена в английские. Можно смешивать: "Справочник.Контрагенты: Чтение, View" — работает.
Типы объектов
| Русский |
English |
Справочник |
Catalog |
Документ |
Document |
РегистрСведений |
InformationRegister |
РегистрНакопления |
AccumulationRegister |
РегистрБухгалтерии |
AccountingRegister |
РегистрРасчета |
CalculationRegister |
Константа |
Constant |
ПланСчетов |
ChartOfAccounts |
ПланВидовХарактеристик |
ChartOfCharacteristicTypes |
ПланВидовРасчета |
ChartOfCalculationTypes |
ПланОбмена |
ExchangePlan |
БизнесПроцесс |
BusinessProcess |
Задача |
Task |
Обработка |
DataProcessor |
Отчет |
Report |
ОбщаяФорма |
CommonForm |
ОбщаяКоманда |
CommonCommand |
Подсистема |
Subsystem |
КритерийОтбора |
FilterCriterion |
ЖурналДокументов |
DocumentJournal |
Последовательность |
Sequence |
ВебСервис |
WebService |
HTTPСервис |
HTTPService |
СервисИнтеграции |
IntegrationService |
ПараметрСеанса |
SessionParameter |
ОбщийРеквизит |
CommonAttribute |
Конфигурация |
Configuration |
Перечисление |
Enum |
Вложенные типы
| Русский |
English |
Реквизит |
Attribute |
СтандартныйРеквизит |
StandardAttribute |
ТабличнаяЧасть |
TabularSection |
Измерение |
Dimension |
Ресурс |
Resource |
Команда |
Command |
РеквизитАдресации |
AddressingAttribute |
Права (основные)
| Русский |
English |
Чтение |
Read |
Добавление |
Insert |
Изменение |
Update |
Удаление |
Delete |
Просмотр |
View |
Редактирование |
Edit |
ВводПоСтроке |
InputByString |
Проведение |
Posting |
ОтменаПроведения |
UndoPosting |
Использование |
Use |
Получение |
Get |
Установка |
Set |
Старт |
Start |
Выполнение |
Execute |
УправлениеИтогами |
TotalsControl |
Права (интерактивные)
| Русский |
English |
ИнтерактивноеДобавление |
InteractiveInsert |
ИнтерактивнаяПометкаУдаления |
InteractiveSetDeletionMark |
ИнтерактивноеСнятиеПометкиУдаления |
InteractiveClearDeletionMark |
ИнтерактивноеУдаление |
InteractiveDelete |
ИнтерактивноеУдалениеПомеченных |
InteractiveDeleteMarked |
ИнтерактивноеПроведение |
InteractivePosting |
ИнтерактивноеПроведениеНеоперативное |
InteractivePostingRegular |
ИнтерактивнаяОтменаПроведения |
InteractiveUndoPosting |
ИнтерактивноеИзменениеПроведенных |
InteractiveChangeOfPosted |
ИнтерактивныйСтарт |
InteractiveStart |
ИнтерактивнаяАктивация |
InteractiveActivate |
ИнтерактивноеВыполнение |
InteractiveExecute |
Права (конфигурация)
| Русский |
English |
Администрирование |
Administration |
АдминистрированиеДанных |
DataAdministration |
ТонкийКлиент |
ThinClient |
ТолстыйКлиент |
ThickClient |
ВебКлиент |
WebClient |
МобильныйКлиент |
MobileClient |
ВнешнееСоединение |
ExternalConnection |
Вывод |
Output |
СохранениеДанныхПользователя |
SaveUserData |
Типы объектов без прав в ролях
Следующие типы 1С не могут иметь права в ролях (не добавляются в objects):
| Тип |
Причина |
| Enum (Перечисление) |
Права наследуются от конфигурации, явное назначение невозможно |
| CommonModule (ОбщийМодуль) |
Не имеет собственных прав в роли |
| DefinedType (ОпределяемыйТип) |
Тип данных, не объект прав |
| CommonPicture (ОбщаяКартинка) |
Ресурс, не объект прав |
| CommonTemplate (ОбщийМакет) |
Ресурс, не объект прав |
| Language (Язык) |
Конфигурационный элемент |
| FunctionalOption (ФункциональнаяОпция) |
Не объект прав |
| FunctionalOptionsParameter |
Не объект прав |
| EventSubscription (ПодпискаНаСобытие) |
Не объект прав |
| ScheduledJob (РегламентноеЗадание) |
Не объект прав |
| StyleItem (ЭлементСтиля) |
Ресурс оформления |
Шаблоны ограничений (RLS templates)
"templates": [
{
"name": "ДляОбъекта(Модификатор)",
"condition": "// текст шаблона\nГДЕ 1=1\n&Модификатор"
}
]
& в условии автоматически экранируется в & в XML
- Ссылка на шаблон в
rls: "#ИмяШаблона(\"параметры\")" — начинается с #
- Параметры шаблона можно передавать пустыми:
#ДляОбъекта("")
Примеры
1. Простая роль (только пресеты)
{
"name": "ЧтениеНоменклатуры",
"synonym": "Чтение номенклатуры",
"objects": [
"Catalog.Номенклатура: @view",
"Catalog.Контрагенты: @view",
"DataProcessor.Загрузка: @view"
]
}
2. Роль для регламентного задания
{
"name": "ОбновлениеЦен",
"synonym": "Обновление цен номенклатуры",
"objects": [
"Catalog.Номенклатура: Read",
"Catalog.Валюты: Read",
"InformationRegister.ЦеныНоменклатуры: Read, Update",
"Constant.ОсновнаяВалюта: Read"
]
}
3. Роль с RLS
{
"name": "ЧтениеДокументовПоОрганизации",
"synonym": "Чтение документов (ограничение по организации)",
"objects": [
"Catalog.Организации: @view",
{
"name": "Document.РеализацияТоваровУслуг",
"preset": "view",
"rls": {
"Read": "#ДляОбъекта(\"\")"
}
}
],
"templates": [
{
"name": "ДляОбъекта(Модификатор)",
"condition": "ГДЕ Организация = &ТекущаяОрганизация"
}
]
}
4. Роль с русскими синонимами
{
"name": "ПросмотрДанных",
"synonym": "Просмотр данных",
"objects": [
"Справочник.Контрагенты: @view",
"Документ.Реализация: Чтение, Просмотр",
"РегистрСведений.Цены: @edit",
"Обработка.ЗагрузкаДанных: @view"
]
}
5. Роль с переопределением прав из пресета
{
"name": "ОграниченноеРедактирование",
"synonym": "Редактирование без удаления",
"objects": [
{
"name": "Catalog.Контрагенты",
"preset": "edit",
"rights": { "Delete": false }
}
]
}
1---2name: role-dsl3description: Подробная справка по JSON DSL для /role-compile. Компактное описание — в SKILL.md.4---5# Role DSL — полная справка67Подробная справка по JSON DSL для `/role-compile`. Компактное описание — в [SKILL.md](SKILL.md).89## Структура верхнего уровня1011```json12{13 "name": "ИмяРоли",14 "synonym": "Отображаемое имя роли",15 "comment": "",16 "setForNewObjects": false,17 "setForAttributesByDefault": true,18 "independentRightsOfChildObjects": false,19 "objects": [ ... ],20 "templates": [ ... ]21}22```2324- `name` — программное имя роли (обязательно)25- `synonym` — отображаемое имя (по умолчанию = name)26- `comment` — комментарий (по умолчанию пусто)27- Глобальные флаги — по умолчанию `false`, `true`, `false`2829## Объекты: два формата3031Массив `objects` принимает строки (shorthand) и объекты (полная форма).3233### Строковый shorthand3435```36"ОбъектМетаданных: @пресет"37"ОбъектМетаданных: Право1, Право2"38```3940Примеры:41```json42"objects": [43 "Catalog.Номенклатура: @view",44 "Document.Реализация: @edit",45 "InformationRegister.Цены: Read, Update",46 "DataProcessor.Загрузка: @view"47]48```4950### Объектная форма (для RLS и переопределений)5152```json53{54 "name": "Document.Реализация",55 "preset": "view",56 "rights": { "Delete": false },57 "rls": { "Read": "#ДляОбъекта(\"\")" }58}59```6061- `preset` — базовый набор прав (`"view"`, `"edit"`)62- `rights` — переопределения: dict `{"Right": true/false}` или массив `["Right1", "Right2"]`63- `rls` — RLS-ограничения: `{"ИмяПрава": "текст условия"}`6465## Пресеты — подробные таблицы6667Пресеты обозначаются `@` в строковом формате. В объектной форме ключ `preset` без `@`.6869### `@view` — просмотр7071| Тип объекта | Права |72|-------------|-------|73| Catalog, ExchangePlan, Document, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task | Read, View, InputByString |74| InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, Constant, DocumentJournal | Read, View |75| Sequence | Read |76| CommonForm, CommonCommand, Subsystem, FilterCriterion, CommonAttribute | View |77| DataProcessor, Report | Use, View |78| SessionParameter | Get |79| Configuration | ThinClient, WebClient, Output, SaveUserData, MainWindowModeNormal |8081### `@edit` — полное редактирование8283| Тип объекта | Права |84|-------------|-------|85| Catalog, ExchangePlan, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes | Read, Insert, Update, Delete, View, Edit, InputByString, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark |86| Document | Read, Insert, Update, Delete, View, Edit, InputByString, Posting, UndoPosting, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractivePosting, InteractivePostingRegular, InteractiveUndoPosting, InteractiveChangeOfPosted |87| BusinessProcess | Read, Insert, Update, Delete, View, Edit, InputByString, Start, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractiveActivate, InteractiveStart |88| Task | Read, Insert, Update, Delete, View, Edit, InputByString, Execute, InteractiveInsert, InteractiveSetDeletionMark, InteractiveClearDeletionMark, InteractiveActivate, InteractiveExecute |89| InformationRegister, AccumulationRegister, AccountingRegister, Constant | Read, Update, View, Edit |90| DocumentJournal | Read, View |91| Sequence | Read, Update |92| SessionParameter | Get, Set |93| CommonAttribute | View, Edit |9495Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права: `"WebService.Имя: Use"`.9697Если пресет не определён для типа объекта — предупреждение с подсказкой доступных.9899## Русские синонимы100101Скрипт автоматически транслирует русские имена в английские. Можно смешивать: `"Справочник.Контрагенты: Чтение, View"` — работает.102103### Типы объектов104105| Русский | English |106|---------|---------|107| `Справочник` | Catalog |108| `Документ` | Document |109| `РегистрСведений` | InformationRegister |110| `РегистрНакопления` | AccumulationRegister |111| `РегистрБухгалтерии` | AccountingRegister |112| `РегистрРасчета` | CalculationRegister |113| `Константа` | Constant |114| `ПланСчетов` | ChartOfAccounts |115| `ПланВидовХарактеристик` | ChartOfCharacteristicTypes |116| `ПланВидовРасчета` | ChartOfCalculationTypes |117| `ПланОбмена` | ExchangePlan |118| `БизнесПроцесс` | BusinessProcess |119| `Задача` | Task |120| `Обработка` | DataProcessor |121| `Отчет` | Report |122| `ОбщаяФорма` | CommonForm |123| `ОбщаяКоманда` | CommonCommand |124| `Подсистема` | Subsystem |125| `КритерийОтбора` | FilterCriterion |126| `ЖурналДокументов` | DocumentJournal |127| `Последовательность` | Sequence |128| `ВебСервис` | WebService |129| `HTTPСервис` | HTTPService |130| `СервисИнтеграции` | IntegrationService |131| `ПараметрСеанса` | SessionParameter |132| `ОбщийРеквизит` | CommonAttribute |133| `Конфигурация` | Configuration |134| `Перечисление` | Enum |135136### Вложенные типы137138| Русский | English |139|---------|---------|140| `Реквизит` | Attribute |141| `СтандартныйРеквизит` | StandardAttribute |142| `ТабличнаяЧасть` | TabularSection |143| `Измерение` | Dimension |144| `Ресурс` | Resource |145| `Команда` | Command |146| `РеквизитАдресации` | AddressingAttribute |147148### Права (основные)149150| Русский | English |151|---------|---------|152| `Чтение` | Read |153| `Добавление` | Insert |154| `Изменение` | Update |155| `Удаление` | Delete |156| `Просмотр` | View |157| `Редактирование` | Edit |158| `ВводПоСтроке` | InputByString |159| `Проведение` | Posting |160| `ОтменаПроведения` | UndoPosting |161| `Использование` | Use |162| `Получение` | Get |163| `Установка` | Set |164| `Старт` | Start |165| `Выполнение` | Execute |166| `УправлениеИтогами` | TotalsControl |167168### Права (интерактивные)169170| Русский | English |171|---------|---------|172| `ИнтерактивноеДобавление` | InteractiveInsert |173| `ИнтерактивнаяПометкаУдаления` | InteractiveSetDeletionMark |174| `ИнтерактивноеСнятиеПометкиУдаления` | InteractiveClearDeletionMark |175| `ИнтерактивноеУдаление` | InteractiveDelete |176| `ИнтерактивноеУдалениеПомеченных` | InteractiveDeleteMarked |177| `ИнтерактивноеПроведение` | InteractivePosting |178| `ИнтерактивноеПроведениеНеоперативное` | InteractivePostingRegular |179| `ИнтерактивнаяОтменаПроведения` | InteractiveUndoPosting |180| `ИнтерактивноеИзменениеПроведенных` | InteractiveChangeOfPosted |181| `ИнтерактивныйСтарт` | InteractiveStart |182| `ИнтерактивнаяАктивация` | InteractiveActivate |183| `ИнтерактивноеВыполнение` | InteractiveExecute |184185### Права (конфигурация)186187| Русский | English |188|---------|---------|189| `Администрирование` | Administration |190| `АдминистрированиеДанных` | DataAdministration |191| `ТонкийКлиент` | ThinClient |192| `ТолстыйКлиент` | ThickClient |193| `ВебКлиент` | WebClient |194| `МобильныйКлиент` | MobileClient |195| `ВнешнееСоединение` | ExternalConnection |196| `Вывод` | Output |197| `СохранениеДанныхПользователя` | SaveUserData |198199## Типы объектов без прав в ролях200201Следующие типы 1С **не могут** иметь права в ролях (не добавляются в `objects`):202203| Тип | Причина |204|-----|---------|205| Enum (Перечисление) | Права наследуются от конфигурации, явное назначение невозможно |206| CommonModule (ОбщийМодуль) | Не имеет собственных прав в роли |207| DefinedType (ОпределяемыйТип) | Тип данных, не объект прав |208| CommonPicture (ОбщаяКартинка) | Ресурс, не объект прав |209| CommonTemplate (ОбщийМакет) | Ресурс, не объект прав |210| Language (Язык) | Конфигурационный элемент |211| FunctionalOption (ФункциональнаяОпция) | Не объект прав |212| FunctionalOptionsParameter | Не объект прав |213| EventSubscription (ПодпискаНаСобытие) | Не объект прав |214| ScheduledJob (РегламентноеЗадание) | Не объект прав |215| StyleItem (ЭлементСтиля) | Ресурс оформления |216217## Шаблоны ограничений (RLS templates)218219```json220"templates": [221 {222 "name": "ДляОбъекта(Модификатор)",223 "condition": "// текст шаблона\nГДЕ 1=1\n&Модификатор"224 }225]226```227228- `&` в условии автоматически экранируется в `&` в XML229- Ссылка на шаблон в `rls`: `"#ИмяШаблона(\"параметры\")"` — начинается с `#`230- Параметры шаблона можно передавать пустыми: `#ДляОбъекта("")`231232## Примеры233234### 1. Простая роль (только пресеты)235236```json237{238 "name": "ЧтениеНоменклатуры",239 "synonym": "Чтение номенклатуры",240 "objects": [241 "Catalog.Номенклатура: @view",242 "Catalog.Контрагенты: @view",243 "DataProcessor.Загрузка: @view"244 ]245}246```247248### 2. Роль для регламентного задания249250```json251{252 "name": "ОбновлениеЦен",253 "synonym": "Обновление цен номенклатуры",254 "objects": [255 "Catalog.Номенклатура: Read",256 "Catalog.Валюты: Read",257 "InformationRegister.ЦеныНоменклатуры: Read, Update",258 "Constant.ОсновнаяВалюта: Read"259 ]260}261```262263### 3. Роль с RLS264265```json266{267 "name": "ЧтениеДокументовПоОрганизации",268 "synonym": "Чтение документов (ограничение по организации)",269 "objects": [270 "Catalog.Организации: @view",271 {272 "name": "Document.РеализацияТоваровУслуг",273 "preset": "view",274 "rls": {275 "Read": "#ДляОбъекта(\"\")"276 }277 }278 ],279 "templates": [280 {281 "name": "ДляОбъекта(Модификатор)",282 "condition": "ГДЕ Организация = &ТекущаяОрганизация"283 }284 ]285}286```287288### 4. Роль с русскими синонимами289290```json291{292 "name": "ПросмотрДанных",293 "synonym": "Просмотр данных",294 "objects": [295 "Справочник.Контрагенты: @view",296 "Документ.Реализация: Чтение, Просмотр",297 "РегистрСведений.Цены: @edit",298 "Обработка.ЗагрузкаДанных: @view"299 ]300}301```302303### 5. Роль с переопределением прав из пресета304305```json306{307 "name": "ОграниченноеРедактирование",308 "synonym": "Редактирование без удаления",309 "objects": [310 {311 "name": "Catalog.Контрагенты",312 "preset": "edit",313 "rights": { "Delete": false }314 }315 ]316}317```