Почему один пользователь видит документ, а другой нет: ищем разницу в правах
Содержание
Чтобы сравнить права двух пользователей в 1С 8.3, откройте Администрирование → Настройки пользователей и прав → Пользователи, в карточке каждого перейдите по ссылке «Права доступа
» и сопоставьте списки групп доступа. Если группы совпадают, а доступ всё равно разный, сравнивайте значения ограничений в самих группах доступа и личные настройки. Роли в Конфигураторе — последний уровень проверки, для расследований.
Типичная ситуация: бухгалтер Иванова проводит реализацию, а её коллега Петрова получает Недостаточно прав для просмотра данных. Обе «вроде бы с одинаковыми правами». Разница почти всегда находится за 10–15 минут, если идти от общего к частному. Порядок ниже подходит для БП 3.0, ЗУП 3.1, УТ 11 и других конфигураций на Библиотеке стандартных подсистем (БСП).
Как устроены права доступа в 1С 8.3
Права в типовых конфигурациях собраны в четыре слоя. Разница между пользователями может прятаться на любом из них.
| Слой | Где настраивается | Что определяет |
|---|---|---|
| Роль | Конфигуратор, ветка «Роли» | Какие объекты можно читать, менять, проводить |
| Профиль группы доступа | Администрирование → Настройки пользователей и прав → Профили групп доступа | Набор ролей и виды доступа |
| Группа доступа | Администрирование → Настройки пользователей и прав → Группы доступа | Участники и значения ограничений (какие организации, склады) |
| Ограничение на уровне записей (RLS) | Текст ограничений в ролях + значения в группах | Какие именно записи видит пользователь |
Связка работает так. Профиль — это шаблон: «Бухгалтер», «Кладовщик», «Кадровик». Группа доступа — профиль, применённый к конкретным людям с конкретными значениями. Например, группа «Бухгалтеры ООО Ромашка» на профиле «Бухгалтер» с доступом только к одной организации.
Пользователю назначается сумма ролей из всех групп, где он состоит. Права складываются: запрет в одной группе не перекрывает разрешение в другой.
В конфигурациях на БСП роли пользователю не назначают вручную. Программа сама выставляет их по составу групп доступа. Поэтому сравнивать нужно в первую очередь группы, а не роли.
Какой способ сравнения выбрать
| Способ | Когда подходит | Что покажет | Чего не покажет |
|---|---|---|---|
| Карточка пользователя | Первая проверка, 2–3 минуты | Состав групп доступа | Роли, выданные в Конфигураторе |
| Отчёт по правам | Группы похожи, нужна детализация | Права на каждую таблицу | Личные настройки форм |
| Конфигуратор и код | Отчёт расхождений не нашёл | Фактические роли в базе | Значения ограничений в группах |
| Группы доступа (виды доступа) | Документы видны частично | Разрешённые организации, склады | Права на объекты целиком |
Что собрать перед сравнением прав пользователей
Без подготовки сравнение превращается в перебор. Соберите исходные данные заранее.
- 📝 Точный симптом. Текст ошибки дословно, название документа или отчёта, действие: открыть, записать, провести, распечатать.
- 👥 Имена обоих пользователей так, как они записаны в справочнике «Пользователи», и их имена для входа.
- 🏢 Данные, на которых ошибка. Организация, склад, подразделение в документе. Это пригодится при проверке RLS.
- 👤 Группы пользователей. Посмотрите, в каких группах пользователей состоят оба. Группу пользователей можно включить в группу доступа целиком, и человек получит права «по наследству».
- 🔑 Ваши собственные права. Для сравнения нужен профиль «Администратор» или роль «Полные права». С обычными правами часть отчётов недоступна.
Не проверяйте права, временно добавляя пользователю роль «Полные права». Это стирает следы: после такой правки уже не понять, чего ему не хватало. Сначала зафиксируйте разницу, потом меняйте.
Сравнение прав через карточку пользователя и отчёт «Права доступа»
Этот способ закрывает большинство случаев и не требует Конфигуратора.
Шаг 1. Сравните группы доступа
Откройте список Администрирование → Настройки пользователей и прав → Пользователи. Откройте карточку первого пользователя и перейдите по ссылке «Права доступа». Там видно, в каких группах доступа он состоит. Повторите для второго.
Выпишите обе колонки рядом. Если у Ивановой есть группа «Бухгалтеры — проведение», а у Петровой нет, причина найдена.
Шаг 2. Постройте отчёт по правам
Если группы на вид одинаковые, нужен отчёт. В списке пользователей в группе команд отчётов есть отчёт «Права доступа». В новых версиях БСП рядом есть отчёт «Анализ прав доступа» с вариантами по пользователю и по таблице.
Как работать с отчётом:
- Сформируйте его по первому пользователю.
- Сохраните результат в файл: в формате
.xlsxили.txt. - Повторите для второго пользователя.
- Сравните файлы.
Для сравнения текстовых файлов подойдёт штатная команда Windows:
fc /n C:\Temp\ivanova.txt C:\Temp\petrova.txt > C:\Temp\raznica.txt
Ключ /n выводит номера строк — так легче найти объект с разными правами. В Excel удобнее поставить два отчёта на соседние листы и сравнить колонки через условное форматирование.
Шаг 3. Проверьте отчёт по нужному объекту
Если известен конкретный документ, удобнее вариант отчёта «по таблице»: выбираете, например, документ «Реализация (акт, накладная, УПД)» и видите всех пользователей с правами на него. Оба человека окажутся в одной таблице, разница видна сразу.
Как сравнить роли пользователей в Конфигураторе
Конфигуратор показывает «сырые» роли, которые реально назначены пользователю в информационной базе. Это нужно, когда отчёт молчит, а разница есть.
Список ролей пользователя
- Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Пользователи. - Откройте свойства первого пользователя, вкладка «Прочие». Галочками отмечены его роли.
- Откройте рядом свойства второго пользователя и сравните списки.
Список ролей длинный, в БП их больше сотни. Сравнивать глазами неудобно, поэтому ниже есть код, который делает это сам.
Не правьте роли пользователей в Конфигураторе, если конфигурация на БСП. Программа перезапишет их при следующей записи группы доступа или профиля. Кроме того, роль, выданная в обход групп, не видна в отчётах по правам — следующий администратор её не найдёт.
Права самой роли
Если нужно понять, что именно даёт роль, откройте её в дереве конфигурации, ветка «Общие → Роли». В редакторе прав слева объекты, справа галочки: «Чтение», «Добавление», «Изменение», «Проведение», «Просмотр» и другие. Удобно сравнивать роли таблицей через команду «Все роли» в контекстном меню ветки «Роли»: по строкам объекты, по колонкам роли.
Сравнение ролей кодом
Код ниже выводит только те роли, которые есть у одного пользователя и отсутствуют у другого. Его можно вставить во внешнюю обработку или выполнить в консоли кода от имени администратора. На вход — имена для входа, а не полные имена.
&НаСервереБезКонтекста
Процедура СравнитьРолиНаСервере(Имя1, Имя2)
Пользователь1 = ПользователиИнформационнойБазы.НайтиПоИмени(Имя1);
Пользователь2 = ПользователиИнформационнойБазы.НайтиПоИмени(Имя2);
Если Пользователь1 = Неопределено Или Пользователь2 = Неопределено Тогда
Сообщить("Один из пользователей не найден в информационной базе");
Возврат;
КонецЕсли;
Для Каждого Роль Из Метаданные.Роли Цикл
Есть1 = Пользователь1.Роли.Содержит(Роль);
Есть2 = Пользователь2.Роли.Содержит(Роль);
Если Есть1 <> Есть2 Тогда
Сообщить(СтрШаблон("%1 (%2): %3 — %4, %5 — %6",
Роль.Синоним, Роль.Имя,
Имя1, ?(Есть1, "есть", "нет"),
Имя2, ?(Есть2, "есть", "нет")));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Если различий нет, процедура ничего не выведет. Это тоже результат: значит, разница в ограничениях на уровне записей или в настройках.
Проверить право на конкретный объект можно функцией ПравоДоступа. Например, ПравоДоступа("Проведение", Метаданные.Документы.РеализацияТоваровУслуг, Пользователь1) вернёт Истина или Ложь. Учтите: функция отвечает, есть ли право в принципе, и не учитывает ограничения на уровне записей.
Ограничения на уровне записей: почему права «одинаковые», а данные разные
Самая частая загадка: роли совпадают, отчёт по правам одинаковый, но Петрова не видит документы второй организации. Это ограничение доступа на уровне записей, RLS.
Как оно работает в типовых:
- В
Администрирование → Настройки пользователей и праввключён флажок ограничения доступа на уровне записей. Без него ограничения не действуют вовсе. - В профиле группы доступа перечислены виды доступа: «Организации», «Склады», «Группы партнёров» и другие — набор зависит от конфигурации.
- Для каждого вида в профиле выбрано «Все разрешены» или «Все запрещены».
- Конкретные значения — исключения из этого правила — задаются уже в группе доступа.
Вот где прячется разница. Иванова и Петрова на одном профиле «Бухгалтер», но в разных группах доступа. В группе Ивановой вид «Организации» — «Все разрешены». В группе Петровой — «Все запрещены» с исключением для одной организации.
Как проверить
- Откройте обе группы доступа, вкладку с видами доступа.
- Сравните режим по каждому виду: разрешены все или запрещены все.
- Сравните списки значений-исключений.
- Проверьте документ, на котором ошибка: его организация, склад или контрагент должны попадать в разрешённые значения.
Если пользователь состоит в двух группах доступа, ограничения тоже складываются. Документ виден, если его разрешает хотя бы одна группа, в профиле которой есть нужная роль.
Пример расследования
Петрова не видит реализацию от ООО «Север». Проверка заняла четыре шага: группы доступа у неё и у Ивановой разные; в группе Петровой вид «Организации» настроен как «Все запрещены»; в исключениях только ООО «Юг»; ООО «Север» туда не добавляли. Решение — добавить организацию в значения группы или включить Петрову в группу Ивановой, если ей действительно нужны обе фирмы.
После изменения значений доступа в больших базах программа пересчитывает служебные данные доступа фоновым заданием. Новые права могут появиться не мгновенно. Пусть пользователь перезапустит сеанс.
Что ещё отличается у пользователей, кроме прав
Часть «разницы в правах» на деле правами не является. Эти настройки проверьте до того, как переделывать группы доступа.
- 🗓️ Даты запрета изменения. Их задают общей датой или отдельно по пользователям. Если у Петровой своя дата запрета, она не проведёт документ прошлого периода, хотя права на проведение у неё есть.
- 🖥️ Настройки форм. Пользователь мог скрыть колонку, кнопку или поле через «Ещё → Изменить форму». Права при этом в порядке.
- 📂 Настройки интерфейса. Скрытые разделы и команды панели навигации выглядят как «нет доступа».
- 🚪 Флажок входа в программу. Если вход запрещён, пользователь не войдёт вовсе, при любых группах.
- 🌐 Внешний пользователь. Партнёру или контрагенту права выдаются через отдельные профили для внешних пользователей. Сравнивать его с сотрудником бессмысленно.
Персональные настройки удобно сравнить и выровнять через Администрирование → Настройки пользователей и прав → Персональные настройки пользователей: там можно посмотреть, скопировать и очистить настройки одного пользователя другому.
Где чаще всего ошибаются при сравнении прав
- ❌ Смотрят только роли. Две учётные записи с одинаковыми ролями видят разные данные из-за RLS. Роли — половина картины.
- ❌ Забывают про группы пользователей. Человек не числится в группе доступа напрямую, но получает права через группу «Бухгалтерия». В карточке это легко пропустить.
- ❌ Выравнивают права копированием профиля. Новый профиль «Бухгалтер 2» с одной лишней ролью через год превращается в десяток неотличимых профилей. Лучше отдельная группа доступа с маленьким дополнительным профилем.
- ❌ Сравнивают в разных базах. Права в рабочей и тестовой базе расходятся после любой правки. Сверяйте в той базе, где ошибка.
- ❌ Не ждут обновления доступа. Права поменяли, а пользователь не перезашёл. Он продолжает работать со старыми.