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

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При организации работы в 1С:Бухгалтерия 7.7 ред. 4.5 нередко возникает задача предоставить определенным сотрудникам (аудиторам, стажерам, увольняющимся специалистам) доступ к информационной базе исключительно в режиме чтения. В современных конфигурациях на платформе 1С:Предприятие 8 для этого предусмотрены развитые профили групп доступа и дата запрета изменения данных. В платформе 1С 7.7 архитектура разграничения прав устроена иначе. Разберем основные способы и технические нюансы реализации режима «Только просмотр».

Способ 1. Создание специализированного набора прав в Конфигураторе

Наиболее надежный и рекомендуемый способ на уровне метаданных — создание отдельного набора прав, в котором для всех объектов информационной базы запрещены операции изменения и добавления.

Разберем по шагам порядок настройки прав:

  1. Открываем информационную базу в режиме Конфигуратор.
  2. Переходим в меню Конфигурация — Права.
  3. Создаем новый набор прав, например, с наименованием Просмотр или ТолькоЧтение.
  4. Для каждого типа объектов метаданных (справочники, документы, регистры, журналы, счета) отключаем права на Ввод нового, Редактирование и Удаление, оставив включенными права Чтение и Использование.
  5. В меню Администрирование — Пользователи открываем карточку нужного пользователя и на закладке Роли назначаем ему созданный набор прав.
  6. Сохраняем конфигурацию и список пользователей.

Рассмотрим важную техническую особенность: при входе и выходе из программы типовой код конфигурации в процедурах ПриНачалеРаботыСистемы и ПриЗавершенииРаботыСистемы выполняет служебные действия — обращение к константам, проверку временных таблиц или фиксацию параметров сеанса. Если набор прав полностью лишен доступа к чтению служебных объектов, платформа выдаст предупреждение «Недостаточно прав». Чтобы избежать подобных сообщений, убедимся, что для набора прав открыт доступ на чтение системных констант и разрешен общий запуск системы.

Способ 2. Использование константы «Дата запрета редактирования»

В типовой конфигурации «Бухгалтерия 7.7» присутствует штатный механизм блокировки прошлых периодов с помощью константы ДатаЗапретаРедактирования. Если установить в этой константе дату из будущего (например, 31.12.2099), то документы станут недоступны для проведения и редактирования.

Однако проанализируем ограничения данного метода:

  1. Механизм даты запрета в 1С 7.7 действует только на проведение и изменение документов. Справочники, планы счетов и константы остаются доступными для редактирования, если это не заблокировано на уровне набора прав.
  2. Константа является общей для всей информационной базы (либо настраивается в коде), поэтому она заблокирует работу и другим пользователям, если не реализована персональная проверка прав.

Способ 3. Программная блокировка форм и проверки при записи

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

Посмотрим на пример установки формы в режим просмотра при открытии. В процедуре ПриОткрытии() модуля формы документа или справочника проверяем текущий набор прав пользователя с помощью функции НазваниеНабораПрав():


Процедура ПриОткрытии()
    Если НазваниеНабораПрав() = "Просмотр" Тогда
        Форма.ТолькоПросмотр(1);
    КонецЕсли;
КонецПроцедуры

Метод Форма.ТолькоПросмотр(1) делает все элементы диалога недоступными для изменения и отключает возможность сохранения данных через стандартные элементы управления.

Для гарантированной защиты от записи изменений в предопределенной процедуре ПриЗаписи() формы или модуля объекта можно добавить дополнительный контроль:


Процедура ПриЗаписи()
    Если НазваниеНабораПрав() = "Просмотр" Тогда
        Предупреждение("У вас нет прав на сохранение изменений!");
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры

Ограничение прав на уровне операционной системы (NTFS)

Выясним распространенную ошибку: попытку сделать базу «только для чтения» путем установки атрибута Read Only или отзыва прав на запись в папку с базой данных в Windows.

Платформа 1С:Предприятие 7.7 при запуске обязательно создает и модифицирует служебные файлы блокировок (*.LCK), временные файлы и файлы индексов таблиц (*.CDX). Если у пользователя операционной системы нет прав на запись в каталог базы, платформа завершит работу с критической ошибкой еще на этапе запуска. Любое ограничение прав должно выполняться исключительно средствами платформы 1С.

Альтернативные варианты

Если информационная база требуется только для архивного просмотра или проверки контролирующими органами, эффективным решением является создание отдельной архивной копии базы в изолированном каталоге. Для массовой блокировки форм без модификации каждого отдельного объекта в конфигураторе разработчики также используют внешние компоненты (например, FormEx или 1C++), которые позволяют глобально перехватывать открытие любых экранных форм и централизованно активировать режим ТолькоПросмотр(1).

← На главную