Klucz KSeF przy HASP – gdzie dodać i ile pakietów przy kilku kluczach licencyjnych w Optimie?

KSeF wszedł na stałe do codziennej pracy w Optimie i sporo firm dopiero teraz odkrywa, że sama licencja to jedno, a jej poprawne podpięcie do konkretnego klucza HASP to zupełnie inna historia. Szczególnie w firmach, które mają kilka kluczy licencyjnych na różnych serwerach albo pod różne bazy, pojawia się pytanie – czy trzeba wykupić pakiet KSeF dla każdego klucza z osobna, czy jeden wystarczy dla całego środowiska. Poniżej rozkładamy to na czynniki pierwsze.

Gdzie fizycznie dodaje się licencję KSeF przy HASP

Gdy pracujesz na kluczu HASP, licencję KSeF zawsze aktualizuje się w Menadżerze kluczy przy pomocy pliku .RUS otrzymanego od Comarcha. To jest źródło prawdy – dopiero po tej operacji klucz “widzi”, że ma dostępną licencję KSeF.

W samej Konfiguracji Optimy (Konfiguracja → Firma → Dane firmy → KSEF) nie aktywujesz licencji – tę sekcję wykorzystujesz jedynie do wskazania innego klucza, jeśli licencja KSeF ma być czerpana z klucza działającego na innej maszynie niż ta, do której zalogowana jest dana baza.

<screen>

Kiedy wystarczy jedna licencja KSeF dla wielu kluczy

Comarch dopuszcza dość wygodne rozwiązanie dla firm z kilkoma kluczami HASP – jeśli wszystkie klucze obsługują ten sam NIP lub podmioty powiązane i są w tej samej sieci, wystarczy jeden pakiet KSeF wykupiony na jednym z tych kluczy. Pozostałe klucze mogą korzystać z tej samej licencji, nawet jeśli pracują na innej instalacji SQL. Warunek jest jeden – sieć, w której działają wszystkie klucze, musi umożliwiać im wzajemne “zobaczenie się”.

Jeśli natomiast klucze pracują w odrębnych środowiskach (różne sieci, różne NIP-y niepowiązane, oddziały niepołączone infrastrukturalnie) – trzeba wykupić licencję KSeF osobno dla każdego takiego środowiska.

Jak wskazać licencję z innego klucza – krok po kroku

Krok 1 – aktualizacja klucza plikiem RUS

Od Comarcha dostajesz plik .RUS z licencją KSeF przypisaną do konkretnego numeru klucza HASP. W Menadżerze kluczy wskazujesz ten plik i wykonujesz aktualizację licencji. Po tej operacji klucz główny fizycznie ma na sobie licencję KSeF.

<screen>

Krok 2 – sprawdzenie widoczności klucza w sieci

Jeżeli z tej samej licencji ma korzystać inny klucz HASP w tej samej sieci, upewnij się, że Menadżer kluczy na drugim serwerze widzi klucz główny. Zwykle wymaga to otwartego portu dla usługi Sentinel HASP oraz zgodnej konfiguracji sieci lokalnej. Bez tego kroku pozostałe stanowiska nie znajdą licencji.

<screen>

Krok 3 – wskazanie klucza z licencją KSeF w konfiguracji firmy

W bazach, które mają korzystać z licencji z drugiego klucza, wchodzisz w:

Konfiguracja → Firma → Dane firmy → KSEF

i wskazujesz numer klucza, z którego ma być czerpana licencja KSeF. Ten krok jest konieczny tylko wtedy, gdy baza domyślnie korzysta z innego klucza niż ten, na którym siedzi licencja KSeF. Jeśli operator/baza pracuje już na kluczu z licencją KSeF – tej sekcji nie ruszasz.

<screen>

Krok 4 – weryfikacja na dokumencie

Wystaw testową fakturę sprzedaży i sprawdź, czy opcje KSeF są aktywne (wysyłka, statusy, UPO). Jeśli mimo aktywnej licencji na kluczu funkcje są wyszarzone, wróć do Menadżera kluczy – najczęściej brakuje odświeżenia licencji lub baza łapie inny klucz niż myślisz.

<screen>

Perspektywa ELTE-S

Bałagan licencyjny KSeF przy kluczach HASP potrafi kosztować firmę więcej niż sama licencja – typowy scenariusz to “kupiliśmy pakiet KSeF, a i tak nie działa”, choć licencja siedzi na innym kluczu niż ten, którego używa baza produkcyjna. Dwóch rzeczy należy przy tym pilnować: po pierwsze, zawsze aktualizować licencję przez Menadżera kluczy plikiem RUS (nie przez konfigurację firmy – tam tylko wskazujesz), po drugie, przed wykupieniem drugiego pakietu KSeF sprawdzić, czy klucze rzeczywiście są w tej samej sieci i pracują na tym samym NIP-ie lub podmiotach powiązanych – jeśli tak, jeden pakiet obsłuży wszystkie. Warto też pamiętać, że zmiany kadrowe i migracje serwerów często niepostrzeżenie przenoszą bazę na inny klucz i nagle KSeF “przestaje działać” bez żadnej widocznej przyczyny.

Porozmawiajmy o uporządkowaniu licencji i KSeF w Twojej Optimie.

Numer telefonu i mail operatora w stopce wydruku GenRap (proforma, zamówienie) w Comarch ERP Optima

Handlowiec wystawia proformę, wysyła ją mailem do klienta, a w stopce widnieje tylko ogólny numer centrali. Klient chce dopytać o szczegóły – dzwoni na recepcję, tam ktoś musi go przełączyć, potem drugi raz, przy trzecim podejściu rezygnuje. Dane kontaktowe operatora są w systemie, ale nie tam, gdzie powinny być – na wydruku. To klasyczny przypadek, w którym Optima ma potrzebne informacje, ale standardowa definicja GenRap ich nie wyciąga.

Dlaczego dane operatora nie pojawiają się same z siebie

Standardowe wydruki GenRap w Optimie są projektowane pod dane firmy jako wystawcy, a nie osoby konkretnej. Operator jest zapisany na dokumencie (jako Operator zakł. i Operator mod.), ale jego numer telefonu i mail siedzą w innej tabeli – w konfiguracji użytkownika (Konfiguracja Programu / Użytkowe / Operatorzy). Żeby te dane pojawiły się na wydruku, GenRap musi je aktywnie połączyć przez ID operatora. Bez tego połączenia sekcja stopki nie ma skąd ich wziąć, choć są zapisane 5 kliknięć dalej.

Ścieżka rozwiązania krok po kroku

Krok 1 – skopiuj standardową definicję wydruku

Otwórz dokument proforma lub zamówienie, który chcesz modyfikować. Użyj Ctrl + F2 (Konfiguracja wydruków), znajdź definicję GenRap dla tego typu dokumentu i zrób jej kopię. Nigdy nie edytuj oryginału Comarcha – przy następnej aktualizacji Optimy zmiany zostaną nadpisane.

<screen>

Krok 2 – sprawdź istniejące źródła danych

W edytorze GenRap wejdź w drzewko źródeł danych. Część nowszych definicji ma już gotowe zmienne typu OperatorWystawiajacyTelefon czy OperatorWystawiajacyEmail. Jeśli są – wystarczy przeciągnąć je do sekcji Footer, sformatować, zapisać i skończone.

<screen>

Krok 3 – dopnij źródło, jeśli go brakuje

Gdy w standardowej definicji nie ma pola z kontaktem do operatora, dodajesz nowe źródło danych. W edytorze GenRap tworzysz zapytanie SQL, które łączy tabelę dokumentu z tabelą operatorów (Ope_Ident, Ope_Telefon, Ope_Email) po ID operatora wystawiającego. Następnie w Footer wstawiasz pola tekstowe i wskazujesz nowe zmienne jako źródło zawartości.

<screen>

Krok 4 – alternatywa dla małych zespołów (filtr po nazwisku)

Jeżeli w firmie handluje 3-5 osób i nie chce ci się grzebać w SQL, można położyć w definicji wydruku filtr warunkowy – dokładnie takie rozwiązanie zaproponowała jedna z użytkowniczek pod pytaniem na forum. Filtr sprawdza, jakie nazwisko operatora jest w standardowym polu i podstawia mu przypisany numer telefonu i mail. To rozwiązanie działa od ręki, wdraża się je w kilkanaście minut i nie wymaga rozbudowy definicji o dodatkowe zapytania SQL. Haczyk jest jeden – przy zmianach kadrowych trzeba pamiętać o aktualizacji tej listy warunków w definicji, bo inaczej nowy handlowiec będzie miał pusty telefon w stopce.

<screen>

Krok 5 – test na kilku dokumentach

Zanim ustawisz zmodyfikowany wydruk jako domyślny, przetestuj go na proformie, zamówieniu i ofercie wystawionej przez różnych operatorów. Klucz to sprawdzić, że w stopce pojawia się kontakt do osoby, która wystawiła dokument, a nie do aktualnie zalogowanego użytkownika (to dwie różne wartości w bazie).

<screen>

Perspektywa ELTE-S

Wydruki w Optimie to obszar, który często traktuje się po macoszemu – działa, to nie ruszamy. Tyle że standardowa definicja GenRap projektowana jest pod dane firmy, a nie pod konkretnego handlowca, i w B2B to realnie kosztuje – klient zamiast oddzwonić do swojego opiekuna, ląduje na centrali albo w ogóle rezygnuje z kontaktu. Dwóch pułapek należy przy tym unikać: edytowania oryginału Comarcha (nadpisze się przy najbliższej aktualizacji) oraz mylenia operatora wystawiającego z operatorem zalogowanym – to dwie różne wartości w bazie i pomyłka tutaj oznacza, że w stopce będzie kontakt do przypadkowej osoby. Dobrze zaprojektowany wydruk to taką samą część procesu sprzedaży jak sam dokument – warto poświęcić parę godzin, żeby ustawić go raz a porządnie.

Porozmawiajmy o usprawnieniach wydruków w Twojej Optimie.

Zła kartoteka na fakturze wysłanej do KSeF (bez WZ) – jak to skorygować w Optimie?

Krajowy System e-Faktur działa w czasie rzeczywistym. Wystawiasz fakturę, klikasz wyślij, a dokument natychmiast staje się prawnie wiążący w urzędzie. Co jednak w sytuacji, gdy chwilę po wysyłce orientujesz się, że popełniłeś błąd?

Wyobraź sobie klasyczny scenariusz: na fakturze widnieje poprawna kwota i ilość, ale wybrana została zła kartoteka towarowa (np. zły indeks lub wariant produktu). Faktura poszła do KSeF, ale pracownik magazynu nie zdążył jeszcze wygenerować do niej dokumentu Wydania Zewnętrznego (WZ). Zastanawiasz się: skoro WZ jeszcze nie ma, to może po prostu wystawię je od nowa, już z poprawnym towarem, i w jakiś sposób zepnę z tą fakturą?

System klasy ERP rządzi się jednak żelazną logiką powiązań. Zignorowanie jej to najprostsza droga do zablokowania magazynu.

Zachowaj ciągłość obiegu dokumentów

Na wstępie warto zaznaczyć, że cała ta sytuacja jest mocno nietypowa. Wysyłanie faktury do KSeF przed fizycznym zdjęciem towaru z magazynu (brak WZ) rodzi ogromne ryzyko rozjechania się stanów. Niemniej jednak, skoro dokument jest już w systemie ministerialnym, musimy naprawić błąd zgodnie ze sztuką.

Nie możesz w Optimie wystawić “luźnego” dokumentu WZ z innym asortymentem (poprawną kartoteką A) i spróbować na siłę połączyć go z wysłaną Fakturą Sprzedaży, na której widnieje błędny asortyment (kartoteka B). System na to nie pozwoli. Powiązanie dokumentów handlowych i magazynowych wymaga absolutnej zgodności indeksów towarowych.

Jak naprawić błąd krok po kroku?

Musisz naprawić błąd “jadąc do przodu” i zamykając błędny obieg, a nie próbując go cofać. Aby poprawnie skorygować ten problem, trzymaj się następującej ścieżki:

Wystaw “błędne” WZ

Wygeneruj dokument Wydania Zewnętrznego (WZ) do wysłanej faktury, dokładnie w takiej postaci, w jakiej żąda tego system – czyli z błędną kartoteką towarową (kartoteką B). W ten sposób domkniesz obieg pierwotnego dokumentu sprzedaży.

Wykonaj Korektę Faktury Sprzedaży (KOR FS)

Odszukaj w rejestrze błędną fakturę i wygeneruj do niej korektę, poprawiając na niej pozycje (zdejmując kartotekę B i wprowadzając poprawną kartotekę A).

Wykonaj Korektę Wydania Zewnętrznego (KOR WZ)

Zatwierdzenie korekty faktury wymusi również korektę na dokumencie magazynowym. System zdejmie z WZ błędny towar i pozwoli wydać ten poprawny.

Wyślij korektę do KSeF

Wygenerowaną i zatwierdzoną korektę faktury wyślij do KSeF.

Tylko takie przejście przez cały proces gwarantuje, że nie powstaną rezerwacje widmo, a towar powróci na prawidłowe stany magazynowe.

<screeny>

Perspektywa ELTE-S: Wdrażaj zabezpieczenia procesowe

Ten przypadek doskonale obnaża słabości procesowe w wielu firmach. Wystawianie faktur (i co gorsza, wysyłanie ich do rządowych platform) przed fizycznym wygenerowaniem dokumentów magazynowych to igranie z ogniem.

