非定期的な独立情報レジスタレコードの変更

1C にはいくつかのタイプのレジスタがあります。

  • 残高または売上高を数値形式で保存する累積。
  • 計算タイプと計算自体を保存する計算は、通常、給与計算に使用されます。
  • Dt-Kt 形式の会計計算に関するデータを含む会計記録。
  • 情報が登録されます。

後者については、測定セクションごとにデータベースからデータを編集できるため、さらに詳しく説明します。 たとえば、「価格命名法」には、特定の品目と特定の種類の価格の特性に関するデータが保存されます。

図1 「価格命名法」レジスタ

特徴

一連の変更を保存する必要がない場合、レジスターは周期的または非周期的のいずれかになります。 ただし、それでも保存する必要がある場合は、プログラムがレコードの一意性の制御を確立する期間 (秒ごと、日ごと、月ごと、四半期ごと、年ごと) が決定されます。


図2 周波数と記録モード

同じ期間内に 2 つのレコードを作成しようとすると、プログラムは「そのようなキー フィールドを持つレコードが存在します!」というエラーを生成します。 データベースへの書き込みができなくなります。

録画モードも指定できます。 1 つ目は「登記官への提出」です。この場合、記録は文書によって記録され、それぞれの文書に登記官の文書が示されます。 2 番目の独立モードを選択した場合、データはレコーダーによって記録されず、たとえばリストから直接、または処理として追加されます。


図3 記録モード

定期レジスタの特徴は、最後または最初のスライスを使用して、特定の日付の最後/最初の設定値に関する既製の値をデータベースから取得できることです。

1C 情報レジスタへのエントリ

ピリオドを含むレジスタ内の行と、リソースに関する情報を次元で含むレコーダーをレコードと呼びます。

レコードをレジスタに追加するには、レコード マネージャーまたはレコードセットが使用されます。 レジストリ内のエントリに共通のキーがある場合は、RecordSet を使用する必要があります。 また、レジスター内のすべてのレコードが一意である場合、1 つのレコードを記録するには、レコード マネージャーを使用する必要があります。

Information RegisterRecordSet オブジェクトを使用した場合のレコードの例。

レコーディングマネージャーの使用:

NewRecord = 情報登録.通貨レート.CreateRecordManager(); NewRecord.Currency = Directorys.Currency.FindByName("USD"); NewRecord.Period = Date(31,12,2016); 新しいレコード.コース = 100; NewRecord.Multiplicity = 1; NewRecord.Write();

レコードセットと Write メソッドを使用すると、レコードはレコードセットの情報レジスタに書き込まれます。 この場合、単純に行を追加するか、レジスタ内の既存の行を置き換えることが可能です。 独立したレジスタの場合、選択を設定しないと、レジスタ内のすべてのエントリが削除され、追加されたエントリで置き換えられます。

従属レジスタを選択せず​​にデータを書き込むとエラーが発生します。

レジストラに従属する PriceNomenclature 情報レジスタ内の一連のエントリを使用するエントリの例:

NewRecordSet = 情報登録.名称 価格.CreateRecordSet(); NewRecordSet.Selection.Register.Set(リンク); NewRecordSet = NewRecordSet.Add(); NewDialRecord.Period = リンク.日付; NewSetRecord.Nomenclature = リンク.Nomenclature; NewSetRecord.Price = リンク.価格; NewRecordSet.Write();

レコーディング マネージャーを使用したレコーディングの例:

Record = 情報 Registers.Currency Rates.CreateRecordManager(); Record.Period = 日付; エントリー.コース = コース; Record.Currency = 通貨; Write.Write();

情報登録簿の検索・閲覧

情報レジスタ内のエントリを検索して読み取るには、クエリの助けが必要です。 たとえば、特定のレジストラによって入力された価格を取得する必要があります。

SELECT 名称価格.名称, 名称価格.価格 FROM 登録情報.名称価格 HOW 名称価格 WHERE 名称価格.Registrar = &Registrar

エントリの変更と削除

情報登録エントリ (たとえば、すべての EUR 為替レート) を削除するには、次のコードを使用します。

選択構造 = new Structure("Currency", Directorys.Currency.FindByName("EUR")); 選択 = 情報レジスタ.通貨レート.Select(,選択構造体); While Select.Next() LoopRecordManager = Select.GetRecordManager(); Select.GetRecordManager().Delete(); エンドサイクル;

レジスタを迅速かつ完全にクリアするには、次のコードを使用できます。

NewRecord = InformationRegisters.TestRegister.CreateRecordSet(); NewRecord.Write();

レジスターを調整および変更したり、レジスターにデータを素早く入れたりするための汎用処理を記述することができます。

1C 8 情報レジスタは、開発者が定義した次元のコンテキストで参照情報を格納するように設計されたメタデータ オブジェクトです。

情報レジスタの典型的な使用例は、通貨および期間ごとの為替レートに関する情報を保存することです。

情報レジスタのプロパティと設定を詳しく見てみましょう。

収束レジスタの2つの主なプロパティは次のとおりです- 周期性そして 録音モード.

これらは、他のメタデータ オブジェクトにはない情報レジスタの固有のプロパティです。 それらを詳しく見てみましょう。

このプロパティを使用すると、ディメンションのリストにディメンションを追加できます。 期間。 その助けを借りて、特定の日付における関連性を考慮して情報をデータベースに保存するなど、多くの問題を解決できます。 期間の使用には、毎日の通貨の価値の保存、商品の価格の保存など、多くの応用例があります。

周波数は次の値を取ることができます。

  • 不定期
  • 1秒以内に
  • 1日以内に
  • 1ヶ月以内
  • ブロック内
  • 1年以内に

1C の 267 ビデオ レッスンを無料で入手:

[非周期] オプション以外の周期を選択すると、システムは指定された期間内のレコードの一意性を制御します。 レコードが一意でない場合、1C システムはメッセージを表示し、データベースへの書き込みを許可しません。

そして、定期情報レジスタの主な機能の 1 つは、「最初のカット」と「最後のカット」の既製の値を取得できることです。 この情報により、特定の日付の最後 (最初) の設定値に関する情報をデータベースから非常に迅速に取得できます。

情報レジスタ書き込みモード

1C 8.2 および 8.3 では、このプロパティは「独立」または「レジストラへの提出」のいずれかになります。 前者の場合、エントリはプログラム的にも、情報レジスタのリスト形式からでも作成できます。 2 番目の場合、入力を記録した文書を示す必要があります。 これにより一定の制限が課せられますが、同時に新たな機会が開かれます。

詳細レジスタ ディメンション プロパティ

情報レジスタ 1C 8.3 の測定プロパティのパレットにも注意を払う必要があります。 特に先頭選択フラグとメイン選択フラグの場合:

  • プレゼンター— この測定値がなければレジスタエントリは意味をなさないという情報を暗示する測定値のプロパティ。 実際、これは、システムがディメンションから値を削除すると、「先頭」ディメンションを持つレジスタ エントリも削除されることを意味します。 設定できる測定値は 1 つだけです。
  • 主な選択— 登録が独立している場合、これらの測定は、交換計画の変更の登録を決定するために使用されます。 同様の使用法 時代別の主な選定周期レジスタの期間の主な選択が含まれます。

1C情報レジスタへのプログラムエントリ

情報レジスタに新しいレコードを追加するには、レコード マネージャーを使用する方法とレコードセットを使用する方法の 2 つがあります。 最初のケースは 1 つのレコードに適しており、2 番目のケースは 2 つ以上のレコードに適しています。

レコーディングマネージャーの使用:

NewRecord = 情報登録.通貨レート.CreateRecordManager();
NewRecord.Currency = Directorys.Currency.FindByName("USD");
NewRecord.Period = Date(31,12,2016);
新しいレコード.コース = 100;
NewRecord.Multiplicity = 1;
NewRecord.Write();

1C 情報レジスタ レコードのセットを使用する:

NewRecordSet = 情報 Registers.Currency Rates.CreateRecordSet();
//選択を設定しない場合、情報レジスタ内のすべてのエントリが削除されます
NewRecordSet.Selection.Currency.Set(ドル, True);
NewRecordSet.Selection.Period.Set(Date(2016/12/31), True);
//設定されたレコードを直接作成します
NewRecordSet = NewRecordSet.Add();
NewSetRecord.Currency = Directorys.Currency.FindByName("USD");
NewDialRecord.Period = 日付(2016/12/31);
NewSetRecord.Course = 100;
NewSetRecord.Multiplicity = 1;
NewRecordSet.Write();

この記事では、非常に興味深い 1C 構成メタデータ オブジェクト、つまり情報レジスタについて説明します。 情報レジスタは、アプリケーション タスクで使用できるさまざまな情報を保存するために使用されます。 情報レジスタ内の情報は、ディメンションと呼ばれる特定のセクションに保存され、時間の経過とともに変化する可能性もあります。

情報レジスター、時間の経過とともに変化する情報を 定期的、それ以外の場合、これらのレジスタは呼び出されます 不定期。 周期は異なる場合があり、秒、分、時間などの周期にすることができます。 最長 - 1年。

不定期情報レジスタ1C

情報レジスタの主な目的は、分析指標を保存することです。 たとえば、燃料の種類 (AI-92、AI-95 など) だけでなく、この種類の燃料の価格も保存するタスクがあります。 これを便利に整理する方法。 確かに、燃料の種類自体を何らかのディレクトリに保存する必要があります。 それを私たちは燃料の一種と呼ぶことにします。 しかし、この種の燃料の価格はどこに保管すればよいのでしょうか? 参考書の一番最初の解答です。

価格が変わらない場合には、明らかにそのような決定が行われます。 しかし、これは人生でめったに起こりません。そのため、これを行うと、価格が変わるたびにディレクトリ要素を変更する必要があります。 原則として、なぜそうではありません。 しかし、新しい価格セクション (燃料供給業者) も追加すると、同じ種類の燃料でも供給業者によって価格が異なる可能性があり、ディレクトリの詳細に価格を保存することは基本的に不可能になります。この価格がどの供給業者に関係しているのかがわかりません。 。

これらの問題を解決するには、特別な構成オブジェクトである情報レジスタが使用されます。 この情報レジスタでは、どのような種類の燃料、どのような供給者に対して、どのような価格が設定されているかを示すレコードを作成できます。

ここで、この小さな応用問題を解決します。この構成には、「燃料の種類」と「燃料供給者」の 2 つのディレクトリがあります。

供給業者を考慮して、燃料の種類ごとに価格を保管する可能性を整理する必要がある。 これを行うために、燃料価格情報の新しいレジスタを作成します。

ブックマークに 基本名前とシノニムを設定しましょう。 他はすべてそのままにしておきます。

次に、データ タブで、燃料の種類と燃料供給者の 2 つのディメンションを作成します。これらの種類は、対応するディレクトリへのリンクです。

両方の次元にフラグを立てましょう - プレゼンター。 これは、情報登録エントリにリストされているディレクトリ要素を削除すると、このエントリも自動的に削除されることを意味します。 このフラグにはインターフェイスの結果も 1 つあります。フラグが設定されている場合、ディレクトリ要素の形式で、この要素のこのレジスタのエントリを確認できます。

このフラグを測定ごとに設定しましょう。

我々は持っています 不定期登録すると二次元になります 燃料の種類そして 燃料供給業者これは、同じフィールド値を持つ 2 つのレコードを作成できないことを意味します。 燃料の種類そして 燃料供給業者。 プログラムはエラーをスローします。 これは合理的です。同じ供給業者の同じ種類の燃料に 2 つの異なる価格が存在することはあり得ません。 それが可能であれば、別のセクション (サプライヤーベースなど) を追加する必要があることを意味します。

測定に加えて、情報レジスタには次の機能があります。 リソースそして 必要条件. リソース情報レジスタの基本情報を保存する必要があります。 作成されたデータ、および 小道具エントリに関する追加の背景情報が含まれています。

リソースを作成します - 価格(タイプ番号 10.2)。

それだけです。 設定を保存し、この情報レジスタを開いて、ある種のレコードを作成しましょう。

ここで、まったく同じディメンションのセットを持つレコードを作成しようとすると、「これらのキー フィールドを持つレコードが存在します。」というエラーが表示されます。

そして最後のポイント: 私たちは次元にいるので 燃料の種類「リーダー」フラグを設定してから、ディレクトリ要素を設定します 燃料の種類「燃料価格」情報レジスタを開くコマンドが表示されました

初心者の開発者と経験豊富なプログラマーの両方を対象とした、マネージド 1C アプリケーションでの開発に関する優れたガイド。

  1. 非常にアクセスしやすく、わかりやすいプレゼンテーション言語
  2. 書籍はPDF形式で電子メールで送信されます。 どの端末でも開けます!
  3. マネージド 1C アプリケーションのイデオロギーを理解する
  4. マネージド アプリケーションの開発方法を学びます。
  5. マネージド 1C フォームの開発方法を学びます。
  6. 管理フォームの基本的かつ必要な要素を操作できるようになります。
  7. マネージドアプリケーションでのプログラミングが明確になります

15% 割引のプロモーション コード - 48PVXヘユ


このレッスンが問題の解決に役立った場合、気に入った場合、または役立つと感じた場合は、任意の金額を寄付して私のプロジェクトをサポートできます。

手動で支払うことができます。

Yandex.Money - 410012882996301
ウェブマネー - R955262494655

私のグループに参加してください。

1C情報レジスタこれは、ディメンションとリソースを含む構造化されたデータのセットです。 定期的な情報を保存するように設計されています。

周期性

情報は次元と期間ごとに保存されます。 情報レジスタの頻度を設定できます。

  • 不定期
  • レジストラによる
  • 2番
  • 一週間
  • 四半期

一定期間レジスタから情報を選択するには頻度が必要です。 頻度を指定すると、エントリが行われた期間でレジスタにエントリが作成されます。 たとえば、「商品価格」レジスターを見ると、どのような測定値で、どの期間に入力されたかなど、価格の変更履歴が表示されます。

情報レジスタの周期性は、為替レート、製品価格、製品の割引やマークアップなど、時間の経過とともに変化する情報に必要です。

レジストラ

文書を使用して情報登録簿に入力する場合は、入力モードを「登録官への提出」に設定し、登録簿に入力する文書を選択する必要があります。 次に、登録簿に「登録者」フィールドが表示され、登録がどの文書で行われたかに関する情報が保存されます。 レコーダーはピリオドとしても使用できます。これを行うには、「頻度」フィールドの「レコーダーごと」に指定します。 レジストラへの従属は、レジスターを文書に厳密にリンクする必要があり、レジスター内のエントリを手動で変更することができなくなる場合に行われます。

レジストラとして機能する文書がいくつかある場合があります。 レジストラを追加するには、目的の情報レジスタのプロパティに移動し、「レジストラ」タブに移動して、レジストラとして機能するドキュメントの横にあるボックスをチェックする必要があります。

レコーダーの動きをドキュメントから確認できます。 これを行うには、興味のあるドキュメントに移動し、「Go – レジストラによるドキュメントの移動」をクリックする必要があります。

レジストリ プロパティに権利を追加することを忘れないでください。権利は [権利] タブで割り当てることができます。 次に、ロールのリストで、レジスタに権限を追加するロールを選択し、権限のリストで、選択したロールの権限を設定する必要があります。

記録の一意性

記録の一意性は、期間と測定値によって異なります。 たとえば、同じ日に同じ測定値を含むレコードを「品目価格」レジスターに書き込みたい場合、レジスターの周期性が低いため、これを行うことはできず、プログラムはエラーを引き起こします。 1日以内に。

