|   |   | 
| 
 | Запрет сохранения двоичных данных в безопасном режиме | ☑ | ||
|---|---|---|---|---|
| 0
    
        GrowBell 28.11.22✎ 00:49 | 
        Здравствуйте!
 Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.125.15) Корректирую внешнюю обработку для того, чтобы пройти аудит в 1С Фреш. Нужно, чтобы обработка работала в безопасном режиме. В ней передаю Excel-файл с клиента на сервер для того, чтобы на сервере его открыть в табличном документе и считать данные. ДанныеExcel = ПолучитьИзВременногоХранилища(Объект.АдресХраненияФайла); ФайлДанныхExcel = ПолучитьИмяВременногоФайла("xlsx"); ДанныеExcel.Записать(ФайлДанныхExcel); Обработка добавлена в базу как внешняя и работает в безопасном режиме. При записи двоичных данных появляется ошибка "Установлен безопасный режим. Выполнение операции запрещено". https://ic.wampi.ru/2022/11/28/SKRIN.png Если её открыть через меню "Файл" - "Открыть", то такой ошибки нет. В функции описания сведений об обработке я указываю, что нужно разрешение на запись/чтение во временном каталоге. Функция СведенияОВнешнейОбработке() Экспорт ИмяОтчета = ЭтотОбъект.Метаданные().Имя; Синоним = ЭтотОбъект.Метаданные().Синоним + " " + ЭтотОбъект.Метаданные().Комментарий; Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета); РегистрационныеДанные = Новый Структура(); РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка"); РегистрационныеДанные.Вставить("Наименование", Синоним); РегистрационныеДанные.Вставить("Версия", "2.4"); РегистрационныеДанные.Вставить("БезопасныйРежим", Истина); РегистрационныеДанные.Вставить("Информация", "Обработка " + Синоним); РегистрационныеДанные.Вставить("Разрешения", Новый Массив); Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина); РегистрационныеДанные.Разрешения.Добавить(Разрешение); ТаблицаКоманд = ПолучитьТаблицуКоманд(); // Добавим команду в таблицу ДобавитьКоманду(ТаблицаКоманд, Синоним, "1" , "ОткрытиеФормы", Истина, ); // Сохраним таблицу команд в параметры регистрации обработки РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд); Возврат РегистрационныеДанные; КонецФункции Вроде бы разрешение на временный каталог есть, а не сохраняет файл. Подскажите, пожалуйста, в чём может быть причина. | |||
| 1
    
        GrowBell 28.11.22✎ 01:48 | 
        Переписал функцию и ошибка пропала. Только не понятно чем она отличается от той, что была раньше.
 Функция СведенияОВнешнейОбработке() Экспорт ИмяОтчета = ЭтотОбъект.Метаданные().Имя; Синоним = ЭтотОбъект.Метаданные().Синоним + " " + ЭтотОбъект.Метаданные().Комментарий; Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета); ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); ПараметрыРегистрации.Информация = "Обработка " + Синоним; ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(); ПараметрыРегистрации.Версия = "2.4.1.1"; ПараметрыРегистрации.БезопасныйРежим = Истина; Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина); ПараметрыРегистрации.Разрешения.Добавить(Разрешение); Команда = ПараметрыРегистрации.Команды.Добавить(); Команда.Представление = Синоним; Команда.Идентификатор = "ЗагрузкаИзExcel"; Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); Команда.ПоказыватьОповещение = Ложь; Возврат ПараметрыРегистрации; КонецФункции | |||
| 2
    
        SleepyHead гуру 28.11.22✎ 04:55 | 
        А у меня вот не получилось эту ошибку победить.
 Если посмотреть на модуль РаботаВБезопасномРежиме и функцию РазрешениеНаИспользованиеКаталогаВременныхФайлов, то она в итоге дает разрешение на работу с каталогом временных файлов "/temp" А ПолучитьИмяВременногоФайла() дает путь что-то вроде "C:\Users\mag13\AppData\Local\Temp\4\v8_3FE6_37.XML", а на него разрешения нет. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |