Цель лекции: научиться управлять пользователями, работающими в системе и решать сопутствующие задачи.
4.1. Постановка задачи
С нашей конфигурацией работают многие пользователи. Логично было бы предоставить каждому из них доступ лишь к тем объектам конфигурации, которые ему нужны, скрыть от него возможности и данные, которые ему не нужны, или которые он не имеет права видеть. Например, вполне логично скрыть от пользователей, которые не занимаются начислением заработной платы, информацию из зарплатной части конфигурации. Руководителю организации можно дать возможность полного просмотра всех данных, и, если он лично не занимается редактированием этих данных, отключить возможность их редактирования. В системе обязательно должен быть администратор, который, по долгу службы, обязан иметь полный доступ ко всем объектам системы, возможность использования Конфигуратора.
Эти возможности в 1С:Предприятие реализуются с помощью, во-первых, ведения списка пользователей, во-вторых - назначению пользователям так называемых ролей. Одна роль может быть назначена множеству пользователей, имеющих схожий характер работы. Одному пользователю могут быть назначены несколько ролей.
Дополнительная задача, которую нужно решить, заключается в повышении удобства работы с конфигурацией с точки зрения пользователя. Вспомните: до сих пор мы "доставали" нужные объекты из меню Операция. Это неплохое решение для работы с конфигурацией в процессе ее разработки и отладки. Но отдавать подобную систему пользователям неправильно. Они должны иметь удобные средства для работы с объектами. Эти средства реализуются с помощью так называемых интерфейсов. Интерфейс включает в себя настройки рабочей среды пользователя, в частности - пользовательское меню, которое обычно включает в себя определенным образом сгруппированные объекты. Чаще всего объекты группируют по разделам работ, реализуемых в конфигурации.
4.2. Разработка ролей
Разработаем следующие роли:
| Администратор. |
Эта роль дает полный доступ ко всем возможностям системы. Ее имеет смысл назначить одному или нескольким администраторам. |
| Директор. |
Эта роль позволяет просматривать объекты, не модифицируя их. Разрешена модификация константы ТекстСообщения. |
| Расчетчик. |
Дает доступ к тем объектам, которые вовлечены в процесс расчета заработной платы. Доступ к остальным объектам закрыт. |
| Сотрудник. |
Позволяет работать со всеми объектами, кроме тех, которые отвечают за заработную плату. |
Для создания ролей в 1С:Предприятие используется общий объект конфигурации .
(рис 4.1) Создание новой роли и настройка набора правВ окне настройке прав, для роли Администратор, имеет смысл установить флаг Устанавливать права для новых объектов. Если этого не сделать, то нам, при добавлении новых объектов конфигурации, придется устанавливать права для каждого нового объекта. Например, у пользователя с ролью Администратор, установлен полный набор прав по работе со справочниками. Если параметр Устанавливать права для новых объектов не установлен, тогда, при добавлении нового справочника, набор его прав окажется незаполненным. При установке параметра, соответственно, набор прав будет заполнен. Для обычных пользователей флаг Устанавливать права для новых объектов лучше не включать - иначе им, без должного контроля со стороны администратора, могут быть предоставлены не полагающиеся им права
(Мы можем включить это свойство - иначе нам, при рассмотрении дальнейших примеров, придется тратить время на поддержание набора прав в актуальном состоянии при изменении конфигурации).
Создадим роль .
(рис 4.2) Настройка роли ДиректорПользователь с ролью Расчетчик должен иметь доступ к документу Начисление зарплаты, к планам видов расчетов, к регистрам расчетов, к документу Бухгалтерская операция, который используется, в том числе, для отражения в учете операций по заработной плате. Этот документ используется и другими сотрудниками, поэтому здесь мы приходим к противоречию. С одной стороны обычные сотрудники не должны иметь доступ к информации о заработной плате других сотрудников, с другой, им нужен документ Бухгалтерская операция. В подобной ситуации можно поступить двумя способами. Первый заключается в том, чтобы создать еще один документ, предназначенный исключительно для расчетчика. Второй заключается в том, чтобы настроить ограничения доступа к данным документа для разных пользователей на основании какого-либо признака документа.
Откроем документ ):
| Имя: |
Зарплата; |
| Тип: |
Булево. |
(рис 4.3) Добавление в документ Бухгалтерская операция нового реквизитаВыведем реквизит на форму документа. Для этого откроем форму, выполним команду меню ). После нажатия на ОК нужно будет с помощью мыши указать место на форме, куда надо вставить реквизит.
(рис 4.4) Размещение нового реквизита на формеСоздадим параметр сеанса логического типа, в который будем записывать ):
| Имя: |
ПользовательРасчетчик |
| Тип: |
Булево. |
(рис 4.5) Создание нового параметра сеансаПриступим к настройке роли ). В колонке Поля здесь можно указать список полей, на которые налагается ограничение (здесь в данный момент имеет смысл не делать дополнительных настроек), колонке Ограничение доступа нужно будет задать ограничение.
(рис 4.6) Новая строка ограничения доступа к даннымВыделим правую часть строки ограничения, нажмем кнопку с тремя точками и введем следующее ограничение (рис 4.7).
ГДЕ Зарплата = ПользовательРасчетчик
(рис 4.7) Установка ограничения доступаВ справочнике Сотрудники создадим новый реквизит для хранения информации о том, является ли пользователь расчетчиком:
| Имя: |
Расчетчик. |
| Тип: |
Булево. |
Создадим еще один реквизит:
| Имя: |
Пользователь |
| Тип: |
Строка, длина 50 |
| Индексировать: |
Индексировать |
Очень важно, создавая реквизит Пользователь, включить его индексирование. Иначе мы не сможем правильно идентифицировать пользователя при входе в систему. Реквизит будет содержать строку, соответствующую имени пользователя. Пользователей мы будем создавать ниже.
Разместим вновь созданные реквизиты на форме элемента справочника, рис 4.8.
(рис 4.8) Измененная форма элемента справочника СотрудникиВсе это нужно для того, чтобы, при входе пользователя в систему, можно было бы найти пользователя в справочнике Сотрудники, и, в зависимости от состояния флага Расчетчик, установить параметр сеанса ПользовательРасчетчик. После установки этого параметра он будет использован при ограничении доступа к документам Бухгалтерская операция. Расчетчики смогут видеть только документы, предназначенные для зарплатных операций, другие служащие - все документы кроме "зарплатных".
Для этого откроем модуль сеанса. Создадим в нем процедуру ):
Сотрудник = Справочники.Сотрудники.НайтиПоРеквизиту("Пользователь", ИмяПользователя());
Если не Сотрудник.Пустая() тогда
ПараметрыСеанса.ПользовательРасчетчик = Сотрудник.Расчетчик;
КонецЕсли;
(рис 4.9) Модуль сеансаЗдесь мы сначала пытаемся найти элемент справочника Сотрудники, который соответствует пользователю, указанному при входе в систему.
Если такой элемент найден - устанавливаем параметр сеанса ПользовательРасчетчик в соответствии со значением реквизита Расчетчик найденного элемента справочника.
Теперь создадим еще одну роль. Назовем ее .
(рис 4.10) Настройка роли СотрудникНастроив роли, перейдем к созданию списка пользователей.
4.3. Настройка списка пользователей
Первым пользователем, которого мы создадим, будет пользователь с именем .
(рис 4.11) Создание роли АдминистраторНа вкладке Основные этого окна можно будет задать имя пользователя и параметры аутентификации. При аутентификации средствами 1С:Предприятие можно задать пароль для доступа к системе и указать, следует ли показывать пользователя в списке выбора диалога аутентификации.
При аутентификации средствами Windows можно выбрать, какому пользователю Windows соответствует данный пользователь. Если вход в систему при загрузке компьютера будет осуществлен под указанным пользователем, то при запуске 1С:Предприятие этот пользователь будет считаться вошедшим в систему, диалог аутентификации отображаться не будет.
На вкладке ) зададим роль пользователя, язык (в нашем случае здесь есть лишь русский язык), а так же основной интерфейс (ниже мы разработаем несколько интерфейсов ). Если в системе создано несколько интерфейсов, пользователь может переключать их.
Пользователю может быть назначено несколько ролей. В таком случае вполне очевидна возможность возникновения ситуации, в которой в одной роли доступ к данным какого-либо объекта разрешен, а в другой - запрещен. Система автоматически решает подобную задачу в пользу разрешения доступа к данным или выполнения действий.
(рис 4.12) Настройка доступных ролей для пользователя АдминистраторСоздадим еще трех пользователей: ), выбрав для них соответствующие роли ( Иванов и Петров - роль Сотрудник ). Обратите внимание на то, что роли для выбора в окне Пользователь становятся доступными лишь тогда, когда они записаны в конфигурацию базы данных. То есть, если сразу после создания роли, не обновив конфигурацию базы данных, попытаться добавить нового пользователя с этой ролью, в списке ролей она отображаться не будет.
(рис 4.13) Созданные пользователиТеперь при попытке запуска системы в пользовательском режиме будет появляться диалог аутентификации, рис 4.14.
(рис 4.14) Диалог аутентификации 1С:ПредприятиеВойдем в систему с учетной записью администратора, заполним в справочнике Сотрудники, во-первых - признаки того, является ли пользователь расчетчиком, во-вторых - в поле Пользователь введем имена пользователей так, как они заданы в Конфигураторе. После этого заработают ранее созданные механизмы ограничения доступа к документу Бухгалтерская операция для обычных сотрудников и расчетчиков.
В частности, пользователь с ролью .
(рис 4.15) Попытка доступа к "запрещенному" объектуНа рис 4.16 приведены три окна списка документов Бухгалтерская операция. Это, сверху вниз, окно, которое видит пользователь с ролью Директор, окно, которое видит Сотрудник, и окно Расчетчика.
(рис 4.16) Ограничение доступа к данным в действии Так как для пользователя с ролью .
(рис 4.17) Документ, открытый пользователем с ролью ДиректорВ частности, пользователю с ролью Директор будет недоступно редактирование полей документа, кнопки ОК и Записать будут заблокированы.
Поработав с правами доступа к данным, создав список пользователей и определив их роли в системе, займемся разработкой интерфейсов для них.
4.4. Разработка интерфейсов
Интерфейс, который по умолчанию имеет система при загрузке в режиме 1С:Предприятие, дает доступ ко всем возможностям конфигурации. Однако, он хорош лишь на этапе создания конфигурации. Например, для того, чтобы получить доступ к любому документу, пользователю приходится выполнять последовательность команд Операции > Документы и искать необходимый документ в списке. Это не очень удобно. Гораздо удобнее была бы организация меню, в которой открыть нужный список документов можно было бы более короткой командой. А для наиболее часто используемых объектов конфигурации логично было бы иметь кнопки, позволяющие быстро получить доступ к этим объектам.
Как правило, реально используемые конфигурации имеют различные варианты интерфейсов, рассчитанных на различные категории пользователей. Мы, в целях демонстрации возможностей конфигурации по разработке интерфейсов, создадим интерфейс для расчетчика.
Перед созданием интерфейсов обратите внимание на то, что их очень удобно создавать, когда в конфигурации предусмотрено несколько подсистем, к которым логично привязаны обязанности пользователей различных категорий, а так же - правильно отнесены объекты конфигурации. Например, в нашей конфигурации есть подсистема РасчетЗаработнойПлаты. Прежде чем продолжать выполнение примера - проверьте объекты системы на предмет отношения к этой подсистеме. Проследите, чтобы все, что нужно расчетчику, было бы отмечено как входящее в подсистему РасчетЗаработнойПлаты, все ненужные объекты не содержали бы на вкладке Подсистемы отметки о вхождении в соответствующую подсистему.
При проверке настроек подсистем, к которым принадлежат объекты, удобно пользоваться окном это вкладка Подсистемы. При переключении между объектами информация на выбранной вкладке будет автоматически меняться на информацию по нужному объекту.
(рис 4.18) Проверка отношения объектов к подсистемамОбратите внимание на то, что некоторые объекты, такие, как документ НачислениеЗарплаты и регистр расчета, относятся только к подсистеме РасчетЗаработнойПлаты, так как содержат конфиденциальные сведения и не должны быть доступны обычным пользователям системы. В то же время, например, справочники ФизическиеЛица и Сотрудники используются не только для расчета зарплаты, поэтому их имеет смысл включать и в другие подсистемы.
Добавим в систему новый интерфейс, после добавления интерфейса появится ), в частности, в подменю Прочие установим флаг Переключить интерфейс, и нажмем на кнопку Построить.
(рис 4.19) Создание нового интерфейса: конструктор менюКонструктор меню построит новый интерфейс, включив в его .
(рис 4.20) Результат работы конструктора менюПри необходимости мы можем на данном этапе работы редактировать состав пунктов меню, удалять существующие и добавлять новые пункты. В интерфейсе может быть лишь одно главное меню. Помимо главного меню мы планируем включить в наш интерфейс команды для быстрого вызова наиболее часто используемых объектов. В нашем случае это справочник Сотрудники и документ Начисление зарплаты.
Нажмем на кнопку .
(рис 4.21) Создание новой панели инструментовЩелкнем на контурном обозначении новой кнопки панели инструментов, которое расположено в нижней части окна настройки интерфейса. В окне свойств элемента панели убедимся в том, что параметр .
(рис 4.22) Создание новой кнопки на панели инструментовЩелкнем еще раз по контурной кнопке, установим ее параметр ТипКнопки на Разделитель. Добавим на панель еще одну кнопку - она будет служить для открытия списка документов НачислениеЗарплаты.
Щелкнем по интерфейсу в дереве конфигурации (сейчас он называется Интерфейс 1) и в окне его свойств введем Расчетчик в поле Имя.
Теперь нам нужно назначить этот интерфейс пользователю, который будет заниматься в нашей конфигурации расчетом заработной платы. Для этого обновим конфигурацию базы данных, после чего выполним команду .
(рис 4.23) Назначение интерфейса пользователюТак как пользователю . Без этого вход в систему под учетной записью указанного пользователя будет осуществлен, но меню и панель инструментов отображены не будут.
(рис 4.24) Редактирование прав пользователя Расчетчик для обеспечения возможности работы с новым интерфейсомЗапустим конфигурацию в режиме 1С:Предприятие, при запуске выберем пользователя . При необходимости в него можно внести изменения в Конфигураторе. Если в системе существует несколько интерфейсов (дополнительные интерфейсы для других пользователей нашей конфигурации вы можете создать самостоятельно), включенная в интерфейс команда переключения интерфейса
(она расположена по адресу Прочие > Переключить интерфейс ) позволит (при наличии права использования интерфейса ) пользователю переключаться между интерфейсами.
(рис 4.25) Проверка работоспособности интерфейса4.5. Локализация конфигураций
1С:Предприятие поддерживает функциональность локализации конфигураций. Это достигается за счет использования в конфигурации нескольких языков и вводом данных по объектам на этих языках. По умолчанию в новой конфигурации создан один объект .
(рис 4.26) Создание нового языкаТеперь, для локализации интерфейса конфигурации мы можем поступить двумя путями. Во-первых, можно добавить названия на новом языке для существующих объектов, редактируя их формы, например, на рис 4.27 видна форма свойств документа Начисление зарплаты, и окно Строки на разных языках, которое открыто нажатием на значок увеличительного стекла в поле Синоним. Так же можно поступить при создании новых объектов.
Если вам удобнее сделать один из существующих языков языком по умолчанию (его еще называют языком просмотра и редактирования конфигурации), вы можете воспользоваться кнопкой выбора языка, которая расположена в правом нижнем углу окна Конфигуратора. Если воспользоваться этой кнопкой, и, например, в нашей конфигурации, переключить язык на En - при открытии формы редактирования свойств элементов управления то, что может отображаться и на русском и на английском, будет, по умолчанию, отображаться на английском (или, если англоязычная строка еще не введена, там будет представлено пустое поле, которое можно заполнить).
Если из конфигурации будет удален язык, на котором уже введены какие-либо данные, эти данные сохранятся - их можно "восстановить", вновь создав язык с тем же кодом, который был у этого языка ранее. То же самое касается смены кода языка - при возвращении прежнего кода введенные данные восстанавливаются.
(рис 4.27) Редактирование элементов интерфейса на дополнительном языкеТакой подход позволяет добиться нужного результата, однако, он не очень удобен - для локализации и контроля за ней приходится разыскивать текстовые строки в самых разных уголках конфигурации. Гораздо удобнее воспользоваться инструментом .
(рис 4.28) Настройка области поиска текстов интерфейсаВ поле вы можете видеть результаты поиска по текстам интерфейса конфигурации.
(рис 4.29) Результаты поиска по текстам интерфейсаВ колонке Расположение находятся адреса вхождений текстов, колонка Русский (ru) содержит строки для языка Русский, колонка English (en) - для языка English. Третья колонка (их может быть и больше, если, например, при разработке создавали и удаляли языки) содержит данные, для которых язык не определен. Например, такие данные обычно содержатся в печатных макетах документов.
Обратите внимание на то, что пара . Это - одна из подписей колонок табличной части в документе БухОперация.
(рис 4.30) Редактирование вхождения строкиВ данном случае мы воспользовались кнопкой со значком лупы в поле с текстом, того же эффекта можно достичь, просто вводя текст в поле, соответствующем языку локализации.
Теперь, для того, чтобы проверить, как локализация влияет на работу в конфигурации, назначим уже хорошо знакомому вам пользователю .
(рис 4.31) Редактирование свойств пользователяВыше, вводя англоязычные аналоги для русскоязычных команд и строк, мы заполнили лишь несколько строк для демонстрации возможностей локализации. Теперь, если мы войдем в конфигурацию под пользователем .
Некоторые строки попали в англоязычную конфигурацию автоматически (такие, как наименования пунктов меню на русском, взятые из имен объектов), некоторые (наименования колонок табличной части) остались незаполненными.
(рис 4.32) Результаты частичной локализации конфигурацииНо даже сейчас можно отметить, что те строки, которые мы отредактировали, отображаются правильно. А это означает, что механизм работает так, как мы того ожидаем, локализацию можно продолжать.
1С:Предприятие поддерживает двуязычное (русское и английское) написание для программных конструкций. По умолчанию применяется русский язык, то есть, например, когда вы создаете какую-либо процедуру, конструкции автоматически формируются на русском языке. Для переключения к англоязычному формированию конструкций можно воспользоваться свойством конфигурации (корневой объект приведено состояние поля Процедуры и функции модуля документа при выборе различных вариантов встроенного языка.
(рис 4.33) Различные варианты написания программных конструкцийНадо отметить, что команды можно вводить на английском языке даже тогда, когда Вариант встроенного языка установлен в значение Русский. Обычно, русскоязычные разработчики, так не поступают, вводя программные тексты на русском языке.
4.6. Выводы
В этой главе мы ознакомились с темами, касающимися работы в конфигурации множества пользователей. В частности, рассмотрели вопросы настройки доступа пользователей к различным объектам и данным, реализуемые, в основном, через роли, настроили список пользователей, рассмотрели особенности разработки интерфейсов и локализации конфигураций. Нашей следующей темой будут бизнес-процессы.
4.7. Видеоурок
Для данной лекции подготовлен видеоурок.