頻度がレジストラによって設定されている場合、レコードの一意性にも影響します。

非周期的で独立したレジスタの場合、一意性は次元の組み合わせに依存します。

フォーム

レコードを表示するには、リスト フォームを使用します。リスト フォームでは、関心のあるフィールドに応じて選択を設定したり、レコードの履歴を表示したり、レコード フォームを通じて変更したりできます。 レジスタエントリは次のように表示できます。トップメニューで「操作」-「情報レジスタ」ボタンをクリックします。 開いたウィンドウで、必要なレジスタを選択します。 この後、リスト フォームがテーブル形式で開きます。各エントリは一意のエントリです。

編集/作成するには、レコード フォームを使用します。レコードがレジストラに従属する場合、フィールドは使用できず、フォームは作成できません。

コンフィギュレータでフォームを追加するには、情報レジスタの「フォーム」タブに移動し、希望するフォームのタイプの横にある「虫眼鏡」をクリックします。 次に、将来のフォームのフィールド (場所、名前、機能の指定) を設定できるウィンドウが開きます。


寸法、リソース、詳細

ディメンションはレコードの一意性を形成することを目的としており、将来的にはそれらを選択し、特定のディメンションに基づいてカットを行うことができます。 測定値の組み合わせがレコードキーを形成します。 テーブルが増大したり、作業中に速度が低下したりしないように、多数のディメンションを作成しないことをお勧めします。

ディメンションには「先頭」チェックボックスがあり、これがチェックされている場合、このディメンションが存在する限りレコードはデータベースに保存されます。 いくつかの主要な測定を行うことができます。 たとえば、情報レジスタ「品目価格」では、先頭のディメンションは品目です。レコードに含まれる品目を削除すると、この品目の情報台帳のエントリも自動的に削除されます。

リソースは、数量、価格などの概要情報を保存するように設計されています。 将来的には、測定結果に応じて、一定期間 (レジスターが定期的である場合) リソースを受け取ることになります。

ほとんどの場合、詳細は追加情報を保存することを目的としており、レコードの一意性には関与しません。 たとえば、詳細に作成者、コメントなどの情報を入力できます。

情報レジスタを使用して次のアクションを実行できます。

  • 1C 情報レジスタのエントリの削除

特徴

— 一連の次元に基づくレコードの一意性: 情報レジスタ内の各レコードは新しいリソース値です。

— 情報レジスタのエントリは、定期的または非定期的なものにすることができます。

— 情報レジスタは、レジストラに依存することも、独立することもできます。

— 希望の日付の最初と最後のレコードを横断的に作成することが可能です。 これは、仮想テーブル「最初のスライス」と「最後のスライス」によって実装されます。 これらのテーブルを使用するには、選択とクエリの両方を使用できます (クエリ デザイナーでこれらの仮想テーブルを選択し、それらに対してクエリを作成できます)。 これらのテーブルは、情報レジスタが定期的である場合に利用可能になります。

「商品価格」登録簿は情報の定期登録であり、登録機関に従って入力が行われます。

画像は、頻度が 1 日以内に設定されていることを示しています。 これは、その日の固有の測定値に基づいて、価格を 1 日に 1 回変更できることを意味します。

レジスターは「商品価格の設定」という文書に従属します。 これは、登記簿への記入がこの文書から行われることを意味します。 特定の文書の動きは文書フォーム「商品価格の設定」から確認できます。

レジスターは、「価格タイプ」、「品目」、および「品目の特性」という次元で品目の価格に関する情報を保存するように設計されています。 先頭のディメンションはすべて 3 つのディメンション フィールドであり、サンプリング時にそれに基づいて選択を行うことができます。

結論:この記事を読むと、1C 情報レジスタの作成、ディメンションとリソースの追加、編集およびリスト フォームの構成ができるようになります。 レコードを作成し、既存のレコードを選択します。 ご質問がございましたら、記事内のコメントをご利用ください。すぐにお答えできるよう努めます。