追加の小道具の助けを借りて値のテーブルを配置し、構成を拡張する1C

文書または参照にテーブルを追加する方法をよく聞かれますか?
そして、実際には、構成の更新をさらに複雑にすることなく、このようなタスクを実行する方法は? そして、余分なものがあるようです。 詳細および内線 情報ですが、なぜ彼らは値テーブルのタイプを受け入れることができないのですか?

その結果、2つのオプションが最も頻繁に使用されます。

1.簡単な方法。 テーブルがオブジェクトに直接追加され、プログラム上またはハード(手動)のいずれかがフォームに表示されます。

短所 構成を更新するには、これらの変更が失われないように、変更への準拠と注意の強化が必要です。
長所 開発の最も簡単なオプションである値の表には、クエリなどを介してタンバリンと踊ることなくアクセスできます。

2.通常のオプションですが、構成の改良も行います。
親オブジェクトへのリンクを持つ値と小道具のテーブルを持つオブジェクトが追加されます。この値のテーブルは、たとえば、メインオブジェクトのフォームの設定を展開することによって表示されます。

長所 単純な更新、値のテーブルは、クエリなどからアクセスできます。
短所 作成されたオブジェクトにより多くのさまざまな制限を提供する必要があるため、特定の知識が必要です。 ロール\ sを追加し、ユーザープロファイルを構成する必要がある場合があります。

もちろん、ストレージなどの他のオプションもありますが、記事ではそれについてではありません...

extに値のテーブルを保存する方法に関する記事。 詳細、まあ、または追加。 情報。

6か月以上にわたって、この方法を頭に置いていますが、使用したことはありません。 ここで、ついに、彼の手になりました。 私は誰もこの方法を思いついたと主張していませんが、私は同様の解決策に出くわしませんでした。 このオプションは理想的ではなく、特定のタスクにのみ適合すると事前に言います。

最も重要なマイナスは、無制限の長さの文字列が使用されるため、その中の検索には特定の困難があることです。 最も重要なプラス、構成内のオブジェクトは修正されません。

Document Management 2.1.6.8の構成の例を示します。 追加の小道具を使用しますが、追加の情報を使用できます。 すべてのコードは構成拡張機能で記述されます。

チャレンジ:
すぐに私は、この方法を実証するために、タスクはもっとコミックだと言います。 たとえば、「連絡先の適切性」という表形式の部分を追加する必要がありました。これはCounterpartiesディレクトリに存在し、列を含む必要があります。

1追加します。 たとえば、「TK_Adequacy of Contact Persons」などの小道具を呼び出します。
私はすべてのタイプのカウンターパーティに共通のこの小道具をします。 そのタイプは、無制限の長さのストリングになります。



2構成の拡張を作成し、請負業者のフォームを変更します。
フォームの詳細を追加します。

-「DopTZ」タイプの種特性参照、追加要件
-TK_担当者タイプの妥当性の値の表:
連絡先タイプのディレクトリリンク。
連絡先タイプ文字列タイプ
先端タイプ文字列



「連絡先の適切性」ページをフォームに追加し、可視性を削除します。
このグループでは、「TK_Adequacy of Contact Persons」を表示します



3コードを記述します。
サーバー上で作成されたとき。 追加の属性自体を検討する必要があります。「連絡先のTK_Adequacy」と呼び、その値を読み取り、その値から値のテーブルを作成することを思い出してください。

古いプラットフォームがXMLを使用できるJSON形式で追加属性の値を保存することを提案します。

 _(, ) //   //_ -         = ..("_");  ()  //         .. = ; //     = ..( ("", ));  = ?(.() = 1, [0]., ); //      JSON   <>   // JSON JSON =  JSON; JSON.();   = JSON(JSON);   = ""; ; //    JSON   // _  () = ("")         = _.(); //           . = GUID(.,"."); . = .; . = .; ; ; ; ;  //         &  GUID(GUID,)  =;  (" = "++".( ("""+GUID+"""));");  ;  ;  


オープニングで。 プログラムで追加を非表示にします。 小道具。 JSONを保存するため、ユーザーは特に関心を持ちません。

 &  _()  ()  //       //_ -  ,       .  = ._.( ("", )); //    .() = 1  [[0].]. = ; ; ;  

サーバーに記録する前。 仕様が変更されている場合は、追加でJSON文字列として保存します。 小道具。

  _(, , )  ()  //_ -  ,       .  = ._.( ("", )); //      JSON JSON =  JSON(JSON., " " , , JSON., , , , ); JSON =  JSON; JSON. = ; JSON.(JSON); //     _  =  ;     _  .( (",,", (..()), ., .)); ; //    JSON JSON(JSON, ); JSON = JSON.(); //         [[0].] <> JSON  [[0].] = JSON; ; ;  

Source: https://habr.com/ru/post/J310930/


All Articles