Опубликован: 14.07.2011 | Уровень: специалист | Доступ: платный
Лекция 4:

Роли, пользователи, интерфейсы, локализация

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Аннотация: В этой лекции рассматриваются вопросы ограничения прав пользователей на основе ролей, администрирование пользователей и настройка интерфейсов. Так же в этой лекции рассматриваются вопросы локализации конфигураций.

Цель лекции: научиться управлять пользователями, работающими в системе и решать сопутствующие задачи.

4.1. Постановка задачи

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

Дополнительная задача, которую нужно решить, заключается в повышении удобства работы с конфигурацией с точки зрения пользователя. Вспомните: до сих пор мы "доставали" нужные объекты из меню Операция. Это неплохое решение для работы с конфигурацией в процессе ее разработки и отладки. Но отдавать подобную систему пользователям неправильно. Они должны иметь удобные средства для работы с объектами. Эти средства реализуются с помощью так называемых интерфейсов. Интерфейс включает в себя настройки рабочей среды пользователя, в частности - пользовательское меню, которое обычно включает в себя определенным образом сгруппированные объекты. Чаще всего объекты группируют по разделам работ, реализуемых в конфигурации.

4.2. Разработка ролей

Разработаем следующие роли:

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

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

Создание новой роли и настройка набора прав

увеличить изображение
Рис. 4.1. Создание новой роли и настройка набора прав

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

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

Настройка роли Директор

увеличить изображение
Рис. 4.2. Настройка роли Директор

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

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

Имя: Зарплата;
Тип: Булево.
Добавление в документ Бухгалтерская операция нового реквизита

увеличить изображение
Рис. 4.3. Добавление в документ Бухгалтерская операция нового реквизита

Выведем реквизит на форму документа. Для этого откроем форму, выполним команду меню Форма > Размещение данных, установим флаг напротив реквизита Зарплата и флаг в поле Вставить надписи ( рис. 4.4). После нажатия на ОК нужно будет с помощью мыши указать место на форме, куда надо вставить реквизит.

Размещение нового реквизита на форме

увеличить изображение
Рис. 4.4. Размещение нового реквизита на форме

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

Имя: ПользовательРасчетчик
Тип: Булево.
Создание нового параметра сеанса

Рис. 4.5. Создание нового параметра сеанса

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

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

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

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

ГДЕ Зарплата = &ПользовательРасчетчик
Установка ограничения доступа

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

В справочнике Сотрудники создадим новый реквизит для хранения информации о том, является ли пользователь расчетчиком:

Имя: Расчетчик.
Тип: Булево.

Создадим еще один реквизит:

Имя: Пользователь
Тип: Строка, длина 50
Индексировать: Индексировать

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

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

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

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

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

Для этого откроем модуль сеанса. Создадим в нем процедуру Установка параметров сеанса. Введем в нее следующий код ( рис. 4.9):

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

увеличить изображение
Рис. 4.9. Модуль сеанса

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

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

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

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

Рис. 4.10. Настройка роли Сотрудник

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

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Евгений Орлов
Евгений Орлов
Кундуз Сабаева
Кундуз Сабаева

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.НачислениеЗарплаты.МодульОбъекта(45)}: Деление на 0
        Движение.Результат= Движение.ИсходныеДанные*Факт[0].РабочийДень/План[0].РабочийДень;

Андрей Нейман
Андрей Нейман
Россия
Илья Климов
Илья Климов
Россия, Пермь, ПНИПУ, 2013