要素を取得するオブジェクト メソッドが見つかりません

全てにおいて良い日!

私たちの多くは、活動の中で 1C Company のソフトウェア製品に遭遇します。 さらに、私たちの中には、時にはそうしなければならない人もいます。 サービス1C製品。 この「素晴らしい」サービスの過程では、時々さまざまな事件が起こります。 今日はそのうちの 1 つについてお話します。

つまり、この資料のトピック: 1C で発生するエラーの修正方法 - 別のプログラムに接続できませんでした: オブジェクト メソッドが見つかりません (Connect)。

幸運にもこのスクリーンショットと同じエラーが表示された場合は、読み続けて修正方法を見つけてください 😉

ちょっとした入門理論:

1C:エンタープライズ 8.x他のソフトウェア システムとのデータ交換を組織化するためのさまざまな興味深い機会を提供します。 仕組みとともに OLE オートメーション COM 接続の概念も導入され、このテクノロジをサポートする外部アプリケーションから 1C:Enterprise 8.0 データへの信頼性が高く、高速なアクセスが可能になります。

1C:Enterprise 8.0 データへのアクセスを整理するには、 COM接続創造された COMオブジェクト ID付き V8.COMコネクタ、これを使用して接続が確立されます。 次に、前に作成した V8.COMConnector オブジェクトの Connect メソッドが呼び出されます。 接続方法 1C:Enterprise 8.0 情報ベースを持つ COM 接続オブジェクトへのリンクを返します。 そして、受信した COM 接続オブジェクトを通じて、接続が確立されている情報ベースの有効なメソッド、プロパティ、およびオブジェクトにアクセスします。

さて、足がどこから生えているのかがわかったので、練習に移りましょう。 (更新またはその他の操作中に) 次のようなエラーを受け取ったとします。

1C で発生するエラー (オブジェクト メソッドが見つからない (接続)) を修正するには、次の手順を実行する必要があります。

最新バージョンの Windows オペレーティング システムでは、「コンポーネント サービス」に移動します。 この機能は、「コントロール パネル」→「管理」→「コンポーネント サービス」という順序で呼び出されます。

選択: コンピュータ – マイ コンピュータ – COM+ アプリケーション – アプリケーションの作成 – 新しいアプリケーションの作成 – 「V82COMConnector」という名前を入力 (「サーバー アプリケーション」スイッチ) – 指定されたユーザー (管理者)

表示されるスレッドでは V82COMコネクタ– コンポーネント サブブランチを選択します – 新しいコンポーネントを作成します – 新しいコンポーネントをインストールします – \bin\comcntr.dll

V82COMConnector ブランチを右クリックします - プロパティ - セキュリティ - 「アプリケーションのアクセス チェックを強制する」のチェックを外します - 「ソフトウェア制限ポリシーを適用する」ボックスにチェックを入れます - 制限レベル「無制限」:

また、ユーザー プロファイル C:\Users\OurUser\AppData\Roaming\1C\1CEStart.cfg で、パラメーター UseHWLicenses=0 を UseHWLicenses=1 に変更します。

これらすべての変更を行った後、(実験の純度を考慮して) コンピュータを再起動し、1C でさらに作業を続けることができますが、このエラーは発生しません (!)

追伸 最後に小さなボーナス: 1C 管理者として更新する

リモートの顧客の中には会計士などがいることがよくあります。 - 1C ソフトウェア製品を独自に更新することはできず、管理者権限が必要であり、ショートカットを右クリックする (そして [管理者として実行] を選択する) ことを望まないか、または「恐れている」。 そのため、彼は私たちの兄弟である IT スペシャリストを常に悩ませています。

彼のために右クリックしましょう。ただし、一度クリックすれば、このトピックのことは永久に忘れてください。

それでは、1 回限りのセットアップを行ってみましょう。1C 起動ショートカットを右クリックし、「プロパティ」を選択し、「すべてのユーザーの設定を変更する」をクリックして、「管理者としてこのプログラムを実行する」ボックスにチェックを入れます。 その後、「OK」を数回クリックして、「怖い」クライアントのことは忘れてください 😉

ここであなた自身にとって有益な情報を見つけることができれば幸いです。 あなたの「トリック」についてコメントに書いてください - 私たちは一緒に教育上の利益をもたらします。

さようなら、そしてご多幸をお祈りします! 😉

どのソフトウェアでも時折さまざまな不具合が発生したり、簡単に言うと正常に動作しなくなる可能性があることは誰もが知っています。 システムの適切な機能の中断につながるこのような障害は、 間違い。 1c プログラムはソフトウェア製品(ソフトウェア)であるため、このプログラムでもシステムの誤動作につながるさまざまなエラーが発生する可能性があります。 エラーは非常に多様である可能性があり、プログラミングの分野や 1C の内部メカニズムの詳細に関する多くの特別な知識がなければ、エラーを正しく理解して診断することはできず、ましてやエラーを修正することはできません。 当社の 1c プログラマーはいつでも、次の問題の解決をお手伝いいたします。 1秒エラー!

1C データベースでエラーが発生する原因は何ですか?

では、なぜさまざまなことが起こるのかについて少しお話しましょう。 1s データベースのエラープログラムを操作するとき。 実際には、多くの理由が考えられ、それらはすべてまったく異なる理由である可能性があります。 それでも、さまざまな問題が出現した理由を一般的に理解しようとします。 1秒以内のエラー.

1C データベースのエラーの種類

1秒以内のエラー非常に多様なことがあり、さまざまな理由で発生する可能性があります。 この記事では、考えられるすべての 1c エラーを考慮するのではなく、発生するいわゆる主なエラーの「タイプ」に焦点を当てます。 プログラムが表示するエラーの内容は常に異なりますが、本質は同じであることが多いため、私たちは従来これらを「タイプ」と呼んでいます。 最も一般的なものを強調しましょう 1s データベースのエラー:

  1. ストリーム形式エラー
  2. オブジェクトフィールドが見つかりません
  3. オブジェクトメソッドが見つかりません
  4. メモリーが充分ではありません
  5. SQL テーブルに関連するエラー (MySQL などのリレーショナル データベース上で実行される 1C サーバーに関連)
  6. アクセスエラー1秒

1秒以内のストリームフォーマットエラー

1秒ストリームフォーマットエラー

オブジェクトフィールドが見つかりません

オブジェクトフィールドが見つかりません

インデックスが配列の範囲外にあります

エラー1c

1秒以内のストリームフォーマットエラー

このエラーは、一連のコマンドがストリーム内のバイトコードから誤って読み取られた場合によく発生します。そのため、このエラーが呼び出されます。 1秒ストリームフォーマットエラー。 トランザクションの実行の結果としてこのエラーが発生した場合、トランザクションは中止されます。 このようなエラーは、1C Enterprise システムの動作に悪影響を与える可能性があるため、直ちに修正する必要があります。 これらのエラーは、資格のある 1C プログラマのみが修正できます。

オブジェクトフィールドが見つかりません

1c システムで次のようなエラー メッセージが表示される場合は、「 オブジェクトフィールドが見つかりません"、これは、単に存在しないオブジェクトの属性 (フィールド) にプログラムがアクセスしようとしたときにエラーが発生することを意味します。このエラーは、1C Enterprise で発生する場合は「実行時エラー」の性質があります。エラーこの種の修正はプログラマのみが行うことができます。

インデックスが配列の範囲外にあります

プログラミングにおける配列とは、同じ型の多数のオブジェクトが格納される特定のメモリ領域です (1c では、このような型には、たとえば、DirectoryLink、DocumentObject などのほか、数値、文字列、ブール型などのプリミティブ型も含まれます) 、など)。 エラー1c配列の境界を越えることに関連する問題は、プログラムが配列に割り当てられたメモリの境界にアクセスするときに正確に発生します。 したがって、この場合のプログラムはエラーを発生させ、配列外へのアクセスが発生していることをユーザ(プログラマ)に通知することになり、これがソフトウェアエラーとなる。

オブジェクトメソッドが見つかりません

コード内に記述が存在しないオブジェクトのメソッド (関数) にシステムがアクセスしようとすると、同様のエラーが発生します。 このタイプのエラーはプログラマが修正できます。

1秒以内にメモリが不足しています

このエラーは、オペレーティング システムでプログラムを実行するために割り当てられたすべての RAM がシステムで不足している場合に発生します。そのため、プログラムでエラーが生成されます。 1秒以内にメモリが不足していますこのエラーは、構成の更新時、大きなファイルの処理時、レポートの生成時、大きなデータベースのロード時など、さまざまなイベント中に発生する可能性があります。ユーザーは、このようなエラーを自分で修正しようとすることができます。

1c エラー「メモリが不足しています」の修正の可能性

エラーは、オペレーティング システムによるソフトウェア (ソフトウェア) のアドレス メモリの割り当てが制限されていることにあります。
デフォルトのアドレス メモリ制限は次のとおりです。

  • 32 ビット システムの場合 – 2GB
  • 64 ビットの場合 – 4 GB

アドレス メモリ サイズを増やすには、次のことを行う必要があります。

  1. コマンドラインを起動します:「スタート – ファイル名を指定して実行」 - CMD と入力して Enter キーを押します。
  2. 次に、コマンドラインに引用符なしでテキスト「bcdedit /set増加userva 3072」を入力します。3072は目的のアドレスメモリのサイズです。
  3. オペレーティング システム (コンピューター) を再起動します。
  4. 以前は機能せず、エラーが発生したアクションを 1C で実行してみます。
  5. すべてがうまくいき、操作がそれほど頻繁に繰り返されない場合は、コマンド「bcdedit /deletevalue増加userva」を使用してアドレスのメモリ サイズをデフォルト値に戻すことをお勧めします。

SQLテーブルに関連するエラー

この種のエラーは通常、システムがテーブルにアクセスし、データを読み取れない場合にサーバー側で発生します。 このエラーは、サーバー構成が正しくないことや、SQL テーブルの損傷によって発生する可能性があります。 特に困難な状況では、データベースを復元することさえ不可能な場合があり、その場合はデータベースのアーカイブされたコピーのみがあなたを救うことができます。 データベースのバックアップ コピーをタイムリーに作成することを強くお勧めします。

1秒以内のアクセスエラー

このエラーは、ユーザーがアクセス権 (ロール) によって禁止されているアクションを実行しようとすると発生します。 これが、システムが 1 秒のアクセス エラーを発行する理由です。 ロールはプログラマによってコンフィギュレータで設定されます。

1秒以内にエラーを修正できませんでしたか?

1C でエラーを修正できなかった場合でも、絶望しないで、電話を取って当社までお電話ください。 当社のスペシャリストは、システムの運用中に発生するエラーなど、1C に関連するあらゆる問題の解決をいつでもお手伝いします。

あなた (またはユーザー) は 1C で作業します。 突然 - エラーが発生しました。 何をするか?

もちろん、最も正しいことは、1C エラーの内容とその原因を分析し、1 ~ 2 時間かけて何が原因かを突き止めることです。

それが不可能な場合はどうすればよいでしょうか? 時間がない、意欲がない、知識が足りない。 ここでは、1C のエラーを迅速に修正するための非常に有害なヒントをいくつか紹介します。

エラーメッセージ1C

1C エラー メッセージの典型的なタイプは、1C エラーのテキストと [OK] ボタンと [詳細] ボタンを備えたウィンドウです。

ここに表示される 1C エラーのテキストはユーザー メッセージです。表示される 1C エラーは何らかの誤ったアクションの結果である可能性があるため、プログラマにとっては何の意味もないことがよくあります。

1C エラーを修正するには、このウィンドウで [詳細] をクリックして、プログラマの 1C エラー メッセージを表示する必要があります。 それは次のように述べています:

  • 、1Cエラーが発生しました
  • 1Cエラーが発生した本モジュールの機能
  • 1C エラーが発生したこのモジュールの行番号。

また、「コンフィギュレータ」ボタンをクリックすると、コンフィギュレータが開き、このモジュール、この行のこの関数が表示され、その後 1C エラーを修正できます。

エラーを理解するためのヒント

先ほど述べたように、1C エラーのテキストは、以前に実行された誤ったアクションの結果であることがよくあります。

たとえば、非常に一般的な 1C エラー テキストは次のとおりです。

値はオブジェクト タイプの値 (WhatName) ではありません。

これは何を意味しますか?

そして、これは次のことを意味します。

  • 変数があります
  • プログラムは、変数の値がディレクトリ、ドキュメント、またはその他の同様のものであると想定します。一般に、変数には詳細 (フィールド) があります。
  • プログラムはこのオブジェクトのフィールドにアクセスしようとします
  • ただし、1C エラーは、プログラムの前の行で何らかの理由で、この変数が詳細 (フィールド) を持たない値 (たとえば、値「未定義」) を受け取ったことです。

より一般的な 1C エラーを修正する

もちろん、現時点で 1C に存在する可能性のあるすべてのエラーを考慮することはできません。
頻繁に発生する 1C エラーと、1C エラーを迅速に修正するための有害なヒントを簡単にリストしてみましょう。

  • 変数がブール型の場合 (つまり、値 True と False を受け入れます)、次のようにアクセスできます。

    If 変数名 then

    この書き込みも同様です:
    変数名 = True の場合

    ただし、何らかの理由でこの変数が非ブール値をとる場合、最初のオプションでは 1C エラーが発生しますが、2 番目のオプションではエラーが発生しません。

  • 「関数名XXXが見つかりません」

    一部のモジュールはサーバー上で実行されます。 さらに、同じモジュールの一部の機能はサーバーまたはクライアントで実行できます。

    この場合、サーバー上で実行されている関数がクライアント上で実行されている関数を呼び出しているという 1C エラーが発生する可能性があります。 この場合、1C程度の誤差が生じます。

    可能であれば、そのような機能をサーバーに移動する必要があります。

  • 「XXXという名前の変数が見つかりません」

    前の 1C エラーと同様です。 プログラムに共通モジュールにある関数の呼び出しが含まれている場合、プログラムは次のようになります。
    モジュール名.関数名();

    モジュールのプロパティでクライアント上で実行されるように設定されており、サーバー上で実行されるプログラムの行からアクセスしている場合、1C エラーが発生します。
    「変数が見つかりません - ModuleName」

    同様にサーバー上でこのモジュールの実行を有効にする必要があります。

  • 「オブジェクト上でプロパティ XXX が検出されませんでした」

    「プロパティ」という言葉は、このオブジェクト(属性)のフィールドを意味します。 必要:
    o それがどのような種類のオブジェクトであるかを判断する
    o これが参考書やドキュメントの場合、そのプロパティが本当にその名前であるかどうかを確認する必要があります。
    o または – その名前のフォームの詳細を確認します。

  • 「オブジェクトでメソッド Xxxx が検出されませんでした」

    「メソッド」という言葉は、このオブジェクトのモジュール内の関数/プロシージャを指します。

    必要:
    o それがどのような種類のオブジェクトであるかを判断する
    o モジュールを検索します (1C オブジェクトの場合はオブジェクト モジュール、フォームの場合はフォーム モジュール)
    o 同じ名前の関数が存在するかどうかを確認します。

  • 「リクエスト実行時のエラー 1C」

    これは、リクエスト テキストに 1C エラーがあることを意味します。 リクエスト テキストは通常​​、プログラムの実行よりも前 (つまり、上位) に定義されます。 このモジュールでクエリ テキストを探します (上に目を向けるか、「SELECT」という単語を検索して)。

    リクエスト テキストを分析するか、リクエスト テキストを右クリックしてリクエスト デザイナーを開いてヒントを取得してみてください。

  • 「1C レイアウト エラー」 - レポート実行時

    この 1C エラーは、リクエスト テキストの 1C エラー、または ACS 設定 (多くの場合、グループ化、選択されたフィールド、条件付き書式設定) の 1C エラーのいずれかを意味します。

    非常に簡素化した設定から始めてみてください。 選択したフィールドと条件付き書式のリストに×印の付いたフィールドがないことを確認します。

    それでも解決しない場合は、リクエスト本文に移動し、リクエスト ビルダーを使用してヒントを取得してみてください。

トピックに関する記事