Wenn Sie den 1C-Konfigurator jemals geöffnet haben, haben Sie wahrscheinlich diese mysteriösen roten Linien im Nachrichtenfenster gesehen. Fehlermeldungen in 1C sind eine eigene Kunstform: Manchmal sagen sie genau das, was Sie brauchen, und manchmal lassen sie Sie eine halbe Stunde googeln. Lassen Sie uns die häufigsten Fehler analysieren, lernen, sie schnell zu lesen und aufhören, Angst vor ihnen zu haben.

1. "Variable nicht definiert"
Vielleicht der klassischste Anfängerfehler. Er sieht so aus:
{Обработка.МояОбработка.Форма.ФормаОбработки.Форма(12,15)}: Переменная не определена (МояПеременная)Lass uns die Teile analysieren. In geschweiften Klammern befindet sich der Pfad zu dem Modul, in dem der Fehler aufgetreten ist. (12,15) bedeutet Zeile 12 und Position 15 in dieser Zeile. Das heißt, die Plattform zeigt buchstäblich mit dem Finger, wo man suchen muss. Dann kommt die Beschreibung selbst: Sie haben auf eine Variable verwiesen, die nirgendwo deklariert und keinem Wert zugewiesen wurde.
Was tun? Überprüfen Sie, ob Sie einen Tippfehler im Variablennamen gemacht haben - dies ist der Hauptgrund. Stellen Sie außerdem sicher, dass die Variable vor dem Zugriff darauf deklariert wurde und dass der Geltungsbereich übereinstimmt - eine innerhalb einer Prozedur deklarierte Variable ist in einer anderen Prozedur nicht sichtbar.
2. „Objektfeld nicht gefunden“
{Обработка.МояОбработка(45,8)}: Поле объекта не обнаружено (НесуществующееПоле)Dieser Fehler tritt auf, wenn Sie versuchen, auf ein Attribut, eine Eigenschaft oder eine Spalte zuzugreifen, die nicht vorhanden ist. Sie haben beispielsweise einen Link zum Verzeichnis "Geschäftspartner" erhalten und Контрагент.Адресс mit zwei "c" geschrieben, obwohl das Attribut Адрес heißt. Oder Sie arbeiten mit einer Wertetabelle und verweisen auf eine Spalte, die Sie vergessen haben hinzuzufügen.
Lifehack: Verwenden Sie im Konfigurator den Kontext-Hinweis (Ctrl+Пробел), um alle verfügbaren Eigenschaften und Methoden des Objekts anzuzeigen. Dies spart Stunden beim Debuggen.
3. "Objektmethode nicht gefunden"
{ОбщийМодуль.МойМодуль(78,4)}: Метод объекта не обнаружен (ПолучитьДанные)Ähnlich wie oben, aber bezieht sich auf Methoden. Sie rufen eine Funktion oder Prozedur auf, die dieses Objekt nicht hat. Typische Ursachen: Sie haben den Objekttyp verwechselt (z. B. Aufrufen einer Verknüpfungsmethode für ein Objekt oder umgekehrt), einen Tippfehler im Namen der Methode oder versuchen, eine Servermethode auf dem Client aufzurufen.
Vorsicht! Dieser Fehler ist besonders heimtückisch in verwalteten Formularen, bei denen eine Trennung zwischen Client- und Serverkontext besteht. Die Methode kann perfekt existieren, ist jedoch aufgrund der Kompilierungsrichtlinie nicht verfügbar.
4. „Der Wert ist kein Wert vom Objekttyp“
{Документ.РеализацияТоваров.МодульОбъекта(22,1)}: Значение не является значением объектного типа (Получить)Einer der verwirrendsten Fehler für Anfänger. Dies bedeutet, dass Sie versuchen, eine Methode aufzurufen oder auf eine Eigenschaft eines Werts zuzugreifen, der dies nicht unterstützt. Ein klassisches Beispiel: Sie haben Неопределено anstelle des erwarteten Objekts erhalten und versuchen, damit weiter in der Kette zu arbeiten.
Stellen Sie sich den Code vor:
Справочники.Контрагенты.НайтиПоКоду("001").ПолучитьОбъект().НаименованиеWenn das Element mit dem Code "001" nicht existiert, dann gibt ПолучитьОбъект() Неопределено zurück und der Aufruf von Наименование wird fehlschlagen.
Lösung: Überprüfen Sie das Ergebnis immer auf Неопределено oder einen leeren Link, bevor Sie die Aufrufkette fortsetzen.

