Редакции 2.0» создавать нового пользователя и назначать ему нужные права. Для этого перейдем в раздел «Администрирование». Выберем пункт меню «Настройки пользователей и прав». Здесь перейдем в справочник «Пользователи».

Добавим нового пользователя. Укажем его имя – Иванов Иван Иванович. Установим галочку, что доступ к информационной базе разрешен. У нас автоматически заполнится имя для входа в информационную базу. Также мы можем назначить пароль для пользователя. Он будет запрашиваться при входе. Заполняем его два раза. Также мы можем использовать аутентификацию операционной системы, если она у нас настроена. Где мы можем выбрать пользователей и списки пользователей в нашей системе. И тогда можно будет отключить «Аутентификацию 1:С Предприятия». Пользователь будет автоматически авторизоваться в системе без ввода пароля. Такая вот аутентификация наиболее удобна для работы в сетевых распределенных системах.

На следующем этапе нам нужно указать физическое лицо для нашего нового пользователя. Перейдем в справочник «Физические лица». Создадим нового. Укажем фамилию имя отчество. Укажем дату рождения – она обязательна для заполнения. А на следующем этапе нас, возможно, ждет сюрприз.

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

Вернемся в «Настройки пользователей и прав». Найдем «Группы доступа физических лиц». И создадим элементы этого справочника. Создадим группу доступа – «Сотрудники предприятия». И создадим группу доступа – «Контрагенты». Вы же в своей информационной базе можете использовать различные группы доступа физических лиц. Например, вы может разделить их также на клиентов и поставщиков. Можете использовать разделение физических лиц по конкретным менеджерам, которые работают с ними. Можете устроить региональное отделение групп физических лиц.

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

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

Для работы с правами в системе существует несколько справочников. Это, прежде всего, справочник «Пользователи». Это «Группы доступа». Это «Профили групп доступа». И также еще присутствует иерархия пользователей – это «Группы пользователей». Вот она отмечена галочкой.

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

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

На следующем уровне нашей системы предоставления прав находятся «профили групп доступа». В данном случае у нас представлены права – бухгалтер, менеджер по продажам и менеджер по закупкам. Каждому профилю групп доступа представляется свой набор ролей. Они могут пересекаться друг с другом, могут выставляться независимо. Т.е. есть какие-то роли, которые присущи для всех профилей групп доступа. Т.е. например, базовые какие-то права. И также есть специфические роли, которые назначаются каждому профилю индивидуально.

Следующий уровень предоставления прав – это «группы доступа». Одной группе доступа соответствует один профиль групп доступа. Тем не менее, в нескольких различных группах доступа мы можем использовать один и тот же профиль группы доступа. Для чего все это нужно? Группы доступа расширяют возможности ограничения доступа пользователей к базе. Что это значит? Это значит, что у нас есть один профиль с определенными ролями, но мы в группах доступа описываем, какие дополнительные ограничения накладываются на данный профиль.

Таким образом, мы получаем несколько групп с одинаковым профилем, но с разным уровнем доступа к базе. Т.е. например, у нас есть менеджер по продажам, и мы можем завести группу доступа – менеджер по продажам, который имеет доступ, допустим, к региону Москва. Отдельно мы можем создать группу доступа менеджеров по продажам, который имеет доступ к региону Московская область. И таким образом настраивать права в нашей информационной системе.

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

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

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

Теперь перейдем в «Права доступа». И здесь мы увидим, что Иванов Иван Иванович автоматически попал через группу пользователей «бухгалтеры» в группу доступа «бухгалтеры». Т.е. таким образом, мы имеем два способа назначить права для пользователей. Для примера, добавим нашего Иванова Иван Ивановича еще в одну из групп, например, «кладовщики». Нажмем «Записать». Перейдем в справочник «Пользователи». Здесь мы видим просто список пользователей без иерархии. Если мы перейдем в группу «бухгалтеры», то мы увидим Иванова Ивана Ивановича в группе «бухгалтеры». Также если мы перейдем в группу «кладовщики». Мы также увидим Иванова Иван Ивановича в группе «кладовщики».

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

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

Все настройки делались для версии 1С Документооборот КОРП 1.4.12.1, клиент-серверный вариант, платформа 1С:Предприятие 8.3 (8.3.6.2152).

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

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

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

Чуть подробнее. За организацию видов доступа в 1С документообороте отвечает план видов характеристик "Виды доступа ", в нем предопределены девять реквизитов, по которым, в типовом решении, возможно настроить ограничения к объектам на уровне записей (RLS):


  • Виды внутренних документов

  • Виды входящих документов

  • Виды исходящих документов

  • Виды мероприятий

  • Вопросы деятельности

  • Грифы доступа

  • Группы корреспондентов

  • Группы доступа физических лиц

  • Организации

