mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
2c96c90d45
Complete reference: file structure, rights catalog by object type, nested object rights, RLS conditions, restriction templates. Verified across platform versions 8.3.20/8.3.24/8.3.27 and both ACC and ERP configurations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
846 lines
34 KiB
Markdown
846 lines
34 KiB
Markdown
# Спецификация формата ролей 1С:Предприятия 8.3
|
||
|
||
Полное описание XML-формата ролей в выгрузке конфигурации. Версии формата: 2.17 (платформа 8.3.20–8.3.24), 2.20 (8.3.27+). Структура идентична, отличается только атрибут `version`.
|
||
|
||
## Файловая структура
|
||
|
||
Каждая роль состоит из двух файлов:
|
||
|
||
```
|
||
Roles/
|
||
ИмяРоли.xml ← метаданные (uuid, имя, синоним)
|
||
ИмяРоли/
|
||
Ext/
|
||
Rights.xml ← определение прав
|
||
```
|
||
|
||
## Регистрация роли в конфигурации
|
||
|
||
При создании роли необходимо прописать ссылки в следующих местах:
|
||
|
||
### Configuration.xml — ChildObjects
|
||
|
||
Регистрация объекта в составе конфигурации:
|
||
|
||
```xml
|
||
<ChildObjects>
|
||
...
|
||
<Role>ИмяРоли</Role>
|
||
...
|
||
</ChildObjects>
|
||
```
|
||
|
||
Элементы `<Role>` располагаются среди других объектов конфигурации в секции `<ChildObjects>`.
|
||
|
||
### Configuration.xml — DefaultRoles (опционально)
|
||
|
||
Если роль должна назначаться новым пользователям по умолчанию:
|
||
|
||
```xml
|
||
<DefaultRoles>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Role.ИмяРоли</xr:Item>
|
||
</DefaultRoles>
|
||
```
|
||
|
||
### Form.xml — права редактирования реквизитов (опционально)
|
||
|
||
В формах роль может упоминаться для ограничения редактирования реквизитов:
|
||
|
||
```xml
|
||
<Attribute>
|
||
<Edit>
|
||
<xr:Common>false</xr:Common>
|
||
<xr:Value name="Role.ИмяРоли">true</xr:Value>
|
||
</Edit>
|
||
</Attribute>
|
||
```
|
||
|
||
---
|
||
|
||
## Файл метаданных: Roles/ИмяРоли.xml
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses"
|
||
xmlns:app="http://v8.1c.ru/8.2/managed-application/core"
|
||
xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config"
|
||
xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi"
|
||
xmlns:ent="http://v8.1c.ru/8.1/data/enterprise"
|
||
xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform"
|
||
xmlns:style="http://v8.1c.ru/8.1/data/ui/style"
|
||
xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system"
|
||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||
xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web"
|
||
xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows"
|
||
xmlns:xen="http://v8.1c.ru/8.3/xcf/enums"
|
||
xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef"
|
||
xmlns:xr="http://v8.1c.ru/8.3/xcf/readable"
|
||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
version="2.17">
|
||
<Role uuid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
|
||
<Properties>
|
||
<Name>ИмяРоли</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Отображаемое имя роли</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment/>
|
||
</Properties>
|
||
</Role>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### Элементы
|
||
|
||
| Элемент | Обязательный | Описание |
|
||
|---------|:------------:|----------|
|
||
| `Role/@uuid` | да | UUID роли (формат `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`) |
|
||
| `Name` | да | Программное имя роли (идентификатор, латиница/кириллица) |
|
||
| `Synonym` | да | Мультиязычное отображаемое имя (один или несколько `v8:item`) |
|
||
| `Comment` | да | Комментарий (может быть пустым `<Comment/>`) |
|
||
|
||
### Namespace
|
||
|
||
Основной: `http://v8.1c.ru/8.3/MDClasses`
|
||
Мультиязычные строки: `v8` = `http://v8.1c.ru/8.1/data/core`
|
||
|
||
---
|
||
|
||
## Файл прав: Roles/ИмяРоли/Ext/Rights.xml
|
||
|
||
### Корневой элемент
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<Rights xmlns="http://v8.1c.ru/8.2/roles"
|
||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:type="Rights"
|
||
version="2.17">
|
||
<setForNewObjects>false</setForNewObjects>
|
||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||
|
||
<object>...</object>
|
||
...
|
||
|
||
<restrictionTemplate>...</restrictionTemplate>
|
||
...
|
||
</Rights>
|
||
```
|
||
|
||
### Namespace
|
||
|
||
`http://v8.1c.ru/8.2/roles` (NB: 8.2, а не 8.3 — исторически)
|
||
|
||
### Глобальные флаги
|
||
|
||
| Флаг | Тип | По умолчанию | Описание |
|
||
|------|-----|:------------:|----------|
|
||
| `setForNewObjects` | boolean | false | Устанавливать права для новых объектов конфигурации |
|
||
| `setForAttributesByDefault` | boolean | true | Устанавливать права для реквизитов по умолчанию |
|
||
| `independentRightsOfChildObjects` | boolean | false | Независимые права подчинённых объектов |
|
||
|
||
### Структура блока `<object>`
|
||
|
||
```xml
|
||
<object>
|
||
<name>ТипОбъекта.ИмяОбъекта</name>
|
||
<right>
|
||
<name>ИмяПрава</name>
|
||
<value>true</value>
|
||
</right>
|
||
<right>
|
||
<name>ИмяПрава</name>
|
||
<value>true</value>
|
||
<restrictionByCondition>
|
||
<condition>Текст условия RLS</condition>
|
||
</restrictionByCondition>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
| Элемент | Обязательный | Описание |
|
||
|---------|:------------:|----------|
|
||
| `object/name` | да | Полное имя объекта метаданных (dot-нотация) |
|
||
| `right/name` | да | Имя права (см. таблицы ниже) |
|
||
| `right/value` | да | `true` или `false` |
|
||
| `right/restrictionByCondition` | нет | Ограничение на уровне записей (RLS) |
|
||
| `restrictionByCondition/condition` | да | Текст условия на языке шаблонов ограничений |
|
||
|
||
### Именование объектов (dot-нотация)
|
||
|
||
Объекты адресуются иерархически через точку:
|
||
|
||
```
|
||
ТипОбъекта.ИмяОбъекта[.ТипВложенного[.ИмяВложенного[...]]]
|
||
```
|
||
|
||
#### Верхний уровень — объекты метаданных
|
||
|
||
```
|
||
Catalog.Контрагенты
|
||
Document.РеализацияТоваровУслуг
|
||
InformationRegister.ЦеныНоменклатуры
|
||
DataProcessor.ЗагрузкаДанных
|
||
Report.АнализПродаж
|
||
Configuration.ИмяКонфигурации
|
||
```
|
||
|
||
#### Стандартные реквизиты
|
||
|
||
```
|
||
Catalog.Контрагенты.StandardAttribute.Code
|
||
Catalog.Контрагенты.StandardAttribute.Description
|
||
Catalog.Контрагенты.StandardAttribute.DeletionMark
|
||
Catalog.Контрагенты.StandardAttribute.Predefined
|
||
Catalog.Контрагенты.StandardAttribute.PredefinedDataName
|
||
Catalog.Контрагенты.StandardAttribute.Ref
|
||
Catalog.Контрагенты.StandardAttribute.IsFolder
|
||
Catalog.Контрагенты.StandardAttribute.Parent
|
||
Catalog.Контрагенты.StandardAttribute.Owner
|
||
Document.Реализация.StandardAttribute.Posted
|
||
Document.Реализация.StandardAttribute.Date
|
||
Document.Реализация.StandardAttribute.Number
|
||
```
|
||
|
||
#### Реквизиты
|
||
|
||
```
|
||
Catalog.Контрагенты.Attribute.ИНН
|
||
Document.Реализация.Attribute.Организация
|
||
```
|
||
|
||
#### Табличные части и их реквизиты
|
||
|
||
```
|
||
Document.Реализация.TabularSection.Товары
|
||
Document.Реализация.TabularSection.Товары.Attribute.Номенклатура
|
||
Document.Реализация.TabularSection.Товары.StandardAttribute.LineNumber
|
||
```
|
||
|
||
#### Измерения, ресурсы, реквизиты регистров
|
||
|
||
```
|
||
InformationRegister.Цены.Dimension.Номенклатура
|
||
InformationRegister.Цены.Resource.Цена
|
||
AccumulationRegister.Остатки.Attribute.ДатаОперации
|
||
AccountingRegister.Хозрасчетный.Dimension.Организация
|
||
```
|
||
|
||
#### Команды
|
||
|
||
```
|
||
Catalog.Контрагенты.Command.ОткрытьКарточку
|
||
DataProcessor.Обработка.Command.Выполнить
|
||
CommonCommand.УправлениеОборудованием
|
||
```
|
||
|
||
#### Реквизиты адресации (бизнес-процессы/задачи)
|
||
|
||
```
|
||
Task.ЗадачаИсполнителя.AddressingAttribute.Исполнитель
|
||
Task.ЗадачаИсполнителя.AddressingAttribute.ОсновнойОбъектАдресации
|
||
```
|
||
|
||
#### Операции веб-сервисов
|
||
|
||
```
|
||
WebService.Exchange.Operation.GetIBParameters
|
||
HTTPService.ЭДО.URLTemplate.Документы.Method.POST
|
||
```
|
||
|
||
#### Вложенные подсистемы
|
||
|
||
```
|
||
Subsystem.Администрирование.Subsystem.Пользователи
|
||
```
|
||
|
||
---
|
||
|
||
## Полный каталог прав по типам объектов
|
||
|
||
### Права объектов верхнего уровня
|
||
|
||
#### Configuration
|
||
|
||
Права конфигурации в целом. Объект: `Configuration.ИмяКонфигурации`.
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Administration` | Администрирование |
|
||
| `DataAdministration` | Администрирование данных |
|
||
| `UpdateDataBaseConfiguration` | Обновление конфигурации БД |
|
||
| `ConfigurationExtensionsAdministration` | Администрирование расширений |
|
||
| `ActiveUsers` | Активные пользователи |
|
||
| `EventLog` | Журнал регистрации |
|
||
| `ExclusiveMode` | Монопольный режим |
|
||
| `ThinClient` | Тонкий клиент |
|
||
| `ThickClient` | Толстый клиент |
|
||
| `WebClient` | Веб-клиент |
|
||
| `MobileClient` | Мобильный клиент |
|
||
| `ExternalConnection` | Внешнее соединение |
|
||
| `Automation` | Automation (COM) |
|
||
| `Output` | Вывод (печать, сохранение, копирование) |
|
||
| `SaveUserData` | Сохранение данных пользователя |
|
||
| `TechnicalSpecialistMode` | Режим технического специалиста |
|
||
| `InteractiveOpenExtDataProcessors` | Интерактивное открытие внешних обработок |
|
||
| `InteractiveOpenExtReports` | Интерактивное открытие внешних отчётов |
|
||
| `AnalyticsSystemClient` | Клиент системы аналитики |
|
||
| `CollaborationSystemInfoBaseRegistration` | Регистрация ИБ в системе взаимодействия |
|
||
| `MainWindowModeNormal` | Режим обычного окна |
|
||
| `MainWindowModeWorkplace` | Режим рабочего места |
|
||
| `MainWindowModeEmbeddedWorkplace` | Режим встроенного рабочего места |
|
||
| `MainWindowModeFullscreenWorkplace` | Режим полноэкранного рабочего места |
|
||
| `MainWindowModeKiosk` | Режим киоска |
|
||
|
||
#### Catalog
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Интерактивная пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Интерактивное снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveDeleteMarked` | Интерактивное удаление помеченных |
|
||
| `InteractiveDeletePredefinedData` | Интерактивное удаление предопределённых |
|
||
| `InteractiveSetDeletionMarkPredefinedData` | Пометка удаления предопределённых |
|
||
| `InteractiveClearDeletionMarkPredefinedData` | Снятие пометки удаления предопределённых |
|
||
| `InteractiveDeleteMarkedPredefinedData` | Удаление помеченных предопределённых |
|
||
| `ReadDataHistory` | Чтение истории данных |
|
||
| `ViewDataHistory` | Просмотр истории данных |
|
||
| `UpdateDataHistory` | Обновление истории данных |
|
||
| `UpdateDataHistoryOfMissingData` | Обновление истории отсутствующих данных |
|
||
| `ReadDataHistoryOfMissingData` | Чтение истории отсутствующих данных |
|
||
| `UpdateDataHistorySettings` | Обновление настроек истории данных |
|
||
| `UpdateDataHistoryVersionComment` | Обновление комментария версии |
|
||
| `EditDataHistoryVersionComment` | Редактирование комментария версии |
|
||
| `SwitchToDataHistoryVersion` | Переход к версии истории данных |
|
||
|
||
#### Document
|
||
|
||
Все права Catalog (кроме предопределённых) плюс:
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Posting` | Проведение |
|
||
| `UndoPosting` | Отмена проведения |
|
||
| `InteractivePosting` | Интерактивное проведение |
|
||
| `InteractivePostingRegular` | Интерактивное проведение (неоперативное) |
|
||
| `InteractiveUndoPosting` | Интерактивная отмена проведения |
|
||
| `InteractiveChangeOfPosted` | Интерактивное изменение проведённых |
|
||
|
||
#### InformationRegister
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Update` | Изменение |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `TotalsControl` | Управление итогами (для периодических) |
|
||
| `ReadDataHistory` | Чтение истории данных |
|
||
| `ViewDataHistory` | Просмотр истории данных |
|
||
| `UpdateDataHistory` | Обновление истории данных |
|
||
| `UpdateDataHistoryOfMissingData` | Обновление истории отсутствующих данных |
|
||
| `ReadDataHistoryOfMissingData` | Чтение истории отсутствующих данных |
|
||
| `UpdateDataHistorySettings` | Настройки истории данных |
|
||
| `UpdateDataHistoryVersionComment` | Обновление комментария версии |
|
||
| `EditDataHistoryVersionComment` | Редактирование комментария версии |
|
||
| `SwitchToDataHistoryVersion` | Переход к версии |
|
||
|
||
#### AccumulationRegister
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Update` | Изменение |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `TotalsControl` | Управление итогами |
|
||
|
||
#### AccountingRegister
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Update` | Изменение |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `TotalsControl` | Управление итогами |
|
||
|
||
#### CalculationRegister
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `View` | Просмотр |
|
||
|
||
#### Constant
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Update` | Изменение |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `ReadDataHistory` | Чтение истории данных |
|
||
| `ViewDataHistory` | Просмотр истории данных |
|
||
| `UpdateDataHistory` | Обновление истории данных |
|
||
| `UpdateDataHistorySettings` | Настройки истории данных |
|
||
| `UpdateDataHistoryVersionComment` | Обновление комментария версии |
|
||
| `EditDataHistoryVersionComment` | Редактирование комментария версии |
|
||
| `SwitchToDataHistoryVersion` | Переход к версии |
|
||
|
||
#### ChartOfAccounts
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveDeletePredefinedData` | Удаление предопределённых |
|
||
| `InteractiveSetDeletionMarkPredefinedData` | Пометка удаления предопределённых |
|
||
| `InteractiveClearDeletionMarkPredefinedData` | Снятие пометки удаления предопределённых |
|
||
| `InteractiveDeleteMarkedPredefinedData` | Удаление помеченных предопределённых |
|
||
| `ReadDataHistory` | Чтение истории данных |
|
||
| `ReadDataHistoryOfMissingData` | Чтение истории отсутствующих данных |
|
||
| `UpdateDataHistory` | Обновление истории данных |
|
||
| `UpdateDataHistoryOfMissingData` | Обновление истории отсутствующих данных |
|
||
| `UpdateDataHistorySettings` | Настройки истории данных |
|
||
| `UpdateDataHistoryVersionComment` | Обновление комментария версии |
|
||
|
||
#### ChartOfCharacteristicTypes
|
||
|
||
Аналогично ChartOfAccounts, плюс:
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `InteractiveDeleteMarked` | Интерактивное удаление помеченных |
|
||
| `EditDataHistoryVersionComment` | Редактирование комментария версии |
|
||
| `SwitchToDataHistoryVersion` | Переход к версии |
|
||
| `ViewDataHistory` | Просмотр истории данных |
|
||
|
||
#### ChartOfCalculationTypes
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveDeletePredefinedData` | Удаление предопределённых |
|
||
| `InteractiveSetDeletionMarkPredefinedData` | Пометка удаления предопределённых |
|
||
| `InteractiveClearDeletionMarkPredefinedData` | Снятие пометки предопределённых |
|
||
| `InteractiveDeleteMarkedPredefinedData` | Удаление помеченных предопределённых |
|
||
|
||
#### ExchangePlan
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveDeleteMarked` | Удаление помеченных |
|
||
| `ReadDataHistory` | Чтение истории данных |
|
||
| `ViewDataHistory` | Просмотр истории данных |
|
||
| `UpdateDataHistory` | Обновление истории данных |
|
||
| `ReadDataHistoryOfMissingData` | Чтение истории отсутствующих |
|
||
| `UpdateDataHistoryOfMissingData` | Обновление истории отсутствующих |
|
||
| `UpdateDataHistorySettings` | Настройки истории данных |
|
||
| `UpdateDataHistoryVersionComment` | Обновление комментария версии |
|
||
| `EditDataHistoryVersionComment` | Редактирование комментария версии |
|
||
| `SwitchToDataHistoryVersion` | Переход к версии |
|
||
|
||
#### BusinessProcess
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `Start` | Старт |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveActivate` | Интерактивная активация |
|
||
| `InteractiveStart` | Интерактивный старт |
|
||
|
||
#### Task
|
||
|
||
| Право | Описание |
|
||
|-------|----------|
|
||
| `Read` | Чтение |
|
||
| `Insert` | Добавление |
|
||
| `Update` | Изменение |
|
||
| `Delete` | Удаление |
|
||
| `View` | Просмотр |
|
||
| `Edit` | Редактирование |
|
||
| `InputByString` | Ввод по строке |
|
||
| `Execute` | Выполнение |
|
||
| `InteractiveInsert` | Интерактивное добавление |
|
||
| `InteractiveSetDeletionMark` | Пометка удаления |
|
||
| `InteractiveClearDeletionMark` | Снятие пометки удаления |
|
||
| `InteractiveDelete` | Интерактивное удаление |
|
||
| `InteractiveActivate` | Интерактивная активация |
|
||
| `InteractiveExecute` | Интерактивное выполнение |
|
||
|
||
#### Простые типы (одно-два права)
|
||
|
||
| Тип объекта | Права |
|
||
|-------------|-------|
|
||
| `DataProcessor` | Use, View |
|
||
| `Report` | Use, View |
|
||
| `CommonForm` | View |
|
||
| `CommonCommand` | View |
|
||
| `Subsystem` | View |
|
||
| `FilterCriterion` | View |
|
||
| `DocumentJournal` | Read, View |
|
||
| `Sequence` | Read, Update |
|
||
| `WebService` | Use |
|
||
| `HTTPService` | Use |
|
||
| `IntegrationService` | Use |
|
||
| `SessionParameter` | Get, Set |
|
||
| `CommonAttribute` | View, Edit |
|
||
|
||
#### Типы объектов БЕЗ прав в ролях
|
||
|
||
Следующие типы не фигурируют в Rights.xml (права не применимы или управляются иначе):
|
||
|
||
- `Enum` (перечисления)
|
||
- `FunctionalOption`
|
||
- `DefinedType`
|
||
- `CommonModule`
|
||
- `CommonPicture`
|
||
- `CommonTemplate`
|
||
- `SettingsStorage`
|
||
- `ExternalDataSource`
|
||
|
||
---
|
||
|
||
### Права вложенных объектов
|
||
|
||
Права можно задавать не только на уровне объекта, но и на уровне его составных частей.
|
||
|
||
#### Реквизиты и стандартные реквизиты
|
||
|
||
Доступные права: `View`, `Edit`
|
||
|
||
```xml
|
||
<object>
|
||
<name>Catalog.Контрагенты.StandardAttribute.PredefinedDataName</name>
|
||
<right>
|
||
<name>View</name>
|
||
<value>false</value>
|
||
</right>
|
||
<right>
|
||
<name>Edit</name>
|
||
<value>false</value>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
Применимо к:
|
||
- `*.StandardAttribute.*` — стандартные реквизиты
|
||
- `*.Attribute.*` — реквизиты
|
||
- `*.TabularSection.*` — табличные части (целиком)
|
||
- `*.TabularSection.*.Attribute.*` — реквизиты табличных частей
|
||
- `*.TabularSection.*.StandardAttribute.*` — стандартные реквизиты табличных частей
|
||
|
||
#### Измерения, ресурсы регистров
|
||
|
||
Доступные права: `View`, `Edit`
|
||
|
||
```xml
|
||
<object>
|
||
<name>InformationRegister.Цены.Dimension.Номенклатура</name>
|
||
<right>
|
||
<name>Edit</name>
|
||
<value>false</value>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
Применимо к:
|
||
- `*Register.*.Dimension.*`
|
||
- `*Register.*.Resource.*`
|
||
- `*Register.*.Attribute.*`
|
||
|
||
#### Команды
|
||
|
||
Доступные права: `View`
|
||
|
||
```xml
|
||
<object>
|
||
<name>Catalog.Контрагенты.Command.ОткрытьКарточку</name>
|
||
<right>
|
||
<name>View</name>
|
||
<value>false</value>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
Применимо к:
|
||
- `*.Command.*` — команды любого объекта
|
||
|
||
#### Реквизиты адресации (Task)
|
||
|
||
Доступные права: `View`, `Edit`
|
||
|
||
```xml
|
||
<object>
|
||
<name>Task.ЗадачаИсполнителя.AddressingAttribute.Исполнитель</name>
|
||
<right>
|
||
<name>View</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
#### Полная таблица: вложенные объекты и их права
|
||
|
||
| Тип вложенного | Родители | Права |
|
||
|----------------|----------|-------|
|
||
| `StandardAttribute` | Catalog, Document, ExchangePlan, ChartOf*, Task, BusinessProcess, *Register, DocumentJournal | View, Edit |
|
||
| `Attribute` | Catalog, Document, ExchangePlan, ChartOf*, Task, BusinessProcess, *Register, DataProcessor, Report | View, Edit |
|
||
| `TabularSection` | Catalog, Document, ExchangePlan, ChartOf*, Task, BusinessProcess, DataProcessor, Report | View, Edit |
|
||
| `TabularSection.*.Attribute` | (все с TabularSection) | View, Edit |
|
||
| `Dimension` | InformationRegister, AccumulationRegister, AccountingRegister | View, Edit |
|
||
| `Resource` | InformationRegister, AccumulationRegister, AccountingRegister | View, Edit |
|
||
| `Command` | Catalog, Document, DataProcessor, Report, *Register, DocumentJournal, ExchangePlan, BusinessProcess, Task | View |
|
||
| `AddressingAttribute` | Task | View, Edit |
|
||
|
||
---
|
||
|
||
## Ограничения на уровне записей (RLS)
|
||
|
||
### Структура
|
||
|
||
```xml
|
||
<right>
|
||
<name>Read</name>
|
||
<value>true</value>
|
||
<restrictionByCondition>
|
||
<condition>Текст условия</condition>
|
||
</restrictionByCondition>
|
||
</right>
|
||
```
|
||
|
||
RLS добавляется внутрь `<right>` как дочерний элемент `<restrictionByCondition>`. Условие содержит текст на языке шаблонов ограничений 1С.
|
||
|
||
### Типичная структура условия
|
||
|
||
```
|
||
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
|
||
#ДляОбъекта("")
|
||
#Иначе
|
||
#ПоЗначениям("Документ.Реализация", "", "",
|
||
"Организации", "Организация",
|
||
"","",
|
||
...)
|
||
#КонецЕсли
|
||
```
|
||
|
||
Используются препроцессорные директивы (`#Если`, `#Тогда`, `#Иначе`, `#КонецЕсли`) и макросы шаблонов (`#ДляОбъекта`, `#ПоЗначениям`, `#ДляРегистра`, `#ПоЗначениямИНаборамРасширенный`).
|
||
|
||
XML-кодирование: `&` → `&` в тексте условия.
|
||
|
||
### Применимость
|
||
|
||
RLS применяется к правам `Read`, `Update`, `Insert`, `Delete` объектов данных (Catalog, Document, Register и др.). Не применяется к интерактивным правам и правам конфигурации.
|
||
|
||
---
|
||
|
||
## Шаблоны ограничений (restrictionTemplate)
|
||
|
||
Располагаются в конце файла Rights.xml, после всех блоков `<object>`.
|
||
|
||
```xml
|
||
<restrictionTemplate>
|
||
<name>ИмяШаблона(Параметр1, Параметр2, ...)</name>
|
||
<condition>
|
||
// Комментарий с описанием параметров
|
||
// ...
|
||
Текст шаблона на языке запросов 1С
|
||
</condition>
|
||
</restrictionTemplate>
|
||
```
|
||
|
||
### Типичные шаблоны
|
||
|
||
| Шаблон | Описание |
|
||
|--------|----------|
|
||
| `ДляОбъекта(Модификатор)` | Ограничение для ссылочных объектов (документы, справочники) |
|
||
| `ПоЗначениям(Таблица, -, Модификатор, В1,П1, ...)` | Ограничение по значениям видов доступа |
|
||
| `ДляРегистра(Регистр, Поле1, ..., Поле5)` | Ограничение для регистров |
|
||
| `ПоЗначениямИНаборамРасширенный(...)` | Расширенное ограничение по наборам и значениям |
|
||
|
||
Шаблоны определяются в роли и вызываются из `<condition>` блоков RLS через макросы `#ИмяШаблона(...)`.
|
||
|
||
---
|
||
|
||
## Примеры
|
||
|
||
### Минимальная роль (без прав)
|
||
|
||
**Roles/МояРоль.xml:**
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||
xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||
<Role uuid="00000000-0000-0000-0000-000000000001">
|
||
<Properties>
|
||
<Name>МояРоль</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Моя роль</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment/>
|
||
</Properties>
|
||
</Role>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
**Roles/МояРоль/Ext/Rights.xml:**
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:type="Rights" version="2.17">
|
||
<setForNewObjects>false</setForNewObjects>
|
||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||
</Rights>
|
||
```
|
||
|
||
### Роль для регламентного задания
|
||
|
||
Типичный набор прав для фонового задания, работающего со справочниками и регистрами:
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:type="Rights" version="2.17">
|
||
<setForNewObjects>false</setForNewObjects>
|
||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||
<object>
|
||
<name>Catalog.Номенклатура</name>
|
||
<right>
|
||
<name>Read</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
<object>
|
||
<name>Catalog.Контрагенты</name>
|
||
<right>
|
||
<name>Read</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
<object>
|
||
<name>InformationRegister.ЦеныНоменклатуры</name>
|
||
<right>
|
||
<name>Read</name>
|
||
<value>true</value>
|
||
</right>
|
||
<right>
|
||
<name>Update</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
<object>
|
||
<name>DataProcessor.ОбновлениеЦен</name>
|
||
<right>
|
||
<name>Use</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
</Rights>
|
||
```
|
||
|
||
### Роль с запретом редактирования полей
|
||
|
||
```xml
|
||
<object>
|
||
<name>Document.РеализацияТоваровУслуг</name>
|
||
<right>
|
||
<name>Read</name>
|
||
<value>true</value>
|
||
</right>
|
||
<right>
|
||
<name>View</name>
|
||
<value>true</value>
|
||
</right>
|
||
</object>
|
||
<object>
|
||
<name>Document.РеализацияТоваровУслуг.StandardAttribute.Posted</name>
|
||
<right>
|
||
<name>Edit</name>
|
||
<value>false</value>
|
||
</right>
|
||
</object>
|
||
<object>
|
||
<name>Document.РеализацияТоваровУслуг.StandardAttribute.DeletionMark</name>
|
||
<right>
|
||
<name>Edit</name>
|
||
<value>false</value>
|
||
</right>
|
||
</object>
|
||
```
|
||
|
||
---
|
||
|
||
## Версии формата
|
||
|
||
| Платформа | version (метаданные) | version (Rights.xml) | Изменения |
|
||
|-----------|:--------------------:|:--------------------:|-----------|
|
||
| 8.3.20 | 2.17 | 2.17 | Базовая |
|
||
| 8.3.24 | 2.17 | 2.17 | Без изменений |
|
||
| 8.3.27 | 2.20 | 2.20 | Только номер версии, структура идентична |
|
||
|
||
Namespace Rights.xml (`http://v8.1c.ru/8.2/roles`) и namespace метаданных (`http://v8.1c.ru/8.3/MDClasses`) не менялись.
|