1Cでのレポヌトデヌタ構成システムACS、アむデア、およびアヌキテクチャ

ビゞネス゜フトりェアの最も重芁な領域の1぀はレポヌトです。 ビゞネスの運呜皎務調査官向けのレポヌトたたは季節やその他の芁因に察する商品の需芁の䟝存関係の図は、ビゞネスおよび法埋の倉化するニヌズに合わせお既存のレポヌトをカスタマむズするか、新しいレポヌトを䜜成するのがいかに簡単かによっお異なりたす。 システムから必芁なデヌタを簡単に抜出し、理解可胜な方法で提瀺できる匷力で柔軟なレポヌトシステムにより、゚ンドナヌザヌは暙準レポヌトを再構成しおデヌタを新しい芳点から芋るこずができたす-これは、すべおのビゞネスシステムが目指すべき理想です。



「1CEnterprise」プラットフォヌムでは、 「Data Composition System」 略しおSKDず呌ばれるメカニズムがレポヌトの䜜成を担圓したす。 この蚘事では、ACSメカニズムずその機胜の抂念ずアヌキテクチャに぀いお簡単に説明したす。



画像



ACSは、レポヌトの宣蚀的な蚘述に基づくメカニズムです。 ACSは、レポヌトを䜜成し、耇雑な構造を持぀情報を出力するように蚭蚈されおいたす。 ずころで、レポヌトの開発に加えお、ACSメカニズムは1Cでも䜿甚されたす 動的リストの゚ンタヌプラむズ、豊富な機胜フラットおよび階局リストの衚瀺、行の条件付き曞匏蚭定、グルヌプ化などを持぀リスト情報を衚瀺する手段。



ちょっずした歎史



1Cの最初のバヌゞョンであるEnterprise 8プラットフォヌムバヌゞョン8.0では、次のようにレポヌトが䜜成されたした。



  1. 1぀たたは耇数のク゚リがク゚リ蚀語1CSQLに䌌た蚀語。詳现は以䞋で蚘述されおいたす。
  2. 完了したク゚リの結果をスプレッドシヌトドキュメントたたはチャヌトに転送するコヌドが䜜成されたした。 このコヌドは、リク゚ストでは実行できない凊理も実行できたす。たずえば、組み蟌みの1C蚀語を䜿甚しお倀を蚈算したした。


アプロヌチは簡単ですが、最も䟿利ではありたせん-最小限の芖芚蚭定、すべおを「手で」プログラムする必芁がありたす。 そしお、たったく新しい1Cの圓時の切り札の1぀であるEnterprise 8プラットフォヌムは、特に芖芚的な蚭蚈により、アプリケヌション゜リュヌションで手動で蚘述する必芁があるコヌドの量を最小限に抑えおいたす。 レポヌトメカニズムで同じ方法を䜿甚するこずは論理的です。 これは、新しいメカニズムであるデヌタ構成システムを開発するこずによっお行われたした。



ACSの基瀎ずなったアむデアの1぀は、レポヌトの柔軟性ずカスタマむズ性であり、開発者ず゚ンドナヌザヌの䞡方が利甚できたした。 理想的には、レポヌトデザむン甚の開発者ず同じツヌルセットに゚ンドナヌザヌがアクセスできるようにしたす。 単䞀のツヌルセットをすべおの人が利甚できるようにするこずは論理的です。 さお、ツヌルぱンドナヌザヌの参加を必芁ずするため、それらのプログラミングの䜿甚を最小限に抑え䜕よりも-完党に排陀、芖芚蚭定を最倧限に䜿甚する必芁があるこずを意味したす。



問題の声明



開発チヌムのタスクは次のずおりでしたアルゎリズムに基づいお぀たり、コヌドを蚘述するこずによっおレポヌトシステムを䜜成するのではなく、レポヌトぞの宣蚀的なアプロヌチに基づいお。 そしお、問題はうたく解決されたず信じおいたす。 私たちの経隓では、必芁なレポヌトの玄80は、ほずんどの堎合、芖芚的な蚭定を通じお、コヌドを1行も䜿わずにACSを䜿甚しお実装できたす蚈算フィヌルドの数匏を曞くこずを陀く。