5. „Zu viele Informationen zum Schluss“
{Форма.ФормаДокумента(1,1)}: Слишком много информации для вывода на клиентеDieser Fehler wird häufig von Personen gesehen, die mit großen Datenmengen in verwalteten Formularen arbeiten. Die Plattform begrenzt die Datenmenge, die zwischen Server und Client übertragen wird. Wenn Sie versucht haben, eine Tabelle mit Werten mit einer Million Zeilen in die Formulareigenschaften hochzuladen, erhalten Sie genau diesen Fehler.
Ausgang: Verwenden Sie Mechanismen zum Laden von Daten in Teilen, dynamische Listen anstelle von Wertetabellen auf dem Formular oder übertragen Sie die Datenverarbeitung auf den Server und geben Sie dem Kunden nur das Ergebnis.
6. „Behandlung des Verfahrens als Funktion“
{Обработка.Загрузка(33,12)}: Обращение к процедуре как к функции (МояПроцедура)Ein Klassiker, der auch erfahrene Entwickler fängt. In 1C gibt es eine klare Trennung: Die Prozedur gibt keinen Wert zurück, die Funktion gibt ihn zurück. Wenn Sie Результат = МояПроцедура() geschrieben haben und МояПроцедура als Процедура und nicht als Функция deklariert wurde, gibt die Plattform diesen Fehler aus.
Korrektur: Ändern Sie entweder Процедура in Функция und fügen Sie Возврат hinzu, oder entfernen Sie die Ergebniszuweisung.
7. „Verletzung von Zugriffsrechten“
{Документ.ЗаказКлиента.МодульОбъекта(5,3)}: Нарушение прав доступа!Bei diesem Fehler geht es nicht um Code, sondern um Rollen und Rechte. Der aktuelle Benutzer versucht, eine Aktion auszuführen, für die er keine Berechtigung hat. Lesen, Schreiben, Buchen eines Dokuments, Ändern eines Verzeichnisses - all dies wird über Rollen in der Konfiguration konfiguriert.
Häufiger Fall: Der Entwickler testet mit vollen Rechten, aber ein normaler Benutzer hat nicht genügend Rechte. Überprüfen Sie die Arbeit immer als Endbenutzer!
8. "Fehler beim Aufrufen der Kontextmethode"
{ОбщийМодуль.РаботаСФайлами(112,5)}: Ошибка при вызове метода контекста (Записать): Запись не вернаDies ist ein Wrapper-Fehler: Die Plattform meldet, dass bei der Ausführung der eingebetteten Methode ein Fehler aufgetreten ist. Wichtige Informationen stehen in Klammern nach dem Doppelpunkt. Hier muss man weiterlesen: Der Grund kann die Sperrung des Datensatzes durch einen anderen Benutzer, eine Verletzung der Eindeutigkeit des Codes, nicht ausgefüllte Pflichtfelder oder eine Einschränkung auf Datenbankebene sein.
Wie liest man einen Aufrufstapel?
Wenn ein Fehler tief im Code auftritt, zeigt die Plattform einen Aufrufstapel an — eine Kette von Prozeduren und Funktionen, durch die die Ausführung erfolgt ist. Man muss ihn von oben nach unten lesen: Die oberste Zeile ist die Stelle, an der der Fehler direkt aufgetreten ist, und jede nachfolgende Zeile ist der aufrufende Code auf der nächsten Ebene.
Normalerweise liegt der Grund nicht in der untersten Funktion, sondern irgendwo in der Mitte der Kette, wo die falschen Parameter übertragen wurden.
Tipp: Versuchen Sie nicht, den Fehler auf einen Blick zu verstehen. Lesen Sie zuerst den Fehlertext, suchen Sie dann die Zeile und Position, und schauen Sie sich dann den Kontext an - welche Daten an dieser Stelle eingehen. Verwenden Sie den Debugger (F5 im Konfigurator), setzen Sie Haltepunkte und überprüfen Sie die Variablenwerte.
Allgemeine Grundsätze zum Lesen von 1C-Fehlern
Jeder Fehler in 1C besteht aus mehreren Teilen: dem Pfad zum Modul in geschweiften Klammern, der Zeilen- und Positionsnummer in runden Klammern, dem Fehlertyp und zusätzlichen Informationen in Klammern nach der Beschreibung. Wenn Sie sich an diese Struktur gewöhnt haben, ist das Lesen von Fehlern nicht mehr stressig und wird nur noch zu einem Teil der Routinearbeit.
Merken Sie sich drei Regeln.
Erstens: Beginnen Sie immer mit dem Fehlertext, nicht mit der Zeilennummer - der Text gibt den Kontext an.
Zweitens: Wenn der Fehler nicht klar ist, überprüfen Sie die Datentypen aller beteiligten Variablen über den Debugger.
Drittens: Wenn der Fehler nicht immer reproduziert wird, suchen Sie nach Bedingungen, unter denen die Daten von den erwarteten abweichen - höchstwahrscheinlich kommt irgendwo Неопределено oder ein leerer Link anstelle eines bestimmten Wertes.
Wenn Sie gerade erst mit dem Programmieren beginnen und nicht nur 1C, sondern auch andere Sprachen und Technologien verstehen möchten, schauen Sie sich die App an Kodik. Dort finden Sie strukturierte Kurse in Python, JavaScript, HTML, CSS und anderen Bereichen, die in einer für Anfänger verständlichen Sprache verfasst sind. Und wenn Sie Fragen haben oder mit Gleichgesinnten kommunizieren möchten, treten Sie unserer Community bei Telegram-Kanal mit Unterstützung, wo bereits mehr als 2000 Entwickler ihre Erfahrungen teilen und sich gegenseitig helfen, zu wachsen.
