Как настроить режим только просмотр в 1С:Бухгалтерия государственного учреждения 1.0

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Финансы и профессиональные услуги
← На главную

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

Способ 1. Использование типовой роли «Аудитор»

Начиная с релиза 1.0.17.4 (февраль 2013 года), разработчики добавили в конфигурацию специализированную роль Аудитор. Проанализируем, как она работает: данная роль обладает правами на чтение и просмотр практически всех объектов базы данных, но при этом в ней намеренно сняты флажки на «Интерактивное добавление», «Редактирование» и «Удаление».

Рассмотрим пошагово процесс настройки этого режима:

  1. Запустим систему в режиме «Конфигуратор».
  2. Перейдем в меню «Администрирование» — «Пользователи».
  3. Создадим нового пользователя (например, «Ревизор» или «Просмотр»).
  4. На закладке «Прочие» установим флажок только напротив роли Аудитор.

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

Способ 2. Настройка прав на уровне записей (RLS)

Иногда после назначения роли Аудитор пользователь заходит в программу и видит «пустые» списки документов. Это происходит из-за включенного механизма RLS (Row Level Security). Рассмотрим, как это исправить:

Проанализируем ситуацию: роль Аудитор может ограничивать видимость данных по конкретным учреждениям. Чтобы данные отобразились, необходимо выполнить следующие действия в режиме «Предприятие»:

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

Способ 3. Установка даты запрета редактирования

Если вам необходимо временно или быстро запретить изменения в базе для всех пользователей (или группы пользователей), не прибегая к изменению ролей, разберем метод установки даты запрета. Посмотрим на алгоритм действий:

Перейдем в меню «Сервис» — «Установка даты запрета изменения данных». Если установить дату в далекое будущее (например, 31.12.2099), то система позволит открывать документы, но при попытке записи или проведения будет выдавать сообщение об ошибке. Это самый простой способ сделать базу «архивной».

Способ 4. Программная доработка (универсальный метод)

В случаях, когда типовая роль Аудитор по каким-то причинам не подходит (например, в очень старых релизах или при необходимости тонкой настройки), мы можем реализовать ограничение программно. Рассмотрим вариант создания подписок на события. Это позволит централизованно запретить запись любых объектов.

Разберем логику реализации:

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

Посмотрим на пример кода обработчика:


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

Данный подход является очень надежным, так как он срабатывает на уровне ядра системы при любой попытке записи объекта — будь то нажатие кнопки «ОК» в форме или программная перезапись из какой-либо обработки.

Дополнительные рекомендации по интерфейсу

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

Таким образом, мы проанализировали все доступные варианты настройки режима «Только чтение» в БГУ 1.0. Наиболее предпочтительным является использование типовой роли Аудитор в сочетании с корректной настройкой прав на уровне записей (RLS) по организациям.

← На главную