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

04.06.12

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Статья как документ WORD
.docx 186,30Kb
82
82 Скачать (1 SM) Купить за 1 850 руб.

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

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

 

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

 

/

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

ВЫБРАТЬ

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

ИЗ

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

ГДЕ

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

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

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

  

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

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

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

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

 

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

 

/

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

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

ГДЕ

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

                 (

                                ВЫБРАТЬ

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

ИЗ

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

ГДЕ

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

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

                  )

                 )

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

 

 

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

 

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

 

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

 

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

 

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

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

ГДЕ

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

                 (

                                ВЫБРАТЬ

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

ИЗ

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

ГДЕ

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

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

                  )

                 )

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

 

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

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

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159415    872    399    

861

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8842    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10417    36    21    

61

SALE! 20%

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

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

5940 4752 руб.

27.05.2021    37561    264    92    

205

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

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

4560 руб.

21.05.2019    1694764    570    194    

137

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    58453    160    261    

152

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

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

19200 руб.

29.11.2019    25657    16    8    

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

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

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


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

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

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

Вывод: ВЫРАЗИТЬ можно убрать (а можно и оставить, хуже не будет :) )
3. Armando 1401 04.06.12 15:40 Сейчас в теме
(2) Да, точно. Соединения не будет, т.к. нет "точки".
ВадимЛитовченко; +1 Ответить
6. Модератор раздела 07.06.12 18:10 Сейчас в теме
(1) Ты неправ - никаких соединений не будет.
ИМХО Эта инфа используется только на этапе разбора запроса в 1С, чтобы определить участвующие таблицы
4. Yashazz 4790 04.06.12 17:49 Сейчас в теме
5. Ягг 497 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. Ягг 497 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 Сейчас в теме
Оставьте свое сообщение