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