Работа с правами доступа в 1С:Предприятие — одна из ключевых задач администратора системы. Без грамотной настройки ролей пользователи получают либо избыточные полномочия (что опасно для безопасности данных), либо недостаточные (что тормозит бизнес-процессы). Создание ролей через конфигуратор 1С позволяет гибко управлять доступом к объектам метаданных, документам, справочникам и отчётам.
Эта статья подойдёт как начинающим администраторам, так и опытным специалистам, которые хотят систематизировать знания. Мы разберём не только базовый процесс создания роли, но и нюансы настройки прав, типичные ошибки, а также способы тестирования и отладки. Особое внимание уделим разнице между ролями на уровне конфигурации и на уровне пользователей — этот момент часто становится источником путаницы.
Если вы ранее не работали с конфигуратором 1С 8.3, рекомендуем сначала ознакомиться с основами интерфейса. Все действия в этой инструкции актуальны для последних версий платформы, но некоторые пункты меню могут незначительно отличаться в зависимости от модификации (например, в 1С:Управление торговлей или 1С:Бухгалтерия).
Что такое роль в 1С и зачем она нужна
Роль в 1С:Предприятие — это набор прав, определяющий, какие действия может выполнять пользователь с объектами базы данных. В отличие от прямого назначения прав конкретному пользователю, роль позволяет централизованно управлять доступом для групп сотрудников с одинаковыми обязанностями.
Основные преимущества использования ролей:
- 🔒 Безопасность: исключение случайного или злоумышленного изменения критичных данных.
- ⚙️ Гибкость: быстрая адаптация системы под изменения в организационной структуре компании.
- 📊 Удобство администрирования: достаточно один раз настроить роль, а затем назначать её новым пользователям.
- 🔄 Масштабируемость: возможность создавать иерархию ролей (например, "Менеджер отдела" → "Руководитель отдела").
В 1С существует два уровня ролей: на уровне конфигурации (создаются в конфигураторе и хранятся в метаданных) и на уровне пользователей (назначаются в режиме "1С:Предприятие"). Первые определяют технические возможности, вторые — прикладные. Например, роль "Кассир" может разрешать работу с чеками, но запрещать доступ к финансовой отчётности.
⚠️ Внимание: Изменения в ролях на уровне конфигурации требуют обновления информационной базы для вступления в силу. Это может привести к временной блокировке работы пользователей — планируйте такие операции на период минимальной нагрузки.
Подготовка к созданию роли: права и настройки
Перед тем как приступить к созданию роли, убедитесь, что выполнены предварительные условия:
Проверьте права доступа к конфигуратору (нужна роль "Администратор" или "Конфигуратор")
Создайте резервную копию базы данных (обязательно!)
Закройте все сеансы пользователей в режиме "1С:Предприятие"
Определите перечень объектов и прав, которые будет включать новая роль-->
Если вы работаете с типовой конфигурацией (например, 1С:ERP или 1С:Зарплата и Управление Персоналом), изучите существующие роли — возможно, достаточно скорректировать одну из них, вместо создания новой. Для этого:
- Откройте конфигуратор и перейдите в ветку
Общие → Роли. - Просмотрите список стандартных ролей (например,
ПолныеПрава,Администрирование). - Дважды кликните на интересующую роль, чтобы изучить её настройки.
Обратите внимание на колонку Права в окне редактирования роли. Здесь отображаются все объекты метаданных (справочники, документы, отчёты) и уровни доступа к ним:
Чтение, Добавление, Изменение, Удаление, Просмотр, Интерактивное удаление и др.
Используйте комбинацию клавиш Ctrl+F в окне редактирования роли, чтобы быстро найти нужный объект метаданных по названию.
Пошаговая инструкция: создание новой роли в конфигураторе
Теперь перейдём к практике. Следуйте этой инструкции, чтобы создать роль с нуля:
- Откройте конфигуратор и авторизуйтесь под пользователем с правами администратора.
- В дереве объектов метаданных найдите ветку
Общиеи выберитеРоли. - Кликните правой кнопкой мыши по папке
Ролии выберитеДобавить. - В открывшемся окне введите имя новой роли (например,
МенеджерПоПродажам). Имя должно быть уникальным и отражать суть полномочий. - Нажмите
ОК— откроется окно редактирования роли.
В окне редактирования вы увидите две вкладки:
Права (основные настройки доступа) и Дополнительно (расширенные параметры, такие как ограничение по организациям или подчинённым объектам). Начнём с вкладки Права:
| Объект метаданных | Тип доступа | Описание |
|---|---|---|
Справочник.Номенклатура |
Чтение, Изменение |
Разрешает просматривать и редактировать список товаров |
Документ.ЗаказКлиента |
Чтение, Добавление, Изменение |
Позволяет создавать и редактировать заказы, но не удалять их |
Отчет.ВедомостьПоТоварам |
Просмотр |
Даёт доступ к просмотру отчёта без возможности его изменения |
Константа.КурсыВалют |
Чтение |
Ограничивает возможность редактирования курсов валют |
Для назначения прав:
- В левой части окна выберите объект метаданных (например,
Справочник.Контрагенты). - В правой части отметьте галочками необходимые типы доступа.
- Для удобства используйте кнопку
Установить для подобных, чтобы применить те же права ко всем объектам одного типа (например, ко всем справочникам).
Не назначайте роль ПолныеПрава обычным пользователям — это создаёт риски для безопасности данных. Используйте её только для администраторов системы.
Настройка дополнительных параметров роли
Вкладка Дополнительно позволяет уточнить права роли с учётом бизнес-логики. Здесь можно настроить:
- 🏢 Ограничение по организациям: роль будет действовать только для выбранных юридических лиц в базе.
- 🔗 Подчинённые объекты: автоматически назначать права на объекты, подчинённые основным (например, права на документ "РеализацияТоваровУслуг" будут распространяться и на его табличные части).
- 📅 Ограничение по периодам: роль действует только в определённые даты (актуально для временных сотрудников).
- 👥 Права на основе RLS (Row-Level Security): ограничение доступа к строкам данных (например, менеджер видит только своих клиентов).
Пример настройки RLS:
Если вам нужно, чтобы менеджеры видели только заказы своих клиентов, на вкладке Дополнительно добавьте условие по полю Менеджер в документе ЗаказКлиента. Для этого:
- Выберите объект
Документ.ЗаказКлиента. - Нажмите
Добавить ограничение. - В поле
Условиеукажите:Менеджер = &ТекущийПользователь. - Сохраните изменения.
⚠️ Внимание: Неправильная настройка RLS может привести к тому, что пользователи не увидят необходимые данные даже при наличии прав на объект. Всегда тестируйте роль с учётом реальных данных в базе.
Как проверить, какие права действуют у пользователя в данный момент?
В режиме "1С:Предприятие" перейдите в Сервис → Пользователи, выберите пользователя и нажмите Права. Система покажет все роли, назначенные пользователю, и результирующие права доступа.
Тестирование и отладка созданной роли
Создание роли — только половина дела. Без тестирования вы рискуете столкнуться с ситуацией, когда пользователи не смогут выполнять свои задачи или, наоборот, получат избыточные полномочия. Вот как правильно протестировать роль:
- Назначьте роль тестовому пользователю:
// В режиме "1С:Предприятие":Сервис → Пользователи → Выбрать тестового пользователя → Нажать "Изменить" → Добавить созданную роль.
- Проверьте доступ к объектам:
Авторизуйтесь под тестовым пользователем и попытайтесь выполнить действия, которые должна разрешать роль (создать документ, открыть отчёт и т.д.).
- Используйте журнал регистрации:
Включите регистрацию событий по правам доступа (
Администрирование → Журналы регистрации → Настроить регистрацию) и проанализируйте логи на предмет ошибок типа "Отказано в доступе".
Типичные ошибки при тестировании:
- 🚫 Пропущенные объекты: роль не включает права на справочник, который используется в документе (например, права на
Номенклатуруесть, но нет прав наЕдиницыИзмерения). - 🔄 Конфликт ролей: пользователю назначено несколько ролей, и одна из них блокирует права другой.
- 🔍 Неучтённые подчинённые объекты: права на документ не распространяются на его табличные части или реквизиты.
Если роль не работает как ожидалось, воспользуйтесь отладчиком 1С:
установите точку останова в модуле объекта, к которому нет доступа, и проверьте, какие права передаются в параметрах вызова. Например, для документа это можно сделать так:
Процедура ПриЗаписи(Отказ)
Если Не ПравоДоступа("Добавление") Тогда
Сообщить("Недостаточно прав для сохранения документа!");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Экспорт и импорт ролей между базами
Если вам нужно перенести роль из одной базы 1С в другую (например, с тестового стенда на рабочий сервер), используйте механизмы экспорта/импорта. Это избавит от необходимости настраивать роль заново.
Для экспорта роли:
- В конфигураторе выделите нужную роль в дереве объектов.
- Нажмите
Файл → Сохранить данные конфигурации в файлы. - В открывшемся окне выберите только
Ролии укажите путь для сохранения. - Нажмите
Сохранить— роль будет экспортирована в файл с расширением.xml.
Для импорта в другую базу:
- Откройте целевую базу в конфигураторе.
- Выберите
Файл → Загрузить данные конфигурации из файлов. - Укажите путь к файлу с ролью и подтвердите загрузку.
- Обновите конфигурацию базы данных (
Конфигурация → Обновить конфигурацию базы данных).
⚠️ Внимание: При импорте ролей между разными конфигурациями (например, из 1С:УТ в 1С:ERP) могут возникнуть конфликты из-за различий в структурах метаданных. Перед импортом сравните объекты в исходной и целевой базе.
Альтернативный способ переноса ролей — использование расширений конфигурации. Этот метод более безопасен, так как не затрагивает основную конфигурацию. Чтобы перенести роль через расширение:
- Создайте новое расширение (
Конфигурация → Расширения → Добавить). - В дереве расширения добавьте новую роль и скопируйте в неё настройки из исходной.
- Примените расширение к целевой базе.
Типичные ошибки и как их избежать
Даже опытные администраторы 1С иногда допускают ошибки при работе с ролями. Вот наиболее распространённые из них и способы их предотвращения:
| Ошибка | Причина | Решение |
|---|---|---|
| Пользователь не видит документ, несмотря на права | Не хватает прав на справочники, используемые в документе (например, Контрагенты или Номенклатура) |
Проверьте права на все связанные объекты через Анализ использования (правая кнопка на документе → Анализировать использование) |
| Роль не применяется после обновления базы | Не выполнено обновление конфигурации базы данных после изменений | Выполните Конфигурация → Обновить конфигурацию базы данных |
| Пользователь видит чужие данные (нарушение RLS) | Неправильно настроено ограничение на уровне строк или не учтён контекст выполнения | Проверьте условия в разделе Дополнительно и используйте отладчик для анализа переменной &ТекущийПользователь |
| Ошибка "Отказано в доступе" при запуске отчёта | Не хватает прав на временные таблицы или системные объекты, используемые в отчёте | Добавьте роль ИнтерактивноеОткрытиеВременныхТаблиц или проверьте права на объект Отчет.ИмяВашегоОтчета |
Ещё одна распространённая проблема — избыточные права. Например, роль "Менеджер" получает доступ к финансовым отчётам только потому, что в неё включены права на справочник Валюты, который используется в этих отчётах. Чтобы избежать этого:
- 🔍 Используйте
Анализ прав доступа(Сервис → Анализ прав доступа) для выявления лишних полномочий. - 📋 Разделяйте роль на подроли (например,
Менеджер.БазовыеПраваиМенеджер.РасширенныеПрава). - 🔄 Регулярно проводите аудит ролей (раз в квартал) и удаляйте неиспользуемые.
FAQ: Частые вопросы о ролях в 1С
Можно ли назначить пользователю несколько ролей одновременно?
Да, в 1С:Предприятие пользователю можно назначить неограниченное количество ролей. При этом права суммируются: если хотя бы одна роль разрешает действие, пользователь сможет его выполнить. Однако будьте осторожны с комбинациями — конфликтующие права (например, одна роль разрешает изменение, другая запрещает) могут привести к неожиданным результатам.
Как узнать, какие роли назначены пользователю?
В режиме "1С:Предприятие" перейдите в Сервис → Пользователи, выберите нужного пользователя и нажмите Права. Система отобразит все назначенные роли и результирующие права. Альтернативно, можно использовать запрос:
Выбрать
Пользователи.Имя,
Роли.ИмяКакРоль
Из
Пользователи.РолиКакПользователиИРоли КАК ПользователиРоли
ЛЕВОЕСОЕДИНЕНИЕ ВнешниеИсточникиДанных.Роли КАК Роли
ПО ПользователиРоли.СсылкаНаРоль = Роли.Ссылка
Где
ПользователиРоли.СсылкаНаПользователя = &ТекущийПользователь
Что делать, если после изменения роли пользователи не видят изменения?
Это происходит потому, что права кэшируются на стороне клиента. Чтобы изменения вступили в силу:
- Обновите конфигурацию базы данных (
Конфигурация → Обновить конфигурацию базы данных). - Перезапустите сеансы пользователей (можно через
Администрирование → Активные пользователи → Завершить сеанс). - Если используете клиент-серверный вариант, перезапустите службу 1С:Предприятия на сервере.
Как запретить пользователю доступ к определённым записям в справочнике?
Для этого используйте механизм RLS (Row-Level Security) на вкладке Дополнительно в настройках роли. Например, чтобы менеджер видел только своих контрагентов, добавьте условие:
Контрагенты.Менеджер = &ТекущийПользователь
Учтите, что RLS работает только для объектов, поддерживающих ограничение по строкам (справочники, документы). Для отчётов и обработок потребуется доработать код с учётом прав.
Можно ли создать роль, которая будет действовать только в определённое время?
Да, на вкладке Дополнительно в настройках роли можно указать Ограничение по времени. Например, роль "НочнойОператор" будет активна только с 22:00 до 6:00. Для этого:
- Откройте роль в конфигураторе.
- Перейдите на вкладку
Дополнительно. - В разделе
Ограничение по времениукажите интервал (например,с 22:00 по 06:00).
Обратите внимание: это ограничение проверяется на стороне сервера, поэтому требует корректной настройки времени на сервере 1С.