1C 会計の最後のエントリを検索する機能。 大文字と小文字の変換関数

組み込み言語 1C の 1C 8.3 の行はプリミティブ型の値を表します ライン。 このタイプの値には、任意の長さの Unicode 文字列が含まれます。 文字列型変数は、引用符で囲まれた一連の文字です。

例 1. テキストを含む文字列変数を作成してみましょう。

StringVariable = "こんにちは!";

1 秒で文字列を操作するための関数 8.3

このセクションでは、1c の行を変更したり、行に含まれる情報を分析したりできる主な機能を説明します。

StrLength

StrLength(<Строка>) 。 パラメータとして渡された文字列に含まれる文字数を返します。

例 2. 「Hello world!」という行の文字数を数えてみましょう。

文字列 = "Hello world!"; 文字数 = StrLength(文字列); レポート(文字数);

このコードを実行すると、その行の文字数が 11 と表示されます。

略語

略語(<Строка>) 。 文字列内の最初の重要な文字の左側にある重要でない文字を切り取ります。
小文字:

  • 空間;
  • 非改行スペース。
  • 集計;
  • キャリッジリターン;
  • 行の翻訳。
  • フォーム(ページ)の翻訳。

例 3. 「world!」という行の左側からすべてのスペースを削除します。 そこに「Hello」という行を追加します。

String = Abbreviation("world!"); 文字列 = "こんにちは"+文字列; レポート(文字列);

このコードを実行すると、画面に「Hello world!」という行が表示されます。

略称

略語(<Строка>) 。 文字列内の最初の重要な文字の右側にある重要でない文字を切り取ります。

例 4. 「Hello」と「peace!」の行からなるフォーム 「Hello world!」というフレーズ

Line = Abbreviation("Hello ")+" "+ Abbreviation("world!"); レポート(文字列);

略語LP

略語LP(<Строка>) 。 文字列内の最初の有効文字の右側にある非重要文字をトリムし、文字列内の最初の有効文字の左側にある非重要文字もトリムします。 この関数はより汎用的であるため、前の 2 つの関数よりも頻繁に使用されます。

例 5. 取引先名の左右にある重要でない文字を削除します。

Counterparty = Directorys.Counterparty.Find ByDetails("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

ライオン

ライオン(<Строка>, <ЧислоСимволов>) 。 文字列の最初の文字を取得します。文字数はパラメータで指定されます 文字数。

例 6. 構造を導入する 従業員従業員の姓名と愛称が含まれます。 姓とイニシャルを含む文字列を取得します。

NameInitial = Lev(従業員.名前, 1); 父称イニシャル = Leo(従業員.父称, 1); FullName = 従業員.姓 + " " + 名のイニシャル + "." + ミドルイニシャル + ".";

右(<Строка>, <ЧислоСимволов>) 。 文字列の最後の文字、パラメータで指定された文字数を取得します。 文字数。指定した文字数が文字列の長さを超える場合は、文字列全体が返されます。

例 7. 文字列変数の末尾に「yyyymmdd」形式の日付を書き込み、日付を含む文字列を取得して型に変換します。 日付.

文字列 = "現在の日付: 20170910"; StringDate = Rights(String, 8); 日付 = 日付(文字列日付);

水曜日

水曜日(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) 。 パラメータとして渡された文字列から部分文字列を取得します ライン、パラメータで指定された番号の文字から始まります 初期番号パラメータに渡される長さ 文字数。行内の文字の番号は 1 から始まります。 初期番号ゼロ以下の値が指定された場合、パラメーターの値は 1 になります。 文字数を指定しない場合は、行末までの文字が選択されます。

例 8. 9 番目の位置から始まる文字列変数に地域コードを含めます。地域コードを取得して別の行に記述する必要があります。

文字列 = "地域: 99 モスクワ"; 領域 = Avg(文字列, 9, 2);

ページ検索

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) 。 文字列内で指定された部分文字列を検索し、見つかった部分文字列の最初の文字の位置番号を返します。 この関数のパラメータを見てみましょう。

  • ライン。 ソース文字列。
  • 部分文字列の検索。 部分文字列を検索します。
  • 検索方向。 文字列内の部分文字列を検索する方向を指定します。 値を受け取ることができます:
    • 検索方向。開始点から;
    • 検索終了方向;
  • 初期位置。 検索を開始する文字列内の位置を指定します。
  • 出現数。 ソース文字列内の検索された部分文字列の出現数を指定します。

例 9. 「Hello world!」という行 「and」文字が最後に出現する位置を確認します。

PositionNumber = StrFind("Hello world!", "and", SearchDirection.End); レポート(位置番号);

このコードを実行すると、最後に出現した「and」記号の番号 9 が表示されます。

VReg

VReg(<Строка>) 。 1s8 の指定された文字列内のすべての文字を大文字に変換します。

例 10: 文字列「hello world!」を変換します。 大文字にします。

StringVreg = VReg("hello world!"); レポート(StringVreg);

このコードを実行すると、「HELLO WORLD!」という行が表示されます。

NReg

NReg(<Строка>) 。 1s 8 の指定された文字列のすべての文字を小文字に変換します。

例 11: 文字列「HELLO WORLD!」を変換します。 小文字にします。

StringNreg = NReg("HELLO WORLD!"); レポート(StringVreg);

このコードを実行すると、「hello world!」という行が表示されます。

トレッグ

TReg(<Строка>) 。 文字列を次のように変換します。各単語の最初の文字が大文字に変換され、単語の残りの文字が小文字に変換されます。

例 12: 「hello world!」という行の単語の最初の文字を大文字にします。

StringTreg = TReg("hello world!"); レポート(文字列Treg);

このコードを実行すると、「Hello World!」という行が表示されます。

シンボル

シンボル(<КодСимвола>) 。 Unicod コードで文字を取得します。

例 13. 「Hello World!」行に left と right を追加します。 記号★

StringWithStars = Symbol("9733")+"Hello World!"+Symbol("9733"); レポート(StringWithStars);

このコードを実行すると「★Hello World!★」という行が表示されます。

シンボルコード

シンボルコード(<Строка>, <НомерСимвола>) 。 最初のパラメータで指定された文字列から、2 番目のパラメータで指定された位置にある Unicode 文字コードを取得します。

例 14. 「Hello World!」という行の最後の文字のコードを調べます。

文字列 = "Hello World!"; CharacterCode = CharacterCode(String, StrLength(String)); 通知(文字コード);

このコードを実行すると、シンボルコード「!」が表示されます。 - 33.

空行

空行(<Строка>) 。 文字列が重要でない文字のみで構成されているかどうか、つまり空であるかどうかを確認します。

例 15. 3 つのスペースで構成される文字列が空かどうかを確認します。

空 = EmptyString(" "); レポート(空);

このコードを実行すると、「Yes」という単語(論理値の文字列表現)が表示されます。 真実).

ページ置換

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) 。 ソース文字列内で出現する検索部分文字列をすべて検索し、置換部分文字列で置き換えます。

例 16. 「Hello World!」という行 「平和」という言葉を「友達」という言葉に置き換えてください。

String = StrReplace("Hello World!", "ワールド", "フレンズ"); レポート(文字列);

このコードを実行すると、「Hello Friends!」という行が表示されます。

StrNumberLines

StrNumberRow(<Строка>) 。 複数行の文字列の行数をカウントできます。 1 秒 8 の新しい行に移動するには、記号を使用します。 PS(改行文字)。

例 17. テキストの行数を決定します。
「一行目
二行目
3行目」

Number = StrNumberString("1行目"+Characters.PS +"2行目"+Symbols.PS +"3行目"); レポート(番号);

このコードを実行すると、テキストの行数が 3 と表示されます。

StrGetString

StrGetString(<Строка>, <НомерСтроки>) 。 複数行文字列内の行を番号で取得します。 行番号は 1 から始まります。

例 18. テキストの最後の行を取得します。
「一行目
二行目
3行目」

テキスト = "1 行目" + 記号.PS + "2 行目" + 記号.PS + "3 行目"; LastRow = StrGetRow(Text, StrNumberLines(Text)); レポート(最終行);

このコードを実行すると、「3行目」という行が表示されます。

ページ番号の発生数

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) 。 文字列内の指定された部分文字列の出現回数を返します。 この関数では大文字と小文字が区別されます。

例 19. 大文字と小文字に関係なく、「Lines in 1s 8.3 and 8.2」という行に文字「c」が何回出現するかを調べます。

Line = "1s 8.3 および 8.2 のライン"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); レポート(発生回数);

このコードを実行すると、出現回数が 2 と表示されます。

ページの始まり

StrStartsWith(<Строка>, <СтрокаПоиска>) 。 最初のパラメータで渡された文字列が 2 番目のパラメータの文字列で始まるかどうかを確認します。

例 20. 選択した取引相手の TIN が数字 1 で始まるかどうかを判断します。変数を入力します。 取引相手 取引相手.

TIN = 取引相手.TIN; StartsUNits = StrStartsWith(TIN, "1"); If 単位で始まる then // コード EndIf;

ページ終了オン

StrEndsWith(<Строка>, <СтрокаПоиска>) 。 最初のパラメータで渡された文字列が 2 番目のパラメータの文字列で終わるかどうかを確認します。

例 21. 選択した取引相手の TIN が数字 2 で終わるかどうかを判断します。変数を入力します。 取引相手ディレクトリ要素への参照が保存されます 取引相手.

TIN = 取引相手.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo then // コード EndIf;

ページ分割

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) 。 指定された区切り文字を使用して文字列を部分に分割し、結果の文字列を配列に書き込みます。 最初のパラメータにはソース文字列が格納され、2 番目のパラメータには区切り文字を含む文字列が含まれ、3 番目のパラメータには空の文字列を配列に書き込むかどうかを示します (デフォルトでは)。 真実).

例 22. 記号「;」で区切られた数値を含む文字列を用意し、その文字列から数値の配列を取得します。

文字列 = "1; 2; 3"; 配列 = StrDivide(String, ";"); Count = 0 By Array.Quantity() - 1 サイクル試行 Array[Count] = Number(AbbrLP(Array[Count])); 例外配列[Sch] = 0; EndAttemptsEndCycle;

実行の結果、1から3までの番号が入った配列が得られます。

ページコネクト

StrConnect(<Строки>, <Разделитель>) 。 最初のパラメーターの文字列の配列を、2 番目のパラメーターで指定された区切り文字で区切られた配列のすべての要素を含む文字列に変換します。

例 23. 前の例の数値配列を使用して、元の文字列を取得します。

アカウント = 0 By Array.Quantity() - 1 サイクル Array[Act] = String(Array[Act]); エンドサイクル; 行 = StrConnect(配列, "; ");

今回は1C Enterprise 8のクイック検索機能についてお伝えします。 クイック検索とは何ですか?とてもシンプルです。 クイック検索は、1C レコードの大きなリストをナビゲートする方法の 1 つです。 これらは、ドキュメント、ディレクトリ、レジスタなど、表に表示されているすべてのリストにすることができます。

クイック検索とは何ですか?

1C Enterprise ドキュメントのクイック検索機能は非常に便利で、大量のデータを (スクロール バーなどを使用して) スクロールしなくても、リスト内の目的の場所にすぐに移動できます。 残念ながら、1C Enterprise 8 (1C Accounting 8 を含む) の初心者ユーザーは、最初はクイック検索機能を使用せず、ドキュメントのリストを手動でスクロールすることを好みます (また、 とても大きい)。 この記事は、1C でのクイック検索の使用方法を理解するのに役立ちます。

まず、管理フォーム上に構築された 1C Enterprise 8 構成では、クイック検索の動作が 1C の以前のバージョンとは異なることに注意してください。 したがって、管理フォームと通常のフォームでのクイック検索の使用を個別に分析します。

1C Accounting 8.2 のクイック検索

1C Accounting 8.0 から 8.2 のバージョンの場合この機能は特に次の目的で使用されます。 遷移リストの目的の部分に移動します。 たとえば、図に示す勘定科目表ウィンドウを見てください。


ウィンドウ内で特定の行が強調表示されます。 赤い矢印が指す、ストライプの微妙な三角形に注目してください。 リストがある他の Windows プログラム (エクスプローラーなど) と同様に、このマーカー (三角形) の位置によってリスト全体の並べ替えが決まります。 マーカーがどの列に配置されるかによって、リスト全体がその列でソートされます。この図では、マーカーはコード列にあるため、勘定科目表内の勘定科目はコードによって並べ替えられます。

マーカーをある列から別の列に移動するには、目的の列をクリックします ( コラム「見出し」にあります!) マウスを使用して。 マーカーがすでに現在の列にある場合、クリックすると並べ替え方向が逆に変更されます (つまり、大から小へ、またはその逆)。 これは、Windows プログラムの標準的な動作です。 1C Enterprise におけるこのマーカーの特徴は何ですか?また、それがクイック検索とどのように関係していますか?

1C Enterprise 8 リストのクイック検索は、マーカーが配置されている列によって実行されます。この場合、勘定科目表のクイック検索は、「コード」列を使用して実行されます。

記事の重要な部分がありましたが、JavaScript がないと表示されません。

1C でクイック検索を使用するにはどうすればよいですか?簡単に! この列に検索したい内容を入力してください。、つまり マーカーがある場所。 上図の例では、口座番号を入力する必要があります。 たとえば、アカウント 50 Cash を検索するとします。 この場合は、( どこをクリックする必要もありません。) キーボードから番号 50 を入力し、この列にその番号のアカウントがある場合 (もちろん、1 つあります)、リストがこの行までスクロールし、その行自体が強調表示されます。 結果は、以下の勘定科目表のスクリーンショットに示されています。

Webサイト_

矢印が指すテキストは 後で洗う必要はありません- 彼は自然に消えるでしょう。

上の例では、「Cashier」という単語の入力を開始すると、ウィンドウの下部にあるテキストが入力されてから消去されます。 これが起こるのは、すぐに 始める入力されたクイック検索文字列がこの列の少なくとも 1 行の先頭と一致しなくなった場合、1C Enterprise は検索された文字列が見つからなかったと判断し、その文字列を自動的に消去します。 これによると 覚えておくべきルールが 2 つあります.

1C Enterprise 8 では、行の先頭でクイック検索が実行されます。 列内で、入力されたテキストとこの列のいずれかの行の先頭との一致が検索されます。
これは重要な推奨事項につながります。ディレクトリにデータを入力するときは、クイック検索で簡単に見つけられるように要素に名前を付けます。 たとえば、取引相手の名前を「Firm Name LLC」と書くよりも「Firm Name LLC」と書く方が適切です。 さらに、名前に引用符やその他の不必要な記号を使用しないでください (フォームの名前フィールドに入力することについて話しています)。

テキストを入力し始めてそれが消えてしまった場合、探しているものはこの列にはありません。この場合、入力言語とクイック検索を実行する列を確認してください。 典型的な間違いは、間違った列が選択されていることです。 たとえば、コード列にマーカーを設定し、アカウント名で検索します。

1C Accounting 8.3 のクイック検索

次に、バージョン 1C Enterprise 8.3 でのクイック検索の違いを見てみましょう。 使用方法はバージョン 8.2 とほぼ同じですが、覚えておくべき大きな違いが 1 つあります。

1C Accounting 8.3 では、管理フォーム上の他の構成 (同じ新しいインターフェイス) と同様に、フィルターとして機能します。 簡単に言うと、クイック検索機能の結果として、リストの一部が 隠蔽.

これからこれを使用する方法を見ていきます。 まず、以下の 1C Accounting 8.3 勘定科目表ウィンドウのスクリーンショットを見てください。

Webサイト_

ご覧のとおり、同じマーカーが列の 1 つにあります。 マーカーが設置されている列でも検索が行われます。 これはすべて変わりません。 ただし、テキスト (この例では口座番号) の入力を開始すると、次のことが起こります。

Webサイト_

ご覧のとおり、検索ウィンドウが自動的に開きました。 ウィンドウ ツールバーの検索ボタン (図の下線) をクリックすると、まったく同じウィンドウが開きます。 その結果、検索ウィンドウ (図のドロップダウン メニューの後ろに隠れています) の [検索] ボタンをクリックするか、単に Enter キーを押すと、次の結果が得られます。

Webサイト_

このことから明らかなように、 1C Accounting 8.3 のクイック検索では、検索条件を満たすリストの一部が表示されたままになります。この場合、「検索」ボタンが消え、その代わりに十字のレンズが表示され(図の下線)、クリックするとリストが元の状態に戻ります(クイック検索の結果見つかった行は強調表示されたままになります)。 。

1C Accounting 8.3 のクイック検索のもう 1 つの重要な機能— バージョン 8.2 のように、行の先頭で一致は検索されませんが、列内の行の任意の部分との一致が検索されます。 したがって、取引相手に「Firm Name LLC」という名前を付け、検索するときに「Firm Name LLC」と入力し始めると、その明細は引き続き検索されます。

結論を下す

したがって、1C Accounting 8.2 以前のバージョンのクイック検索は、リストを目的の行までスクロールすることを目的としており、1C Accounting 8.3 のクイック検索は通常のフィルタのように機能し、リストの不要な部分を非表示にします。

ホーム ノート 『鏡の国のアリス』

2013/02/07 文字列で検索

バージョン 8.3.3.641 で実装されました。

ライン入力を大幅に改善しました。 これを行うには、入力フィールドに新しい強力な検索メカニズムを実装する必要がありました。 今では、データベースに含まれる何百万ものレコードを迅速に処理できるようになりました。

ユーザーが遭遇する検索タスクを分析しました。 私たちは、さまざまな検索アルゴリズムを使用するプラットフォームで利用可能なメカニズムの「監査」を実施しました。 その結果、ライン入力はまったく新しい機能を獲得しました。

ユーザーは行頭だけでなく、タイトル内のどこでも検索できるようになりました。 全文検索を使用したり、バックグラウンド ジョブを使用して検索を実行したりすることもできます。 行ごとの入力に対して全文検索が効果的に機能するように、検索エンジンをさらに最適化し、パフォーマンスを向上させました。

構成オブジェクト編集ウィンドウの別のタブで入力を行ごとにカスタマイズできるようにする新しいプロパティをすべて収集しました。

たとえば、文字列の先頭だけでなく、文字列内の任意の場所で検索を実行するように指定できます。

その後、ユーザーは検索文字列の先頭の文字だけでなく、任意の単語の断片を入力できるようになります。

行を入力するときの全文検索の使用は、別のプロパティによって有効になります。

全文検索を使用すると、ユーザーは、たとえば名前に含まれる単語を使用して、大量のデータの中から関連するデータをすばやく見つけることができます。

いくつかの既知の単語を使用して検索することもできます。 未完成の単語は、可能な組み合わせで自動的に完成します。

データの量が多い場合は、どちらの場合もバックグラウンド ジョブを使用して検索を実行するように指定できます。

次に、入力フィールドの横に、レポートがバックグラウンドで実行されるときに表示される画像と同様のアニメーション画像がユーザーに表示されます。

  • 入力フィールドで使用されるオブジェクトに大量のデータが含まれることが予想されない場合は、任意の場所で文字列検索を有効にすることをお勧めします。
  • オブジェクト内に大量のデータが計画されている場合は、次のようになります。
    • 全文検索とバックグラウンド検索を有効にすることをお勧めします。
    • 同時に、どこでも文字列検索を使用できますが、バックグラウンド検索と組み合わせて、できれば全文検索と組み合わせてください。 そのため、ほとんどの検索は全文検索を通じて実行されます。

必要に応じて、アプリケーション ソリューションの実行中に、リストされたすべてのプロパティを再定義できます。

クライアント上 - クライアント入力フィールドのイベント ハンドラー 自動選択 そして EndInputText :

