会計情報。 会計情報 1 秒のスプレッドシート ドキュメント読み取り Excel 95
ほとんどの組織は、日常業務で Microsoft オフィス スイートの Excel ソフトウェア製品を使用して、昔ながらの方法でさまざまな会計トランザクションを追跡しています。 これは、企業が最近 1C システムに切り替えたばかりで、レポート セクションがまだ適切にデバッグされていない場合、またはサプライヤーが .xls 形式の概要表の形式で価格表を送信することを希望している場合に発生します。 ポジションの手動入力を自動システムに置き換える必要がしばしばあることは驚くべきことではありません。 これにより、命名文書の記入時間が大幅に短縮され、エラーの数が減少します。これは、数十、さらには数百の品目となる場合に考慮することが重要です。
この問題はさまざまな方法で解決できます。この作業を IT 部門に任せることを好む組織もあれば、フランチャイジーの会社で働く開発者を雇用する組織もありますが、これにはかなりの費用と時間がかかります。
この状況から抜け出す、より有益な方法は、適切な 1C 構成を使用することです。この構成は、完全に無料でデータを処理し、1C ドキュメントと Excel スプレッドシートの統合における汎用アシスタントになります。
このセクションでは、「1C:Enterprise 8」に基づく 1C 社のソフトウェア構成の 1 つに .xls ファイルからデータをロードする構成方法を説明します。
1C:Enterprise 8 のプロフェッショナル バージョンのすべてのユーザーは、すでにそのような処理を備えています。 ディスク上にあります!
一般的な処理「表形式ドキュメント.epf からのデータのロード」は、次のセクションにあります: 「技術サポート」 > 「方法論サポート 1C: Enterprise 8」 > 「ユニバーサル レポートと処理」 >
D:1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument ダウンロード
2010 年 2 月以降、ITS ディスクでは、プラットフォーム 8.1 での構成のこの処理は別のセクションに配置されています。「技術サポート」 > 「方法論サポート 1C:Enterprise 8」 > 「1C:Enterprise 8.1 プラットフォーム」 > 「ユニバーサル」レポートと処理」 > 「スプレッドシート ドキュメントからのデータのロード」。
D:1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTableDocument ダウンロード
利用可能なソースデータ:
- Excel の価格表「PriceOnlineKhimSnab.xls」 - Microsoft Office Excel 97-2003 (.xls)
- 一般的な構成 Enterprise Accounting Edition 2.0、リリース 2.0.12.2、プラットフォーム 8.2 (8.2.10.77)
- 商品名と価格をExcelから1Cに読み込む必要がある
価格表から品目リファレンス ブックを 1C: 会計 8 にダウンロードする必要があります。
1Cプログラムを開始します。 処理を開始するには、メニュー項目「ファイル」>「開く」を選択します。
開いたウィンドウに処理ファイルが表示されます。
ITS ディスクのディレクトリ \1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument にあります。
以前に処理ファイルをコンピュータにコピーした場合は、それを選択できます。
窓が開きます
データの読み込みは 2 つの段階で実行されることに注意してください。段階 1 - 名前の読み込みと、開始するために必要な新しいディレクトリ要素の詳細の値の設定 (測定単位、VAT レート、製品/サービス属性)。 ステージ 2 - 価格の読み込み。
タイトルをロード中
「ダウンロードモード」の設定 - ディレクトリへのアップロード 「ディレクトリビュー」 - 各部の名称
「表ドキュメント」タブ内
ex1_b01.jpg 「ファイルを開く」ボタンをクリックすると、表示される選択ウィンドウで、データを 1C にロードする予定の Excel の価格リストが含まれるディレクトリを見つけます。
ファイルは最初は表示されない場合があります。 ファイルの種類を「Excelシート(*.xls)」に設定します。
ファイルを選択してください
アイテムカードの詳細が表示されます。
タイトル読み込みオプションの設定
1C: Accounting プログラム バージョン 8 の命名基準参考書の構造単位を認識する側面に注目していただきたいと思います。これらの要素を識別する際の重要なポイントの 1 つは名前であるためです。 情報ベースの位置が最初に埋められていない場合は、重複した位置を追跡し、存在する場合は削除する必要があります。
名前の重複を避けるのは難しく、リストへの 1 回限りのデータ入力ではなく、体系的に情報を自動的にロードするためにこのタイプのロードを使用する従業員にとっては特に困難です。
従業員がさまざまな略語やその他の略語、名前の二重綴り、さまざまな句読点の使用に対処しなければならないという事実により、問題は複雑になります。
繰り返し使用し、大量の情報をダウンロードする場合は、「1C: Enterprise 8」シリーズの他のソフトウェア (たとえば、「1C: Trade Management 8」、「1C: Small Firm Management 8」、「1C: Integrated」など) を使用することをお勧めします。 Automation 8」には「Article」パラメータがあり、命名ディレクトリにロードされたデータを確実に認識し、名前が重複する可能性を排除します。
「基本測定単位」行 - 「ロードモード」列で「インストール」を選択し、「デフォルト値」列で測定単位を選択します(この場合は個数)。
「VAT 率」行 - この場合、ダウンロードされたすべての要素の VAT を 18% に設定します。このために、「ロード モード」列で「設定」を選択し、「デフォルト値」列で「18%」を選択します。
商品に異なる付加価値税がかかる場合は、ダウンロードした価格表の別の列に表示されます。「読み込みモード」列で「検索」を設定し、「価格表の列番号」に対応する価格表の列の番号を設定します。スプレッドシートドキュメント」。
「サービス」行 - 「読み込みモード」列で「インストール」を選択し、「デフォルト値」列で「いいえ」を選択します(この場合、すべてのポジションは製品です)。
命名ディレクトリ内の新しい項目の最小値を設定しました。これにより、作業を開始できるようになります。 月を締め、コストを配分し、会計および税務レポートを生成するには、「品目グループ」と「コスト品目」の値を設定する必要があります。輸入品の場合は、「原産国」と「税関申告番号」を設定します。 , ただし、これは後でグループ処理を使用して行うことができます。
これらの詳細の値を今すぐ設定する準備ができている場合は、指示してください。 右下の「ダウンロード」をクリックし、確認メッセージが表示されたら「はい」をクリックします
アイテムリファレンスブックの対応するグループに新しい要素が存在するかどうかを確認します
製品カードを開いて、詳細が正しく読み込まれていることを確認します
すべてが正しい場合は、第 2 段階に進むことができます。価格リストから Excel に価格を読み込みます。
今後、同じロード パラメータ設定でこのデータ ロード手順を使用する予定がある場合は、現在の設定を保存することをお勧めします。 これを行うには、ex1_b03.jpg [設定を保存] ボタンをクリックし、現在の設定に明確な名前を付けます (たとえば、「Excel 価格表から製品名をロードする」)。
次回、「設定を復元」ボタンをクリックし、リストから目的の設定を選択すると、保存した設定をロードできます。
価格の読み込み
『企業会計』Rev.2.0では、「品目価格の設定」という文書を使用して価格を設定します。
「ロードモード」-「テーブルセクションへのロード」を設定します。
「リンク」フィールドで「商品価格の設定」を選択します。
ここでは、新しい要素を追加する既存のドキュメントを選択するか、新しいドキュメントを作成する (推奨) ことができます。ドキュメント内で、ロードする「価格タイプ」(この例では「小売」) を指定します。
「OK」をクリックして、空の文書をとりあえず保存します。 ここで、「リンク」行のジャーナルからこの新しく保存されたドキュメントを選択します。 「表形式セクション」フィールドで「製品」を選択します。
次に、「テーブルドキュメント」タブに移動する必要があります
もう一度、アイテムをダウンロードした Excel の価格表を選択し、価格をダウンロードします (ポイント 5 を参照)。
1C では、MS Excel ファイルを操作する方法が 2 つあります。COM オブジェクトを使用する方法と、スプレッドシート ドキュメント オブジェクトを使用する組み込み 1C ツールを使用する方法です。 これら両方の方法を詳しく見てみましょう。
1. COM オブジェクトを操作します。
この方法では、MS Excel がインストールされている必要があります。サーバー上のファイルを操作する場合は、サーバーに MS Excel がインストールされている必要があります。クライアントにある場合は、クライアント側にも MS Excel がインストールされている必要があります。
例 (記事の最後にテキスト形式で表示されます):
COM オブジェクト「Excel.Application」によって提供されるすべてのオブジェクト、メソッド、およびプロパティは、MS Office プログラミング言語である VBA のオブジェクト、メソッド、およびプロパティであることに注意してください。
注記:
場合によっては、既存のテンプレートを使用して作業する必要があります。 次に、必要なすべてのユーザーがアクセスできるように、このテンプレートをどこかに保存する必要があります。 ただし、テンプレートをバイナリ レイアウトとして保存するという、より簡単な解決策があります。
2. 表形式の文書 1C に取り組みます。
1C スプレッドシート ドキュメントは、プラットフォーム 8 以降の記録では MS Excel 形式をサポートしますが、開く場合はプラットフォーム 8.3.6 以降でのみサポートされます。 さらに、開くと、すべてのシートが 1 つのスプレッドシート ドキュメントにロードされます。 バージョン 8.3.10 以降、ロード時に異なるシートが異なる領域としてロードされるようになりました。
エントリの例は非常に単純なので、特別な注意は必要ありません。
しかし、ここで問題が発生します。 Excel ワークブックに 1C から記録する場合、シート名の表示はデフォルトで無効になっています。
この問題は 2 つの方法で解決できます。1 - ブック自体で、設定でシートの表示を有効にします (すべてのユーザーがこれに同意するわけではありません)。2 - COM オブジェクトを通じてこれを実行します (ここでも MS Excel をインストールする必要があります)。 )。
この小さな追加により、シート ラベルが MS Excel ファイルに表示されるようになります。
MS Excel を読み取ることは、それほど簡単な作業ではありません。読み取りメソッドはサーバーまたはシック クライアントでのみ使用できるからです。 これを行うには、MS Excel ファイルをサーバーに転送する必要があります。
&OnClient
プロシージャ CreateDocument()
例外
試行の終了;
Book = Excel.WorkBooks.Add(); //新しい MS Excel ワークブックを作成する
Sheet = Book.WorkSheets.Add(); //シートを追加
Sheet.Name = "1C の例"; //シート名を設定する
Sheet.Cells(1,1).Value = "数式を作成しましょう";!}
Sheet.Cells(2,1).Value = 1;
Sheet.Cells(2,2).Value = 2;
Sheet.Cells(2,3).Formula = "=A2+B2";
Sheet.Cells(3,1).Value = CurrentDate();
Book.SaveAs("C:\1\Test.xlsx");
Book.Close();
手順の終了
サーバー上(&O)
関数 GetLayoutServer()
戻り FormAttributesValue("オブジェクト").GetLayout("TemplateForUpload"); //このようにして、外部処理レイアウトを取得します。
エンドファンクション
&OnClient
手続き作業()
Excel = New COMObject("Excel.Application");
例外
Report("Excel コンポーネントに接続しようとしましたが失敗しました。このコンピューターには Excel がインストールされていない可能性があります!");
試行の終了;
レイアウト = GetLayoutServer();
Layout.Write(一時ファイル名);
ご質問がありますか、またはコンサルタントの助けが必要ですか?
Book = Excel.WorkBooks.Open(TemporaryFileName);
SheetTemplate = Book.WorkSheets(1);
SheetTemplate.Cells(6,1).Value = "Date:";!}
SheetTemplate.Cells(6,2).Value = CurrentDate();
SheetTemplate.NumberFormat = "dd/mm/yy;@"; // 日付形式を指定します。この形式は MS Excel でマクロを記録することによって取得されました。
SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // 日付が正確に収まるように列を引き伸ばします
Book.SaveAs(ファイル名);
Book.Close();
手順の終了
&OnClient
手順の終了
&OnClient
プロシージャ WriteTabularDocument()
TabularDocument = New TabularDocument();
TabularDocument.Area("R1C1").Text = "1C の MS Excel のレコードの例";
TabularDocument.Write("C:\1\Test2.xls",TabularDocumentFileType.XLSX);
Excel = New COMObject("Excel.Application");
Excel.WorkBooks.Open("C:\1\Test2.xls");
Excel.Visible = 0;
Excel.ActiveWindow.DisplayWorkbookTabs = 1;
Excel.ActiveWindow.TabRatio = 0.6;
Excel.ActiveWorkbook.Save();
Excel.Application.Quit()
手順の終了
BinaryData = New BinaryData("C:\1\test2.xlsx");
Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier) ;
TabularDocument = UploadOnServer(アドレス);
TabularDocument.Show();
手順の終了
サーバー上(&O)
関数 UploadOnServer(アドレス)
TemporaryFileName = GetTemporaryFileName("xlsx");
FileData = GetFromTemporaryStorage(アドレス);
FileData.Write(一時ファイル名);
TabularDocument = New TabularDocument();
TabularDocument を返します。
この方法は簡単です。 その本質は、オブジェクトが 表形式のドキュメントメソッドがあります:
- 書き留める (< ИмяФайла>, < ТипФайлаТаблицы >) データをファイルにアップロードします。
- 読む (< ИмяФайла>, < СпособЧтенияЗначений >) ファイルからデータをロードします。
注意!
Write() メソッドはクライアントとサーバーの両方で使用できます。 Read() メソッドはサーバー側でのみ使用できます。 これを覚えておく必要があります
クライアントとサーバーの対話を計画するとき。
スプレッドシート文書をファイルに保存する例を見てみましょう。 何らかの方法で TabularDocument オブジェクトを作成して入力する必要があります。 荷降ろしファイルへの書き込みは 1 行で完了します。
タブドキュメント 。 Write(FilePath, TabularDocumentFileType.XLSX);
ここ タブドキュメント- 生成されたスプレッドシートドキュメント、 ファイルへのパス— アップロードするファイル名、 TabularDocumentFileType.XLSX— 作成されたファイルの形式。 次の Excel 形式がサポートされています。
- XLS95 - Excel 95 形式。
- XLS97 - Excel 97 形式。
- XLSX は Excel 2007 形式です。
TabDoc = 新しい表形式ドキュメント;
タブドキュメント 。 Read(PathToFile, ReadingTabularDocumentValues.Value のメソッド);
ここ ファイルへのパス— ダウンロードされた Excel ファイルへのパス。 表形式ドキュメントの値を読み取る方法.Valueソースドキュメントから読み取られたデータがどのように解釈されるべきかを決定します。 利用可能なオプション:
- 意味;
- 文章。
OLE経由で交換
OLE 自動化テクノロジを介した Exchange は、おそらく Excel ファイルをプログラムで操作するための最も一般的なオプションです。 Excel が提供するすべての機能を使用できますが、他の方法と比較すると速度が遅くなります。 OLE 経由で交換するには、MS Excel のインストールが必要です。
- 交換がクライアント側で行われる場合、エンド ユーザーのコンピュータ上。
- 1C:Enterprise サーバー コンピューター上で、交換がサーバー側で発生する場合。
例 荷降ろし:
// COM オブジェクトを作成します
Excel = New COMObject("Excel.Application");
// 警告と質問を無効にする
エクセル 。 DisplayAlerts = False;
// 新しいブックを作成する
本 =エクセル。 ワークブック。 追加();
// 最初のシートの位置
シート =本。 ワークシート(1);// セルに値を書き込みます
シート 。 セル(行番号、列番号)。 値 = セル値;// ファイルを保存します
本 。 名前を付けて保存(ファイル名);
エクセル 。 やめる();
Excel = 0;
例 読む:
// - オプション1 -
// COM オブジェクトを作成します
Excel = New COMObject("Excel.Application");
// 本を開く
本 =エクセル。 ワークブック。 開ける( ファイルへのパス);
シート =本。 ワークシート(1);// 本を閉じる
本 。 閉じる(0);// Excel を閉じてメモリを解放します
エクセル 。 やめる();
Excel = 0;// —— オプション 2 ——
// 本を開く
本 = GetCOMObject( ファイルへのパス);
// 目的のシートに配置します
シート =本。 ワークシート(1);// セル値を読み取ります。通常、セル走査ループはここにあります
CellValue = シート。 セル(行番号、列番号)。 価値;// 本を閉じる
本 。 応用。 クイ t();
のために バイパス Excel ワークシートの完了したすべての行に対して、次の手法を使用できます。
// - オプション1 -
行数 = シート。 セル(1 , 1 )。 スペシャルセル(11)。 行;
RowNumber = 1 の場合、行数によるサイクル
CellValue = シート。 セル(行番号、列番号)。 価値;
エンドサイクル;// —— オプション 2 ——
行番号 = 0 ;
真実のサイクル中
行番号 = 行番号 + 1 ;
CellValue = シート。 セル(行番号、列番号)。 価値;
ValueFilled(CellValueでない場合)) それから
アボート;
endIf;
エンドサイクル;
シートのすべての行を順番に走査する代わりに、次のことができます。 すべてのデータを配列にダンプしますそして彼と一緒に働きましょう。 このアプローチは、大量のデータを読み取る場合に高速になります。
TotalColumns = シート。 セル(1 , 1 )。 スペシャルセル(11)。 カラム;
合計行数 = 葉。 セル(1 , 1 )。 スペシャルセル(11)。 行;地域 = 葉。 Range(Sheet.Cells(1, 1), Sheet.Cells(TotalRows,TotalColumns));
データ = 地域。 価値。 アンロード();
以下の表は、OLE 経由で Excel を操作するための最も一般的なプロパティとメソッドを示しています。
アクション | コード | コメント |
アプリケーションの操作 | ||
アプリケーションウィンドウの可視性の設定 | エクセル 。 見える= 偽; | |
警報出力モード(表示/非表示)の設定 | エクセル 。 アラートの表示= 偽; | |
アプリケーションを閉じる | エクセル 。 やめる(); | |
本を使った作業 | ||
新しい本の作成 | 本 =エクセル。 ワークブック。 追加(); | |
既存のワークブックを開く | 本 =エクセル。 ワークブック。 開く(ファイル名); | |
本を保存する | 本 。 名前を付けて保存(ファイル名); | |
本を閉じる | 本 。 閉じる(0); | |
シートの操作 | ||
現在のシートの設定 | シート =本。 ワークシート(シート番号)); | |
名前の設定 | シート 。 名前 = 名前; | |
保護の設定 | シート 。 守る(); | |
保護を解除する | シート 。 保護を解除する(); | |
ページの向きを設定する | シート 。 ページ設定。 方向 = 2; | 1 - 縦向き、2 - 横向き |
左枠の設定 | シート 。 ページ設定。 左マージン = Excel。 センチメートルからポイント(センチメートル)); | |
上限値の設定 | シート 。 ページ設定。 トップマージン = Excel。 センチメートルからポイント(センチメートル)); | |
右枠の設定 | シート 。 ページ設定。 RightMargin = Excel。 センチメートルからポイント(センチメートル)); | |
下限値の設定 | シート 。 ページ設定。 ボトムマージン = Excel。 センチメートルからポイント(センチメートル)); | |
行、列、セルの操作 | ||
列幅の設定 | シート 。 列(列番号)。 列幅 = 幅; | |
行を削除する | シート 。 行(行番号)。 消去(); | |
列の削除 | シート 。 列(列番号)。 消去(); | |
セルを削除する | シート 。 セル(行番号、列番号)。 消去(); | |
値の設定 | シート 。 セル(行番号、列番号)。 値 = 値; | |
セルの結合 | シート 。 Range(Sheet.Cells(RowNumber, ColumnNumber), Sheet.Cells(RowNumber1, ColumnNumber1))。 マージ(); | |
フォントの設定 | シート 。 セル(行番号、列番号)。 フォント。 名前 = フォント名; | |
フォントサイズの設定 | シート 。 セル(行番号、列番号)。 フォント。 サイズ = フォント サイズ; | |
太字フォントの設定 | シート 。 セル(行番号、列番号)。 フォント。 大胆な = 1 ; | 1 - 太字、0 - 通常 |
イタリック体の設定 | シート 。 セル(行番号、列番号)。 フォント。 イタリック = 1 ; | 1 - 斜体、0 - 通常 |
下線付きフォントの設定 | シート 。 セル(行番号、列番号)。 フォント。 下線 = 2 ; | 2 - 下線付き、1 - 下線なし |
どのプロパティを変更する必要があるか、またはどのメソッドを呼び出す必要があるかを確認するには、次を使用できます。 マクロエクセル。 必要なアクションを含むマクロを記録すると、記録されたマクロの VBA コードを確認できます。
COMSafeArray の使用
大量のデータを 1C から Excel にダウンロードする場合、オブジェクトを使用して高速化できます。 COMセーフアレイ。 構文アシスタントの定義によれば、COMSafeArray は多次元配列のオブジェクト ラッパーです。 セーフアレイ COMから。 COM オブジェクト間でデータを交換するために SafeArray を作成して使用できるようにします。 簡単に言うと、OLE テクノロジを使用してアプリケーション間で交換するために使用できる値の配列です。
// COMSafeArray を作成する
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// COMSafeArray を埋める
のために ページ = 0 (TotalLines 別) - 1 サイクル
のために 数値 = 0 合計列数 - 1 サイクル
アレイコム 。 SetValue(カウント、ページ、値);
エンドサイクル;
エンドサイクル;
// Excel ワークシート領域を COMSafeArray の値に割り当てる
シート 。 Range(Sheet.Cells(1, 1), Sheet.Cells(TotalRows,TotalColumns))。 値 = ArrayCom;
ADO経由で交換
ADO 経由で交換される Excel ファイルは、SQL クエリを使用してアクセスできるデータベースです。 MS Excel のインストールは必要ありませんが、アクセスを実行するための ODBC ドライバーの存在が必要です。 使用される ODBC ドライバーは、ファイルへの接続文字列を指定することによって決まります。 通常、必要なドライバーはコンピューターにすでにインストールされています。
ADO 経由の交換は OLE 経由の交換よりも著しく高速ですが、アップロードする際、セルのデザイン、ページのレイアウト、数式の設定などに Excel の機能を使用することはできません。
例 荷降ろし:
接続 = 新しい COMObject("ADODB.Connection");
コンパウンド 。 接続文字列 = "
|データソース= + ファイル名 + ";
;
コンパウンド 。 開ける(); // 接続を開きます// コマンドの COM オブジェクトを作成します
コマンド = 新しい COMObject("ADODB.Command");
チーム// テーブルを作成するためのコマンド テキストを割り当てます。
チーム 。 コマンドテキスト = 「CREATE TABLE [シート1] (列1 char(255)、列2 日付、列3 int、列4 float)」;
チーム 。 実行する(); // コマンドを実行します// コマンドテキストを割り当ててテーブル行を追加します
チーム 。 コマンドテキスト = 「INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) 値 ('abvwhere', '8/11/2017', '12345', '12345,6789')」;
Command.Execute(); // コマンドを実行します// コマンドを削除して接続を閉じます
コマンド = 未定義;
コンパウンド 。 近い();
接続 = 未定義;
新しいシートを作成してその構造を形成するには、オブジェクトを使用できます。 ADOX.カタログそして ADOX.テーブル。 この場合、コードは次のようになります。
// 本を操作するための COM オブジェクトを作成します
本 = 新しい COMObject("ADOX.Catalog");
本 。 ActiveConnection = 接続;// シート上のデータ構造を操作するための COM オブジェクトを作成します
テーブル = 新しい COMObject("ADOX.Table");
テーブル 。 名前 = "シート 1" ;
テーブル 。 コラム。 Append("列1", 202);
テーブル 。 コラム。 Append("列2", 7);
テーブル 。 コラム。 Append("列3", 5);
テーブル 。 コラム。 Append("列4", 5);// 記述された構造を持つシートをワークブックに作成します
本 。 テーブル。 追加(テーブル);
テーブル = 未定義;
本 = 未定義;
上記の例では、メソッド内で
テーブル 。 コラム。 追加(「コラム1」、202);
2 番目のパラメータは列のタイプを指定します。 パラメータはオプションです。列タイプの値をいくつか次に示します。
- 5 - adDouble;
- 6 - 広告通貨。
- 7 - adDate;
- 11 - adBoolean;
- 202 - adVarWChar;
- 203 - adLongVarWChar。
例 読む:
// 接続用の COM オブジェクトを作成します
接続 = 新しい COMObject("ADODB.Connection");// 接続文字列を設定します
コンパウンド 。 接続文字列 = "
|プロバイダー=Microsoft.ACE.OLEDB.12.0;
|データソース= + ファイル名 + ";
|拡張プロパティ=""Excel 12.0 XML;HDR=YES"";";
コンパウンド 。 開ける(); // 接続を開きます// 選択内容を受け取る COM オブジェクトを作成します
Select = New COMObject("ADODB.Recordset");
リクエストテキスト = 「SELECT * FROM [Sheet1$]」;// リクエストを実行します
サンプル 。 Open(クエリテキスト, 接続);// サンプル結果をバイパスします
まだ選択ではありません。 EOF() ループ
列 1 の値 = 選択。 田畑。 項目("列1")。 価値 ; // カラム名でアクセス
列 2 の値 = 選択。 田畑。 アイテム(0)。 価値; // カラムインデックスによるアクセス
サンプル 。 MoveNext();
エンドサイクル;サンプル 。 近い();
サンプル = 未定義;
コンパウンド 。 近い();
接続 = 未定義;
接続文字列内のパラメータ HDRシートの最初の行がどのように認識されるかを決定します。 考えられるオプション:
- YES - 最初の行は列名として扱われます。 値には名前と列インデックスによってアクセスできます。
- NO - 最初の行はデータとして扱われます。 値には列インデックスによってのみアクセスできます。
これらの例では、いくつかの ADO オブジェクトのみを取り上げています。 ADO オブジェクト モデルは次のオブジェクトで構成されます。
- 繋がり;
- 指示;
- レコードセット;
- 記録;
- 田畑;
- ストリーム;
- エラー;
- パラメーター;
- プロパティ。
プログラミングなしでアップロード
1C から Excel にデータを保存するには、プログラミングに頼ることが常に推奨されるわけではありません。 エンタープライズ モードでダウンロードに必要なデータを表示できる場合は、プログラミングなしでデータを Excel に保存できます。
スプレッドシート ドキュメント (レポートの結果など) を保存するには、次のコマンドを呼び出します。 保存または 名前を付けて保存…メインメニュー。
開いたウィンドウで、保存するファイルのディレクトリ、名前、形式を選択する必要があります。
動的リスト (アイテムのリストなど) からデータを保存するには、次のことを行う必要があります。
- コマンドを使用してデータをスプレッドシート ドキュメントに出力する もっと見る ⇒ 一覧...;
- スプレッドシートドキュメントを必要な形式で保存します。
構成: 1c 会計
構成バージョン: 3.0.44.177
発行日: 20.01.2017
1C: Accounting プログラムでは、サードパーティの処理や構成変更を使用せずに、Excel スプレッドシート ドキュメントからデータを定期的にアップロードおよびダウンロードできる機能が提供されるようになりました。 積み込みと積み下ろしは非常に簡単なので、経験豊富なユーザーはこの便利なメカニズムにすぐに夢中になり、新しいユーザーもすぐに使いこなすことができます。
Excel 1C: Accounting 8.3 ed からダウンロードします。 3.0
たとえば、品目と価格 (小売と購入) のリストをロードするための Excel スプレッドシート ドキュメントがあります。
に来てください。
上部をクリックします 名称と価格 - ダウンロード。 ここには、スプレッドシート ドキュメントのロードとアンロードが隠されています。
ダウンロードでは、xls (古い Excel 97-2003 形式) と xlsx (新しい形式) に加え、mxl 形式と ods 形式もサポートされています。 ここで、命名法を含むファイルを選択し、それがロードされるのを待ちます。
スプレッドシート ドキュメントが Excel で見た形式で読み込まれたので、列を割り当て、不要な列を削除します。
クリック 詳細を入力してくださいをクリックしてリストから目的の項目を選択します。
不要なエントリを含む行、つまりテーブルヘッダーを選択し、 行を削除.
ここで、購入価格の列を削除します。次の点に注意してください。 処理は一度に 1 種類の価格のみを入力できます。次に、この操作を再度実行して、2 番目の購入の 1 番目のロードとして、2 番目のタイプの価格をロードします。
空白のデータ、価格タイプ、価格を設定します。 「すべて」、「見つかった」、「新規」、「重複」のボタンを使用すると、検索が大幅に容易になり、アイテムの比較に役立ちます。 入力してクリックしてください ダウンロードその後、データは 1C: Accounting にロードされます。
新しいアイテムが製品リストに表示され、入力され、価格が割り当てられました。 別のタイプの価格をロードする必要がある場合は、すべての手順を再度実行しますが、別の価格の列を選択すると、1C 自体がすでに作成されたポジションを検索し、それらを複製しようとせず、単に新しいタイプの価格を追加します。
ご覧のとおり、ダウンロードにより、商品価格を設定するための、購入価格と小売価格の 2 つのドキュメントが作成されました。 この治療法との違いは、 Excel から 1C へのロード: Accounting 8.3、実際、これは標準的な処理であり、失敗することなく機能し、文書に記入するすべての機能が考慮されています。
1C から Excel にアップロード: Accounting 8.3 ed. 3.0
エディション 3.0.44.177 以降の非常に便利な機能は、1C: Accounting 8.3 から Excel にアップロードすることです。この処理は、会社の価格表を作成したり、商品リストを価格とともにサプライヤーまたはバイヤーに即座に転送したりするのに役立ちます。
すべてはディレクトリにあります 名称 - 名称と価格 - アンロード.
ポイント内 コラムをクリックして、Excel ドキュメント内に構築する必要がある列を選択します。 選択グループ、プロパティ、名前などによって項目を選択するのに役立ちます。
Excelにアップロードするには、VAT率という新しい列を追加します。あまり必要ではないようですが、練習中です。
スプレッドシート文書を 1C 8.3 Accounting プログラムにロードするにはどうすればよいですか?
1C 8.3 では、Excel ファイルなどのスプレッドシート ドキュメントからアイテムのリストを一括ダウンロードできます。
読み込みには、マネージド フォーム (8.2 および 8.3) の外部処理 LoadDataFromTabularDocument.epf を使用します。 これは汎用的であり、マネージド アプリケーション用に作成されたあらゆる構成に適しています。
外部処理を開始するには、「ファイル」メニューから「開く」に移動し、保存されているディレクトリからこの処理を選択する必要があります。
処理 スプレッドシート ドキュメントからのデータのロード 1C 8.3 (管理フォーム)
1C で処理が開いたら、作業を開始できます。 まず最初に、どこに何をダウンロードするかを決める必要があります。
参考書『命名法』にある例を挙げてみましょう。 xls形式のデータを含むファイルを作成します。
処理では、次の形式のファイルを読み込むこともできます。
- データをコピーできるその他の形式
ソース データを含む Excel ファイルは次のようになります。これを「Nomenclature」リファレンス ブックにアップロードします。
ロードの原理を理解するにはこれだけで十分であるため、ディレクトリ内のすべてのフィールドを書き留めませんでした。 さらに、このデータは、これらのポジションでの作業を開始するのに十分です。
これらのポジションは現在 1C 情報データベースにないため、そこにアップロードします。
「開く」アイコン (図では「ソースの選択」として示されています) をクリックし、データが含まれるファイルを選択します。 情報の単純なコピーを使用できます。 データは自動的にロードされて処理されます。 データを正しく入力したかどうかを確認してみましょう。 これを行うには、「充填制御」ボタンをクリックします。
ご覧のとおり、いくつかのエラーがあります。 私たちはそれを排除します。 「設定」タブに移動します。
エラーを修正する前に、1 つの重要な点に注意してください。 プログラムは、ディレクトリ要素がすでに存在する場合、最初はどのフィールドでディレクトリ要素を検索すればよいのかわかりません。 したがって、彼女はそれを示す必要があります。 たとえば、コードは通常一意であるため、コードで検索します。 「コード」行の「検索フィールド」欄にチェックを入れます。 このようなコードを持つレコードが見つかった場合は置き換えられ、そうでない場合は作成されます。
重要! 検索フィールドを指定しない場合、重複した項目が表示される場合があります。 特に同様のファイルを 2 回目にダウンロードした後は注意してください。
では、なぜ「Unity」がフィールドで悪態をついているのかを見てみましょう。 実際、1C 8.3 の測定単位は別のディレクトリに保存され、デフォルトの処理では名前でこの単位が検索されます。 しかし、実際には「フルネーム」欄に単語単位が書かれています。
残念ながら、処理は「名前」と「コード」でしか検索できません(プログラマーにとっては可能性が広がります)。 上の写真に注目すると、「単位」列にコードがあることがわかります。 また、処理では、検索をコードによって実行する必要があることを示す必要があります。 「単位」の反対側の「通信条件」列をダブルクリックし、「コード」に変更します。
次に、エラーのリストにある「サービス」について何を教えてくれるか見てみましょう。 もう 1 つ重要な注意事項があります。 ファイル内の列は、ディレクトリ フィールドの行と厳密に同じ順序で配置する必要があります。 そして、「アイテムの種類」はファイルの一番下、「コメント」列の後にあります。
「項目タイプ」の行を上に移動するには、フォームの上部に青い矢印があります。 「上」矢印を使用して目的の行を上げ、「コメント」の下に配置します。
「データのロード」をクリックすると、今度はエラーが発生せずにすべてが完了します。
資料に基づく:programmist1s.ru