|
Как в 1с83 поместить/скопировать файлы по требуемому пути | ☑ | ||
|---|---|---|---|---|
|
0
Василиск
18.11.19
✎
09:36
|
Казалось бы нет ничего проще!
Ранее использовал код: FSO = Новый COMОбъект("Scripting.FileSystemObject"); FSO.CopyFile(ИмяФайлаИсточник, ИмяФайлаНазначение, -1); FSO = Неопределено; Но в вебе перестал работать. В инете полно примеров с командой ПоместитьФайл //если имя файла выбирает пользователь в стандартном диалоговом окне Windows Результат = ПоместитьФайл(ВнутреннийАдресСервера); //если имя файла указывает программист напрямую //Результат = ПоместитьФайл(ВнутреннийАдресСервера, "D:\Текстовый файл.txt",, Ложь); Но! В режиме такси надо использовать НачатьПомещениеФайла и тут почти нет примеров. А те что есть - написаны с использование интерактивного окна диалога. А мне это не надо - у меня и исходный и конечный пути уже есть. Надо просто СКОПИРОВАТЬ файл. Подскажите - нет ли у кого примера как сделать? |
|||
|
1
ДенисЧ
18.11.19
✎
09:41
|
Глобальный контекст.КопироватьФайл (Global context.FileCopy)
Глобальный контекст (Global context) КопироватьФайл (FileCopy) Синтаксис: КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>) Параметры: <ИмяФайлаИсточника> (обязательный) Тип: Строка. Полное имя файла-источника. <ИмяФайлаПриемника> (обязательный) Тип: Строка. Полное имя файла-приемника. Описание: Копирует файл-источник в файл-приемник. Допускается перезапись файла-приемника. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Примечание: Файл-приемник при создании будет иметь права доступа, аналогичные назначаемым при создании новых файлов (т.е. права доступа к файлу-источнику не копируются). Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'. Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами. На веб-клиенте метод работает только с локальными файлами. Пример: КопироватьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm"); См. также: Глобальный контекст, метод НачатьКопированиеФайла -------------------------------------------------------------------------------- Методическая информация |
|||
|
2
Василиск
18.11.19
✎
09:45
|
спасибо попробую
|
|||
|
3
Василиск
18.11.19
✎
09:46
|
А как проверить на существование файла?
ранее использовал Если FSO.FileExists(ИмяФайлаНазначение) = 1 Тогда Сообщить("Файл с таким именем уже существует"); Возврат Ложь КонецЕсли; |
|||
|
4
FIXXXL
18.11.19
✎
09:49
|
(3) Файл.Существует
|
|||
|
5
ДенисЧ
18.11.19
✎
09:49
|
Файл.Существует (File.Exist)
Файл (File) Существует (Exist) Синтаксис: Существует() Возвращаемое значение: Тип: Булево. Истина - файл существует; Ложь - в противном случае. Описание: Определяет, существует ли файл, соответствующий данному объекту. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Примечание: Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами. Пример: Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт КаталогНаДиске = Новый Файл(ИмяКаталога); Если КаталогНаДиске.Существует() Тогда Возврат Истина; Иначе Ответ = Вопрос("Каталог не существует. Создать?", РежимДиалогаВопрос.ОКОтмена); Если Ответ = КодВозвратаДиалога.ОК Тогда СоздатьКаталог(ИмяКаталога); Возврат Истина; Иначе Возврат Ложь; КонецЕсли; КонецЕсли; КонецФункции См. также: Файл, метод НачатьПроверкуСуществования -------------------------------------------------------------------------------- Методическая информация |
|||
|
6
Василиск
18.11.19
✎
09:54
|
Проверил...
Вроде копирует. Но! Спрашивает пользователя - "Скопировать файл?" А мне этого не надо. Как отключить этот интерактивный вопрос? |
|||
|
7
Михаил Иванович
18.11.19
✎
10:03
|
(6) сам то гуглить и доки читать умеешь?
|
|||
|
8
Василиск
18.11.19
✎
10:08
|
(7)конечно. Вот не нашел как отключить интерактивные сообщения
|
|||
|
9
Михаил Иванович
18.11.19
✎
10:11
|
(8) плохо искал
|
|||
|
10
Василиск
18.11.19
✎
10:13
|
(9)да уже все облазил.
Просто проблема - выдается скрытый путь - который пользователи не должны видить. Может подскажите - куда копать - что бы не спрашивал каждый раз "Скопировать Файл N по пути F" |
|||
|
11
ДенисЧ
18.11.19
✎
10:16
|
(10) Убери вопрос. Этот вопрос задаёт твой код.
|
|||
|
12
Василиск
18.11.19
✎
10:19
|
(11) нет!
Проверил - именно в момент вызова процедуры КопироватьФайл(ИмяФайлаИсточник, ИмяФайлаНазначение); |
|||
|
13
ДенисЧ
18.11.19
✎
10:21
|
(12) Обманываешь.
|
|||
|
14
Василиск
18.11.19
✎
10:24
|
нет!
Более того код в Хроме не отрабатывает ФайлНаДиске = Новый Файл(ИмяФайлаНазначение); Если ФайлНаДиске.Существует() Тогда Пишет "Использование синхронных методов на клиенте запрещено". А в IE все нормально |
|||
|
15
Василиск
18.11.19
✎
10:25
|
Вот код - где я тут оповещаю пользователя?
ФайлНаДиске = Новый Файл(ИмяФайлаНазначение); Если ФайлНаДиске.Существует() Тогда Сообщить("Файл с таким именем уже существует"); // возможно привязан к другим данным Возврат Ложь КонецЕсли; Попытка КопироватьФайл(ИмяФайлаИсточник, ИмяФайлаНазначение); ЗначениеВозврата = ИмяФайла; Исключение Сообщить("Невозможно поместить файл в хранилище" + ОписаниеОшибки()); ЗначениеВозврата = Ложь КонецПопытки; |
|||
|
16
Василиск
18.11.19
✎
10:55
|
Кстати!
КопироватьФайл не работает в Хроме Пишет "Использование синхронных методов на клиенте запрещено". |
|||
|
17
Василий Алибабаевич
18.11.19
✎
11:03
|
(16) Тебе же уже написали
НачатьКопированиеФайла НачатьПроверкуСуществования Обратись к ДенисЧ у него было много СП по клюшкам. Спроси - может и по снеговику завалялся. |
|||
|
18
Василиск
18.11.19
✎
12:56
|
(17)спасибо. разобрался. работает.
НО! все равно спрашивает - переместить файл? |
|||
|
19
Сияющий в темноте
18.11.19
✎
23:19
|
там флажок интерактивно должен быть.
но и расширение для работы с файлами(расширение браузера)должно стоять,иначе шишь вам,а не файлы. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |