Имя: Пароль:
1C
1С v8
Копирование файлов из одной папки в другую, средствами 1С
0 Kuklachel
 
03.02.14
09:34
Доброе утро. Такая задача, есть справочник со сканированными версиями документов которые хранятся на сервере, нужно галками отметить нужные копии и по кнопке открыть диалог сохранения файлов и выбрать место для копирования выбранных документов. Пробовал это реализовать через ДиалогВыбораФайла с режимом "Сохранить", но там возможно сохранять только один файл. Сейчас делаю так:

Массив = Новый Массив;
Для Каждого Строка Из Объект.СканированныеКопииДокументов Цикл
Если Строка.ВыборДокументаДляСохранения = Истина Тогда
Передаваемыйфайл = Новый ОписаниеПередаваемогоФайла(Строка.НаименованиеДокумента, Строка.ПутьКФайлу);
Массив.Добавить(Передаваемыйфайл);
КонецЕсли;
КонецЦикла;
ПолучитьФайлы(Массив);

Выдает ошибку:

{Справочник.ОбъектыНедвижимости.Форма.ФормаЭлемента.Форма(1260)}: Ошибка при вызове метода контекста (ПолучитьФайлы)
    ПолучитьФайлы(Массив);
по причине:
Неправильный путь к файлу 'e1c://filev/C/Users/User123/Documents/InfoBase6/fs-1c40/Документы ЕРН/Медиа/ООО Ромашка/ООО Ромашка/Недвижимость/1/Документы/Выписка из ЕГРП.pdf'

Подскажите пожалуйста, почему подставляется путь к локальной базе?
1 ДенисЧ
 
03.02.14
09:37
Используй режим ВыборКаталога. Получишь каталог назначения. Туда и копируй.

А локальный подставляется, потому что ДВФ выполняется на клиенте.
2 Maxus43
 
03.02.14
09:39
Новый ОписаниеПередаваемогоФайла

сам придумал так писать? по какому принципу выбрал? СП читал?
3 Maxus43
 
03.02.14
09:40
+
Описание:
Задает расположение передаваемого файла на сервере и на клиенте.

Оно тебе надо? ты понимаешь что оно делает?
4 Maxus43
 
03.02.14
09:41
КопироватьФайл (FileCopy)
Синтаксис:

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)

юзай, когда выберешь каталог
5 Kuklachel
 
03.02.14
09:43
(2) Нашел такой метод на каком-то из форумов. (3) Мне казалось что, понял.
Спасибо, сейчас попробую.
6 Maxus43
 
03.02.14
09:45
(5) все остальные форумы - фу.
Миста рулит
7 Рэйв
 
03.02.14
09:49
КомандаСистемы("copy \ПутьОткуда\*.* \ПутьКуда")
8 hhhh
 
03.02.14
10:38
(7) завершение этой команды как отслеживать?
9 Стальная Крыса
 
03.02.14
10:56
(8) модально оно выполняется
10 Kalambur
 
03.02.14
11:00
(8) КомандаСистемы("copy \ПутьОткуда\*.* \ПутьКуда && >>\\ПутьКуда\якончил.txt")
:)
11 Kuklachel
 
03.02.14
11:11
Все получилось, спасибо большое!

    Перем ПутьККаталогу;
        
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытия.Каталог = ПутьККаталогу;
    ДиалогОткрытия.МножественныйВыбор = Ложь;
    ДиалогОткрытия.Заголовок = "Выберите каталог";
    
    Если ДиалогОткрытия.Выбрать() Тогда
        ПутьККаталогу = ДиалогОткрытия.Каталог;
    КонецЕсли;
    
    Для Каждого Строка Из Объект.СканированныеКопииДокументов Цикл
        Если Строка.ВыборДокументаДляСохранения = Истина Тогда
            ИмяФайлаИсточника = Строка.ПутьКФайлу;
            ВыбФайл = Новый Файл(ИмяФайлаИсточника);
            Если ВыбФайл.Существует() Тогда
                Имя = ВыбФайл.Имя;
            Иначе
                Предупреждение("Файл не найден!");
            КонецЕсли;
            ИмяФайлаПриемника = ПутьККаталогу + "\" + Имя;
            КопироватьФайл(ИмяФайлаИсточника,ИмяФайлаПриемника);
        КонецЕсли;
    КонецЦикла;