Przejdź do zawartości

Jak Naprawić Błąd „Record Does Not Exist or Has Been Deleted” w Odoo

Dowiedz się, jak naprawić błąd „record does not exist” w Odoo — jasne wyjaśnienia, typowe przyczyny oraz instrukcje krok po kroku przeznaczone dla użytkowników i deweloperów Odoo.
17 lutego 2026 przez
Elisa Van Outrive
| Brak komentarzy na ten moment

Wstęp


Komunikat „Rekord nie istnieje lub został usunięty” to jedno z tych powiadomień w Odoo, które pojawia się nagle i dezorientuje użytkownika — najczęściej w trakcie otwierania formularza, zatwierdzania dokumentu lub wykonywania automatycznego zadania.


Mimo dramatycznego brzmienia, rzadko oznacza faktyczne uszkodzenie danych; najczęściej sygnalizuje, że gdzieś jest złamane powiązanie lub brakuje odniesienia.


Wyjaśnijmy więc, co naprawdę się dzieje i jak bezpiecznie rozwiązać problem.

Co oznacza ten błąd


Błąd pojawia się, gdy Odoo próbuje odwołać się do rekordu po jego identyfikatorze (ID), który:


  • Już nie istnieje
  • Został usunięty
  • Jest niedostępny z powodu uprawnień
  • Należy do innej firmy/kontekstu wielofirmowego

Przykład:


record = self.env['res.partner'].browse(45)

Jeżeli rekord o ID 45 nie istnieje, Odoo wyrzuci wspomniany błąd.



Najczęstsze przyczyny



1. Odwołania do usuniętych rekordów

Pola Many2one mogą wskazywać na elementy, które zostały wcześniej skasowane.


Do takiej sytuacji dochodzi najczęściej po:


  • Ręcznym usuwaniu danych
  • Czyszczeniu danych testowych
  • Nieudanych importach

2. Błędne mapowanie zewnętrznych ID


Przy integracjach z zewnętrznymi systemami trafiają czasem nieprawidłowe identyfikatory.

Gdy Odoo otrzyma:


{ "partner_id": 99999 }

A taki ID nie istnieje, pojawi się błąd.


3. Ograniczenia wielofirmowe


Rekord może istnieć, lecz nie być widoczny w aktualnym kontekście firmy.

Przełączenie na superużytkownika często ujawnia ukryty rekord.


4. Problemy po migracji lub aktualizacji


Po upgrade’ach modułów odniesienia mogą wskazywać na przestarzałe lub przebudowane rekordy.

Jak to naprawić


Krok 1 – Sprawdź, czy rekord istnieje

record = self.env['model.name'].browse(record_id) if record.exists(): # bezpieczne użycie

Krok 2 – Zweryfikuj prawa dostępu


Przetestuj scenariusz z kontem administratora.

Jeżeli admin widzi rekord, a zwykły użytkownik nie — problem leży w regułach dostępu.


Krok 3 – Oczyść pola relacyjne


Zlokalizuj osierocone Many2one i popraw lub wyzeruj ich wartości.


Krok 4 – Sprawdź integracje zewnętrzne


Przejrzyj:


  • treść payloadów API
  • logikę mapowania
  • warstwę synchronizacji

Niespójne mapowanie ID to częsta przyczyna w systemach zintegrowanych.



Jak zapobiegać



  • Unikaj wpisywania na stałe identyfikatorów
  • Korzystaj z zewnętrznych identyfikatorów poprawnie
  • Waliduj dane przyjmowane przez API
  • Testuj migracje na środowisku staging
  • Nie usuwaj rekordów, które są referencjonowane w innych miejscach


Jak Dasolo eliminuje problemy „Rekord nie istnieje”


Błąd „Record Does Not Exist” zwykle wynika z niespójności powiązań między modelami. Choć objawia się w interfejsie, przyczyna leży często w usuniętych rekordach, uszkodzonych relacjach lub niebezpiecznej manipulacji danymi poza ORM.


W Dasolo traktujemy ten komunikat jako sygnał strukturalny, nie jedynie incydent. Najczęściej odsłania on:


  • Osierocone odniesienia relacyjne
  • Niewłaściwe procesy usuwania
  • Niedopasowania w integracjach
  • Brak walidacji przed dostępem do rekordu
  • Niespójne zarządzanie kontekstem wielofirmowym

Aby zapobiegać takim przypadkom, projektujemy systemy Odoo z kontrolowanym cyklem życia danych. Zamiast usuwać krytyczne wpisy, preferujemy archiwizację, a integralność referencyjną wymuszamy przez dobre praktyki ORM. Dzięki temu ograniczamy niespodziewane wyjątki "rekord nie znaleziony" w środowisku produkcyjnym.



Podsumowanie


Błąd „Record Does Not Exist” w Odoo pojawia się, gdy system próbuje dostać się do rekordu, który został usunięty lub nigdy nie powstał poprawnie. Zwykle nie chodzi o utratę danych jako taką, lecz o złamaną logikę relacji lub niebezpieczne operacje na bazie.


Utrzymując spójną architekturę relacji, weryfikując istnienie rekordu przed dostępem i unikając bezpośrednich operacji na bazie, deweloperzy znacząco zmniejszą częstotliwość tego błędu. W dobrze zaprojektowanych wdrożeniach Odoo integralność rekordów zapewniają kontrolowane procesy i przewidywalne zarządzanie danymi.


Rozwiązanie problemu na poziomie architektury nie tylko eliminuje jednorazowy błąd, lecz także zwiększa stabilność bazy i długoterminową niezawodność systemu.

Najczęściej zadawane pytania


Nie zawsze. Często jest po prostu niedostępny w aktualnym kontekście.

Tak — szczególnie zautomatyzowane zadania synchronizacyjne są wrażliwe na takie błędy.

Tylko jeśli wcześniej przeanalizowano zależności i brak jest powiązań referencyjnych.


Elisa Van Outrive 17 lutego 2026
Udostępnij ten artykuł
Zaloguj się by zostawić komentarz