Ограничение прав доступа к объектам 1С в подсистеме Datareon
Ограничение прав доступа к объектам 1С в подсистеме Datareon
Важно
Перед изучением данной статьи, пожалуйста, ознакомьтесь с информацией о привилегированном режиме. В этой статье объясняется, почему использование привилегированного режима является оптимальным решением и не несет угрозы для бизнеса. Datareon не рекомендует отключать привилегированный режим. Однако, если все же стоит задача ограничения, ниже представлен сценарий настройки.
Данная статья предназначена для тех случаев, когда все же требуется ограничить доступ к определенным объектам в системе 1С при работе с подсистемой Datareon.
Ограничение доступа к объектам выполняется посредством создания пользователей на стороне 1С с определенным набором прав и запуска фоновых заданий подсистемы Datareon под этими пользователями.
Перейдите в конфигуратор 1С и выполните поиск по запросу сшп:
Перейдите в свойства объектов и у всех объектов, у которых установлен флаг Привилегированный, снимите его:
Подготовка ролей для пользователя.
Необходимо подготовить роли для будущего пользователя (если их нет). Пример:
Роль «Фулл_Справочники»
Данная роль предоставляет пользователю возможность чтения всех справочников текущей конфигурации. Это позволит получать сообщения «В Platform», но запретит вносить изменения посредством использования обработчиков «Из Platform»:
У данной роли должны присутствовать права на использование объектов сшп. Таким образом, пользователю будет доступна подсистема, но уже не под привилегированным режимом:
Создание пользователя.
Создайте пользователя с заранее определенными ролями. Для создания пользователя перейдите: Администрирование → Пользователи → Добавить (Ins):
Настройка фоновых заданий. Выполните следующие действия:
В клиенте 1С перейдите в регламентные и фоновые задания.
Выберите регламентное задание Запуск обработки заданий подсистемы Datareon.
Назначьте на выполнение регламентного задания ранее настроенного пользователя.
Важно
Если до этого были запущены регламентные и фоновые задания, то после выполнения настроек рекомендуется:
В настройках подсистемы заблокировать текущие потоки:
Дождаться полного завершения всех фоновых заданий и нажать Разблокировать:
После этого дождитесь, когда фоновые задания запустятся под новым пользователем.
У созданного пользователя нет возможности работать в клиенте, у него есть только права на чтение. Следовательно, объект будет изменяться под администратором.
Выберите любой справочник, внесите изменения и нажмите Записать и закрыть:
Перейти в Центр мониторинга на вкладку События, здесь можно увидеть две записи:
Если просмотреть ошибку направления Datareon Platform → 1С, то отобразится следующее:
Код 558: [Ошибка обработки сообщения] Ошибка выполнения обработчика Загрузка_Контрагентов:
Причина ошибки: Нарушение прав доступа!
Стек ошибки: Ошибка при вызове метода контекста (Записать)
{(128)}:СуществующийКонтрагент.Записать(); // Сохраняем изменения только если они были
{Обработка.сшпОбработчикИзDatareon.МодульОбъекта(88)}:Выполнить (dt_Код);
{ОбщийМодуль.сшпКодОбработчиков.Модуль(179)}:КонтекстОбработчика.ВыполнитьКодОбработчика();
{ОбщийМодуль.сшпTcp.Модуль(1084)}:сшпКодОбработчиков.ВыполнитьОбработчикИзDatareon(КонтекстОбработчика, Компонента, КодОбработчика,
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Нарушение прав доступа!
[НарушениеПравДоступа]
Datareon не рекомендует отключение привилегированного режима. Однако, если все-таки стоит задача ограничения, то описанные действия помогут реализовать данный сценарий.