サーバー上 - データが検索されているオブジェクトのマネージャー モジュール内。 イベントハンドラ内で 処理受信選択データ :

当然のことながら、サーバー上のこの場所では、検索の実行方法をオーバーライドすることはできません。 "直接" または 「裏方の仕事」 。 コードの実行はすでにサーバーに転送されているためです。

こんにちは、みんな
今日、実装ドキュメントを印刷するときにドキュメントのプレフィックスを表示しないように依頼されました。私は次のように問題を解決しました。

StrReplace(数値, Lev(数値, 3), "" );

構文アシスタントを調べてみたらとても気に入ったので、それについて書きたいと思いました。 1C:Enterprise での文字列の操作.

1C の文字列はプリミティブ データ型を指します。

1C のヘルプを見ると、String 型について次のような説明があります。
このタイプの値には、任意の長さの Unicode 文字列が含まれます。
文字列について自分の言葉を使えばうまくいきます。 文字列はさまざまな文字で構成される定数であり、常に引用符で囲まれます。

ラインを設定する
挨拶 = 「こんにちは乗客」;

一般的な構成における複数行は、ほとんどの場合、垂直区切り文字「|」を使用して作成されます。
文字列 = "複数行
|文字列
|書く
|テキスト";

文字列内の引用符は二重引用符で指定します。
文字列 = ""引用符内のテキスト"";

文字列には多くの操作 (文字列内の検索、最初の操作の決定など) があるため、構文アシスタントを確認することをお勧めします。
構文ヘルパー - 組み込み言語の一般的な説明 -> 組み込み関数 -> 文字列を操作するための関数。

文字列を操作するための関数

文字列を操作する関数の簡単な概要は次のとおりです。

VReg(<Строка>) — この関数は、文字列内のすべての文字を大文字に変換します。

シンボルコード(<Строка>, <НомерСимвола>) – 関数は、送信された文字列内の指定された番号の位置にある文字のコードを受け取ります。

ライオン(<Строка>, <ЧислоСимволов>) – この関数は、文字列の左から最初の文字を選択します。

探す(<Строка>, <ПодстрокаПоиска>) — この関数は、ソース文字列内の部分文字列として検索文字列の出現を見つけます。

NReg(<Строка>) — この関数は、文字列内のすべての文字を小文字に変換します。

右(<Строка>, <ЧислоСимволов>) – この関数は、文字列の右側から最後の文字を選択するという点で Left 関数とは異なります。

空行(<Строка>) — この関数は、文字列に有効な文字が存在するかどうかをチェックします。

シンボル(<КодСимвола>) — この関数は、文字コードをその文字を含む文字列に変換します。

略語(<Строка>) — この関数は、文字列内の最初の重要な文字の左側にある重要でない文字を切り捨てます。

略語LP(<Строка>) — この関数は、行内の最初の重要な文字の左側にある非重要な文字をトリミングし、行内の最後の重要な文字の右側にあるスペースを削除します。

略語(<Строка>) — この関数は、文字列内の最後の重要な文字の右側にある重要でない文字を切り捨てます。

水曜日(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — この関数は、次の文字で始まる文字列を選択します。<НачальныйНомер>、合計数<ЧислоСимволов>.

StrLength(<Строка>) — この関数は、行内の文字数を取得します。

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — この関数は、ソース文字列内で出現する検索部分文字列をすべて検索し、それを置換部分文字列に置き換えます。

StrGetString(<Строка>, <НомерСтроки>) - この関数は、数値によって複数行の文字列を取得します。

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — この関数は、ソース文字列内の検索部分文字列の出現数を計算します。

StrNumberRow(<Строка>) — この関数は、複数行の文字列の行数をカウントします。 複数行の文字列では、行は改行で区切られます。

TReg(<Строка>) — この関数は文字列をタイトルケースに変換します。 これは、各単語の最初の文字がタイトルケースに変換されるか、文字にタイトルケースが指定されていない場合は大文字に変換されることを意味します。 残りの文字は小文字に変換されます。

型変換
データ型を明示的に変換する場合、変換が行われるデータ型と同じ名前の関数があります。 String(<Значение>)

StringFromNumbers = 文字列(数値);

これらすべての関数は、構文アシスタントで詳しく説明されています。この記事では、構文アシスタントが初心者プログラマをどのように支援できるかについて説明しました。

文字列を操作する例

数値を文字列に変換したり、その逆を行ったりします。

年の文字列表現を取得するには、Format 関数を使用します。

Year = Format(CurrentDate(), "DF=yyyy") // 年 = "2012"

グループ区切り文字 (非改行スペース) を挿入せずに数値を文字列に変換するには、NG=0 パラメーターを指定して Format 関数を使用する必要があります。

数値 = 2012 行 = Format(数値, "NH=0" ); //文字列 = "2012"

文字列 スペースは使用できません。

1C クエリで文字列を操作するメカニズムはほとんどありません。 まず、行を追加できます。 次に、文字列から部分文字列を取得できます。 第三に、パターンによるものも含めて文字列を比較できます。 おそらく文字列でできることはこれだけです。

文字列の追加

クエリに行を追加するには、「+」演算を使用します。 制限された長さの文字列のみを追加できます。

SELECT "名前: " + 取引相手。名前 AS 列 1 FROM ディレクトリ。取引相手 AS 取引相手 WHERE 取引相手。リンク = &Link

部分文字列関数

部分文字列(<Строка>, <НачальнаяПозиция>, <Длина>)

オブジェクト モデルのEnvironment()関数に相当します。 Substring() 関数は文字列データに適用でき、フラグメントを選択できます。 <Строки> 、文字番号で始まる <НачальнаяПозиция> (行内の文字には 1 から始まる番号が付けられます) と長さ <Длина> 文字。 関数の計算結果は可変長の文字列型であり、次の場合、長さは無制限とみなされます。 <Строка> 長さとパラメータは無制限です <Длина> は定数ではないか、1024 より大きくありません。

文字列の長さが 2 番目のパラメータで指定した長さより短い場合、関数は空の文字列を返します。

注意! SUBSTRING() 関数を使用して、無制限の長さの文字列を制限された長さの文字列に変換することはお勧めできません。 代わりに、キャスト演算子 EXPRESS() を使用することをお勧めします。

同様の機能

文字列属性が特定の基準を満たしていることを確認する必要がある場合は、それを比較します。

SELECT 取引相手。名前 AS 列 1 FROM ディレクトリ。取引相手 AS 取引相手 WHERE 取引相手。名前 = "Gazprom"

しかし、より微妙な比較が必要な場合はどうすればよいでしょうか? 単なる平等か不平等ではなく、あるパターンとの類似性でしょうか? これはまさに SIMILAR 関数が作成された目的です。

LIKE — 文字列とパターンの類似性をチェックする演算子。 SQL の LIKE に相当します。

SIMILAR 演算子を使用すると、左側に指定された式の値と右側に指定されたパターン文字列を比較できます。 式の値は文字列型である必要があります。 式の値がパターンと一致する場合、演算子の結果は TRUE になり、そうでない場合は FALSE になります。

テンプレート文字列内の次の文字はサービス文字であり、文字列文字とは異なる意味を持ちます。

  • % (パーセント): 任意の数の任意の文字を含むシーケンス。
  • _ (アンダースコア): 任意の 1 文字。
  • […] (角括弧内の 1 つ以上の文字): 角括弧内にリストされた任意の 1 文字。 列挙には、範囲 (範囲の終わりを含む範囲に含まれる任意の文字を意味する) などの範囲を含めることができます。
  • [^...] (角括弧内の否定記号とそれに続く 1 つ以上の文字): 否定記号の後にリストされているもの以外の任意の 1 文字。

他のシンボルはそれ自体を意味し、追加の負荷はかかりません。 リストされた文字の 1 つをそれ自体として記述する必要がある場合は、その文字の前に次の文字を付ける必要があります。<Спецсимвол>。 自分自身<Спецсимвол>(任意の適切な文字) は、同じステートメント内の SPECIAL CHARACTER キーワードの後に​​定義されます。