Внимательно прочитали список? А цитату из справки 1С выше? Оценили иронию разработчиков? :)

Возьмем за основу очень простую модель - две организации: Фирма-1 и Фирма-2, два вида документов: Счет и Договор и два вопроса деятельности: АХО и Зарплата. Все пользователи будут использовать один общий профиль групп доступа.

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

Так вот для решения этой простой задачи нам потребуется настроить ни много ни мало ВОСЕМЬ групп доступа:


  1. Фирма-1, Счета, Вопросы Зарплаты

  2. Фирма-1, Счета, Вопросы АХО

  3. Фирма-1, Договоры, Вопросы зарплаты

  4. Фирма-1, Договоры , Вопросы АХО

  5. Фирма-2, Счета, Вопросы Зарплаты

  6. Фирма-2, Счета, Вопросы АХО

  7. Фирма-2, Договоры, Вопросы зарплаты

  8. Фирма-2, Договоры , Вопросы АХО

Зарплатчики каждой организации должны входить попарно-одновременно в две из четырех групп доступа (1,2; 3,4 либо 5,6; 7,8): Зарплатчики, работающие со счетами Фирмы-1 входят в группы 1 и 2. Зарплатчики, работающие с договорами Фирмы-1 входят в группы 3 и 4. Аналогично для Фирмы-2.

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

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

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

Теперь перейдем к тому, что допустим, нам потребовалось организовать разграничение доступа к какому-либо объекту конфигурации по определенному критерию, но возможность настройки такого разграничения в программе отсутствует. В качестве примера для рассмотрения возьмем типовую конфигурацию "Бухгалтерия предприятия 3.0 " (БП), включающую в себя подсистему "Управление доступом ", и в которой отсутствует возможность настройки RLS по справочнику "Контрагенты ". Перед внесением изменений в конфигурацию хотелось бы также сделать оговорку - вносимые изменения зависят от версии БСП, используемой в конфигурации, но принцип остается тем же самым. В рассматриваемой статье используется версия БСП 2.2.2.44.

И так, последовательность наших действий в конфигураторе, целью которых является реализация возможности настройки в конфигурации RLS по справочнику "Контрагенты " (в нашем случае является предметом ограничения доступа), будет следующей:
1. Отфильтровать дерево метаданных конфигурации по подсистеме "Стандартные подсистемы " - "Управление доступом ".
2. Через настройку поддержки конфигурации (в случае использования механизма поддержки) включить возможность изменения следующих объектов конфигурации:
а. Корень конфигурации.
б. Справочник "Контрагенты ".
в. Определяемый тип "ЗначениеДоступа ".
г. Подписка на событие "".
д . Общий модуль "".
3. Добавить в конфигурацию новый справочник "Группы доступа контрагентов ".
4. Добавить в справочник "Конрагенты " новый реквизит "ГруппаДоступа " ссылочного типа на наш новый справочник.
5. Для определяемого типа "ЗначениеДоступа " в составной тип включить ссылки на справочники "Контрагенты " и "Группы доступа контрагентов ".
6. Для подписки на событие " ОбновитьГруппыЗначенийДоступа " в качестве источника также указать справочник "Контрагенты ".
7. Открыть общий модуль " УправлениеДоступомПереопределяемый " и вставить в три его процедуры фрагменты кода, приведенные ниже.
8. Из роли "ИзменениеУчастниковГруппДоступа " скопировать в необходимую вам роль (или роли, определяющие доступ к справочнику) шаблоны RLS с именами "ПоЗначениям " и "ПоЗначениямРасширенный ". Установить в своих ролях использование одного из шаблонов по требуемому праву (например, "Чтение "), как показано на скрине ниже.
9. Запустить конфигурацию в режиме "Предприятия " с параметром запуска "ЗапуститьОбновлениеИнформационнойБазы " (или же вызвать экспортную процедуру "ОбновитьПараметрыОграниченияДоступа " общего модуля подсистемы "УправлениеДоступомСлужебный ").

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

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт ЗарплатаКадры.УправлениеДоступомЗаполнитьСвойстваВидаДоступа(ВидыДоступа); // +Наша вставка ВидДоступа = ВидыДоступа.Добавить(); ВидДоступа.Имя = "ГруппыКонтрагентов"; // имя вида доступа (используется в ролях для RLS) ВидДоступа.Представление = НСтр("ru = "Группы контрагентов""); ВидДоступа.ТипЗначений = Тип("СправочникСсылка.Контрагенты"); // критерий ограничения доступа ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаКонтрагентов"); // средство ограничения доступа // -Наша вставка КонецПроцедуры Процедура ПриЗаполненииИспользованияВидаДоступа(ИмяВидаДоступа, Использование) Экспорт ЗарплатаКадры.УправлениеДоступомЗаполнитьИспользованиеВидаДоступа(ИмяВидаДоступа, Использование); // +Наша вставка Если ИмяВидаДоступа = "ГруппыКонтрагентов" Тогда Использование = Истина; КонецЕсли; // -Наша вставка КонецПроцедуры Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт // +Наша вставка // указание прав объектов метаданных, на которые распространяется RLS Описание = Описание + " |Справочник.Контрагенты.Чтение.ГруппыКонтрагентов |Справочник.Контрагенты.Изменение.ГруппыКонтрагентов |"; // -Наша вставка КонецПроцедуры

После завершения обновления ИБ в программе необходимо проделать следующие действия:
1. Заполнить только что добавленный в систему справочник "Группы доступа контрагентов ".
2. У элементов справочника "Контрагенты " заполнить необходимым образом реквизит "Группа доступа ".
3. В справочнике "Профили групп доступа " (или же в справочнике "Группы доступа ") на закладке "Ограничения доступа " соответствующим образом настроить RLS по группам доступа контрагентов (ниже на скрине - пользователи, которым назначен профиль "Наш новый профиль доступа ", будут работать в справочнике только с контрагентами, входящими в группы доступа "Оптовые " и "Общие ").
4. Возможно потребуется предусмотреть в конфигурации механизм автоматического заполнения реквизита "Группа доступа " для новых элементов справочника "Контрагенты " (в целях облегчения его администрирования).

Резюме: Использование подсистемы "Управление доступом " из состава БСП дает возможность управлять RLS по любым объектам конфигурации, оперируя при этом минимум двумя стандартными справочниками "Профили групп доступа " и "Группы доступа ". Расширение возможностей настройки RLS дается с минимальным внесением изменений в подсистему. В случае, если критерий (или предмет) ограничения прав доступа имеет большой объем и постоянно расширяется (например, справочник "Контрагенты "), то имеется возможность через свой дополнительный справочник (средство разграничения) разделить критерий (или предмет) доступа на определенные области (в нашем случае через " Группы доступа контрагентов ") , в противном случае в качестве разграничителя доступа можно использовать (и имеет смысл) сами элементы справочника (например, в справочнике "Организации "). Неоспоримым плюсом использования подсистемы также является унификация администрирования прав доступа в информационной базе.

Все настройки прав пользователей, которые будут нами производиться в рамках этой статьи расположены в разделе 1С 8.3 «Администрирование» — «Настройки пользователей и прав». Данный алгоритм аналогичен в большинстве конфигураций на управляемых формах. В качестве примера будет использоваться программа 1С Бухгалтерия, но настройка прав в других программах (1С УТ 11, 1С ЗУП 3, 1C ERP) производиться абсолютно аналогично.

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

В данной форме настроек вы можете настроить сложность пароля (не менее 7 символов, обязательное содержание различных типов символов и т. п.). Так же здесь можно указать длину пароля, его срок действия и запрет входа в программу пользователей, у которых не было активности определенный период времени.

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

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

Имя для входа «АнтоновДП» подставилось автоматически, как сокращение от полного имени «Антонов Дмитрий Петрович». Установим пароль и аутентификацию 1С Предприятия. Здесь так же можно указать, доступна ли данному пользователю самостоятельная смена пароля.

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

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

Права доступа

После заполнения всех данный в карточке пользователя – Антонова Дмитрия Петровича, запишем их и перейдем к настройке прав доступа, как показано на рисунке ниже.

Перед нами открылся список ранее внесенных в программу профилей доступа. Отметим флажками необходимые.

Профили групп доступа

Профили групп доступа можно настроить из основной формы настройки пользователей и прав. Перейдите в раздел «Группы доступа» и нажмите на гиперссылку «Профили групп доступа».

Создадим новую группу из открывшейся формы списка. В табличной части на вкладке «Разрешенные действия (роли)» флажками необходимо отметить те роли, которые будут влиять на права доступа пользователей, входящим в создаваемую нами группу. Все эти роли создаются и настраиваются в конфигураторе. Из пользовательского режима их нельзя изменить или создать новые. Можно только выбрать из существующего перечня.

RLS: ограничение доступа на уровне записей

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

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

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

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

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