Разграничение прав к дополнительным отчетам 1с 8.3. Бухучет инфо

Вопрос с правами доступа возникает в связи с необходимостью ограничить права пользователя в 1С (или группы пользователей), что подразумевает под собой запрет на совершение каких-либо действий с определенными объектами, например, их просмотр, запись, редактирование и т.д. Или, наоборот – из-за необходимости дать (расширить) права пользователей в 1С, что в реальности чаще всего следует за сообщением системы о нарушении прав доступа (например, недостаточно прав для просмотра) и обращением пользователя к администраторам с просьбой об этом.

Чтобы внести коррективы в правила доступа и изменить права на просмотр того или иного раздела или на любое другое действие, необходимо зайти в «Настройки пользователей и прав», что можно сделать при включенном пользовательском режиме на вкладке «Администрирование» (при условии, конечно, что имеются права на это).




Как уже упоминалось, в группы доступа входят определенные пользователи, а самим группам соответствует профили групп доступа, которые объединяют роли. По сути роль – это метаданные, разнообразие и количество которых зависит от конфигурации. Как правило, ролей довольно много и в них легко запутаться. Стоит помнить, что одна лишняя назначенная роль может открыть доступ к объектам нежелательным пользователям.


Описание прав пользователей доступно на вкладке «Описание».

Роли просматриваются посредством элемента справочника «Пользователи», попасть в который можно по клику на конкретном пользователе.


Здесь же формируется отчет по правам доступа, где отображается статус доступа к конкретным объектам системы.


Крайняя правая колонка «Ограничения на уровне записей» – это дополнительные условия, ограничивающие действия с объектами базы данных. По сути это запрос, выполняющийся в момент работы и сообщающий, можно или нельзя работать с объектом.

На скриншоте видно, что документ «Ввод начальных остатков» доступен для пользователя, но доступ возможен только к определенным складам.


Таким образом, установить доступ или изменить права в 1С можно добавив пользователя в ту или иную группу в пользовательском режиме.


Саму группу также можно изменить, например, добавив значение в ограничение доступа.


Права администратора позволяют осуществлять управление правами в режиме конфигуратора, где уже заданы типовые роли. Например, роль с много объясняющим названием «Базовые права», как правило, дает возможность осуществить только чтение или только просмотр объекта.


Для управления правами, призванными изменять объекты, предусмотрены специальные роли добавления/изменения данных.


Если известно, на какой объект не хватает прав у пользователя, можно:

  • От обратного: посмотреть вкладку «права» у конкретного объекта, при этом вверху мы увидим все роли, доступные в конфигурации, а в нижнем окне – права. Наличие тех или иных прав на объект отмечено «галочкой». Таким же образом задаются права для новых объектов.

  • Открыть роль, назначенную пользователю, и, выбрав в левом окне конкретный объект, в правом окне увидеть список прав, то есть действия, которые пользователь с данной ролью может сделать с этим объектом – чтение, добавление, просмотр т.д.


Таким образом, все возможные права в системе предопределены. Чтение, добавление, изменение, просмотр, редактирование и другие права могут быть включены или выключены в любой роли для любого объекта. Назначить права отдельно, не используя при этом роли, невозможно. Для разграничения прав пользователя необходимо назначить соответствующую роль. Удобным инструментом для анализа прав и ролей становится таблица «Все роли», формируемая в конфигураторе.



На скриншоте видно, что роль «Полные права» обладает максимальным объемом прав. И если задачи ограничивать пользователей в правах не стоит вовсе – можно смело назначать эту роль всем пользователям, навсегда избавившись от вопросов пользователей.

На практике же, как правило, в большинстве случаев все-таки необходима «защита от дурака». Подстраховаться от нежелательного изменения данных нужно всем более-менее крупным компаниям. Здесь на помощь приходит встроенные в 1С роли. Разобраться в разнообразии ролей не просто, на это требует много времени. Поэтому создание собственной роли для решения практических задач, зачастую может быть единственным выходом. Рассмотрим этот момент подробнее. Добавить роль можно в дереве метаданных.


В новой роли разграничить права можно простым выставлением флажков напротив соответствующего права.


Флажки в низу окна говорят о том, что права будут автоматически назначаться для новых объектов метаданных/для реквизитов и табличных частей объекта, для которого назначаются права, а также – будут ли наследоваться права относительно родительского объекта.

Ограничения прав доступа задаются в правом нижнем окне новой роли. Это мощный инструмент, позволяющий ограничить права на уровне записей, т.е. предоставить доступ именно к необходимым данным. Если простое назначение прав может только «прямолинейно» дать или отнять права на действия с объектом, то механизм ограничений позволяет гибко настроить права доступа относительно данных. Например, ограничить чтение и просмотр данных только по одной организации.


Конструктор ограничений доступа к данным позволяет создать условие, по которому будет ограничен доступ.


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

В заключение хотелось бы отметить, что фирма 1С в качестве разработчика позаботилась о наличие широких возможностей для администраторов в части редактирования прав в своих программных решениях. И если на первый взгляд эти инструменты могут показаться сложными и избыточными, то в дальнейшем, особенно при попытке построить эффективную схему доступа в условиях многоуровневой, разветвленной структуры персонала на предприятии или в организации, становится ясно, что функционал программы вполне соответствует реальным потребностям.

Как в программе 1С 8.3 настроить права доступа?

В данной статье рассмотрим как работать с пользователями в 1С Бухгалтерии 8.3:

  • создавать нового пользователя
  • настраивать права - профили, роли и группы доступа
  • как в 1С 8.3 настроить ограничение прав на уровне записей (RLS) - например, по организациям

Инструкция подойдет не только для бухгалтерской программы, но и для многих других, построенных на базе БСП 2.х: 1С Управление торговлей 11, Зарплата и управление персоналом 3.0, ERP 2.0, Управление небольшой фирмой и других.

В интерфейсе программы 1С управление пользователями производится в разделе «Администрирование», в пункте «Настройка пользователей и прав»:

Как создать нового пользователя в 1С

Что бы завести в 1С Бухгалтерии 3.0 нового пользователя и назначить ему определенные права доступа, в меню «Администрирование» существует пункт «Настройки пользователей и прав». Заходим туда:

Управление списком пользователей осуществляется в разделе «Пользователи». Здесь можно завести нового пользователя (или группу пользователей), либо отредактировать уже существующего. Управлять списком пользователей может только пользователь с административными правами.

Создадим группу пользователей с названием «Бухгалтерия», а в ней двух пользователей: «Бухгалтер 1» и «Бухгалтер 2».

Что бы создать группу, нажимаем кнопку, которая выделена на рисунке выше и вводим наименование. Если в информационной базе есть другие пользователи, которые подходят на роль бухгалтера, можно тут же их добавить в группу. В нашем примере таких нет, поэтому нажимаем «Записать и закрыть».

Теперь создадим пользователей. Устанавливаем курсор на нашу группу и нажимаем кнопку «Создать»:

В полное имя введем «Бухгалтер 1», имя для входа зададим «Бух1» (именно оно будет отображаться при входе в программу). Пароль укажем «1».

Обязательно убедитесь, что установлены флажки «Вход в программу разрешен» и «Показывать в списке выбора», иначе пользователь себя не увидит при авторизации.

«Режим запуска» оставим «Авто».

Настройка прав доступа - ролей, профилей

Теперь нужно указать «Права доступа» данному пользователю. Но сначала нужно его записать, иначе появится окно с предупреждением, как показано на рисунке выше. Нажимаем «Записать», затем «Права доступа»:

Выбираем профиль «Бухгалтер». Данный профиль стандартный и настроен на основные права, необходимые бухгалтеру. Нажимаем «Записать» и закрываем окно.

В окне «Пользователь (создание)» нажимаем «Записать и закрыть». Так же создаем второго бухгалтера. Убеждаемся, что пользователи заведены и могут работать:

Следует отметить, что один и тот же пользователь может принадлежать нескольким группам.

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

Зайдем в раздел «Профили групп доступа».

Допустим, нам нужно разрешить нашим бухгалтерам просматривать журнал регистрации.

С нуля создавать профиль довольно трудоемко, поэтому скопируем профиль «Бухгалтер»:

И внесем в него необходимые изменения - добавим роль «Просмотр журнала регистрации»:

Дадим новому профилю другое наименование. Например «Бухгалтер с дополнениями». И установим флажок «Просмотр журнала регистраций».

Теперь нужно сменить профиль у пользователей, которых мы завели ранее.

Ограничение прав на уровне записи в 1С 8.3 (RLS)

Разберемся, что означает ограничение прав на уровне записи или как называют её в 1C - RLS (Record Level Security). Что бы получить такую возможность, нужно установить соответствующий флажок:

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

Заходим опять в раздел управления профилем, два раза кликаем по профилю «Бухгалтер с дополнениями» и переходим на закладку «Ограничения доступа»:

«Вид доступа» выберем «Организации», «Значения доступа» выберем «Все разрешены, исключения назначаются в группах доступа». Нажимаем «Записать и закрыть».

Теперь возвращаемся в раздел «Пользователи» и выбираем, например, пользователя » Бухгалтер 1″. Нажимаем кнопку «Права доступа»:

Через кнопку «Добавить» выбираем организацию, данные по которой будет видеть «Бухгалтер 1».

Обратите внимание! Использование механизма разграничения прав на уровне записей может отразится на производительности программы в целом. Заметка для программиста: суть RLS в том, что система 1С добавляет в каждый запрос дополнительное условие, запрашивая информацию о том, разрешено ли читать пользователю данную информацию.

Прочие настройки

Разделы «Копирование настроек» и «Очистка настроек» вопросов не вызывают их названия говорят сами за себя. Это настройки внешнего вида программы и отчетов. Например, если вы настроили красивый внешний вид справочника «Номенклатура» - его можно тиражировать на остальных пользователей.

В разделе «Настройки пользователей» можно изменить внешний вид программы и сделать дополнительные настройки для удобства работы.

Флажок «Разрешить доступ внешним пользователям» дает возможность добавлять и настраивать внешних пользователей. Например, вы хотите организовать на базе 1С интернет магазин. Клиенты магазина как раз и будут являться внешними пользователями. Настройка прав доступа осуществляется аналогично обычным пользователям.

По материалам: programmist1s.ru

Настройку доступа можно производить в нескольких местах программы, но рекомендуется выполнять её для профиля пользователя. Заходим в профиль администраторы и что мы видим?

Редактирование значений настроек запрещено. Это абсолютно нормально, не стоит пытаться установить их в другом месте. Просто система считает, если у пользователя одна из ролей - «Полные права», то ему разрешено все , не зависимо от настроек дополнительных прав. Поэтому, нет смысла их настраивать. Для других профилей дополнительные права замечательно устанавливаются.

Но настройки дополнительных прав можно выполнять не только для профиля, но и для группы и для конкретного пользователя.

Как же поведет себя система, если значения дополнительных прав у пользователя и его профиля не совпадают? Может сложиться впечатление, что система должна в этом случае использовать значение права, установленное пользователю, как более точное. Но это не так! Приоритет прав профиля выше, чем у группы пользователей и пользователя. Прочитав значение права у профиля, программа даже не будет смотреть, что там установлено для группы, поэтому и необходимо выполнять настройку в профиле.

Зачем же тогда сделана возможность заполнять права для группы и пользователя, если они все равно не используются? А использоваться они будут, если пользователю профиль не задан. Какое же из прав будет брать система в этом случае? Посмотрим в конфигураторе:

