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

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

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

Проблема типовых профилей и доступа к проводкам

Разберем ситуацию: если мы просто назначим пользователю профиль Бухгалтер, он получит доступ к счету 70 («Расчеты с персоналом по оплате труда»). Даже если мы ограничим видимость документов «Начисление зарплаты», суммы и фамилии сотрудников все равно будут видны в Оборотно-сальдовой ведомости, Карточке счета или Журнале операций через проводки. Проанализируем основные способы решения этой проблемы.

Метод 1: Использование механизма RLS по физическим лицам

Это наиболее «гуманный» способ настройки в пользовательском режиме без привлечения программиста. Механизм RLS (Record Level Security) позволяет ограничивать доступ к конкретным записям справочников и документов.

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

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Установим флаг Ограничивать доступ на уровне записей.
  3. Перейдем в справочник Физические лица. Создадим там две группы доступа, например: «Все сотрудники» и «Руководство».
  4. Распределим сотрудников по этим группам. Тех, чьи зарплаты должны быть скрыты, поместим в группу «Руководство».
  5. В Профиле групп доступа, который назначен пользователю, на вкладке Ограничения доступа выберем вид доступа Физические лица.
  6. Установим значение «Все разрешены, исключения назначены» или выберем только разрешенную группу «Все сотрудники».

Выясним причину, почему этого может быть недостаточно. При такой настройке в отчетах вместо фамилий сотрудников пользователь увидит надпись «Объект не найден». Однако сами суммы проводок по счету 70 останутся видны. Если в организации работает мало людей, вычислить зарплату конкретного человека по косвенным признакам не составит труда.

Метод 2: Конструирование профиля из минимальных ролей

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

Важный нюанс: Чтобы пользователь мог видеть отчеты (ОСВ, Карточка счета), ему необходима роль Просмотр данных бухгалтерии. К сожалению, в типовой конфигурации эта роль дает право видеть все проводки по всем счетам, включая 70, 71 и 76. Поэтому простое манипулирование ролями не скроет сами суммы из бухгалтерских регистров.

Метод 3: Ограничение доступа через расширение конфигурации

Если типовые средства не дают стопроцентного результата, рассмотрим наиболее эффективный современный метод — использование расширений. Это позволяет не снимать основную конфигурацию с поддержки.

Проанализируем логику работы такого расширения. Мы можем перехватить запрос при формировании отчетов или открытии динамических списков. Рассмотрим пример кода, который можно внедрить в расширение для фильтрации данных на уровне запроса к регистру Хозрасчетный:


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

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

Метод 4: Разделение баз (ЗУП + БП)

Рассмотрим ситуацию, когда требования безопасности максимально строгие. В этом случае лучшим решением будет использование отдельной программы 1С:Зарплата и управление персоналом (ЗУП).

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

  1. Вся детальная информация (начисления по сотрудникам, налоги, надбавки) хранится в базе ЗУП.
  2. В базу БП 3.0 передаются только сводные проводки.
  3. При синхронизации в документе «Отражение зарплаты в бухучете» ставится флаг «Сводно по сотрудникам».

В этом случае в бухгалтерии вместо сотни фамилий будет видна одна строка «Сотрудники организации» с общей суммой. Это полностью исключает возможность узнать зарплату конкретного лица через бухгалтерскую базу.

На что стоит обратить внимание (скрытые дыры в защите)

Проанализируем ситуации, о которых часто забывают администраторы при настройке прав:

Подводя итог, можно сказать: если вы хотите «видеть всё, кроме зарплаты» исключительно штатными средствами 1С:Бухгалтерия 3.0, используйте RLS по физическим лицам. Для полной и гарантированной изоляции данных используйте расширение конфигурации для фильтрации счетов в регистрах или переходите на схему работы ЗУП + БП со сводными проводками.

← На главную