Дата актуальности: 04 июля 2026 г.
Правильно настроенные ограничения прав доступа — это основа безопасности и стабильности любой 1С-конфигурации. В этой статье мы подробно разберёмся, как платформа проверяет права пользователей, почему возникают типичные ошибки доступа и как их оперативно устранять без потери производительности.
Где именно «живут» права пользователя
При каждом входе в систему 1С:
- Платформа считывает список ролей, назначенных учётной записи.
- Формирует массив UID/GID (аналогично механизму в AIX, см. документация IBM), который затем крепится к процессам пользователя.
- На каждое обращение к данным (чтение, запись, удаление) ‑С делает SQL-вызов с встроенной проверкой RLS (Row Level Security).
Механизм RLS «под капотом»
Что происходит при обычном запросе
Допустим, пользователь выполняет запрос:
ВЫБРАТЬ Ссылка, Контрагент.Наименование ИЗ Документ.Реализация
Если ключевое слово РАЗРЕШЕННЫЕ не указано, 1С добавляет в SELECT дополнительное поле-флаг:
CASE WHEN (проверка доступа) THEN 0x01 ELSE 0x00 END
Если хотя бы у одной строки флаг = 0x00, платформа выбрасывает исключение:
«Недостаточно прав для просмотра записи».
Как изменяется поведение с «РАЗРЕШЕННЫЕ»
Тот же запрос, но с ключевым словом:
ВЫБРАТЬ РАЗРЕШЕННЫЕ Ссылка, Контрагент.Наименование ИЗ Документ.Реализация
- В SQL-коде проверки уходят в секцию
WHERE. - Записи, к которым доступ запрещён, просто не попадают в выборку.
- Ошибка не генерируется, но данные «молча» исключаются.
Вложенные объекты и «битые ссылки»
Сценарий 1: доступ есть к документу, но нет к справочнику
Если в запросе присутствует реквизит вложенного справочника, 1С:
- Создаёт левое соединение со справочной таблицей (
LEFT JOIN). - Добавляет поле
SDBL_RLS_SIGNAL_с флагом доступа. - При отсутствии прав поле возвращает
NULL, а сама ссылка становится битой (в интерфейсе видны пустые значения).
Сценарий 2: в запросе только ссылка
Дополнительных проверок не делается: ссылка возвращается, но при попытке открыть объект вы получите сообщение о недостатке прав.
Пошаговое решение типовой ошибки
Ошибка «Недостаточно прав…»
- Определите точное место срабатывания, журнал «Ошибка при выполнении запроса» в 1С.
- Проверьте роль: в конфигураторе откройте
Администрирование → Пользователи и права → Роли, найдите ограничение поRLS. - Используйте РАЗРЕШЕННЫЕ в запросах отчётов или обработок, чтобы избежать взрывных ошибок.
- Проверьте сценарии вложенных объектов: если нужны «битые ссылки», оставьте без РАЗРЕШЕННЫЕ; если нужно полностью скрыть недоступные данные — добавьте.
Пример корректировки конфигурации
Допустим, у пользователя есть роль «Бухгалтер», но нужно ограничить доступ к документам по организациям:
- В роли добавьте ограничение
RLSпо справочнику «Организации». - В коде отчёта замените:
ВЫБРАТЬ Дата, Организация.Наименование ИЗ Документ.РасходныйОрдер
на
ВЫБРАТЬ РАЗРЕШЕННЫЕ Дата, Организация.Наименование ИЗ Документ.РасходныйОрдер
- Проведите тест в режиме « Только просмотр ».
Чек-лист администратора
- [ ] Все роли имеют корректные RLS-ограничения.
- [ ] Все внешние отчёты и обработки используют «РАЗРЕШЕННЫЕ».
- [ ] Журнал регистрации не содержит ошибок «Недостаточно прав» после обновления.
- [ ] Пользователи прошли обучение (короткий лонгрид или 5-минутное видео) по «битым ссылкам».
Ключевая мысль
Грамотное использование RLS и оператора РАЗРЕШЕННЫЕ позволяет одновременно повысить безопасность и избежать «ошибок доступа», которые больше не будут пугать пользователей и замедлять работу системы.
Источники: ITS 1С, статьи на InfoStart, документация IBM, собственный опыт внедрений.