1c Programmierarbeit mit Excel. Was ist besser – 1C oder Excel? Sie haben eine Frage oder benötigen Hilfe von einem Berater?

In 1C gibt es zwei Möglichkeiten, mit MS Excel-Dateien zu arbeiten: über ein COM-Objekt und integrierte 1C-Tools, die ein Objekt verwenden Tabellenkalkulationsdokument. Schauen wir uns beide Methoden genauer an.

1. Arbeiten Sie ein COM-Objekt durch.

Für diese Methode ist MS Excel erforderlich. Wenn Sie mit einer Datei auf dem Server arbeiten, muss MS Excel auf dem Server installiert sein. Wenn auf dem Client, ist MS Excel auch auf der Clientseite erforderlich.

Beispiel (Sie können es in Textform am Ende des Artikels sehen):

Es ist zu beachten, dass alle vom COM-Objekt „Excel.Application“ bereitgestellten Objekte, Methoden und Eigenschaften Objekte, Methoden und Eigenschaften von VBA, der Programmiersprache von MS Office, sind.

Notiz:

Manchmal müssen Sie mit einer vorhandenen Vorlage arbeiten. Dann müssen wir diese Vorlage irgendwo speichern, damit alle notwendigen Benutzer Zugriff darauf haben. Es gibt jedoch eine einfachere Lösung: Speichern Sie die Vorlage als binäres Layout.

2. Arbeiten Sie das tabellarische Dokument 1C durch.

Das 1C-Tabellendokument unterstützt das MS Excel-Format für die Aufzeichnung ab Plattform 8, zum Öffnen jedoch erst ab Plattform 8.3.6. Darüber hinaus werden beim Öffnen alle Blätter in ein Tabellendokument geladen. Ab Version 8.3.10 beim Booten verschiedene Blätter werden als unterschiedliche Bereiche geladen.

Ein Beispieleintrag ist sehr einfach und erfordert keine besondere Aufmerksamkeit:

Allerdings haben wir hier ein Problem. Beim Aufzeichnen von 1C in einer Excel-Arbeitsmappe ist die Anzeige von Blattnamen standardmäßig deaktiviert.

Dieses Problem kann auf zwei Arten gelöst werden: 1 – Aktivieren Sie im Buch selbst die Anzeige von Blättern in den Einstellungen (nicht alle Benutzer sind damit einverstanden), 2 – tun Sie dies über ein COM-Objekt (wir müssen wiederum MS Excel installieren). ).

Nach dieser kleinen Ergänzung werden Blattbeschriftungen in der MS Excel-Datei sichtbar.

Das Lesen von MS Excel ist keine so einfache Aufgabe, da die Lesemethode nur auf dem Server oder Thick Client verfügbar ist. Dazu müssen wir die MS Excel-Datei auf den Server übertragen.

&OnClient

Prozedur CreateDocument()

Ausnahme

EndAttempt;

Book = Excel.WorkBooks.Add(); //Erstellen Sie eine neue MS Excel-Arbeitsmappe

Sheet = Book.WorkSheets.Add(); //Füge ein Blatt hinzu

Sheet.Name = "Beispiel aus 1C"; //Legen Sie den Blattnamen fest

Sheet.Cells(1,1).Value = "Lassen Sie uns eine Formel erstellen";!}

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();

EndProzedur

&Auf dem Server

Funktion GetLayoutServer()

Return FormAttributesValue("Object").GetLayout("TemplateForUpload"); //Auf diese Weise erhalten wir das Layout externe Verarbeitung;

EndFunction

&OnClient

Prozedurarbeit()

Excel = New COMObject("Excel.Application");

Ausnahme

Report("Fehlgeschlagener Versuch, Excel-Komponenten zu verbinden. Möglicherweise Excel-Programm nicht installiert auf dieser Computer!");

EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Sie haben eine Frage oder benötigen Hilfe von einem Berater?

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;@"; // Geben Sie das Datumsformat an. Dieses Format wurde durch Aufzeichnen eines Makros in MS Excel erhalten

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Spalte so dehnen, dass das Datum genau passt

Book.SaveAs(FileName);

Book.Close();

EndProzedur

&OnClient

EndProzedur

&OnClient

Prozedur WriteTabularDocument()

TabularDocument = New TabularDocument();

TabularDocument.Area("R1C1").Text = "Beispiel eines Datensatzes in MS Excel aus 1C";

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()

EndProzedur

BinaryData = New BinaryData("C:\1\test2.xlsx");

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

TabularDocument = UploadOnServer(Adresse);

TabularDocument.Show();

EndProzedur

&Auf dem Server

Funktion UploadOnServer(Adresse)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Address);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

return TabularDocument;

Die 1C-Anwendung ist seit langem das beliebteste Programm unter Buchhaltern, Planern, Ökonomen und Managern. Es gibt nicht nur eine Vielzahl von Konfigurationen für verschiedene Arten Aktivitäten, sondern auch die Lokalisierung nach Rechnungslegungsstandards in mehreren Ländern auf der ganzen Welt. Immer mehr Unternehmen stellen in diesem Programm auf die Buchhaltung um. Aber die manuelle Übertragung von Daten aus anderen Buchhaltungsprogrammen an 1C ist eine ziemlich langwierige und langweilige Aufgabe, die viel Zeit in Anspruch nimmt. Wenn das Unternehmen die Aufzeichnungen mit Excel führt, kann der Übertragungsprozess erheblich automatisiert und beschleunigt werden.

Die Übertragung von Daten von Excel nach 1C ist nicht nur in der ersten Phase der Arbeit mit diesem Programm erforderlich. Manchmal ist so etwas erforderlich, wenn Sie im Verlauf einer Aktivität einige im Tabellenkalkulationsbuch gespeicherte Listen eingeben müssen. Wenn Sie beispielsweise Preislisten oder Bestellungen aus einem Online-Shop übertragen müssen. Wenn die Listen klein sind, können Sie sie manuell eingeben. Was aber, wenn sie Hunderte von Elementen enthalten? Um den Vorgang zu beschleunigen, können Sie auf einige zusätzliche Optionen zurückgreifen.

Für automatischer Download Fast alle Arten von Dokumenten sind geeignet:

  • Liste der Nomenklaturen;
  • Liste der Gegenparteien;
  • Preisliste;
  • Liste der Bestellungen;
  • Informationen über Käufe oder Verkäufe usw.

Es sei gleich darauf hingewiesen, dass 1C nicht über integrierte Tools verfügt, mit denen Sie Daten aus Excel übertragen können. Für diese Zwecke müssen Sie einen externen Bootloader anschließen, der eine Datei im Format ist epf.

Datenaufbereitung

