Имя: Пароль:
1C
1С v8
Перемещения файла в каталог
0 Luffy
 
25.02.16
06:54
Подскажите, как можно этот файл: 3811038226_40703810718350000185__3811038226_40703810718350000185_001.y01, из любого места, по нажатию на кнопку, программно переместить в КаталогВременныхФайлов()?
1 Рэйв
 
25.02.16
07:00
Можно. Но нужно знать полный путь к нему
2 Luffy
 
25.02.16
07:01
(1) А можно его получить без ДиалогВыбораФайла?
3 Провинциальный 1сник
 
25.02.16
07:03
Понятие "из любого места" требует уточнения. Имеется ли в виду диски локального компьютера или же сетевой ресурс? С локальными дисками можно устроить рекурсивный перебор каталогов прямо из 1с, но это достаточно долгий процесс.
4 Рэйв
 
25.02.16
07:04
(2)Можно просто указать строкой
например
Командасистемы("copy <полное имя файла> "+КаталогвременныхФайлов());
5 Рэйв
 
25.02.16
07:05
ну и если переместить, а не скопировать то потом
КомандаСистемы("del /Q <полное имя файла>")
6 Luffy
 
25.02.16
07:06
(3) Да из локалки, рабочий стол, диски С,D и т.д
7 Luffy
 
25.02.16
07:07
(5) Интересно сейчас попробую, отпишусь
8 forforumandspam
 
25.02.16
07:11
(4) А чем стандартная команда не устраивает? КомандаСистемы будет моргать черным экраном и возвращать фокус куда попало.

Глобальный контекст.УдалитьФайлы (Global context.DeleteFiles)
Глобальный контекст (Global context)
УдалитьФайлы (DeleteFiles)
Синтаксис:

УдалитьФайлы(<Путь>, <Маска>)
Параметры:

<Путь> (обязательный)

Тип: Строка.
Путь к удаляемым файлам.
<Маска> (необязательный)

Тип: Строка.
Маска для выбора удаляемых файлов. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.
Описание:

Удаляет указанные файлы.
9 forforumandspam
 
25.02.16
07:12
Ну и

Глобальный контекст.КопироватьФайл (Global context.FileCopy)
Глобальный контекст (Global context)
КопироватьФайл (FileCopy)
Синтаксис:

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
10 Рэйв
 
25.02.16
07:12
(8)лень искать было:-)
11 Luffy
 
25.02.16
09:07
Блин, а что делать в этом случае?

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (КопироватьФайл)
    КопироватьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);
по причине:
Ошибка копирования файлов
по причине:
Ошибка копирования файлов из 'D:\Base-1C\Разработка\3811038226_40703810718350000185__3811038226_40703810718350000185_001 - копия.y01' в 'D:\Банк' : Ошибка доступа к файлу
12 ДенисЧ
 
25.02.16
09:07
Дать права на каталоги не предлагать?
13 Luffy
 
25.02.16
09:09
(12) где в 1с, или сис.админить?
14 Lexey_
 
25.02.16
09:10
(8), (9) а чем ПереместитьФайл() не устраивает?)
15 Luffy
 
25.02.16
09:12
(14) Щас испытаю)
16 Luffy
 
25.02.16
09:19
(14) Пипец

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (ПереместитьФайл)
    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);
по причине:
Ошибка переименования файлов
по причине:
Неправильный путь к файлу 'D:\Банк'
17 Luffy
 
25.02.16
09:21
Вот код

    ДиалогФыбораФайла                                =    Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
                                                          
    ДиалогФыбораФайла.Фильтр                        =    "Файлы (*.y01)|*.y01";
    ДиалогФыбораФайла.Заголовок                        =    "Выберите файл";
    ДиалогФыбораФайла.ПредварительныйПросмотр        =    Ложь;
    ДиалогФыбораФайла.Расширение                    =    "y01";
    ДиалогФыбораФайла.ИндексФильтра                    =    0;
    ДиалогФыбораФайла.ПолноеИмяФайла                =    ЗагрузкаФайла;
    ДиалогФыбораФайла.ПроверятьСуществованиеФайла    =    ПроверятьСуществование;
    
    Если ДиалогФыбораФайла.Выбрать() Тогда
        ЗагрузкаФайла = ДиалогФыбораФайла.ПолноеИмяФайла;
    КонецЕсли;
    //КаталогВременныхФайлов = КаталогВременныхФайлов() + "UploadFF";
    КаталогВременныхФайлов = "D:\Банк\";
    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);
    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);
    ЗагрузкаФайла = ИмяФайла;
18 Lexey_
 
25.02.16
09:23
(17) читай до дыр в СП про ПереместитьФайл
19 Luffy
 
25.02.16
09:29
(18) Все разобрался, в конце пути нужно было ИмяФайла

КаталогВременныхФайлов = "D:\Банк\"+УдаленияИзИмениФайла(ЗагрузкаФайла);
    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);
    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);
    ЗагрузкаФайла = ИмяФайла;

А у меня, как раз функция чистит путь к файлу до имени файла

Функция УдаленияИзИмениФайла(Знач Стр, РазделительИмениФайла="\")
    
    Если РазделительИмениФайла = "\" Тогда
        Стр = СокрЛП(Стр);
        Пока 1 = 1 Цикл
            Поз = Найти(Стр, РазделительИмениФайла);
            Если Поз = 0 Тогда
                Возврат Стр;
            КонецЕсли;
            //Стр = (Лев(Стр, Поз - 1));
            ДлинаРазделителя = СтрДлина(РазделительИмениФайла);
            Стр = Сред(Стр, Поз + ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции

Всем большое спасибо))
20 DDwe
 
25.02.16
09:30
(18) Не умеют они не думать ни читать.
21 DDwe
 
25.02.16
09:31
И эти люди неспособные к обучению, занимаются автоматизацией... капец.