Как ограничить права пользователя, чтобы он мог создавать и записывать документ без возможности проведения?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

В процессе администрирования конфигурации 1С:Бухгалтерия часто возникает задача точечной настройки прав доступа. Одной из наиболее частых задач является запрет на проведение документов при сохранении возможности их создания и редактирования. Рассмотрим, как реализовать это корректно с точки зрения архитектуры системы.

Использование механизма ролей в 1С

Стандартный и наиболее надежный способ ограничения прав в платформе 1С — это использование ролей. В системе 1С права на запись и проведение документа четко разделены на уровне прав доступа (Right). Чтобы выполнить нашу задачу, нам необходимо создать отдельную роль, которая будет определять действия пользователя с конкретным объектом.

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

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

Настройка профиля групп доступа (БСП)

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

Создайте новый Профиль групп доступа и включите в него:

Программное ограничение через подписку на событие

Если вы хотите избежать сообщений об ошибках при нажатии кнопки проведения, можно реализовать более мягкий контроль с помощью Подписки на событие ПередЗаписью. Это позволит перехватить действие пользователя и принудительно изменить режим записи.

Создайте подписку на событие, где в обработчике укажите следующий код:


Процедура ПриЗаписиДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения)
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
        РежимЗаписи = РежимЗаписиДокумента.Запись;
    КонецЕсли;
КонецПроцедуры

Таким образом, даже если пользователь нажмет кнопку «Провести», система проигнорирует команду проведения и выполнит обычную запись документа. Это делает работу пользователя более комфортной, исключая «пугающие» сообщения о недостатке прав доступа.

Доработка интерфейса (скрытие кнопок)

Для улучшения юзабилити рекомендуется скрыть кнопки проведения на форме документа. Это можно сделать через Расширение конфигурации. В событии ПриСозданииНаСервере формы документа добавьте проверку прав текущего пользователя:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если НЕ ПравоДоступа("Проведение", Метаданные.Документы.ПоступлениеТоваровУслуг) Тогда
        Элементы.ФормаПровестиИЗакрыть.Видимость = Ложь;
        Элементы.ФормаПровести.Видимость = Ложь;
    КонецЕсли;
КонецПроцедуры

Этот метод позволяет сделать интерфейс чистым и понятным, скрывая функционал, который недоступен пользователю в рамках его прав. Используя данный комплексный подход (роли + программное управление или расширение), вы сможете гибко настроить процесс работы с документами в вашей организации.

← На главную