Ограничение доступа к отдельным записям (пример)

04.06.12

Администрирование - Роли и права

Пример ограничения прав пользователя для работы с объектами одного определенного филиала. Писался для 8.1, но справедлив и для 8.2.

Скачать файлы

Наименование Файл Версия Размер
Статья как документ WORD
.docx 186,30Kb
82
.docx 186,30Kb 82 Скачать

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

Конечно, было бы проще построить запрос, если бы организация так же была объявлена как параметр сеанса. Но и в том подходе, который имеется, тоже есть свои плюсы (например, если пользователю кто-либо изменит основную организацию, то проводки будут уже отражены по актуальному значению, а пользователю не нужно будет перезаходить в систему).

 

В общем случае запрос к организации текущего пользователя имеет следующий вид

 

/

/--------------------------------------------------------------------------------

ВЫБРАТЬ

                Выразить(НастройкиПользователей.Значение как Справочник.Организации) как Организация

ИЗ

                РегистрСведений.НастройкиПользователей КАК НастройкиПользователей

ГДЕ

                НастройкиПользователей.Пользователь = &ТекущийПользователь

                И НастройкиПользователей.Настройка = Значение(ПланВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация)

//--------------------------------------------------------------------------------

  

Для ограничения доступа в ролях имеются специальные механизмы (Рисунок 1,2):

  • Ограничения доступа к данным;
  • Шаблон ограничений.

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

Шаблон позволяет использовать однотипные запросы в разных объектах. К примеру, в нашем случае мы должны будем ограничить как доступ к бухгалтерскому регистру, так и к документу ОперацияБух. Что бы не писать два раза один и тот же запрос, создадим шаблон с названием «ОрагнизацияПользователя» и укажем его (при помощи символа #) в нужных строках ограничения пользователя.

 

Текст запроса в шаблоне имеет вид:

 

/

/--------------------------------------------------------------------------

ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица       

ГДЕ

                (ТекущаяТаблица.Организация В

                 (

                                ВЫБРАТЬ

                Выразить(НастройкиПользователей.Значение как Справочник.Организации) как Организация

ИЗ

                РегистрСведений.НастройкиПользователей КАК НастройкиПользователей

ГДЕ

                НастройкиПользователей.Пользователь = &ТекущийПользователь

                И НастройкиПользователей.Настройка = Значение(ПланВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация)

                  )

                 )

//--------------------------------------------------------------------------

 

 

В  тексте шаблона значение #ТекущаяТаблица является служебным значением, и обозначает саму таблицу, права пользователя к которой описывается.

 

К сведению. В шаблоне можно так же использовать параметры запроса. К примеру, если в документе организация это реквизит «Филиал», а в проводках «ОрагизациПроводки». Тогда для документа обращение к шаблону будет:

 

#ОрганизацияПользователя(«Филиал»)

 

А текст шаблона

 

//--------------------------------------------------------------------------

ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица       

ГДЕ

                (ТекущаяТаблица.#Параметр(1) В

                 (

                                ВЫБРАТЬ

                Выразить(НастройкиПользователей.Значение как Справочник.Организации) как Организация

ИЗ

                РегистрСведений.НастройкиПользователей КАК НастройкиПользователей

ГДЕ

                НастройкиПользователей.Пользователь = &ТекущийПользователь

                И НастройкиПользователей.Настройка = Значение(ПланВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация)

                  )

                 )

//--------------------------------------------------------------------------

 

 Подробнее об ограничении прав написано в «1С:Предприятие 8.1. Конфигурирование и Администрирование» Часть 1 (стр. 79).

РS. Решил написать, поскольку часто попадаются вопросы по этой теме (если не нужно - уберу). Во вложении файл Word с всем тем же самым что и тут написано (может просто кому-то удобнее файл скачать).

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    122288    673    389    

716

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2997    15    1    

34

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

Зарплата Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    32757    204    89    

165

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3583    11    1    

34

Расширение для разграничения доступа к контрагентам и обработка для группового назначения доступа для Бухгалтерии (RLS) 3.0.143.42

Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    5761    7    4    

9

Роли для кладовщика

Логистика, склад и ТМЦ Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2520 руб.

21.05.2019    1692316    552    192    

133

Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)

