おそらく、プラットフォーム1C:Enterprise 8 ( 1C:Enterprise 8 )で、会計士向けのアプリケーションに加えて、
1C:Enterprise 8プラットフォームはサブジェクト指向ですが、 COM 、 OLE 、 XML 、 HTML 、 SOAP、およびその他のいくつかのテクノロジーが存在するため、ビジネスオートメーションに直接関係しないタスクにも使用できます。 個人的には、アプリケーションの開発、デバッグ、および展開が非常に高速であることに惹かれています。 プロトタイピング用のプラットフォームを選択するとき、これらの特性は私にとって重要です。
簡単に、Webサービスを実装し、そのデータベースを開発し、Webサーバーで公開できる1C:Enterprise 8プラットフォームでの速度を簡単な例で示します。 上記の例は、わずかに変更された形式で、大規模で実際のプロジェクトで使用されており、そのプロトタイプは1Cで実装することが決定されました。 このプロジェクトはまだ開発中ですが、私はこのプラットフォームで最終的な実装を行う傾向が強くなっています。
例の問題文
たとえば、リモートファイルストレージを提供する小さなWebサービスを開発します。 Webサービスの機能のうち、ファイルをサーバーに配置して受信するだけです。 Webサービスにアクセスするには、HTTP認証を使用します。
特にキリル文字を嫌う人のために、すべてのコード(およびプラットフォームの名前)は英語で表示されます。
それでは始めましょう。
データベース開発
1Cプラットフォームで開発するための新しいアプリケーションを追加したいと考えています。 一般に、( 1 )を追加する場合、その名前と場所を示す必要があります。 アプリケーションを直接開発するには、 Designerモードに切り替える必要があります( 2 )。
データベースにファイルボルトを作成するには、数回クリックするだけです。 これを行うには、 FileStorageカタログ(ディレクトリ)をアプリケーションに追加します 。
Value Storageのタイプを持つValueStorageの単一の属性を定義します。
これで、ファイルを保存するためのデータベース構造が実装されました。 ファイル自体のバイナリデータのみを保存します。この例の名前を保存する必要はありません。 それでも必要な場合は、これも非常に簡単に解決されます-ファイル名を保存するためのもう1つの属性を追加します。
Webサービスの実装
それでは、Webサービス自体の開発を始めましょう。
新しいWebサービスをアプリケーションに追加します。 FileStorageServiceという名前を付けます。
必ず名前空間を定義してください。
さらに、2つのメソッドPutFile ( ファイルタイプbase64binary)の戻り値文字列タイプとGetFile ( Idタイプの文字列)戻り値タイプbase64binaryを追加します。 Webサービスモジュールでは、それらのコードを数行書きます。
Function PutFile(File)
If File.Size() = 0 Then
Raise "INVALID_BINARY_DATA";
EndIf;
// .
NewFile = Catalogs.FileStorage.CreateItem();
NewFile.ValueStorage = New ValueStorage(File);
NewFile.Write();
Return NewFile.Code;
EndFunction
Function GetFile(Id)
// .
File = Catalogs.FileStorage.FindByCode(Number(Id));
If NOT ValueIsFilled(File) Then
Raise "INVALID_FILE_CODE";
EndIf;
Return File.ValueStorage.Get();
EndFunction
ファイルを受信してサーバーに配置するために必要なすべての機能が実装されています。 HTTP認証のためにユーザーを取得し、Webサービスを公開するだけです。
Web公開
開発の初期段階では、アプリケーションにユーザーがいないため、名前とパスワードを入力せずにインフォベースにアクセスできます。 これを修正するには、ユーザーをインフォベースに追加する必要があります。 また、これらのユーザーはHTTP認証に使用されます。 最初に行うことは、完全な権限を持つロールを追加することです。
次に、このロールを、作成された最初のユーザー(管理->ユーザー->追加)-管理者に割り当てます。
その後、一般ユーザーをリストに追加します。
ユーザーを追加したら、Webサービスを公開します。 IIS ( Apache )で公開(管理-> Webサーバーでの公開...)が可能です。 プラットフォームは、これに必要なすべてのアクションを自動的に実行します。 [ 公開 ]ボタンをクリックするだけです。
それだけです。すでに公開されているWebサービスを使用できます。
このテキストを読むには、実装にかかった時間よりもはるかに時間がかかるように思えます。 1C:Enterprise 8プラットフォームでのWebサービスのプロトタイピングが迅速かつ簡単であることを学ぶことが、ハブラの皆さん、おもしろいと思いました。 一部の開発環境では、通常の「Hello world」の実装ははるかに困難です。