リクエスト内のドキュメントの Type (タイプ) を取得するにはどうすればよいですか? 1c ディレクトリタイプのチェックインリクエスト
43
NULL – 欠損値。 ゼロ値と混同しないでください。 NULL は数値ではなく、スペース、空の参照、または未定義と等しくありません。 NULL は型形成値です。つまり、 NULL 型とこの型の単一の値があります。 ヌル...
26
1C プラットフォームでデータベース テーブルに対するクエリを生成および実行するには、Query プログラミング言語の特別なオブジェクトが使用されます。 このオブジェクトは、New Request コンストラクトを呼び出すことによって作成されます。 便利なリクエスト...
18
この記事では、1C v.8.2 クエリを使用するときに役立つテクニックと、クエリ言語についてあまり知られていない情報を提供します。 クエリ言語について完全に説明するつもりはありませんが、次の点についてのみ説明したいと思います。
13
LIKE - 文字列とパターンの類似性をチェックする演算子。 SQL の LIKE に相当します。 SIMILAR 演算子を使用すると、左側に指定された式の値と右側に指定されたパターン文字列を比較できます。 表現の意味は…
1C クエリ言語は、バージョン 7.7 と 8 の主な違いの 1 つです。1C プログラミングを学習する上で最も重要なポイントの 1 つはクエリ言語です。 1C 8.3 では、クエリはデータを取得するための最も強力で効果的なツールです。 クエリ言語を使用すると、便利な方法でデータベースから情報を取得できます。
構文自体は古典的な T-SQL を非常に彷彿とさせますが、1C ではクエリ言語を使用し、Select 構造を使用してのみデータを受信できる点が異なります。 この言語は、たとえば (リクエスト内のリクエスト) など、より複雑な構成もサポートしています。 1C 8 のクエリはキリル文字とラテン語の両方で記述できます。
この記事では、1C クエリ言語の主なキーワードについて説明します。
- 選ぶ
- 許可された
- 様々な
- 急行
- 初め
- 変更のため
- 意味
- 値の型 (および REFERENCE 演算子)
- 選択
- グループ化
- 持っている
- 無効である
- はい NULL
- 接続 - 右、左、内部、フル.
1C 言語の小さなトリックもいくつかあり、それを使用するとリクエスト テキストを最適に構築できます。
1C 8.2 システムでクエリをデバッグするために、特別なツールであるクエリ コンソールが提供されています。 説明を参照し、リンクを使用してダウンロードできます。
1C クエリ言語の最も重要で興味深い演算子を見てみましょう。
選択する
1C Enterprise 8 クエリ言語では、すべてのクエリはキーワードで始まります。 選ぶ。 1C 言語には UPDATE、DELETE、CREATE TABLE、INSERT 構造はなく、これらの操作はオブジェクト テクノロジで実行されます。 その目的はデータの読み取りのみです。
例えば:
選ぶ
現在のディレクトリ名
から
現在のディレクトリとしてのディレクトリ.命名法
クエリは項目名を含むテーブルを返します。
構造物の近く 選ぶキーワードを見つけることができます 変更のため, 許可された, 様々な, 初め …
許可された— 現在のユーザーが権限を持つテーブルからレコードのみを選択します。
様々な— 結果に重複行が含まれないことを意味します。
セレクション(ケース)
非常に多くの場合、この設計はプログラマによって過小評価されます。 その使用例:
現在のディレクトリ.名前、
WHEN 現在のディレクトリ.サービス THEN
"サービス"
終了 見方 命名法
現在のディレクトリとしてのディレクトリ.命名法
この例では、「項目タイプ」フィールドにテキスト値 (「製品」または「サービス」) が返されます。
どこ
1C クエリ言語の設計。受信したデータに選択を課すことができます。 システムはサーバーからすべてのデータを受信し、そのデータがこのパラメータに基づいて選択されることに注意してください。
選ぶ
ディレクトリ名
から
現在のディレクトリ。現在のディレクトリとしての命名法
WHERE CurrentDirectory.Service = TRUE
この例では、「Service」属性の値が「True」に設定されているレコードを選択します。 この例では、次の条件で問題を解決できます。
「サービスはどこにありますか?」
基本的に、キーワードの後の式が「True」に等しい行を選択しています。
式では直接条件を使用できます。
WHERE コード = "005215"
条件で「VALUE()」演算子を使用して、1C リクエストで事前定義された要素と列挙型へのアクセスを使用します。
WHERE 項目タイプ = 値(列挙.項目タイプ.製品)
時間の値は次のように指定できます。
WHERE 受信日 > DATETIME(2012,01,01):
ほとんどの場合、条件はリクエストに渡されるパラメーターとして指定されます。
1C の 267 ビデオ レッスンを無料で入手:
WHERE NomenclatureGroup= &NomenclatureGroup
属性タイプが複合タイプの場合、条件を属性タイプに課すことができます。
値のリストまたは配列からの選択を制限する必要がある場合は、次の操作を行うことができます。
ここで、レジストラ B (選択する文書のリスト) は次のとおりです。
条件は、いくつかの条件で構成される複雑な場合もあります。
WHERE 受信日 > DATETIME(2012,01,01) AND NomenclatureGroup= &NomenclatureGroup AND NOT Service
グループ化
結果をグループ化するために使用される 1C 8.2 クエリ言語の設計。
例えば:
選ぶ
商品およびサービスの受領 商品、
SUM(商品サービス品の受領.数量) AS 数量、
SUM(商品サービス商品の受領.金額) AS 金額
から
文書。商品およびサービスの受領方法。商品およびサービスの受領。グループ化
商品の受け取りサービスGoods.Goods
このリクエストは、すべての領収書を品目ごとの金額および数量別に要約します。
キーワード以外にも 和他の集計関数も使用できます。 量, 異なる数, 最大, 最小, 平均.
持っている
忘れられがちなデザインですが、とても重要で役に立つものです。 集計関数の形式で選択を指定できますが、これはデザインでは実行できません どこ.
1C リクエストでの HAVING の使用例:
選ぶ
商品およびサービスの受領 商品、
SUM(商品サービス品の受領.数量) AS 数量、
SUM(商品サービス品の受領.金額) AS 金額
から
文書。商品およびサービスの受領方法。商品およびサービスの受領。グループ化
商品およびサービス商品の受け取り。SUM(商品サービス商品の受領.数量) > 5
ですので、入荷数が5個以上の商品を選択させていただきます。
意味()
例えば:
WHERE 銀行 = 値(Directory.Banks.EmptyLink)
WHERE 命名規則タイプ = 値(ディレクトリ.命名規則タイプ.製品)
WHERE 項目タイプ = 値(列挙.項目タイプ.サービス)
リクエストにタイプしてください
データ型は、TYPE() および VALUETYPE() 関数を使用するか、論理 REFERENCE 演算子を使用してチェックできます。
急行()
1C クエリの Express 演算子は、データ型を変換するために使用されます。
構文: 急行(<Выражение>どうやって<Тип значения>)
これを使用すると、文字列値を日付に変換したり、参照値を文字列データに変換したりすることができます。
実際のアプリケーションでは、無制限の長さのフィールドは選択、グループ化などができないため、Express() 演算子は無制限の長さのフィールドを変換するためによく使用されます。 このようなフィールドが変換されない場合、エラーが発生します。 長さが無制限のフィールドと互換性のない型のフィールドは比較できません.
選ぶ
ContactInformation.オブジェクト、
EXPRESS(ContactInfo.View AS ROW(150)) AS ビュー
から
情報の登録 連絡先情報 HOW 連絡先情報グループ化
EXPRESS(ContactInfo.Representation AS ROW(150)),
ContactInformation.オブジェクト
イヌル (イヌル)
レコード内の値をチェックし、それが等しいかどうかをチェックする 1C クエリ言語の非常に便利な機能 ヌル、これにより、それを自分の値に置き換えることができます。 非表示にするために残高と売上高の仮想テーブルを取得するときに最もよく使用されます。 ヌルそして明確な0(ゼロ)を入れます。
ISNULL(前月の税金.適用されたFSS給付金, 0)
1C クエリ言語 ISNULL のこのような関数は、値がない場合にゼロを返すため、エラーが回避されます。
参加する
接続には 4 つのタイプがあります。 左, 右, 完全、内部.
左右の接続
結合は、特定の条件に基づいて 2 つのテーブルをリンクするために使用されます。 いつの機能 左結合つまり、最初に指定されたテーブル全体を取得し、2 番目のテーブルを条件付きでバインドします。 条件によってバインドできなかった 2 番目のテーブルのフィールドには値が入力されます。 ヌル.
1C リクエストの左結合の例:
テーブル全体が返され、条件「Counterparties.Name = Banks.Name」が満たされる場所のみ「Bank」フィールドが入力されます。 条件が満たされない場合、銀行フィールドは次のように設定されます。 ヌル.
1C 8.3 言語の RIGHT JOIN全く同じような 左接続 1 つの違いを除いて、 接続の権利「メイン」テーブルは最初ではなく 2 番目です。
完全接続
完全接続 left および right とは、2 つのテーブルのすべてのレコードを表示し、条件によって接続できるレコードのみを接続するという点で異なります。
例えば:
完全接続
Directory.Banks HOW 銀行による
クエリ言語は、レコードの結合条件が満たされた場合にのみ、両方のテーブルを完全に返します。 左/右結合とは異なり、2 つのフィールドに NULL が出現する可能性があります。
内部結合
内部結合指定された条件に従って接続できるレコードのみを表示するという点で完全とは異なります。
例えば:
から
取引先 AS クライアントのディレクトリ。内部結合
Directory.Banks HOW 銀行による
クライアント名 = 銀行名
このクエリは、銀行と取引相手が同じ名前を持つ行のみを返します。
結論
これは 1C 8 クエリ言語の構文のほんの一部にすぎません。将来的には、いくつかの点をより詳細に検討し、さらに詳しく説明していきます。
1C を使用すると、小規模店舗でも大企業でも、会計を大幅に簡素化したり、組織を簡単に管理したりできます。 このプログラムは大規模なデータベース管理システムです。 このすべてで混乱しないようにするには、さまざまな単純なアクションを実行し、本質を理解できる必要があります。 次に、1C でリクエスト内の値のタイプを確認する方法と、それらの一般的な内容、およびそれらを区別する方法を理解します。
値のタイプ
1C: 企業は新しいバージョン (プラットフォーム 8.2) に特別な機能を組み込みました。 これを使用すると、データ システムの任意の名前または要素に特別なパラメータを追加できます。 これは、システムの編集や新しい要素の追加を容易にするために行われました。 この機能を「値型」といいます。
実際、これはほとんどのプログラミング言語に含まれる基本概念の 1 つです。 これを使用すると、さまざまなデータを分類できます。 例: 日付、数値、文字列、リンク。 これらは単なる基本的な分類です。 他にもたくさんあるかもしれません。 たとえば、都市に関する情報をシステムに入力する場合、大陸、国、地域などを使用できるとします。
検査
クエリ言語を使用して特定のフィールドを確認できます。 あるいはむしろその機能: TYPE VALUE。 つまり、対象のセルにどのような種類の情報が含まれているかを調べたい場合は、コマンドを使用する必要があります。
値のタイプ(値) = タイプ(文字列)
上の例では、コマンドを使用して最も単純な型を定義しました。 リクエスト検証の別の例:
ドキュメンテーション
かなりの数のタイプがあり、ユーザーは最初のタイプで済ませることも、独自のタイプを入力して情報ベースを改善することもできます。 ここではその一部を紹介します。
- ドキュメントリンク。 これは、システムの他の部分内のさまざまなオブジェクトへの参照を便利に保存するために使用されます。
- DocumentObject - ドキュメントの編集。
- DocumentSelection - データベースからオブジェクトを並べ替えます。
さらに、データを特徴付ける特別な用語があります。
- 形状;
- ライン;
- ブール値;
- 番号;
- の日付;
- 配列;
- チェックボックス;
- 写真。
これらはほんの一部です。 どのオブジェクトも、このリストにあるもののみにすることができます。 ブール値は、true または false の 2 つの値を取る特別なパラメータです。 リクエストを調整できる特別なタグもあります: いつ、どこで、どのように、その他の場合など。これらはプログラムの動作アルゴリズムを設定します。 1C は、これらの単語が他のすべてと同様にロシア語で入力できるという事実によって区別されます。
これらすべてが初心者や専門家ではない人には中国語の読み書きとして認識されることを理解することが重要です。 ここで説明している内容を理解し、1C を効果的に使用するには、プログラミングの基礎を理解する必要があります。 一般に、1C プログラムでのリクエストの型のチェックは、他のアクションに比べて非常に簡単です。
注意! これはレッスンの入門バージョンであり、教材が不完全である可能性があります。
学生としてサイトにログインする
学校の教材にアクセスするには学生としてログインしてください
初心者プログラマー向けのクエリ言語 1C 8.3: 型 (VALUE TYPE、TYPE、REFERENCE、ISNULL、EXPRESS) を操作するための関数と演算子
ディレクトリ、ドキュメント、またはその他のアプリケーション オブジェクトの各属性 (プロパティ、フィールド) には独自のタイプがあることを思い出してください。 そして、コンフィギュレーターでこのタイプを確認できます。
クエリ言語には、詳細の種類を操作するための関数と演算子のクラス全体が存在します。 それらを見てみましょう。
VALUE TYPE関数
この関数は 1 つのパラメータ (値) を受け取り、その型を返します。 写真(上)に記載されている小道具の場合 味ディレクトリ 食べ物以下が返されます:
それでは小道具を見てみましょう 特徴ディレクトリで 都市:
この prop はいくつかのタイプのいずれかであることがわかります。 ライン, ディレクトリ.テイスト, ディレクトリ.カラー。 このタイプの詳細はコンポジットと呼ばれます。
1C:Enterprise モードでこのような詳細の値を入力しようとすると、システムはどのタイプの値を入力するかを尋ねてきます。
そして、選択した後でのみ、選択したタイプの値を入力できるようになります。
したがって、同じタイプのディレクトリ要素 ( ディレクトリ.都市) を同じ属性に格納できるようになります ( 特徴) さまざまなタイプの値 (文字列、色、またはフレーバー)。
ディレクトリの要素をクリックすると、これを自分で確認できます。 都市 1C:エンタープライズモード。 あなたはレッスンのトライアル版を読んでいますが、完全なレッスンが利用可能です。
ここで、特徴的な特徴値はディレクトリ要素です。 フレーバー:
以下にその行を示します。
そして、これは一般的に参考書の要素です 色:
これらは、複合データ型が私たちにもたらす可能性です。
関数がどう動くのか気になる 型の値小道具の上で 特徴的な要素、複合データ型を持つ:
これはすでに非常に興味深いです。 各行を個別に見てみましょう。
要素ロシアの特有の特徴の値のタイプは次と同じです。 ヌル。 このタイプに遭遇したのは初めてです。 このタイプの値は、データベースを操作するときに欠損値を判断するためにのみ使用されます。
Russia 要素はグループであり、通常のディレクトリ要素ではないため、これは当てはまります。 都市、フィールドがありません 特徴。 そして、上で読んだように、欠損値の型は常に次と等しくなります。 ヌル.
Perm の特徴的な機能の値のタイプは次と同じです。 フレーバー。 これは真実です。なぜなら、ペルミ市のデータベースに入力された特有の特徴の値は、ディレクトリ要素へのリンクだからです。 フレーバー.
クラスノヤルスクの場合、属性のタイプは次と同じです。 色、データベースで選択された値はディレクトリ要素へのリンクであるため、 色.
ヴォロネジの場合、属性のタイプは次と同じです。 ラインデータベースに入力された値は通常の文字列であるためです。
インドはまたグループなので意味がありません。 そして、私たちが覚えているように、欠損値の型は次と等しいです。 ヌル.
つまりね。 ディレクトリ要素に移動すると、 都市名前付き サンパウロ、フィールドが 特徴全然埋まってない。 空っぽです。 あ 複合型のすべての空のフィールドには特別な意味があります未定義 。
と 未定義私たちも初めて遭遇します。 意味 未定義他の型に属さない空の値を使用する必要がある場合に使用されます。 これはまさに私たちの状況です。 そして値の型 未定義おそらくすでに推測したように、 は次と等しい ヌル.
機能タイプ
パラメーターは 1 つだけ取ります - プリミティブ型の名前 ( ライン, 番号, 日付, ブール値)、またはリンク タイプを取得するテーブルの名前。
この構造の結果は、指定された型の Type 型の値になります。
曖昧に聞こえますね。
この設計の適用を見てみましょう。すべてがすぐに適切な位置に収まります。
すべてのディレクトリ エントリを選択する必要があるとします。 都市、複合プロップがあります 特徴 type の値があります ライン:
次に、属性値を持つすべてのレコードを選択しましょう 特徴ディレクトリ要素へのリンクです 色(テーブル ディレクトリ.カラー):
退却
覚えているとおり、ディレクトリのいくつかの要素は 都市小道具を持っていない 特徴。 関数 型の値それが生成するそのような要素に対して ヌル.
クエリ内でそのような要素を選択するにはどうすればよいでしょうか? このために特別な論理演算子が提供されています。 無効である(関数と混同しないでください) 無効であるこれについては以下で見ていきます)。 あなたはレッスンのトライアル版を読んでいますが、完全なレッスンが利用可能です。
その使用例を次に示します。
素晴らしい。 しかし、Sao Paulo の要素、props 値の型がないことに気づきましたか? 特徴彼も配った人 ヌル。 なぜそうなったのでしょうか?
しかし問題は、状況は詳細を記入するグループ(ロシア、インド、ブラジル)向けであるということです。 特徴彼らはそれをまったく持っていないため、原則として不可能ですが、小道具を埋めることは可能であるサンパウロ要素の状況とは異なりますが、単に埋められていないだけであり、私たちが覚えているように、特別な値 未定義.
必要な条件を持つすべてのレコードを選択するには 特徴存在するが満たされていない場合は、別の構造を使用する必要があります。
ただし、空 (未入力) 属性を判断するための UNDEFINED との比較は、複合型に対してのみ機能します。
ちなみに、論理演算子 IS NULL の否定形式は次のようになります。
論理演算子LINK
たとえば、ディレクトリから選択してみましょう 都市複合属性の値を持つレコードのみ 特徴ディレクトリ要素へのリンクです フレーバー:
覚えていると思いますが、次を使用して同じ問題を解決できます。 型の値そして タイプ:
関数 ISNULL
この関数は値を置き換えるように設計されています ヌル違う意味に。
私たちはその意味を覚えています ヌル要求された属性 (フィールド、プロパティ) が存在しない場合に返されます。
たとえば、小道具 特徴ディレクトリグループの場合 都市:
関数 無効であるこの値が次の値に等しい場合に、別の値を出力するのに役立ちます。 ヌル。 あなたはレッスンのトライアル版を読んでいますが、完全なレッスンが利用可能です。 この場合、「そのようなプロップはありません!」という行があるとします。
関数の最初のパラメータが 無効である等しくない ヌル、そして彼は戻ってきます。 NULL の場合、2 番目のパラメータが返されます。
エクスプレス機能
この関数は、複合タイプを持つフィールドのみに使用できます。 このような分野の優れた例は次のようなプロパティです。 特徴ディレクトリ要素の場合 都市.
覚えているとおり、複合フィールドはコンフィギュレーターで指定されたいくつかのタイプの 1 つです。
フィールド用 特徴そのような有効な型は ライン, ディレクトリ.カラーそして ディレクトリ.テイスト.
場合によっては、複合フィールドの値を特定の型にキャストすることが必要になることがあります。
すべてのフィールド値をリストしてみましょう 特徴入力し 参照.色:
その結果、次のタイプのすべての要素値が ディレクトリ.カラー、は埋められたままで、指定されたタイプに変換されました。 他の型のすべての値 ( ライン, ディレクトリ.テイスト) が等しくなりました ヌル。 これが関数を使った型キャストの特徴です 急行.
型をプリミティブ型 ( ブール値, 番号, ライン, 日付) または参照型に変換します。 あなたはレッスンのトライアル版を読んでいますが、完全なレッスンが利用可能です。 ただし、キャスト先の型は、この複合フィールドの型のリストに含まれている必要があります。そうでない場合、システムはエラーをスローします。
試験を受ける
テストの開始
1. 最も正しい文を選択してください
2. いくつかのタイプのいずれかの値を取ることができる詳細は、と呼ばれます
3. 属性値のタイプを決定するには、関数を使用します。
4. 複合型の空の詳細は重要です
残りを見てみましょう。
1C クエリで文字列を操作するための関数
1C クエリで文字列データを操作するための関数と演算子はほとんどありません。
まず、クエリに文字列を追加できます。 これを行うには、「+」演算子を使用します。
リクエスト。 テキスト = "選択
" "ライン: " " + ソース.名前
;
次に、線の一部を選択できます。 これを行うには、関数を使用します サブストラクション。この機能は、組み込みの 1C 言語に似ています。 これには 3 つのパラメータがあります。
- ソース文字列。
- 選択した行が始まる文字の番号。
- キャラクター。
リクエスト。 テキスト= "選ぶ
部分文字列(""ライン: " "、4、3) 結果として"; // 結果: OK
関数 無効である
NULL は、1C:Enterprise プラットフォームの特別なデータ型です。 これは、このタイプで唯一可能な値でもあります。 NULL はいくつかの場合にクエリ内に現れることがあります。クエリ ソースに接続するとき、テーブルの 1 つで対応する値が見つからなかった場合。 存在しないオブジェクトの詳細にアクセスするとき。 クエリフィールドのリストで NULL が指定された場合 (たとえば、複数のテーブルからの選択結果を結合する場合) など。
NULL は null でも空の文字列でも値でもないため 未定義、多くの場合、より便利なデータ型に置き換えると便利です。 これがこの機能が設計された目的です。 無効である。
これには 2 つのパラメータがあります。
- チェックされている値。
- 最初のパラメータが NULL であることが判明した場合に置き換える値。
リクエスト。 テキスト= "選ぶ
ISNULL(Source.Remainder, 0) AS Remainder";
// リクエストの結果がフィールド Remaind = NULL の場合、
// その後、0 に置き換えられ、それを使用して数学演算を実行できます
機能 パフォーマンスそして はじめにリンク
これらの関数は、さまざまな値の文字列表現を取得するように設計されています。 つまり、参照、数値、ブール値などを変換します。 プレーンテキストに変換します。 それらの違いは、機能です。 パフォーマンス任意のデータ型をテキスト (文字列) に変換し、関数 はじめにリンク- リンクのみを行い、残りの値は変換せずにそのまま返します。
リクエスト。 テキスト= "選ぶ
REPRESENTATION(TRUE) AS ブール値、
表現 (4) 数字として、
REPRESENTATION (Source.Link) AS リンク、
REPRESENTATION(DATETIME(2016,10,07)) AS 日付";
// ブール値 = "はい"、数値 = "4"、リンク = "ドキュメント現金領収書注文番号....から..."
// 日付 = "2016 年 7 月 10 日 0:00:00"
リクエスト。 テキスト= "選ぶ
REPRESENTATIONREFERENCE(TRUE) AS ブール値、
表現参照(4) 番号として
PRESENTINGLINK(Source.Link) AS リンク、
REPRESENTATIONREFERENCE(DATETIME(2016,10,07)) AS 日付";
// ブール値 = TRUE、数値 = 4、リンク = "文書現金受領書注文番号.... から..."
// 日付=07.10.2016 0:00:00
機能 タイプそして 型の値
関数 タイプ 1C:Enterprise プラットフォームのデータ型を返します。
リクエスト。 テキスト= "選ぶ
タイプ (数値)
タイプ (文字列)、
TYPE (文書。支出現金書)」;
関数 型の値渡された値の型を返します。
リクエスト。 テキスト= "選ぶ
値 タイプ (5) AS 番号、
タイプ (""ライン" ") AS 文字列、
TYPE (Source.Link) AS リファレンス
「ディレクトリから。ソース AS ソース」;
//Number=数値、String=文字列、ディレクトリ = DirectoryLink.Source
これらの関数は、リクエストで受信したフィールドが何らかの型の値であるかどうかを確認する必要がある場合などに使用すると便利です。 たとえば、ContactInformation 情報レジスタから取引先の連絡先情報を取得してみましょう (取引先だけでなく、組織、個人などの連絡先も保存されています)。
リクエスト。 テキスト= "選ぶ
から
どこ
値 TYPE(ContactInformation.Object) = TYPE(Directory.Counterparty)";
関数 意味
関数 意味を使用すると、 を使用せずに、リクエスト内で 1C 構成オブジェクトを直接使用できます。
前の例に条件をもう 1 つ追加してみましょう。 取引相手の電話番号を取得するだけで済みます。
リクエスト。 テキスト= "選ぶ
お問い合わせ情報.はじめに
から
情報の登録 連絡先情報 HOW 連絡先情報
どこ
値 TYPE(ContactInformation.Object) = TYPE(Directory.Counterparty)
AND ContactInfo.Type = VALUE(Enum.ContactInfoTypes.Phone)";
この関数は事前定義された値でのみ使用できることに注意してください。 コンフィギュレーターから直接アクセスできる値を使用します。 つまり、関数は 意味ユーザーが作成したディレクトリ要素とともに使用することはできませんが、列挙型、事前定義されたディレクトリ要素、および値を扱うことができます。 空のリンク.
オペレーター リンク
オペレーター リンクは、リクエストによって返された値をチェックして、それらが特定の参照型に属しているかどうかを確認するように設計されています。 関数を使用して同じタスクを実行できます タイプそして 型の値(これはより広い範囲を持ち、上で説明しました)。
たとえば、取引相手の連絡先情報を選択するタスクは次のように解決できます。
リクエスト。 テキスト= "選ぶ
お問い合わせ情報.はじめに
から
情報の登録 連絡先情報 HOW 連絡先情報
どこ
ContactInformation.Object LINK Directory.Counterparty";
オペレーター 急行
オペレーター 急行 1C クエリでは次の 2 つの場合に使用されます。
- プリミティブ型の特性を変更する必要がある場合。
- 複合データ型のフィールドを単一型のフィールドに変換する必要がある場合。
プリミティブ データ型には次のものがあります。 数値、文字列、日付、ブール値。これらのデータ型の一部には追加の特性があります。 タイプ 番号長さと精度、型を持ちます ライン -長さまたは無制限。
オペレーター 急行データ型ではなく、追加の特性を変更できます。 たとえば、長さ無制限の文字列を長さ制限のある文字列に変換できます。 これは、クエリ結果をそのようなフィールドごとにグループ化する必要がある場合に役立ちます。 長さに制限のないフィールドでグループ化することはできないため、長さが 200 文字の文字列に変換されます。
リクエスト。 テキスト= "選ぶ
数量 (商品およびサービスの異なる到着。リンク) AS リンク
から
文書。商品およびサービスの受け取り方法商品およびサービスの受け取り
グループ化
EXPRESS(商品およびサービスの受領。行(200)としてのコメント)」;
場合によっては、複合データ型のフィールドへのクエリが 1C プラットフォームによって最適に処理されないことがあります。 これによりクエリの実行時間が長くなるため、事前に複合型を単一型に変換すると便利な場合があります。
リクエスト。 テキスト= "選ぶ
EXPRESS(商品取引の移動.Order AS Document.Customer Order).Date AS 注文日、
商品の動き、回転率、命名法
から
累積の登録.商品の移動.売上高 AS 商品の移動売上高
どこ
GoodsTurnover.Order LINK Document.Client Order の移動」;
オペレーター 選択そして 無効である
オペレーター 選択オペレーターに似ている もし組み込みの 1C 言語で動作しますが、機能が若干制限されています。
ContactInformation 情報登録から連絡先情報を受け取り、同時にそれが取引相手に属するか個人に属するかを別の要求フィールドに指定したいとします。
リクエスト。 テキスト= "選ぶ
連絡先情報.はじめに、
選択
WHEN VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Counterparty)
それから "取引相手 "
他の選択肢
WHEN VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Individuals)
それから "個人"
ELSE「他の人」 "
終わり
所有者として終了
から
連絡先情報としての情報の登録。;
例からもわかるように、デザインでは 選択単語の後には常に条件があります いつ;単語の後の条件が true の場合に適用される値 それから条件が満たされない場合に適用される値 (単語の後に) さもないと。 3 つのデザイン要素すべて 選択は必須です。 要素を省略する さもないと、演算子を使用する場合と同じ方法 もし組み込みの 1C 言語では不可能です。 オペレーターからも 選択デザインの類似品はありません エルセイフ、ただし、1つ投資することができます 選択別の例では、この例で行ったように。
オペレーター 無効であるデザインで使用される 選択クエリフィールドを NULL 型と比較します。
リクエスト。 テキスト= "選ぶ
選択
値が NULL の場合は 0
ELSE 意味
終わり";
また、オペレーターは、 無効である文などのクエリ条件で使用できます どこ。