Для организации обмена данными между филиалами в систему Дела&Финансы добавлен клиент сервиса файлового обмена из 8 версии.
Параметры подключения описываются в ОПС.
Клиент файлового обмена объявлен как компонент для FastScript.
Пример функции для отправки файла
f := TdfFileExchanger.Create(nil);
try
if f.Connect then
begin
if not (f.PutFile(IdFilial,FileName)) then
begin
ShowMessage('False');
end
else
ShowMessage('True');
f.Disconnect;
end;
finally
f.Free;
end;
Пример скрипта для отправки и получения файлов
const
InDir = 'c:\DelFin\Import\';
OutDir = 'c:\DelFin\Export\';
SendDir = 'c:\DelFin\Send\';
ParentFilialDir = 'c:\DelFin\ParentFilial\';
procedure WriteExchangeLog(AFileName, AMessage: string);
begin
try
WriteLnSave(AFileName, FormatDateTime('dd.mm.yyyy hh:nn:ss', Now) + ' ' + '************');
WriteLnSave(AFileName, AMessage);
WriteLnSave(AFileName, '********************************');
except
end;
end;
function SendFileToFilial(IdFilial: Integer; FileName: string; TransferMethod: integer; E_Mail: string): Boolean;
var
f: TdfFileExchanger;
slFiles: TStringList;
fn: string;
sError: string;
TransferMethodFilial: integer;
begin
result := false;
TransferMethodFilial := SqlSelect('select TransferMethod from FilialList where id = ' + IntToStr(frVariables['IdOwnerBase']));
if (TransferMethod = 0) and (TransferMethodFilial = 0) then
begin
f := TdfFileExchanger.Create(nil);
try
if f.Connect then
begin
if (f.PutFile(IdFilial, FileName)) then
begin
Result := true;
end;
f.Disconnect;
end;
finally
f.Free;
end;
end;
end;
procedure ReciveFilesToFilial(IdFilial: Integer);
var
f: TdfFileExchanger;
slFiles: TStringList;
i: Integer;
IsFileToParentFilial: boolean;
begin
f := TdfFileExchanger.Create(nil);
try
if (not DirectoryExists(InDir)) then
ForceDirectories(InDir);
try
if f.Connect then
begin
f.GetFiles(IdFilial, Indir, 'Admin*.7z');
f.GetFiles(IdFilial, Indir, 'Doc*.7z');
f.Disconnect;
end;
except
ShowMessage(csGetLastErrorText);
end;
finally
f.Free;
end;
end;
begin
end.