Dobrze zaprojektowany system blokad i uprawnień w Comarch ERP Optima powinien wymuszać na operatorach generowanie obiegu handlowego na podstawie gotowych i zatwierdzonych dokumentów z magazynu, a nie odwrotnie.

Jeśli w Twojej firmie obiegi dokumentów często ulegają “zapętleniu”, a pracownicy omijają standardowe procedury (np. wystawiając faktury bez powiązań), warto przeprowadzić audyt konfiguracyjny. Chętnie ułożymy te procesy od nowa, by zabezpieczyć Cię przed ryzykownymi pomyłkami w erze KSeF.

Porozmawiajmy o usprawnieniach.

Powrót do starszej wersji i odtwarzanie kopii bezpieczeństwa w Optimie

Wielu użytkowników po problematycznej aktualizacji oprogramowania staje przed koniecznością szybkiego odzyskania środowiska pracy. Kiedy nowa wersja systemu generuje błędy uniemożliwiające codzienne operacje, naturalnym odruchem jest chęć odtworzenia kopii bezpieczeństwa zrobionej przed podniesieniem wersji. Niestety, często na tym etapie pojawia się problem: Comarch ERP Optima odrzuca próbę odtworzenia backupu.

Powstaje wtedy koncepcja “downgrade’u”: całkowitego usunięcia programu, zainstalowania na czysto starej wersji (np. 2026.1), odtworzenia bazy i powtórzenia procesu aktualizacji do wyższej wersji (np. 2026.4). Czy to zadziała i skąd w ogóle biorą się takie blokady?

Dlaczego system odrzuca odtworzenie kopii zapasowej?

Zanim zdecydujesz się na drastyczny krok w postaci deinstalacji oprogramowania, warto zrozumieć, dlaczego Optima w ogóle odrzuca Twoją próbę przywrócenia bazy.

Wielu użytkowników zakłada, że nowa wersja programu (w tym przypadku 2026.4) intencjonalnie blokuje kopie z wersji poprzednich (np. 2026.1). W praktyce jednak powód bywa znacznie bardziej prozaiczny. Z naszych wdrożeniowych doświadczeń wynika, że gdy pojawia się problem z odtworzeniem bazy, w 90% przypadków dotyczy on braku dostępu do folderu, w którym została zapisana kopia.

Mechanizm przywracania bazy wykonuje się na poziomie usługi SQL Server. Zdarza się, że po aktualizacjach lub zmianach w systemie operacyjnym usługa SQL traci uprawnienia do odczytu z folderu z backupami. Przeniesienie pliku kopii do innego, w pełni udostępnionego folderu lub poprawienie uprawnień dla konta uruchamiającego SQL Server często natychmiast odblokowuje możliwość odtworzenia danych.

Downgrade Optimy – czy instalacja starszej wersji zadziała?

Jeśli jednak problem jest głębszy i baza w nowej wersji całkowicie odmawia posłuszeństwa, powrót do starszej edycji (downgrade) poprzez czystą instalację jest możliwy.

Ścieżka, w której odinstalowujesz Optimę, instalujesz na nowo wersję 2026.1, a następnie odtwarzasz w niej kopię bezpieczeństwa wykonaną dokładnie w tej samej wersji przed feralną aktualizacją, ma dużą szansę powodzenia.

Jest to szczególnie bezpieczne w przypadku przejścia między wersjami 2026.1 a 2026.4, ponieważ operujesz jeszcze w środowisku 32-bitowym (nowa architektura x64 weszła na rynek dopiero od wersji 2026.5). Przeskoki architektoniczne bywają dużo bardziej problematyczne dla baz danych, ale w tym wypadku nie musisz się tym martwić.

Skąd wziąć starszą wersję instalatora? Comarch nie udostępnia starych wersji na otwartych serwerach po wydaniu nowszych edycji. Pliki te jednak posiadają autoryzowani Partnerzy Comarch i w razie potrzeby udostępniają je klientom.

Perspektywa ELTE-S: Działaj na podstawie logów, a nie intuicji

Próby ratowania bazy metodą reinstalacji bez wcześniejszej diagnozy błędu to zawsze ryzykowna gra. Jeśli aktualizacja się nie powiodła, kluczowe jest zbadanie dokładnego komunikatu błędu, który generuje instalator lub SQL Server w logach. Brak konkretnego kodu błędu uniemożliwia rzetelną ocenę tego, co uległo awarii na serwerze.

Działanie “na ślepo” często skutkuje tym, że przy ponownej próbie aktualizacji (nawet z poprawnie przywróconej starszej wersji) system ponownie się zawiesi dokładnie w tym samym miejscu, a Ty stracisz kolejne godziny.

Zamiast tracić czas na poszukiwanie instalatorów i formatowanie serwera, zleć analizę problemu profesjonalistom. Przeprowadzimy diagnozę logów i podniesiemy wersję oprogramowania bezpiecznie.

Porozmawiajmy o usprawnieniach.

Optima zamyka się przy imporcie pliku XML w Pracy Rozproszonej – jak to naprawić?

Wdrażasz nową wersję Comarch ERP Optima, wszystko działa sprawnie, ale następnego dnia praca w księgowości zostaje sparaliżowana. Przy próbie zaimportowania dokumentów (np. z innej bazy Optima przez Narzędzia -> Praca rozproszona BR), system zachowuje się bardzo dziwnie. Wskazujesz plik do importu, program rusza i po 2-4 sekundach okno po prostu znika. Bez komunikatu, bez widocznego błędu – aplikacja natychmiast wyłącza się do pulpitu.

To niezwykle frustrujące zjawisko, tym bardziej że w standardowych logach programu najczęściej nie ma żadnego śladu awarii. Dlaczego Optima nagle odrzuca pliki XML i jak diagnozować awarię, o której system nie informuje wprost?

Różnica wersji i zmiana struktury plików XML

Niewidzialny “crash” aplikacji przy imporcie danych bez generowania konkretnych błędów najczęściej wskazuje na jeden bardzo techniczny powód: program napotkał w pliku wejściowym znacznik, format lub układ danych, którego w obecnej wersji nie potrafi prawidłowo zinterpretować.

Mechanizm Pracy Rozproszonej w Optimie jest niezwykle wrażliwy na niezgodność wersji. Po każdej większej aktualizacji, producent często optymalizuje, dodaje lub całkowicie zmienia obsługę określonych elementów wewnątrz struktury przesyłanych plików XML.

Jeżeli klient pracujący na starszej wersji Optimy (lub na zewnętrznym programie księgowo-magazynowym) wygeneruje plik w przestarzałym formacie i wyśle go do biura rachunkowego, które dopiero co zaktualizowało system do najnowszego wydania – nowa Optima może “zadławić się” podczas odczytywania nieznanych lub wycofanych tagów, co skutkuje zamknięciem programu.

Jak zweryfikować i naprawić plik XML do importu?

Jeśli podejrzewasz różnicę w wersjach, możesz bardzo szybko zweryfikować, czy struktura problematycznego pliku jest poprawna w stosunku do najnowszych wymogów Optimy.

Przeprowadź testowy eksport

Otwórz zaktualizowaną Optimę i mechanizm Pracy Rozproszonej. Wybierz dowolne dokumenty i wykonaj testowy eksport do pliku XML na swoim komputerze.

<screen>

Porównaj strukturę plików

Otwórz oba pliki w dowolnym edytorze tekstu (np. Notatniku) – plik testowy z nowego systemu oraz problematyczny plik przesłany przez klienta.

Zlokalizuj różnice w budowie

Zwróć uwagę na nagłówki oraz sposób budowania znaczników poszczególnych rekordów. Jeżeli zauważysz, że w pliku od klienta brakuje wymaganych sekcji lub użyto wycofanych tagów wewnątrz dokumentów, znalazłeś winowajcę.

Aby usunąć problem definitywnie, jedynym słusznym i w pełni bezpiecznym rozwiązaniem jest dbanie o to, by obie strony wymiany danych pracowały na zaktualizowanych systemach Comarch ERP Optima. Ujednolicenie wersji po obu stronach gwarantuje zgodność przesyłanych plików XML.

Perspektywa ELTE-S: Błędy importu w nowych wersjach to stały problem

Automatyczna komunikacja na styku różnych systemów firmowych to fundament szybkiego księgowania, jednak bywa zawodna. Każda aktualizacja ERP niesie za sobą ryzyko, że ręcznie ustawiane dotąd importy i specyficzne schematy po prostu przestaną działać, a praca zostanie wstrzymana na czas żmudnej diagnozy i analizy plików tekstowych.

Jeżeli Twoja Optima notorycznie zamyka się podczas wczytywania dokumentów z pracy rozproszonej lub borykasz się z importowaniem niestandardowych XML-i od zewnętrznych dostawców e-commerce, i masz wrażenie, że wymiana danych przynosi więcej kłopotów niż pożytku – daj nam znać. Chętnie zajrzymy w logi Twojego środowiska i ułożymy proces komunikacji tak, aby działał stabilnie.