Обмен с сайтом в привилегированном режиме. УНФ 1.6
Клиент попросил, чтобы интеграторы с сайтом имели доступ только по ограниченному набору прав, касающихся настроек интеграции с сайтом.
По умолчанию в УНФ предусмотрено, что настройкой обмена с сайтом занимаются только администраторы, поэтому пришлось повозиться.
В итоге получилось, что доступ такой интерфейс, где я вынес ссылки в избранное, чтобы не возиться с настройкой главного меню, я вообще отключил все разделы:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-31.png)
Раздел «Обмен с сайтом» доступен по ссылке:
e1cib/command/Обработка.ПанельАдминистрированияИнтеграцийУНФ.Команда.ОбменССайтом
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-32.png)
Однако запуск обмена приводил к ошибкам прав доступа, постоянно разным:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-33-1024x250.png)
В итоге я решил запускать обмен в привилегированном режиме, чтобы исключить раз и навсегда донастройку прав доступа.
Анализ стека показал, что обмен запускается в процедуре ЗапуститьВыполнениеОбмена общей формы ФормаВыполнениеОбмена:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-34.png)
Добавил простое расширение, отключающее контроль прав обмена для обмена с сайтом на процедуру ВыполнитьОбменССайтомНаСервере этой формы:
&НаСервере &Вместо("ВыполнитьОбменССайтомНаСервере") Функция дор_ВыполнитьОбменССайтомНаСервере(ПараметрыОбмена) //Осипов - чтобы обмен проходил привелигированно УстановитьПривилегированныйРежим(Истина); Результат = ПродолжитьВызов(ПараметрыОбмена); Возврат Результат; КонецФункции
Но увы, это работало только в режиме отладки, при запуске в фоновом задании не работало. Видимо, при передаче кода в фон терялся признак привилегированности. Пришлось искать другой модуль, который непосредственно вызывает обмен с сайтом:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-40.png)
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-41.png)
В итоге сделал расширение на процедуру ВыполнитьОбмен модуля ОбменССайтом:
&Вместо("ВыполнитьОбмен") Процедура дор_ВыполнитьОбмен(УзелОбмена, РежимЗапускаОбмена, ВыгружатьТолькоИзменения, ПараметрыСоставОбмена) УстановитьПривилегированныйРежим(Истина); ПродолжитьВызов(УзелОбмена, РежимЗапускаОбмена, ВыгружатьТолькоИзменения, ПараметрыСоставОбмена); КонецПроцедуры
Всё, после этого ошибки прав доступа при обмене с сайтом перестали беспокоить интеграторов.
Если вам интересно, какие права УНФ я дал этому пользователю, вот список самодельных профилей:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-35.png)
Вот тут подробнее расшифровка:
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-36.png)
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-37.png)
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-38.png)
![](https://geniy1s.ru/wp-content/uploads/2021/12/image-39.png)
Среда: 1.6.25.152 Объем: 0.5 час.
![](https://geniy1s.ru/wp-content/uploads/2021/12/214857602-hlvagonpeqk-1024x768.jpg)
Свежие комментарии