Функция ПрочитатьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию, Пользователь) ВозвращаемыеЗначения = Новый Массив ; Запрос = Новый Запрос; Запрос.УстановитьПараметр("Пользователь" , Пользователь); Запрос.УстановитьПараметр("ПравоПользователя" , Право); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | РегистрЗначениеПрав.Значение |ИЗ | РегистрСведений.ЗначенияДополнительныхПравПользователя КАК РегистрЗначениеПрав |ГДЕ | РегистрЗначениеПрав.Право = &ПравоПользователя | И РегистрЗначениеПрав.Пользователь В | (ВЫБРАТЬ | ПользователиГруппы.Ссылка КАК Ссылка | ИЗ | Справочник.ГруппыПользователей.ПользователиГруппы КАК ПользователиГруппы | ГДЕ | ПользователиГруппы.Пользователь = &Пользователь | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи) | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | &Пользователь)" ; Выборка = Запрос. Выполнить(). Выбрать(); Если Выборка. Количество() = 0 Тогда ВозвращаемыеЗначения. Добавить(ЗначениеПоУмолчанию); Иначе Пока Выборка. Следующий() Цикл ВозвращаемыеЗначения. Добавить(Выборка.Значение); КонецЦикла; КонецЕсли; Возврат ВозвращаемыеЗначения; КонецФункции

Функция возвращает массив значений прав, заданных для пользователя, группы этого пользователя и группы "Все пользователи".

Функция ПравоЕстьУПользователя(Право, ЗначениеПоУмолчанию) МассивЗначенийПрава = ПолучитьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию); Возврат МассивЗначенийПрава.Найти(Истина) <> Неопределено; КонецФункции

О группе «Все пользователи» не стоит забывать. В нее входят все пользователи системы, но редко кто смотрит, какие права для неё заданы. Так же не верным решением будет устанавливать значение для этой группы, если мы хотим чтобы оно действовало для всех пользователей. Повторюсь, более приоритетным является профиль, именно в нем стоит редактировать дополнительные права.

Стоит так же добавить, что система не читает этот регистр каждый раз, а помещает данные в кэш после первого прочтения и в дальнейшем берет данные из него. Поэтому, значение установленное пользователю, вступит в силу только в следующем сеансе.

Итак, подведем итоги:

Если у пользователя есть роль «Полные права», то значения дополнительных прав ему задавать не нужно, ему и так все разрешено.Если пользователю задан профиль, то берется значение соответствующего профиля. Если профиль не задан, то система читает значения для группы, пользователя и группы «Все пользователи», и выбирает одно по принципу если разрешено в одном месте, то разрешено вообще.


Как в 1С Бухгалтерия 8.3 создать пользователя с правами «Администратор»

При запуске вновь созданной чистой, пустой информационной базы 1С Бухгалтерия 3.0 начальное окно имеет такой вот вид. Программа 1С Бухгалтерия нам весьма однозначно предлагает начать работу с заполнения реквизитов нашей организации.

Мы же начнем процесс работы с нашей программой 1С Бухгалтерия с создание первого пользователя.

Для этого мы переходим в раздел «Администрирование» - «Настройки пользователей и прав», переходим по гиперссылке «Пользователи» и нажимаем кнопку «Создать».

Укажем имя нашего пользователя (ГлавБух). Никакие другие изменения вносить не будем. При необходимости можно изменить пароль данного пользователя, но сейчас обойдемся без этого. Нажимаем кнопку «Записать».

Программа 1С Бухгалтерия 8.3 говорит, что первый пользователь будет автоматически добавлен в группу «Администраторы». Соглашаемся с этим.

Наш пользователь создан. Если мы перейдем по кнопке «Права доступа», то увидим, что пользователю назначен профиль «Администратор».

Данные действия необходимо выполнить для того, чтобы в программе 1С Бухгалтерия 8.3 как раз этот пользователь с правами администратора и появился.

В принципе можно работать и без заведения пользователя. Но некоторые регламентные процедуры в нашей программе 1С Бухгалтерия 8.3 выполняется от имени пользователя с полными правами. Когда такого пользователя нет в программе, возможна неоднозначная ситуация, когда такие регламентные процедуры система не сможет выполнить. Поэтому рекомендуется начинать работу с программой 1С Бухгалтерия 8.3 с заведение пользователя с правами доступа «Администратор».

