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

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

Вроде как файл доступен и на клиенте.
Делаю так
МассивФайлов = Новый Массив;
ТекстовыйФайлЗапись = Новый ЗаписьТекста("c:\Temp\обмен\ОстаткиИЦены" + (Цел(сч/300)+1) + ".csv", КодировкаТекста.UTF8);
ТекстовыйФайлЗапись.ЗаписатьСтроку(ТекстЦСВ);
ТекстовыйФайлЗапись.Закрыть();
МассивФайлов.Добавить(НайтиФайлы("c:\Temp\обмен\ОстаткиИЦены" + (Цел(сч/300)+1) + ".csv")[0]);
Возврат МассивФайлов;
1 John83
 
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
Странно, да? )))
В ХЗ их помещай и отдавай это Хз
3 John83
 
29.10.19
09:58
(2) очень странно :)
массив ведь тоже доступен и там и там
спасибо, попробую
PS опыта работы с тонким клиентом очень мало
4 ДенисЧ
 
29.10.19
10:00
(3) Массив-то доступен. Но оно ругается на "Отсутствует отображение для типа 'Файл'". Про массив ни слова...

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

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