Права пользователей 1С 8.3: от роли в конфигураторе до группы доступа
Содержание
Роли в 1С 8.3 настраивают двумя способами. В самописной или нетиповой базе роль ставят галочкой прямо в карточке пользователя: Конфигуратор → Администрирование → Пользователи → вкладка «Прочие». В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP) роли выдают в режиме 1С:Предприятие через профили и группы доступа: Администрирование → Настройки пользователей и прав.
Выбор простой. Если в базе есть раздел «Настройки пользователей и прав», работайте только через него. Роли, поставленные вручную в конфигураторе, такая база перезапишет при следующей записи пользователя или группы доступа. Создавать новую роль в типовой конфигурации лучше в расширении, а не в основной конфигурации.
| Задача | Где делать | Когда подходит |
|---|---|---|
| Создать новую роль | Конфигуратор: дерево конфигурации или расширение | Нужны права, которых нет в типовых ролях |
| Назначить роль в нетиповой базе | Конфигуратор: список пользователей | Конфигурация без БСП |
| Назначить права в типовой базе | 1С:Предприятие: профили и группы доступа | БП 3.0, ЗУП 3.1, УТ 11, ERP, КА |
| Ограничить доступ к части данных | Ограничение доступа на уровне записей (RLS) | Разделение по организациям, складам, контрагентам |
Как устроены роли и права в 1С 8.3
Роль — объект конфигурации, который хранит набор прав. Сама по себе она ничего не делает. Права появляются у человека только тогда, когда роль назначена его пользователю информационной базы.
Права бывают двух уровней:
- 🔑 Права на конфигурацию в целом —
Администрирование,Администрирование данных,Монопольный режим,Активные пользователи,Журнал регистрации,Тонкий клиент,Веб-клиент,Внешнее соединение,Интерактивное открытие внешних обработокиотчётов. - 📄 Права на объекты — для справочника, документа, регистра:
Чтение,Добавление,Изменение,Удаление,Просмотр,Редактирование,Интерактивное добавление,Интерактивная пометка удаления. У документов добавляютсяПроведениеиИнтерактивное проведение.
Права ролей складываются. Если у пользователя две роли и в одной есть Изменение справочника, а в другой нет, он сможет справочник менять. Запретить право ролью нельзя: роль только разрешает.
Отсюда главное правило проектирования: роли делают узкими, по одной функции («Чтение номенклатуры», «Проведение реализаций»), а из них собирают набор для должности.
Есть ещё одна деталь платформы. Пока в базе нет ни одного пользователя, в неё входят без пароля с правами всех ролей из свойства конфигурации «Основные роли». Как только вы создали первого пользователя, вход без авторизации пропадает. Поэтому первым создают администратора с ролью полных прав, а уже потом остальных.
Создание роли в конфигураторе: пошагово
Роль в основной конфигурации (нетиповая база)
- Откройте базу в режиме Конфигуратор и дерево конфигурации (
Конфигурация → Открыть конфигурацию). - Разверните ветку
Общие → Роли, нажмите Добавить. - Задайте имя латиницей или кириллицей без пробелов, например
ЧтениеСправочников, и понятный синоним. - В правой части окна выберите объект слева, справа отметьте нужные права.
- Сохраните конфигурацию и обновите конфигурацию базы данных (
F7).
Пока конфигурация базы данных не обновлена, новая роль не появится в списке ролей пользователя.
Флажки в нижней части окна роли
| Флажок | Что делает | Как ставить |
|---|---|---|
| Устанавливать права для новых объектов | Объекты, добавленные в конфигурацию позже, сразу получат все права в этой роли | Снять для всех ролей, кроме полных прав |
| Устанавливать права для реквизитов и табличных частей по умолчанию | Новые реквизиты наследуют права объекта | Обычно оставить включённым |
| Независимые права подчинённых объектов | Права на реквизиты задаются отдельно от прав на объект | Включать, если нужно скрыть отдельные реквизиты |
Флажок «Устанавливать права для новых объектов» в рабочей роли — частая причина утечки доступа: разработчик добавил справочник с зарплатами, а его видят все пользователи этой роли.
Роль в расширении (типовая конфигурация на поддержке)
Править основную конфигурацию типовой базы ради одной роли — значит снимать её с поддержки или включать возможность изменения. Обновления потом придётся сравнивать вручную. Расширение решает задачу чище:
- В конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте расширение. - В дереве расширения добавьте роль в ветку
Общие → Роли. - Чтобы раздать права на объект основной конфигурации, сначала заимствуйте этот объект в расширение (контекстное меню объекта в основной конфигурации → Добавить в расширение).
- Отметьте права в роли и обновите конфигурацию базы данных.
Роль из расширения видна в списке ролей так же, как роль основной конфигурации. Обновление типовой её не затрагивает.
Ограничение доступа на уровне записей
Если нужно не «видит / не видит документ», а «видит только документы своей организации», права на объект недостаточно. Для этого у права Чтение или Изменение задают условие на вкладке ограничений доступа к данным. Условие пишется на языке запросов и обычно опирается на параметры сеанса.
В типовых конфигурациях на БСП условия уже написаны. Их включают флажком Ограничивать доступ на уровне записей в разделе Администрирование → Настройки пользователей и прав, а значения (какие организации, склады) задают в группе доступа.
Ограничения на уровне записей утяжеляют каждый запрос к таблице. Простые условия по одному-двум полям работают нормально, вложенные условия по нескольким регистрам заметно тормозят списки и отчёты.
Как назначить роль пользователю
В конфигураторе (база без БСП)
Администрирование → Пользователи, откройте пользователя или нажмите Добавить.- На вкладке Основные задайте имя, пароль или аутентификацию операционной системы.
- На вкладке Прочие отметьте роли и укажите основной интерфейс и язык.
- Нажмите ОК. Права применятся при следующем входе пользователя.
В типовой конфигурации: профили и группы доступа
Здесь цепочка длиннее, зато управлять ею проще:
роли → профиль группы доступа → группа доступа → пользователь
- 🧩 Профиль — набор ролей под должность: «Бухгалтер», «Кладовщик», «Менеджер по продажам». Поставляемые профили менять нельзя, но их можно скопировать и отредактировать копию.
- 👥 Группа доступа — профиль плюс список участников и ограничения (например, конкретные организации).
- 👤 Пользователь — входит в одну или несколько групп и получает сумму их ролей.
Порядок действий:
- Откройте
Администрирование → Настройки пользователей и прав → Профили групп доступа. - Найдите подходящий поставляемый профиль. Если он не подходит, скопируйте его кнопкой копирования в командной панели списка.
- В копии отметьте нужные роли, в том числе роль из вашего расширения, и запишите профиль.
- Перейдите в
Группы доступа, создайте группу, выберите профиль и добавьте участников. - При включённом RLS укажите на вкладке ограничений, к каким организациям или складам у группы есть доступ.
В Бухгалтерии 3.0 тот же результат проще получить из карточки пользователя: команда Права доступа показывает список групп, и нужно только отметить нужные. Нового сотрудника удобно создавать копированием карточки коллеги с такой же должностью — группы доступа скопируются вместе с ним.
Как проверить, какие права у пользователя на самом деле
Сумма ролей из нескольких групп часто даёт неожиданный результат. Проверять лучше не по памяти, а одним из способов ниже.
Отчёт о правах в типовой базе
В карточке пользователя (Администрирование → Настройки пользователей и прав → Пользователи) есть отчёт по правам доступа. Он показывает, из каких групп и профилей пришло каждое право и какие действуют ограничения по организациям. Тот же отчёт можно построить по объекту, чтобы увидеть всех, кто имеет к нему доступ.
Вход под пользователем
Самая честная проверка — открыть базу под тестовой учётной записью. Удобно запускать клиент с параметрами командной строки:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Test" /N"Кладовщик_тест" /P"пароль"
Для серверной базы вместо /F указывают /S"сервер\имя_базы". Проверку делайте на копии базы или под отдельным тестовым пользователем, а не под учётной записью сотрудника.
Проверка из кода
В отладке или во внешней обработке права проверяют встроенными функциями:
// Есть ли у текущего пользователя роль
Если РольДоступна("ДобавлениеИзменениеНоменклатуры") Тогда
Сообщить("Роль назначена");
КонецЕсли;
// Есть ли право Изменение на справочник у указанной роли
Если ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура, Метаданные.Роли.ДобавлениеИзменениеНоменклатуры) Тогда
Сообщить("Роль даёт право на изменение номенклатуры");
КонецЕсли;
Имена роли и справочника в примере замените своими. Третий параметр ПравоДоступа можно не указывать — тогда проверяется текущий пользователь.
Типичные ошибки при настройке ролей
Ещё одна системная ошибка — роль «Полные права» у всех, «чтобы не мешало». Такой пользователь может удалить объекты, менять пользователей и выгружать базу. Полные права оставляют одному-двум администраторам.
Оптимизация ролей: советы администратору
Набор ролей в живой базе со временем разрастается. Несколько правил помогают держать его под контролем:
- 🎯 Одна роль — одна функция. Узкие роли легко комбинировать в профили. Широкая роль «Менеджер» со временем обрастает правами для всех менеджеров сразу.
- 🏷️ Единый префикс в имени. Свои роли называйте с префиксом организации или расширения, например
мк_ЧтениеДоговоров. Их сразу видно среди сотни типовых. - 🧾 Не правьте поставляемые профили и роли. Копируйте профиль, добавляйте свою роль из расширения. Обновление типовой конфигурации тогда пройдёт без сюрпризов.
- 🧹 Ревизия раз в квартал. Выгрузите список пользователей с группами доступа, сверьте с действующим штатом. Уволенным сотрудникам запретите вход, а не удаляйте пользователя: на него ссылаются документы и журнал регистрации.
- 🐢 RLS — по делу. Ограничение на уровне записей включайте только там, где разделение реально требуется. Каждое лишнее условие — дополнительная нагрузка на запросы.
- 🔒 Технические права отдельно.
Внешнее соединение,Веб-клиент,Администрирование данныхвыдавайте отдельной ролью только тем учётным записям, которым они нужны: службам обмена, интеграциям.