Администрирование доступа к элементам управления форм

15.04.16

Администрирование - Информационная безопасность

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка ВыборФормДляПривязок
.epf 13,43Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.
Файл конфигурации
.cf 2,08Mb
1
1 Скачать (8 SM) Купить за 3 950 руб.
Демо версия
.dt 1,61Mb
1
1 Скачать (10 SM) Купить за 4 550 руб.

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

Таким образом в любой момент времени документ имеет определенный статус, соответствующий определенному состоянию заказа в процессе его выполнения. Статус документа (реквизит СтатусЗаказа) своего рода индикатор для визуализации состояния заказа, а с другой стороны позволяет разграничить доступ на уровне всего документа - Редактирование / Просмотр.  

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

Вот для решения данного вопроса и разработан этот механизм.

 

рис. 1 Общая схема организации доступа

 

  На рис.1 представленна общая схема Разграничения доступа к ЭУ.   К типовому решению добавленно три справочника:

   - Т_СтатусыЗаказов -  Допустимые Статусы документа

   - Т_РеквизитыФорм - Содержит список Наименований элементов управления ФормыЭлемента документа

   - Т_РолиПользователей - Справочник определяет доступ по ролям в отраслевом решении, в данном случае в Полиграфии в соответствии со статусом документа.

  Внимание - Дальнейшее описание будет вестись на примере демонстрационной базы, которая прилагается к решению. В составе этой конфигурации содержится один документ - Приходная накладная, который не несёт никакой смысловой нагрузки, а используется только для демонстрации возможностей данного решения.

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


рис. 2

Здесь необходимо отметить одну вещь. Для каждого этапа редактирования документа используется два статуса. Первый статус предназначен как бы для захвата документа и указания, что пользователь выполняет определенные действия над документом (редактирует), а второй для объявления того, что на данном этапе работа над документом завершена, и он может переходить к следующему пользователю. Для второго статуса, как правило, доступно только одно поле на форме это СтатусЗаказа.

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

 рис. 3


или в Иерархии:

рис. 4



После того как мы заполнили справочник  Т_РеквизитыФорм, можно переходить к созданию ролей доступа по отраслевому решению и разграничению доступа ЭУ в соответствии со статусом документа. Для этого мы используем справочник  Т_РолиПользователей. Создаем в справочнике нашей демонстрационной базы следующие роли

рис. 5


И выполним разграничение доступа для роли ПриемТовара. Этой Роли соответствуют Статусы - Принят, Задание Менеджера Создано. Вообще-то для каждой роли должно быть определено как минимум три статуса. Статус перехода с предыдущего этапа и два статуса, как уже говорилось выше для данного этапа. Но так как эта роль начальная, то ей соответствуют два статуса.

рис. 6

Как видно из рисунка, имеются две табличные части. Первая - (ПраваДоступа) определяет список достуных статусов для роли, а также определяет:

 - Возможность изменения статуса документа

 - Возможность редактирования элементов управления в принципе

- Способ разграничения по Доступности ЭУ

- Способ разграничения по Видимости ЭУ

С первыми двумя пунктами, я думаю, все понятно. Остановимся на двух следующих. Как для  разграничения по Доступности, так и для разграничения по Видимости имеется два способа организации разграничения:

- ИсключитьВсе (исключить все, что с этим признаком)
    Доступны все элементы за исключением указанных. Если список пуст - Доступны все элементы управления.

- ВключитьВсе (включить все, что с этим признаком)
    Доступны только элементы, указанные в списке. Если список пуст - НЕ Доступны все элементы управления.

   ДОСТУПНОСТЬ: По УМОЛЧАНИЮ Устанавливается признак <ИсключитьВсе>

   ВИДИМОСТЬ: По УМОЛЧАНИЮ Устанавливается признак <ИсключитьВсе>

 Ну и, наконец, колонка По Элементно - которая и открывает возможность разграничения по конкретному ЭУ, (только если задан флаг Редактирование).

А непосредственно разграничение по элементам осуществляется во второй ТЧ - которая так и называется ДоступПоЭлементам.

Итак, если мы обратися к нашему рисунку для роли ПриемТовара, то увидим, что для статуса Принят установлена возможность

 - ИзмененияСтатуса, Редактирования, ПоЭлементно, ИсключитьВсе

 Переходим во вторую таблицу. Для статуса Принят определен один ЭУ - %Оприходование. В следующей колонке  [Это Узел] установлен флаг - который говорит о том, что ЭУ %Оприходование содержит в себе какие-то вложенные элементы. Если мы зайдем в справочник РеквизитыФорм и найдем там элемент %Оприходование, то увидим, что это СтраницаПанели. Колонка [Это Узел] заполняется автоматически при выборе ЭУ. Следующая колонка [Разграничение по Доступности]  - в случае, если установлен флаг, определяет, что в данной строке задается Доступность ЭУ. Колонка [Разграничение по Видимости] - тоже самое только для Видимости ЭУ. В одной строке мы можем определять или только Доступность элемента или только Видимость. Если нам надо переопределить и Доступность и Видимость (что маловероятно, так как Доступность и Видимость ЭУ в форме задана по умолчанию), то по одному ЭУ у нас будет две строки. После выполнения данных действий мы получим следующий результат:

 В документе Приходная накладная будут доступны все элементы управления за исключением тех, что расположенны на вкладке %Оприходование.

 Если задать правило для Страницы панели, то это правило будет распространяться на все элементы Страницы

  Если на форме есть недоступные элементы управления, то доступные поля ввода будут подсвечиваться.

Следующий пример демонстрирует разграничение доступа по ЭУ для роли ОбработкаДанныхПроизводством, по которой для статуса ПринятоВПроизводство  Способ разграничения по Доступности   =  ВключитьВсе.

Рис 10


Согласно установленному Способу разграничения будут доступны только элементы, включенные в список ТЧ ДоступПоЭлементам.

 Ещё один нюанс - в справочнике РолиПользователей в ТЧ ДоступПоЭлементам список выбранных элементов можно копировать, указав в качестве источника - Роль, из которой будет происходить копирование, и СтатусДокумента.

Рис 11

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

        Утилиты.ПроверкаПравДоступаПользователя(ЭтаФорма,ЭлементыФормы, СтатусЗаказа);

 При обновлении конфигурации объект Роли из ветки Общие обновлять Не нужно

Имеется также демонстрационная база, на основании которой создавалось данное описание.

Разграничение доступ элементы управления

См. также

Информационная безопасность Системный администратор Программист Платные (руб)

AUTO VPN (portable) - автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    15378    25    32    

35

Информационная безопасность Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

2400 руб.

29.08.2016    30060    9    1    

10

Информационная безопасность Пароли Платформа 1С v8.3 Бесплатно (free)

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    6241    kamisov    17    

60

Информационная безопасность Программист Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    7375    PROSTO-1C    10    

39

Информационная безопасность Программист Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    2425    platonov.e    1    

23

Информационная безопасность Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

5 стартмани

24.04.2023    6264    20    soulner    8    

32

Информационная безопасность Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    7294    50    Silenser    12    

24
Оставьте свое сообщение