По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) вам надо прочитать на клиенте. Через ДвоичныеДанные, например. Затем передаете через временное хранилище данные на сервер. И на сервере пишете во временный файл. А потом уже прочитать на сервере табдок из временного файла - это уже дело техники, как вы читаете в (0).
(8)
На клиенте:
ДанныеФайла = Новый ДвоичныеДанные(Документ);
АдресДанных = ПоместитьВоВременноеХранилище(ДанныеФайла);
На сервере:
Данные = ПолучитьИзВременногоХранилища(АдресДанных);
ПутьКФайлуНаСервере = ПолучитьИмяВременногоФайла("xls");
Данные.Записать(ПутьКФайлуНаСервере); - спотыкается тут
ТабДокумент.Прочитать(ПутьКФайлуНаСервере);
На клиенте:
ДанныеФайла = Новый ДвоичныеДанные(Документ);
АдресДанных = ПоместитьВоВременноеХранилище(ДанныеФайла);
На сервере:
Данные = ПолучитьИзВременногоХранилища(АдресДанных);
ПутьКФайлуНаСервере = ПолучитьИмяВременногоФайла("xls");
Данные.Записать(ПутьКФайлуНаСервере); - спотыкается тут
ТабДокумент.Прочитать(ПутьКФайлуНаСервере);
(10) Я в соответствии с новыми стандартами БСП, делаю трехшаговую конструкцию:
Работает без сбоев с любым клиентом, даже веб.
&НаКлиенте
Процедура ДействияНаКлиенте()
ОповещениеЗавершитьПомещениеФайла = Новый ОписаниеОповещения("ПолучитьДДанныеФайла", ЭтотОбъект);
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
ПараметрыДиалога.МножественныйВыбор = Ложь;
ПараметрыДиалога.Заголовок = НСтр("ru = 'Выберите файл'; en = 'Select file'");
ПараметрыДиалога.Фильтр = НСтр("ru = 'Файл Excel'; en = 'Excel file'") + " (*.xls;*.xlsx)|*.xls;*.xlsx|";
НачатьПомещениеФайлаНаСервер(ОповещениеЗавершитьПомещениеФайла,,,, ПараметрыДиалога,
ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьДДанныеФайла(ОписаниеПомещенногоФайла, ДополнительныеПараметры) Экспорт
ОписаниеФайла = Новый Структура;
ОписаниеФайла.Вставить("Адрес", ОписаниеПомещенногоФайла.Адрес);
ОписаниеФайла.Вставить("Имя", ОписаниеПомещенногоФайла.СсылкаНаФайл.Имя);
ОписаниеФайла.Вставить("Расширение", СтрЗаменить(ОписаниеПомещенногоФайла.СсылкаНаФайл.Расширение, ".", ""));
ДействияНаСервере(ОписаниеФайла);
КонецПроцедуры
&НаСервере
Процедура ДействияНаСервере(ОписаниеФайла)
Если ЭтоАдресВременногоХранилища(ОписаниеФайла.Адрес) Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ОписаниеФайла.Адрес);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ОписаниеФайла.Расширение);
ДвоичныеДанные.Записать(ИмяВременногоФайла);
Исходник = Новый ТабличныйДокумент;
Исходник.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
// делаем, что требуется
КонецЕсли;
КонецПроцедуры
ПоказатьРаботает без сбоев с любым клиентом, даже веб.
(14) У фреша нет категоричного запрета на разрешения. Вам надо указать разрешение и аргументировать его.
Разумеется, прив. режим не пропустят. Но так там разрешения этим не исчерпываются.
Посмотрите остальные разрешения. Там есть еще вроде с файловыми операциями.
Разумеется, прив. режим не пропустят. Но так там разрешения этим не исчерпываются.
Посмотрите остальные разрешения. Там есть еще вроде с файловыми операциями.
(15)
Но это для относительно свежих платформ.
Улетает в ошибку - безопасный режим
Попробуйте в серверном коде добавить ЗначениеРежима = БезопасныйРежим();
Если ТипЗнч(ЗначениеРежима) = Тип("Булево") И ЗначениеРежима тогда
УстановитьОтключениеБезопасногоРежима(Истина);
// здесь исполняемый код
КонецЕсли;
Но это для относительно свежих платформ.
(26)
Код модуля СведенияОВнешнейОбработке:
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина,Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Однако запись в файл валится с ошибкой безопасного режима. Возможно я что-то не так делаю. Фреш для меня это - темный лес.
Код модуля СведенияОВнешнейОбработке:
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина,Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Однако запись в файл валится с ошибкой безопасного режима. Возможно я что-то не так делаю. Фреш для меня это - темный лес.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот