Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передать пачку файлов на клиент

Передать пачку файлов на клиент
Я
   John83
 
29.10.19 - 09:55
На сервере создаю несколько csv-файлов, нужно их сохранить на клиенте.
Попробовал вернуть массив файлов, но ругается

Ошибка отображения типов:
Отсутствует отображение для типа 'Файл'

Вроде как файл доступен и на клиенте.
Делаю так
МассивФайлов = Новый Массив;
ТекстовыйФайлЗапись = Новый ЗаписьТекста("c:\Temp\обмен\ОстаткиИЦены" + (Цел(сч/300)+1) + ".csv", КодировкаТекста.UTF8);
ТекстовыйФайлЗапись.ЗаписатьСтроку(ТекстЦСВ);
ТекстовыйФайлЗапись.Закрыть();
МассивФайлов.Добавить(НайтиФайлы("c:\Temp\обмен\ОстаткиИЦены" + (Цел(сч/300)+1) + ".csv")[0]);
Возврат МассивФайлов;
 
 
   John83
 
1 - 29.10.19 - 09:55
Ошибка отображения типов:
Отсутствует отображение для типа 'Файл'
{ВнешняяОбработка.ВыгрузитьОстаткиИЦены.Форма.Форма.Форма(147)}:    МассивФайлов = ВыгрузитьНаСервере();

по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'Value':
    форма: Элемент
    имя: {http://v8.1c.ru/8.1/data/core}Value
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'Файл'
   ДенисЧ
 
2 - 29.10.19 - 09:56
Странно, да? )))
В ХЗ их помещай и отдавай это Хз
   John83
 
3 - 29.10.19 - 09:58
(2) очень странно :)
массив ведь тоже доступен и там и там
спасибо, попробую
PS опыта работы с тонким клиентом очень мало
   ДенисЧ
 
4 - 29.10.19 - 10:00
(3) Массив-то доступен. Но оно ругается на "Отсутствует отображение для типа 'Файл'". Про массив ни слова...

"опыта работы с тонким клиентом очень мало" А меня тут гнобят за то, что я не переношу УФ )))
   John83
 
5 - 29.10.19 - 10:06
(4) а что в ХЗ помещать?
массив не дает, типа не сериализуется
   unregistered
 
6 - 29.10.19 - 10:08
(0)(5) см. в синтакс-помощнике НачатьПомещениеФайлов и НачатьПолучениеФайлов.
   ДенисЧ
 
7 - 29.10.19 - 10:17
(5) У тебя там же текст. Вот его и помещай.
   ДенисЧ
 
8 - 29.10.19 - 10:17
Или (6)
   Cyberhawk
 
9 - 29.10.19 - 10:28
(5) Массив из ОписаниеПередаваемогоФайла
   Юрий Лазаренко
 
10 - 29.10.19 - 10:29
(0) Правильно ругается, у файлов на сервере есть путь, который на клиенте чаще всего недоступен.
(6) Оно же только на клиенте работает ЕМНИП, а ТС надо с сервера передать.
(0) А зачем именно файл передавать? Ты же судя по коду в (0) просто пишешь массив текстов в файлы и потом сразу передаешь на клиент. Сделай из этих нескольких текстов JSON или XML, передай на клиента как строку. Ну или читай каждый файл как двоичные данные и передавай на клиента массив двоичных данных.
   Cyberhawk
 
11 - 29.10.19 - 10:31
(10) "зачем именно файл передавать?"// Чтобы не упереться в максимальный размер порции, настроенный на веб-сервере.

"Оно же только на клиенте работает ЕМНИП"// НачатьПолучениеФайлов, Карл
   Юрий Лазаренко
 
12 - 29.10.19 - 10:34
(11) "Чтобы не упереться в максимальный размер порции," Какая ему разница, будет это массив файлов, помещенных в ХЗ (которое суть строка) или массив ДД, или JSON?

"НачатьПолучениеФайлов, Карл" - ему сначала на сервере надо сделать НачатьПомещениеФайлов, а оно
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).
   Cyberhawk
 
13 - 29.10.19 - 10:46
(12) Тупишь
   Юрий Лазаренко
 
14 - 29.10.19 - 10:47
(13) Аргументируй
   palsergeich
 
15 - 29.10.19 - 10:51
Самый простой вариант - упаковать на сервере средствами платформы в ЗИП и вернуть как результат функции на клиент и там средствами платформы распаковать.
Вариант 2 делаешь на сервере структуру ключ - как тебе удобно, значение - двоичные данные. Помешаешь ее во временное хранилище по адресу формы и на клиенте получаешь из вре енного хранилища

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.