Skocz do zawartości

Radomił Ząbik

Użytkownik
  • Liczba zawartości

    2 543
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    44

Zawartość dodana przez Radomił Ząbik

  1. Chciałem zmodyfikować dane Moja firma, ale otrzymuję błąd "Moja firma nie może być ustawiona jako centrala klienta". Co prawda jest wpisana Nazwa "Centrala" (tak to partner wdrażający nazwał), ale ogólnie w oknie moja firma, nie widzę nigdzie parametrów Centrali. Jest oddział nazwany Centrala, gdzie też jest przypisana Centrala, ale nie widzę, co tutaj mógłbym zmienić, aby pozbyć się tego błędu. Jakiś kierunek, gdzie tego szukać, bo forum i Google nic nie podpowiedziało. Wersja 48.0.1.
  2. O kurcze, chyba naprawdę trzeba się udać do okulisty. To od zawsze było w dokumentacji? Czyli teoretycznie, po inicjacji połączenia z bazą, mógłbym tą metodą pobrać użytkowników i jak Pan Mateusz wprowadzi zmiany, wywołać okono parametrów, z listą selektywną użytkowników oraz miejscem na wpisania hasła? Oczywiście wtedy przydał by się parametr tekstowy hasło. I tak, wiem, że można Sobie okienka dopisać, ale wasze są dużo lepsze, szybko można je odpalać
  3. Fajnie, jakby się udało, o ile okna dialogowe, nie będą należeć do NEXO PRO PLUS DELUXE PREMIUM - o to już dopytuje w innym wątku. Usprawniło by to pisanie na szybko jakieś aplikacji, np. importu, gdzie z szablonu WPF dodajemy dialog na odczyt, analizujemy plik, ewentualnie oknami dialogowymi zwracając błędy, dopytujemy o jakieś parametry oknem dialogowym, a na koniec otwieramy okno importowanego obiektu do potwierdzenia i zapisania. Jeszcze pozostaje pokonanie logowania użytkownika. Szkoda, że nie ma metody aby uruchomić samą Sferę i mieć dostęp do bazy, wtedy oknem parametrów, można by wylistować użytkowników i dać pole hasła (później bym was doprosił o parametrowe pole password) i wtedy dopiero zaloguj operatora zrobić. Z drugiej strony, możliwość musiała by być mocno ograniczona, bo to przecież była by ogromna luka, na wyciąganie danych z bazy, do której nie mamy hasła użytkownika. Chociaż w sumie, jak mamy dostęp do bazy, to i tak mamy wszystko.
  4. Czy w aplikacjach WPF, według waszego szablonu, możliwe jest stosowanie IOknoDialogowe lub IOknoParametrowOperacji? Próbowałem skonwertować was kod, ale dostaję błąd przy próbie pokazania okna. Próbowałem coś poskładać, ale dostaję błąd "Nie można wyświetlić okna", w metodzie Pokaz dla oknaParametrow. IOknoParametrowOperacji oknoParametrow = ViewModel.UchwytDoSfery.PodajObiektTypu<IOknoParametrowOperacji>(); oknoParametrow.Parametry.Dodaj( new TekstowyParametrOperacji("Tekst1234") { Wartosc = "Domyślna wartość parametru" } ); bool kliknietoOK = oknoParametrow.Pokaz(); if (kliknietoOK) // okno zamknięte przyciskiem OK { string tekst = (string)oknoParametrow.Parametry["Tekst1234"].PodajWartosc(); IUchwyt uchwyt = ViewModel.UchwytDoSfery.PodajObiektTypu<IUchwyt>(); Okna.PokazOknoZInformacja(uchwyt,tekst); } else { // okno zamknięte przyciskiem Anuluj lub krzyżykiem }
  5. A czy okna dialogowe (IOknoDialogowe), są normalnym elementem Sfery dla NEXO PRO, czy też trafią pod skrzydła plusów? Nie widzę tego nigdzie w Laboratorium, ale może macie to powiązane, z jakimś elementem laboratorium.
  6. Dziękuje, wieczorem przetestuję, z uwzględnieniem uwag do wydajności, które przeniosę także na dalsze poszukiwania rachunków cesyjnych
  7. Chciałbym po zapisaniu faktury, aby w tytule rozrachunku znalazła się odpowiednia wartość. Dodatkowo planuję jeszcze przenieść tą wartość dalej, do rozrachunków cesji, ale to już inna para kaloszy. Niestety podczas próby zmiany rozrachunku, po zapisie obiektu DokumentDS, otrzymuję błąd: Z poziomu Subiekta, mogę Swobodnie zmienić tytuł. Zrobiłem klasyczne rozwiązanie Sferyczne kopiując część kodu odpowiedzialną za zmianę i bez problemu przeszło. Problem mam tylko w Sferze zdarzeniowej. Coś się nie zamyka po zapisaniu obiektu? Kod rozwiązania, błąd występuje w momencie użycia metody Zapisz. public override void PoZapisieObiektu(IKontekstZdarzeniaPoZapisieObiektu<IDokumentSprzedazy> kontekst) { if (kontekst.StanZapisanegoObiektu == StanZapisanegoObiektu.Dodany) { IDokumentySprzedazy sprzedaz = kontekst.Uchwyt.PodajObiektTypu<IDokumentySprzedazy>(); IRozrachunki rozrachunki = kontekst.Uchwyt.PodajObiektTypu<IRozrachunki>(); int identyfikatorZapisanegoPodmiotu = (int)kontekst.IdDanych; IDokumentSprzedazy ds = sprzedaz.Znajdz(d => d.Id == identyfikatorZapisanegoPodmiotu); var rozrachunek = ds.Dane.Rozrachunek; using(var rch = rozrachunki.Znajdz(rozrachunek)) { if(rch.Zablokuj()) { rch.Odblokuj(); rch.Dane.Tytul = ds.Dane.Uwagi; if(rch.Zapisz()) {} else rch.WypiszBledy(); } } } }
  8. Tak, sprawdziłem kod i jest ok. No najdziwniejsze jest to, że po wydrukowaniu z programu na komputerze, gdzie działa aplikacja, działa przez parę godzin. Jakby tworzyło jakieś pliki tymczasowe, których moja aplikacja nie może stworzyć.
  9. Nowy rok, a problem dalej występuje, a nawet jest gorzej, bo teraz w ogóle nawet po ponownym skopiowaniu ZIP, nie mogę uzyskać prawidłowej deklaracji. UPDATE: Dobra, raz wydrukowanie z Gratyfikanta, na komputerze z rozwiązaniem, nagle odczarowało PITy. Ja tylko dodam, że nie odpalam rozwiązania launcherem, tutaj pewnie gdzieś leży problem? UPDATE 2: I nadal działa to tymczasowo. Po 4h znowu musiałem raz wygenerować w Gratyfikancie, aby Sferycznie robiło się dobrze.
  10. W menu operacje, w zleceniu serwisowym, brakuje opcji druku. Bardzo by się przydało to tutaj, gdyż niestety zakładki takiej jak POWIĄZANE i SKOJARZONE DOKUMENTY, nie mają funkcji drukuj, dlatego najłatwiej jest Pokazać obiekt i tam skorzystać z menu Operacji, ale w przypadku Zlecenia serwisowego tego nie ma. P.S. Swoją drogą, miło by było mieć opcję drukuj od razu w Powiązanych i Skojarzonych dokumentach, ale obawiam się, że tam to więcej niechęci i roboty z waszej strony
  11. Jestem w szoku, że ma Pan jeszcze komputer z napędem nagrywającym płyty Przy obecnym prawie zaniku wsparcia dla tego rodzaju nośników, archiwizacja na nich, zaczyna się zmieniać w archeologię. I nie czepiam się, czy coś, żyję trochę na tej planecie i tyle rodzajów nośników było i znikało, że przez te zmiany, człowiek czuje się stary.
  12. Trzeba szukać pod InsPunkty, na stronach Insert: https://www.insert.com.pl/aktualnosci/informacje/2023/portfel_insert.html Plus cennik paczek: https://www.insert.com.pl/dla_uzytkownikow/portfel_insert/cennik_paczek_inspunktow.html
  13. No można się wstrzymać z odkładaniem kasy I będzie czas na zapoznanie się dogłębniej z cennikami https://ksiegowosc.infor.pl/wiadomosci/6439055,minister-finansow-w-2024-roku-nie-bedzie-obowiazkowego-ksef.html
  14. Fajnie by było, gdyby pamięć zakładek, została wzbogacona o wsparcie szczegółowe modułu konfiguracja - czyli zapamiętanie sekcji i modułu w którym było się przed zamknięciem NEXO. Idealnym przykładem może tu być działanie na polach własnych, gdzie po zmianach restartujemy NEXO, i po ponownym uruchomieniu lądujemy w ogólnej konfiguracji, zamiast w modułach pól własnych.
  15. Ogólnie myślę, że już jest niestety po ptakach. Ktoś kto to wymyślił, skasował już premię, KPI się będą zgadzać i będzie super. Zastanawiam się tylko, czemu Insert robi Sobie tym tematem taki strzał w stopę: 1. Wprowadza rozwiązanie, które wymaga udziału ich serwerów w komunikacji z serwerami KSEF, w jakim celu? Poza ewentualnym zniwelowaniem ich awarii, aby utrzymać ustawowy czas dostarczenia, nie widzę za bardzo sensu w zbieraniu faktur z danymi finansowymi klientów, no chyba, że zbierają dane w celu dalszego ich użycia, np. sprzedaży statystyk? A co jak padnie serwer Insert? Pisanie, że jest to po to, aby łatwiej aktualizować, chyba trochę jest przesadą - mamy raptem drugą scheme, jakoś różnego rodzaju JPK, deklaracje itp. zmieniają się ciągle i wchodzą w aktualizacjach, jakoś z tym każdy żyje, nikt tego nie zmieni z dnia na dzień. 2. Cennik tego rozwiązania, jest totalnie oderwany od rzeczywistości, i co prawda jest zbliżony do cennika dużego ERP, za którego wdrożenie płaci się setki tysięcy złotych, i grube opłaty aktualizacyjne. NEXO na stronie, jest programem dla małych i średnich firm. Ale ok, rozumiem utrzymanie infrastruktury i to, że jak taka większa firma spamuje fakturami ich serwer, bo takie celowo rozwiązanie wybrali, to jest to obciążeniem. Dlatego są punkty w ramach abonamentu, ale są, żenująco małe. Przykład, firma 40 stanowiska Subiekta i Gestora (ten oczywiście się nie liczy), Rewizor i Gratyfikant, opłaty za abonamenty roczne w okolicach 7 tysięcy netto, jak dostaną dobry rabat, i w ramach tego abonamentu mają jakieś 600-800 punktów (zasady są tak kiepsko opisane, że jeszcze nie wiem ile wyjdzie). Patrząc po ilości dokumentów, spokojnie dwa pakiety po 20 tysięcy punktów trzeba będzie kupić, czyli 3 tysiące netto ekstra, prawie 40% kwoty samych abonamentów, a patrząc po innych klienta, to jest jeden z podmiotów co wystawia mało - wystarczy prowadzić sprzedaż pierdołek na Allegro na małej marży, gdzie po kolei Allegro, jakiś Baselinker (czy sello nx), a teraz Insert z KSEF, oczekuje Swojej części, za to, że jest. 3. Powyższy cennik i zasady, doprowadzą do tego, że prędzej czy później powstanie program, który będzie te dokumenty wysyłać i odbierać za NEXO, w zdecydowanie lepszej cenie i tyle Insert z tego tematu zobaczy pieniędzy, a szkoda, bo czas w to został włożony.
  16. Większość rzeczy obecnie będących w Laboratorium, trafi pod skrzydła "Plusów":
  17. Formę opłaty per jeden dokument, znalazłem tylko u jednego "znaczącego" producenta, znacząco tańsi też nie jesteście, w innych przypadkach jest ewentualna dodatkowa subskrypcja, a ci na modelu subskrypcyjnym i tak mają to w cenie. To już raczej kwestia jak to zaprojektowaliście. A za to się płaci w ramach abonamentu NEXO.
  18. Przygotowałem aplikację, która importuje urządzenia serwisowe do Subiekta, za pomocą Sfery. Przy okazji, odbywają się też, odpowiednio dodawanie zleceń serwisowych, według określonych reguł, ale to już za pomocą Sfery zdarzeniowej. No i po około 600 wierszach, wywala mi błędem pamięci. Stosuje dodawanie w "using", przejrzałem zmienne z obu rozwiązań, czy gdzieś nie dodać Dispose, ale wyglądało ok. Podłączyłem wiec Debugowanie, zrobiłem Sobie dwie migawki i z analizy różnicy, wygląda, że sporą część tej pamięci, pochłonęły różne elementy Reguł Automatyzacji. Te wynikają, z ustawień użytkownika, i Swoje zapewne robią, ale pytanie, czy ja mogę jakoś odpowiednio wpłynąć na to, aby i one pamięć zwalniały? Różnica w pamięci z Debugera: Kod sfery zdarzeniowej, dodający Zlecenie: Debug.WriteLine("Tworzymy nowe zlecenie serwisowe - Po zapisaniu urządzenia."); IScenariuszeObslugiKlienta scenariusze = kontekst.Uchwyt.PodajObiektTypu<IScenariuszeObslugiKlienta>(); IKategorieZlecenSerwisowych kategorie = kontekst.Uchwyt.PodajObiektTypu<IKategorieZlecenSerwisowych>(); IRodzajeZlecenSerwisowych rodzaje = kontekst.Uchwyt.PodajObiektTypu<IRodzajeZlecenSerwisowych>(); IAsortymenty asortymenty = kontekst.Uchwyt.PodajObiektTypu<IAsortymenty>(); // tworzenie nowego zlecenia serwisowego using (IZlecenieSerwisowe zlecenie = zlecenia.Utworz()) { zlecenie.Dane.Podmiot = urzadzenieZapisane.Dane.Wlasciciel; zlecenie.Dane.ScenariuszObslugiKlienta = scenariusze.Znajdz(s => s.Nazwa == k.Value.DocelowyScenariusz).Dane; zlecenie.Dane.KategoriaZleceniaSerwisowego = kategorie.Znajdz(s => s.Nazwa == k.Value.DocelowyKategoria).Dane; zlecenie.Dane.RodzajZleceniaSerwisowego = rodzaje.Znajdz(s => s.Nazwa == k.Value.DocelowyRodzaj).Dane; zlecenie.Dane.SerwisowaneUrzadzenie = urzadzenieZapisane.Dane; // określenie daty planowanej nowego zleceniaa DateTime dataArchiwalnegoZlecenia = dataArchiwalnaUrzadzenia.Value; DateTime planowanaData = dataArchiwalnegoZlecenia.AddMonths(k.Value.MiesiecyOdZakonczenia); zlecenie.Dane.DataRozpoczecia = planowanaData; zlecenie.Dane.PlanowanaDataZakonczenia = planowanaData; Debug.WriteLine("Data zaplanowana: " + zlecenie.Dane.PlanowanaDataZakonczenia); //zlecenie.Dane.DaneOpisoweZleceniaSerwisowego.DiagnozaProblemu = "Scenariusz: " + k.Value.DocelowyScenariusz; if (!zlecenie.Zapisz()) { Debug.WriteLine("Nie można było zapisać zlecenia."); } else { Debug.WriteLine("Zapisanie identyfikatorów nowego zlecenia."); using (DbCommand addcommand = connection.CreateCommand()) { string zapytanieDodające = "INSERT INTO ModelDanychContainer.NOW_ZleceniaSerwisoweUtworzoneArchiwalne " + "(ZlecenieRealizujace_Id,Urzadzenie_Id,DocelowyScenariusz,DocelowyKategoria,DocelowyRodzaj) " + "VALUES(" + zlecenie.Dane.Id + "," + urzadzenieZapisane.Dane.Id + ",'" + k.Value.DocelowyScenariusz + "','" + k.Value.DocelowyKategoria + "','" + k.Value.DocelowyRodzaj + "');"; addcommand.CommandText = zapytanieDodające; connection.Open(); addcommand.ExecuteNonQuery(); connection.Close(); } } } Kodu dodawania urządzenia już nie wrzucam, bo nie obstawiam, że to z jego winy, tam zresztą jest using na Utworz i pola własne, no może jest ich 30 razem, ale to raczej nie to. Ewentualnie jak inaczej szukać co pochłania tą pamięć, będę wdzięczny za podpowiedź, bo tutaj moje zasoby wiedzy, już wymiękają.
  19. Temat wraca jak bumerang, raz na jakiś czas, ale rzeczywiście każdy to nazywa inaczej, więc nawet mi to trudno znaleźć na Forum. Potrzeba archiwizacji danych starszych niź X lat, ze względu na mocno przybierające na wadze bazy NEXO, na pewno jest. Aczkolwiek, 20 letni Subiekt GT, nie otrzymał takiej funkcjonalności, więc na NEXO też już nie liczę. Pozostaje kombinacja z nową bazą i próbą przeniesienia tam kluczowych danych lub bezkresne rozwijanie możliwości serwera, aby to jakoś działało.
  20. Rozumiem. Czyli muszę wstrzymać póki co przygotowywanie rozwiązań na podstawie tych rozszerzonych modułów, póki nie będzie jakiegoś pewnego cennika, a klient w pełni świadomy się na to zdecyduje. Trochę szkoda, bo zawsze tworzenie rozwiązań dla klientów, pozwalało lepiej przestudiować i wskazać też wam problemy i wpływać na rozwój w trakcie, a nie po fakcie. Osobiście, mimo iż wiem, że praca programisty nie jest darmowa, to średnio mi się podoba, że Insert też idzie drogą, abonamentu na wszystko, ale tutaj już wina nas, klientów, którzy się na to godzą.
  21. Wprowadzając zmianę w godzinach przepracowanych, tutaj opis w teorii oraz informacje jakich elementów użyć: A w Sferze, to już w zależności od potrzeb, np. dzienne wprowadza się tak: zapisWECP.Dane.Typ = (byte)TypZapisuWECP.Godziny; var dzienne = new DzienSzczegoly(); zapisWECP.Dane.Godziny.DzienSzczegoly.Add(dzienne); dzienne.Poczatek = TimeSpan.Parse("11:30:00").Ticks; dzienne.Koniec = TimeSpan.Parse("14:00:00").Ticks; dzienne.TypOkresu = (byte)TypOkresuGodzinSzczegolowych.PierwszyDzien; dzienne.TypGodzin = 0;
  22. No uzupełnia Pan wszystko, ale nie zapisuje Brakuje: zapisWECP.Zapisz(); Oczywiście, proszę jeszcze sprawdzić kwestię zwracania błędów podczas zapisu, jest w dokumentacji
  23. Dodaliście ostatnimi czasy, wiele fajnych funkcjonalności, jak w temacie, aczkolwiek, część z nich jest już w Laboratorium już od dłuższego czasu. Z czym wiąże się tak długie "trzymanie" ich tam? Czy wiadomo już, czy to będą funkcjonalności w wersji PRO, czy może jakieś dodatkowe opłaty, jak dla automatyzacji? Zaraz wchodzą jakieś Inspunkty. Jest jakaś spora rewolucja w cenniku NEXO i trochę nie wiadomo, czy funkcje, które dzisiaj się przygotowuje, lada dzień nie będą opłacalne ze względu na koszty waszych licencji na nie. Słyszałem też plotki o powrocie plusów, normalnie jak zmora z czasów GT. Nie chciałbym wprowadzać klientów na minę, w postaci dodania im fajnej funkcjonalności dzisiaj, która potem nie będzie działać, ze względu na zbyt wysoki koszt licencji, a programista kasę wziął i to on zostanie uznany za naciągacza.
×
×
  • Dodaj nową pozycję...