Имя: Пароль:
1C
1С v8
8.3 Как передать файл
0 exec11
 
29.02.16
10:45
Подскажите плз, как передать файл на сервер из клиента, без использования модального окна?

&НаКлиенте
Процедура ФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл формата .csv";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Ложь;
    Диалог.Фильтр = "Лог файл (*.csv)|*.csv|";
    
    Гуарда = Новый ОписаниеОповещения("ГуардаМостро", ЭтотОбъект);
    
    Диалог.Показать(Гуарда);
    
КонецПроцедуры
    
    
&НаКлиенте
Процедура ГуардаМостро(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    
    Если ВыбранныеФайлы <> Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда
        Сообщить("Файл выбран!");
        Сообщить(ВыбранныеФайлы[0]);  // полный путь к файлу
        
        ПутьКФайлу = ВыбранныеФайлы[0];
        
        МассивПутиКфайлу = РазборСтроки(ПутьКФайлу, "\");
        //Запись.ИмяФайла = РазборСтроки(ПутьКФайлу, "\");
        //Элементы.ОткрытьФайл.Заголовок = Запись.ИмяФайла;
        Элементы.Файл.Заголовок = МассивПутиКфайлу;
        Адрес = ВыбранныеФайлы.Хранение;
                  
                
        Сообщить(МассивПутиКфайлу[МассивПутиКфайлу.Количество()-1]);  // здесь имя файла
                                                                      
        
    Иначе
        Сообщить("Файл не выбран!");
    КонецЕсли;
    
КонецПроцедуры    
    
Функция РазборСтроки(Строка,Символ)
     РазбитаяСтрока = СтрЗаменить(Строка,Символ,Символы.ПС);
     Массив = Новый Массив();
     Для А = 1 По СтрЧислоСтрок(РазбитаяСтрока) Цикл
         Массив.Добавить(СтрПолучитьСтроку(РазбитаяСтрока,А));
     КонецЦикла;
     Возврат Массив;
КонецФункции
1 KulakoffAlex
 
29.02.16
11:09
посмотри вот это,
ПоместитьВоВременноеХранилище(),
при передачи с сервера на клиент файла работает. наоборот наверно тоже должно работать.
2 Адинэснег
 
29.02.16
11:15
(1) ему же без модальности
НачатьПомещениеФайла()
3 exec11
 
01.03.16
12:45
Оп = Новый ОписаниеОповещения("ВыполнитьПосле", ЭтотОбъект);
    НачатьПомещениеФайла(Оп,АдресХранилища, Объект.Файл,Ложь,УникальныйИдентификатор);

получаю ошибку:
Ошибка сохранения файла. Ошибка совместного доступа к файлу 'C:\Users\user\Desktop\file.csv'. 32(0x00000020): Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

хм, а почему?
4 mexanik_96
 
01.03.16
12:47
в типовых (БСП) посмотри как файлы грузятся. там норм написано(понятно)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой