Задание 1. Разработка ролей

Разработаем следующие роли (таблица 2.1).

 

Таблица 2.1 – Роли учебной конфигурации

Администратор Эта роль дает полный доступ ко всем возможностям системы. Ее имеет смысл назначить одному или нескольким администраторам.
Директор Эта роль позволяет просматривать объекты, не модифицируя их. Разрешена модификация константы ТекстСообщения.
Расчетчик Дает доступ к тем объектам, которые вовлечены в процесс расчета заработной платы. Доступ к остальным объектам закрыт.
Сотрудник Позволяет работать со всеми объектами, кроме тех, которые отвечают за заработную плату.

 

Для создания ролей в 1С:Предприятие используется общий объект конфигурации Роли. Создадим новую роль, назовем ее Администратор. По умолчанию все права находятся в отключенном состоянии. Пройдем по дереву конфигурации и установим полные права для всех объектов (рис. 2.1).

 

Рисунок 2.1 - Создание новой роли Администратори настройка набора прав

 

В окне настройке прав, для роли Администратор, имеет смысл установить флаг Устанавливать права для новых объектов. Если этого не сделать, то нам, при добавлении новых объектов конфигурации, придется устанавливать права для каждого нового объекта. Например, у пользователя с ролью Администратор, установлен полный набор прав по работе со справочниками. Если параметр Устанавливать права для новых объектовне установлен, тогда, при добавлении нового справочника, набор его прав окажется незаполненным. При установке параметра, соответственно, набор прав будет заполнен. Для обычных пользователей флаг Устанавливать права для новых объектовлучше не включать - иначе им, без должного контроля со стороны администратора, могут быть предоставлены не полагающиеся им права (Мы можем включить это свойство - иначе нам, при рассмотрении дальнейших примеров, придется тратить время на поддержание набора прав в актуальном состоянии при изменении конфигурации).

Для всех остальных ролей административные функции должны быть запрещены.

Создадим роль Директор. Для константы ТекстСообщенияустановим полные права. Для остальных объектов - права Просмотри Чтениеили права Просмотри Использование (рис. 2.2).

 

 

 

Рисунок 2.2 -Настройка роли Директор

 

Пользователь с ролью Расчетчикдолжен иметь доступ к документу Начисление зарплаты, к планам видов расчетов, к регистрам расчетов, к документу Бухгалтерская операция, который используется, в том числе, для отражения в учете операций по заработной плате. Этот документ используется и другими сотрудниками, поэтому здесь мы приходим к противоречию. С одной стороны обычные сотрудники не должны иметь доступ к информации о заработной плате других сотрудников, с другой, им нужен документ Бухгалтерская операция. В подобной ситуации можно поступить двумя способами. Первый заключается в том, чтобы создать еще один документ, предназначенный исключительно для расчетчика. Второй заключается в том, чтобы настроить ограничения доступа к данным документа для разных пользователей на основании какого-либо признака документа.

Откроем документ Бухгалтерская операция, добавим, на закладке Данные, новый реквизит (рис. 2.3) с именем Зарплатаи типомБулево.

 

 

 

Рисунок 2.3 -Добавление в документ Бухгалтерская операция нового реквизита

 

Выведем реквизит на форму документа. Для этого откроем форму и перетащим реквизит Зарплатана командную панель формы слева (рис. 2.4).

 

Рисунок 2.4 -Размещение нового реквизита на форме

 

Создадим еще один общий параметр конфигурации - параметр сеанса логического типа, в который будем записывать ЛОЖЬ, если в систему вошел обычный пользователь, и ИСТИНА, если - расчетчик. Для этого добавим в ветви Параметры сеансановый параметр (рис. 2.5) с именем ПользовательРасчетчики типом Булево.

 

 

Рисунок 2.5 -Создание нового параметра сеанса

Приступим к настройке роли Расчетчик. Установим у этой роли параметры доступа к необходимым документам и другим объектам системы. Особенность настройки заключается в том, что при задании параметров доступа к документу Бухгалтерская операциямы добавим новое ограничение доступа к данным для права Чтение. Для этого выделим право Чтение, в поле Ограничение доступа к даннымнажмем на кнопку Добавитьв поле появится новая запись (рис. 2.6). В колонке Поляздесь можно указать список полей, на которые налагается ограничение (здесь в данный момент имеет смысл не делать дополнительных настроек), колонке Ограничение доступанужно будет задать ограничение

Выделим правую часть строки ограничения, нажмем кнопку с тремя точками и введем следующее ограничение (рис. 4.7).

ГДЕ Зарплата = &ПользовательРасчетчик

В справочнике Сотрудникисоздадим новый реквизит для хранения информации о том, является ли пользователь расчетчиком, с именем Расчетчики типом Булево.Создадим еще один реквизит с именем Пользовательи типом Строка,длина 50,Очень важно, создавая реквизит Пользователь, включить его индексирование, т.е. значение поля Индексировать –Индексировать.. Иначе мы не сможем правильно идентифицировать пользователя при входе в систему. Реквизит будет содержать строку, соответствующую имени пользователя. Пользователей мы будем создавать ниже.

Разместим вновь созданные реквизиты на форме элемента справочника (рис. 2.8).

 

.


 

 

Рисунок 2.6-Новая строка ограничения доступа к данным

 

Рисунок 2.7 -Установка ограничения доступа

 

Все это нужно для того, чтобы, при входе пользователя в систему, можно было бы найти пользователя в справочнике Сотрудники, и, в зависимости от состояния флага Расчетчик, установить параметр сеанса ПользовательРасчетчик. После установки этого параметра он будет использован при ограничении доступа к документам Бухгалтерская операция. Расчетчики смогут видеть только документы, предназначенные для зарплатных операций, другие служащие - все документы кроме «зарплатных».

 

 

Рисунок 2.8 -Измененная форма элемента справочника Сотрудники

 

Для этого откроем модуль сеанса через команду Открыть модуль сеансав контекстном меню объекта Конфигурация. Создадим в нем процедуру Установка параметров сеанса,нажав на кнопку - Процедуры и Функции и выбрав ее в появившемся диалоговом окне. Введем в нее следующий код (рис. 2.9):

 

 

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)

Сотрудник = Справочники.Сотрудники.НайтиПоРеквизиту("Пользователь", ИмяПользователя());

Если не Сотрудник.Пустая() тогда

ПараметрыСеанса.ПользовательРасчетчик = Сотрудник.Расчетчик;

КонецЕсли;

КонецПроцедуры

Здесь мы сначала пытаемся найти элемент справочника Сотрудники, который соответствует пользователю, указанному при входе в систему.

Если такой элемент найден - устанавливаем параметр сеанса ПользовательРасчетчикв соответствии со значением реквизита Расчетчикнайденного элемента справочника.

Теперь создадим еще одну роль. Назовем ее Сотрудник. Откроем доступ ко всем объектам, кроме “зарплатных”. В ограничении доступа к данным документа Бухгалтерская операцияустановим ограничение, аналогичное тому, которое задано для роли Расчетчик (рис. 2.10).

 

Рисунок 2.9 -Модуль сеанса

 

Рисунок 2.10 -Настройка роли Сотрудник

 

Настроив роли, перейдем к созданию списка пользователей.