Как настраиваются права доступа для пользователей в 1С?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Ответ
Права доступа в 1С настраиваются через систему ролей и разрешений, которая обеспечивает гибкий контроль над доступом пользователей к различным функциям и данным системы.
Иерархия управления правами
Пользователь
↓
Роли (назначаются пользователю)
↓
Права (содержатся в роли)
↓
Доступ к объектам конфигурации
Основные компоненты системы прав
1. Роли — наборы прав, объединённые по функциональному назначению 2. Права — разрешения на выполнение конкретных операций 3. Пользователи — сущности, которым назначаются роли
Место настройки
Права настраиваются в двух местах:
1. В конфигураторе (разработка)
В дизайнере конфигурации создаются роли с набором прав:
Конфигурация
↓
Роли (объект метаданных)
├── РольБухгалтера
│ ├── Чтение Справочник.Счета
│ ├── Редактирование Справочник.ДПланы
│ ├── Проведение Документ.ПроводкаБухучета
│ └── ...
├── РольКладовщика
│ ├── Чтение Справочник.Товары
│ ├── Редактирование Справочник.Склады
│ └── ...
└── РольАдминистратора
└── Все права
2. В 1С:Предприятие (администрирование)
В работающей системе администратор:
- Создаёт пользователей
- Назначает им роли
- Устанавливает дополнительные разрешения
Права на операции
Стандартные типы прав:
| Право | Описание | Пример |
|---|---|---|
| Интерактивное введение | Редактирование через формы | Может открыть форму и редактировать |
| Чтение | Чтение данных | SELECT из БД |
| Редактирование | Изменение данных | UPDATE в БД |
| Удаление | Удаление данных | DELETE из БД |
| Проведение | Проведение документов | Только для документов |
| ИтоговоеРедактирование | Редактирование после проведения | Изменить проведённый документ |
| ПравОтвественное | Авторство документа | Кто создал запись |
Пример создания роли в конфигураторе
// В дизайнере создаём роль "РольПродавца"
// Свойства роли:
// - Название: "Продавец"
// - Назначение: Для работы с заказами и товарами
Роль РольПродавца
// Справочники
Чтение Справочник.Товары
Чтение Справочник.Контрагенты
Редактирование Справочник.Контрагенты
// Документы
Чтение Документ.ПродажиТовара
Редактирование Документ.ПродажиТовара
Проведение Документ.ПродажиТовара
// Отчёты
Чтение Отчёт.ПродажиПоТоварам
// Запрещаем доступ к финансовым данным
Чтение Справочник.БанковскиеСчета
КонецРоли
Назначение ролей пользователям
Способ 1: Через меню администратора
1. Администратор → Пользователи
2. Выбрать пользователя
3. Вкладка "Роли"
4. Добавить нужные роли
5. Сохранить
Способ 2: Программно
&НаСервере
Процедура НазначитьРолиПользователю(ПользовательСсылка)
ПользовательОбъект = ПользовательСсылка.ПолучитьОбъект();
// Очистить текущие роли
ПользовательОбъект.Роли.Очистить();
// Добавить новые роли
НоваяРоль = ПользовательОбъект.Роли.Добавить();
НоваяРоль.Роль = Метаданные.Роли.РольПродавца;
НоваяРоль = Пользователь.Роли.Добавить();
НоваяРоль.Роль = Метаданные.Роли.РольБухгалтера;
// Сохранить изменения
Пользователь.Записать();
КонецПроцедуры
Проверка прав в коде
Проверка доступа через ОСП (если используется БСП)
// Проверить право на чтение
ЕстьПраво = ОСП.Пользователи.ЕстьПраво(
"Чтение",
Метаданные.Справочники.Товары
);
Если НЕ ЕстьПраво Тогда
Сообщить("Нет доступа к справочнику Товары");
Возврат;
КонецЕсли;
Прямая проверка (встроенный язык)
&НаСервере
Процедура ПроверитьДоступ()
ТекущийПользователь = Пользователи.ТекущийПользователь();
// Получить все роли пользователя
РолиПользователя = Новый СписокЗначений();
ДляКаждого Роль Из ТекущийПользователь.Роли Цикл
РолиПользователя.Добавить(Роль.Роль.Имя);
КонецЦикла;
// Проверить наличие конкретной роли
Если РолиПользователя.НайтиПоЗначению("РольБухгалтера") <> Неопределено Тогда
// Пользователь бухгалтер
КонецЕсли;
КонецПроцедуры
Разделение данных по пользователям
RLS (Row-Level Security) — ограничение видимости строк
// Реквизит формы для ограничения данных
&НаСервере
Процедура ОтфильтроватьДанныеПоПользователю()
ТекущийПользователь = Пользователи.ТекущийПользователь();
// Показать только документы, созданные текущим пользователем
Запрос = Новый Запрос(
"ВЫБРАТЬ *
ИЗ Документ.ПродажиТовара
ГДЕ Автор = &Пользователь"
);
Запрос.УстановитьПараметр("Пользователь", ТекущийПользователь);
ТабличнаяЧасть.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
Управление видимостью элементов формы
&НаСервере
Процедура УстановитьВидимостьЭлементов()
ТекущийПользователь = Пользователи.ТекущийПользователь();
// Показать кнопку удаления только администраторам
ЕстьРольАдмина = ОСП.Пользователи.ЕстьРоль(
"РольАдминистратора",
ТекущийПользователь
);
Элементы.КнопкаУдалить.Видимость = ЕстьРольАдмина;
// Запретить редактирование для просмотра
ЕстьПраваРедактирования = ОСП.Пользователи.ЕстьПраво(
"Редактирование",
Метаданные.Документы.ПродажиТовара
);
Элементы.ТабличнаяЧасть.ТолькоПросмотр = НЕ ЕстьПраваРедактирования;
КонецПроцедуры
Лучшие практики
✓ Минимальные права — назначайте только необходимые права (принцип наименьших привилегий) ✓ Логические роли — создавайте роли по должностям/функциям, не по людям ✓ Документирование — ведите реестр ролей и их прав ✓ Аудит — логируйте изменения прав доступа ✓ Периодическая проверка — регулярно пересматривайте права ✓ Отделение администрирования — разделите разработку и управление правами
Типовые роли
РольАдминистратора → Все права
РольБухгалтера → Справочники, Бухгалтерия, Отчёты
РольСкладовщика → Товары, Складские операции
РольКассира → Кассовые операции, Отчёты по кассе
РольСотрудника → Ограниченный просмотр (только свои данные)
РольПросмотра → Только чтение без редактирования
Вывод: Система прав в 1С — это мощный механизм, обеспечивающий безопасность и контроль доступа к данным. Правильная настройка ролей критична для защиты конфиденциальной информации и предотвращения ошибок пользователей.