So öffnen Sie eine Excel-Datei ab 1s 8.3. Was ist besser – 1C oder Excel? Ein paar Worte zu möglichen Fehlern

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.

Sehen 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 Tabellendokument, Der Pfad zur Datei— Name der hochzuladenden Datei, TabularDocumentFileType.XLSX— Format der erstellten Datei. Folgende Excel-Formate werden unterstützt:

  • XLS95 – Excel 95-Format;
  • 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 möglicherweise die häufigste Option für die programmgesteuerte Arbeit 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 Warnungsausgabemodus (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 sich anschließend den VBA-Code des aufgezeichneten Makros ansehen.

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 ist COMSafeArray ein Objekt-Wrapper über ein 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;
// Zuweisen eines Excel-Arbeitsblattbereichs zu Werten aus 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. Eine Installation von MS Excel ist nicht erforderlich, jedoch ist das Vorhandensein eines ODBC-Treibers erforderlich, mit dem der Zugriff durchgeführt 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 Layouten 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 zum Hinzufügen einer Tabellenzeile zuweisen
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:

// Erstelle ein COM-Objekt für die Verbindung
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 aus dynamischen Listen (z. B. einer Artikelliste) zu speichern, müssen Sie:

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

Bei der Kommunikation mit potenziellen Kunden höre ich oft, dass ihnen die Tabellenfunktionalität aus dem Office-Paket völlig ausreicht und sie den Sinn in 1C-Programmen nicht sehen. Dies liegt daran, dass manche Leute diese Lösung immer noch nur mit Programmen für Buchhalter in Verbindung bringen, was nicht stimmt.

Excel ist ein universelles Massenprodukt, dem kann man nicht widersprechen. Fast jeder kann dieses Programm nutzen, im Gegensatz zu 1C-Entwicklungen, die sich an enge Spezialisten richten. Mithilfe „grüner“ Tabellen können Sie die erforderlichen Funktionen frei implementieren, was praktisch ist: Hier ist das Finanzmodell der Organisation mit allen gegenseitigen Abrechnungen, Managementbuchhaltung, auch regulierten, einer großen Auswahl an Datenvisualisierungen und der Möglichkeit, unabhängig zu arbeiten Erweitern Sie die Möglichkeiten des Programms mit verschiedenen Add-ons – alles liegt in Ihren Händen, alles von Grund auf ...

Es ist gut, wenn Sie gerade erst Ihr Unternehmen gründen, nach und nach die notwendigen Daten in der Tabelle zu Beziehungen zu Kunden, Lieferanten, Regulierungsbehörden berücksichtigen, Ihre eigene willkürliche Struktur aufbauen, aber was als nächstes zu tun ist, wenn die Datenbank umfangreich wird und die Personalzahlen im Dutzend? Zählen Sie immer noch nach Ihren eigenen Parametern? Ich bin dafür, Bequemlichkeit nicht mit Gewohnheit zu verwechseln, die oft die Systematisierung des Geschäfts und damit seine Optimierung beeinträchtigt.

Stellen wir uns zur Verdeutlichung vor, welche Anforderungen an die Automatisierung der Buchhaltung, beispielsweise für den Handel, entstehen könnten:

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

Der Leiter der Vertriebsabteilung kann Verkaufsdaten analysieren. Für ihn ist es wichtig zu verstehen, ob der Plan umgesetzt wird und wie effektiv seine Strategien sind, damit er im Falle einer Ineffektivität rechtzeitig Anpassungen an der Arbeit vornehmen kann.

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

3. Pflege einer Datenbank der Gegenparteien.
Auch wenn der Eigentümer nur das verkauft, was hier und jetzt gekauft werden kann, was typisch für den B2C-Bereich ist, dann hat er eine etwas andere Beziehung zum Lieferantenstamm – Verträge, primär... Stellen Sie sich vor, wie bequem es ist, wenn alles mit dem zusammenhängt Der Lieferant wird automatisch angezeigt. Wird er sofort in einer einzigen Datenbank angezeigt? Der Lagerleiter sieht sofort die Warenverfügbarkeit im Lager, ein weiterer Dokumentenverantwortlicher überwacht die Verfügbarkeit, ob alle Verpflichtungen aus Vertragsverhältnissen erfüllt werden, wer wem wie viel schuldet. Und im Falle von Unstimmigkeiten können Sie die Daten für einen bestimmten Zeitraum abgleichen und so in weniger als einer Minute ein Ergebnis generieren.

4. Gewinn der Organisation.
Die Erstellung eines Gewinnberichts wird nicht schwierig sein, da alle Daten zu Ausgaben und Einnahmen bereits in der Datenbank vorhanden sind. Vorausgesetzt, dass die Informationen rechtzeitig, zumindest zum erforderlichen Datum, eingegeben werden. Dabei kommt es grundsätzlich auf die Eigenverantwortung des Nutzers an.

Wenn Sie nicht viele Kunden und Lieferanten haben, ist Excel genau das Richtige für Sie, da Sie genügend Zeit haben, Ihre eigenen Diagramme in der Tabelle zu entwerfen und auszufüllen und anschließend Dokumente in verschiedene Ordner auf dem Computer zu verteilen: Verträge, Lieferanten, Kunden, Kunden in der Nachbarschaft, Kunden in der Entwicklung, Kunden, die gelöscht werden sollen – ein endloser und faszinierender Prozess, Ordner innerhalb eines Ordners zu erstellen. Und wenn es viele Informationen gibt, ist es dann praktisch, den Überblick über Ihre Datenbank zu behalten? Natürlich gibt es immer Ausnahmen; manchmal gibt es Organisationen mit großen Umsätzen, deren Finanzdaten nur in Excel gepflegt werden. Wie viel Zeit benötigen sie, um Daten zwischen den Abteilungen auszutauschen und zusammenzuführen? Ich werde antworten: viel.

Ich kann mir nicht vorstellen, wie man in einer großen Anzahl von Excel-Dokumenten, die in einem beliebigen System organisiert sind, schnell das findet, was man braucht. Beispielsweise bei der Bereitstellung von Unterlagen für Anforderungen des Finanzamtes. Wie wird ein Buchhalter Berichte an Aufsichtsbehörden einreichen, wenn alle Informationen verstreut sind? Natürlich kann die Buchhaltung ausgelagert werden, und manchem Unternehmer ist es leider egal, welche Prozesse ein bestimmter Spezialist hat, solange er die Bilanzen ausgleicht. Aber selbst wenn ja, wie ist dann der Prozess des Dokumentenaustauschs organisiert? Wie schnell wird ein externer Mitarbeiter die improvisierte Informationsstruktur verstehen?

Über 1C kann ich nicht dasselbe sagen, da dort alle Informationen strukturiert und miteinander verbunden sind:

    Eine einzige Datenbank für Remote- und Vollzeitmitarbeiter, in der Sie mit allen standardisierten und benutzerdefinierten Dokumenten arbeiten können;
    Die Berichterstattung an die Regulierungsbehörden erfolgt auf der Grundlage von Daten, die bereits im Programm enthalten sind. Es ist nicht erforderlich, viele Dateien zu öffnen und mehrere Werte in einer Tabelle zusammenzufassen, um endgültige Ergebnisse zu erhalten.
„1C“ ist im positiven Sinne ein Multitasking-System, das je nach Tätigkeitsbereich sowohl auf typische Buchhaltungsaufgaben als auch auf die Automatisierung aller Organisationsprozesse abzielt. Das Hauptwort hier ist System. Niemand hindert Sie daran, Ihr Geschäftssystem in Excel zu organisieren. Aber warum sollten Sie das Rad neu erfinden, wenn es Lösungen gibt, die fast alle Anforderungen an die Optimierung von Zeit- und Finanzkosten abdecken und dabei helfen, Ihre Arbeit zu systematisieren?

Zur Verteidigung von Excel

Wahrscheinlich kam es Ihnen so vor, als sei ich dagegen, Daten in „grünen“ Tabellen zu erstellen. Gar nicht. Tatsächlich erledige ich selbst oft einige Geschäfte in Excel: Wenn ich willkürliche Berechnungen benötige, wenn ich Daten nach Kunden segmentieren muss, Analysen auf der Grundlage von 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 und nicht standardmäßige Analysen, systematisiere dann aber trotzdem alles in 1C.

Und um heruntergeladene Dateien von 1C anzuzeigen, benötigen Sie weiterhin Excel, da die Daten in 1C in Tabellenkalkulationen gespeichert sind. Haben Sie das Gefühl, dass dies ein Teufelskreis ist? Ich sage es anders: „1C“ und „Excel“ gehen Seite an Seite wie zwei Partner, aber jeder von ihnen hat seinen eigenen Zweck, sie ergänzen sich gut, ersetzen sich aber nicht.

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


Was ist das Endergebnis – „1C“ oder „Excel“?

Ganz am Anfang, wenn es um die Finanzierung der Automatisierung geht, würde ich Excel verwenden, obwohl einfache 1C-Programme nicht so viel Geld kosten. Ein großes Plus ist, dass Daten aus „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 durchgeführt werden, wenn Sie verstehen, dass Sie Ihre Ressourcen optimieren müssen, einschließlich der Automatisierung von Problemen im Zusammenhang mit den Beziehungen zu Kunden und Lieferanten sowie zu Aufsichtsbehörden. Passen Sie im Allgemeinen Ihre Arbeitsprozesse an, um die Geschäftseffizienz zu steigern, wenn die Verarbeitung von Informationen viel Zeit in Anspruch nimmt und Excel-Dateien die Menge der Eingabedaten nicht mehr bewältigen können.

Allerdings ist möglicherweise nicht jedes „1C“ für Sie geeignet; Sie müssen verschiedene Faktoren berücksichtigen: die Besonderheiten und den Umfang des Unternehmens, die Größe, die Notwendigkeit täglicher Aufgaben, die Routine, die minimiert werden muss. Alles ist individuell. Die Wahrheit liegt, wie ich bereits sagte, irgendwo zwischen „1C“ und „Excel“ – sie ergänzen sich.

Das ist wahrscheinlich alles. Wenn Sie jedoch Fragen haben, kontaktieren Sie uns bitte, wir werden versuchen, Ihnen zu helfen. Erfolgreiche Geschäftsprozesse, Kolleginnen und Kollegen!

Es gibt verschiedene Möglichkeiten, eine Excel-Datei in 1C zu öffnen und umgekehrt. Anfänger bevorzugen einfachere Vorgänge, indem sie das Dokument in einem anderen Format speichern oder spezielle Programme verwenden. Es lohnt sich jedoch, sich ein wenig Mühe zu geben und den Umgang mit Softwaretools zu erlernen, um Daten von einem Programm in ein anderes anzuzeigen und zu verarbeiten. Diese grundlegenden Programmierkenntnisse helfen Ihnen, Routineaufgaben in Zukunft zu vermeiden.

So öffnen Sie Excel-Dokumente in 1C und umgekehrt

Der Tabellenkalkulationseditor Microsoft Excel ist den 1C-Buchhaltungssoftwareprodukten in seiner Funktionalität überlegen. Daher ziehen es 1C-Benutzer vor, einige Vorgänge in einem Tabellenkalkulationseditor auszuführen und die Daten dann an das Buchhaltungsprogramm zurückzugeben. Und das ist nicht verwunderlich, denn bisher erfolgte die Buchhaltung vieler Unternehmen ausschließlich über Microsoft-Programme. Angesichts des aktuellen Automatisierungsgrads der Geschäftsprozesse von Unternehmen ist es jedoch unmöglich, auf spezialisierte Programme zu verzichten. Um eine Interaktion zwischen verschiedenen Anwendungen herzustellen, gibt es folgende einfache Möglichkeiten:

    Wenn Sie mit Dateien von Softwareprodukten arbeiten müssen, die nicht auf Ihrem aktuellen Computer installiert sind, ist es am einfachsten, eine spezielle Anwendung zum Konvertieren von Excel-Tabellen in das 1C-Format und umgekehrt zu verwenden. Es ist auf der 1C-Produktwebsite zu finden.

    Wenn Ihr Computer sowohl über 1C als auch über Excel verfügt, können Sie die Datei manuell in ihrer „nativen“ Anwendung öffnen und sie dann im Format eines anderen Programms speichern. Normalerweise ist diese Option beim Speichern einer Druckvorlage oder eines Layouts verfügbar.

    Benutzer von 1C 7.7 können auf Version 1C 8 aktualisieren, die über einen verbesserten Tabelleneditor verfügt.

Wie 1C und Excel programmgesteuert interagieren können

Die Interaktion zwischen 1C und Excel kann auf Programmebene mithilfe der von Microsoft entwickelten OLE-Automatisierungstechnologie durchgeführt werden. Es ermöglicht Ihnen den direkten Zugriff auf COM-Objekte über Skriptinterpreter verschiedener Programme. Einfach ausgedrückt ermöglicht OLE Ihnen, eine Arbeit von einem Programm in ein anderes zu übertragen und die Arbeit dann an die ursprüngliche Anwendung zurückzugeben. Genau das brauchen Buchhalter vom Tabellenkalkulationseditor von Microsoft.

Sie müssen kein Programmierer sein, um OLE-Tools verwenden zu können. Obwohl die erste Bekanntschaft mit Codezeilen mit Fehlern einhergeht, hilft die Überprüfung dabei, diese zu identifizieren und die gesammelten Erfahrungen dabei zu helfen, sie in Zukunft zu vermeiden. Nachfolgend finden Sie die gängigsten Befehle (sie werden Auflistungen genannt) für die Arbeit mit Excel-Daten in Buchhaltungsprogrammen und umgekehrt.

So öffnen Sie eine Excel-Datei programmgesteuert in 1C

Wenn also beide Programme auf Ihrem Computer installiert sind, zwischen denen Sie Daten austauschen möchten, dann können Sie die Interaktion programmgesteuert organisieren. Dazu müssen Sie beide Anwendungen starten und dann mit OLE den Zugriff von 1C auf Excel einrichten:

  • Ausnahme

    Report(ErrorDescription() + „Excel ist auf diesem Computer nicht installiert!“);

  • Ende des Versuchs.

Der Zugriff auf den Tabelleneditor ist installiert. Mit den folgenden Befehlen müssen Sie nun Zugriff erhalten:

    spezifisches Dokument:

    • Buch = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • einschließlich mit einer bestimmten Blattnummer:

    einschließlich mit einem bestimmten Blattnamen:

    • Sheet = Book.WorkSheets(SheetName);

    • Value = Sheet.Cells(RowNumber, ColumnNumber).Value;

Um Daten von der ersten Seite einer Datei zu lesen, verwenden Sie die folgenden Auflistungen:

    Excel = CreateObject("Excel.Application");

    Book = Excel.WorkBooks.Open(FilePath);

    Sheet = Book.WorkSheets(1);

    TotalColumns = Sheet.Cells(1,1).SpecialCells(11).Column;

    TotalRows = Sheet.Cells(1,1).SpecialCells(11).Row;

    Für Zeile = 1 durch TotalRows-Schleife

    • Für Spalte = 1 nach TotalColumns-Zyklus

      Value = Abbr(Sheet.Cells(Row,Column).Value);

      EndCycle;

    EndCycle;

Denken Sie daran, dass der Pfad zur Datei vollständig angegeben werden muss. Beim Speichern eines Dokumentnamens dürfen Sie keine Zeichen wie \, /, :, *, ?, ", >,< и |.

So öffnen Sie eine 1C-Datei programmgesteuert über Excel

Um Daten in Excel aufzuzeichnen, müssen Sie:

    oder öffnen Sie ein vorhandenes Dokument:

    • Book = Excel.WorkBooks.Open(Path to File) – analog zum Lesen einer Excel-Datei aus 1C;

    oder ein neues hinzufügen:

    • Workbook = Excel.WorkBooks.Add();

    Sie können ein neues Blatt in einem neuen Dokument erstellen:

    • Sheet = Book.Sheets.Add();

    und fügen Sie der Zelle einen neuen Wert hinzu:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Value; (Methoden zum Schreiben von Werten mit OLE sind im Internet ausführlich beschrieben).

  • Book.SaveAs(FilePath);

    Ausnahme

    Report(ErrorDescription()+"Datei nicht gespeichert!");

    Ende des Versuchs.

Wenn Sie mit der Arbeit mit dem Tabellenkalkulationseditor fertig sind, beenden Sie ihn mit dem speziellen Befehl (Excel.Application.Quit();). Diese Methode hilft, Computerressourcen bei der weiteren Arbeit zu schonen.

Gefahren beim Datenaustausch zwischen 1C und Excel

1C und Excel wurden von verschiedenen Unternehmen entwickelt und verwenden unterschiedliche Methoden zur Datenverarbeitung. Beachten Sie daher beim Übertragen von Tabellen von einem Programm in ein anderes die folgenden Fallstricke:

    Verschiedene Trennzeichen in Bruchzahlen. Microsoft trennt Dezimalzahlen durch ein Komma. Seien Sie daher bei der Übernahme von Tabellen aus einem Buchhaltungsprogramm nicht von der Fülle an Daten und anderen Unklarheiten überrascht. Es ist nur so, dass in einem Buchhaltungsprogramm beim Schreiben von Brüchen möglicherweise ein Punkt verwendet wird, den der Tabellenkalkulationseditor von Microsoft als Datumstrennzeichen interpretiert, und aus 15,5 wird der 15. Mai. Um Buchhaltungsdaten in einem Tabellenkalkulationseditor verarbeiten zu können, muss das Trennzeichen durch ein Komma ersetzt werden.

    Bei der Übertragung von Daten von Excel nach 1C kann es vorkommen, dass Excel-Konstanten, die nicht im Buchhaltungsprogramm enthalten sind, falsch angezeigt werden. Um sie zu entschlüsseln, müssen Sie zur Hilfe des Tabellenkalkulationseditors oder in den Debugging-Modus gehen und den numerischen Ausdruck verschiedener Konstanten überprüfen.

Wenn Sie große Datenmengen austauschen müssen oder Fehler nicht beseitigen können, wenden Sie sich an die Fachleute der Firma Setby. Wir helfen Ihnen, Ihre Probleme auf Programmebene zu lösen und die für Ihre Arbeit notwendigen Befehle zu verstehen.

Die 1C-Anwendung ist seit langem das beliebteste Programm unter Buchhaltern, Planern, Ökonomen und Managern. Es verfügt nicht nur über eine Vielzahl von Konfigurationen für verschiedene Arten von Aktivitäten, sondern auch über eine Lokalisierung nach Buchhaltungsstandards 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 den automatischen Download eignen sich nahezu alle Arten von Dokumenten:

  • Liste der Nomenklaturen;
  • Liste der Kontrahenten;
  • 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 Aufbereiten 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 „Laden von Daten aus einem Tabellenkalkulationsdokument“ 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 portable Excel-Dokument erneut. 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.

In 1C gibt es zwei Möglichkeiten, mit MS Excel-Dateien zu arbeiten: über ein COM-Objekt und integrierte 1C-Tools unter Verwendung eines Tabellenkalkulationsdokumentobjekts. 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. Seit Version 8.3.10 werden beim Laden unterschiedliche Blätter 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 erneut 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();

Ende des Verfahrens

&Auf dem Server

Funktion GetLayoutServer()

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

EndFunction

&OnClient

Prozedurarbeit()

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

Ausnahme

Report("Ein Versuch, die Excel-Komponente zu verbinden, war fehlgeschlagen. Excel ist möglicherweise nicht auf diesem Computer installiert!");

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

Ende des Verfahrens

&OnClient

Ende des Verfahrens

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

Ende des Verfahrens

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

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

TabularDocument = UploadOnServer(Adresse);

TabularDocument.Show();

Ende des Verfahrens

&Auf dem Server

Funktion UploadOnServer(Adresse)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Address);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

return TabularDocument;

Fortsetzung des Themas:
Lösungen

Heute ist Android neben iOS und Windows Mobile eines der drei beliebtesten mobilen Betriebssysteme. Diese Popularität der Google-Idee hat mehrere Gründe....