Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешние обработки и безопасный режим

Внешние обработки и безопасный режим
Я
   Terras
 
10.08.20 - 21:11
Добрый вечер всем!
Дано: внешняя обработка которая загружает данные из EXCEL.
соответственно передает данные с клиента на сервер.

&НаКлиенте
Процедура Прочитать(Команда)
    Расширение = ПолучитьРасширениеФайла(ИмяФайла);
    АдресХранилища = "";
    ПоместитьФайл(АдресХранилища, ИмяФайла,, Ложь, УникальныйИдентификатор);
    ПрочитатьНаСервере(АдресХранилища, Расширение);
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНаСервере(АдресХранилища, расширение)

    ВремФайл = ПолучитьИмяВременногоФайла(Расширение);
    
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
    ДвоичныеДанные.Записать(ВремФайл);    
        //какой то код
КонецПроцедуры

Обработка затыкается на процедуре "ПрочитатьНаСервере" у пользователя с ограниченными правами
с ошибкой "У пользователя недостаточно прав для операций с базой данных".

Мои личные подозрения что затыкается на моменте
ДвоичныеДанные.Записать(ВремФайл);

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

В сведениях о внешней обработке в параметрах регистрации стоит безопасныйРежим = Ложь;
Разрешения на привилегированный режим выданы.

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

Всем заранее спасибо за ответы!
   Terras
 
1 - 10.08.20 - 21:17
в сведениях о внешней обработке вот что:
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    ПараметрыРегистрации.Наименование = ЭтотОбъект.Метаданные().Представление();
    ПараметрыРегистрации.Информация = ЭтотОбъект.Метаданные().Комментарий;
    ПараметрыРегистрации.Назначение.Добавить("Подсистема.Зарплата");
    ПараметрыРегистрации.Вставить("ВерсияБСП", "2.2.2.2");
    
    ПараметрыРегистрации.Вставить("РежимСовместимостиРазрешений", Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2);
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    //НоваяКоманда.Представление = ЭтотОбъект.Метаданные().Синоним;

    НоваяКоманда.Представление = НСтр("ru = 'НазваниеОбработки'");
    НоваяКоманда.Идентификатор = "МояОбработка";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    
    ПараметрыРегистрации.Разрешения.Добавить(
        РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима(
            НСтр("ru = 'На всякий случай требуется установка привилегированного режима.'")));
Возврат ПараметрыРегистрации;
    
КонецФункции

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.