-- Шаблон создан мастером бланков
-- 05.03.2012 17:28:23
--
БланкСШаблоном "Копирование графической электронной копии";

fNEF:L;
var Ист :S;
var Цель:S;

Func Ист_OnVerify(FieldName: String; Iter: Integer; Value: String): Logical;
 if not ExistsFolder(Value):
    Message("Папка "+Value+" не существует",mtError);
    ^False;
 fi;
 Return True;
end;

Func Ист_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var i:i;
 Template.HideEditor(False);
 i=ChooseFolder(Ист,"Выберите папку для хранения изображений");
 Return Cur;
end;

Func Цель_OnLookup(Sect: String; Row: Integer; Col: Integer; Cur: String): String;
var i:i;
 Template.HideEditor(False);
 i=ChooseFolder(Цель,"Выберите папку для хранения изображений");
 Return Cur;
end;

Proc btnВыполнить_OnClick(Sender: String);
var OWA,n,nn,i:i;
var Folder,File,Folder_:S;
var Flag:L;
 if Ист="": Message("Укажите папку источник",mtError); Template.Field="Ист"; Exit; fi;
 if not ExistsFolder(Ист): Message("Папка "+Ист+" не существует",mtError); Exit; fi;
 if Цель="": Message("Укажите целевую папку",mtError); Template.Field="Цель"; Exit; fi;
 if Ист=Цель:Message("Папка не должны быть равны",mtError); Template.Field="Цель"; Exit; fi;
 ClearTrace(True);
 if not ExistsFolder(Цель): CreateFolder(Цель); fi;
 OWA=OpenWorkArea("РПО_ГЭК","ДОК;ЗАПИСЬ;ЛИСТ");
 Try
  nn=Records(OWA);
  ShowProgress(nn,"В процессе....");
  Folder_="";
  for n=1..nn do
   ProgressPos(n);
   Hint(Str(n)+" из "+Str(nn));
   Folder=GetFieldS(OWA,n,"Папка");
   File=GetFieldS(OWA,n,"Файл");
   if ExistFile(Раб.Бюджет2005.Контроль2Слэш(Ист+"\"+Folder+"\"+File)):
      if not Folder=Folder_:
	 CreateFolder(Раб.Бюджет2005.Контроль2Слэш(Цель+"\"+Folder));
	 if not ExistsFolder(Раб.Бюджет2005.Контроль2Слэш(Цель+"\"+Folder)): Message("Целевая папка "+Раб.Бюджет2005.Контроль2Слэш(Цель+"\"+Folder)+" не существует",mtError); Exit; fi;
	 Folder_=Folder;
      fi;
      if fNEF:
	 Flag=not ExistFile(Раб.Бюджет2005.Контроль2Слэш(Цель+"\"+Folder+"\"+File));
	else
	 Flag=True;
      fi;
      if Flag:
	 CopyFile(Раб.Бюджет2005.Контроль2Слэш(Ист+"\"+Folder+"\"+File),Раб.Бюджет2005.Контроль2Слэш(Цель+"\"+Folder+"\"+File));
	 i=i+1;
      fi;
     else
      Trace("Файл "+Раб.Бюджет2005.Контроль2Слэш(Ист+"\"+Folder+"\"+File)+" не найден");
   fi;
  od;
 Finally
  CloseWorkArea(OWA);
  CloseProgress;
 end;
 Message("Копирование файлов завершено "+Str(i)+" из "+Str(nn));
end;


Конец