Система прав доступа позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности. Структура прав определяется конкретным прикладным решением.

Кроме этого, для объектов, хранящихся в базе данных (справочники, документы, регистры и т.д.) могут быть определены права доступа к отдельным полям и записям. Например, пользователь может оперировать документами (накладными, счетами и т.д.) определенных контрагентов и не иметь доступа к аналогичным документам других контрагентов.

Роли

Для реализации ограничения прав доступа в прикладных решениях предназначены специальные объекты конфигурации - Роли. .

Интерактивные и основные права

Все права, поддерживаемые системой 1С:Предприятие, можно разделить на две большие группы: основные и интерактивные. Основные права описывают действия, выполняемые над элементами данных системы или над всей системой в целом, и проверяются всегда, независимо от способа обращения к данным. Интерактивные права описывают действия, которые могут быть выполнены пользователем интерактивно. Соответственно проверяются они только при выполнении интерактивных операций стандартными способами, причем в клиент-серверном варианте все проверки прав (кроме интерактивных) выполняются на сервере.

Основные и интерактивные права взаимосвязаны. Например, существует основное право Удаление, которому соответствуют два интерактивных права: Интерактивное удаление и Интерактивное удаление помеченных. Если пользователю запрещено Удаление, то и все интерактивные "удаления" также будут запрещены для него. В то же время, если пользователю разрешено Интерактивное удаление помеченных, это значит, что Удаление ему также разрешается.

Кроме того, основные права могут зависеть друг от друга. В результате образуются довольно сложные цепочки взаимосвязей, которые отслеживаются системой автоматически: как только разработчик снимает разрешение на какое-либо право, система сама снимает разрешения на все права, которые зависят от этого права. И наоборот, при установке какого-либо права разработчиком, система сама устанавливает все права, от которых это право зависит.

Например, для того, чтобы пользователь имел право Итерактивное удаление помеченных , ему необходимо обладать интерактивными правом Редактирование . Это право, в свою очередь, требует наличия интерактивного права Просмотр :

Право Интерактивное удаление помеченных Удаление . Интерактивное право Редактирование требует наличия основного права Изменение . Интерактивное право Просмотр требует наличия основного права Чтение .

Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.

Ограничение доступа к данным на уровне записей и полей

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

  • чтение - получение записей или их фрагментов из таблицы базы данных;
  • добавление - добавление новых записей без изменения существующих;
  • изменение - изменение существующих записей;
  • удаление - удаление некоторых записей без внесения изменений в оставшиеся.

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

Для объектных таблиц и регистров сведений могут быть заданы разные ограничения для различных полей таблицы, что позволяет определять ограничения не только на уровне записей базы данных, но и на уровне отдельных ее полей:

Ограничение доступа к данным представляет собой условие, описанное на языке, который является подмножеством языка запросов. Это условие применяется для каждой записи таблицы базы данных, над которой выполняется операция. Если условие принимает значение "истина", то операция выполняется, а если нет, то не выполняется. Условие ограничения доступа может быть уточнено с помощью инструкций препроцессора(#ЕСЛИ <условие>, #ТОГДА.. и др.), что сделает его более эффективным. При просмотре списков и формировании отчетов существует возможность обеспечить отображение только тех данных, доступ к которым пользователю разрешен.

Для регистров накопления, бухгалтерского учета и расчета условия позволяют разграничить доступ по значениям измерений (для регистров бухгалтерского учета по балансовым измерениям), а для объектных данных и регистров сведений условия позволяют разграничивать доступ к данным по любым полям.

Условия ограничения можно ввести вручную или создать с помощью конструктора ограничений доступа к данным .

Параметры сеанса

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

Выполнение на сервере без проверки прав

Привилегированные модули

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

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

Привилегированный режим исполнения программного кода

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

Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.

Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. Допустимо использовать привилегированный режим тогда, когда работа с данными от лица некоторого пользователя не нарушает установленные для этого пользователя права доступа.