1c モーダルモード。 「このモードでのモーダルウィンドウの使用は禁止されています」の場合はどうすればよいですか。 一般ユーザー向けのエラー修正手順

09.02.2022

15
通常のアプリケーションまたは管理されたアプリケーションでエンタープライズを強制的に起動するには、次のキーを使用します。 /RunModeOrdinaryApplication 構成設定とユーザーの代理に関係なく、シック クライアントを通常モードで起動します。 3
ユーザーが自分用に設定されたインターフェイスを変更できないようにする必要があります。 解決策: これを無効にするには、ルート構成要素のアクセス権から「ユーザー データの保存」権限を削除する必要があります。 パネル設定およびメニュー項目は無効になります。 2
現在の作業では、ユーザーは通常、複数のオブジェクトを開きます。 これは、文書、参考書、レポートなどです。 以前のインターフェイスでは、開いているオブジェクトをすばやく見つけて更新することに問題はありませんでした。 さらなる仕事 Windows を使用するか、 2
前回の記事: 1C へのアドレス分類器 (KLADR) のインストールでは、KLADR とは何か、およびそれを 1C にロードする方法について説明しました。 規則的な形式(8.0-8.2)。 この記事では、マネージド インターフェイスにアドレス分類子 (KLADR) をロードする方法と、 2
多くの場合、特定の構成を開発するとき、ユーザーは写真をディレクトリ要素に添付してデータベースに保存したいと考えます。 この記事では、ディレクトリ形式の写真ストレージを構築オブジェクト ディレクトリに接続する方法を説明します。

ダイアログ ボックスは、あらゆる種類のシステム、特に 1C で作業するときによく使用されますが、さまざまなアクションを実行するときに表示され、ユーザーに特定の値、ファイルの選択、ファイルの選択などのデータの入力を要求することがあります。質問に答えるか、警告を発するだけです。 モーダルとも呼ばれます。

このような窓口の要求に応答しなければ、プログラムの作業を続行することはできません。 ウィンドウはインターフェイスをブロックし、他のウィンドウの作業をブロックします。同時に、プログラム コードの実行もダイアログが呼び出された場所で停止します。プログラムはダイアログでのアクションの完了を待ちます。

通常、ダイアログはシン クライアントおよびシック クライアント起動モードでは問題を引き起こしませんが、Web クライアントを使用する場合には問題が発生する可能性があります。 これは、インターネット上の同じシステム要素が広告媒体として使用されており、ユーザーがブラウザの設定で表示を無効にしていることが多いためです。 したがって、Web ブラウザを通じて実行されるプログラムでは、彼らの作業がブロックされます。 したがって、Web クライアントまたはモバイル プラットフォームを介して 1C を操作する場合は、次のことを忘れないようにしてください。 追加設定ブラウザを使用して、それを覚えておいてください モバイルブラウザポップアップ メッセージはまったくサポートされていません。

1C のエラーを解決する方法: 「このモードでのモーダル ウィンドウの使用は禁止されています」

このエラーは、1C が に切り替わった後に表示されるようになりました。 新しいインターフェースプラットフォーム 1C 8.3 – 「タクシー」。 これは、開発者が Windows での作業を組み込んでいたものの、モダリティ モードを使用していなかったという事実によるものです。

図1

開けましょう 情報ベース「コンフィギュレーター」モードで右クリックし、「プロパティ」コマンドを選択して構成のプロパティを確認します。 下の行を下にスクロールすると、「互換性」セクションが表示されます。ここには、関心のあるモードパラメータがあり、「使用する / 警告付きで使用する / 使用しない」というオプションがリストされています。



図2

この後、構成の変更を保存して更新する必要があります。 ここで説明しているエラーは、チェックボックスがモダリティ モードを使用しないように設定されている場合に表示されます。 この機会は、2013 年 9 月にリリースされたプラットフォーム 8.3.3.721 から登場しました。 つまり、古いバージョンのプラットフォームを実行しているユーザーは、モダリティをオプトアウトする必要はありません。 他のバージョンでは、「使用する」に設定するだけでエラーウィンドウが表示されなくなります。

この例では、警告オプションが設定されています。 もちろん、将来的には、開発者はモーダル ウィンドウをバイパスする他の機能を使用できるように構成を改善する予定です。 しかし、今日の例のモードは、開発者が移行中に、構成全体がまだモードレス モードに変換されていないときに使用するものとまったく同じです。 したがって、プログラムはモーダル特性を持つウィンドウの禁止に関するメッセージも発行します。



図3

Web クライアント、iPad、クラウド (たとえば「1cfresh.com」) を通じて使用されるアプリケーションは、このモードを使用しません。 新しい設定はすべてモードレス インターフェイス モードを使用します。

モダリティの拒否

世界的なトレンドをサポートする 1C プログラムの開発者は、プログラム インターフェイスを Web サンプルに近づけて単一の標準に近づけようとしています。これにより、使い慣れた「外部」インターフェイスを使用して 1 つのウィンドウで作業できる機会がユーザーに提供されます。

