すでにこれを複数回行っていると仮定して、分散情報セキュリティの構成については説明しません。 私たちのタスクは、自動交換の「ユーザーコンポーネント」を最小限に抑えることです。 -ユーザーが自動交換のための単一のショートカットを起動することを保証するために、起動後に中央ベースからの情報が周辺に落ち、その逆も同様です。 上記のすべてを整理するには、FTPサーバーと、すべての小売店でのインターネットアクセスが必要です。 分散データベースの次の構成があると仮定します(中央IBからのスクリーンショット)。
この場合、自動交換パラメーターの設定では、モードは自動に設定され、アップロードディレクトリはC:\ DB \ CP 、ダウンロードディレクトリはC:\ DB \ PC (C:\ DBは中央データベース自体へのパス)、およびアップロードの名前とこれらの周辺情報セキュリティのダウンロードには、次の意味があります。
周辺情報セキュリティ | ダウンロードディレクトリ | ダウンロードディレクトリ | アップロードファイル名 | ダウンロードファイル名 |
---|---|---|---|---|
MG1(ロストフ) | C:\ DB \ CP | C:\ DB \ PC | MG1C.zip | MG1D.zip |
MG2(ノボシビルスク) | C:\ DB \ CP | C:\ DB \ PC | MG2C.zip | MG2D.zip |
MG3(カルーガ) | C:\ DB \ CP | C:\ DB \ PC | MG3C.zip | MG3D.zip |
- ベースを持つフォルダーにAutoExchangeサブフォルダーを作成します。 C:\ DB \ AutoExchangeを作成します。
- NcFTPクライアントのホームページからncftpget.exeおよびncftpput.exeユーティリティをダウンロードし、AutoExchangeフォルダーに配置します。 これは、FTPクライアントのコンソールバージョンです。原則として、OSに組み込まれている標準のftp.exeを使用できますが、特定の問題があるため(場合によっては、アクティブモードでFTPサーバーに接続する方法がない場合、データの送受信は行われません) Kaspersky Anti-Virusのインストール時に多くの問題が発生するなど)、一般に、信頼性の高い中断のないデータ交換を保証するためにサードパーティのユーティリティを使用する方が簡単です。
- AutoExchangeフォルダーに自動交換ルールファイルを作成し、_Exchange.prmという名前を付けます。
[General] Quit = 1 AutoExchange = 1 Output=Exchange.log [AutoExchange] SharedMode = Y ReadFrom=* WriteTo=*
- 次に、同じフォルダーでバッチスクリプトファイル_runobmen.batまたは_runobmen.mdを作成します(キリル文字を正しく表示するには、パスなどでキリル文字を使用する場合、ファイルはCP866でエンコードする必要があります。同じノートブックで、フォントとしてターミナルを選択した場合)、ファイルの内容は次のとおりです。
@echo off rem (c) Decker, 2011-2013, decker@compkaluga.ru set CP_Folder=%~dp0..\CP set PC_Folder=%~dp0..\PC rem set DebugMode=-d stdout set DebugMode= title color 0b setlocal enableextensions :fromftp echo . ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG1D.zip ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG2D.zip ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG3D.zip echo ErrorLevel: %ErrorLevel% echo 1...... start "" /wait /min "C:\Program Files\1Cv77\BIN\1cv7.exe" config /d"%~dp0..\" /N"obmen" /P"obmen" /@"%~dp0_Exchange.prm" :toftp echo . ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG1C.zip ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG2C.zip ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG3C.zip echo ErrorLevel: %ErrorLevel% exit
- この例では、ftp.company.ru FTPサーバー(ログイン-ftp_user、パスワード-ftp_pass)は、ncftpget.exeを使用して、周辺データベースから受信した交換ファイルMG1D.zip、MG2D.zip、MG3D.zipを順次ダウンロードし、%フォルダーに追加します。 PC_Folder%、つまり C:\ DB \ PC(ダウンロードディレクトリ)。 次に、ユーザー名obmenとパスワードobmenを使用して1C:Enterpriseプラットフォームが起動し、自動交換が行われます。 その結果、周辺データベース用に準備されたアップロードファイルが%CP_Folder%フォルダーに表示され、ncftpput.exeを使用して、その後FTPサーバーにアップロードされます。 これで、中央ベース側の交換設定が完了しました。ユーザーがデスクトップに作成された_runobmen.batまたは_runobmen.mdへのショートカットを表示するだけで、ショートカットのプロパティにあるこのスクリプトの作業フォルダーが正確にそれが置かれているフォルダーであることを確認できます。
- _runobmen.batまたは_runobmen.mdファイルを除き、各周辺データベースの自動交換設定は同じです 。 最初の周辺データベースの例として、このファイルを検討してください。
@echo off rem (c) Decker, 2011-2013, decker@compkaluga.ru set CP_Folder=%~dp0..\CP set PC_Folder=%~dp0..\PC rem set DebugMode=-d stdout set DebugMode= title color 0b setlocal enableextensions :fromftp echo . ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %CP_Folder% /MG1C.zip echo ErrorLevel: %ErrorLevel% echo 1...... start "" /wait /min "C:\Program Files\1Cv77\BIN\1cv7.exe" config /d"%~dp0..\" /N"obmen" /P"obmen" /@"%~dp0_Exchange.prm" :toftp echo . ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %PC_Folder%\MG1D.zip echo ErrorLevel: %ErrorLevel% exit
- ここで、最初のステップは、サーバーからMG1C.zip中央データベースアップロードファイルを取得してCPフォルダーに配置し、自動交換を実行して、MG1D.zip周辺データベースからアップロードファイルをPCフォルダーからサーバーに戻すことです。 同様のシナリオが他の2つの周辺データベースで使用されますが、ファイル名のみが異なります。
psこの記事は最初に私のウェブサイトとブログで公開されましたが、今ではそれを使ってHabrに招待することにしました。 誰かがそれを役に立つと思うことを願っています。
ppsデータベースのあるフォルダーへのパスにスペースが含まれている場合(たとえば、フォルダーの1つの名前にスペースが含まれている場合)、nc'ftpgetおよびncftput%CP_Folder%および%PC_Folder%を呼び出すときにbat'nikovが正しく機能するようにするには、引用する必要があります。 フォルダーへのパスが暗示されている場合は、「%CP_Folder%」を引用します。ファイルへのフルパスの場合は、パス全体、つまり 「%CP_Folder%\ MG1C.zip」。