В 1С:Предприятии различают два типа прав – основные и интерактивные.
Основные (неинтерактивные) – проверяются всегда независимо от способа обращения к объектам информационной базы.
Интерактивные – проверяются при выполнении интерактивных операций (например, операция "Установить пометку удаления").
Нужно учитывать, что проверку интерактивных прав можно обойти, создав, например, при конфигурировании форму самостоятельно и заменив стандартные команды своими, а проверку неинтерактивных прав нельзя обойти ни при каких обстоятельствах. Неинтерактивными правами защищается характерная для объекта фундаментальная функциональность, за это отвечают, например, такие права, как: "Добавление", "Чтение", "Изменение", "Удаление".
Для построения защищенных прикладных решений достаточно управлять только 4-мя основными правами доступа - "Добавление", "Чтение", "Изменение" и "Удаление".
Система 1С:Предприятие допускает проверку прав из встроенного языка. Например при добавлении команд к формам разработчик должен дополнительно позаботиться о проверке соответствующих интерактивных прав.
Пример проверки прав из языка:
Копировать в буфер обменаПроцедура КнопкаНажатие(Элемент) Разрешено = ПравоДоступа("ИнтерактивноеУдаление", Метаданные.Документы.Документ1); Если Не Разрешено Тогда Предупреждение ("Удалять не разрешено"); // ... необходимые действия КонецЕсли // ... необходимые действия КонецПроцедуры
При этом нужно помнить о том, что у будущего пользователя конфигурации соответствующие интерактивные и неинтерактивные права к тому или иному объекту могут различаться. Например, может быть разрешено право на "Удаление" и запрещено право "Интерактивное удаление".
Проверка прав объектов производится только в режиме "1С:Предприятие".
При попытке выполнить неразрешенную операцию выдается сообщение об ошибке "Нарушение прав доступа!", и производится отмена всех начатых транзакций.
Проверка основных и интерактивных прав используется расширениями формы, табличного поля и поля ввода (расширение формы определяется ее основным реквизитом, а табличного поля и поля ввода - типом редактируемых данных). Благодаря этому, если не установлено право "Просмотр", то форма списка или форма объекта не откроется, и будет выдано стандартное сообщение о нарушении прав доступа.
Рассмотрим проверку прав расширениями формы, табличного поля и поля ввода на примере документа:
Часть прав в системе 1С:Предприятия связаны друг с другом. Это означает, что основные права доступа, такие как "Чтение", "Изменение", "Добавление" и "Удаление" и некоторые другие могут влиять на права, отвечающие за такие операции с объектом, которые, в конечном счете, приведут к простейшим операциям. Например, нельзя разрешить право "Изменение", не выдав право "Чтение".
Интерактивные права напрямую зависят от их неинтерактивных аналогов, т.е. право "Интерактивное удаление" зависит от права "Удаление". На практике при конфигурировании это выглядит так, что при разрешении интерактивных прав аналогичные им неинтерактивные будут автоматически разрешены, и, наоборот, при снятии неинтерактивных прав соответствующие им интерактивные автоматически будут сброшены. Допускается лишь установка неинтерактивного права и сброс интерактивного, но не наоборот. Например, нельзя разрешить интерактивное право "Интерактивное удаление" и запретить неинтерактивное "Удаление".
Зависимость прав может выстраиваться в сложные цепочки, например, у объекта "Документ" право "Интерактивная отмена проведения" зависит от прав "Отмена проведения" и "Просмотр" одновременно, где первое зависит от "Изменение", которое, в свою очередь, зависит от права "Чтение" (см. рисунок).
Ключевым является право "Чтение", при его отсутствии автоматически пропадают любые другие права на доступ к объекту.
Право доступа | Описание |
---|---|
Automation | Разрешает использование 1С:Предприятие в режиме automation. |
Администрирование | Разрешает административные действия, например, ведение списка пользователей или открытие конфигурации. |
АктивныеПользователи | Разрешает просмотр списка активных пользователей. Это право может использоваться при организации "гостевого входа" в прикладном решении. |
ВводПоСтроке | Разрешает использование режима ввода по строке для различных объектов. |
ВнешнееСоединение | Разрешает использование 1С:Предприятия через COM соединение. |
Добавление | Разрешает добавление объектов данного вида. Проверяется на уровне объекта и на уровне БД. |
ЖурналРегистрации | Разрешает просмотр журнала подключений и протоколов работы |
Изменение | Разрешает изменение объектов данного вида. Проверяется на уровне объекта и на уровне БД. |
ИнтерактивнаяОтменаПроведения | Разрешает интерактивную отмену проведения |
ИнтерактивнаяПометкаУдаления | Разрешает интерактивную установку пометки удаления |
ИнтерактивноеДобавление | Разрешает интерактивное добавление объектов данного вида |
ИнтерактивноеОткрытиеВнешнихОбработок | Разрешает открытие внешних обработок стандартными командами меню |
ИнтерактивноеПроведение | Разрешает интерактивное проведение документов данного вида |
ИнтерактивноеПроведениеНеОперативное | Разрешает интерактивное проведение (стандартными командами форм) документа в неоперативном режиме |
ИнтерактивноеСнятиеПометкиУдаления | Разрешает интерактивное снятие пометки на удаление |
ИнтерактивноеУдаление | Разрешает интерактивное непосредственное удаление |
ИнтерактивноеУдалениеПомеченных | Разрешает интерактивное удаление помеченных объектов |
Использование | Разрешает использование обработки, отчета, интерфейса |
МонопольныйРежим | Разрешает переключение в монопольный режим при работе в режиме 1С:Предприятия. |
ОтменаПроведения | Разрешает отмену проведения документов |
Проведение | Разрешает проведение документов |
Просмотр | Разрешает просмотр объектов (например, в списках) |
Редактирование | Разрешает редактирование объекта |
Удаление | Разрешает удаление |
УправлениеИтогами | Разрешает управление итогами регистра бухгалтерии и регистра накопления - установку периода, по который рассчитаны итоги, и пересчет итогов |
Чтение | Разрешает чтение данных из информационной базы |