1c ファイルを扱うエンタープライズ 8.3。 MXL を開くよりも

1C:Enterprise 8 テクノロジー プラットフォームを使用すると、任意のファイルを情報ベースに保存し、そこから取得してさまざまな方法で使用できます。 例を使用してこれらの操作を見てみましょう。

ファイルを 1C 情報ベースにアップロードする前に、ディスク上のファイルの完全なアドレスを取得する必要があります。 ファイル選択ダイアログの操作については、「 」で説明されています。

ファイルを保存するには、次のタイプの属性 (またはリソースを登録) を使用します。 ストレージ値.

1C情報ベースへの任意のファイルのアップロード

あらゆるファイルをバイナリ データとして表現し、 バリューストレージ.

バイナリデータをオブジェクトに変換する場合 ストレージ値使用されたデザイン 新しい StorageValues(データ、圧縮) 2 つのパラメータを使用します。

  1. データ— ストレージに保存する必要があるバイナリ データ
  2. 圧縮— デフレーションアルゴリズムの圧縮率。 -1 ~ 9 の範囲の整数。 -1 はデフォルトの圧縮レベルです。 0 - 圧縮なし、9 - 最大圧縮。 デフォルト値: -1。 このパラメータはオプションです。指定しない場合、圧縮は使用されません。

// ファイルをバイナリデータに変換します
ファイル = 新しい BinaryData(パス) ;

// 新しい値ストレージ オブジェクトを作成します

DataStorage = NewValueStorage(File, NewDataCompression(9) ) ;

1C 情報ベースからディスクへの任意のファイルの保存

1C データベースからディスクにファイルを保存するには、パスとファイル名を決定する必要があります。 これを行うには、ファイル保存ダイアログがあり、これについては「」で説明されています。

//ストレージからバイナリデータを取得します
//データ ストレージ - 値ストレージ タイプのオブジェクトの属性

//受信したデータをディスクに書き込みます
//Path 変数にはディスク上のファイルの完全なアドレスが含まれます
データ。 書き込み(パス) ;

1C 情報ベースにあるファイルの表示

データベースに保存されたファイルを表示するには、ファイルを開くアプリケーションがコンピュータにインストールされている必要があります。

// 必要な拡張子が付いた一時ファイルの名前を取得します
// Extension 変数にはファイル拡張子を入れる必要があります (例: "pdf")
パス = GetTemporaryFileName(拡張子) ;

//ストレージからデータを受信する
//データ ストレージ - 値ストレージ タイプのオブジェクトの属性
データ = データストア。 得る() ;

// データを一時ファイルに書き込みます
データ。 書き込み(パス) ;

// 目的のアプリケーションでファイルを開こうとしています
//アプリケーションが見つからない場合は、「プログラムから開く...」というシステムダイアログが表示されます。
LaunchApplication(パス) ;

.MXL 拡張子を持つファイルは、1C:Enterprise プログラムによって作成されたスプレッドシート ドキュメントです。 当初、1C:Enterprise は会計を自動化することを目的としていました。 この記事では、拡張子が .MXL のファイルを開く方法を説明します。

このようなファイルを開くには、「1C Enterprise」を起動し、「ファイル」→「開く」メニューを選択します。 必要に応じて、そのようなファイルを Excel 形式で保存できます。 これを行うには、同じ「ファイル」メニューで「名前を付けて保存..」を選択し、ファイルの種類を「Excel テーブル」に設定します。 1C Enterprise がコンピュータにインストールされていない場合は、会社の公式 Web サイトから無料アプリケーション 1C Enterprise - Working with Files をダウンロードしてインストールできます。 このプログラムは、ファイルを開いたり、表示したり、印刷したり、変換したりするのに役立ちます。

「1C Enterprise - ファイルの操作」を無料でダウンロード

公式ウェブサイトからプログラムをダウンロードします。 ファイルの操作は、1C:Enterprise モードでのファイルの操作と似ています。
プログラムのロシア語版も利用できます。 プログラムをインストールするときは、完全なディストリビューションを選択する必要があります。
「1C Enterprise - ファイルの操作」をインストールすると、.mxl 拡張子を持つファイルを表示できるだけでなく、Excel に変換することもできます。

この記事では、モダリティ モードが失敗した場合にディレクトリ要素の制御されたフォームに画像を表示する例について説明します。

適用性

この記事では、1C:Enterprise プラットフォーム バージョン 8.3 について説明します。 提示されている情報は、現在のプラットフォーム リリースに関連しています。

Taxi インターフェースでのファイル (画像) の操作

新しい 1C:Enterprise 8.3「Taxi」インターフェイスでファイルと画像を操作するためのアルゴリズムを見てみましょう。

まず、この記事を書こうと思った理由: 1C の新しいコンセプトはモーダル ウィンドウの放棄です。そのため、新しいインターフェイスでモーダル ウィンドウを開くために生成されたすべてのメソッドとオブジェクトは機能しなくなります。これは、構成プロパティでモーダル ウィンドウが許可されている場合にのみ実行できます。

ただし、モーダル ウィンドウを許可すると、Web クライアントで作業するときに問題が発生します。

次に、扱いやすい形式で画像を扱うことについてよく質問されます。

したがって、タスクは次のとおりです。「Products」ディレクトリに、製品の写真を保存してフォームに表示する必要があります。
初期設定には製品ディレクトリ自体以外は何も含まれていません。これは投稿しません。8.3 で空の設定を作成するだけです。

グラフィック ファイル自体を保存するには、ディレクトリ内に属性「Picture Data」をタイプ「Value Storage」で作成します。

拡大するには、画像をクリックしてください。

画像 (ファイル) を情報ベースからファイル システムにアップロードして戻す予定がある場合は、元のファイル名とそのタイプを保存する別の属性を追加します。

拡大するには、画像をクリックしてください。

フォームに画像を表示するにはどうすればよいでしょうか? いいえ、「絵」タイプの装飾ではありません。 そして、「文字列」タイプのフォームの小道具の形で。 はいはい! これは当然のことですが、これを自分で認識している人がほとんどいないのは不思議です。

問題は、グラフィック データへのナビゲーション リンクまたはそのようなデータを含む一時ストレージのアドレスを含む「文字列」タイプの属性をフォームに追加すると、フォームでグラフィックを表示できるようになります。データそのもの。
「Link To Picture」という名前のフォーム属性を追加しましょう。タイプは「string」、長さは制限されていません。 そしてそれをフォームの詳細に入力します。

拡大するには、画像をクリックしてください。

デフォルトでは、フォーム内の行は入力フィールドのようになります。これをフォーム要素のプロパティで変更する必要があります。 「表示」プロパティで「画像フィールド」を選択します。

拡大するには、画像をクリックしてください。

インターフェース部分の準備が整いました。 コーディングをしてみましょう。 フォームコマンド「Select ImageFile」を作成し、フォーム上のボタンの形に配置しましょう。

拡大するには、画像をクリックしてください。

このモジュールでは、作成されたフォーム コマンドの「Action」イベント ハンドラーを説明します。

拡大するには、画像をクリックしてください。

上記のコードに対するいくつかのコメント:

アプリケーション モダリティ モードに注意を払わなければ、「PlaceFile」メソッドを簡単に使用できたはずですが、この記事の目的は、まさにこのモードでのファイルの操作を示すことです。
StartFilePlace メソッドは、選択されたファイルを一時ストレージに配置し (ファイルが選択されている場合)、同じモジュール内の「ProcessFileSelection」プロシージャを呼び出します。

強調表示されている「UniqueIdentifier」に注目してください。このプロパティを使用して、一時ストレージを現在のフォームに関連付けています。 それ以外の場合、ファイルはストレージに配置されますが、サーバーが呼び出すとストレージ自体が破棄され、ファイルをディレクトリ属性に書き込むために引き続きストレージが必要になります。

「ProcessFileSelection」プロシージャについて説明します。

拡大するには、画像をクリックしてください。

ユーザーがファイルの選択を拒否しない場合、画像データが配置された一時ストレージ内のアドレスを「画像へのリンク」フォーム属性に配置します。

出来上がり!

したがって、ディレクトリ要素を書き込むときに残っているのは、一時ストレージからディレクトリ要素の属性にデータを書き込むことだけです。 BeforeRecordOnServer イベントについて説明します。

拡大するには、画像をクリックしてください。

フォームの詳細で何を確認するのでしょうか? 一時保存アドレスの場合、「CurrentObject」を参照してディレクトリ要素属性にデータを書き込みます。「CurrentObject」は、この時点でデータベースに書き込まれる変換後のフォームデータです。

ディレクトリ要素属性に既に保存されている画像を表示するためのフォームの開き方の説明が残っています。

拡大するには、画像をクリックしてください。

それだけです。 完成したベースを持ち帰ることができます。

パベル・チストフ

プログラム「1C:Enterprise - Working with Files」は、無料で配布される個別のソフトウェア製品です。 これは、1C:Enterprise システムがインストールされていないコンピュータ上で 1C:Enterprise ファイルを表示および編集することを目的としています。

次のファイル形式がサポートされています。

  • (*。TXT);
  • (*.mxl);
  • (*.htm、*.html);
  • (*.grs);
  • (*.geo);

インストール プロセス中に、プログラムは mxl、grs、および geo 拡張子を登録します。その結果、これらのファイルを表示および編集するには、マウスでクリックするだけで済みます。

コマンドラインからのプログラムの実行がサポートされています。 この場合、処理対象のファイルを指定することが可能です。 たとえば、ファイル「Remains.mxl」を処理するには、次のコマンドを実行するだけです。

"D:\Program Files\1cv82fv\bin\1cv8fv.exe" D:\FileWorkshop\Remainings.mxl

「1C:Enterprise - ファイルの操作」は、1C:Enterprise システムに実装されているモードと同様のモードをサポートしています。 したがって、たとえば、ユーザーは 2 つの残高レポートを視覚的に比較できます。

配送オプション

1C:Enterprise - Working with Files プログラムには 2 つの配信オプションがあります。

  • ロシア語を話す。
  • 国際的。

国際配信とロシア語配信の違いは、1C:Enterprise システムで使用されるものと同じものが含まれることです。

また、国際配信の場合、/L コマンド ライン スイッチを使用して、使用するインターフェイス言語を指定できます。 たとえば、英語インターフェース言語 (en) を使用してファイル「Remains.mxl」をプログラムで処理するには、次のコマンドを実行するだけです。

"D:\Program Files\1cv82fv\bin\1cv8fv.exe" /Len D:\FileWorkshop\Remainings.mxl

時間は容赦なく進み、1C 8 プラットフォームはこの時よりもさらに速く動作します。

マネージド フォームは「TAXI インターフェイス」と呼ばれるようになり、モーダル ウィンドウが禁止され、拡張機能や外部コンポーネントへの同期呼び出しを使用するモードにより、これらの拡張機能や外部コンポーネントのほとんどの機能が完全に停止され、さらに古いメソッドの半分も停止されました。 。

一般的に、皆さん、物事は次のようなものです - 8.3 でのファイルの操作に関する素晴らしい P. Chistov の記事を読んだ方も多いでしょう。

まだこれを行っていない場合は、先に進んで行進してください。 ()

ファイルを操作するためのメカニズムの本質を簡単に説明します。

1) クライアントでファイルを選択します

2) ブラックボックスに押し込む

3) ブラックボックスの内容をサーバーに保存します

問題は、これは特に新しい方法で、魂を込めて行われなければならないということです。

したがって、あなたの

SelectedFile.Exists()

そして他の異教的なことはここでは機能しません。

じゃ、行こう!

これは、クライアントからファイルをダウンロードできるようにするコードのリストです。

アラートの説明 = 新しいアラートの説明("ProcessFileSelection", ThisForm); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Open); FileOpenDialog.MultipleSelect = False; StartFilePlace(AlertDescription, FileOpenDialog, True, UniqueIdentifier);

私たちはその方法に興味があります」 StartPlaceファイル"、実際には、ファイル選択ダイアログが呼び出され、このファイルが一時ストレージに配置されます。一時ストレージの説明を気にする意味はありません。覚えておいてください。これは、選択したすべてのファイルが配置される場所です。バイナリデータ(ブラックボックス)の形式。

& クライアント上でのプロシージャ ProcessFileSelection(PlacedFiles, AdditionalParameters) エクスポート If PlacedFiles = Unknown then Return; endIf; 各 TransferredFile From PlacedFiles サイクル PathToFile = TransferredFile.Name; Record.FileName = ParseLine(PathToFile, "\"); Items.OpenFile.Header = Entry.FileName; アドレス = 送信ファイル.ストレージ; エンドサイクル; 終了手続き // ()

この一時保管場所に何があり、どのように保管するかを理解することはほとんど不可能です。 ファイルにアクセスするには、自動的に割り当てられるナビゲーション リンクを使用する必要があります (変数「」を参照) 住所").

ファイルはタイプ「」の属性またはリソースに保存する必要があるという事実により、 バリューストレージ"、誰も異論はないと思います。一時ストレージからファイルを取得し、" 型の属性に配置します。 バリューストレージ"は次のように実行できます。

NewValueStorage(GetFromTemporaryStorage(アドレス));

1 つのことは解決しました。2 つ目は、このバリュー ストア (念のために言っておきますが、サーバー上にあります) からファイルを取得してクライアントのディスクに保存する方法です。

まず最初に、タイプ「」の属性へのナビゲーション リンクを取得する必要があります。 バリューストレージ"、ここにファイルをバイナリ データの形式で配置します。

気をつけて!このナビゲーション リンクは一時ストレージとは何の関係もありません。 メソッドを使用してナビゲーションリンクのタイプを確認できます

これは一時保管アドレス (アドレス) です。

伝統的に、ファイル保存ダイアログを呼び出すコードリストは、

アラートの説明 = 新しいアラートの説明("ファイル保存処理", ThisForm); ファイル = 転送ファイルの新しい説明(ファイル名, アドレス); ReceiveFiles = 新しい配列; ReceiveFiles.Add(ファイル); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Save); FileOpenDialog.MultipleSelect = False; StartReceivingFiles(DescriptionAlerts, ReceivingFiles, OpenFileDialog, True);

変数値「 ファイル「これもこの手法の特徴です。注目してください」 ファイル名「実際のところ、ファイルを一時ストレージに置くと、その名前と拡張子に関する情報が失われます。したがって、ファイルの保存に悩まされないように、正しいファイル名、または少なくともその拡張子をどこかに保存することを忘れないでください。」後で質問してください」 これは Word 文書ですか、それとも MP3 ですか?"

方法 " ファイルの受信を開始する「手法が似ている」 StartPlaceファイル"。一方はファイルを選択するためのダイアログを開き、もう一方は逆にファイルを保存するためのダイアログを開きます。

基本的にはそれだけです。

この方法を使用する場合、構成プロパティでモダリティと同期呼び出しの互換性を設定する必要はありません。

自分への備忘録として記事を書きました。

トピックの続き:
Linux

ハッカーに仕える Mac。 パート 1 – ディスク暗号化Alexander Antipov 最初の記事では、ディスク暗号化について説明します。これは、私たちの...