Имя: Пароль:
1C
1С v8
Внешние обработки и безопасный режим
0 Terras
 
10.08.20
21:11
Добрый вечер всем!
Дано: внешняя обработка которая загружает данные из EXCEL.
соответственно передает данные с клиента на сервер.

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

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

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

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

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

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

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

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

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