Права пользователей 1С 8.3: от роли в конфигураторе до группы доступа

· 9 мин

Содержание

Роли в 1С 8.3 настраивают двумя способами. В самописной или нетиповой базе роль ставят галочкой прямо в карточке пользователя: Конфигуратор → Администрирование → Пользователи → вкладка «Прочие». В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP) роли выдают в режиме 1С:Предприятие через профили и группы доступа: Администрирование → Настройки пользователей и прав.

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

ЗадачаГде делатьКогда подходит
Создать новую рольКонфигуратор: дерево конфигурации или расширениеНужны права, которых нет в типовых ролях
Назначить роль в нетиповой базеКонфигуратор: список пользователейКонфигурация без БСП
Назначить права в типовой базе1С:Предприятие: профили и группы доступаБП 3.0, ЗУП 3.1, УТ 11, ERP, КА
Ограничить доступ к части данныхОграничение доступа на уровне записей (RLS)Разделение по организациям, складам, контрагентам

Как устроены роли и права в 1С 8.3

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

Права бывают двух уровней:

  • 🔑 Права на конфигурацию в целом — Администрирование, Администрирование данных, Монопольный режим, Активные пользователи, Журнал регистрации, Тонкий клиент, Веб-клиент, Внешнее соединение, Интерактивное открытие внешних обработок и отчётов.
  • 📄 Права на объекты — для справочника, документа, регистра: Чтение, Добавление, Изменение, Удаление, Просмотр, Редактирование, Интерактивное добавление, Интерактивная пометка удаления. У документов добавляются Проведение и Интерактивное проведение.

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

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

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

Создание роли в конфигураторе: пошагово

Роль в основной конфигурации (нетиповая база)

  1. Откройте базу в режиме Конфигуратор и дерево конфигурации (Конфигурация → Открыть конфигурацию).
  2. Разверните ветку Общие → Роли, нажмите Добавить.
  3. Задайте имя латиницей или кириллицей без пробелов, например ЧтениеСправочников, и понятный синоним.
  4. В правой части окна выберите объект слева, справа отметьте нужные права.
  5. Сохраните конфигурацию и обновите конфигурацию базы данных (F7).

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

Флажки в нижней части окна роли

ФлажокЧто делаетКак ставить
Устанавливать права для новых объектовОбъекты, добавленные в конфигурацию позже, сразу получат все права в этой ролиСнять для всех ролей, кроме полных прав
Устанавливать права для реквизитов и табличных частей по умолчаниюНовые реквизиты наследуют права объектаОбычно оставить включённым
Независимые права подчинённых объектовПрава на реквизиты задаются отдельно от прав на объектВключать, если нужно скрыть отдельные реквизиты

Флажок «Устанавливать права для новых объектов» в рабочей роли — частая причина утечки доступа: разработчик добавил справочник с зарплатами, а его видят все пользователи этой роли.

Роль в расширении (типовая конфигурация на поддержке)

Править основную конфигурацию типовой базы ради одной роли — значит снимать её с поддержки или включать возможность изменения. Обновления потом придётся сравнивать вручную. Расширение решает задачу чище:

  1. В конфигураторе откройте Конфигурация → Расширения конфигурации и создайте расширение.
  2. В дереве расширения добавьте роль в ветку Общие → Роли.
  3. Чтобы раздать права на объект основной конфигурации, сначала заимствуйте этот объект в расширение (контекстное меню объекта в основной конфигурации → Добавить в расширение).
  4. Отметьте права в роли и обновите конфигурацию базы данных.

Роль из расширения видна в списке ролей так же, как роль основной конфигурации. Обновление типовой её не затрагивает.

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

Если нужно не «видит / не видит документ», а «видит только документы своей организации», права на объект недостаточно. Для этого у права Чтение или Изменение задают условие на вкладке ограничений доступа к данным. Условие пишется на языке запросов и обычно опирается на параметры сеанса.

В типовых конфигурациях на БСП условия уже написаны. Их включают флажком Ограничивать доступ на уровне записей в разделе Администрирование → Настройки пользователей и прав, а значения (какие организации, склады) задают в группе доступа.

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

Как назначить роль пользователю

В конфигураторе (база без БСП)

  1. Администрирование → Пользователи, откройте пользователя или нажмите Добавить.
  2. На вкладке Основные задайте имя, пароль или аутентификацию операционной системы.
  3. На вкладке Прочие отметьте роли и укажите основной интерфейс и язык.
  4. Нажмите ОК. Права применятся при следующем входе пользователя.

В типовой конфигурации: профили и группы доступа

Здесь цепочка длиннее, зато управлять ею проще:

роли → профиль группы доступа → группа доступа → пользователь

  • 🧩 Профиль — набор ролей под должность: «Бухгалтер», «Кладовщик», «Менеджер по продажам». Поставляемые профили менять нельзя, но их можно скопировать и отредактировать копию.
  • 👥 Группа доступа — профиль плюс список участников и ограничения (например, конкретные организации).
  • 👤 Пользователь — входит в одну или несколько групп и получает сумму их ролей.

Порядок действий:

  1. Откройте Администрирование → Настройки пользователей и прав → Профили групп доступа.
  2. Найдите подходящий поставляемый профиль. Если он не подходит, скопируйте его кнопкой копирования в командной панели списка.
  3. В копии отметьте нужные роли, в том числе роль из вашего расширения, и запишите профиль.
  4. Перейдите в Группы доступа, создайте группу, выберите профиль и добавьте участников.
  5. При включённом RLS укажите на вкладке ограничений, к каким организациям или складам у группы есть доступ.

В Бухгалтерии 3.0 тот же результат проще получить из карточки пользователя: команда Права доступа показывает список групп, и нужно только отметить нужные. Нового сотрудника удобно создавать копированием карточки коллеги с такой же должностью — группы доступа скопируются вместе с ним.

Как выдать пользователю права?

Как проверить, какие права у пользователя на самом деле

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

Отчёт о правах в типовой базе

В карточке пользователя (Администрирование → Настройки пользователей и прав → Пользователи) есть отчёт по правам доступа. Он показывает, из каких групп и профилей пришло каждое право и какие действуют ограничения по организациям. Тот же отчёт можно построить по объекту, чтобы увидеть всех, кто имеет к нему доступ.

Вход под пользователем

Самая честная проверка — открыть базу под тестовой учётной записью. Удобно запускать клиент с параметрами командной строки:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Test" /N"Кладовщик_тест" /P"пароль"

Для серверной базы вместо /F указывают /S"сервер\имя_базы". Проверку делайте на копии базы или под отдельным тестовым пользователем, а не под учётной записью сотрудника.

Проверка из кода

В отладке или во внешней обработке права проверяют встроенными функциями:

// Есть ли у текущего пользователя роль
Если РольДоступна("ДобавлениеИзменениеНоменклатуры") Тогда
	Сообщить("Роль назначена");
КонецЕсли;

// Есть ли право Изменение на справочник у указанной роли
Если ПравоДоступа("Изменение", Метаданные.Справочники.Номенклатура, Метаданные.Роли.ДобавлениеИзменениеНоменклатуры) Тогда
	Сообщить("Роль даёт право на изменение номенклатуры");
КонецЕсли;

Имена роли и справочника в примере замените своими. Третий параметр ПравоДоступа можно не указывать — тогда проверяется текущий пользователь.

Типичные ошибки при настройке ролей

Диагностика: выберите симптом

Ещё одна системная ошибка — роль «Полные права» у всех, «чтобы не мешало». Такой пользователь может удалить объекты, менять пользователей и выгружать базу. Полные права оставляют одному-двум администраторам.

Оптимизация ролей: советы администратору

Набор ролей в живой базе со временем разрастается. Несколько правил помогают держать его под контролем:

  • 🎯 Одна роль — одна функция. Узкие роли легко комбинировать в профили. Широкая роль «Менеджер» со временем обрастает правами для всех менеджеров сразу.
  • 🏷️ Единый префикс в имени. Свои роли называйте с префиксом организации или расширения, например мк_ЧтениеДоговоров. Их сразу видно среди сотни типовых.
  • 🧾 Не правьте поставляемые профили и роли. Копируйте профиль, добавляйте свою роль из расширения. Обновление типовой конфигурации тогда пройдёт без сюрпризов.
  • 🧹 Ревизия раз в квартал. Выгрузите список пользователей с группами доступа, сверьте с действующим штатом. Уволенным сотрудникам запретите вход, а не удаляйте пользователя: на него ссылаются документы и журнал регистрации.
  • 🐢 RLS — по делу. Ограничение на уровне записей включайте только там, где разделение реально требуется. Каждое лишнее условие — дополнительная нагрузка на запросы.
  • 🔒 Технические права отдельно. Внешнее соединение, Веб-клиент, Администрирование данных выдавайте отдельной ролью только тем учётным записям, которым они нужны: службам обмена, интеграциям.
Перед выдачей прав новому сотруднику
Выполнено: 0 / 5

Частые вопросы

Можно ли назначить роль сразу нескольким пользователям?
В типовых конфигурациях да: добавьте пользователей в одну группу доступа, и все получат её роли. В конфигураторе роли назначаются каждому пользователю по отдельности.
Чем роль отличается от профиля группы доступа?
Роль — объект конфигурации с набором прав, её создаёт разработчик. Профиль — запись в базе, которая объединяет несколько ролей; его настраивает администратор без конфигуратора.
Нужно ли пользователю перезаходить после смены ролей?
Да. Новые права вступают в силу со следующего сеанса. Попросите пользователя закрыть программу и войти заново.
Можно ли запретить одно действие, оставив остальные права роли?
Отнять право ролью нельзя: права только складываются. Нужно убрать широкую роль и собрать набор из более узких ролей без лишнего права.
Почему права на справочник есть, а поле в форме недоступно?
Скорее всего, в роли включены независимые права подчинённых объектов и права на этот реквизит не отмечены. Откройте роль, разверните объект до реквизитов и проверьте право на нужное поле.