Обмен с сайтом в привилегированном режиме. УНФ 1.6

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

По умолчанию в УНФ предусмотрено, что настройкой обмена с сайтом занимаются только администраторы, поэтому пришлось повозиться.

В итоге получилось, что доступ такой интерфейс, где я вынес ссылки в избранное, чтобы не возиться с настройкой главного меню, я вообще отключил все разделы:

Раздел «Обмен с сайтом» доступен по ссылке:
e1cib/command/Обработка.ПанельАдминистрированияИнтеграцийУНФ.Команда.ОбменССайтом

Однако запуск обмена приводил к ошибкам прав доступа, постоянно разным:

В итоге я решил запускать обмен в привилегированном режиме, чтобы исключить раз и навсегда донастройку прав доступа.

Анализ стека показал, что обмен запускается в процедуре ЗапуститьВыполнениеОбмена общей формы ФормаВыполнениеОбмена:

Добавил простое расширение, отключающее контроль прав обмена для обмена с сайтом на процедуру ВыполнитьОбменССайтомНаСервере этой формы:

&НаСервере
&Вместо("ВыполнитьОбменССайтомНаСервере")
Функция дор_ВыполнитьОбменССайтомНаСервере(ПараметрыОбмена)
	//Осипов - чтобы обмен проходил привелигированно
	УстановитьПривилегированныйРежим(Истина); 
	Результат = ПродолжитьВызов(ПараметрыОбмена);
	Возврат Результат;
КонецФункции

Но увы, это работало только в режиме отладки, при запуске в фоновом задании не работало. Видимо, при передаче кода в фон терялся признак привилегированности. Пришлось искать другой модуль, который непосредственно вызывает обмен с сайтом:

В итоге сделал расширение на процедуру ВыполнитьОбмен модуля ОбменССайтом:


&Вместо("ВыполнитьОбмен")
Процедура дор_ВыполнитьОбмен(УзелОбмена, РежимЗапускаОбмена, ВыгружатьТолькоИзменения, ПараметрыСоставОбмена)
	УстановитьПривилегированныйРежим(Истина);
	ПродолжитьВызов(УзелОбмена, РежимЗапускаОбмена, ВыгружатьТолькоИзменения, ПараметрыСоставОбмена);
КонецПроцедуры

Всё, после этого ошибки прав доступа при обмене с сайтом перестали беспокоить интеграторов.

Если вам интересно, какие права УНФ я дал этому пользователю, вот список самодельных профилей:

Вот тут подробнее расшифровка:

Среда: 1.6.25.152 Объем: 0.5 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *