Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Создать новый каталог
Дальше: Переместить файл

Копировать файл

Предположим, нам нужно скопировать файл, находящийся в определенном каталоге, в тот же каталог, но с новым именем, которое задано в поле ввода демонстрационной обработки (реквизит ИмяНовогоФайла).

Для решения этой задачи добавим команду КопироватьФайлСНовымИменем. Обработчик команды заполним следующим образом (листинг 6.11).

Листинг 6.11. Обработчик команды «КопироватьФайлСНовымИменем»

&НаКлиенте

Процедура КопироватьФайлСНовымИменем(Команда)

 

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

Диалог.Заголовок = "Выберите файл";

Диалог.Показать(Новый ОписаниеОповещения("КопироватьФайлЗавершение", ЭтотОбъект));

 

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

В этом обработчике мы выбираем файл, который нам нужно скопировать. Для этого мы показываем пользователю диалог выбора файла с помощью немодального метода Показать(). В этот метод мы передаем описание оповещения, указывающее на экспортную процедуру КопироватьФайлЗавершение(), которая будет выполнена после того, как пользователь выберет файл для копирования (листинг 6.12).

Листинг 6.12. Процедура «КопироватьФайлЗавершение()»

&НаКлиенте

Процедура КопироватьФайлЗавершение(ВыбранныеФайлы, Параметры) Экспорт

 

Если ВыбранныеФайлы = Неопределено Тогда

Возврат;

КонецЕсли;

 

ИмяФайлаИсточника = ВыбранныеФайлы[0];

ФайлИсточник = Новый Файл(ИмяФайлаИсточника);

ИмяФайлаПриемника = ФайлИсточник.Путь + СокрЛП(ИмяНовогоФайла) + ФайлИсточник.Расширение;

 

НачатьКопированиеФайла(Новый ОписаниеОповещения("КопироватьФайлСНовымИменемЗавершение", ЭтотОбъект),

ИмяФайлаИсточника, ИмяФайлаПриемника);

 

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

В этом обработчике оповещения, в случае если файл выбран, мы получаем полный путь к файлу-источнику как первый элемент массива, содержащийся в параметре ВыбранныеФайлы (для простоты примера будем выбирать только один файл).

Затем создаем на основе пути к файлу-источнику объект Файл. Используя свойства этого объекта, получаем отдельно путь (ФайлИсточник.Путь) и расширение (ФайлИсточник.Расширение) файла-источника. Вставив имя нового файла, мы получаем полный путь к файлу-приемнику. После этого мы вызываем процедуру НачатьКопированиеФайла(), в которую передаем полные пути к файлу-источнику и файлу-приемнику.

Первым параметром в немодальный метод НачатьКопированиеФайла() мы передаем описание оповещения, указывающее на экспортную процедуру КопироватьФайлСНовымИменемЗавершение(), которая будет вызвана по окончании копирования файла (листинг 6.13).

Листинг 6.13. Процедура «КопироватьФайлСНовымИменемЗавершение()»

&НаКлиенте

Процедура КопироватьФайлСНовымИменемЗавершение(СкопированныйФайл, Дополнительно) Экспорт

 

РезультирующийФайл = Новый Файл(СкопированныйФайл);

 

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выбранный файл скопирован в: " + РезультирующийФайл.Имя;

Сообщение.Сообщить();

 

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

В этой процедуре в параметре СкопированныйФайл содержится полный путь к новому файлу. На его основе мы создаем объект Файл. И затем показываем короткое имя нового файла (имя с расширением – РезультирующийФайл.Имя) в сообщении пользователю.

Назад: Создать новый каталог
Дальше: Переместить файл