Как работает вид доступа Пользователи и какие ограничения RLS доступны в 1С:Бухгалтерии 3.0

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

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

Назначение вида доступа Пользователи в архитектуре БСП

Для понимания логики работы этого элемента проанализируем архитектуру конфигурации. Типовая бухгалтерия построена на базе Библиотеки стандартных подсистем (БСП). Подсистема УправлениеДоступом поставляется со стандартным набором предопределенных видов доступа, одним из которых и являются Пользователи.

Выясним причину его наличия в интерфейсе: данный вид доступа ограничивает видимость записей непосредственно в справочниках Справочник.Пользователи и Справочник.ВнешниеПользователи, а также связанных с ними контактных данных. Он не накладывает ограничений на документы хозяйственной деятельности. Штатные сценарии его использования включают следующие задачи:

  1. Ограничение видимости учетных записей для внешних пользователей (например, чтобы клиенты или подрядчики не видели список всех сотрудников компании).
  2. Скрытие административных учетных записей или сотрудников других филиалов при выборе значений в полях типа Ответственный, в списках задач и адресных книгах.
  3. Защита персональных данных персонала от несанкционированного просмотра рядовыми пользователями информационной базы.

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

Штатные возможности RLS в 1С:Бухгалтерии 3.0: склады и подразделения

Рассмотрим популярный прикладной вопрос: возможно ли встроенными средствами конфигурации без доработок и расширений ограничить доступ пользователей к документам по конкретным складам или подразделениям? Ответ однозначный — нет.

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

  1. Нарушение регламентных процедур закрытия месяца: проведение регламентных операций по расчету себестоимости, амортизации, списанию расходов требует чтения остатков и движений по всей организации целиком, вне зависимости от того, под какими правами запущен процесс.
  2. Сквозные перемещения: операции внутреннего перемещения товаров или материалов связывают два склада или подразделения в рамках одной проводки. Если у пользователя есть доступ только к складу-отправителю, система заблокирует проведение или запись документа из-за отсутствия прав на склад-получатель.

Технические последствия внедрения RLS по счетам и регистрам бухгалтерии

Посмотрим, что происходит, когда разработчики пытаются обойти стандартные ограничения и наложить шаблоны RLS на план счетов или на движения регистра бухгалтерии (например, чтобы скрыть счет 70 «Расчеты с персоналом по оплате труда» или счета расчетов с контрагентами). Здесь вступает в силу фундаментальное платформенное ограничение механизма регистров бухгалтерии в платформе 1С:Предприятие 8.3.

Проанализируем физическую структуру данных. В платформе 1С для регистров бухгалтерии предусмотрены таблицы итогов (агрегаты остатков и оборотов), которые обеспечивают мгновенное получение сальдо в отчетах и при контроле остатков. Таблицы итогов регистров бухгалтерии не поддерживают ограничения на уровне записей (RLS).

Как только в роли на регистр бухгалтерии включается условие ограничения чтения, СУБД полностью перестает использовать предварительно рассчитанные таблицы итогов. Платформа переходит в режим динамического расчета: каждый запрос к остаткам, формирование Оборотно-сальдовой ведомости или контроль проведения документа начинают сканировать всю таблицу проводок и субконто с начала ведения учета. Это влечет за собой критические проблемы:

  1. Многократное увеличение нагрузки на процессор и дисковую подсистему сервера СУБД.
  2. Появление массовых таймаутов и взаимных блокировок транзакций при параллельной работе пользователей.
  3. Полная деградация производительности при проведении любых расчетных документов.

Безопасность стандартных отчетов и переход по прямым ссылкам (Shift+F11)

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

Разберем, как правильно перекрыть доступ к просмотру данных через стандартные отчеты, не нарушив проведение документов:

  1. Не снимайте право Чтение с регистра бухгалтерии: модули проведения документов обращаются к регистру для проверки остатков и формирования взаимосвязанных проводок. Если у пользователя отнять базовое право Чтение на регистр, он получит системную ошибку нарушения прав при проведении хозяйственных операций.
  2. Отключайте право Просмотр: для специализированных ролей необходимо снять права Просмотр и Интерактивное открытие непосредственно у объектов отчетов (Отчет.ОборотноСальдоваяВедомость, Отчет.ОборотноСальдоваяВедомостьПоСчету, Отчет.КарточкаСчета и др.). При отсутствии права Просмотр на сам отчет платформа заблокирует попытку перехода по прямой навигационной ссылке (Shift+F11) с сообщением о нарушении прав доступа.
  3. Использование расширений: для выборочного запрета формирования отчетов по отдельным счетам (например, 70, 75) применяются расширения конфигурации. В них через обработчики событий отчета перехватывается компоновка данных и проверяется список счетов: если пользователь запрашивает закрытый для него счет, формирование отчета программно прерывается без наложения тяжелого RLS на регистр.

Как реализовать нестандартный RLS через расширение

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

  1. В модуле ОбщийМодуль.УправлениеДоступомПереопределяемый переопределяются процедуры заполнения видов доступа, куда регистрируется новый вид доступа, привязанный к справочнику ПодразделенияОрганизаций.
  2. В модулях менеджеров целевых документов объявляется экспортная процедура ПриЗаполненииОграниченияДоступа, где описывается состав полей для производительного режима RLS:
    
    Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
        Ограничение.ДляОбъекта.Вставить("Подразделение", "ПодразделениеОрганизации");
    КонецПроцедуры
    
  3. В добавляемых ролях в расширении настраиваются шаблоны ограничений, использующие стандартные шаблоны БСП, адаптированные под новую логику.

Альтернативные штатные решения без изменения конфигурации

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

  1. Разделение учетных контуров: оперативная складская и торговая работа переносится в профильную конфигурацию (например, «1С:Управление торговлей 11» или «1С:Комплексная автоматизация»), где разделение прав по складам и подразделениям штатно поддерживается на уровне метаданных. В 1С:Бухгалтерию данные передаются регламентной синхронизацией в свернутом или обобщенном виде только для формирования регламентированной отчетности.
  2. Распределенные информационные базы (РИБ): настраивается план обмена с фильтрацией данных по подразделениям. Удаленные склады или подразделения работают в отдельных узлах базы, куда физически не мигрируют документы и остатки других подразделений.
← На главную