Бухучет инфо. Ограничение доступа к документам и справочникам Как ограничить доступ в 1с бухгалтерия
Во многих компаниях возникала ситуация: некоторым пользователям 1С требуется лишь просматривать документы. Как настроить для них запрет на создание и редактирование?
Изначально пользователь должен быть уже создан в ИБ, так как ограничение происходит именно по группе пользователей. Создадим отдельную группу пользователей. Все действия совершаются под пользователем с полными правами.
Зайдём в справочник «Группы пользователей» (Операции – Справочники – Группы пользователей).
Добавляем «Группу пользователей».

В состав группы включаем пользователей, которых будем ограничивать. (В нашем случае, это пользователь с именем «1»).


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

После этого пользователи смогут только просматривать документы.
P.S. Пользователь может попробовать внести документ , ему программа даже даст заполнить форму, но документ не запишет, сославшись на то, что у данного пользователя недостаточно прав.
Для того чтобы разграничить права доступа, в 1С 8.3 существуют специальные объекты конфигурации – роли. В дальнейшем они могут назначаться конкретным пользователям, должностям и т. п. В них указывается, какие объекты конфигурации будут доступны. Так же есть возможность прописать условия предоставления доступа.
Роли настраиваются в конфигураторе. Так же их можно назначить конкретным пользователям, но для удобства в 1С реализован механизм групп доступа. В справочнике пользователей откройте («Администрирование — Настройка пользователей и прав — Пользователи») карточку любого сотрудника и нажмите на кнопку «Права доступа». В разных конфигурациях интерфейс может отличаться, но суть одна и та же.
Перед вами откроется список записей справочника «Профили групп доступа». Флажками отмечаются те, права которых пользователю будут доступны.
Справочник профилей групп доступа («Администрирование — Настройка пользователей и прав — Профили групп доступа») содержит в себе перечень ролей, который будет доступен пользователю при его назначении. Доступные роли профиля отмечаются флагами.

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

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

При разрешении совершения каких-либо действий с объектом, есть возможность указать ограничение доступа к данным. Данный механизм называется RLS и позволяет настроить права на уровне записей. Он достаточно интересный, но при активном его использовании может снизиться производительность.

В нижней части формы роли можно настроить автоматическую установку прав:
- для новых объектов (разрешающие права);
- на реквизиты и табличные части (права наследуются от объекта – владельца)
- на подчиненные объекты (права назначаются с учетом прав на родительские объекты).
Права можно назначить как на отбельные объекты, так и на всю конфигурацию в целом. В любой роли на вкладке «Права» выберите пункт с названием конфигурации. Справа отобразятся все возможные для нее роли. Здесь содержатся режимы запуска программы, «Все функции», административные и другие права. При нажатии на любое право, внизу отобразится его описание. Тут нет ничего сложного.

Настройки прав для остальных объектов конфигурации сходи между собой: чтение, добавление, удаления, проведение (для документов), управление итогами (для регистров накопления и бухгалтерии) и прочие. Здесь важно отметить право на «Интерактивное удаление». При его доступности пользователи смогут физически удалять данные из программы (shift + delete). Для важных объектов данное право назначать крайне нежелательно.

Программная проверка прав доступа
Для проверки доступности у пользователя какой-либо роли служит следующая функция:
- РольДоступна(«АдминистраторСистемы»)
В том случае, когда проверяемая роль назначена пользователю, функция вернет значение «Истина». В противном случае – «Ложь».
Для того чтобы выполнить какие-либо действия с объектом, к которому нет доступа, можно воспользоваться следующим методом:
- УстановитьПривилегированныйРежим(Истина)
После включения привилегированно режима никаких проверок прав не производится. По окончании действий над недоступными объектами необходимо снова вызвать данный метод с параметром «Ложь» для отключения данного режима. Помните, что в клиент — серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий.
Для проверки того, установлен привилегированный режим служит функция (возвращает «Истина» или «Ложь»):
- ПривилегированныйРежим()
Пользовательский интерфейс при отсутствии прав доступа
При попытке пользователя совершить какое-либо действие в программе, но которое у него нет прав будет выдано соответствующее предупреждение.

Бывают случаи, когда в каком-либо поле отображается надпись формата «<Объект не найден>» с указанием GUID, возможно, у пользователя тоже не хватает прав на чтение содержащегося в нем значения. Для проверки этой теории достаточно просмотреть значение данного поля под полными правами. Если надпись не пропадает – есть вероятность битой ссылки.
В этой статье я рассмотрю, как работать с пользователями в :
- создавать нового пользователя;
- настраивать права — профили, роли и группы доступа;
- как в 1С 8.3 настроить ограничение прав на уровне записей () — например, по организациям.
Инструкция подойдет не только для бухгалтерской программы, но и для многих других, построенных на базе БСП 2.х: 1С Управление торговлей 11, Зарплата и управление персоналом 3.0, Управление небольшой фирмой и других.
Если Вам интересна настройка прав с точки зрения программиста, читайте .
В интерфейсе программы 1С управление пользователями производится в разделе «Администрирование», в пункте «Настройка пользователей и прав»:
Чтобы завести в 1С Бухгалтерии 3.0 нового пользователя и назначить ему определенные права доступа, в меню «Администрирование» существует пункт «Настройки пользователей и прав». Заходим туда:

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

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

