Возникла необходимость время от времени копировать файлы с одного ПК на довольно большое количество других ПК. Причем под пользователем, от которого запущена 1С, нет доступа к тем самым ПК.
Для решения вопроса написал вот пару процедурин. Может, кому-нибудь будет полезно.
Процедура ПодключитьДиск(КаталогНаДругомПК) Network = Новый COMОбъект("WScript.Network"); FileSystemObject = Новый COMОбъект("Scripting.FileSystemObject"); Если FileSystemObject.DriveExists("w:") Тогда Network.RemoveNetworkDrive("w:", true, true); КонецЕсли; Network.MapNetworkDrive("w:", КаталогНаДругомПК, false, "Логин", "Пароль"); КонецПроцедуры Процедура ОтключитьДиск() Network = Новый COMОбъект("WScript.Network"); FileSystemObject = Новый COMОбъект("Scripting.FileSystemObject"); Если FileSystemObject.DriveExists("w:") Тогда Network.RemoveNetworkDrive("w:", true, true); КонецЕсли; КонецПроцедуры Процедура КопироватьФайлыСЭтогоПКНаТот(КаталогТут, КаталогНаДругомПК) ПодключитьДиск(КаталогНаДругомПК); СписокФайлов = НайтиФайлы(КаталогТут, "*.epf"); Для Каждого мФайл Из СписокФайлов Цикл КопироватьФайл(мФайл.ПолноеИмя, "w:\" + мФайл.Имя); КонецЦикла; ОтключитьДиск(); КонецПроцедуры
Описание обработки.
На форме реквизиты:
- откуда копировать
- каталог куда копировать
- список ПК где эти каталоги находятся
- кнопка "скопировать файлы"
P.S. Протестировано на 1С:Предприятие 8.3 (8.3.5.1517)