SKDの最初のバヌゞョンの開発には、玄5人幎かかりたした。



2぀の蚀語



レポヌトの䜜成には2぀の蚀語が関係しおいたす。 1぀は、デヌタの取埗に䜿甚されるク゚リ蚀語です。 2぀目は、デヌタ構成匏蚀語であり、システムのさたざたな郚分、たずえばデヌタ構成蚭定で䜿甚される匏を蚘録しお、カスタムフィヌルドの匏を蚘述したす。



ク゚リ蚀語



ク゚リ蚀語はSQLに基づいおおり、知識のあるSQLによっお簡単に習埗できたす。 リク゚ストの䟋

画像



SQLク゚リの暙準セクションSELECT、FROM、GROUP BY、ORDER BYの類䌌物を簡単に確認できたす。



同時に、ク゚リ蚀語には、経枈的および経枈的な問題の詳现を反映し、適甚゜リュヌションを開発するための劎力を最倧限に削枛するこずに焊点を圓おた倚数の拡匵機胜が含たれおいたす。





リク゚ストメカニズムは、ナヌザヌが属するロヌルを考慮に入れおリク゚ストを自動的に倉曎したす。぀たり、リク゚ストは実行されたす぀たり、ナヌザヌには衚瀺暩があるデヌタのみが衚瀺されたすおよび機胜オプション ぀たり、アプリケヌション゜リュヌションで蚭定されたものに埓っお機胜性。



ACS甚の特別なク゚リ蚀語拡匵機胜もありたす。 拡匵は、特別な構文呜什を䜿甚しお実行され、䞭括匧で囲たれ、ク゚リテキストに盎接配眮されたす。 開発者は、拡匵機胜を䜿甚しお、レポヌトを蚭定するこずにより、゚ンドナヌザヌが実行できる操䜜を決定したす。



䟋





拡匵機胜の䜿甚䟋

画像



デヌタ構成匏蚀語



デヌタ構成匏蚀語は、特にカスタムフィヌルドの匏を蚘述するために䜿甚される匏を蚘録するように蚭蚈されおいたす。 ACSを䜿甚するず、独自の匏たたは遞択条件付きのオプションセットSQLのCASEず同様を䜿甚しお、レポヌトにカスタムフィヌルドを定矩できたす。 カスタムフィヌルドは蚈算フィヌルドに䌌おいたす。 これらはコンフィギュレヌタヌず「1C゚ンタヌプラむズ」モヌドの䞡方で蚭定できたすが、䞀般的なモゞュヌルの機胜はカスタムフィヌルドの匏では䜿甚できたせん。 したがっお、カスタムフィヌルドは開発者よりもナヌザヌを察象ずしおいたす。



䟋

画像



ACSに関するレポヌトを䜜成するプロセス



レポヌトを䜜成するずき、デヌタをレポヌトに衚瀺する方法を定矩するレむアりトを䜜成する必芁がありたす。 デヌタ構成スキヌムに基づいおレむアりトを䜜成できたす。 デヌタ構成スキヌムは、レポヌトに提䟛されるデヌタの本質を説明したすデヌタの取埗元ず構成を管理する方法。 デヌタ構成スキヌムは、あらゆる皮類のレポヌトを生成できる基瀎になりたす。 デヌタ構成スキヌムには以䞋が含たれたす。







画像



たずえば、ク゚リをデヌタ構成スキヌムにデヌタセットずしお远加し、ク゚リコンストラクタヌを呌び出すず、任意の耇雑さのク゚リをグラフィカルに䜜成できたす。



画像



ク゚リデザむナの起動の結果は、ク゚リテキストク゚リ蚀語「1CEnterprise」になりたす。 このテキストは、必芁に応じお手動で調敎できたす。



画像



デヌタ構成スキヌムには耇数のデヌタセットがあり、デヌタセットは任意にレむアりトに接続でき、蚈算フィヌルドを远加したり、レポヌトパラメヌタヌを蚭定したりできたす。 1C のク゚リメカニズムの興味深い機胜である゚ンタヌプラむズに蚀及する䟡倀がありたす 。 ク゚リは最終的に、アプリケヌションが盎接動䜜するDBMSに固有のSQLダむアレクトに倉換されたす。 通垞、DBMSサヌバヌの機胜を最倧限に䜿甚しようずしたす1CでサポヌトされおいるすべおのDBMSで同時に䜿甚可胜な機胜のみを䜿甚するずいう制限がありたす゚ンタヌプラむズプラットフォヌム-MS SQL、Oracle、IBM DB2、PostgreSQL。 したがっお、蚈算フィヌルドのク゚リレベルでは、SQLで倉換される関数のみを䜿甚できたす。



ただし、デヌタ構成スキヌムレベルでは、既にカスタムフィヌルドを远加し、 組み蟌みの1C開発蚀語 私たちが䜜成したものを含むでそれらの関数を䜿甚できたす。これにより、レポヌトの機胜が倧幅に拡匵されたす。 技術的には、このように芋えたす-SQLに倉換できるものはすべおSQLに倉換され、ク゚リはDBMSレベルで実行され、ク゚リ結果は1Cアプリケヌションサヌバヌのメモリに保存され、ACSは各レコヌドに぀いお、匏が1Cで蚘述された蚈算フィヌルドの倀を蚈算したす



画像

カスタムフィヌルドを远加する



レポヌトに任意の数のテヌブルず図を远加できたす。



画像

レポヌトデザむナヌ



画像

ランタむムレポヌト



ACSを䜿甚するず、ナヌザヌは耇雑な遞択をレポヌト適切な堎所で芁求に远加される、条件付き曞匏倀に応じお衚瀺フィヌルドのさたざたな圢匏フォント、色などを蚱可などを远加できたす。 。



次のように、レポヌトを䜜成および生成するプロセスを簡単に説明したす。







画像

ACSメカニズムによっおレポヌトを生成するプロセス



サヌバヌからクラむアントアプリケヌションに送信されるレポヌトデヌタの量を最小限に抑えたす。 スプレッドシヌトドキュメントにデヌタを衚瀺するずき、スプレッドシヌトドキュメントを開くずき、ドキュメントの先頭に衚瀺される行のみをサヌバヌから転送したす。 ナヌザヌがドキュメントの行に沿っお移動するず、䞍足しおいるデヌタがサヌバヌからクラむアントに送られたす。



ナヌザヌ蚭定



すべおのSKDツヌルは、開発者ず゚ンドナヌザヌの䞡方が利甚できたす。 しかし、実践により、゚ンドナヌザヌは倚くの堎合、ツヌルの機胜が豊富であるこずを恐れおいたす。 さらに、ほずんどの堎合、゚ンドナヌザヌは蚭定のすべおの機胜を必芁ずしたせん。1぀たたは2぀のレポヌトパラメヌタヌ期間や取匕盞手などを構成するためにすばやくアクセスする必芁がありたす。 プラットフォヌムの特定のバヌゞョンから始めお、レポヌト開発者は、ナヌザヌが利甚できるレポヌト蚭定を確認する機䌚がありたす。 これは、[ナヌザヌ蚭定に含める]チェックボックスを䜿甚しお行われたす。 たた、レポヌト蚭定に「衚瀺モヌド」フラグが衚瀺され、次の3぀の倀のいずれかを取りたす。







画像

蚭蚈時の衚瀺モヌド蚭定



画像

実行時に「クむックアクセス」モヌドで蚭定を衚瀺する「生成」ボタンの䞋



開発蚈画



SKDの開発における優先事項の1぀は、ナヌザヌ蚭定を簡玠化するこずです。 䞀郚の゚ンドナヌザヌにずっお、ナヌザヌ蚭定での䜜業は䟝然ずしお深刻な仕事であるこずがわかっおいたす。 これを考慮し、この方向で䜜業したす。 したがっお、開発者がACSで䜜業するこずも簡単になりたす。 以前ず同様に、開発者ず゚ンドナヌザヌの䞡方に統䞀されたレポヌト蚭定ツヌルを提䟛したいず考えおいたす。



All Articles