Wir müssen die Daten in der Excel-Tabelle selbst vorbereiten.


Zusätzlich zu diesen universellen Aktionen zum Vorbereiten von Daten in einem Excel-Buch müssen Sie das Dokument auch an die Anforderungen des spezifischen Loaders anpassen, den wir verwenden werden, aber darauf werden wir weiter unten eingehen.

Anschließen eines externen Bootloaders

Schließen Sie einen externen Bootloader mit Erweiterung an epf Die Anwendung 1C kann sowohl vor als auch nach der Erstellung der Excel-Datei erfolgen. Die Hauptsache ist, dass diese beiden vorbereitenden Probleme vor Beginn des Ladevorgangs gelöst wurden.

Es gibt mehrere externe Excel-Tabellenlader für 1C, die von verschiedenen Entwicklern erstellt wurden. Wir betrachten ein Beispiel mit einem Tool zur Informationsverarbeitung „Daten aus einem Tabellenkalkulationsdokument laden“ für Version 1C 8.3.


Eine der wichtigsten Datenbanken, mit denen 1C arbeitet, ist eine Liste von Produkten und Dienstleistungen. Um den Ladevorgang aus Excel zu beschreiben, konzentrieren wir uns daher auf das Beispiel der Übertragung dieses bestimmten Datentyps.

  1. Wir kehren zum Verarbeitungsfenster zurück. Da wir das Produktsortiment laden, sollte der Schalter im Parameter auf der Position stehen "Verzeichnis". Es wird jedoch standardmäßig auf diese Weise installiert. Sie sollten es nur ändern, wenn Sie einen anderen Datentyp übertragen möchten: einen tabellarischen Abschnitt oder ein Informationsregister. Als nächstes auf dem Feld „Verzeichnisansicht“ Klicken Sie auf die Schaltfläche mit den Auslassungspunkten. Eine Dropdown-Liste wird geöffnet. Darin sollten wir den Artikel auswählen "Nomenklatur".
  2. Danach platziert der Handler automatisch die Felder, die das Programm in dieser Art von Nachschlagewerk verwendet. Es sei gleich darauf hingewiesen, dass es keineswegs notwendig ist, alle Felder auszufüllen.
  3. Öffnen Sie nun das tragbare Gerät erneut Excel-Dokument. Wenn sich der Name seiner Spalten von den Namen der 1C-Verzeichnisfelder unterscheidet, die die entsprechenden enthalten, müssen Sie diese Spalten in Excel umbenennen, damit die Namen vollständig übereinstimmen. Wenn die Tabelle Spalten enthält, für die es im Verzeichnis keine Analoga gibt, sollten diese gelöscht werden. In unserem Fall sind es diese Spalten "Menge" Und "Preis". Es sollte auch hinzugefügt werden, dass die Reihenfolge der Spalten im Dokument genau mit der in der Verarbeitung dargestellten Reihenfolge übereinstimmen muss. Wenn Sie für einige der im Loader angezeigten Spalten keine Daten haben, können Sie diese Spalten leer lassen, aber die Nummerierung der Spalten, in denen Daten vorhanden sind, muss übereinstimmen. Um die Bearbeitung zu vereinfachen und zu beschleunigen, können Sie eine spezielle Excel-Funktion verwenden, um Spalten schnell an bestimmte Stellen zu verschieben.

    Nachdem diese Schritte abgeschlossen sind, klicken Sie auf das Symbol "Speichern", was durch ein Symbol mit einer Diskette in der oberen linken Ecke des Fensters dargestellt wird. Schließen Sie dann die Datei, indem Sie auf die Standardschaltfläche zum Schließen klicken.

  4. Wir kehren zum 1C-Verarbeitungsfenster zurück. Klicken Sie auf die Schaltfläche "Offen", der als gelber Ordner angezeigt wird.
  5. Das Fenster zum Öffnen der Datei wird geöffnet. Gehen wir in das Verzeichnis, in dem sich das benötigte Excel-Dokument befindet. Der Standardschalter für die Dateianzeige ist auf „Erweiterung“ eingestellt mxl. Um die benötigte Datei anzuzeigen, müssen wir sie an die Position verschieben "Excel-Tabelle". Wählen Sie anschließend das zu übertragende Dokument aus und klicken Sie auf die Schaltfläche "Offen".
  6. Der Inhalt wird dann im Handler geöffnet. Um zu überprüfen, ob die Daten korrekt ausgefüllt sind, klicken Sie auf die Schaltfläche „Abfüllkontrolle“.
  7. Wie wir sehen, teilt uns das Füllkontrolltool mit, dass keine Fehler gefunden wurden.
  8. Kommen wir nun zur Registerkarte "Einstellungen". IN "Suchfeld" Wir setzen ein Häkchen in die Zeile, die für alle im Nomenklaturverzeichnis eingetragenen Namen eindeutig ist. Die hierfür am häufigsten verwendeten Felder sind "Herstellerkürzel" oder "Name". Dies muss erfolgen, damit beim Hinzufügen neuer Elemente zur Liste die Daten nicht dupliziert werden.
  9. Nachdem alle Daten eingegeben und die Einstellungen abgeschlossen sind, können Sie mit dem direkten Laden der Informationen in das Verzeichnis fortfahren. Klicken Sie dazu auf die Inschrift "Lade Daten".
  10. Der Downloadvorgang ist im Gange. Nach Abschluss können Sie im Artikelverzeichnis nachsehen, ob dort alle notwendigen Daten eingetragen sind.

Wir haben das Verfahren zum Hinzufügen von Daten zum Nomenklaturverzeichnis im Programm 1C 8.3 befolgt. Bei anderen Verzeichnissen und Dokumenten erfolgt der Download nach dem gleichen Prinzip, jedoch mit einigen Nuancen, die der Benutzer selbst herausfinden kann. Es ist auch zu beachten, dass die Vorgehensweise bei verschiedenen Drittanbieter-Loadern unterschiedlich sein kann, die allgemeine Vorgehensweise jedoch für alle gleich bleibt: Zuerst lädt der Prozessor Informationen aus der Datei in das Fenster, in dem sie bearbeitet werden, und erst dann werden sie hinzugefügt direkt zur 1C-Datenbank.

  • Beim Austausch von Informationen zwischen Gegenparteien (Preislisten, Abgleichsberichte usw.);
  • Um die Arbeit der Bediener in Fällen zu erleichtern, in denen die Hauptbuchhaltung in 1C und ein Teil davon in Excel-Tabellen erfolgt;
  • Beim ersten Befüllen der Datenbank.

Um diesen Vorgang auszuführen, können Sie sowohl die Standardfunktionalität verwenden, die mit einem Abonnement für den Informationstechnologie-Support (ITS) verfügbar ist, als auch die unabhängige schriftliche Verarbeitung, die durch implementiert wird Verschiedene Optionen Verbindungen. In unserem Artikel werden wir versuchen, alles so vollständig wie möglich zu analysieren mögliche Fälle und beantworten Sie die meisten bestehenden Fragen zum Laden von Daten aus Excel in 1C.

Universeller Mechanismus

Auf den ITS-Festplatten sowie im 1C-Portal befindet sich die entsprechende Verarbeitung im Menü „Technologischer Support“ -> „Universelle Berichte und Verarbeitung“ im Ordner „Laden von Daten aus einem Tabellenkalkulationsdokument“.

Wenn Sie es starten, öffnet sich das Formular (Abb. 1):

Wie Sie dem Formular entnehmen können, ermöglicht es Ihnen, Informationen an die folgenden Konfigurationsobjekte zu übertragen:

  1. Verzeichnis;
  2. Tabellarischer Teil Dokument oder Nachschlagewerk;
  3. Informationsregister.

Abhängig von der Stellung des Schalters verändert sich das Objektauswahlfeld.

Das Verarbeitungstabellenformular wird ausgefüllt, wenn die heruntergeladene Datei geöffnet wird.

Die typische Verarbeitung unterstützt Downloads von:

  • Entwickelt von Spezialisten von 1C, Dateiformatmxl;
  • Lisztxls im Format gespeichertExcel 97-2003;
  • Textdateitxt;
  • Tischedbf.

Das Laden großer Excel-Dateien kann ziemlich lange dauern. Wenn Sie also davon ausgehen, dass das Laden der Daten in mehreren Schritten erfolgen kann oder Sie sicher sind, dass Sie eine vorhandene Datei mehrmals öffnen müssen, um Nerven und Zeit zu sparen, Es ist besser, die Informationen daraus im MXL-Format zu speichern. Dies kann direkt aus dem Bearbeitungsformular heraus erfolgen.

Es ist wichtig zu verstehen, dass wenn Quelldatei Es gibt Zeilengruppierungen, Unterüberschriften und Notizen, diese müssen manuell entfernt werden.

Kommen wir nun zum Reiter „Einstellungen“ (Abb. 2):

Abb.2

Sehr oft enthalten Excel-Tabellen eine Kopfzeile mit allerlei Details und Daten (Name des gedruckten Formulars, Angaben zur Gegenpartei, Datum und Nummer des eingehenden Dokuments, Spaltennamen usw.), um eine Verarbeitung durch zu verhindern Um das Programm auf dem Formular anzuzeigen, müssen Sie im Attribut „Erste Zeile des Tabellendokuments“ die erste Zeile mit den übertragenen Informationen angeben

Nach Auswahl eines Metadatenobjekts, in dem Informationen aufgezeichnet werden sollen, wird der tabellarische Teil der Registerkarte „Einstellungen“ automatisch mit den Namen der Details, Beschreibungen ihrer Typen usw. ausgefüllt wichtige Informationen. Die Betrachtung der Spalten des tabellarischen Teils der Registerkarte „Einstellungen“ sollte berücksichtigt werden separater Abschnitt.

Spalten „Einstellungen“

Markierung – durch Aktivieren oder Deaktivieren eines Kontrollkästchens in einer Zeile wird festgelegt, ob das entsprechende Attribut ausgefüllt wird.

Attributdarstellung – hier wird das Synonym (Name) des Metadatenattributs geschrieben, wie es im Konfigurator angegeben ist.

Suchfeld – wenn Sie dieses Feld markieren, sucht die Verarbeitung anhand der entsprechenden Details nach Elementen und ändert bei Erfolg die vorhandenen Daten. Zusatzfunktion Dieses Feld dient dem Schutz vor Duplikaten.

Beschreibung der Typen – zeigt den Datentyp an, den ein bestimmtes Metadatenattribut hat.

Boot-Modus – bietet drei Optionen zur Auswahl (Abb. 3):

Abb. 3

  • Suche – es wird nach dem entsprechenden Element gesucht; wenn es fehlt, kann ein neues erstellt werden;
  • Festlegen – ein bestimmter Wert wird untergeordnet festgelegt;
  • Berechnen – in diesem Fall wird das Ergebnis der Berechnung des in der Spalte „Verbindungsbedingung/Ausdruck für Wert“ angegebenen Ausdrucks in das Feld des erstellten Elements eingetragen.

Im letzteren Fall wird durch Aktivieren des Felds „Ausdruck“ das Formular geöffnet (Abb. 4).

Abb.4

Die Spaltennummer ist ein Feld, das angibt, welche Spalte der Excel-Tabelle mit Daten gefüllt werden soll.

Standardwert – häufig kommt es vor, dass die heruntergeladene Datei nicht alle zum Aufzeichnen eines Elements erforderlichen Daten enthält. In diesem Fall werden die in diesem Feld enthaltenen Informationen ausgefüllt.

Verknüpfungsbedingung/Ausdruck für einen Wert – wir haben dieses Feld bereits teilweise angesprochen, als wir uns berechnete Felder angesehen haben. Darüber hinaus können Sie die Bedingung angeben, gemäß der die Quelldaten synchronisiert werden.

Dabei handelt es sich im Prinzip um alle Informationen, die auf der Registerkarte „Einstellungen“ verfügbar sind.

Um nicht jedes Mal viel Zeit mit dem Laden, Schreiben von Korrespondenzen und Ausdrücken zu verschwenden, haben die Entwickler die Möglichkeit bereitgestellt, die Konfigurationsoption in einer Datei mit der Erweiterung mxlz zu speichern.

Sie können die Richtigkeit der übermittelten Daten überprüfen, indem Sie auf die Schaltfläche „Abfüllkontrolle“ klicken (Abb. 1). Danach können Sie den Downloadvorgang starten. Über den erfolgreichen Abschluss des Verfahrens oder ungewöhnliche Situationen werden Sie gesondert benachrichtigt.

Zum Laden von Daten aus Excel in Informationsdatenbanken„Management und Handel“ gibt es noch einen weiteren Mechanismus. Sie ist weniger universell als die oben genannte Methode, erfordert jedoch kein ITS-Abonnement und ist im Standardlieferumfang enthalten.

Diese Verarbeitung ist auf der Registerkarte „Einkäufe“ zu finden, im Menü „Service“ heißt sie „Lieferantenpreise aus Dateien laden“ (Abb. 5)

Abb.5

Das Verarbeitungsformular enthält:

  1. Ein Datumsauswahlfeld, das angibt, für welchen Zeitraum dieser Preis gültig ist;
  2. Feld zur Auswahl der Gegenpartei, die ihre Preisliste gesendet hat;
  3. Eine Schaltfläche, mit der Sie die Art der festzulegenden Preise auswählen können;
  4. Ein tabellarischer Teil, der mit heruntergeladenen Daten gefüllt werden kann.

Diese Form ist in Abb. 6 zu sehen

Abb.6

Die Erklärung oben im Formular erklärt, wie Sie die erste Registerkarte des Formulars verwenden.

Nach Auswahl eines Kontrahenten (je nachdem, ob es sich um einen Lieferanten, Kommissionär oder Verkäufer handelt) stehen in der Tabelle zusätzliche Spalten für jede Preisart zur Verfügung.

Beim Arbeiten über die Weboberfläche kann bei einigen Browsern die Installation eines Browser-Add-ons erforderlich sein (Abb. 7). Wir müssen auf die Schaltfläche „Installation starten“ klicken und unsere Verbindung neu starten.

Abb.7

Anschließend können wir mithilfe der Zwischenablage Informationen von einer Tabelle in eine andere übertragen. Wenn die von uns benötigten Spalten („Artikel“, „Name“, „Preis“) ausgefüllt sind, klicken wir auf die Schaltfläche „Weiter“ und gehen zur zweiten Seite (Abb. 8).

Abb.8

Das Programm sucht automatisch nach Übereinstimmungen in der Datenbank und bietet, falls keine Übereinstimmungen gefunden werden, Optionen zur Behebung des Fehlers an. Aussehen Der tabellarische Teil kann über einen Schalter gesteuert werden. Darüber hinaus kann der Benutzer die Elemente der heruntergeladenen Datei selbstständig mit den in der Datenbank verfügbaren Daten vergleichen.

  • Registrieren Sie alles;
  • Registrieren Sie nur diejenigen, die sich im Vergleich zu den bereits in der Datenbank vorhandenen geändert haben.

Im Textfeld können Sie einen Kommentar eingeben, der im Dokument festgehalten wird (Abb. 9):

Abb.9

Nach der Bearbeitung:

  • Das entsprechende Element wird im Verzeichnis „Supplier Nomenclature“ erstellt (sofern es noch nicht vorhanden ist);
  • Das Verzeichniselement „Nomenklatur“ wird damit verknüpft;
  • Das Dokument „Artikelpreise festlegen“ wird erstellt und veröffentlicht und enthält folgende Angaben: Lieferant, Art der Preise und Datum der Datenerfassung.

Die Abwicklung „Warenverladung ab“ funktioniert ähnlich. externe Dateien».

DIY-Transferverarbeitungsoptionen

Das Hauptproblem beim Extrahieren von Daten aus einer Excel-Datei besteht darin, dass 1C nicht über einen integrierten eindeutigen Mechanismus zum Öffnen verfügt. Es gibt mehrere Möglichkeiten, Excel mit 1C zu verbinden:

  • Über Microsoft ADODB – genug schneller Weg, was in der Regel sowohl für die Datei als auch für die Datei gilt Client-Server-Version Datenbankspeicherung;
  • Durch Gebrauch Microsoft Office– eine Methode, die bei der Arbeit mit SQL-Datenbanken manchmal fehlschlägt, in der Regel etwas langsamer als die erste Methode ist und außerdem die Installation von Office erfordert;
  • Über Libre Office – im Gegensatz zur vorherigen Methode ist es kostenlos, unterstützt neben den Formaten xls und xlsx auch eigene Tabellen, erfordert jedoch installiertes Paket LibreOffice und einige Vorbereitungen der heruntergeladenen Datei (die erste Zeile der Tabelle sollte die Namen der Spalten enthalten).

Lass uns genauer hinschauen verschiedene Wege und Optionen.

Über ADODB.Connection

Im Allgemeinen steht ADO für ActiveX Data Object und wird für den programmatischen Zugriff auf verschiedene Datenbanken verwendet. Das größte Problem beim Erstellen einer Verbindung zu einer Datei eines Drittanbieters (einschließlich Excel) besteht darin, die Verbindungszeichenfolge korrekt zu verfassen.

Für Excel-Dateien gibt es drei Möglichkeiten:

Optionen für Verbindungszeichenfolgen:

  • Anbieter – hier wird der verwendete Treiber definiert;
  • Datenquelle – definiert den Namen der Datei, die wir öffnen;
  • Erweiterte Eigenschaften – hier können Sie angeben, ob eine Kopfzeile für die Tabelle benötigt wird (HDR = YES zeigt an, dass die Daten aus der ersten Zeile gelesen werden, HDR = NO – was aus der zweiten), ob die Datei schreibgeschützt geöffnet wird (ReadOnly) und einige andere zusätzliche Parameter.

Nachdem wir eine Verbindungszeichenfolge erstellt haben, können wir eine Verbindung zur heruntergeladenen Datei herstellen (Abb. 13).

Abb.13

Jetzt können wir mit einer einfachen Anfrage (Abb. 14) mit dem Abrufen von Informationen aus der heruntergeladenen Datei beginnen.

In diesem Fall bestimmt der Parameter „Blatt“, mit welchem ​​Blatt der Excel-Arbeitsmappe wir arbeiten.

Der in einem Arbeitsblatt gespeicherte Datensatzsatz kann mithilfe eines Recordset-Objekts gelesen werden. In diesem Fall kann der erste Datensatz des Blattes mit dem BOF-Parameter (Beginn der Datei) und der letzte EOF (Ende der Datei) ermittelt werden.

Per Excel-Anwendung

Der Hauptunterschied zur vorherigen Methode besteht darin, dass zusätzlich zu den Datenbanktreibern Excel auf dem Computer installiert sein muss, auf dem die Verbindung hergestellt wird. Nur in diesem Fall können wir die Anwendung initialisieren, um Daten aus der Tabelle zu lesen (Abb. 16).

Dieses COM-Objekt verfügt über mehrere untergeordnete Parameter, aber angesichts der aktuellen Bedingungen der Aufgabe ist für uns der wichtigste Parameter der WorkBooks-Parameter (Abb. 17).

Nach der Initialisierung der Arbeitsmappe muss das Blatt bestimmt werden, aus dem die Daten gelesen werden (Abb. 18).

Anschließend können Sie die Zeilen und Spalten der Tabelle der geöffneten Datei durchlaufen.

Ein paar Worte zu möglichen Fehlern

Der Löwenanteil der Fehler beim Herstellen einer Verbindung zu einer Datei entsteht dadurch, dass die Datei bereits von einer anderen Anwendung belegt ist. Es ist gut, wenn Sie in der Taskleiste sehen können, dass Excel auf dem Computer ausgeführt wird. Wenn Sie oder ein anderer Benutzer es jedoch aus der externen Verarbeitung heraus geöffnet haben, kann dies nur visuell über den „Task-Manager“ festgestellt werden. Vergessen Sie also nicht, die Verbindung zu schließen vor Abschluss des Übertragungsvorgangs:

Bei der Arbeit über ADO (Abb. 19);

Abb.19

  • Bei der Arbeit mit der Anwendung (Abb. 20).

Reis. 20.

Am besten organisieren Sie die Verbindung und das Verfahren zum Abschluss der Arbeit mit Daten innerhalb des Attempt-Exception-EndAttempt-Konstrukts und rufen in einer Ausnahmesituation eine Fehlerbeschreibung auf. Das verlangsamt die Arbeit zwar mitunter, erleichtert aber deutlich die Ermittlung der Fehlerursache und letztlich auch deren Behebung.

Einführung.

Viele Leute wissen, dass Excel viel älter als 1C ist. Meiner Meinung nach ist dies ein sehr gelungenes Produkt, und ich habe keine Beschwerden darüber gehört. Excel ist einfach und vielseitig. Er ist in der Lage, nicht nur einfache Leistungen zu erbringen Rechenoperationen, aber auch komplexe Berechnungen, das Zeichnen von Diagrammen usw. Ich kenne Beispiele, bei denen Organisationen vor der Umstellung auf 1C einen Teil ihrer Buchhaltung in Excel geführt haben. Viele Menschen nutzen immer noch zwei Programme parallel. In diesem Artikel werden wir uns mit Möglichkeiten zum Datenaustausch zwischen 1C und Excel befassen.

Tabellen 1C und Excel.

Viele Benutzer speichern 1C-Tabellen aus Gründen der Benutzerfreundlichkeit ( gedruckte Formulare) im Excel-Format (*.xls). Anschließend werden in der resultierenden Datei verschiedene Gruppierungen, Sortierungen, Berechnungen usw. vorgenommen. Dies liegt daran, dass 1C-Tabellen nicht über eine so große Funktionalität verfügen wie Excel-Tabellen. Doch in Version 1C 8.0 gibt es Neuerungen, die das Arbeiten mit Tabellen komfortabler machen.

Auf der 1C-Website (http://www.1c.ru/) gibt es ein nützliches Programm, mit dem Sie 1C-Tabellen in Excel öffnen und eine Excel-Tabelle als 1C-Tabelle speichern können. Dies ist nützlich, wenn die 1C-Tabelle nicht im Excel-Format gespeichert wurde und 1C nicht auf dem Computer installiert ist, auf dem Sie diese Tabelle öffnen müssen. Und Sie müssen nicht ständig daran denken, dass Sie die 1C-Tabelle im Excel-Format speichern müssen.

Alle Informationen zum Programm finden Sie hier.
Sie können das Programm hier herunterladen ( zip-Archiv 682.739 Byte).

Kommentar: In Excel ist das Dezimaltrennzeichen das Zeichen ",". Ersetzen Sie daher vor dem Speichern der 1C-Tabelle im Excel-Format ein anderes Trennzeichen darin (z. B. „.“) durch „“,“. Andernfalls kann Excel mit diesen Zahlen keine Berechnungen durchführen oder sie werden gar nicht als Zahlen angezeigt. Beispielsweise wird in Tabelle 1C „15.2“ in Excel als „15. Februar“ angezeigt.

Abrufen von Daten aus Excel.

Der Zugriff von 1C auf Excel erfolgt über OLE. Zum Beispiel Code
Versuchen
Ausnahme
Report(ErrorDescription() +
);
Zurückkehren;
EndAttempt;
ermöglicht uns den Zugriff über die Excel-Variable auf die laufende Datei Excel-Anwendung. Und dann können Sie auf die Arbeitsmappe (Datei), das Blatt und die Zelle mit Daten zugreifen. Nachfolgend finden Sie Codebeispiele.

Ein Buch (eine Datei) öffnen:
Buch = Excel. Arbeitsbücher. Open(PathKFile);
Der Pfad zur Datei - vollständigen Pfad in die Excel-Arbeitsmappendatei.

Auswählen eines Arbeitsmappenblatts zum Arbeiten:
oder
Blatt = Buch. Arbeitsblätter(Blattname);
SheetNumber – die Nummer des Blattes in der Arbeitsmappe, SheetName – der Name des Blattes in der Arbeitsmappe.

Den Wert einer Blattzelle ermitteln:
Wert = Blatt. Zellen (RowNumber, ColumnNumber). Wert ;

Wichtig: Vergessen Sie nicht, Excel-Code in das Feld einzufügen, um die erforderlichen Aktionen auszuführen. Aufhören(); , ansonsten laufender Prozess

bleibt unvollendet und belegt den Speicher und Prozessor des Computers.

Datenausgabe nach Excel.
Versuchen
Um Daten nach Excel auszugeben (hochzuladen), müssen Sie entweder eine vorhandene Arbeitsmappe öffnen oder eine neue erstellen und ein Arbeitsblatt zur Datenausgabe auswählen. Das Öffnen einer vorhandenen Arbeitsmappe ist oben beschrieben, aber um eine neue Arbeitsmappe zu erstellen, müssen Sie den folgenden Code verwenden:
Ausnahme
Report(ErrorDescription() +
Excel = CreateObject("Excel.Application" ););
Zurückkehren;
EndAttempt;
„Excel ist auf diesem Computer nicht installiert!“

Da beim Erstellen einer Arbeitsmappe in Excel automatisch Blätter erstellt werden (Extras->Optionen->Allgemein->Blätter in einer neuen Arbeitsmappe), müssen Sie nur das Blatt auswählen, mit dem Sie arbeiten möchten:
Blatt = Buch. WorkSheets(SheetNumber);
oder fügen Sie bei Bedarf ein neues Blatt zur Arbeitsmappe hinzu:
Blatt = Buch. Blätter. Hinzufügen();
Der nächste Schritt besteht darin, den Zellenwert festzulegen:
Blatt. Zellen (RowNumber, ColumnNumber). Wert = Wert ;
RowNumber, ColumnNumber – die Zeilennummer und Spaltennummer, an deren Schnittpunkt sich die Zelle befindet.
Und am Ende müssen Sie das erstellte Buch aufzeichnen:
Versuchen
Buch . SaveAs (FilePath);
Ausnahme
Bericht(ErrorDescription()
+ „Datei nicht gespeichert!“);
Zurückkehren;
EndAttempt;
FilePath – vollständiger Pfad zur Excel-Arbeitsmappendatei (einschließlich Name).
Wichtig: Vergessen Sie nicht, dass Dateinamen nicht die Zeichen \ / : * ? enthalten dürfen. " >< |.

Häufig verwendete Methoden zum Lesen/Festlegen von Werten in Excel.

Excel = CreateObject("Excel.Application" ); Erhalten Sie Zugriff auf die Excel-Anwendung.
Excel. Sichtbar = Sichtbarkeit; 0 – Excel ist nicht sichtbar, 1 – sichtbar.
Buch = Excel. Arbeitsbücher. Hinzufügen(); Erstellen einer neuen Excel-Arbeitsmappe (Datei).
Buch . Speichern unter(Dateiname); Speichern einer Excel-Arbeitsmappe.
Blatt = Buch. Arbeitsblätter. Hinzufügen(); Ein neues Blatt zur Arbeitsmappe hinzufügen.
Buch = Excel. Arbeitsbücher. Öffnen(Dateiname); Öffnen einer vorhandenen Excel-Arbeitsmappe (Datei).
Blatt = Buch. WorkSheets(SheetNumber); Festlegen des Blattes als Arbeitsblatt mit der Nummer SheetNumber.
Blatt. Name = Blattname; Geben Sie dem Arbeitsblatt einen NamenSheetName
Blatt. Seiteneinrichtung. Zoom = Zoom; Stellen Sie die Seitenoption „Skalierung“ ein (von 10 bis 400).
Blatt. Seiteneinrichtung. Orientierung = Orientierung; Ausrichtung: 1 – Hochformat, 2 – Querformat.
Blatt. Seiteneinrichtung. LeftMargin = Excel . CentimetersToPoints(Zentimeter); Gibt den linken Rand an (in Zentimetern).
Blatt. Seiteneinrichtung. TopMargin = Excel . CentimetersToPoints(Zentimeter); Gibt die Obergrenze (in Zentimetern) an.
Blatt. Seiteneinrichtung. RightMargin = Excel . CentimetersToPoints(Zentimeter); Gibt den rechten Rand an (in Zentimetern).
Blatt. Seiteneinrichtung. BottomMargin = Excel . CentimetersToPoints(Zentimeter); Einstellen der unteren Grenze (in Zentimetern).
Blatt. Spalten (ColumnNumber). ColumnWidth = Breite ; Legen Sie die Spaltenbreite fest.
Blatt. Zellen (RowNumber, ColumnNumber). Wert = Wert; Daten in eine Zelle eingeben.
Blatt. Zellen (RowNumber, ColumnNumber). Schriftart. Name = Schriftartname; Festlegen der Schriftart in einer Zelle.
Blatt. Zellen (RowNumber, ColumnNumber). Schriftart. Größe = Schriftgröße; Legen Sie die Schriftgröße in einer Zelle fest.
Blatt. Zellen (RowNumber, ColumnNumber). Schriftart. Fett = Fett; 1 – fett, 0 – normal.
Blatt. Zellen (RowNumber, ColumnNumber). Schriftart. Kursiv = Kursiv; 1 – kursive Schriftart, 0 – normal.
Blatt. Zellen (RowNumber, ColumnNumber). Schriftart. Unterstrich = Unterstrichen ; 2 – unterstrichen, 1 – nicht.
Blatt. Zellen (RowNumber, ColumnNumber). NumberFormat = Format ; Legen Sie das Zelldatenformat fest.
Blatt. Zellen (RowNumber, ColumnNumber). Grenzen. Linienstil = Linientyp ; Zellrahmen festlegen. 1 - dünner Feststoff.

Diese Methode ist einfach. Sein Wesen ist das Objekt Tabellarisches Dokument hat Methoden:

  • Aufschreiben (< ИмяФайла>, < ТипФайлаТаблицы >) um Daten in eine Datei hochzuladen;
  • Lesen (< ИмяФайла>, < СпособЧтенияЗначений >), um Daten aus einer Datei zu laden.

Aufmerksamkeit!

Die Methode Write() ist sowohl auf dem Client als auch auf dem Server verfügbar. Die Read()-Methode ist nur serverseitig verfügbar. Das muss man sich merken
bei der Planung der Client-Server-Interaktion.

Schauen wir uns ein Beispiel für das Speichern eines Tabellendokuments in einer Datei an. Es ist notwendig, das TabularDocument-Objekt auf irgendeine Weise zu erstellen und zu füllen Entladung Das Einfügen in die Datei erfolgt mit nur einer Zeile:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Hier TabDoc- generiertes Tabellenkalkulationsdokument, Der Pfad zur Datei— Name der hochzuladenden Datei, TabularDocumentFileType.XLSX— Format der erstellten Datei. Folgende Excel-Formate werden unterstützt:

  • XLS95— Excel-Format 95;
  • XLS97 – Excel 97-Format;
  • XLSX ist ein Excel 2007-Format.

TabDoc = Neues tabellarisches Dokument;
TabDoc . Read(PathToFile, Methode zum LesenTabularDocumentValues.Value);

Hier Der Pfad zur Datei– Pfad zur heruntergeladenen Excel-Datei. Methode zum Lesen von Werten eines tabellarischen Dokuments.Wert bestimmt, wie aus einem Quelldokument gelesene Daten interpretiert werden sollen. Verfügbare Optionen:

  • Bedeutung;
  • Text.

Austausch über OLE

Der Austausch über die OLE-Automatisierungstechnologie ist vielleicht die häufigste Option Programmarbeit Mit Excel-Dateien. Sie können damit alle von Excel bereitgestellten Funktionen nutzen, sind jedoch im Vergleich zu anderen Methoden langsamer. Für den Austausch über OLE ist die Installation von MS Excel erforderlich:

  • Auf dem Computer des Endbenutzers, wenn der Austausch auf der Clientseite erfolgt;
  • Auf dem 1C:Enterprise-Servercomputer, wenn der Austausch serverseitig erfolgt.

Beispiel Entladung:

// Ein COM-Objekt erstellen
Excel = New COMObject("Excel.Application");
// Warnungen und Fragen deaktivieren
Excel . DisplayAlerts = False;
// Ein neues Buch erstellen
Buch = Excel. Arbeitsbücher. Hinzufügen();
// Auf dem ersten Blatt positionieren
Blatt = Buch. Arbeitsblätter(1);

// Einen Wert in eine Zelle schreiben
Blatt . Zellen(RowNumber, ColumnNumber). Wert = Zellwert;

// Speicher die Datei
Buch . Speichern unter(Dateiname);


Excel . Aufhören();
Excel = 0;

Beispiele Lektüre:

// -- VARIANTE 1 --

// Ein COM-Objekt erstellen
Excel = New COMObject("Excel.Application");
// Öffne ein Buch
Buch = Excel. Arbeitsbücher. Offen( Der Pfad zur Datei );

Blatt = Buch. Arbeitsblätter(1);

// Das Buch zuschlagen
Buch . Schließen(0);

// Excel schließen und Speicher freigeben
Excel . Aufhören();
Excel = 0;

// -- OPTION 2 --

// Öffne ein Buch
Buch = GetCOMObject( Der Pfad zur Datei );
// Positionierung auf dem gewünschten Blatt
Blatt = Buch. Arbeitsblätter(1);

// Den Zellwert lesen, normalerweise befindet sich hier die Zelldurchlaufschleife
CellValue = Blatt. Zellen(RowNumber, ColumnNumber). Wert;

// Das Buch zuschlagen
Buch . Anwendung. Qui T();

Für Bypass Für alle ausgefüllten Zeilen des Excel-Arbeitsblatts können Sie die folgenden Techniken anwenden:

// -- VARIANTE 1 --
Anzahl der Zeilen = Blatt. Zellen(1, 1). Spezialzellen(11). Reihe;
Für RowNumber = 1 By Number Of Rows Cycle
CellValue = Blatt. Zellen(RowNumber, ColumnNumber). Wert;
EndCycle;

// -- OPTION 2 --
Zeilennummer = 0 ;
Während der Wahrheitszyklus
Zeilennummer = Zeilennummer + 1 ;
CellValue = Blatt. Zellen(RowNumber, ColumnNumber). Wert;
Wenn NICHT ValueFilled(CellValue) Dann
Abbrechen;
endIf;
EndCycle;

Anstatt alle Zeilen des Blatts nacheinander zu durchlaufen, können Sie dies auch tun Alle Daten in ein Array übertragen und mit ihm arbeiten. Dieser Ansatz ist schneller, wenn eine große Datenmenge gelesen wird:

TotalColumns = Blatt. Zellen(1, 1). Spezialzellen(11). Spalte;
TotalRows = Blatt. Zellen(1, 1). Spezialzellen(11). Reihe;

Region = Blatt. Range(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
Daten = Region. Wert. Entladen();

Die folgende Tabelle zeigt die gängigsten Eigenschaften und Methoden für die Arbeit mit Excel über OLE:

Aktion Code Ein Kommentar
Arbeiten mit der Anwendung
Sichtbarkeit des Anwendungsfensters festlegen Excel . Sichtbar= Falsch;
Einstellen des Warnausgabemodus (Anzeige/keine Anzeige) Excel . DisplayAlerts= Falsch;
Schließen des Antrags Excel . Aufhören();
Arbeiten mit einem Buch
Ein neues Buch erstellen Buch = Excel. Arbeitsbücher. Hinzufügen();
Öffnen einer vorhandenen Arbeitsmappe Buch = Excel. Arbeitsbücher. Öffnen(Dateiname);
Ein Buch retten Buch . Speichern unter (Dateiname);
Das Buch schließen Buch . Schließen(0);
Arbeiten mit einem Blatt
Einstellen des aktuellen Blattes Blatt = Buch. WorkSheets(SheetNumber);
Namen festlegen Blatt . Name = Name;
Schutz einrichten Blatt . Schützen();
Schutz entfernen Blatt . Schutz aufheben();
Festlegen der Seitenausrichtung Blatt . Seiteneinrichtung. Ausrichtung = 2; 1 – Porträt, 2 – Querformat
Den linken Rand festlegen Blatt . Seiteneinrichtung. LeftMargin = Excel. CentimetersToPoints(Zentimeter);
Obergrenze festlegen Blatt . Seiteneinrichtung. TopMargin = Excel. CentimetersToPoints(Zentimeter);
Den richtigen Rand setzen Blatt . Seiteneinrichtung. RightMargin = Excel. CentimetersToPoints(Zentimeter);
Untere Grenze einstellen Blatt . Seiteneinrichtung. BottomMargin = Excel. CentimetersToPoints(Zentimeter);
Arbeiten mit Zeilen, Spalten, Zellen
Spaltenbreite festlegen Blatt . Spalten(ColumnNumber). ColumnWidth = Breite;
Eine Zeile löschen Blatt . Zeilen(RowNumber). Löschen();
Eine Spalte entfernen Blatt . Spalten(ColumnNumber). Löschen();
Eine Zelle löschen Blatt . Zellen(RowNumber, ColumnNumber). Löschen();
Wert einstellen Blatt . Zellen(RowNumber, ColumnNumber). Wert = Wert;
Zellen zusammenführen Blatt . Bereich(Blatt. Zellen(RowNumber, ColumnNumber), Blatt. Zellen(RowNumber1, ColumnNumber1)). Verschmelzen();
Schriftart einstellen Blatt . Zellen(RowNumber, ColumnNumber). Schriftart. Name = Schriftartname;
Festlegen der Schriftgröße Blatt . Zellen(RowNumber, ColumnNumber). Schriftart. Größe = Schriftgröße;
Fettschrift einstellen Blatt . Zellen(RowNumber, ColumnNumber). Schriftart. Deutlich = 1 ; 1 – fett, 0 – normal
Kursivschrift setzen Blatt . Zellen(RowNumber, ColumnNumber). Schriftart. Kursiv = 1 ; 1 – kursiv, 0 – normal
Festlegen der unterstrichenen Schriftart Blatt . Zellen(RowNumber, ColumnNumber). Schriftart. Unterstreichen = 2 ; 2 – unterstrichen, 1 – nicht

Um herauszufinden, welche Eigenschaft geändert werden muss oder welche Methode aufgerufen werden muss, können Sie Folgendes verwenden Makros Excel. Wenn Sie ein Makro mit den erforderlichen Aktionen aufzeichnen, können Sie es später ansehen Programmcode auf dem VBA aufgezeichneten Makro.

Verwenden von COMSafeArray

Beim Herunterladen großer Datenmengen von 1C nach Excel können Sie das Objekt zur Beschleunigung verwenden COMSafeArray. Gemäß der Definition des Syntaxassistenten handelt es sich bei COMSafeArray um einen Objekt-Wrapper mehrdimensionales Array SafeArray von COM. Ermöglicht Ihnen, SafeArray für den Datenaustausch zwischen COM-Objekten zu erstellen und zu verwenden. Einfach ausgedrückt handelt es sich um eine Reihe von Werten, die zum Austausch zwischen Anwendungen mithilfe der OLE-Technologie verwendet werden können.

// COMSafeArray erstellen
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// COMSafeArray füllen
Für Seite = 0 von TotalLines – 1 Zyklus
Für Anzahl = 0 Spalten insgesamt – 1 Zyklus
ArrayCom . SetValue(Anzahl, Seite, Wert);
EndCycle;
EndCycle;
// Zuweisung zum Blattbereich Excel-Werte von COMSafeArray
Blatt . Bereich(Blatt. Zellen(1, 1), Blatt. Zellen(TotalRows,TotalColumns)). Wert = ArrayCom;

Austausch über ADO

Eine Excel-Datei ist beim Austausch über ADO eine Datenbank, auf die über SQL-Abfragen zugegriffen werden kann. Die Installation von MS Excel ist nicht erforderlich, Sie benötigen jedoch einen ODBC-Treiber, mit dem der Zugriff bereitgestellt wird. Der verwendete ODBC-Treiber wird durch Angabe der Verbindungszeichenfolge zur Datei bestimmt. Normalerweise ist der erforderliche Treiber bereits auf dem Computer installiert.

Der Austausch über ADO ist deutlich schneller als der Austausch über OLE, beim Hochladen ist es jedoch nicht möglich, die Excel-Funktionalität zum Entwerfen von Zellen, zum Anordnen von Seiten, zum Festlegen von Formeln usw. zu nutzen.

Beispiel Entladung:


Connection = New COMObject("ADODB.Connection");


Verbindung . ConnectionString = "

|Datenquelle=" + Dateiname + ";
;
Verbindung . Offen(); // Eine Verbindung öffnen

// Erstelle ein COM-Objekt für den Befehl
Command = New COMObject("ADODB.Command");
Team

// Befehlstext zuweisen, um eine Tabelle zu erstellen
Team . CommandText = „CREATE TABLE [Sheet1] (Column1 char(255), Column2 date, Column3 int, Column4 float)“;
Team . Ausführen(); // Den Befehl ausführen

// Befehlstext zuweisen, um eine Tabellenzeile hinzuzufügen
Team . CommandText = „INSERT INTO [Sheet1] (Spalte1, Spalte2, Spalte3, Spalte4) Werte (‘abvwhere‘, ‚8/11/2017‘, ‚12345‘, ‚12345,6789‘)“;
Command.Execute(); // Den Befehl ausführen

// Den Befehl entfernen und die Verbindung schließen
Befehl = Undefiniert;
Verbindung . Schließen();
Verbindung = Undefiniert;

Um ein neues Blatt zu erstellen und seine Struktur zu gestalten, können Sie Objekte verwenden ADOX.Katalog Und ADOX.Tabelle. In diesem Fall sieht der Code so aus:

// Erstelle ein COM-Objekt für die Arbeit mit dem Buch
Buch = Neues COMObject("ADOX.Catalog");
Buch . ActiveConnection = Verbindung;

// Ein COM-Objekt erstellen, um mit der Datenstruktur auf dem Blatt zu arbeiten
Table = New COMObject("ADOX.Table");
Tisch . Name = "Blatt1" ;
Tisch . Säulen. Append("Spalte1", 202);
Tisch . Säulen. Append("Spalte2", 7);
Tisch . Säulen. Append("Spalte3", 5);
Tisch . Säulen. Append("Spalte4", 5);

// Erstellen Sie ein Blatt mit der beschriebenen Struktur in der Arbeitsmappe
Buch . Tische. Anhängen(Tabelle);
Tabelle = Undefiniert;
Buch = Undefiniert;

Im obigen Beispiel in der Methode

Tisch . Säulen. Anhängen(„Spalte1“, 202);

Der zweite Parameter gibt den Spaltentyp an. Der Parameter ist optional. Hier sind einige Spaltentypwerte:

  • 5 - adDouble;
  • 6 – adCurrency;
  • 7 - adDate;
  • 11 - adBoolean;
  • 202 – adVarWChar;
  • 203 – adLongVarWChar.

Beispiel Lektüre:

// Ein COM-Objekt für die Verbindung erstellen
Connection = New COMObject("ADODB.Connection");

// Verbindungszeichenfolge festlegen
Verbindung . ConnectionString = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Datenquelle=" + Dateiname + ";
|Extended Properties=""Excel 12.0 XML;HDR=YES"";";
Verbindung . Offen(); // Eine Verbindung öffnen

// Ein COM-Objekt erstellen, um die Auswahl zu empfangen
Select = New COMObject("ADODB.Recordset");
RequestText = „SELECT * FROM [Sheet1$]“;

// Anfrage ausführen
Probe . Open(QueryText, Connection);

// Das Beispielergebnis umgehen
Noch keine Auswahl. EOF()-Schleife
Wert von Spalte1 = Auswahl. Felder. Element("Spalte1"). Wert ; // Zugriff nach Spaltenname
Column2Value = Auswahl. Felder. Artikel(0). Wert; // Zugriff nach Spaltenindex
Probe . MoveNext();
EndCycle;

Probe . Schließen();
Probe = Undefiniert;
Verbindung . Schließen();
Verbindung = Undefiniert;

In der Verbindungszeichenfolge der Parameter HDR bestimmt, wie die erste Zeile auf dem Blatt wahrgenommen wird. Möglichkeiten:

  • JA – die erste Zeile wird als Spaltenname behandelt. Auf Werte kann über Name und Spaltenindex zugegriffen werden.
  • NEIN – die erste Zeile wird als Daten behandelt. Auf Werte kann nur über den Spaltenindex zugegriffen werden.

Diese Beispiele decken nur einige ADO-Objekte ab. Das ADO-Objektmodell besteht aus den folgenden Objekten:

  • Verbindung;
  • Befehl;
  • Datensatz;
  • Aufzeichnen;
  • Felder;
  • Strom;
  • Fehler;
  • Parameter;
  • Eigenschaften.

Hochladen ohne Programmieren

Um Daten von 1C in Excel zu speichern, ist es nicht immer ratsam, auf Programmierung zurückzugreifen. Wenn der Benutzer im Enterprise-Modus die zum Herunterladen erforderlichen Daten anzeigen kann, können diese ohne Programmierung in Excel gespeichert werden.

Um ein Tabellendokument (z. B. das Ergebnis eines Berichts) zu speichern, können Sie den Befehl aufrufen Speichern oder Speichern als… Hauptmenü.

Im sich öffnenden Fenster müssen Sie das Verzeichnis, den Namen und das Format der gespeicherten Datei auswählen.

Um Daten zu speichern dynamische Listen(zum Beispiel eine Liste von Artikeln) müssen Sie:

  1. Geben Sie Daten mit dem Befehl in ein Tabellenkalkulationsdokument aus Mehr ⇒ Liste...;
  2. Speichern Sie das Tabellendokument im erforderlichen Format.



Wird geladen...
Spitze