Для организации обмена данными между филиалами в систему Дела&Финансы добавлен клиент сервиса файлового обмена из 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.