|
Запрет сохранения двоичных данных в безопасном режиме | ☑ | ||
---|---|---|---|---|
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", а на него разрешения нет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |