Роли и права в 1С 8.3: как выдать пользователю нужный доступ
Содержание
Роль пользователю в 1С 8.3 выдаёт администратор базы, а не сам пользователь. В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) это делают в режиме Предприятия: раздел Администрирование → Настройки пользователей и прав, где пользователя включают в группу доступа или отмечают ему профиль. Роль в Конфигураторе ставят только в базах без такого механизма.
Частая ошибка — галочкой добавить роль в Конфигураторе в типовой базе. Права появятся, но при следующей записи пользователя программа пересчитает их по группам доступа, и настройка пропадёт. Получить роль пользователя надёжно можно одним путём: через профиль группы доступа.
Из чего складываются права в 1С: роль, профиль, группа доступа
Платформа 1С знает только роли. Роль — объект конфигурации, в котором разработчик перечислил, что можно делать с каждым документом, справочником, отчётом: читать, добавлять, изменять, проводить. У пользователя информационной базы есть список ролей, и при входе платформа складывает их права.
Типовые конфигурации построены на Библиотеке стандартных подсистем (БСП). Она добавляет над ролями ещё два уровня:
- 🧩 Профиль групп доступа — набор ролей под должность: «Бухгалтер», «Главный бухгалтер», «Администратор» и другие. Профиль описывает, что человек может делать.
- 👥 Группа доступа — профиль плюс список участников. Можно добавить конкретных людей или целую группу пользователей.
- 🔒 Ограничения доступа — какие данные видны: например, только одна организация или один склад. Работают, если включено ограничение на уровне записей.
Итог: пользователь получает все роли из всех групп доступа, где он участник. Права суммируются, отнять их одной группой у другой нельзя.
| Уровень | Где настраивается | Кто меняет |
|---|---|---|
| Роль | Конфигуратор, ветка «Роли» дерева метаданных | Разработчик |
| Профиль групп доступа | Режим Предприятия, настройки пользователей и прав | Администратор |
| Группа доступа | Там же | Администратор |
| Список ролей пользователя | Заполняется программой автоматически | Никто вручную |
Что подготовить перед выдачей прав
Прежде чем выдавать доступ, проверьте пять вещей. Это займёт пару минут и снимет половину вопросов «почему у него не работает ».
- У вас самих есть права администратора. Нужен профиль «Администратор» или роль «Полные права». Без них раздел настроек пользователей и прав просто не откроется.
- Пользователь заведён в справочнике. Карточка есть в списке
Пользователи, и в ней стоит флажок «Вход в программу разрешен». - Задан способ входа. Для входа по логину и паролю — аутентификация 1С:Предприятия с именем для входа. Для входа под учётной записью Windows — аутентификация операционной системы с доменным пользователем вида
DOMAIN\ivanov. - Понятен состав обязанностей. Не «дайте ему всё», а конкретно: вводит банковские выписки, смотрит ОСВ, не трогает зарплату.
- Известно, нужны ли ограничения по данным. Если в базе несколько организаций и человек должен видеть одну, ограничение на уровне записей придётся включать отдельно.
Не выдавайте профиль «Администратор» ради одной-двух недостающих операций. С ним сотрудник может менять права остальным, удалять пользователей и запускать обработки.
Как дать роль пользователю в типовых конфигурациях
Раздел с настройками в трёх самых распространённых конфигурациях находится по разным путям:
| Конфигурация | Путь к настройкам |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Настройки пользователей и прав |
| ЗУП 3.1 | Администрирование → Настройки пользователей и прав |
| Управление торговлей 11 | НСИ и администрирование → Настройки пользователей и прав |
Дальше всё зависит от режима настройки прав. В Бухгалтерии по умолчанию включён упрощённый режим, в ЗУП и УТ — полный, с группами доступа.
Упрощённый режим (как в Бухгалтерии 3.0)
- Откройте
Пользователии дважды щёлкните по нужному сотруднику. - В карточке нажмите кнопку
Права доступа. - Откроется список профилей. Отметьте флажками нужные, например «Бухгалтер».
- Нажмите
Записать.
Каждый отмеченный профиль программа превращает в персональную группу доступа этого пользователя. Отдельно её создавать не нужно.
Полный режим (ЗУП 3.1, УТ 11)
- В настройках пользователей и прав откройте
Группы доступа. - Найдите подходящую группу или создайте новую кнопкой
Создать. Новой группе выберите профиль. - На вкладке участников нажмите
Подобратьи выберите пользователей или их группы. - Если включено ограничение на уровне записей, заполните вкладку с ограничениями: какие организации или склады доступны.
- Нажмите
Записать и закрыть.
Проверить результат удобно из карточки самого пользователя: кнопка Права доступа покажет, в каких группах он состоит.
Права подхватываются при входе. Если сотрудник работал в базе в момент настройки, ему нужно закрыть 1С и зайти заново.
Роль через Конфигуратор: когда так можно
В Конфигураторе роли назначают в Администрирование → Пользователи. Откройте пользователя двойным щелчком, перейдите на вкладку Прочие и отметьте роли галочками.
Этот путь подходит в трёх случаях:
- 🛠 Самописная конфигурация без БСП, где нет справочника групп доступа.
- 🧪 Тестовая или учебная база, где нужно быстро выдать права одному человеку.
- 🚑 Аварийный вход: все администраторы потеряли доступ, и надо вернуть «Полные права» хотя бы одному пользователю.
В типовой базе такую правку стоит считать временной. Как только кто-то запишет карточку пользователя или группу доступа, БСП приведёт список ролей к состоянию по профилям. Ваша галочка исчезнет.
Список пользователей в Конфигураторе пустой — значит, в базу входят без авторизации и с полными правами. Первым пользователем, которого вы создадите, должен быть администратор с ролью «Полные права». Иначе после создания рядового пользователя открыть Конфигуратор с правами администратора будет некому.
Для открытия Конфигуратора нужна роль с правом «Администрирование». В типовых конфигурациях это «Полные права» или «Администратор системы».
Свой профиль, если стандартного не хватает
Поставляемые профили — «Бухгалтер», «Кадровик», «Менеджер по продажам» — закрывают типовые должности. Но часто человеку нужно чуть больше или чуть меньше.
Состав ролей поставляемого профиля менять нельзя: его перезапишет обновление конфигурации . Правильный приём — скопировать профиль и править копию.
- Откройте
Профили групп доступа. - Выделите похожий профиль и нажмите
Скопировать. - Дайте копии понятное имя: «Бухгалтер + банк», «Склад только просмотр».
- На вкладке ролей добавьте или снимите галочки. Включите показ всех ролей, если нужная не видна в списке.
- Запишите профиль и выберите его в группе доступа вместо старого.
Есть и второй способ — не трогать основной профиль, а добавить ещё одну группу доступа с узким профилем. Например, «Бухгалтер» плюс отдельная группа «Чтение кадровых данных». Права сложатся. Так проще: при обновлении конфигурации основной профиль получает новые роли автоматически, а ваша надстройка остаётся.
| Способ | Когда выбирать | Риск |
|---|---|---|
| Ещё одна группа доступа с узким профилем | Нужно добавить права | Почти нет |
| Копия поставляемого профиля | Нужно убрать часть прав | После обновлений копия не получает новые роли — проверяйте вручную |
| Правка ролей в Конфигураторе | Самописная база | В типовой правка будет перезаписана |
Права только складываются. Если «Бухгалтер» видит зарплату, а вам это не нужно, добавление ещё одной группы ничего не отнимет. Убрать можно только копией профиля без лишних ролей.
Права не появились: как найти причину
Сначала посмотрите, что программа сама думает о правах сотрудника. В БСП есть отчёт о правах доступа: он открывается из карточки пользователя и показывает, какие действия с какими объектами разрешены и через какую группу доступа они пришли.
Сообщение Нарушение прав доступа! — это ответ платформы: у пользователя нет права на действие с конкретным объектом. Текст ошибки обычно называет объект — с ним и сверяйтесь в отчёте.
Если ограничения на уровне записей включили только что, программа пересчитывает доступ фоновым заданием. В большой базе это занимает время, и до окончания пересчёта сотрудник может видеть не все данные.
Последняя проверка — посмотреть итоговый список ролей глазами платформы. Откройте пользователя в Конфигураторе на вкладке Прочие (ничего не меняя). Если нужной роли там нет, значит, профиль группы доступа её не содержит или пользователь не попал в группу. Если роль есть, а доступа всё равно нет, ищите причину в ограничениях по данным или в правилах самой операции.
Массовое назначение: группы пользователей и обработка
Когда нужно дать одинаковый доступ двадцати новым сотрудникам, карточки по одной открывать не придётся.
Без программирования: группы пользователей
- В справочнике
Пользователисоздайте группу, например «Отдел продаж», и перенесите туда сотрудников. - В группе доступа на вкладке участников добавьте не людей, а эту группу пользователей.
- Новичка достаточно включить в группу «Отдел продаж» — права он получит автоматически.
Это самый безопасный приём: всё делается штатными средствами, история изменений видна в справочниках.
Внешняя обработка для нетиповой базы
В самописной базе без БСП роли можно раздать кодом через объект ПользователиИнформационнойБазы. Пример ниже добавляет роль всем пользователям, у которых её ещё нет. Имя роли берите из ветки «Роли» дерева метаданных.
&НаСервере
Процедура ДобавитьРольВсемНаСервере(ИмяРоли)
Роль = Метаданные.Роли.Найти(ИмяРоли);
Если Роль = Неопределено Тогда
Сообщить("Роль не найдена: " + ИмяРоли);
Возврат;
КонецЕсли;
Добавлено = 0;
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Если Не ПользовательИБ.Роли.Содержит(Роль) Тогда
ПользовательИБ.Роли.Добавить(Роль);
ПользовательИБ.Записать();
Добавлено = Добавлено + 1;
КонецЕсли;
КонецЦикла;
Сообщить(СтрШаблон("Роль добавлена пользователям: %1", Добавлено));
КонецПроцедуры
Запускайте обработку сначала на копии базы. Для этого нужны административные права, а ошибка в имени роли или условии затронет всех пользователей сразу.
В типовой конфигурации такой код не поможет: БСП перезапишет роли по группам доступа. Там массово меняют состав участников групп доступа — вручную через подбор или кодом, записывая элементы справочника групп доступа. Второй вариант имеет смысл, только если у вас есть разработчик, знакомый с БСП конкретной редакции.
Проверить, есть ли роль у текущего пользователя, из кода можно функцией РольДоступна("ИмяРоли"). Она полезна в собственных обработках и отчётах, чтобы прятать команды от тех, кому они не положены.