|
Обработка загрузки файла | ☑ | ||
---|---|---|---|---|
0
Eeelena
03.03.21
✎
11:09
|
Клиент серверная база ERP , на сервере операционка Linux
Есть обработка самописная, которая считывает данные из Ексель. При выборе файла для загрузки на клиенте ругается, что нет доступа к файлу. Если эту же базу сделать файловой на Винде, загрузка проходит без проблем. Подскажите куда копать ? По серверной части не очень разбираюсь. |
|||
1
ДенисЧ
03.03.21
✎
11:10
|
На клиенте получать имя файла, пихать его в ХЗ, ХЗ передавать на сервер.
На сервере получать из ХЗ, записывать во временный, полученный временный обрабатывать. |
|||
2
kzot
03.03.21
✎
11:35
|
(1) и удалять после обработки на сервере... они же скорее всего его заполняют и правят, не лучше прочитать на клиенте ?
|
|||
3
Михаил Козлов
03.03.21
✎
11:58
|
Если файл на клиенте, примерно так:
&НаКлиенте Процедура ЗагрузитьДанные(Команда) ОчиститьСообщения(); АдресФайлаВоВременномХранилище = ""; ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьДанныеЗавершение", ЭтотОбъект); НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаВоВременномХранилище,Объект.ВыбранноеИмяФайла,, УникальныйИдентификатор); КонецПроцедуры &НаКлиенте Процедура ЗагрузитьДанныеЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт Если Результат Тогда //Состояние(Нстр("ru = 'Выполняется загрузка данных. Пожалуйста, подождите...'")); Объект.ВыбранноеИмяФайла = ВыбранноеИмяФайла; Файл = Новый Файл(ВыбранноеИмяФайла); Если Не Файл.Существует() Тогда ТекстСообщения = Нстр("ru = 'Указанный файл не существует'"); СообщитьПользователю(ТекстСообщения); Возврат; КонецЕсли; ЗагрузитьДанныеНаСервере(Адрес, Файл.Расширение); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗагрузитьДанныеНаСервере(АдресФайлаВоВременномХранилище, Расширение) ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВоВременномХранилище); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); ДвоичныеДанные.Записать(ИмяВременногоФайла); Объект.табДокумент.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст); Файл = Новый Файл(ИмяВременногоФайла); Если Файл.Существует() Тогда УдалитьФайлы(ИмяВременногоФайла); КонецЕсли; //СообщитьПользователю(Нстр("ru = 'Загрузка данных успешно завершена'")); КонецПроцедуры |
|||
4
Eeelena
05.03.21
✎
07:31
|
(1) (2) (3) Благодарю, за помощь. Попробую (3)
|
|||
5
kzot
05.03.21
✎
08:04
|
(4) может толстого клиента как костыль ? )
|
|||
6
hhhh
05.03.21
✎
08:26
|
Загадочная вещь, табдок.Прочитать() на тонком клиенте нельзя, а табдок.Записать() можно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |