Каталог решений - Ограничение данных регистра бухгалтерии с помощью RLS

Ограничение данных регистра бухгалтерии с помощью RLS

Ограничение данных регистра бухгалтерии с помощью RLS

В наличии

Как сделать простое и надежное ограничение на данные регистра бухгалтерии!

Категория:

Описание

Навеяно вот этой статьей //sale.itcity.ru/public/124845/. В этой статье описано как можно сделать с помощью RLS ограничение на видимость счетов плана счетов, в надежде ограничить доступ к данным, однако данный подход не гарантирует надежного и 100% сокрытия данных от посторонних глаз, если ставиться именно такая задача. 

В большинстве организаций стремятся скрыть движения по счетам учета заработной платы.  Удалять субконто как то не совсем правильно и в некоторых случаях может быть совсем не приемлемо. Можно пытаться скрывать счета, как это описано в статье по вышеприведенной ссылке, однако такой подход приводит к некоторым проблемам, таким, как не соответствие итоговых оборотов и сальдо наличию оборотов в ОСВ, использование таких отчетов как Карточка счета или Анализ счета дает возможность обойти данное ограничение (т.е. используя такую технологию, нужно скрывать все счета, в корреспонденции с которыми может корреспондировать скрываемый счет), пользователи будут видеть какие то не понятные «Объект не найден», да и сам способ достаточно трудозатратный.

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

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

Счет661 = ПланыСчетов.Хозрасчетный.РасчетыПоОплатеТруда;
Если (
Проводка.СчетДт.Родитель = Счет661) ИЛИ (Проводка.СчетКт.Родитель = Счет661) Тогда
   
Проводка.ПроводкаПоЗП = Истина;
Иначе
   
Проводка.ПроводкаПоЗП = Ложь;
КонецЕсли;


Например, для типовой конфигурации УТП этот код можно поместить в событие ПередЗаписью(). Назначение кода, пометить нужные нам проводки.

Ну и теперь остается создать нужную роль и  написать простой запрос на языке RLS для нужного регистра бухгалтерии на право «Чтение:

ГДЕ  ПроводкаПоЗП = ЛОЖЬ

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

ГДЕ Ложь

что означает, что пользователю разрешен доступ в случае «ИСТИНА». В «ГДЕ Ложь» Ложь будет всегда, а значит пользователю доступ будет запрещен всегда (заумно конечно, но логика есть, если учитывать приоритетность ролей — приоритетнее всегда та роль у которой прав больше).

Как видите, работы тут аж минут на 30 с отладкой.  

А что же придумать, если нужно ограничивать разным пользователям доступ к разным счетам? Используя вышеописанный способ, я бы предложил следующую технологию.

Мое допущение: Врядли нужно добиваться того, что бы была возможность накладывать ограничения аж до конкретного счета.

А раз так, имеет смысл логически учет разбить на разделы учета и накладывать ограничения именно на разделы учета!

Для этого нам понадобиться справочник «Разделы учета», с табличной частью счетов, которые входят в данный раздел. Теперь мы можем в регистре бухгалтерии, вместо измерения «ПроводкаПоЗП», добавить измерение «Раздел учета», немного модифицировать вышеприведенный код для пометки проводок. В принципе все, с одним но, запрос RLS будет немного сложнее. Пример запроса и организация доступа пользователей к разным разделам учета описана в вышеприведенной статье //sale.itcity.ru/public/124845/.

И ограничение к разным счетам готово!

 P.S. понадобиться еще обработка, с помощью которой пакетом можно будет обрабатывать набор записей регистра бухгалтерии. Для чего, сами догадаетесь 🙂

 

P.S. по просьбам трудящихся, исправил ошибку в одном слове, раз уж оно так сильно кидается в глаза и хотел бы добавить, что если добавить не балансовое измерение «Счет», тогда можно накладывать ограничение и на каждый счет. Измерение должно быть не балансовым, что бы в регистре не накапливались итоги по этому измерению!

 

постоянный адрес статьи: http://forum1c.com.ua/index.php?topic=3505.0

has been added to your cart:
Оформление заказа