Роли и права Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

29.11.2019    24695    13    8    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1399 04.06.12 13:54 Сейчас в теме
Выразить(НастройкиПользователей.Значение как Справочник.Организации) как Организация

Зачем "Выразить"? Это провоцирует лишнее соединение со справочником.
2. Ягг 495 04.06.12 14:02 Сейчас в теме
(1) Armando, может ошибаюсь но не думаю что вызывает лишнее соединение со справочником. Мне кажется наоборот отсекает все потенциально "неправильные" соединения сразу (сервер даже не пытается построить левое соединения с остальными таблицами). Кроме того получаем результат гарантированного типа.

Я думаю что подобная "конструкция" как бы накладывает дополнительное ограничение к полю (при запросе к БД ставится еще и проверка по полю отвечающий за тип). Но, возможно ошибаюсь. И согласен, что поскольку у нас идет запрос по конкретному показателю использование "Выразить" не принципиально.


Поправте если неправ.

Эта памятка писалась достаточно давно :)

PS. Впрочем, тут нет обращения через "." к реквизитам поля "Значение", поэтому левое соединение с дополнительными таблицами строится не будет. Так что от того что "Выразить" - не тепло ни холодно. А вот если бы было обращение через "." тогда точно надо. Видимо раньше я какой-то параметр брал - вот и осталось.

Вывод: ВЫРАЗИТЬ можно убрать (а можно и оставить, хуже не будет :) )
3. Armando 1399 04.06.12 15:40 Сейчас в теме
(2) Да, точно. Соединения не будет, т.к. нет "точки".
ВадимЛитовченко; +1 Ответить
6. Модератор раздела 07.06.12 18:10 Сейчас в теме
(1) Ты неправ - никаких соединений не будет.
ИМХО Эта инфа используется только на этапе разбора запроса в 1С, чтобы определить участвующие таблицы
4. Yashazz 4709 04.06.12 17:49 Сейчас в теме
5. Ягг 495 05.06.12 08:59 Сейчас в теме
(4) Yashazz, да
ВадимЛитовченко; +1 Ответить
7. mrd_84 31.10.12 01:07 Сейчас в теме
Спасибо за иноформацмю! Пригодится.
ВадимЛитовченко; +1 Ответить
8. Ignat_n 47 19.01.13 20:58 Сейчас в теме
Отличная статья, все подробно описано.
ВадимЛитовченко; +1 Ответить
9. Sjawa2004 28.05.13 11:20 Сейчас в теме
А не проще использовать встроенный механизм прав доступа на уровне записей? Если только необходимо более детальное ограничение прав(больше чем просто по организациям, ценам и складам).
ustinov_greendale; ВадимЛитовченко; +2 Ответить
10. Ягг 495 28.05.13 12:39 Сейчас в теме
(9) Sjawa2004, если имеется в виду механизм встроенный в типовые конфигурации - то не все конфигурации "типовые" (иногда и делаются разработки с нуля). Кроме того, нужно же знать на чем они (типовые механизмы) построемы (в случае необходиммости их дорабатывать)

Если имеется в виду механизм встроенный в платформу - то он и испольузется. Просто представлен пример (пояснение) как его можно использовать.
11. Sjawa2004 28.05.13 13:41 Сейчас в теме
Я полностью согласен, что не у всех типовые! Просто как показывает практика не все 1С-ки умеють настроить даже тот функционал который реализован в платформе! Не говоря уже о более глубокой детализации! При этом они считаются хорошими специалистами! P.S. последние три предложения - это о наболевшем!
13. Yaga_2011 5 26.04.17 11:38 Сейчас в теме
Оставьте свое сообщение