Heim / Spielekonsole / So fügen Sie eine Excel-Tabelle zu 1s hinzu. Was ist besser - "1C" oder "Excel"? Sie haben eine Frage oder benötigen Hilfe von einem Berater?

So fügen Sie eine Excel-Tabelle zu 1s hinzu. Was ist besser - "1C" oder "Excel"? Sie haben eine Frage oder benötigen Hilfe von einem Berater?

Bei der Kommunikation mit potenziellen Kunden höre ich häufig, dass sie über genügend Tabellenfunktionen aus der Office-Suite verfügen und den Sinn von 1C-Programmen nicht sehen. Denn manche assoziieren diese Lösung noch immer nur mit Buchhaltungsprogrammen, was nicht stimmt.

Excel ist ein Universal- und Massenprodukt, das kann man nicht bestreiten. Fast jeder kann dieses Programm nutzen, im Gegensatz zu den Entwicklungen von "1C", die sich an schmale Spezialisten richten. Mit "grünen" Tabellen können Sie die erforderlichen Funktionen beliebig implementieren, die bequem sind: Hier ist das Finanzmodell der Organisation mit allen gegenseitigen Abrechnungen, der sogar geregelten Betriebsbuchhaltung, einer großen Auswahl an Datenvisualisierungen und der Möglichkeit, das Programm zu erweitern Fähigkeiten selbst mit verschiedenen Add-Ons - alles von Grund auf neu in Ihrer Hand ...

Es ist gut, wenn Sie gerade erst mit Ihrem Unternehmen beginnen und nach und nach die erforderlichen Daten in der Tabelle über Beziehungen zu Kunden, Lieferanten, Aufsichtsbehörden und dem Aufbau Ihrer willkürlichen Struktur berücksichtigen, aber was als nächstes zu tun ist, wenn die Datenbank umfangreich wird und das Personal wird in den Zehnern sein? Trotzdem nach ihren eigenen Parametern zu prüfen? Ich bin dafür, Bequemlichkeit nicht mit Gewohnheit zu verwechseln, die oft die Systematisierung eines Unternehmens und damit seine Optimierung stört.

Stellen wir uns zur Verdeutlichung vor, welche Bedürfnisse bei der Automatisierung der Buchhaltung beispielsweise im Handel entstehen können:

1. Analyse der Verkäufe innerhalb eines bestimmten Zeitraums.

Der Vertriebsleiter kann Verkaufsdaten analysieren. Schließlich ist es ihm wichtig zu verstehen, ob der Plan umgesetzt wird, wie effektiv seine Strategien sind, um bei Ineffizienz rechtzeitig Anpassungen vornehmen zu können.

2. Lagerabrechnung.
Muss ich erklären, dass es auch für den Verkauf wichtig ist, die Verfügbarkeit von Waren auf Lager zu verstehen, welche Waren reserviert werden können und welche nicht auf Lager sind und was bestellt werden muss? Ich denke, hier ist alles klar.

3. Pflege einer Datenbank von Kontrahenten.
Selbst wenn der Eigentümer nur das verkauft, was Sie hier und jetzt kaufen können, was typisch für den B2C-Sektor ist, hat er etwas andere Beziehungen zum Lieferantenstamm - Verträge, Primär ... Stellen Sie sich vor, wie praktisch es ist, wenn sich alles auf den Lieferanten bezieht wird automatisch sofort in einer einzigen Datenbank angezeigt? Der für das Lager zuständige Manager sieht sofort die Verfügbarkeit der Waren im Lager, ein weiterer Mitarbeiter, der für die Dokumente verantwortlich ist, überwacht Informationen über deren Verfügbarkeit, ob alle Verpflichtungen aus Vertragsverhältnissen erfüllt sind, wer wem wie viel schuldet. Und im Falle von Abweichungen können Sie die Daten für einen bestimmten Zeitraum überprüfen und in weniger als einer Minute ein Ergebnis generieren.

4. Gewinn der Organisation.
Es wird nicht schwierig sein, einen Gewinnbericht zu erstellen, da alle Daten zu Ausgaben und Einnahmen bereits in der Datenbank vorhanden sind. Vorausgesetzt, dass die Informationen rechtzeitig eingegeben werden, mindestens bis zum erforderlichen Datum. Ausschlaggebend ist hier die Eigenverantwortung des Anwenders.

Wenn Sie nicht viele Kunden und Lieferanten haben, ist Excel sehr gut für Sie geeignet, da Sie viel Zeit haben, Ihre eigenen Schemata in der Tabelle zu entwerfen und auszufüllen, mit der anschließenden Verteilung von Dokumenten in verschiedenen Ordnern auf Ihrem Computer: Verträge, Lieferanten, Kunden, Kunden in der Nachbarschaft, Kunden in Entwicklung, zu löschende Kunden - der endlose und aufregende Prozess, Ordner innerhalb eines Ordners zu erstellen. Und wenn es viele Informationen gibt, ist es in diesem Fall praktisch, eine Aufzeichnung Ihrer Datenbank zu führen? Ausnahmen gibt es natürlich immer, manchmal gibt es umsatzstarke Organisationen, deren Finanzdaten nur in Excel gepflegt werden. Wie viel Zeit brauchen sie, um Daten zwischen Abteilungen auszutauschen und zu kombinieren? Antwort: viel.

Ich habe keine Ahnung, wie ich in einer Vielzahl von Excel-Dokumenten, die von einem willkürlichen System organisiert werden, schnell das Richtige finden soll. Zum Beispiel beim Einreichen von Unterlagen für Steueranforderungen. Wie wird ein Buchhalter den Aufsichtsbehörden Berichte vorlegen, wenn alle Informationen verstreut sind? Die Buchhaltung kann natürlich ausgelagert werden und einigen Geschäftsinhabern ist es leider egal, welche Prozesse ein bestimmter Spezialist hat, solange er bilanziert. Aber selbst wenn ja, wie wird dann der Dokumentenaustausch organisiert? Wie schnell versteht ein Mitarbeiter auf der Seite die improvisierte Informationsstruktur?

Ich kann das nicht über 1C sagen, weil alle Informationen dort strukturiert und miteinander verbunden sind:

    Eine einzige Datenbank für Remote- und Vollzeitmitarbeiter, in der Sie mit allen standardisierten und beliebigen Dokumenten arbeiten können;
    Die Berichterstattung an die Regulierungsbehörden basiert auf den Daten, die bereits im Programm widergespiegelt sind, es ist nicht erforderlich, viele Dateien zu öffnen, mehrere Werte in eine Tabelle zu reduzieren, um die endgültigen Ergebnisse zu erhalten.
„1C“ ist im positiven Sinne ein Multitasking-System, das je nach Tätigkeitsfeld sowohl auf typische Buchhaltungsaufgaben als auch auf die Automatisierung aller organisatorischen Prozesse abzielt. Das Schlüsselwort hier ist System. Niemand stört Sie daran, Ihr Geschäftssystem in Excel zu organisieren, aber warum das Rad neu erfinden, wenn es Lösungen gibt, die fast alle Anforderungen an die Optimierung von Zeit- und Finanzkosten abdecken und dabei helfen, die Arbeit zu systematisieren?

Zur Verteidigung von Excel

Wahrscheinlich schien es Ihnen, dass ich dagegen bin, Daten in "grünen" Tabellen zu erstellen. Gar nicht. Tatsächlich mache ich selbst oft Geschäfte in Excel: Wenn ich willkürliche Berechnungen benötige, wenn ich Daten nach Kunden segmentieren muss, Analysen nach Parametern durchführen muss, die nicht in 1C enthalten sind - ja, das passiert - gehe ich zu " Excel. Einfach ausgedrückt, in Tabellen mache ich Berechnungen, nicht standardmäßige Analysen, aber dann systematisiere ich alles später sowieso in 1C.

Um die hochgeladenen Dateien von 1C anzuzeigen, benötigen Sie immer noch Excel, da die Daten in 1C in Tabellenkalkulationen gespeichert sind. Glaubst du, es ist ein Teufelskreis? Ich sage es anders: "1C" und "Excel" gehen wie zwei Partner nebeneinander, aber jeder von ihnen hat seinen eigenen Zweck, sie ergänzen sich gut, tauschen sich aber nicht aus.

Wenn Sie Ihre Angelegenheiten unter Berücksichtigung des Rechtssystems unseres Staates unter Berücksichtigung der Besonderheiten und der Geschäftsrichtung systematisieren müssen, insbesondere wenn es um große Informationsmengen geht, benötigen Sie 1C. Wenn Sie willkürliche Berechnungen benötigen, eine Strategie von Grund auf neu erstellen oder nicht standardmäßige Analysedaten visualisieren möchten, steht Ihnen Excel zur Verfügung. Aber es ist viel bequemer, mit diesen Lösungen gleichzeitig zu arbeiten.


Was ist das Ergebnis - "1C" oder "Excel"?

Ganz am Anfang, wenn es genau um die Finanzierung der Automatisierung geht, obwohl die grundlegenden 1C-Programme nicht so viel Geld kosten, würde ich Excel verwenden. Ein großes Plus ist, dass die Daten aus den „grünen“ Tabellen verlustfrei in 1C geladen werden können. Aber wenn Sie skalieren, würde ich Ihnen raten, auf Programme zur Automatisierung von Geschäftsprozessen zu achten. Es gibt viele davon, und es muss nicht unbedingt "1C" sein ...

Der Übergang zu 1C kann erfolgen, wenn Sie verstehen, dass es notwendig ist, Ihre Ressourcen zu optimieren, einschließlich der Automatisierung von Problemen im Zusammenhang mit Beziehungen zu Kunden und Lieferanten mit Aufsichtsbehörden. Im Allgemeinen, um Ihre Arbeitsabläufe zu verbessern, um die Geschäftseffizienz zu steigern, wenn die Informationsverarbeitung viel Zeit in Anspruch nimmt und Excel-Dateien die eingegebene Datenmenge nicht mehr bewältigen können.

Allerdings kann nicht jedes "1C" zu Ihnen passen, Sie müssen verschiedene Faktoren berücksichtigen: die Besonderheiten und den Umfang des Geschäfts, die Größe, die Notwendigkeit für tägliche Aufgaben, die Routine, die minimiert werden muss. Alles ist individuell. Die Wahrheit liegt, wie gesagt, irgendwo zwischen "1C" und "Excel" - es ist eine Ergänzung zueinander.

Darauf vielleicht alles. Aber wenn Sie Fragen haben, kontaktieren Sie uns bitte und wir werden versuchen, Ihnen zu helfen. Erfolgreiche Geschäftsprozesse, Kollegen!

  • Bei der Durchführung des Informationsaustauschs zwischen Gegenparteien (Preislisten, Abstimmungsakte usw.);
  • Um die Arbeit der Bediener in Fällen zu erleichtern, in denen die Hauptbuchhaltung in 1C geführt wird und ein Teil davon in Excel-Tabellen ausgeführt wird;
  • Beim erstmaligen Befüllen der Datenbank.

Um diesen Vorgang auszuführen, können Sie sowohl die Standardfunktionalität, die mit einem Abonnement für Informationstechnologieunterstützung (ITS) verfügbar ist, als auch die selbst geschriebene Verarbeitung verwenden, die über verschiedene Verbindungsoptionen implementiert wird. In unserem Artikel werden wir versuchen, alle möglichen Fälle so vollständig wie möglich zu analysieren und die meisten bestehenden Fragen zum Laden von Daten aus Excel in 1C zu beantworten.

Universelle Bewegung

Auf den ITS-Datenträgern sowie im 1C-Portal finden Sie im Menü "Technologische Unterstützung" -> "Universelle Berichte und Verarbeitung" im Ordner "Laden von Daten aus einem Tabellenkalkulationsdokument" eine entsprechende Verarbeitung.

Beim Start öffnet sich ein Formular (Abb. 1):

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

  1. Verzeichnis;
  2. Der tabellarische Teil des Dokuments oder Nachschlagewerks;
  3. Register der Informationen.

Je nach Stellung des Schalters ändert sich das Objektauswahlfeld.

Das tabellarische Bearbeitungsformular wird ausgefüllt, wenn Sie die hochgeladene Datei öffnen.

Die Typverarbeitung unterstützt Uploads von:

  • Entwickelt von Spezialisten der Firma 1C, Dateien des Formatsmxl;
  • Lisztxls im Format gespeichertExcel 97-2003;
  • Textdateitxt;
  • Tischedbf.

Das Laden von Excel-Dateien mit großem Volumen kann lange dauern. Wenn Sie also davon ausgehen, dass das Laden von Daten in mehreren Schritten erfolgen kann, oder Sie sicher wissen, dass Sie eine vorhandene Datei mehrmals öffnen müssen, ist es besser, Informationen zu speichern daraus in mxl um nerven und zeitformat zu sparen. Dies können Sie direkt aus dem Bearbeitungsformular heraus tun.

Es ist wichtig zu verstehen, dass Zeilengruppierungen, Unterüberschriften und Anmerkungen, die in der Quelldatei vorhanden sind, manuell entfernt werden müssen.

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

Abb.2

Nicht selten enthalten Excel-Tabellen eine Kopfzeile mit allerlei Angaben und Daten (Name des ausgedruckten Formulars, Angaben zum Kontrahenten, Datum und Nummer des eingehenden Dokuments, Spaltenbezeichnungen usw.), um deren Weiterverarbeitung auszuschließen das Programm auf dem Formular, müssen Sie im Attribut "Erste Zeile des Tabellenkalkulationsdokuments" die erste Zeile mit den übertragenen Informationen angeben

Nach der Auswahl des Metadatenobjekts, in das die Informationen geschrieben werden, wird der tabellarische Abschnitt der Registerkarte "Einstellungen" automatisch mit den Namen der Attribute, Beschreibungen ihrer Typen und anderem gefüllt wichtige Informationen. Die Betrachtung der Spalten des tabellarischen Teils der Registerkarte "Einstellungen" sollte einem separaten Abschnitt gewidmet werden.

Spalten Einstellungen

Flag - durch Aktivieren oder Deaktivieren des Kontrollkästchens in der Zeile wird festgelegt, ob das entsprechende Attribut ausgefüllt wird.

Darstellung des Attributs - hier wird ein Synonym (Name) des Metadaten-Attributs geschrieben, wie es im Konfigurator angegeben ist.

Suchfeld - Wenn Sie dieses Kontrollkästchen aktivieren, sucht die Verarbeitung nach Elementen anhand des entsprechenden Attributs und ändert bei Erfolg die vorhandenen Daten. Zusatzfunktion dieses Feld - Schutz vor dem Auftreten von Duplikaten.

Beschreibung der Typen - zeigt den Datentyp an, der das eine oder andere Metadatenattribut hat.

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

Abb. 3

  • Suchen - das entsprechende Element wird gesucht, falls es nicht vorhanden ist, kann ein neues erstellt werden;
  • Set - ein bestimmter Wert wird nachrangig gesetzt;
  • Berechnen – in diesem Fall wird das Ergebnis der Berechnung des in der Spalte „Beziehungsbedingung/Ausdruck für Wert“ angegebenen Ausdrucks in das Feld des zu erstellenden Elements gesetzt.

Im letzteren Fall öffnet das Aktivieren des Felds Ausdruck das Formular (Abb.4).

Abb.4

Spaltennummer - ein Feld, das verwendet wird, um anzugeben, aus welcher Spalte der Excel-Tabelle Sie Daten zum Ausfüllen entnehmen müssen.

Standardwert - ziemlich oft tritt eine Situation auf, in der die hochgeladene Datei nicht alle Daten enthält, die zum Aufzeichnen eines Elements erforderlich sind. In diesem Fall werden die in diesem Feld enthaltenen Informationen zum Ausfüllen ausgefüllt.

Verknüpfungsbedingung / Ausdruck für Wert - dieses Feld haben wir bereits teilweise angesprochen, als wir berechnete Felder betrachtet haben, außerdem können Sie die Bedingung angeben, nach der die Quelldaten synchronisiert werden.

Hier sind im Prinzip alle Informationen, die auf der Registerkarte "Einstellungen" verfügbar sind.

Um nicht jedes Mal viel Zeit für das Laden, Vorschreiben von Korrespondenzen und Ausdrücken zu verlieren, haben die Entwickler die Möglichkeit geschaffen, die Einstellungsoption in einer Datei mit der Erweiterung mxlz zu speichern.

Die Richtigkeit der übermittelten Daten können Sie durch Anklicken der Schaltfläche „Kontrolle ausfüllen“ überprüfen (Abb. 1). Danach können Sie den Download-Vorgang starten. Über den erfolgreichen Abschluss des Verfahrens oder Sondersituationen werden Sie gesondert informiert.

Zum Hochladen von Daten aus Excel in Informationsbasen"Verwaltung und Handel" gibt es einen anderen Mechanismus. Es ist weniger universell als die obige Methode, erfordert jedoch kein ITS-Abonnement und ist in der Standardlieferung enthalten.

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

Abb.5

Das Bearbeitungsformular enthält:

  1. Ein Datumsauswahlfeld, das angibt, für welche Zeit dieser Preis relevant ist;
  2. Das Feld zur Auswahl des Vertragspartners, der seine Preisliste gesendet hat;
  3. Eine Schaltfläche, mit der Sie die Art der festzulegenden Preise auswählen können;
  4. Ein tabellarischer Abschnitt, der mit hochgeladenen Daten gefüllt werden kann.

Dieses Formular ist in Abb. 6 zu sehen

Abb.6

Die Legende oben im Formular erläutert die Verwendung der ersten Registerkarte des Formulars.

Nach der Auswahl eines Kontrahenten (je nachdem, ob er als Lieferant, Kommissionär oder Verkäufer auftritt) werden in der Tabelle zusätzliche Spalten für jede Preisart verfügbar.

Bei der Arbeit über die Weboberfläche erfordern einige Browser möglicherweise die Installation eines Browser-Add-Ons (Abb. 7). Wir müssen auf die Schaltfläche „Installation starten“ klicken und unsere Verbindung neu starten.

Abb.7

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

Abb.8

Das Programm sucht automatisch nach Übereinstimmungen in der Datenbank und bietet, wenn keine vorhanden sind, Optionen zur Behebung des Fehlers an. Aussehen tabellarischer Teil kann mit einem Schalter gesteuert werden. Außerdem kann der Nutzer selbstständig die Elemente der hochgeladenen Datei mit denen in der Datenbank vergleichen.

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

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

Abb.9

Nach der Verarbeitung:

  • Im Verzeichnis „Lieferantennomenklatur“ wird ein entsprechendes Element angelegt (sofern noch nicht vorhanden);
  • Es wird mit einem Element des Nachschlagewerks "Nomenklatur" abgeglichen;
  • Der Beleg „Artikelpreise festlegen“ wird erstellt und gebucht mit Angabe von: Lieferant, Preisart und Datum der Datenfixierung.

Die Verarbeitung „Ware aus externen Dateien laden“ funktioniert ähnlich.

DIY-Übertragungsverarbeitungsoptionen

Das Hauptproblem beim Extrahieren von Daten aus einer Excel-Datei besteht darin, dass 1C keinen integrierten eindeutigen Mechanismus zum Öffnen hat. Es gibt mehrere Möglichkeiten Excel-Verbindungen zu 1C:

  • Über Microsoft ADODB - eine ziemlich schnelle Methode, die in der Regel sowohl auf Datei- als auch auf Client-Server-Datenbankspeicheroptionen anwendbar ist;
  • Durch Microsoft-Nutzung Office - eine Methode, die bei der Arbeit mit SQL-Datenbanken manchmal fehlschlägt, in der Regel etwas langsamer als die erste Methode, und Office ist ebenfalls erforderlich;
  • Durch Libre Office - im Gegensatz zur vorherigen Methode ist es kostenlos, es unterstützt neben den Formaten xls und xlsx auch eigene Tabellen, erfordert jedoch eine installierte LibreOffice-Paket und etwas Vorbereitung der hochgeladenen Datei (die erste Zeile der Tabelle sollte die Namen der Spalten enthalten).

Lass uns genauer hinschauen verschiedene Wege und Optionen.

Über ADODB.Connection

Allgemein steht ADO für ActiveX Data Object und dient dazu Programmzugriff zu verschiedenen Datenbanken. Das größte Problem beim Erstellen einer Verbindung zu einer Datei eines Drittanbieters (einschließlich Excel) besteht darin, die Verbindungszeichenfolge korrekt zu erstellen.

Es gibt drei Optionen für Excel-Dateien:

Optionen für Verbindungszeichenfolgen:

  • Provider - hier wird der verwendete Treiber bestimmt;
  • 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 ab der ersten Zeile gelesen werden, HDR = NO - ab der zweiten), ob die Datei schreibgeschützt geöffnet wird ( ReadOnly) und einige andere zusätzliche Optionen.

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

Abb.13

Jetzt können wir verwenden eine einfache Anfrage(Abb. 14) Beginnen Sie mit dem Abrufen von Informationen aus der heruntergeladenen Datei.

BEI dieser Fall Der Parameter „Blatt“ bestimmt, mit welchem ​​Blatt aus der Excel-Arbeitsmappe wir arbeiten müssen.

Die auf einem Blatt gespeicherten Datensätze können mit dem Recordset-Objekt gelesen werden. In diesem Fall kann der erste Datensatz des Blattes durch den Parameter BOF (Beginn der Datei) und der letzte EOF (Ende der Datei) erhalten werden.

Über Excel-Anwendung

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

Dieses COM-Objekt hat mehrere untergeordnete Parameter, aber der wichtigste für uns ist unter den aktuellen Bedingungen der Aufgabe der WorkBooks-Parameter (Abb. 17).

Nach der Initialisierung des Buches muss festgelegt werden, von welchem ​​Blatt die Daten gelesen werden (Abb. 18).

Danach können Sie innerhalb der Zyklen der Zeilen und Spalten der Tabelle der Datei, die geöffnet wird, iterieren.

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 verwendet wird. Es ist in Ordnung, wenn die Taskleiste anzeigt, dass Excel auf dem Computer ausgeführt wird, aber wenn Sie oder ein anderer Benutzer es von geöffnet haben externe Verarbeitung, visuell ist dies nur über den "Task-Manager" festzustellen, also vergessen Sie nicht, die Verbindung vor dem Ende des Übertragungsvorgangs zu schließen:

Im Fall der Arbeit über ADO (Abb. 19);

Abb.19

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

Reis. zwanzig.

Die Verbindung und das Verfahren zum Abschluss der Arbeit mit Daten werden am besten innerhalb des Konstrukts Attempt-Exception-End Attempt organisiert, das in einer Ausnahmesituation eine Fehlerbeschreibung verursacht. Dies verlangsamt zwar manchmal die Arbeit, vereinfacht aber die Ermittlung der Fehlerursache und letztendlich die Möglichkeiten zur Fehlerbeseitigung erheblich.

In 1C gibt es zwei Möglichkeiten, mit MS Excel-Dateien zu arbeiten, über ein COM-Objekt und integrierte 1C-Tools, die ein Taverwenden. Lassen Sie uns diese beiden Methoden genauer untersuchen.

1. COM-Objekt bearbeiten.

Diese Methode erfordert die Installation von MS Excel, und wenn Sie mit einer Datei auf dem Server arbeiten, dann muss MS Excel auf dem Server installiert sein, wenn auf dem Client, dann wird MS Excel auch auf der Client-Seite benötigt.

Ein Beispiel (am Ende des Artikels in Textform einsehbar):

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 darauf zugreifen können. Es gibt jedoch eine einfachere Lösung, wir speichern die Vorlage als binäres Layout.

2. Arbeiten Sie Tabellenkalkulationsdokument 1C durch.

Das 1C-Tabellenkalkulationsdokument unterstützt das MS Excel-Format zum Aufzeichnen ab Plattform 8, aber zum Öffnen erst ab Plattform 8.3.6. Darüber hinaus werden beim Öffnen alle Blätter in ein Tabellenkalkulationsdokument geladen. Ab Version 8.3.10 werden beim Laden unterschiedliche Blätter als unterschiedliche Bereiche geladen.

Das Aufnahmebeispiel ist sehr einfach und erfordert nicht viel Aufmerksamkeit:

Allerdings haben wir hier ein Problem. Bei der Aufnahme von 1C in eine Excel-Arbeitsmappe ist die Anzeige von Blattnamen standardmäßig deaktiviert.

Dieses Problem kann auf 2 Arten gelöst werden, 1 - aktivieren Sie die Anzeige von Blättern im Buch selbst in den Einstellungen (nicht alle Benutzer werden dem zustimmen), 2 - tun Sie es über ein COM-Objekt (wir müssen wieder MS Excel installiert haben) .

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

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

&BeiKunde

CreateDocument()-Prozedur

Ausnahme

Ende des Versuchs;

Buch = Excel.WorkBooks.Add(); //Eine neue MS Excel-Arbeitsmappe erstellen

Blatt = Buch.Arbeitsblätter.Hinzufügen(); //Blatt hinzufügen

Sheet.Name = "Beispiel aus 1C"; //Blattnamen festlegen

Sheet.Cells (1,1).Value = "(!LANG: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

GetLayoutServer()-Funktion

Rückgabe FormAttributeToValue("Object").GetLayout("Upload Template"); //So erhalten wir das externe Verarbeitungslayout;

Endfunktionen

&BeiKunde

Prozedur Arbeit()

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

Ausnahme

Show("Fehlerloser Versuch, eine Excel-Komponente zu verbinden. Excel ist möglicherweise nicht auf installiert dieser Computer!");

Ende des Versuchs;

Layout = GetLayoutServer();

Layout.Write (Temporärer Dateiname);

Haben Sie eine Frage, benötigen Sie die Hilfe eines Beraters?

Buch = Excel.WorkBooks.Open(TempFileName);

SheetTemplate = Book.WorkSheets(1);

SheetTemplate.Cells (6,1).Value = "(!LANG:Datum:";!}

SheetTemplate.Cells(6,2).Value = CurrentDate();

SheetTemplate.NumberFormat = "dd/mm/yy;@"; // Geben wir das Datumsformat an, dieses Format wird durch die Aufzeichnung eines Makros in MS Excel erhalten

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

Book.SaveAs(Dateiname);

Book.Close();

EndProzedur

&BeiKunde

EndProzedur

&BeiKunde

Prozedur WriteSpreadsheetDocument()

SpreadsheetDocument = Neues SpreadsheetDocument();

SpreadsheetDocument.Area("R1C1").Text = "Beispiel eines Eintrags in MS Excel ab 1C";

SpreadDocument.Write("C:\1\Test2.xls",SpreadDocumentFileType.XLSX);

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

Excel.WorkBooks.Open("C:\1\Test2.xls");

Excel.Sichtbar = 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=PutToTempStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

SpreadsheetDocument = DownloadOnServer(Adresse);

SpreadsheetDocument.Show();

EndProzedur

&Auf dem Server

Funktion LoadOnServer(Adresse)

TempFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTempStorage(Adresse);

FileData.Write (Temporärer Dateiname);

SpreadsheetDocument = Neues SpreadsheetDocument();

SpreadsheetDocument zurückgeben;

Einführung.

Viele Leute wissen, dass Excel viel älter als 1C ist. Meiner Meinung nach ist dies ein sehr erfolgreiches Produkt, und ich habe keine Beschwerden darüber gehört. Excel ist einfach und vielseitig. Es kann nicht nur einfache arithmetische Operationen ausführen, sondern auch komplexe Berechnungen, grafische Darstellungen usw. Ich kenne Beispiele, bei denen Organisationen vor der Umstellung auf 1C einen Teil der Buchhaltung in Excel geführt haben. Viele und jetzt parallel verwenden zwei Programme. In diesem Artikel werden wir Möglichkeiten zum Datenaustausch zwischen 1C und Excel betrachten.

Tabellen 1C und Excel.

Der Einfachheit halber speichern viele Benutzer 1C-Tabellen (druckbare Formulare) im Excel-Format (* .xls). Danach werden in der resultierenden Datei verschiedene Gruppierungen, Sortierungen, Berechnungen usw. vorgenommen. Dies liegt daran, dass es in 1C-Tabellen keine so große Funktionalität wie in Excel-Tabellen gibt. Aber in Version 1C 8.0 gibt es Neuerungen, die das Arbeiten mit Tabellen komfortabler machen.

Die 1C-Website (http://www.1c.ru/) verfügt über 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. Ja, und denken Sie ständig daran, dass Sie die 1C-Tabelle im Excel-Format speichern müssen. Dies ist nicht erforderlich.

Alle Informationen zum Programm finden Sie hier.
Sie können das Programm hier herunterladen (zip-Archiv 682 739 Bytes).

Kommentar: In Excel ist das Dezimaltrennzeichen ",". Ersetzen Sie daher vor dem Speichern der 1C-Tabelle im Excel-Format ein anderes Trennzeichen (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.

Daten aus Excel abrufen.

Der Zugriff von 1C auf Excel erfolgt über OLE. Zum Beispiel Code
Versuchen
Ausnahme
Benachrichtigen (Fehlerbeschreibung() +
);
Zurückkehren;
Ende des Versuchs;
ermöglicht uns den Zugriff über die "Excel"-Variable auf laufende Anwendung Excel. Und dann können Sie auch schon auf Buch (Datei), Blatt und Zelle mit Daten zugreifen. Nachfolgend finden Sie Codebeispiele.

Buch (Datei) öffnen:
Buch = Excel. Arbeitsbücher. Öffnen (PfadZuDatei);
PathToFile ist der vollständige Pfad zur Excel-Arbeitsmappendatei.

Auswählen eines Buchblatts zum Arbeiten:
oder
Blatt = Buch. Arbeitsblätter (Blattname);
SheetNumber ist die Nummer des Blattes im Buch, SheetName ist der Name des Blattes im Buch.

Abrufen des Werts einer Blattzelle:
Wert = Blatt. Zellen (Zeilennummer , Spaltennummer ). Wert;

Wichtig: Vergessen Sie nicht, dem Feld Excel-Code hinzuzufügen, um die erforderlichen Aktionen auszuführen. Aufhören(); , andernfalls bleibt der laufende Prozess unvollständig und belegt den Arbeitsspeicher und den Prozessor des Computers.

Datenausgabe nach Excel.

Um Daten nach Excel auszugeben (hochzuladen), müssen Sie entweder eine vorhandene Arbeitsmappe öffnen oder eine neue erstellen und ein Arbeitsblatt für die Datenausgabe auswählen. Das Öffnen eines vorhandenen Buchs ist oben beschrieben, aber um ein neues Buch zu erstellen, müssen Sie den folgenden Code verwenden:
Versuchen
Excel = CreateObject("Excel.Application" );
Ausnahme
Benachrichtigen (Fehlerbeschreibung() +
"Excel ist auf diesem Computer nicht installiert!");
Zurückkehren;
Ende des Versuchs;
Buch = Excel. Arbeitsbücher. hinzufügen();

Da beim Erstellen eines Buches in Excel Blätter automatisch erstellt werden (Extras-> Optionen-> Allgemein-> Blätter in einem neuen Buch), müssen Sie nur das Blatt auswählen, mit dem Sie arbeiten möchten:
Blatt = Buch. Arbeitsblätter (Blattnummer);
oder fügen Sie dem Buch bei Bedarf ein neues Blatt hinzu:
Blatt = Buch. Blätter. hinzufügen();
Der nächste Schritt besteht darin, den Wert der Zelle festzulegen:
Blech. Zellen (Zeilennummer , Spaltennummer ). Wert = Wert ;
RowNumber, ColumnNumber - Zeilennummer und Spaltennummer, an deren Schnittpunkt sich die Zelle befindet.
Und am Ende müssen Sie das erstellte Buch aufnehmen:
Versuchen
Buch . SaveAs(PathToFile);
Ausnahme
Benachrichtigen(Fehlerbeschreibung()
+ "Datei nicht gespeichert!");
Zurückkehren;
Ende des Versuchs;
PathToFile – der vollständige Pfad zur Excel-Arbeitsmappendatei (einschließlich des Namens).
Wichtig: Denken Sie daran, dass Dateinamen nicht \ / : * ? enthalten dürfen. " >< |.

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

Excel = CreateObject("Excel.Application" ); Zugriff auf die Excel-Anwendung erhalten.
Excel. Sichtbar = Sichtbarkeit ; 0 - Excel ist nicht sichtbar, 1 - sichtbar.
Buch = Excel. Arbeitsbücher. hinzufügen(); Erstellen einer neuen Arbeitsmappe (Datei) Excel.
Buch . Speichern unter (Dateiname); Speichern einer Excel-Arbeitsmappe.
Blatt = Buch. Arbeitsblätter. hinzufügen(); Ein neues Blatt zum Buch hinzufügen.
Buch = Excel. Arbeitsbücher. Öffnen (Dateiname); Öffnen einer vorhandenen Arbeitsmappe (Datei) Excel.
Blatt = Buch. Arbeitsblätter (Blattnummer); Mit numberSheetNumber ein Blatt als Arbeitsblatt festlegen.
Blech. Name = Tabellenname ; Benennen eines ArbeitsblattsSheetName
Blech. Seiteneinrichtung . Zoom = Maßstab ; Legt die Seitenoption „Skalieren“ fest (von 10 bis 400).
Blech. Seiteneinrichtung . Orientierung = Orientierung ; Ausrichtung: 1 - Hochformat, 2 - Querformat.
Blech. Seiteneinrichtung . Linker Rand = Excel . CentimetersToPoints (Zentimeter); Legt den linken Rand (in Zentimetern) fest.
Blech. Seiteneinrichtung . Oberer Rand = Excel . CentimetersToPoints (Zentimeter); Gibt die Obergrenze (in Zentimetern) an.
Blech. Seiteneinrichtung . Rechter Rand = Excel . CentimetersToPoints (Zentimeter); Gibt den rechten Rand (in Zentimetern) an.
Blech. Seiteneinrichtung . BottomMargin = Excel . CentimetersToPoints (Zentimeter); Legt die untere Grenze (in Zentimetern) fest.
Blech. Spalten (Spaltennummer) . Spaltenbreite = Breite ; Spaltenbreite einstellen.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Wert = Wert ; Eingabe von Daten in eine Zelle.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Schriftart. Name = Schriftname ; Festlegen der Schriftart in einer Zelle.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Schriftart. Größe = Schriftgröße ; Legen Sie die Schriftgröße in einer Zelle fest.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Schriftart. Fett = Fett ; 1 - fettgedruckte Schriftart, 0 - normal.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Schriftart. Kursiv = Kursiv ; 1 - schräge Schriftart, 0 - normal.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Schriftart. Unterstreichen = unterstrichen ; 2 - unterstrichen, 1 - nicht.
Blech. Zellen (Zeilennummer , Spaltennummer ) . ZahlenFormat = Format ; Stellen Sie das Zelldatenformat ein.
Blech. Zellen (Zeilennummer , Spaltennummer ) . Grenzen. Linienstil = Linientyp ; Zellgrenzen festlegen. 1 - dünner Feststoff.

Diese Methode ist einfach. Sein Wesen ist, dass das Objekt Tabellendokument hat Methoden:

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

Aufmerksamkeit!

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

Betrachten Sie ein Beispiel für das Speichern eines Tabellenkalkulationsdokuments in einer Datei. Es ist notwendig, das TableDocument-Objekt in irgendeiner Weise zu erstellen und auszufüllen, und Entladung Datei ist mit nur einer Zeile fertig:

TabDoc . Write(Dateipfad, SpreadsheetDocumentFileType.XLSX);

Hier TabDoc- generierte Tabelle, Der Pfad zur Datei- Name der hochzuladenden Datei, SpreadsheetDocumentFileType.XLSX— das Format der generierten Datei. Folgende Excel-Formate werden unterstützt:

  • XLS95 - Excel 95-Format;
  • XLS97 - Excel 97-Format;
  • XLSX ist das Excel 2007-Format.

TabDoc = Neues SpreadsheetDocument;
TabDoc . Read(PathToFile, WayToReadSpreadsheetDocumentValues.Value);

Hier Der Pfad zur Datei- Pfad zur heruntergeladenen Excel-Datei. WayToReadValuesSpreadDocument.Value bestimmt, wie die aus dem Quelldokument gelesenen Daten zu interpretieren sind. Verfügbare Optionen:

  • Bedeutung;
  • Text.

Austausch über OLE

Der Austausch über die OLE-Automatisierungstechnologie ist vielleicht die gebräuchlichste Methode, um programmgesteuert zu arbeiten Excel-Dateien. Es ermöglicht Ihnen, alle von Excel bereitgestellten Funktionen zu nutzen, ist jedoch langsamer als andere Methoden. Für den Austausch über OLE muss MS Excel installiert sein:

  • Auf dem Computer des Endnutzers, wenn der Austausch clientseitig erfolgt;
  • Auf dem 1C:Enterprise-Server-Rechner, wenn der Austausch serverseitig erfolgt.

Beispiel Entladung:

// Erstellen Sie ein COM-Objekt
Excel = New COMObject("Excel.Application");
// Warnungen und Fragen deaktivieren
Excel . Anzeigewarnungen = falsch;
// Neues Buch erstellen
Buch = Excel. Arbeitsbücher. hinzufügen();
// Positionierung auf dem ersten Blatt
Blech = Buch. Arbeitsblätter(1);

// Wert in Zelle schreiben
Blech . Zellen (Zeilennummer, Spaltennummer). Wert = Zellwert;

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


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

Beispiele lesen:

// -- VARIANTE 1 --

// Erstellen Sie ein COM-Objekt
Excel = New COMObject("Excel.Application");
// Offenes Buch
Buch = Excel. Arbeitsbücher. Offen( Der Pfad zur Datei );

Blech = Buch. Arbeitsblätter(1);

// Schliesse das Buch
Buch . Schließen(0);

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

// -- OPTION 2 --

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

// Lesen Sie den Wert der Zelle, hier befindet sich normalerweise die Zellenumgehungsschleife
CellValue = Blatt. Zellen (Zeilennummer, Spaltennummer). Wert;

// Schliesse das Buch
Buch . Anwendung. Qui t();

Zum Bypass alle gefüllten Zeilen des Excel-Sheets können Sie folgende Tricks anwenden:

// -- VARIANTE 1 --
Anzahl der Zeilen = Blatt. Zellen (1 , 1 ). Spezialzellen(11 ). Die Zeile;
For RowNumber = 1 By Number Of Rows Loop
CellValue = Blatt. Zellen (Zeilennummer, Spaltennummer). Wert;
EndCycle;

// -- OPTION 2 --
Zeilennummer = 0 ;
While True-Schleife
Zeilennummer = Zeilennummer + 1 ;
CellValue = Blatt. Zellen (Zeilennummer, Spaltennummer). Wert;
Wenn NICHT ValueFilled(CellValue) Dann
abbrechen;
EndIf;
EndCycle;

Anstatt alle Zeilen des Blattes nacheinander zu durchlaufen, können Sie dies tun dump alle Daten in ein Array und mit ihm arbeiten. Dieser Ansatz ist beim Lesen einer großen Datenmenge schneller:

Gesamtspalten = Blatt. Zellen (1 , 1 ). Spezialzellen(11 ). Spalte;
Gesamtzeilen = Blatt. Zellen (1 , 1 ). Spezialzellen(11 ). Die Zeile;

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

Die folgende Tabelle listet die am häufigsten nachgefragten Eigenschaften und Methoden für die Arbeit mit Excel über OLE auf:

Aktion Der Code Kommentar
Arbeiten mit der Anwendung
Sichtbarkeit des Anwendungsfensters einstellen Excel . sichtbar= falsch;
Einstellen des Warnanzeigemodus (Anzeige/Nichtanzeige) Excel . Warnungen anzeigen= falsch;
Schließen der Anwendung Excel . Aufhören();
Arbeiten mit einem Buch
Erstellen Sie ein neues Buch Buch = Excel. Arbeitsbücher. Hinzufügen();
Öffnen einer vorhandenen Arbeitsmappe Buch = Excel. Arbeitsbücher. Öffnen (Dateiname);
Ein Buch retten Buch . Speichern unter (Dateiname);
Buchschluss Buch . Schließen(0);
Arbeiten mit einem Blatt
Einstellen des aktuellen Blattes Blech = Buch. Arbeitsblätter (Blattnummer);
Namenseinstellung Blech . Name = Name;
Schutz einstellen Blech . Beschützen();
Aufhebung des Schutzes Blech . Schutz aufheben();
Festlegen der Seitenausrichtung Blech . Seiteneinrichtung. Ausrichtung = 2; 1 - Hochformat, 2 - Querformat
Einstellen der linken Grenze Blech . Seiteneinrichtung. Linker Rand = Excel. CentimetersToPoints(Zentimeter);
Obergrenze einstellen Blech . Seiteneinrichtung. Oberer Rand = Excel. CentimetersToPoints(Zentimeter);
Richtige Grenze setzen Blech . Seiteneinrichtung. Rechter Rand = Excel. CentimetersToPoints(Zentimeter);
Festlegen der unteren Grenze Blech . Seiteneinrichtung. Unterer Rand = Excel. CentimetersToPoints(Zentimeter);
Arbeiten mit Zeilen, Spalten, Zellen
Einstellen der Spaltenbreite Blech . Spalten (Spaltennummer). Spaltenbreite = Breite;
Entfernen einer Zeile Blech . Zeilen (Zeilennummer). Löschen();
Löschen einer Spalte Blech . Spalten (Spaltennummer). löschen();
Löschen einer Zelle Blech . Zellen (Zeilennummer, Spaltennummer). Löschen();
Wert einstellen Blech . Zellen (Zeilennummer, Spaltennummer). Wert = Wert;
Zellen zusammenführen Blech . Range(Sheet. Cells(RowNumber, ColumnNumber), Sheet. Cells(RowNumber1, ColumnNumber1)). Verschmelzen();
Schriftart installieren Blech . Zellen (Zeilennummer, Spaltennummer). Schriftart. Name = Schriftname;
Einstellen der Schriftgröße Blech . Zellen (Zeilennummer, Spaltennummer). Schriftart. Größe = Schriftgröße;
Fettschrifteinstellung Blech . Zellen (Zeilennummer, Spaltennummer). Schriftart. Fett gedruckt = 1 ; 1 - fett, 0 - normal
Kursiv setzen Blech . Zellen (Zeilennummer, Spaltennummer). Schriftart. Kursiv = 1 ; 1 - kursiv, 0 - normal
Einstellen einer unterstrichenen Schriftart Blech . Zellen (Zeilennummer, Spaltennummer). Schriftart. Unterstreichen = 2 ; 2 - unterstrichen, 1 - nein

Um herauszufinden, welche Eigenschaft geändert oder welche Methode aufgerufen werden muss, können Sie verwenden Makros Excel. Wenn Sie ein Makro mit den erforderlichen Aktionen aufzeichnen, können Sie anschließend den Programmcode im VBA des aufgezeichneten Makros anzeigen.

Verwenden von COMSafeArray

Beim Entladen großer Datenmengen von 1C nach Excel können Sie das Objekt zur Beschleunigung verwenden COMSafeArray. Wie vom Syntaxhilfsprogramm definiert, ist COMSafeArray ein Objekt-Wrapper für ein mehrdimensionales Array SafeArray von COM. Ermöglicht das Erstellen und Verwenden von SafeArray zum Austauschen von Daten zwischen COM-Objekten. Einfach ausgedrückt ist dies ein Array 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
Zum Str = 0 Gesamtzeilen - 1 Schleife
Zum Anzahl = 0 Gesamtspalten - 1 Zyklus
ArrayCom . SetValue(Zahl, Str, Wert);
EndCycle;
EndCycle;
// Zuweisen der Werte des Excel-Blattbereichs von COMSafeArray
Blech . Range(Sheet. Cells(1 , 1 ), List. Cells(TotalRows, TotalColumns)). Wert = ArrayCom;

Austausch über ADO

Eine Excel-Datei ist, wenn sie über ADO ausgetauscht wird, eine Datenbank, auf die mit SQL-Abfragen zugegriffen werden kann. Eine Installation von MS Excel ist nicht erforderlich, jedoch wird ein ODBC-Treiber benötigt, über den der Zugriff erfolgt. 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 merklich schneller als der Austausch über OLE, aber beim Entladen gibt es keine Möglichkeit, die Excel-Funktionalität zum Dekorieren von Zellen, Markieren von Seiten, Festlegen von Formeln usw. zu verwenden.

Beispiel Entladung:


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


Verbindung . ConnectionString="

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

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

// Befehlstext zuweisen, um eine Tabelle zu erstellen
Mannschaft . Befehlstext= "CREATE TABLE [Sheet1] (Spalte1 Zeichen (255), Spalte2 Datum, Spalte3 Int, Spalte4 Float)";
Mannschaft . ausführen(); // Befehlsausführung

// Befehlstext zuweisen, um eine Tabellenzeile hinzuzufügen
Mannschaft . Befehlstext= "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) values ​​('abvgdeo', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Befehlsausführung

// Löschen des Befehls und Schließen der Verbindung
Befehl = undefiniert;
Verbindung . nah dran();
Verbindung = Undefiniert;

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

// Erstellen Sie ein COM-Objekt, um mit dem Buch zu arbeiten
Buch = Neues COMObject("ADOX.Catalog");
Buch . ActiveConnection = Verbindung;

// Erstellen Sie ein COM-Objekt, um mit der Datenstruktur auf dem Blatt zu arbeiten
Tabelle = Neues 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 im Buch mit der beschriebenen Struktur
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 - adWährung;
  • 7 - addDatum;
  • 11 - adBoolesch;
  • 202 - adVarWChar;
  • 203-adLongVarWChar.

Beispiel lesen:

// Erstellen Sie ein COM-Objekt für die Verbindung
Connection = New COMObject("ADODB.Connection");

// Verbindungsstring setzen
Verbindung . ConnectionString="
|Provider=Microsoft.ACE.OLEDB.12.0;
|Datenquelle=" + Dateiname + ";
|Extended Properties=""Excel 12.0 XML;HDR=YES"";";
Verbindung . offen(); // Verbindung öffnen

// Erstellen Sie ein COM-Objekt, um eine Auswahl zu erhalten
Auswahl = Neues COMObject("ADODB.Recordset");
AnfrageText = "AUSWÄHLEN * AUS [Blatt1$]";

// Anfrage ausführen
Probe . Öffnen (Abfragetext, Verbindung);

// Das Ergebnis der Auswahl umgehen
Während NICHT Sampling. EOF()-Schleife
Spaltenwert1 = Auswahl. Felder. Artikel ("Spalte1"). Wert ; // Referenzierung nach Spaltenname
Wert Spalte2 = Auswahl. Felder. Artikel(0 ). Wert; // Nach Spaltenindex abrufen
Probe . MoveNext();
EndCycle;

Probe . nah dran();
Probe = undefiniert;
Verbindung . nah dran();
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 wahrgenommen. Auf Werte kann nach Name und nach Spaltenindex zugegriffen werden.
  • NEIN - Die erste Zeile wird als Daten genommen. Auf Werte kann nur über den Spaltenindex zugegriffen werden.

In den angegebenen Beispielen werden nur wenige ADO-Objekte betrachtet. Das ADO-Objektmodell besteht aus den folgenden Objekten:

  • Verbindung;
  • Befehl;
  • Datensatz;
  • Aufzeichnung;
  • 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 Hochladen erforderlichen Daten anzeigen kann, ist es möglich, diese ohne Programmierung in Excel zu speichern.

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

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

Um Daten zu speichern dynamische Listen(z. B. eine Artikelliste) müssen Sie:

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