したがって (そして上記の問題を軽減するために)、ソリューションの機能を制限することなく、ポップアップ ダイアログを削除することが決定されました。 この場合、プログラムの新しい操作モードのメッセージは、以前のようにモーダル ウィンドウには表示されず、親ウィンドウ内に表示されます。 ただし、それでもインターフェイス全体がブロックされます。

つまり、この革新によりブラウザーの追加設定が不要になり、Web クライアントが安定し、パフォーマンスが向上します。 また、ポップアップを開く必要がなくなったため、これらの変更を加えた構成はどのデバイスでも使用できます。

「モーダルウィンドウを使用する このモード"禁止" - 1C 8.3 プラットフォームの新しいインターフェイス " " の登場により、このエラーが 1C ユーザーとプログラマを悩ませ始めています。

1C テクノロジー プラットフォームの開発者は時代に遅れずに、ソリューションを世界的な開発標準に標準化しています ソフトウェア。 すべての標準は、何らかの形で、Web ページに近い単一のインターフェイスに帰着します。

モーダル ウィンドウやポップアップ ウィンドウは悪い形式とみなされており、ソフトウェア開発では長い間正常ではなくなりました。 ユーザーは「1 つのウィンドウ」で作業することに慣れています。

特に、次の 1C メソッドでモダリティ エラーがよく見られます。

  • 質問;
  • 警告;
  • オープンバリュー。

新しい「タクシー」インターフェースのリリースにより、1C 8 プラットフォームの開発者は、アプリケーション ソリューション開発者を新しい方法で再トレーニングするという正しい決定を下しました。 それらは含まれています 新しいプラットフォーム機会 - 「モダリティの使用方法」。

クイックフィックス

理解する時間がなく、問題をすぐに解決する必要がある場合は、シンプルではあるが完全ではないものを提供します。 正しい決断。 エラーをすぐに修正するには、構成プロパティでモダリティ モードを変更するだけです。

これを行うには、モードでシステムにログインし、設定を開きます。

オープン構成では、次のように呼び出します。 コンテキストメニュー構成ルートを右クリックして「プロパティ」を選択します。

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

設定プロパティが開きます。フッターには目的のプロパティ「モダリティ使用モード」があり、「使用」モードを選択します。

その後、「F7」キーを押して変更を保存し、適用します。

問題の正しい解決策

この問題を解決する正しい方法は、構成を変更するか、 外部処理新しい要件に対応します。

警告、質問、 ダイアログボックスおよびその他のモーダル ウィンドウ - これらすべてを新しい方法で書き直す必要があります。

モーダル ウィンドウを呼び出す組み込み演算子は、重複した関数に置き換える必要があります。

例えば:

  • 警告 - 警告を表示;
  • 質問 - ShowQuestion (詳細 - );
  • — ShowInputNumbers。

同時に、特殊なオブジェクトである通知の説明が表示されました。

交換例:

文字列 = "" ; EnterString(文字列,「文字列値を入力してください」

) Notify("入力されました" + String) ;

以下に置き換える必要があります: 文字列 = "" ;説明アラート = 新しい説明アラート( EnterString(文字列,) ;

「テストライン入力」

、このフォーム) ;

ShowLineInput(説明アラート、文字列、

同時に、ユーザーが値を入力したときに機能する同様のプロシージャをクライアントに追加します。

&クライアント上でのプロシージャ TestInputString(ReceivedValue, PassedParameters) Export Notify("You enter " + String) ; 手順の終了構成内で開発されたフォームは、同じ方法で開きます。 「OpenFormModal」メソッドを「OpenForm」に置き換えて、アラートの説明とそれに必要な新しい手順を指定するだけで十分です。

フォームを開いて呼び出されたフォームへのアクセスをブロックするには、フォーム プロパティ "WindowOpenMode" で値 "Block owner window" を指定するだけです。

1C:Enterprise 8.3 プラットフォームの構成プロパティには、モダリティを使用するためのモードがあります。 このフィールドの値が「使用しない」の場合、モーダル ウィンドウを開こうとすると、プラットフォームは「このモードでのモーダル ウィンドウの使用は禁止されています。」というメッセージを表示します。 この場合、実行 プログラムコード止まります。

この記事では、モーダルモードが無効になっている場合のユーザーへの質問を例に、プログラムコードを変更する仕組みを説明します。

開発中に定期的に< >ソフトウェア製品 、実行されているアクションについてユーザーに尋ねる必要があります。 たとえば、表形式のパーツを自動的に入力する場合です。 PM を補充する前に、その必要性についてユーザーに尋ねる必要がある場合。 そして、彼の答え次第で、PMはクリアされ、補充されるかどうかが決まります。答え = DialogReturnCode の場合。 いいえその後戻ります。 EndIf ;// ユーザーは続行に同意します 午後。 クリア() ; EndIf ; // さらにアクションを実行します// PM が空だった場合、またはユーザーが補充に関する質問に肯定的に答えた場合、プログラムはここに進みます。

さらにアクションを実行する () ;

モーダル モードが無効になっている場合、このコードの質問行でエラーが発生し、それ以降の実行は中断されます。 これは、質問機能がモーダル ウィンドウを使用するために発生します。

この状況では、ShowQuestion プロシージャを使用する必要があります。 この手順は、ユーザーの応答が完了するのを待ちません。 ただし、このプロシージャの最初のパラメータはアラートの説明であり、ユーザーの応答を追跡するために使用されます。

以前に記述したコードはどのように変化するか: // PMデータを記入する必要があります// PM が満杯かどうかをチェックする< >午後なら。 量() 0 それから// PM は空ではありません。補充についてユーザーに尋ねる必要があります ShowQuestion(新しい説明アラート("リフィル TCCompletion " 、ThisObject、AdditionalParameters) 、" PMは補充されます。 続く?"、ダイアログ モード質問。はい、いいえ) ; // この行では質問ウィンドウが表示されますが、コードの実行は停止しませんさもないと // PM が空の場合、プログラムはここに進みます さらにアクションを実行() ; . . . EndIf ; // PM が空かどうかにかかわらず、プログラムはいずれの場合もここに到達します。// (もちろん、前のコードにエラーがあった場合を除きます) // 同じモジュール内のエクスポート手順// ユーザーが質問に回答した後に呼び出されます & クライアントプロシージャで TCCompletion (応答結果、追加パラメータ) をリフィルします。応答結果 = ダイアログリターンコードの場合にエクスポートします。 いいえ、それでは // ユーザーが続行を拒否しました戻る ; EndIf ;

// さらにアクションを実行します
// PM が空ではなく、ユーザーが補充に関する質問に肯定的に答えた場合、プログラムはここに進みます。
午後。 クリア() ; さらにアクションを実行() ;
手順の終了

したがって、ShowQuestion プロシージャが実行されてもプログラムは停止しないため、すべてのイベントを慎重に処理する必要があります。
したがって、原則として、PM の完全性をチェックした後に実行する必要があるすべての実行可能なメソッドは、別のプロシージャに配置されます。

同様のメカニズムが、同様のユーザー対話機能 (SelectValue、SelectFromList など) に使用されます。

これらのコマンドの構文ヘルパーには、構成プロパティが 使用方法モダリティにインストールされています 使用しないでくださいの場合は、プログラム コード内で次のような他のコマンドを使用する必要があります。 ShowQuestion()、 ShowWarning(), ShowNumberInput():

これらの状況に対処するために、1C 8.3 プログラムは新しいシステム オブジェクト「アラートの説明」を提供します。これは、フォームや非モーダル ダイアログを閉じるなど、予期されるイベントが発生したときのプログラム モジュール プロシージャの呼び出しを記述するために使用されます。 :

これは、根本原因を突き止めたい人向けに、問題の内部を考察したものです。 まず第一に、1C プログラマー向けです。 この状況では、一般ユーザーがプログラム コードを操作せずにエラーを修正するにはどうすればよいでしょうか? とても簡単な方法があります。

一般ユーザー向けのエラー修正手順

ステップ 1: 終了:

ステップ 2. スタートメニューに戻って設定を開始します。 「構成」メニュー項目を選択します。

ステップ 3. 「コンフィギュレーター」を開きます。 トップパネル「構成」ボタンを見つけ、提案されたリストで「構成を開く」メニューを選択します。

ステップ 4. 「設定」にカーソルを置き、右クリックしてコンテキスト メニューを呼び出し、「プロパティ」項目を選択します。

ステップ 5. 「プロパティ」フォームを開きます。

ステップ 6. 「モダリティの使用モード」という行 (リストの一番下) を見つけます。

1C 8.3 プログラムのデフォルトでは、値は「使用しない」です。 値「使用しない」を値「使用する」に変換します。

結果:

1C 8.3 の「このモードでのモーダル ウィンドウの使用は禁止されています」というエラーが解消された場合は、作業を続行できます。 これは通常起こることです。

ただし、これらの手順をすべて実行しても 1C のモダリティ エラーが残る場合は、1C プログラムのサービスとサポートを行うプログラマーに連絡する必要があります。

「タクシー」インターフェースでの作業方法、ワークプレイスのカスタマイズ方法、お気に入りナビゲーション バーのカスタマイズ、全文検索の実行方法、ログの操作テクニック、ドキュメントの「選択」ボタン、ドキュメントへのリンクの送信、検証新しいインターフェースのその他の機能 - これらすべてをビデオから学ぶことができます。

新しい TAXI インターフェイスを使用して 1C 8.3 プログラムのナビゲーションを正確かつ迅速に整理する方法、内蔵の計算機、カレンダー、ファイル比較、同僚へのドキュメントへのリンクの転送などの使い慣れたツールを使用する新たな機会についての詳細は、「」で説明されています。私たちのコース「」


この記事を評価してください: