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

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

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

Вариант 1: Программный отбор в формах списка

Этот способ является наиболее простым и быстрым в реализации. Суть метода заключается в принудительной установке фильтра в динамическом списке при открытии формы.

Рассмотрим пошагово, как это реализовать:

  1. Создаем новое Расширение конфигурации.
  2. Добавляем в расширение нужные документы (например, РеализацияТоваровУслуг, СчетНаОплату).
  3. Используем событие ПриСозданииНаСервере формы списка, чтобы программно добавить отбор.

Пример логики для установки отбора в коде:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОтборСписок = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборСписок.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
    ОтборСписок.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОтборСписок.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
    ОтборСписок.Использование = Истина;
КонецПроцедуры

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

Вариант 2: Использование ограничений доступа на уровне записей (RLS)

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

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

Нюанс работы системы: Важно помнить, что при проведении документов система автоматически переходит в привилегированный режим. Это означает, что RLS-ограничения игнорируются при проведении, что избавляет вас от проблем с «тормозами» или отказами в проведении при закрытии месяца. Однако для простых операций чтения RLS будет полноценно ограничивать выборку данных.

Рекомендации по безопасности и архитектуре

При внедрении ограничений в Бухгалтерии 3.0 мы настоятельно рекомендуем придерживаться следующих правил:

Подводя итог, можно сказать, что реализация прав через Расширение с применением RLS — это профессиональный подход, который обеспечивает реальную безопасность данных. Программные отборы в списках подойдут только в качестве «защиты от честного человека» и в тех случаях, когда бизнес-процессы компании не предполагают глубокого анализа данных в отчетах со стороны менеджеров.

← На главную