Запрет на запись документов/справочников/РегистрСведений (ТолькоПросмотр)

13.08.12

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

Частенько приходится слушать от руководства: "запретить этому пользователю, запись этого документа\справочника"... А через какое-то время, почему тот-то не может записать справочник/документ. Вот и родилась идея оперативного запрета/разрешения записи документа/справочника/рс.

Навеяно: Простой доступ только для чтения.

Данное решение работоспособно в типовых решениях, где присутсвует справочник "ГруппыПользователей".

  

Алгоритм механизма следующий:

1. Создаются подписки на событие ПередЗаписью на все документы/справочники/рс (в чем есть необходимость).

2. В справочнике "ГруппыПользователей" создается элемент, например: "Запрет на запись документа".

3. Далее, в эту группу ("Запрет на запись документа")  добавляются элементы, для которых необходимо запретить запись, с именем = Имя справочника/документа/рс .

4. В обработчтике подписки на событие вставляем код:

    ИмяОбъекта = Источник.Метаданные().Имя;

   
ГруппаЗапрета = Справочники.ГруппыПользователей.НайтиПоНаименованию("Запрет на запись документов", Истина);

   
ОбъектЗапрета = Справочники.ГруппыПользователей.НайтиПоНаименованию(ИмяОбъекта, Истина, ГруппаЗапрета);

    Если НЕ
ОбъектЗапрета = Справочники.ГруппыПользователей.ПустаяСсылка() Тогда
       
Запрос = Новый Запрос;
       
Запрос.Текст = "ВЫБРАТЬ
        |   ГруппыПользователейПользователиГруппы.Ссылка
        |ИЗ
        |   Справочник.ГруппыПользователей.ПользователиГруппы КАК ГруппыПользователейПользователиГруппы
        |ГДЕ
        |   ГруппыПользователейПользователиГруппы.Пользователь = &Пользователь
        |   И ГруппыПользователейПользователиГруппы.Ссылка = &Ссылка"
;

       
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
       
Запрос.УстановитьПараметр("Ссылка", ОБъектЗапрета);

       
Результат = Запрос.Выполнить();

        Если НЕ
Результат.Пустой() Тогда
           
Отказ = Истина
        КонецЕсли;

    КонецЕсли;

В итоге имеем механизм, оперативного запрета/разрешения записи любого документа/справочника/РегистраСведений.

P.S. У данного решения остается вопрос с производительность при большом докуметообороте и включенном РЛС. Протестировать пока не представляется возможным.

См. также

SALE! %

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

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

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

12000 10000 руб.

02.09.2020    93228    474    380    

531

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

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

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

5700 руб.

27.05.2021    28680    159    86    

126

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

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

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

2000 руб.

21.05.2019    1688918    528    191    

122

Система интерактивных ролей и обработчиков с возможностью интерактивной настройки и не только (платформа 8.3.17+, расширение) для УТ 11 (все), КА 2, ERP 2, Розница 2, УНФ 1.6/3.0, БП 3, ЗУП 3.1, ААА 6

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

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

10800 руб.

21.03.2022    13145    16    50    

35

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

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

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

9360 руб.

14.09.2022    5057    2    4    

4

[Расширение] УНФ. Ограничения прав пользователей

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

Расширение возможностей программы УНФ. В первую очередь это разграничение всевозможных прав пользователей и контроль при совершении различных действий. Например: ограничения на создание, открытие либо редактирование объектов, ограничение видимости номенклатуры, возможность задавать минимальный вид цен продажи, запрет продажи на группы номенклатуры и по признаку эквайринга, теги доступных пользователю контрагентов, доступные кассы, доступные склады и организации, ограничение повторного входа пользователя, контроль суммы задолженности, запрет печати непроведённых документов, доступ к отчетам и т.д..

2400 руб.

23.02.2018    55663    151    261    

137

Отчет по системе прав доступа

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

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

2000 руб.

03.06.2012    85258    88    70    

220
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. KonstB 180 09.08.12 22:36 Сейчас в теме
Частенько приходится слушать от руководства: "запретить этому пользователю, запись этого документа\справочника"... А через какое-то время, почему тот-то не может записать справочник/документ. Вот и родилась идея оперативного запрета/разрешения записи документа/справочника/рс.

Перейти к публикации

1. ninch 51 13.08.12 09:24 Сейчас в теме
Довольно не плохой способ ограничения прав. При случае надо проверить в деле:)
2. kapustinag 13.08.12 10:50 Сейчас в теме
Нужно на всякий случай проверить вот что:
- Остальные группы "разрешительные", а эти - "запретительные".
- Через шаблонные ограничения доступа, указанные в ролях, пользователь может получить доступ к тем же документам, что и остальные члены всех групп, в которые он входит.
- Рассмотренный механизм добавляет (потенциально) еще много пересечений пользователя с другими пользователями. В смысле - пользователь может быть членом нескольких разрешительных групп, наряду с, например, 20 своими коллегами. А теперь он стал еще членом нескольких запретительных групп, наряду с 10 нарушителями каких-то там правил.
- В результате этот пользователь или другие нарушители могут незапланированно получить доступ к тем документам (не видам документов, а именно конкретным документам), к которым не получали доступ через разрешительные группы.

То есть опасность эта может быть, если включен и настроен доступ на уровне записей. Или если доступ регулируется другими (самодельными) механизмами, но с использованием вызовов функции ГруппыТекущегоПользователя().
4. KonstB 180 13.08.12 16:06 Сейчас в теме
(2) kapustinag, Спасибо за коммент!
Но на самом деле не шибко я понял, что Вы написали (видимо выходные сказываются) :) Суть такова: если у пользователь состоит в группе, то он и не сможет записать этот объект.
Например:
-Запрет на запись Справочников
-- Номенклатура

если пользователь включен в группу номен., то он и не запишет туда ничего.

По сути если даже есть, какой-то свой механизм или ограничения на уровне записей, то нахождение пользователя в группе вызовет Отказ записи, и запись произведена не будет (данный механизм ограничивает только Запись).

(3) kapustinag, До этого места я не дочитал. Вариант предложенный AuroraNorilsk мне больше нравится. Что-то я не подумал(до читал) об этом.
5. kapustinag 13.08.12 21:46 Сейчас в теме
(4) Наверно, я слишком косноязычен.
Я имел в виду, что, если включены ограничения на уровне записей, либо используются иные способы, проверяющие членство в "разрешительных" группах, то может быть отрицательный побочный эффект из-за этих "запретительных" групп.

То, что мы собирались запретить с помощью членства в "запретительной" группе - будет запрещено, тут я ничего не оспариваю.
Побочный эффект может заключаться в том, что, например, пользователь Вася получит доступ на просмотр не только тех документов "Реализация товаров и услуг", которые делал Петя (Вася и Петя находятся в одной разрешительной группе), но и к тем документам, которые делал Гриша (Вася и Гриша находятся в одной запретительной группе).

Но, может быть, во многих ИБ ничего такого не произойдет.
3. kapustinag 13.08.12 11:05 Сейчас в теме
Как уже отметили в обсуждении темы "Простой доступ только для чтения", есть еще один вариант, сравнимый с этим:
- Использовать не группы, а дополнительные права пользователя. В этом случае можно одной строкой запретить и группе целиком, а не только одному пользователю.
7. V.Nikonov 119 16.08.12 11:17 Сейчас в теме
Способ относительно простой и достаточно эффективный. Единственное замечание по реализации: Раз уж начали править Конфу, то эффективнее, вместо поиска (тем более по Наименованию), использовать Предопределённые значения. Соглашусь с (3) kapustinag
Использовать не группы, а дополнительные права пользователя
это заметно нагляднее при объявленной постановке задачи.

Теперь по потребности в подобных закрытиях... Гораздо чаще, включают условные запреты, Например, Номенклатуру "из этой группы" можно править, а "в другие не лезь"... Или на одном Складе можно проводить документы, а на другом нельзя!
Полные же запреты на виды действий, чаще "лечатся присвоением Роли с ограничением"...
6. chmod660 416 15.08.12 14:23 Сейчас в теме
кроме упомянутых неоднозначностей, второй момент:
если я правильно понял, имена метаданных - это подгруппы в вашей группе запрета?
тогда что произойдет, если есть одноименные метаданные, и я захочу одно запретить, а другое разрешить?
например, справочник "СобытияОС" и регистр сведений "СобытияОС" ?
8. KonstB 180 17.08.12 11:56 Сейчас в теме
(6) chmod660, Да все верно, имена метаданных - это подгруппы в группе запрета.
ОбъектЗапрета ищется по родителю. Т.е. если отрабатывается подписка на событие ПередЗаписью документов, предполагается, что существует группа "Запрет на запись документов" (соот. для подписки на справочник группа "Запрет на запись справочников") - данный метод отсекет НЕ уникальность имен в различных метаданных.

(7) V.Nikonov, Спасибо, про предопределенные, что то не подумал :)
Если необходим, такой детальный запрет, то да это только ограничения по записям, предложенный мною механизм не годится.
9. itt 25.08.12 00:04 Сейчас в теме
как вариант надо будет проверить
10. taasha25 13 17.06.13 09:34 Сейчас в теме
Коллега!
Способ понравился, как раз то, что искала. Необходим доступ только на чтение всех данных.
Сейчас буду тестировать.
11. a4a 22.10.13 16:01 Сейчас в теме
Интересный вариант, если использовать группы пользователей. Но, как правило, в базе бывает несколько пользователей с полными правами и каждый из них может вмешаться и изменить группы в режиме предприятия. В конфигуратор, как правило, все же заходят далеко не все. Хотя это, наверное, частная проблема.
12. ray-xp 20 28.11.13 09:06 Сейчас в теме
Спасибо за идею, использовать справочник "ГруппыПользователей"!
14. rm123 09.12.16 09:17 Сейчас в теме
Всё работает. Спасибо!
Оставьте свое сообщение