В полное имя введем «Бухгалтер 1», имя для входа зададим «Бух1» (именно оно будет отображаться при входе в программу). Пароль укажем «1».
Обязательно убедитесь, что установлены флажки «Вход в программу разрешен» и «Показывать в списке выбора», иначе пользователь себя не увидит при авторизации.
Получите 267 видеоуроков по 1С бесплатно:
«Режим запуска» оставим «Авто».
Настройка прав доступа — ролей, профилей
Теперь нужно указать «Права доступа» данному пользователю. Но сначала нужно его записать, иначе появится окно с предупреждением, как показано на рисунке выше. Нажимаем «Записать», затем «Права доступа»:

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

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

И внесем в него необходимые изменения — добавим роль « «:

Дадим новому профилю другое наименование. Например, «Бухгалтер с дополнениями». И установим флажок «Просмотр журнала регистраций».
Теперь нужно сменить профиль у пользователей, которых мы завели ранее.
Ограничение прав на уровне записи в 1С 8.3 (RLS)
Разберемся, что означает ограничение прав на уровне записи, или, как называют её в 1C, RLS (Record Level Security). Чтобы получить такую возможность, нужно установить соответствующий флажок:

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

«Вид доступа» выберем «Организации», «Значения доступа» выберем «Все разрешены, исключения назначаются в группах доступа». Нажимаем «Записать и закрыть».
Теперь возвращаемся в раздел «Пользователи» и выбираем, например, пользователя » Бухгалтер 1″. Нажимаем кнопку «Права доступа»:
Через кнопку «Добавить» выбираем организацию, данные по которой будет видеть «Бухгалтер 1».
Обратите внимание! Использование механизма разграничения прав на уровне записей может отразиться на производительности программы в целом. Заметка для программиста: суть RLS в том, что система 1С добавляет в каждый запрос дополнительное условие, запрашивая информацию о том, разрешено ли читать пользователю данную информацию.
Прочие настройки
Разделы «Копирование настроек» и «Очистка настроек» вопросов не вызывают, их названия говорят сами за себя. Это настройки внешнего вида программы и отчетов. Например, если Вы настроили красивый внешний вид справочника «Номенклатура», его можно тиражировать на остальных пользователей.
В программах 1С в настоящее время очень много различных функций, и вполне закономерно, что в них работают не только бухгалтеры, но и специалисты других должностей. Но еще совсем недавно возможности типовой конфигурации 1С: Бухгалтерия предприятия 8 не позволяли ограничить права пользователя, например, запретив ему доступ к информации о заработной плате или кассовым документам. Сейчас разработчики уделили внимание этому вопросу и в релизе 3.0.44.140 добавили новый профиль настройки прав доступа «Менеджер по продажам», который предусматривает работу пользователя только с ограниченным набором разрешенных документов.
Какие же документы может использовать в работе сотрудник с данными правами? К их числу относятся счета покупателям, накладные на продажу товаров и акты оказания услуг, а также возвраты товаров от покупателей. Кроме того, менеджеру по продажам разрешено редактировать данные о контрагентах в одноименном справочнике и данные о номенклатуре, включая цены номенклатуры. А еще данный профиль разрешает формировать отчеты «Остатки товаров» и «Счета, не оплаченные покупателями».
Итак, как же назначить пользователю права менеджера по продажам? Для этого открываем раздел «Администрирование» и выбираем пункт «Настройки пользователей и прав»
Щелкаем на закладку «Пользователи»

Выбираем ФИО пользователя и нажимаем кнопку «Права доступа»

Ставим галочку у профиля «Менеджер по продажам»

Записываем и закрываем.
Надеемся, что теперь Вам удастся избежать части ошибок, возникающих из-за некорректной работы пользователей с запрещенными им документами, Вы сэкономите время на поиске и исправлении недочетов и погрешностей, допущенных сотрудниками, а также избежите утечки конфиденциальной информации.
Удачной работы!
Часто возникает необходимость в частичном ограничении доступа к данным. Например, когда пользователь должен видеть документы только своей организации. В таких случаях в 1С используется механизм ограничения доступа на уровне записей (так называемый, RLS – Record Level Securiy).
Для примера предположим, что перед нами стоит следующая задача. На предприятии ведется многофирменный учет и каждый контрагент и пользователь базы данных относится к определенной организации. Необходимо обеспечить доступ к справочнику “Контрагенты” таким образом, чтобы каждый пользователь мог просматривать, редактировать и добавлять контрагентов только своей организации.
Для решения задачи будем использовать платформу “1С:Предприятие 8.2″. Создадим новую конфигурацию в свойствах которой в качестве основного режима запуска будет выбран вариант “Управляемое приложение”.
Далее создадим справочник “Организации” и ещё два справочника – “Контрагенты” и “Пользователи” с реквизитом “Организация”. Кроме справочников нам понадобятся два параметра сеанса – “Организация” и “Пользователь” (соответствующих типов). Значения этих параметров устанавливаются при запуске сеанса работы с конфигурацией и хранятся до его завершения. Именно значения этих параметров мы и будем использовать при добавлении условий ограничения доступа на уровне записей.
Установка параметров сеанса выполняется в специальном модуле – “Модуль сеанса”

В этом модуле опишем предопределенную процедуру “УстановкаПараметровСеанса” в которой вызовем функцию заранее подготовленного общего модуля “ПолныеПрава”. Это необходимо в силу особенностей работы базы данных в режиме управляемого приложения, когда часть программного кода может выполняться только на стороне сервера (подробно на объяснении этих принципов в данной статье я останавливаться не буду).
Код 1C v 8.х Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
ПолныеПрава.УстановитьПараметрыСеанса();
КонецПроцедуры
В свойствах модуля “ПолныеПрава” необходимо отметить флажки “Сервер”, “Вызов сервера” и “Привилегированный” (последнее означает, что процедуры и функций данного модуля будут выполнятся без контроля прав доступа). Текст модуля будет выглядеть так:
Код 1C v 8.х Функция ОпределитьТекущегоПользователя()
ТекПользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя(),Истина);
Возврат ТекПользователь;
КонецФункции
Процедура УстановитьПараметрыСеанса() Экспорт
ТекущийПользователь = ОпределитьТекущегоПользователя();
ТекущаяОрганизация = Справочники.Организации.ПустаяСсылка();
Если ЗначениеЗаполнено(ТекущийПользователь) Тогда
ТекущаяОрганизация = ТекущийПользователь.Организация;
КонецЕсли;
ПараметрыСеанса.Пользователь = ТекущийПользователь;
ПараметрыСеанса.Организация = ТекущаяОрганизация;
КонецПроцедуры
Функция ПараметрСеансаУстановлен(ИмяПараметра) Экспорт
Возврат ЗначениеЗаполнено(ПараметрыСеанса[ИмяПараметра]);
КонецФункции
Функция РольДоступнаПользователю(ИмяРоли) Экспорт
Возврат РольДоступна(ИмяРоли);
КонецФункции
В модуле управляемого приложения будем проверять наличие пользователя конфигурации в справочнике “Пользователи” (для простоты будем искать его по наименованию) и завершать работу системы если он не найден. Это необходимо для того, чтобы обеспечить заполнение параметров сеанса.
Код 1C v 8.х Процедура ПередНачаломРаботыСистемы(Отказ)
// всех кроме администратора будем проверять на наличие в справочнике "Пользователи"
Если Не ПолныеПрава.РольДоступнаПользователю("ПолныеПрава") Тогда
Если НЕ ПолныеПрава.ПараметрСеансаУстановлен("Пользователь") Тогда
Предупреждение("Пользователь """ + ИмяПользователя() + """ не найден в справочнике!");
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Теперь можем перейти непосредственно к описанию ограничений доступа. Для этого создадим роль “Пользователь” и перейдем на закладку “Шаблоны ограничений”, где добавим новый шаблон “КонтрагентыЧтениеИзменение” со следующим текстом шаблона: ГДЕ Организация =Организация #Параметр(1)

Текст шаблона ограничений является расширением языка запросов. В отличии от обычного запроса, текст ограничения должен в обязательном порядке содержать условие “ГДЕ”. В качестве значений параметров запроса (в нашем случае это “&Организация”) используются значения одноименных параметров сеанса. Конструкция вида #Параметр(1) означает, что на это место система подставит текст, переданный в качестве первого параметра в месте использования шаблона. С помощь приведенного шаблона будет выполняться проверка каждой записи таблицы (в нашем случае это будет справочник “Контрагены”). Для записей, значение реквизита “Организация” которых совпадает с заданным в соответствующем параметре сеанса, условие описанное в шаблоне будет выполняться. Таким образом эти записи будут доступны для чтения, изменения или добавления (в зависимости от того для какого из этих прав применяется шаблон). Продемонстрирую вышеизложенное на нашем примере.
Перейдем на закладку “Права” роли “Пользователь” и откроем список прав справочника “Контрагенты”. Будем использовать шаблон ограничений “КонтрагентыЧтениеИзменеие” для прав “Чтение”, “Изменение” и “Доблавление”.

Для права “Чтение” будем использовать шаблон с параметром “ИЛИ ЭтоГруппа”. При этом пользователям данной роли будет разрешено чтение не только элементов справочника “Контрагенты” своей организации, но и всех групп этого справочника.
#КонтрагентыЧтениеИзменение("ИЛИ ЭтоГруппа")
Поскольку при добавлении новых элементов справочника системой выполняется неявное чтение предопределенных реквизитов (это нужно, например, для нумерации), то необходимо обеспечить беспрепятственное чтение этих полей. Для этого добавим дополнительную строку с пустым текстом ограничения в таблицу ограничения доступа к данным и перечислим поля для которых действует данное правило – Ссылка, Версия данных, Родитель, Код.
Таким образом, поставленная задача ограничения доступа на уровне записей решена. Пользователи с действующими ограничениями получат доступ на просмотр и редактирование данных только своей организации.