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

Передача файлов с клиента на сервер

Передача файлов с клиента на сервер
Я
   DmitryR
 
27.08.20 - 18:55
На клиенте есть 2 массива адресов изображений. Как передать их в процедуру на сервере? Соответственно на сервере должна быть возможность идентифицировать какое изображение какому массиву принадлежит.
Изначально использовалась следующая конструкция:
        ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьФайлКлиентЗавершение", ЭтаФорма);
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Истина;
    
    НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);

&НаКлиенте
Процедура ДобавитьФайлКлиентЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    
    Если ВыбранныеФайлы <> Неопределено ТОгда
        PrintReportWordНаСервере(ВыбранныеФайлы);
    КонецЕсли;
    
КонецПроцедуры
   Мандалай
 
1 - 27.08.20 - 18:56
Кури временное хранилище и двоичные данные.
   d4rkmesa
 
2 - 27.08.20 - 19:19
(0) В чем отличие этих двух массивов? Обходом массива ВыбранныеФайлы их не идентифицировать?
   Провинциальный 1сник
 
3 - 27.08.20 - 19:43
Можно просто сериализовать каждый файл в строку xml и передать с клиента на сервер. Хотя это не по феншую. Жаль, ЗначениеВСТрокуВнутр на клиенте не работает..
   DmitryR
 
4 - 27.08.20 - 20:05
(2) Просто массивы с путями, должны вставляться в шаблон документа в разные таблицы. прим: mas1 -> tab1; mas2 -> tab2
   Web00001
 
5 - 28.08.20 - 05:21
(0)>>Как передать их в процедуру на сервере?
Приблизительно вот так. Не благодари
&НаКлиенте
Процедура МояПроцедура()
  ПроцедураОбработкиМассивовНаСервере(Массив1, Массив2)
КонецПроцедуры

&НаСервере
Процедура ПроцедураОбработкиМассивовНаСервере(mas1, mas2)
  //делаем то, что надо

КонецПроцедуры


   Web00001
 
6 - 28.08.20 - 05:23
Но тебе же нужно передать не массивы адресов изображений? Тебе надо передать на сервер сами изображения? Я правильно за тебя додумал?
   Chameleon1980
 
7 - 28.08.20 - 07:21
ответ в 1
   DmitryR
 
8 - 28.08.20 - 09:46
Нужна помощь. Или я совсем все не так делаю??
НаКлиенте
    
    АдресаФото = Новый СписокЗначений;
    Для Каждого Стр Из Объект.тФото Цикл
        ПолноеИмяФайла = Стр.Путь;
        ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
        АдресаФото.Добавить("фото",ДД);    
    КонецЦикла;
    Для Каждого Стр Из Объект.тФотоБрак Цикл
        ПолноеИмяФайла = Стр.Путь;
        ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
        АдресаФото.Добавить("брак",ДД);    
    КонецЦикла;
    
    Адрес = ПоместитьВоВременноеХранилище(АдресаФото, ЭтаФорма.УникальныйИдентификатор);
    PrintReportWordНаСервере(Адрес)

НаСервере
        СписокФото = ПолучитьИзВременногоХранилища(Адрес);
    
    Для Каждого Файл Из СписокФото Цикл    
        Если Файл.Значение = "фото" Тогда
                    пр = Файл.Представление;        <-------- Как вот это поместить во временный файл?
   FIXXXL
 
9 - 28.08.20 - 09:50
(8)     Файл = Новый Файл(ПутьКФайлуНаДиске);
    
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлуНаДиске);
    АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
   DmitryR
 
10 - 28.08.20 - 10:07
(9) Мне нужен список файлов, а не один
   Web00001
 
11 - 28.08.20 - 11:32
(10) Какая разница, один тебе нужен файл или 20? 20 раз помести файл в хранилище и 20 полученных адресов(адресов во временном хранилище, а не адресов к файлу на твоем компьютере) положи в массив. Где возникла проблема то?
   DmitryR
 
12 - 28.08.20 - 13:24
(11) Сразу бы так, Спасибо.
Для потомков 
        //Клиент

    мФото = Новый Массив//в параметр на сервер

    мБрак = Новый Массив//в параметр на сервер

    Для Каждого Стр Из Объект.тФото Цикл
        ПолноеИмяФайла = Стр.Путь;           
         ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
        Адрес = ПоместитьВоВременноеХранилище(ДД, ЭтаФорма.УникальныйИдентификатор);
        мФото.Добавить(Адрес);
    КонецЦикла;
    Для Каждого Стр Из Объект.тФотоБрак Цикл
        ПолноеИмяФайла = Стр.Путь;        
         ДД = Новый ДвоичныеДанные(ПолноеИмяФайла);
        Адрес = ПоместитьВоВременноеХранилище(ДД, ЭтаФорма.УникальныйИдентификатор);
        мБрак.Добавить(Адрес);
    КонецЦикла;
    //Сервер

    Для Каждого Адрес Из мФото Цикл
        Фото = ПолучитьИзВременногоХранилища(Адрес);
        ИмяВременногоФайла = ПолучитьИмяВременногоФайла("gpg");
        Фото.Записать(ИмяВременногоФайла);

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