Интерактивное добавление 1с что это
На последней платформе 1С 8.3 для управления правами доступа пользователей, используется отдельный объект метаданных. Называется объект «Роли» и находится в конфигураторе, в ветке Общие/Роли. Роль определяет список прав пользователя.
Для каждого объекта (справочники, документы), разработчиком устанавливается определенный набор прав на чтение/на запись/на добавление/на изменение/… Как правило, роли пользователей 1С создаются отдельно для каждого вида деятельности пользователя. Каждому пользователю может быть присвоено одна или несколько ролей пользователя в системе.
При создании ролей доступа пользователей конфигурации лучше придерживаться методики установки прав на объекты метаданных в 1С, которая не допускала бы появления в конфигурации платформы 1С ролей, которые дают доступ к полям объекта, но в то же время не предоставляют права к самому объекту. Например, когда в правах прописан доступ на изменение даты договора, а на редактирование самого договора право не предоставлено.
Окно создания роли доступа пользователя, в нем есть область «Объекты», область «Права», область «Ограничения доступа к данным».
Окно создания роли доступа пользователя
Область «Объекты» – это перечень объектов конфигурации, на которые будут настраиваться права.
Область «Права» – это набор прав, которые доступны для данного объекта конфигурации.
«Устанавливать права для новых объектов» – данная настройка означает, что при создании новых объектов пользователю автоматически будут присваиваться права для работы с ними.
«Устанавливать права для реквизитов и табличных частей по умолчанию» – данная означает, что реквизиты и табличные части объекта унаследуют права владельца.
«Независимые права подчиненных объектов» – при определении прав на объект система использует права на родительский объект.
2. Функции в программном коде 1С
Узнать, достаточно ли прав у пользователя в 1С 8.3 можно при помощи функций, предусмотренных программным кодом 1С.
Функция РольДоступна() определяет, доступна ли данная роль доступа пользователю.
Если РольДоступна("ПолныеПрава") Тогда Сообщить("У вас достаточный набор прав!");
Иначе Сообщить("У вас недостаточный набор прав!");
Функция ПравоДоступа() позволяет определить права на объект при обращении пользователя к объекту метаданных.
Справочник=Справочники. Контрагенты;
Если Не ПравоДоступа ("Чтение",Справочник) Тогда
Сообщить ("Доступ к данномусправочникузакрыт!");
Функция ПараметрыДоступа() определяет права и ограничения на заданный объект метаданных для указанного пользователя.
Для Каждого Роль Из Метаданные.Роли Цикл
Для Каждого ОбъектОбработка Из Метаданные.Обработки Цикл
ОбластьСтрока.Параметры.Редактирование = ?(ПараметрыДоступа("Использование" , ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Просмотр = ?(ПараметрыДоступа("Просмотр",ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Роль = Роль.Синоним;
ОбластьСтрока.Параметры.Объект = ОбъектОбработка.Синоним;
ТаблДокумент.Вывести(ОбластьСтрока);
Для разных объектов метаданных набор прав пользователей будет отличаться. Права на объекты конфигурации есть основные, а есть интерактивные.
Интерактивные – это интерфейсные права из формы списка\элемента. Например, для объекта не выбрано право «интерактивное добавление», тогда из формы списка добавить новый элемент не будет возможности. Существуют два типа прав: права на форму и права на объект.
Права на объект – это ограничения, которые накладываются на сам объект в базе во время его изменения (создание, изменение, удаление) или чтения именно в физической таблице.
Пример: создаём новый, читаем, редактируем, удаляем элемент, при этом проверка на доступ проходит на уровне объекта.
Права на просмотр – права, предоставленные на уровне интерфейса. Можно реализовать подобный функционал уже в самой конфигурации, создав регистр, в который будут занесены все элементы нужных форм, и при открытии форм проверять, какие элементы выключить, какие скрыть, какие поля запретить для редактирования и т.д.
3. Настройки 1C RLS
В последней платформе 1С 8.3, есть возможность настроить права пользователей на уровне отдельных записей. Данный механизм называется RLS (ограничение прав на уровне записей). Работает механизм на объектном уровне. Например, можно использовать запрос в котором запрещается редактирование (чтение, удаление, добавление и т.д.) не всех контрагентов, а только выбранных элементов.
Самый распространенный вариант настройки в 1C RLS – это настройка ограничения видимости объектов системы пользователя в разрезе, например, организаций (пользователь видит лишь «свои» данные). Недостаток 1С RLS заключаются в том, что настройка и отладка данного функционала – весьма трудоемкий процесс, кроме того, сказывающийся на производительности программы.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Интерактивные - по сути, это интерфейсные права из формы списка (или формы элемента). Т.е. запретили интерактивное добавление - всё, из формы списка добавить нельзя элемент. Но обработкой, к примеру - пожалуйста.
Я бы выделял два типа прав - права на форму и права на объект. Опишу своими словами, если что не так, коллеги поправят :)
Права на объект.
Это ограничения, которые накладываются на сам объект в базе данных во время его изменения (создание, изменение, удаление) или чтения именно в физической таблице.
Пример:
- создаём элемент справочника,
- читаем элемент справочника,
- перезаписываем элемент справочника,
- удаляем его,
- используя обработку, неявно изменяем элемент справочника
- используя документ, неявно изменяем элемент справочника.
Во всех этих случаях идет проверка на ограничения на уровне объекта. Можно еще привести пример, если бы мы написали какой-нить код в модуле объекта в соответствующих процедурах (ПередЗаписью, ПередУдалением), то получили бы как раз ограничения на уровне объекта. Ну, кроме чтения.
Именно на этих принципах построена, в целом, работа ролей (в неинтерактивной их части).
Права на форму (интерфейс).
Это все т.н. интерактивные права, плюс права типа "просмотр", "редактирование" и т.п. В 1С на уровне платформы они полноценно реализованы только в управляемом приложении в 8.2 я так понимаю. В 8.1 - это такая недореализация наверно, поскольку, к примеру, убрать видимость элементов управления форм мы не можем, вообще на элементы формы мы повлиять не можем.
Подобный функционал многие реализуют уже непосредственно в конфигурациях. К примеру, регистр, туда заносим все элементы нужных форм и при их открытии проверяем - такие-то элементы выключить, такие-то вообще скрыть, такие-то поля редактировать не давать и пр. и пр.
[В моей рабочей базе примерно так и сделано :) ]
Про запросы и РЛС.
Платформа 1С даёт возможность влиять на ограничения на уровне объектов через запросы. Т.е., скажем, запрещать редактировать не всех контрагентов, а только по какому-нить признаку. И это ограничение будет работать абсолютно из всех мест базы и для любых способов. Это как раз и есть РЛС, работает механизм именно на объектном уровне. Аналогично и на чтение, и на удаление, и на добавление.
Простой способ отличить объектные права от интерфейсных - возможность написать ограничение РЛС.
Еще интересный пример - в своё время во вКонтакте профиль человека был заблокирован для просмотра, но по прямой ссылке иногда галереи фото были доступны. Т.е. ограничения на уровне интерфейса есть, а на уровне объекта - нет :).
NataVic; Vil1983; Salex_100; 0315; new_user; sirm; chock23; ekaterinaeon; hvs; Agrozentr; Eugenio; yyx; Delphian89; + 13 – Ответить
Права доступа в 1С:Предприятии 8
В 1С:Предприятии различают два типа прав – основные и интерактивные.
Основные (неинтерактивные) – проверяются всегда независимо от способа обращения к объектам информационной базы.
Интерактивные – проверяются при выполнении интерактивных операций (например, операция "Установить пометку удаления").
Нужно учитывать, что проверку интерактивных прав можно обойти, создав, например, при конфигурировании форму самостоятельно и заменив стандартные команды своими, а проверку неинтерактивных прав нельзя обойти ни при каких обстоятельствах. Неинтерактивными правами защищается характерная для объекта фундаментальная функциональность, за это отвечают, например, такие права, как: "Добавление", "Чтение", "Изменение", "Удаление".
Для построения защищенных прикладных решений достаточно управлять только 4-мя основными правами доступа - "Добавление" , "Чтение", "Изменение" и "Удаление".
Система 1С:Предприятие допускает проверку прав из встроенного языка. Например при добавлении команд к формам разработчик должен дополнительно позаботиться о проверке соответствующих интерактивных прав.
Пример проверки прав из языка:
При этом нужно помнить о том, что у будущего пользователя конфигурации соответствующие интерактивные и неинтерактивные права к тому или иному объекту могут различаться. Например, может быть разрешено право на "Удаление" и запрещено право "Интерактивное удаление".
Рассмотрим проверку прав расширениями формы, табличного поля и поля ввода на примере документа:
- При открытии формы документа проверяется право "Просмотр", после чего, если это форма нового объекта, то проверяется право "ИнтерактивноеДобавление", а если нет - право "Редактирование". Если выполняется запись с проведением, то проверяются права "ИнтерактивноеПроведение", "ИнтерактивнаяОтменаПроведения" или "ИнтерактивноеПроведениеНеОперативное", в зависимости от режима записи.
- Расширение табличного поля для журнала документов при открытии формы, в которой журнал установлен основным реквизитом, проверяет, что право "Просмотр" установлено хотя бы у одного документа журнала. При проведении документов из журнала проверяются права "ИнтерактивнаяОтменаПроведения", "ИнтерактивноеПроведение" и "ИнтерактивноеПроведениеНеОперативное". При удалении документов проверяется право "ИнтерактивноеУдаление", а при установке/снятии пометки на удаление проверяются права "ИнтерактивнаяПометкаУдаления" и "ИнтерактивноеСнятиеПометкиУдаления". При добавлении нового документа, после выбора его типа, расширение табличного поля журнала документов проверяет право "ИнтерактивноеДобавление".
- Поле ввода для документа проверяет только право "ВводПоСтроке".
Связанные права
Часть прав в системе 1С:Предприятия связаны друг с другом. Это означает, что основные права доступа, такие как "Чтение", "Изменение", "Добавление" и "Удаление" и некоторые другие могут влиять на права, отвечающие за такие операции с объектом, которые, в конечном счете, приведут к простейшим операциям. Например, нельзя разрешить право "Изменение", не выдав право "Чтение".
Интерактивные права напрямую зависят от их неинтерактивных аналогов, т.е. право "Интерактивное удаление" зависит от права "Удаление". На практике при конфигурировании это выглядит так, что при разрешении интерактивных прав аналогичные им неинтерактивные будут автоматически разрешены, и, наоборот, при снятии неинтерактивных прав соответствующие им интерактивные автоматически будут сброшены. Допускается лишь установка неинтерактивного права и сброс интерактивного, но не наоборот. Например, нельзя разрешить интерактивное право "Интерактивное удаление" и запретить неинтерактивное "Удаление".
Зависимость прав может выстраиваться в сложные цепочки, например, у объекта "Документ" право "Интерактивная отмена проведения" зависит от прав "Отмена проведения" и "Просмотр" одновременно, где первое зависит от "Изменение", которое, в свою очередь, зависит от права "Чтение" (см. рисунок).
Ключевым является право "Чтение", при его отсутствии автоматически пропадают любые другие права на доступ к объекту.
Система прав доступа позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности. Структура прав определяется конкретным прикладным решением.
Кроме этого, для объектов, хранящихся в базе данных (справочники, документы, регистры и т. д.) могут быть определены права доступа к отдельным полям и записям. Например, пользователь может оперировать документами (накладными, счетами и т. д.) определенных контрагентов и не иметь доступа к аналогичным документам других контрагентов.
Для реализации ограничения прав доступа в прикладных решениях предназначены специальные объекты конфигурации — Роли. Подробнее.
Интерактивные и основные права
Все права, поддерживаемые системой «1С:Предприятие 8», можно разделить на две большие группы: основные и интерактивные. Основные права описывают действия, выполняемые над элементами данных системы или над всей системой в целом, и проверяются всегда, независимо от способа обращения к данным. Интерактивные права описывают действия, которые могут быть выполнены пользователем интерактивно. Соответственно проверяются они только при выполнении интерактивных операций стандартными способами, причем в клиент-серверном варианте все проверки прав (кроме интерактивных) выполняются на сервере.
Основные и интерактивные права взаимосвязаны. Например, существует основное право Удаление, которому соответствуют два интерактивных права: Интерактивное удаление и Интерактивное удаление помеченных. Если пользователю запрещено Удаление, то и все интерактивные «удаления» также будут запрещены для него. В то же время, если пользователю разрешено Интерактивное удаление помеченных, это значит, что Удаление ему также разрешается.
Кроме того, основные права могут зависеть друг от друга. В результате образуются довольно сложные цепочки взаимосвязей, которые отслеживаются системой автоматически: как только разработчик снимает разрешение на какое-либо право, система сама снимает разрешения на все права, которые зависят от этого права. И наоборот, при установке какого-либо права разработчиком, система сама устанавливает все права, от которых это право зависит.
Например, для того, чтобы пользователь имел право Итерактивное удаление помеченных, ему необходимо обладать интерактивными правом Редактирование. Это право, в свою очередь, требует наличия интерактивного права Просмотр.
Право Интерактивное удаление помеченных требует наличия основного права Удаление. Интерактивное право Редактирование требует наличия основного права Изменение. Интерактивное право Просмотр требует наличия основного права Чтение.
Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.
Ограничение доступа к данным на уровне записей и полей
Среди действий над объектами, хранящимися в базе данных (справочниками, документами и т. д.), есть действия, отвечающие за чтение или изменение информации, хранящейся в базе данных. К таким действиям относятся:
- чтение — получение записей или их фрагментов из таблицы базы данных;
- добавление — добавление новых записей без изменения существующих;
- изменение — изменение существующих записей;
- удаление — удаление некоторых записей без внесения изменений в оставшиеся.
Для этих действий в процессе настройки ролей могут быть заданы дополнительные условия на данные (ограничение доступа к данным). В этом случае над конкретным объектом, хранимым в базе данных, может быть выполнено запрошенное действие только в том случае, если ограничение доступа к данным для данных этого объекта принимает значение «истина». Аналогичные условия могут быть заданы и для таблиц базы данных, не имеющих объектной природы (регистров).
Для объектных таблиц и регистров сведений могут быть заданы разные ограничения для различных полей таблицы, что позволяет определять ограничения не только на уровне записей базы данных, но и на уровне отдельных ее полей:
Для регистров накопления, бухгалтерского учета и расчета условия позволяют разграничить доступ по значениям измерений (для регистров бухгалтерского учета по балансовым измерениям), а для объектных данных и регистров сведений условия позволяют разграничивать доступ к данным по любым полям.
Условия ограничения можно ввести вручную или создать с помощью конструктора ограничений доступа к данным.
Параметры сеанса
Параметры сеанса представляют собой объекты прикладного решения, которые предназначены для использования в ограничениях доступа к данным для текущего сеанса (но могут применяться и для других целей). Их значения сохраняются в течение данного сеанса «1С:Предприятия 8». Использование параметров сеанса позволяет снизить время доступа к данным при ограничении доступа на уровне записей и полей. Подробнее.
Выполнение на сервере без проверки прав
Привилегированные модули
Существует возможность назначения привилегированных модулей. В такие модули могут быть перенесены операции, использующие данные, на которые у текущего пользователя нет прав.
Например, пользователю могут быть назначены права, позволяющие создавать новый документ. Однако никаких прав на регистр, в котором этот документ создает движения при проведении, пользователю не дано. В такой ситуации процедура проведения документа может быть вынесена в привилегированный модуль, который выполняется на сервере без проверки прав. В результате, несмотря на то, что соответствующий регистр для пользователя недоступен, пользователь все же сможет проводить созданные им документы.
Привилегированный режим исполнения программного кода
Привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей, можно включить/выключить средствами встроенного языка. Для этого в глобальном контексте предусмотрена процедура УстановитьПривилегированныйРежим (), а также функция ПривилегированныйРежим (), которая позволяет определить, включен привилегированный режим, или нет.
Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.
Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. Допустимо использовать привилегированный режим тогда, когда работа с данными от лица некоторого пользователя не нарушает установленные для этого пользователя права доступа.
На последней платформе 1С 8.3 для управления правами доступа пользователей, используется отдельный объект метаданных. Называется объект «Роли» и находится в конфигураторе, в ветке Общие/Роли. Роль определяет список прав пользователя.
Для каждого объекта (справочники, документы), разработчиком устанавливается определенный набор прав на чтение/на запись/на добавление/на изменение/… Как правило, роли пользователей 1С создаются отдельно для каждого вида деятельности пользователя. Каждому пользователю может быть присвоено одна или несколько ролей пользователя в системе.
При создании ролей доступа пользователей конфигурации лучше придерживаться методики установки прав на объекты метаданных в 1С, которая не допускала бы появления в конфигурации платформы 1С ролей, которые дают доступ к полям объекта, но в то же время не предоставляют права к самому объекту. Например, когда в правах прописан доступ на изменение даты договора, а на редактирование самого договора право не предоставлено.
Окно создания роли доступа пользователя, в нем есть область «Объекты», область «Права», область «Ограничения доступа к данным».
Окно создания роли доступа пользователя
Область «Объекты» – это перечень объектов конфигурации, на которые будут настраиваться права.
Область «Права» – это набор прав, которые доступны для данного объекта конфигурации.
«Устанавливать права для новых объектов» – данная настройка означает, что при создании новых объектов пользователю автоматически будут присваиваться права для работы с ними.
«Устанавливать права для реквизитов и табличных частей по умолчанию» – данная означает, что реквизиты и табличные части объекта унаследуют права владельца.
«Независимые права подчиненных объектов» – при определении прав на объект система использует права на родительский объект.
2. Функции в программном коде 1С
Узнать, достаточно ли прав у пользователя в 1С 8.3 можно при помощи функций, предусмотренных программным кодом 1С.
Функция РольДоступна() определяет, доступна ли данная роль доступа пользователю.
Если РольДоступна("ПолныеПрава") Тогда Сообщить("У вас достаточный набор прав!");
Иначе Сообщить("У вас недостаточный набор прав!");
Функция ПравоДоступа() позволяет определить права на объект при обращении пользователя к объекту метаданных.
Справочник=Справочники. Контрагенты;
Если Не ПравоДоступа ("Чтение",Справочник) Тогда
Сообщить ("Доступ к данномусправочникузакрыт!");
Функция ПараметрыДоступа() определяет права и ограничения на заданный объект метаданных для указанного пользователя.
Для Каждого Роль Из Метаданные.Роли Цикл
Для Каждого ОбъектОбработка Из Метаданные.Обработки Цикл
ОбластьСтрока.Параметры.Редактирование = ?(ПараметрыДоступа("Использование" , ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Просмотр = ?(ПараметрыДоступа("Просмотр",ОбъектОбработка, , Роль).Доступность, "Да", "Нет");
ОбластьСтрока.Параметры.Роль = Роль.Синоним;
ОбластьСтрока.Параметры.Объект = ОбъектОбработка.Синоним;
ТаблДокумент.Вывести(ОбластьСтрока);
Для разных объектов метаданных набор прав пользователей будет отличаться. Права на объекты конфигурации есть основные, а есть интерактивные.
Интерактивные – это интерфейсные права из формы списка\элемента. Например, для объекта не выбрано право «интерактивное добавление», тогда из формы списка добавить новый элемент не будет возможности. Существуют два типа прав: права на форму и права на объект.
Права на объект – это ограничения, которые накладываются на сам объект в базе во время его изменения (создание, изменение, удаление) или чтения именно в физической таблице.
Пример: создаём новый, читаем, редактируем, удаляем элемент, при этом проверка на доступ проходит на уровне объекта.
Права на просмотр – права, предоставленные на уровне интерфейса. Можно реализовать подобный функционал уже в самой конфигурации, создав регистр, в который будут занесены все элементы нужных форм, и при открытии форм проверять, какие элементы выключить, какие скрыть, какие поля запретить для редактирования и т.д.
3. Настройки 1C RLS
В последней платформе 1С 8.3, есть возможность настроить права пользователей на уровне отдельных записей. Данный механизм называется RLS (ограничение прав на уровне записей). Работает механизм на объектном уровне. Например, можно использовать запрос в котором запрещается редактирование (чтение, удаление, добавление и т.д.) не всех контрагентов, а только выбранных элементов.
Самый распространенный вариант настройки в 1C RLS – это настройка ограничения видимости объектов системы пользователя в разрезе, например, организаций (пользователь видит лишь «свои» данные). Недостаток 1С RLS заключаются в том, что настройка и отладка данного функционала – весьма трудоемкий процесс, кроме того, сказывающийся на производительности программы.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Читайте также: