🎯 Was Sie in diesem Artikel erfahren:
Wozu Erweiterungen und wie sie funktionieren
Die richtige Erweiterungsstruktur
Arbeiten mit Modulen und Ereignis-Abonnements
Typische Anfängerfehler und wie man sie vermeidet
Praktische Tipps zur Optimierung und zum Testen
Erweiterungen in 1C sind ein leistungsstarkes Tool, mit dem Sie die Konfiguration ändern können, ohne den Quellcode zu verändern. Wenn Sie ein unerfahrener 1C-Entwickler sind, ersparen Sie sich monatelange Kopfschmerzen und Überarbeitungen, wenn Sie den richtigen Ansatz zum Erstellen von Erweiterungen verstehen. Lassen Sie uns herausfinden, wie man es richtig macht.
Warum braucht man Erweiterungen?
Stellen Sie sich vor: Sie arbeiten mit einer typischen 1C-Konfiguration, zum Beispiel "Handelsmanagement". Der Kunde bittet darum, ein neues Feld zum Dokument hinzuzufügen oder die Verarbeitungslogik zu ändern. Früher haben Entwickler einfach die Grundkonfiguration bearbeitet, aber bei einem Update gingen alle Änderungen verloren oder mussten mühsam manuell übertragen werden.
Erweiterungen lösen dieses Problem. Sie funktionieren als Erweiterung der Hauptkonfiguration, ohne ihren Code zu verändern. Haben Sie die Standardkonfiguration aktualisiert? Die Erweiterung funktioniert weiterhin. Schön!

Grundprinzipien der Arbeit mit Erweiterungen
Erste Regel: Die Erweiterung sollte die Grundfunktionalität nicht beeinträchtigen. Das klingt offensichtlich, aber viele Entwickler vergessen es. Denken Sie immer daran, dass Ihr Code über der vorhandenen Logik ausgeführt wird.
Der zweite wichtige Punkt ist, dass Erweiterungen Einschränkungen haben. Sie können keine Objekte aus der Konfiguration entfernen, sondern nur neue hinzufügen oder vorhandene auf eine bestimmte Weise ändern. Dies ist kein Fehler, sondern eine Funktion – so schützt die Plattform die Integrität des Systems.
Erweiterungsstruktur
Die Erweiterung wird im Konfigurator über das Menü "Konfiguration → Konfigurationserweiterungen" erstellt. Nach der Erstellung sehen Sie einen vertrauten Objektbaum, jedoch mit einem wichtigen Unterschied - hier können Sie nur hinzufügen und erweitern, aber nicht löschen.
Eine typische Erweiterungsstruktur umfasst allgemeine Module für Ihre Geschäftslogik, Formulare für die Benutzeroberfläche und Verarbeitung für spezifische Aufgaben. Sie können neue Verzeichnisse, Dokumente, Register hinzufügen - alles, was Sie zur Lösung des Problems benötigen.
Korrekte Eingabe von Angaben
Angenommen, Sie müssen dem Dokument „Wareneingang“ das Feld „Vertragsnummer mit Lieferant“ hinzufügen. Suchen Sie in der Erweiterung nach diesem Dokument und fügen Sie die Requisite hinzu. Wichtig: Geben Sie aussagekräftige Namen mit einem Präfix an, das auf die Zugehörigkeit zur Erweiterung hinweist, z. B. "Zusätzliche_VertragsnummerLieferant".
Beispiel für die Benennung von Requisiten:
❌ Schlecht: Vertragsnummer
✅ Gut: Zusätzliche_Nummer des Lieferantenvertrags
Nachdem Sie die Requisite hinzugefügt haben, muss sie auf dem Formular platziert werden. Erweitern Sie das Dokumentformular, fügen Sie ein neues Element hinzu und verknüpfen Sie es mit den Requisiten. Die Plattform kombiniert Ihr erweitertes Formular automatisch mit dem Basisformular.
Arbeiten mit Modulen
Hier beginnt die Magie. Sie können Objektmodule erweitern, indem Sie Ihre eigene Logik zu Ereignissen hinzufügen. Ein klassisches Beispiel ist die Verarbeitung des Ereignisses "BeiAufzeichnung" eines Dokuments.
Die Basiskonfiguration verfügt bereits über einen Handler für dieses Ereignis. In der Erweiterung erstellen Sie Ihren eigenen Handler, und die Plattform führt beide aus - zuerst den Basis-Handler, dann Ihren. Auf diese Weise können Sie Prüfungen, zusätzliche Berechnungen, Benachrichtigungen usw. hinzufügen, ohne den Quellcode zu verändern.
Wichtiger Punkt: Die Erweiterung sieht alles aus der Basiskonfiguration, aber die Basiskonfiguration ist sich der Erweiterung nicht bewusst. Wenn Sie also möchten, dass der Basiscode Ihre Logik verwendet, müssen Sie Ereignisabonnementmechanismen verwenden.
Abonnements für Veranstaltungen
Abonnements sind eine elegante Möglichkeit, Ihre Logik in den Code eines anderen zu implementieren, ohne ihn zu ändern. Erstellen Sie einen Ereignisabonnementhandler, z. B. "VorAufzeichnung" des gewünschten Dokuments, und schreiben Sie dort Ihren Code. Das System ruft Ihren Handler automatisch zum richtigen Zeitpunkt auf.
Abonnements funktionieren auf Plattformebene, daher funktionieren sie immer — egal woher der Datensatz stammt: aus einem Formular, aus einer externen Verarbeitung, über einen Webservice. Dies stellt sicher, dass Ihre Logik nicht umgangen wird.
Allgemeine Module in Erweiterungen
Verlagern Sie wiederverwendbaren Code in allgemeine Erweiterungsmodule. Wenn Sie eine Funktion an mehreren Stellen benötigen, duplizieren Sie den Code nicht, sondern erstellen Sie ein gemeinsames Modul mit einem Erweiterungspräfix.
Erstellen Sie beispielsweise das Modul "Zusätzliche_ArbeitMitVerträgen" mit der Funktion "VertragsdatenErhalten()". Dieses Modul kann von überall in Ihrer Erweiterung aufgerufen werden und der Code bleibt sauber und unterstützt.
Arbeiten mit Formularen
Formulare zu erweitern ist eine Kunst. Sie können Elemente hinzufügen, ihre Eigenschaften ändern und Befehlshandler hinzufügen. Aber denken Sie daran: Die Erweiterungsform wird der Basisform überlagert, und wenn Sie ein Element mit demselben Namen wie in der Basisform erstellen, erhalten Sie einen Konflikt.
Praktischer Tipp: Verwenden Sie aussagekräftige eindeutige Elementnamen. Nennen Sie "Button1" "Zusätzlicher_ButtonAnLieferantenSenden". Ja, es ist länger, aber in sechs Monaten werden Sie sich selbst danken.
Testen von Erweiterungen
Testen Sie die Erweiterung vor der Implementierung unbedingt auf einer Kopie der Produktionsdatenbank. Überprüfen Sie nicht nur die neuen Funktionen, sondern auch, dass in der Basis nichts kaputt gegangen ist. Versuchen Sie, die Erweiterung zu deaktivieren – alles sollte wie zuvor funktionieren.
Achten Sie besonders auf die Leistung. Erweiterungen werden nach dem Basiscode ausgeführt, und wenn Sie dem Datensatzhandler eines beliebten Dokuments schwere Abfragen hinzugefügt haben, werden die Benutzer dies spüren.
Versionierung und Dokumentation
Führen Sie ein Protokoll der Erweiterungsänderungen. Wenn Sie in einem Jahr gebeten werden, „etwas zu reparieren“, werden Sie sich für Ihre Notizen darüber, was getan wurde und warum, dankbar sein.
Kommentieren Sie nicht standardmäßige Lösungen direkt im Code. „Hier wurde es so gemacht, weil es sonst einen Konflikt mit dem Buchhaltungssubsystem gibt“ – eine solche Zeile spart in Zukunft Stunden an Untersuchungen.

Typische Anfängerfehler
Fehler Nr. 1: Versuch, die Hälfte der Konfiguration in der Erweiterung zu überschreiben. Die Erweiterung sollte ein bestimmtes Problem lösen und keine alternative Konfiguration sein.
Der zweite häufige Fehler besteht darin, die Einschränkungen der Plattform zu ignorieren. Wenn die Erweiterung etwas nicht zulässt, dann müssen Sie nach einem anderen Ansatz suchen und nicht versuchen, das System mit Krücken zu täuschen.
Der dritte Fehler ist das Fehlen einer Fehlerbehandlung. Ihr Code wird über den Code eines anderen ausgeführt. Wenn etwas schief geht, müssen Sie ihn korrekt verarbeiten und nicht das gesamte System herunterfahren.
Praktische Tipps
Verwenden Sie Präfixe für alle Erweiterungsobjekte. Dies verhindert Namenskonflikte und zeigt sofort, was zu Ihrem Code gehört.
Überlasten Sie die Erweiterung nicht. Es ist besser, mehrere kleine zielgerichtete Erweiterungen zu erstellen, als eine riesige „für alle Fälle“.
Erforschen Sie Erweiterungen anderer. Wenn Sie mit einer Standardkonfiguration arbeiten, sehen Sie sich an, welche Erweiterungen andere Entwickler erstellt haben. Dies ist eine Sammlung von Erfahrungen und Lösungen.
Produktivität
Denken Sie daran, dass der Erweiterungscode zur Ausführung der Basiskonfiguration hinzugefügt wird. Optimieren Sie Abfragen, vermeiden Sie unnötige Schleifen, speichern Sie Daten nach Möglichkeit zwischen. Jede Millisekunde zählt, besonders bei Dokumenten, die massenweise erstellt werden.
Wenn Ihre Logik nicht immer benötigt wird, fügen Sie am Anfang des Handlers Bedingungsprüfungen hinzu. Warum einen schweren Code ausführen, wenn man sofort erkennen kann, dass er nicht benötigt wird?
Konfigurationsaktualisierung
Dies ist der Moment der Wahrheit für jede Erweiterung. Überprüfen Sie nach dem Aktualisieren der Standardkonfiguration, ob alles funktioniert. Die Basiskonfiguration hat sich möglicherweise geändert und Ihre Erweiterung muss angepasst werden.
Wichtig! Erstellen Sie vor dem Aktualisieren immer eine Sicherungskopie und testen Sie diese in einer separaten Datenbank. Dies ist das Alphabet, aber viele vernachlässigen und stellen dann die Arbeit im Notfallmodus wieder her.
Sicherheit
Vergessen Sie nicht die Zugriffsrechte. Wenn Sie einen neuen Bericht oder eine neue Verarbeitung hinzugefügt haben, konfigurieren Sie die Rollen richtig. Geben Sie nicht jedem Zugriff auf alles - das ist nicht nur unsicher, sondern schafft auch Chaos in den Benutzeroberflächen.
Die Arbeit mit 1C-Erweiterungen ist eine Fähigkeit, die man mit der Praxis erwirbt. Beginnen Sie mit einfachen Aufgaben, steigern Sie den Schwierigkeitsgrad nach und nach und studieren Sie die Plattformdokumentation. Das Wichtigste ist, die Philosophie der Erweiterungen zu verstehen: ergänzen, nicht zerstören.
Erfahren Sie mehr über 1C-Erweiterungen und mehr in Kodike — unsere Bildungsplattform für Entwickler. Wir bieten strukturierte Kurse, praktische Aufgaben und Unterstützung in jeder Phase der Ausbildung.
Und wir haben auch einen coolen Telegram-Kanal mit einer freundlichen Community, in der erfahrene Entwickler ihre Erfahrungen teilen und Neulingen helfen, komplexe Probleme zu verstehen.
