Как расширить права кассира в 1С для просмотра отчетов и документов без возможности редактирования?

Системный администратор 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

В повседневной работе с программами на базе 1С (будь то «Розница», «Управление торговлей» или «УНФ») часто возникает необходимость тонкой настройки прав доступа. Типичная ситуация: кассиру, который обычно только пробивает чеки, требуется дать доступ к отчету по движениям товаров, чтобы он мог видеть остатки и анализировать продажи. При этом важно обеспечить безопасность данных — пользователь должен иметь возможность «провалиться» из отчета в документ-основание (например, поступление или реализацию), чтобы изучить детали, но не должен иметь прав на изменение этого документа. Рассмотрим, как решить эту задачу без привлечения программиста, используя стандартные механизмы Библиотеки стандартных подсистем (БСП).

Понимание архитектуры прав: Разрешительный принцип

Прежде чем мы перейдем к кликам в интерфейсе, разберем важный теоретический момент. В системе 1С 8.3 права работают по разрешительному принципу: «все, что не разрешено — запрещено». Если у пользователя есть две роли, одна из которых запрещает чтение, а другая разрешает, то в итоге чтение будет разрешено. Права суммируются. Поэтому наша задача — найти минимально необходимый набор ролей, который даст нужный доступ, и при этом не «откроет» лишнего. Проанализируем ситуацию: автору темы пришлось столкнуться с тем, что добавление прав на отчеты тянет за собой лишние пункты меню. Это нормальное поведение типовых конфигураций, так как роли часто группируются по подсистемам.

Шаг 1. Создание профиля групп доступа

Вместо того чтобы редактировать права конкретного пользователя напрямую, всегда лучше использовать Профили групп доступа. Это позволяет один раз настроить «шаблон» прав и назначать его любым сотрудникам. Разберем по шагам:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав — Профили групп доступа.
  2. Создадим новый профиль (например, «Кассир с расширенным просмотром»).
  3. На вкладке Разрешенные роли нам нужно отметить галочками те возможности, которые требуются. Проанализируем список ролей:
    • Для отчета «Движения товаров» ищем роли, содержащие слова ОтчетыМенеджераПоПродажам или ОтчетыПоСкладу.
    • Чтобы иметь возможность просматривать документы в разделе «Закупки», нам понадобится роль вида ЧтениеПоступленийТоваров или ПросмотрДокументовЗакупки.

Шаг 2. Разграничение прав «Чтение» и «Просмотр»

Это самый важный нюанс, который часто упускают. В конфигураторе и в некоторых расширенных настройках профилей эти права разделены. Посмотрим на разницу:

Если мы хотим, чтобы кассир мог открыть «Поступление товаров», но не мог его изменить, в профиле должны стоять галочки на Чтение и Просмотр, но обязательно должны быть сняты галочки Интерактивное добавление, Изменение и Удаление. Выясним причину, если «провалиться» в документ все равно не получается: проверьте права на справочники Контрагенты, Номенклатура и Склады. Если нет прав на просмотр склада, документ может не открыться из-за ошибки доступа к его реквизитам.

Шаг 3. Использование механизма внешних отчетов для изоляции

Если стандартная роль «Отчеты по складу» добавляет кассиру десяток ненужных отчетов, мы можем пойти другим путем. Рассмотрим метод использования справочника Дополнительные отчеты и обработки:

Мы можем сохранить нужный нам отчет ДвижениеТоваровПоГруппам как внешний файл .erf (это может сделать администратор через конфигуратор, выбрав «Сохранить как внешнюю обработку»). Затем загрузим его в программу:

  1. Зайдем в Администрирование — Печатные формы, отчеты и обработки.
  2. Включим флаг Дополнительные отчеты и обработки.
  3. Добавим наш файл и в настройках укажем, что он доступен именно пользователю-кассиру.

Этот способ позволяет дать доступ к ОДНОМУ конкретному отчету, не расширяя права на всю подсистему складских отчетов.

Шаг 4. Очистка интерфейса от «лишнего»

Как справедливо заметили участники обсуждения, при добавлении прав интерфейс кассира может «засориться» новыми вкладками и кнопками. Проанализируем, как это исправить:

Администратор может настроить интерфейс непосредственно под учетной записью кассира. Для этого не нужно менять права, нужно просто скрыть визуальные элементы:

  1. Зайдем в систему под кассиром.
  2. Кликнем правой кнопкой мыши по панели разделов (слева или сверху) и выберем Настройка панели разделов.
  3. Удалим из правой колонки все, кроме «Продажи» и «Рабочее место кассира». Если мы добавили права на «Закупки» только для чтения документов, сам раздел «Закупки» можно скрыть — кассир все равно увидит документы, если нажмет на ссылку (регистратор) в отчете.
  4. Аналогично можно поступить с Настройкой начальной страницы, убрав лишние виджеты.

После настройки воспользуемся функцией Копирование настроек пользователей (в разделе Администрирование), чтобы перенести этот «чистый» интерфейс всем остальным кассирам.

Шаг 5. Работа с RLS (Ограничение доступа на уровне записей)

В теме упоминалось использование RLS (Record Level Security). Разберем, стоит ли это включать. RLS позволяет настроить доступ так, чтобы кассир видел, например, документы только своего магазина или только определенной группы товаров. Однако помните:

Важно: Включение RLS существенно замедляет работу системы, так как к каждому запросу к базе данных дописываются дополнительные условия проверки прав. Если у вас всего два пользователя (администратор и кассир), использование RLS будет избыточным и сложным в настройке. Лучше обойтись обычными ролями и настройкой интерфейса.

Пример настройки прав на чтение программно (для справки)

Хотя автор просил решение без программирования, полезно понимать, как выглядит проверка прав «под капотом». Если бы мы писали условие для проверки возможности просмотра, оно могло бы выглядеть так:


Если ПравоДоступа("Просмотр", Метаданные.Документы.ПриобретениеТоваровУслуг) Тогда
    // Позволяем пользователю нажать на ссылку в отчете
    ОткрытьФорму("Документ.ПриобретениеТоваровУслуг.ФормаОбъекта", ПараметрыВыбора);
Иначе
    Сообщить("У вас недостаточно прав для просмотра первичного документа");
КонецЕсли;

В типовых конфигурациях этот механизм уже встроен в систему расшифровки отчетов, поэтому нам достаточно просто выставить галочки в профиле групп доступа.

Резюме: Идеальный алгоритм действий

Подведем итог нашей совместной работы по настройке. Чтобы кассир остался доволен и не видел ничего лишнего, придерживаемся следующего плана:

  1. Создаем Профиль групп доступа, где выбираем стандартную роль на чтение нужных документов и роль на использование нужного отчета.
  2. Назначаем этот профиль пользователю через Группы доступа.
  3. Заходим под пользователем и через Настройку панелей скрываем все разделы, которые появились «в нагрузку» к правам.
  4. Проверяем «проваливание» из отчета в документ. Если открывается пустая форма или выдает ошибку — добавляем права на чтение сопутствующих справочников (Организации, Валюты, Партнеры).

Такой подход сохраняет типовую конфигурацию на поддержке, не требует написания кода и обеспечивает необходимый уровень безопасности данных в вашей базе 1С.

← На главную