Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: jacekjarz w Luty 15, 2022, 01:58:36

Tytuł: Subiekt 1.70 Nazwa zmiennych obiektowych Kontrahenci
Wiadomość wysłana przez: jacekjarz w Luty 15, 2022, 01:58:36
Dzień dobry!
Używam macro napisanego w VBA do wystawiania zdalnego faktur i rachunków z Subiekta za pomoca tabelki kontrahentów zrobionej i aktualizowanej w Excel. Leci zdalnie kilkaset faktur z róznymi kontrahentami, cenami i nazwami towarów. Uzywam to Macro już od ok 7-8 lat i wszystko było OK do czasu jak dzisiaj nie zaktualizowałem Subiekta do wersji 1,70.

Przy wykonywaniu instrukcji:
Set okh = Subiekt.Kontrahenci.Wczytaj(CStr(Cells(i, kolumna)))
Macro się wysypuje; podświetlany jest wyraz Kontrahenci oraz pojawia się okienko z komunikatem: Compile error. Method or data member not Found
To samo się dzieje w innych miejscach Macro gdzie jest odwołanie Subiekt.Kontahenci.
Aktualizowałem jeszcze raz Subiekt oraz Windows 10 którego używam, po tym reset kompa ale nic to nie dało.
Bardzo proszę o pomoc wyjadaczy spraw subiektowych
Tytuł: Odp: Subiekt 1.70 Nazwa zmiennych obiektowych Kontrahenci
Wiadomość wysłana przez: birds22 w Luty 15, 2022, 08:26:34
Hasło dla Ciebie do nadrobienia to: KontrahenciManager

Cytat z pomocy:
Cytuj
Ogólne informacje na temat obiektów xxxManager
 
     W Sferze od wersji 1.14 dostępne są nowe obiekty do obsługi kolekcji. Są to obiekty kolekcji o nazwie xxxKolekcja, oraz obiekty wspierające zarządzanie kolekcjami o ogólnej nazwie xxxManager, gdzie xxx to prefiks oznaczający jaki obiekt dany Manager wspomaga. Na przykład TowaryManager ma za zadanie wspierać kolekcję towarów (TowaryKolekcja), a SuDokumentyManager ma wspierać
kolekcję dokumentów (SuDokumentyKolekcja). Zadaniem Managerów jest
wspieranie kolekcji w zakresie:
 - dodawania nowych obiektów
 - wczytywania obiektów
 - sprawdzania istnienia obiektów w bazie danych
 - otwierania kolekcji
 - udostępniania obiektu listy

    Doświadczony twórca aplikacji Sferycznych powinien zapytać: zaraz, ale przecież to wszystko już było, przecież dotychczasowe kolekcje miały już metody pozwalające na zrealizowanie wymienionych funkcjonalności?
    Owszem, ale do tej pory kolekcje miały kilka wad. Podstawową z nich było to, że raz utworzonej kolekcji obiektów nie można było łatwo odświeżyć. Po powołaniu jej do życia, w celu odświeżenia, należało zamknąć obiekt aplikacji, uruchomić go i na nowo załadować kolekcję. Obecnie Managery są wyposażone w metodę OtworzKolekcje, która w locie buduje kolekcję (bez potrzeby przeładowywania aplikacji). Jako argument tej metody można zadać warunek WHERE (celem wybrania odpowiednich elemetnów do kolekcji) oraz sposób sortowania ORDER (celem odpowiedniego uporządkowania obiektów w kolekcji). Działa to o wiele szybciej i jest znacznie bardziej wydajne niż metody dostępne przed wersją 1.14 systemu InsERT GT.

    Poza tym Managery zostały wyposażone w pewne metody specyficzne. Na przykład FinManager (którego zadaniem jest wspieranie kolekcji dokumentów finansowych) ma metody:
 - DodajDokumentKasowy
 - DodajOperacjeBankowa
 - DodajRozrachunek
 - DodajSplate
 których znaczenie jest opisane w odpowiednich rozdziałach pomocy.
 
    Kolejną ważną nowością jest wyposażenie każdego z Managerów w 2 metody: Wczytaj i WczytajCoś. Zostanie to wyjaśnione na przykładzie: DkrManager ma metodę Wczytaj, która działa "po staremu" i udostępnia obiekt Dekret z interfejsem IDispatch (co na przykład w języku C# skutkuje koniecznością rzutowania takiego obiektu na określony typ InsERT.Dekret). Natomiast "nowa" metoda WczytajDokument zwraca obiekt z interfejsem specyficznym dla dekretu, co nie wymaga rzutowania.
 
   Obecnie zatem "stare" kolekcje:
- SuDokumenty
- Towary
- Kontrahenci
- Pracownicy
nie powinny być używane i są pozostawione w modelu obiektowym wyłącznie ze względu na wsteczną zgodność.


Tytuł: Odp: Subiekt 1.70 Nazwa zmiennych obiektowych Kontrahenci
Wiadomość wysłana przez: dkozlowski w Luty 15, 2022, 17:14:39
Uzywam to Macro już od ok 7-8 lat i wszystko było OK do czasu...

Tak to działa, już 8 lat temu nie powinien być wykorzystywany obiekt "Kontrahenci".