Dzień dobry
Od wielu lat korzystamy z Subiekta GT (ponad 10 lat) od niedawna korzystamy z opcji ustawiania adresów dostawy.
Do automatycznego ustawiania tych adresów wykorzystujemy Sferę do Subiekta.
Ostatnio okazało się jednak, że jest problem z ustawianiem tych adresów dla części kontrahentów.
Próba zapisania przez Sferę kontrahenta z ustawionym adresem dostawy kończy się błędem "Zapisz Wystąpił wyjątek."
Okazuje się, że dla wybranych kontrahentów próba ręcznego ustawienia danych dostawy jest nie możliwa. Nie kończy się co prawda błędem, ale dane się nie zapisują w Subiekcie.
Przeprowadziłem analizę bazy danych z której wynikło, że problematycznych jest ok 3839 z ok 36000 kontrahentów.
Ci problematyczni charakteryzują się tym, że nie posiadają w bazie w tabeli: dbo.adr__Ewid rekordów z wartością adr_TypAdresu = 11.
Zauważyłem, że problematyczne rekordy są z okolic 2008-2009 roku (być może to przydatna wskazówka).
Kilkukrotna, ręczna próba dodania adresu dostawy (przez Subiekta, w ustawieniach adresów kontrahenta -> zarządzaj adresami dostawy) powoduje, że tworzy się w bazie pusty rekord z adr_TypAdresu = 11 w adr__Ewid, ale w adr_Historia nie ma nowego rekordu.
Dopiero ręczne ustawienie "domyślnego adresu dostawy", spowodowało że nowo dodawane adresy przez "zarządzanie adresami dostaw" zaczęły się pojawiać na liście w subiekcie.
Pobranie rekordów wykonałem poniższą SQLką.
SELECT *
FROM dbo.kh__Kontrahent k
LEFT JOIN dbo.adr__Ewid b ON k.kh_Id = b.adr_IdObiektu
WHERE b.adr_TypAdresu = 1 AND NOT EXISTS(
SELECT 1
FROM dbo.adr__Ewid c
WHERE c.adr_TypAdresu = 11 AND b.adr_IdObiektu = c.adr_IdObiektu)
ORDER BY kh_id DESC
Prawdopodobnie nie jest to do końca poprawne śledzenie problemu, ale być może dobry trop.
Moje pytanie brzmi jak mogę zweryfikować poprawność danych w bazie oraz jak uzupełnić brakujące dane tak, aby nie stracić spójności danych?
Ręczne przeklikiwanie ok 4000 kontrahentów, algorytmem ustaw domyślny adres, a następnie go wyłącz, raczej odpada

Pozdrawiam,
Wiktor