Имя: Пароль:
1C
1С v8
Привилегированный режим и РС "БезопасноеХранилищеДанных" во внешней обработке
0 RomakON
 
01.10.21
11:28
Добрый день!
Конфигурация БП 3, делаю внешнюю обработку по отправке СМС-оповещений.
Столкнулся с проблемой доступности регистра "БезопасноеХранилищеДанных" для пользователя без прав "Администратор", а именно тем, что во время выполнения обработки не устанавливается привилегированный режим.

В сведениях о внешней обработке указано:
РазрешениеПривилегированныйРежим = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Для SMS-рассылки");    
ПараметрыРегистрации.Разрешения.Добавить(РазрешениеПривилегированныйРежим);

Не устанавливается привилегерованный режим вот в этом месте, в модуле ОтправкаSMS

УстановитьПривилегированныйРежим(Истина);
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);


Код для проверки:

&НаКлиенте
Процедура Команда1(Команда)
Если НЕ ОтправкаSMSНастроена() Тогда
    ОткрытьФорму("ОбщаяФорма.НастройкаОтправкиSMS");
    Возврат;
КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ОтправкаSMSНастроена()
Возврат ОтправкаSMS.НастройкаОтправкиSMSВыполнена();
КонецФункции
1 ДенисЧ
 
01.10.21
11:30
Во внешней обработке привилегированный установить нельзя.
Точка.
2 fisher
 
01.10.21
11:38
(0) Внешние обработки запускаются в безопасном режиме. В безопасном режиме привилегированный режим отменяется, переход в привилегированный режим игнорируется.
ЗЫ. Если бы это было не так, то это была бы не даже не дыра в безопасности. Это было бы вообще хрен пойми что.
3 fisher
 
01.10.21
11:41
Но для запуска внешних обработок из кода (безопасного) есть возможность отключить безопасный режим при программном подключении внешней обработки. Это, в частности, реализовано в подсистеме БСП подключаемых отчетов и обработок. Там ты можешь указать, что обработка будет подключаться в "опасном" режиме.
4 RomakON
 
01.10.21
12:04
(3) Так и делаю, вот код подключения обработки
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.ВерсияБСП = "3.1.2.245";
    ПараметрыРегистрации.Информация = НСтр("ru = 'Обработка SMS-информирования клиентов'");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "20.09.2021";
    ПараметрыРегистрации.БезопасныйРежим = Истина;
    
    Протокол = "HTTPS";
    Адрес = "smsc.ru";
    Порт = Неопределено;
    Описание = НСтр("ru = 'Отправка SMS через ""SMS-ЦЕНТР"".'");
    
    РазрешениеИнтернетРесурса = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание);
    ПараметрыРегистрации.Разрешения.Добавить(РазрешениеИнтернетРесурса);
    
    РазрешениеПривилегированныйРежим = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима("Для SMS-рассылки");    
    ПараметрыРегистрации.Разрешения.Добавить(РазрешениеПривилегированныйРежим);
        
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = 'Обработка SMS-информирования клиентов (дополнительная внешняя обработка)'");
    Команда.Идентификатор = "SMSИнформированиеКлиентов";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

В справке 1С указано что БезопасныйРежим должен быть "Истина" и дополнительно нужно указывать "РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима", но по факту не работает

https://ibb.co/cwVsPXn
5 ДенисЧ
 
01.10.21
12:06
"возможность отключить безопасный режим"
".БезопасныйРежим = Истина;"

КакбЭ (с) исключают одно другого, не так ли?
6 RomakON
 
01.10.21
12:08
(5) В справке сказано что обработка должна быть в безопасном режиме, и дополнительно должен быть указан параметр РазрешениеНаИспользованиеПривилегированногоРежима
7 RomakON
 
01.10.21
12:09
8 RomakON
 
01.10.21
12:11
(7) БезопасныйРежим = Ложь; пробовал, не помогло
9 fisher
 
01.10.21
13:01
А, это фрешовые замолотки. Я в них не шарю. Но насколько я понимаю, фреш физически тебе не даст установить небезопасный режим.
Судя по скудной инфе ИТС у них там сложная система регистрации доступов к внешним ресурсам, которые требуют привилегированного режима и если их правильно зарегать, то в потрохах фреша привилегированный режим при работе с ними будет устанавливаться автоматически.
А вот так вот тупо врубить для чего хочешь привилегированный режим тебе фреш не даст. Успешных прецедентов решения проблемы с доступом к "БезопасноеХранилищеДанных" нагуглить не удалось.
10 pechkin
 
01.10.21
14:16
а как же
ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища