Obsługa KSeF w Comarch BPM – informacje




Konfiguracja współpracy Comarch BPM z KSeF

Współpracę Comarch BPM z KSeF można skonfigurować zarówno w trybie jednospółkowym, jak i w trybie wielospółkowym.

Aby skonfigurować współpracę Comarch BPM z KSeF, należy:

  • dla trybu jednospółkowego:  na zakładce Ustawienia -> zakładka Integracje:


1.  w ramach pola  „Nip firmy” wprowadzić NIP firmy, dla której ma odbywać się współpraca z KSeF

2. w ramach pola „Token KSeF” wprowadzić token uwierzytelniający w KSeF.

Uwaga
Jeśli autoryzacja przez token zakończy się niepowodzeniem, wówczas podczas próby importu dokumentów z KSeF zostanie wyświetlone okno z certyfikatami, w ramach którego należy wskazać właściwy certyfikat.

Uwaga

W wersji 2024.0.1 w pliku Web.config w folderze aplikacji serwerowej (dawnej web) dodano klucz add key=”KSeFWorkMode” value=”Demo” /> – klucz umożliwia określenie, czy Firma testuje funkcjonalność wysyłania faktur do KSeF, czy korzysta z niej produkcyjnie.

Klucz może przybierać jedną z następujących wartości:

1.Demowartość domyślna; w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Demo;

2.Production – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Produkcyjnym, czyli wersji produkcyjnej systemu;

3.Test – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie testowym.

W kwestii różnic pomiędzy powyższymi trybami zob. Przełączanie trybu pracy z KSeF

 

Istnieje możliwość wygenerowania tokenu KSeF z poziomu Comarch BPM (dawniej DMS). W tym celu należy kliknąć w link [Wygeneruj token] znajdujący się obok pola „Token KSeF”, a następnie w oknie „Wybierz certyfikat” wybrać odpowiedni certyfikat uwierzytelniający.

Po wyborze certyfikatu zostanie wygenerowany token KSeF, który zostanie automatycznie wprowadzony w ramach pola „Token KSeF”.

Wprowadzone zmiany należy zapisać za pomocą przycisku  [Zapisz], dostępnego w ramach sekcji.

 

Uwaga
Aby wygenerować token konieczne jest zainstalowanie kwalifikowanego podpisu/pieczęci, za pomocą którego możliwe jest uwierzytelnienie się na stronach ministerstwa.

 

Zakładka „Integracje” – sekcja „Integracja z usługą KSeF”

 

Wybór certyfikatu po kliknięciu w link „Wygeneruj token”

 

Sekcja „Integracja z usługą KSeF” z uzupełnionymi polami

 

Aby wygenerować token uwierzytelniający, należy najpierw uzupełnić pole „NIP Firmy”.

Jeżeli użytkownik nie uzupełni pola „NIP Firmy” i naciśnie link [Wygeneruj token], wówczas zostanie wyświetlony następujący komunikat.

Komunikat wyświetlany, jeśli nie wpisano numeru NIP w polu „NIP Firmy”, ale naciśnięto link „Wygeneruj token”

Wskazówka

Jeżeli operator pracuje w trybie testowym współpracy z KSeF 2.0 (w Comarch BPM dostępnym od wersji 2025.2.3), wówczas może:

  • wygenerować certyfikat zgodnie z instrukcją dostepną na stronie https://github.com/CIRFMF/ksef-docs/blob/main/auth/testowe-certyfikaty-i-podpisy-xades.md , a następnie uruchomić CMD jako administrator i wprowadzić następujęce polecenie:
    certutil -user -p "" -csp "Microsoft Enhanced Cryptographic Provider v1.0" -importpfx "C:\WINDOWS\system32\ksef-client-csharp\KSeF.Client.Tests.CertTestApp\cert-20251104-102647.pfx"

    gdzie: cert-20251104-102647.pfx to plik wygenerowany zgodnie z instrukcją ze strony https://github.com/CIRFMF/ksef-docs/blob/main/auth/testowe-certyfikaty-i-podpisy-xades.md

    Zaimportowany w ten sposób certyfikat (prawdopodobnie o nazwie A R) należy następnie wybrać w ramach okna wyświetlanego po kliknięciu w przycisk [Wygeneruj token]. Wówczas w polu „Token KSeF” zostanie wprowadzony token. Wprowadzone zmiany powinny zostac zapisane.

  • przejść na stronę https://web2te-ksef.mf.gov.pl/web/, kliknąć w pole „Uwierzytelnij sie w Krajowym Systemie e-Faktur”, a następnie w pole „Zaloguj uwierzytelnieniem testowym” – później należy uzupełnić pola: „NIP firmy” i „Numer NIP” i nacisnąć przycisk „Uwierzytelnij do aplikacji testowej”; następnie wybrać zakładkę „Tokeny”, sekcję „Generuj token” – w polu „Nazwa tokena” wprowadzić przykładową nazwę tokena, poniżej zaznaczyć uprawnienie „przeglądanie faktur” i kliknąć w pole „Generuj token”. Po odświeżeniu strony należy skopiować wyświetlany token, a potem wkleić go w polu „Token KSeF”. Wprowadzone zmiany powinny zostac zapisane.

Po ukończeniu konfiguracji należy przejść do konfiguracji punktu ACD współpracującego z KSeF (zob. Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF))

  • dla trybu wielospółkowego: na zakładce Ustawienia -> zakładka Połączenia z ERP  -> ustawienia odpowiedniej spółki:


1.  w ramach pola  „Nip firmy” należy wprowadzić NIP firmy, dla której ma odbywać się współpraca z KSeF

2. w ramach pola „Token KSeF” należy wprowadzić token uwierzytelniający w KSeF.

Uwaga
Jeśli autoryzacja przez token zakończy się niepowodzeniem, wówczas podczas próby importu dokumentów z KSeF zostanie wyświetlone okno z certyfikatami, w ramach którego należy wskazać właściwy certyfikat.

Uwaga

W wersji 2024.0.1 w pliku Web.config w folderze aplikacji serwerowej (dawnej web) dodano klucz add key=”KSeFWorkMode” value=”Demo” /> – klucz umożliwia określenie, czy Firma testuje funkcjonalność wysyłania faktur do KSeF, czy korzysta z niej produkcyjnie.

Klucz może przybierać jedną z następujących wartości:

1.Demowartość domyślna; w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Demo;

2.Production – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Produkcyjnym, czyli wersji produkcyjnej systemu;

3.Test – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie testowym.

W kwestii różnic pomiędzy powyższymi trybami zob. Przełączanie trybu pracy z KSeF

Zakladka „Połączenia z ERP”, pola „Nip firmy” i „Token KSeF”

Istnieje możliwość wygenerowania tokenu KSeF z poziomu Comarch BPM (dawniej DMS). W tym celu należy kliknąć w link [Wygeneruj token] znajdujący się obok pola „Token KSeF”, a następnie w oknie „Wybierz certyfikat” wybrać odpowiedni certyfikat uwierzytelniający.

Po wyborze certyfikatu zostanie wygenerowany token KSeF, który zostanie automatycznie wprowadzony w ramach pola „Token KSeF”.

Wprowadzone zmiany należy zapisać za pomocą przycisku  [Zapisz], dostępnego w ramach sekcji.

 

Uwaga
Aby wygenerować token konieczne jest zainstalowanie kwalifikowanego podpisu/pieczęci, za pomocą którego możliwe jest uwierzytelnienie się na stronach ministerstwa.

 

Aby wygenerować token uwierzytelniający, należy najpierw uzupełnić pole „NIP Firmy”.

Jeżeli użytkownik nie uzupełni pola „NIP Firmy” i naciśnie link [Wygeneruj token], wówczas zostanie wyświetlony następujący komunikat.

Komunikat wyświetlany, jeśli nie wpisano numeru NIP w polu „NIP Firmy”, ale naciśnięto link „Wygeneruj token”

 

Wskazówka

Jeżeli operator pracuje w trybie testowym współpracy z KSeF 2.0 (w Comarch BPM dostępnym od wersji 2025.2.3), wówczas może:

certutil -user -p "" -csp "Microsoft Enhanced Cryptographic Provider v1.0" -importpfx "C:\WINDOWS\system32\ksef-client-csharp\KSeF.Client.Tests.CertTestApp\cert-20251104-102647.pfx"

gdzie: cert-20251104-102647.pfx to plik wygenerowany zgodnie z instrukcją ze strony https://github.com/CIRFMF/ksef-docs/blob/main/auth/testowe-certyfikaty-i-podpisy-xades.md

Zaimportowany w ten sposób certyfikat (prawdopodobnie o nazwie A R) należy następnie wybrać w ramach okna wyświetlanego po kliknięciu w przycisk [Wygeneruj token]. Wówczas w polu „Token KSeF” zostanie wprowadzony token. Wprowadzone zmiany powinny zostac zapisane.

 

lub

 

  • przejść na stronę  https://web2te-ksef.mf.gov.pl/web/, kliknąć w pole „Uwierzytelnij sie w Krajowym Systemie e-Faktur”, a następnie w pole „Zaloguj uwierzytelnieniem testowym” – później należy uzupełnić pola: „NIP firmy” i „Numer NIP” i nacisnąć przycisk „Uwierzytelnij do aplikacji testowej”; następnie wybrać zakładkę „Tokeny”, sekcję „Generuj token” – w polu „Nazwa tokena” wprowadzić przykładową nazwę tokena, poniżej zaznaczyć uprawnienie „przeglądanie faktur” i kliknąć w pole „Generuj token”. Po odświeżeniu strony należy skopiować wyświetlany token, a potem wkleić go w polu „Token KSeF”. Wprowadzone zmiany powinny zostac zapisane.

 

Po ukończeniu konfiguracji należy przejść do konfiguracji punktu ACD współpracującego z KSeF (zob. Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF))

 

Wybór certyfikatu po kliknięciu w link „Wygeneruj token”

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!




Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF)

W wersji 2024.0.0 został dodany nowy typ punktu ACD, który służy do współpracy z KSeF„Import dokumentów zakupu z KSeF”.

 

Uwaga

W wersji 2024.0.1 w pliku Web.config w folderze aplikacji serwerowej (dawnej web) dodano klucz add key=”KSeFWorkMode” value=”Demo” /> – klucz umozliwia określenie, czy Firma testuje funkcjonalność wysyłania faktur do KSeF, czy korzysta z niej produkcyjnie.

Klucz może przybierać jedną z następujących wartości:

1.Demowartość domyślna; w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Demo;

2.Production – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie Produkcyjnym, czyli wersji produkcyjnej systemu;

3.Test – w przypadku wprowadzenia takiej wartości praca z systemem KSeF odbywa się w trybie testowym.

W kwestii różnic pomiędzy powyższymi trybami zob. Przełączanie trybu pracy z KSeF

 

Zakładka Tryb współpracy

Aby utworzyć punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” należy w oknie „Automatyczne generowanie dokumentów” dodać nowy punkt konfiguracyjny za pomocą ikony , a następnie na liście trybów pracy punktu wybrać opcję „Import dokumentów zakupu z KSeF” .

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” , zakładka „Tryb współpracy”

 

Zakładka Ogólne

Wygląd zakładki „Ogólne” jest zależny od trybu pracy Comarch BPM (dawniej DMS).

W trybie jednospółkowym na zakładce należy w ramach pola:

  • Nazwa punktuokreślić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
  • Typ obieguwskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSeF.

Jeżeli Comarch BPM (dawniej DMS) pracuje w trybie jednospółkowym, wówczas komunikacja z KSeF odbywa się na podstawie danych (numeru NIP firmy oraz tokena uwierzytelniającego), które zostały podane w ramach zakładki „KSeF” na zakładce [Ustawienia].(zob. Integracje (dawna zakładka „KSeF”)).

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (przed uzupełnieniem, tryb jednofirmowy)

W trybie wielospółkowym na zakładce należy w ramach pola:

  • Nazwa punktuokreślić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
  • Spółkawskazać spółkę, dla której będzie odbywać się komunikacja z KSeF – na podstawie numeru NIP oraz/albo tokenu, które zostały zapisane podczas konfiguracji danej spółki na zakładce „Połączenia z ERP” na zakładce [Ustawienia].(zob. Połączenia z ERP). Zapytania, które są wprowadzane na zakładkach „Lista” oraz „Kontrolki” również są wykonywane w kontekście bazy danej spółki;
  • Typ obieguwskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSEF.

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (przed uzupełnieniem, tryb wielofirmowy)

 

W wersji 2025.0.0 na zakładce „Ogólne” na punkcie konfiguracyjnym punktu ACD typu „Import dokumentów zakupu z KSeF” dodano pole „Nazwy atrybutów na liście dokumentów w punkcie ACD”, w ramach którego dostępne są pola: „Atrybut 1”, Atrybut 2” i „Atrybut 3”.  Nowo dodane pola umożliwiają wprowadzenie dodatkowych informacji opisujących daną fakturę, co pozwala na bardziej szczegółową identyfikację i klasyfikację dokumentów w procesie ich przetwarzania.

W ramach pól „Atrybut 1”, „Atrybut 2” i „Atrybut 3” można zdefiniować maksymalnie 3 nazwy dodatkowych pól (atrybutów), które będą widoczne na liście dokumentów w punkcie ACD jako nazwy kolumn.

Informacje o nazwach atrybutów/kolumn są dostępne w tabeli do.DF_ConfAPDictionary.

Jeśli uprawniony operator nie wprowadzi żadnej nazwy atrybutu, wówczas kolumny z atrybutami nie zostaną utworzone, a na liście dokumentów będzie widoczna tylko jedna kolumna „Dokument”.

Jeżeli operator wprowadzi wartość w jednym z dodatkowych pól (atrybutów), wówczas na liście będzie widoczna jedna dodatkowa kolumna z taką nazwą, jaką wprowadzono w polu; analogicznie, jeśli uzupełniono dwa pola, będą widoczne dwie dodatkowe kolumny.

 

Widok zakładki „Ogólne” na definicji punktu ACD typu „Import dokumentów zakupu z KSeF” z polami atrybutów (z przykładowym uzupełnieniem, tryb jednofirmowy)

 

 

Zakładka Lista

Na zakładce „Lista”, analogicznie do pozostałych trybów pracy punktów konfiguracyjnych, należy za pomocą zapytania SQL określić listę dokumentów, która będzie wyświetlana w oknie ACD po pobraniu plików z KSeF.

 

Uwaga
W wersji 2025.0.0 nastąpiła zmiana zapytania SQL wyświetlającego listę dokumentów (zob. poniższy przykład). Zapytanie można skopiować z sekcji „Przykład”, dostępnej w ramach zakładki „Lista”.

Zapytanie SQL wprowadzone na zakładce „Lista” w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” jest odmienne od zapytań SQL dla innych typów punktów ACD, różni się także od zapytania SQL dotychczas wprowadzanego w ramach punktu ACD typu „Import dokumentów zakupu z KSeF”.

 

Przyklad

Przykład zapytania wyświetlającego listę dokumentów.

BEGIN TRY
select d.KSD_ID, NULL, KSD_NumerFaktury, KSD_Tag1, KSD_Tag2, KSD_Tag3
from do.KS_Documents d 
left join do.KS_WorkAPProcess W on d.KSD_ID = KSW_DocumentID /*tabela przeprocesowanych dokumentów*/ 
left join do.KS_DocumentHeaders dh on d.KSD_ID = dh.KSH_DocumentId
left join do.KS_DocumentContractors dc on d.KSD_ID = dc.KSC_DocumentID
where KSW_APDId=@PointId@ -- id punktu ACD 
and KSW_OperatorID=@IdOperatorBPM@ /*dodatkowy warunek, aby na liście operator widział dokumenty przeprocesowane przez siebie*/
and ((@InvoiceStatus@ = 0 and KSW_Status <> 5 and KSW_Archival = 0) OR (@InvoiceStatus@ = 1 and KSW_Archival = 1) OR
(@InvoiceStatus@ = 2 and KSW_Status = 5) OR @InvoiceStatus@ = 3)
and (nullif(@SearchText@,'') is null OR (@SearchText@ <> '' and KSD_NumerFaktury LIKE '%' + @SearchText@ + '%'))
and (@Nip@ is null OR dc.KSC_PodatnikNIP = @Nip@)
and (@DateFrom@ is null or dh.KSH_DataWytworzeniaFa >= @DateFrom@)
and (@DateTo@ is null or dh.KSH_DataWytworzeniaFa <= @DateTo@)
and (@GrossAmountFrom@ is null or KSD_SumaBrutto >= @GrossAmountFrom@)
and (@GrossAmountTo@ is null or KSD_SumaBrutto <= @GrossAmountTo@)
and (@InvoiceType@ is null or KSD_RodzajFaktury = @InvoiceType@)
END TRY
BEGIN CATCH
DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
THROW 50001, @ErrorMessage ,1; 
END CATCH

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Lista”

 

Można wprowadzić alternatywne wersje zapytania – w takim przypadku, jeśli wyszukiwanie na liście w punkcie ACD ma uwzględniać wszystkie dane, jakie są na niej widoczne, należy analogicznie zmodyfikować także warunki wyszukiwania – np. tak jak w poniższym przykładzie.

 

Przyklad
Przykład zapytania na zakładce Lista, w wyniku którego na liście dokumentów w punkcie ACD:

  • w ramach kolumny „Dokument” oprócz numeru dokumentu wyświetlane są dodatkowe dane: data wystawienia, nazwa kontrahenta i NIP kontrahenta
  • dostępne są kolumny 3 atrybutów (o nazwach określonych na zakładce „Ogólne”)
  • wyszukiwanie odbywa się w zakresie wszystkich czterech kolumn („Dokument” z dodatkowymi informacjami oraz w kolumnach atrybutów)
 BEGIN TRY
    SELECT d.KSD_Id, NULL, KSD_NumerFaktury + ' | ' + CONVERT(varchar, KSD_Datawystawienia, 104) + ' | ' + KSC_PodatnikNazwa + ' | ' + KSC_PodatnikNIP, KSD_Tag1, KSD_Tag2, KSD_Tag3
     from do.KS_Documents d 
     left join do.KS_WorkAPProcess W on d.KSD_ID = KSW_DocumentID  /*tabela przeprocesowanych dokumentów*/ 
     left join do.KS_DocumentHeaders dh on d.KSD_ID = dh.KSH_DocumentId
     left join do.KS_DocumentContractors dc on d.KSD_ID = dc.KSC_DocumentID
     where KSW_APDId=@PointId@ -- id punktu ACD 
     and KSW_OperatorID=@IdOperatorBPM@ /*dodatkowy warunek, aby na liście operator widział dokumenty przeprocesowane przez siebie*/
     and ((@InvoiceStatus@ = 0 and KSW_Status <> 5 and KSW_Archival = 0) OR (@InvoiceStatus@ = 1 and KSW_Archival = 1) OR
         (@InvoiceStatus@ = 2 and KSW_Status = 5) OR @InvoiceStatus@ = 3)
     and (nullif(@SearchText@,'') is null OR (@SearchText@ <> '' and KSD_NumerFaktury + ' | ' +CONVERT(varchar, KSD_Datawystawienia, 104) + ' | ' + KSC_PodatnikNazwa + ' | ' + KSC_PodatnikNIP LIKE '%' + @SearchText@ + '%'))
     OR (@SearchText@ <> '' and KSD_Tag1 LIKE '%' + @SearchText@ + '%') 
     OR (@SearchText@ <> '' and KSD_Tag2 LIKE '%' + @SearchText@ + '%') 
     OR (@SearchText@ <> '' and KSD_Tag3 LIKE '%' + @SearchText@ + '%')
     and (@Nip@ is null OR dc.KSC_PodatnikNIP = @Nip@)
     and (@DateFrom@ is null or dh.KSH_DataWytworzeniaFa >= @DateFrom@)
     and (@DateTo@ is null or dh.KSH_DataWytworzeniaFa <= @DateTo@)
     and (@GrossAmountFrom@ is null or KSD_SumaBrutto >= @GrossAmountFrom@)
     and (@GrossAmountTo@ is null or KSD_SumaBrutto <= @GrossAmountTo@)
     and (@InvoiceType@ is null or KSD_RodzajFaktury = @InvoiceType@)
 END TRY
 BEGIN CATCH
  DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
  THROW 50001,  @ErrorMessage ,1;   
 END CATCH

 

Lista dokumentów w punkcie AC, jeśli zastosowano powyższe zapytanie na zakładce „Lista” – na liście widoczne są: kolumna „Dokument” z dodatkowymi informacjami i  oczekujące na uzupelnienie kolumny atrybutów (Towar, Wartość netto i Wartość brutto)

 

Uwaga
W kolumnach atrybutów znajdują się jedynie wartości tekstowe.

 

Wyszukiwanie po fragmencie tekstu dostępnym w kolumnie „Dokument”

 

Zakładka Kontrolki

Na zakładce „Kontrolki” za pomocą zapytań SQL należy wskazać wartości, które będą wyświetlane w poszczególnych kontrolkach po pobraniu dokumentów z KSeF.

Przykłady zapytań SQL dla faktur pobranych z KSeF są dostępne w artykule: Przykłady zapytań SQL w zakładce Kontrolki dla punktu ACD „Import dokumentów zakupu z KSeF”

Od wersji 2024.3.0 operator może dodawać plik pdf z dokumentem KSeF do kontrolki typu Załącznik. W tym celu powinien w ramach konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” wykonać kolejno następujące czynności:

  • na zakładce „Ogólne” w polu „Typ obiegu” wybrać typ obiegu, w ramach którego znajduje się kontrolka typu Załącznik;
  • na zakładce „Kontrolki” wybrać kontrolkę typu Załącznik i w ramach pola po prawej stronie okna wprowadzić zapytanie SQL – w poniższym przykładzie nazwą pliku będzie nazwa faktury:
Select KSD_SourceContent,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.pdf')

ELSE CONCAT(KSD_NumerFaktury, '.pdf')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

 

Uwaga
W przypadku zastosowania powyższego zapytania jeżeli w nazwie faktury występuje znak /, zostanie zamieniony na _ .

 

Uwaga
Należy pamiętać, że w odróżnieniu od innych zapytań SQL w przypadku wprowadzania zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” konieczne jest dodanie frazy ‘.pdf’, tak, jak przedstawiono w powyższym przykładzie.

 

Wprowadzanie zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF”

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Kontrolki”

 

Od wersji 2025.0.0 w ramach zakładki „Kontrolki” uprawniony operator może zdefiniować zapytanie SQL, które przeniesie dane z wybranego atrybutu na określoną kontrolkę typu Tekst.

 

Uwaga

Zapytania SQL dla poszczególnych atrybutów:

  • Dla pola „Atrybut 1”
select KSD_Tag1 from do.KS_Documents where KSD_ID=@Id1@
  • Dla pola „Atrybut 2”
select KSD_Tag2 from do.KS_Documents where KSD_ID=@Id1@
  • Dla pola „Atrybut 3”
select KSD_Tag3 from do.KS_Documents where KSD_ID=@Id1@

 

Wprowadzanie na zakładce „Kontrolki” zapytania, które przeniesie dane z pola „Atrybut 3” do kontrolki typu Tekst „Forma płatności”

 

W wersji 2025.1.0 umożliwiono zapis pliku XML z KSeF do bazy Comarch BPM (dawniej DMS), tak, aby możliwe było dodanie go w ramach kontrolki typu Załącznik.

W tym celu podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” na zakładce „Kontrolki” należy po lewej stronie okna wybrać kontrolkę typu Załącznik, do której ma zostać dodany plik xml, a następnie po prawej stronie, w ramach edytora wprowadzić następujące zapytanie SQL:

Select KSD_Xml,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.xml')

ELSE CONCAT(KSD_NumerFaktury, '.xml')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

Definicja punktu ACD typu „Import dokumentów zakupu z KSeF”, zakładka „Kontrolki” – wprowadzanie zapytania dla kontrolki typu „Załącznik XML” (Attachment2)

 

Gdy definicja punktu ACD została zapisana, wówczas podpięty plik załącznika XML można zobaczyć w oknie punktu ACD.

 

Punkt ACD typu „Import dokumentów zakupu z KSeF” z widoczną kontrolką „Załącznik XML” (Attachment2) z podpiętym plikiem XML

 

Po wygenerowaniu dokumentu BPM (dawniej DMS) plik XML jest dostępny w ramach kontrolki typu Załącznik wybranej na definicji punktu ACD. Podobnie jak w przypadku innych plików dołączanych do kontrolki typu Załącznik, plik XML można usunąć za pomocą ikony lub zapisać na dysku, klikając w ikonę , a następnie wybierając odpowiednią lokalizację i naciskając „Zapisz”.

 

Dokument wygenerowany z punktu ACD typu „Import dokumentów zakupu z KSeF” z kontrolką „Załącznik XML” z podpiętym plikiem XML

 

Zakładka Uprawnienia

Na zakładce „Uprawnienia” należy wskazać pracowników, którzy będą mogli procesować dokumenty w ramach punktu.

Uprawnienia mogą być dodawane wyłącznie poprzez wskazanie pracowników, nie ma możliwości dodania uprawnień dla pracowników wskazanego działu czy pracowników zajmujących określone stanowisko.

Na zakładce „Uprawnienia” w ramach typu punktu konfiguracyjnego „Import dokumentów zakupu z KSeF” znajduje się także dodatkowa kolumna „Edycja dokumentu”.

Jeśli operator zaznaczy obok danego pracownika checkbox w ramach kolumny „Edycja dokumentu”, wówczas taki pracownik będzie mógł zmieniać wartości w kontrolkach bezpośrednio w punkcie ACD.

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Uprawnienia”, tryb jednospółkowy

 

Punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF”, zakładka „Uprawnienia”, tryb wielospółkowy

 

Uwaga
Dodanie operatora do uprawnień na punkcie konfiguracyjnym skutkuje nadaniem mu uprawnień do zakładki ACD (we właściwościach pracownika, na zakładce „Uprawnienia”, w sekcji „Funkcjonalności” zostaje zmieniona wartość parametr „Automatyczne generowanie dokumentów” na „TAK”)

Na każdej zakładce znajduje się ikona [Eksport], która umożliwia eksportowanie danego punktu ACD do zapisu na dysk (zob. Eksport punktu ACD). Istnieje również możliwość importu punktu konfiguracyjnego typu „Import dokumentów zakupu z KSeF”, podobnie jak w przypadku innych typów punktów ACD.( zob. Import punktu ACD).

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Praca z punktem ACD (pobieranie dokumentów zakupu z KSeF)

Uwaga
W wersji 2025.2.0 umożliwiono pełną automatyzację importowania oraz generowania dokumentów przez punkty ACD typu „Import dokumentów ze skrzynki e-Doręczenia” i „Import dokumentów zakupu z KSeF” – zob. Udostępnienie funkcji RPA (automatycznego trybu pracy) na punktach ACD typu „Import dokumentów ze skrzynki e-Doręczenia” oraz „Import dokumentów zakupu z KSeF”

 

W prawym panelu punktu ACD typu „Import dokumentów zakupu z KSeF” znajduje się przycisk [Import faktur z KSeF], który odpowiada za włączenie importu dokumentów z KSeF.

 

Uwaga
W systemie Comarch BPM (dawniej DMS) integracja z KSeF obejmuje wyłącznie import dokumentów.

 

Widok punktu ACD typu „Import dokumentów zakupu z KSeF”

 

W wersji 2024.3.0 wprowadzono zmiany dotyczące okna „Import faktur z KSeF”, które jest wyświetlane po kliknięciu w przycisk [Import faktur z KSeF]. W ramach okna „Import faktur z KSeF” dostępne są trzy opcje:

  • Nowe – opcja zaznaczona domyślnie; operator powinien zaznaczyć tę opcję, jeśli chce, aby zostały pobrane dane wszystkich faktur zarejestrowanych od czasu ostatniego importu faktur (przyjęte w KSeF w dniu, gdy ostatnio dokonywano importu lub później);

Uwaga
Jeżeli nie pobierano do tej pory żadnych faktur, wówczas po zaznaczeniu tej opcji i kliknięciu w przycisk „Importuj” importowane są dane faktur z bieżącego oraz poprzedniego miesiąca. W ramach tej opcji nie następuje weryfikacja, czy w historii importowania faktur są luki.

  • Za okres Od [dzień.miesiąc.data] Do [dzień.miesiąc.data] – operator powinien zaznaczyć tę opcję, a następnie wybrać daty w polach „Od” i „Do”, jeśli chce, aby zostały pobrane dane faktur przyjętych w KSeF w wybranym okresie; domyślnie w polach wybrana jest aktualna data;

Uwaga
W ramach opcji Za okres Od [dzień.miesiąc.data] Do [dzień.miesiąc.data] konieczny jest wybór wartości zarówno w polu „Od”, jak i „Do”. System sprawdza według numeru KSeF dokumentu, czy pobierane faktury zostały już zaimportowane do bazy Comarch BPM (dawniej DMS).

  • Numer KSeF – operator powinien zaznaczyć tę opcję, jeżeli chce pobrać dane konkretnej faktury przjętej w KSeF. Po zaznaczeniu opcji należy wprowadzić w wyznaczonym polu numer KSeF wybranej faktury;

Uwaga
System sprawdza według numeru KSeF dokumentu, czy dana faktura została już zaimportowana do bazy Comarch BPM (dawniej DMS)

Po wyborze opcji w oknie „Import faktur z KSeF” i ewentualnym wypełnieniu wymaganych pól należy kliknąć w przycisk [Importuj], aby pobrać dane faktur z bazy KSeF do bazy Comarch BPM (dawniej DMS), zgodnie z wybranymi kryteriami.

 

Uwaga
Jeśli autoryzacja przez token zakończy się niepowodzeniem, wówczas podczas próby importu dokumentów z KSeF zostanie wyświetlone okno z certyfikatami, w ramach którego należy wskazać właściwy certyfikat.

 

Jeżeli natomiast operator kliknie w przycisk [Anuluj] w ramach okna „Import faktur z KSeF”, wówczas okno zostanie zamknięte, a dane faktur z KSeF nie zostaną pobrane do Comarch BPM (dawniej DMS).

 

Okno „Import faktur z KSeF”

Kiedy użytkownik kliknie w przycisk [Importuj], wówczas:

  • jeśli przedtem na zakładce „KSeF” (tryb jednofirmowy) lub „Połączenia z ERP” (tryb wielofirmowy) uzupełniono tylko pole „NIP firmy”, a nie uzupełniono pola „Token KSeF” – zostanie otwarte okno „Importowanie dokumentów” oraz okno „Wybierz certyfikat”, w którym należy wybrać certyfikat uwierzytelniający do KSeF. Jeżeli użytkownik nie uzupełni pola „Token KSeF”, wówczas za każdym razem po naciśnięciu przycisku [Importuj] konieczny będzie wybór certyfikatu.

 

Uwaga
Zalecane jest uwierzytelnianie za pomocą tokena.

 

Wybór certyfikatu w oknie „Wybierz certyfikat”

 

  • jeśli przedtem na zakładce „KSeF” (tryb jednofirmowy) lub „Połączenia z ERP” (tryb wielofirmowy) uzupełniono zarówno pole „NIP firmy”, jak również pole „Token KSeF” – zostanie otwarte okno „Importowanie dokumentów”, bez konieczności wyboru certyfikatu

 

Uwaga
Jeśli token, który wprowadzono w polu „Token KSeF” został unieważniony w systemie KSeF, wówczas po kliknięciu przycisku [Importuj] również konieczny jest wybór certyfikatu.

 

W przypadku wyboru niewłaściwego certyfikatu lub wystąpienia innego błędu (zob. rozdział Przykładowe błędy poniżej) pobieranie faktur z KSeF nie będzie możliwe – zostaje wówczas wyświetlony następujący komunikat:

 

Komunikat wyświetlany, jeśli próbowano pobrać faktury z KSeF po wyborze niewłaściwego certyfikatu

 

Dokumenty, które zostały zarejestrowane w Comarch BPM (dawniej DMS), a nie zostały jeszcze wygenerowane do dokumentu Comarch BPM (dawniej DMS), są widoczne na liście dokumentów w prawym panelu.

Nazwy dokumentów KSeF, które nie zostały jeszcze otwarte w danym punkcie ACD, są zaznaczone pogrubioną czcionką na liście dokumentów.

 

Widok punktu ACD typu „Import dokumentów zakupu z KSeF” z nieprzeczytanym dokumentem (FS-30/24)

 

W wersji 2024.3.0 zmieniono dotychczasową nazwę kolumny z listą dokumentów „Numer dokumentu” na „Dokument” i dodano nowe ikony nad listą dokumentów:

[Filtry] – po kliknięciu w tę ikonę wyświetlane jest okno, które pozwala na zdefiniowanie warunków do wyszukiwania dokumentów na liście. W ramach okna dostępne są następujące pola:

    • NIP firmy – w ramach pola można zawęzić pobieranie danych według wprowadzonej wartości NIP; wprowadzoną wartość można wyczyścić, klikając w znak x po prawej stronie pola;
    • Data przyjęcia w KSeF – od – w ramach pola można wybrać datę, zgodnie z którą będzie filtrowana lista dokumentów w punkcie ACD – widoczne będą tylko faktury przyjęte w KSeF od wybranej daty; wprowadzoną wartość można wyczyścić, klikając w znak x po prawej stronie pola;
    • Data przyjęcia w KSeF – do – w ramach pola można wybrać datę, zgodnie z którą będzie filtrowana lista dokumentów w punkcie ACD – widoczne będą tylko faktury przyjęte w KSeF do wybranej daty; wprowadzoną wartość można wyczyścić, klikając w znak x po prawej stronie pola;
    • Wartość brutto [wartość od] [wartość do] – w ramach filtra można wprowadzić zakres wartości brutto faktury, zgodnie z którym nastąpi zawężenie pobieranych danych; dostępne są dwa pola: pierwsze pole od lewej strony, to pole „wartość od”, drugie pole od lewej strony to „wartość do”; operator może wybrać wartość w jednym z pól lub w obu
    • Typ dokumentu – w ramach filtra można wybrać jeden typ dokumentu według którego ma zostać zawężone pobranie danych dokumentów. Dostępne opcje to:
      • faktura VAT
      • faktura uproszczona
      • faktura rozliczeniowa
      • faktura zaliczkowa
      • faktura korygująca
      • faktura korygująca fakturę rozliczeniową
      • korekta faktury zaliczkowej

 

Wprowadzoną wartość można wyczyścić, klikając w znak x po prawej stronie pola.

 

Lista opcji dostępnych w polu „Typ dokumentu”

    • Stan faktury – w ramach filtra można wybrać jeden stan dokumentu, według którego ma zostać zawężone pobranie danych dokumentów. Dostępne opcje to:
    • zarejestrowane w BPM (dawniej DMS) – tzn. wygenerowano wcześniej w Comarch BPM (dawniej DMS) dokumenty o takich samych numerach KSeF i nie zostały one odrzucone w punkcie ACD;
    • niezarejestrowane w BPM (dawniej DMS) – opcja domyślnie zaznaczona; nie wygenerowano wcześniej w Comarch BPM (dawniej DMS) dokumentów o takich samych numerach KSeF i nie zostały one odrzucone w punkcie ACD;
    • odrzucone – dokumenty, które odrzucono na punkcie ACD
    • wszystkie – wszystkie dokumenty: zarejestrowane, niezarejestrowane i odrzucone

Aby uruchomić filtrowanie listy dokumentów według warunków zdefiniowanych w oknie filtry, należy kliknąć w przycisk [Filtruj] – wówczas lista dokumentów w punkcie ACD zostanie zawężona zgodnie z wybranymi wartościami.

 

Okno „Filtry”

 

[Usuń filtry] – jeśli operator kliknie w tę ikonę, wtedy wszystkie warunki wyszukiwania dokumentu, które zdefiniowano w oknie „Filtry” oraz w ramach wyszukiwarki obok przycisku „Szukaj”, zostaną usunięte

 

[Odśwież] – gdy operator kliknie w tę ikonę, wówczas zostanie wyświetlona aktualna lista dokumentów

Operator może również zawęzić listę dokumentów lub wyszukać na niej dokument, wpisując frazę w polu wyszukiwarki nad listą dokumentów, a następnie klikając przycisk [Szukaj], podobnie, jak miało to miejsce w dotychczasowych wersjach.

 

W wersji 2023.0.0 dodano opcję odrzucenia dokumentu w punkcie ACD – w tym celu operator powinien kliknąć prawym przyciskiem myszy na daną pozycję na liście dokumentów w punkcie ACD i kliknąć wyświetlony wówczas przycisk [Odrzuć] – wtedy dokument zniknie z listy dokumentów niezarejestrowanych (jeśli miał taki status) i zostanie zarchiwizowany.

 

Uwaga
Wybór opcji „Odrzuć” jest możliwy tylko dla jednego dokumentu na raz.

 

Odrzucenie dokumentu w punkcie ACD

 

W wersji 2023.0.0 dodano opcję przywrócenia dokumentu w punkcie ACD – w tym celu operator powinien kolejno:

    • Nacisnąć przycisk [Filtry];
    • Zaznaczyć opcję „odrzucone” lub „wszystkie” w ramach pola „Stan faktury”;
    • Nacisnąć przycisk [Filtruj];
    • Na wyświetlonej liście wszystkich dokumentów lub dokumentów odrzuconych kliknąć prawym przyciskiem myszy na daną pozycję i nacisnąć wyświetlony wówczas przycisk [Przywróć] – wtedy dokument zostaje przywrócony i jest widoczny na liście dokumentów niezarejestrowanych (jeśli przedtem miał taki status).

 

Uwaga
Wybór opcji „Przywróć” jest możliwy tylko dla jednego dokumentu na raz.

 

Przywrócenie dokumentu w punkcie ACD

 

Od wersji 2025.0.0 na liście przeprocesowanych dokumentów w zależności od tego, czy i ile nazw atrybutów wprowadzono na zakładce „Ogólne” podczas konfiguracji punktu ACD (0,1,2 lub 3) widoczne jest 1- 4 kolumn.

Aby wprowadzić wartość w dodatkowych kolumnach, należy kliknąć w daną komórkę w wybranej kolumnie i wierszu, a następnie w poszerzonym polu edycji wpisać tekst. Wówczas wprowadzone dane zostaną zapisane w wybranych kontrolkach typu tekst.

 

Widok listy dokumentów w punkcie ACD typu „Import dokumentów zakupu z KSeF”, jeśli na zakładce „Ogólne” uzupełniono pola „Atrybut 1”, „Atrybut 2” i „Atrybut 3” – przed rozpoczęciem pracy w punkcie

 

Widok listy dokumentów w punkcie ACD typu „Import dokumentów zakupu z KSeF”, jeśli na zakładce „Ogólne” uzupełniono pola „Atrybut 1”, „Atrybut 2” i „Atrybut 3” i przeprocesowano dokument – wprowadzanie wartości dla „Atrybutu 3” (w tym przypadku to „Forma płatności”)

 

Widok listy dokumentów w punkcie ACD typu „Import dokumentów zakupu z KSeF”, jeśli na zakładce „Ogólne” uzupełniono pola „Atrybut 1”, „Atrybut 2” i „Atrybut 3” i przeprocesowano dokument – mapowanie danych z atrybutów do kontrolek typu Tekst

 

Jeśli wcześniej wprowadzono wartość atrybutu do tabeli do.KS_Documents, wówczas po przesunięciu kursora na daną komórkę w ramach kolumny atrybutu zostanie wyświetlona pełna wartość komórki.

Kiedy operator kliknie w nazwę danej kolumny, obok niej pojawi się ikona   – w takim przypadku lista jest posortowana w danej kolumnie według wartości rosnąco. Jeżeli operator kliknie ponownie w nazwę kolumny, wówczas obok tej nazwy wyświetlona zostaje ikona   – wtedy lista zostaje posortowana w danej kolumnie według wartości malejąco

Sortowanie dokumentów rosnąco ma miejsce według następującej kolejności:

  • Uszeregowane alfabetycznie;
  • Uszeregowane według kolejności numerycznej (0-9);
  • Uszeregowane według znaków specjalnych.

Sortowanie dokumentów malejąco ma miejsce według następującej kolejności:

  • Uszeregowane według znaków specjalnych;
  • Uszeregowane według kolejności numerycznej (9-0);
  • Uszeregowane alfabetycznie.

 

Jeśli operator przesunie kursor na początek nazwy danej kolumny, wówczas między kolumnami pojawia się ikona dwustronnej strzałki (kolor strzałki jest zależny od ustawień komputera dla wyglądu kursora) – wówczas po kliknięciu lewym przyciskiem myszki można zmieni szerokość kolumny, przeciągając ją w prawo albo w lewo.

 

Po kliknięciu na daną pozycję na liście dokumentów podgląd dokumentu z KSeF zostanie wyświetlony w lewym panelu, a pod nim widoczna będzie lista kontrolek, którą określono w ramach zakładki „Kontrolki” podczas definiowania danego punktu konfiguracyjnego.

Jeśli dany operator nie ma prawa do edycji dokumentu KSeF w punkcie ACD (podczas konfiguracji danego punktu ACD typu „Import dokumentów zakupu z KSeF” w ramach zakładki „Uprawnienia” nie zaznaczono dla niego parametru „Edycja dokumentu”), wówczas kontrolki na danym dokumencie w punkcie ACD są wyszarzone i niedostępne do edycji.

 

Zaznaczanie parametru „Edycja dokumentu” dla operatora „Administrator”

 

Pracujący punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” (gdy użytkownik ma prawo do edycji wartości w kontrolkach)

 

Pracujący punkt konfiguracyjny typu „Import dokumentów zakupu z KSeF” (gdy użytkownik nie ma prawa do edycji wartości w kontrolkach)

 

Po sprawdzeniu danych w kontrolkach i ewentualnym uzupełnieniu wartości należy kliknąć w przycisk [Generuj], aby został utworzony nowy dokument w ramach typu obiegu, który zdefiniowano dla danego punktu ACD.

Istnieje możliwość zatrzymania generowania dokumentów – w tym celu należy kliknąć w przycisk [Zatrzymaj], który znajduje się w oknie „Inicjowanie dokumentów”. Generowanie dokumentów zostanie wówczas przerwane.

 

Okno „Inicjowanie dokumentów” z przyciskiem „Zatrzymaj”

 

 

Dokument, który wygenerowano z punkt konfiguracyjnego typu „Import dokumentów zakupu z KSeF”

 

Jeżeli poprawnie skonfigurowano punkt ACD i zapisano zmiany, wówczas po wygenerowaniu danego dokumentu do Comarch DMS nastąpi automatyczne dodanie załącznika w formacie pdf z fakturą KSeF na tym dokumencie, z nazwą faktury jako nazwą załącznika (zgodnie z nazwą faktury w kolumnie KSD_NumerFaktury w tabeli do.KS_Documents). Po kliknięciu w nazwę załącznika lub automatycznie po otwarciu dokumentu podgląd dokumentu zostanie wyświetlony w oknie po prawej stronie karty obiegu, podobnie jak w przypadku innych załączników.

 

Podgląd pliku pdf z fakturą z KSeF

Przykładowe błędy

Jeśli po kliknięciu w przycisk [Importuj]:

 

  • w ramach okna „Wybierz certyfikat” użytkownik kliknie przycisk [Anuluj] lub znak X w oknie „Wybierz certyfikat”, wówczas okno zostanie zamknięte i wyświetlony zostanie poniższy komunikat:

Komunikat wyświetlany, jeśli nie wybrano certyfikatu

 

  • w ramach okna „Wybierz certyfikat” użytkownik wybrał niewłaściwy certyfikat, wtedy okno zostanie zamknięte i wyświetlony zostanie następujący komunikat:

 

Komunikat wyświetlany, jeśli wybrano niewłaściwy certyfikat

 

  •  przedtem na zakładce „Integracje” (tryb jednofirmowy) lub „Połączenia z ERP” (tryb wielofirmowy) uzupełniono poprawnie pole „Token KSeF”, ale nie uzupełniono pola „NIP firmy”, wówczas pobieranie faktur nie jest możliwe i zostaje wyświetlony następujacy komunikat:

Komunikat wyświetlany, jeśli nie uzupełniono pola „NIP firmy”

 

  • przedtem na zakładce „Integracje” (tryb jednofirmowy) lub „Połączenia z ERP” (tryb wielofirmowy) uzupełniono poprawnie pole „Token KSeF”, ale uzupełniono niepoprawnie pole „NIP firmy”, wówczas pobieranie faktur nie jest możliwe – zostanie wyświetlone okno „Wybierz certyfikat”, a po wyborze właściwego certyfikatu wyświetli się następujący komunikat:

Komunikat wyświetlany, jeśli nie uzupełniono pola „NIP firmy”

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM (dawniej DMS)!

 




Przykłady zapytań SQL w zakładce Kontrolki dla punktu ACD „Import dokumentów zakupu z KSeF”

W ramach zakładki „Kontrolki”  w przypadku typu punktu ACD „Import dokumentów zakupu z KSeF” (zob. Definiowanie punktu konfiguracyjnego (Import dokumentów zakupu z KSeF)) można zastosować szereg zapytań SQL, aby z pliku został zmapowany określony rodzaj danych. Poniżej przedstawiono przykłady takich zapytań:

  • Załącznik – opcja dostępna od wersji 2024.3.0; użytkownik wybiera kontrolkę typu Załącznik, znajdującą się w danym typie obiegu (w poniższym przykładzie nazwą pliku będzie nazwa faktury)
Select KSD_SourceContent,

CASE

WHEN KSD_NumerFaktury LIKE '%/%' THEN CONCAT(REPLACE(KSD_NumerFaktury, '/', '_'), '.pdf')

ELSE CONCAT(KSD_NumerFaktury, '.pdf')

END AS modified_column

from do.KS_Documents

where KSD_ID=@Id1@

 

Uwaga
W przypadku zastosowania powyższego zapytania jeżeli w nazwie faktury występuje znak /, zostanie zamieniony na _ .

 

Uwaga
Należy pamiętać, że w odróżnieniu od innych zapytań SQL w przypadku wprowadzania zapytania dla kontrolki typu Załącznik w ramach zakładki „Kontrolki” podczas konfiguracji punktu ACD typu „Import dokumentów zakupu z KSeF” konieczne jest dodanie frazy ‘.pdf’, tak, jak przedstawiono w powyższym przykładzie.

 

  • Numer dokumentu – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSD_NumerFaktury

from do.KS_Documents

where KSD_ID=@Id1@
  • Data wystawienia – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_DataWystawienia

from do.KS_Documents

where KSD_ID=@Id1@
  • Miejsce wystawienia – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_MiejsceWystawienia

from do.KS_Documents

where KSD_ID=@Id1@
  • Kontrahent – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSC_PodatnikNazwa from do.KS_DocumentContractors p

join do.KS_Documents d on p.KSC_DocumentID=d.KSD_Id

where KSD_Id=@Id1@
  • Kontrahent (dla współpracy z Comarch ERP Optima) – użytkownik wybiera kontrolkę typu Kontrahent, znajdującą się w danym typie obiegu
select top 1 Knt_KntId, Knt_Kod

from [Nazwa_bazy_DMS].[do].[KS_DocumentContractors]

join [Nazwa_bazy_ERPOptima].[cdn].[Kontrahenci] on Knt_Nip = KSC_PodatnikNIP

where KSC_ID=@Id1@
  • Kontrahent (dla współpracy z Comarch ERP XL) – użytkownik wybiera kontrolkę typu Kontrahent, znajdującą się w danym typie obiegu
select top 1 Knt_gidnumer, knt_akronim

from [Nazwa_bazy_DMS].[do].[KS_DocumentContractors]

join [Nazwa_bazy_ERPXL].[cdn].[KntKarty] on Knt_Nip = KSC_PodatnikNIP

where KSC_ID=@Id1@
  • Towar – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
select KSI_ElementNazwa from do.KS_DocumentItems c

join do.KS_Documents d on c.KSI_DocumentID=d.KSD_Id

where KSD_Id=@Id1@
  • Kod waluty – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_KodWaluty

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży objętej stawką 0% w przypadku wewnątrzwspólnotowej dostawy towarów – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNetto0_WDT

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży objętej stawką 0% w przypadku eksportu – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNetto0_Export

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży zwolnionej od podatku – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoZW

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w przypadku dostawy towarów oraz świadczenia usług poza terytorium kraju, z wyłączeniem kwot wykazanych w polach P_13_5 i P_13_9 – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoInna

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości świadczenia usług, o których mowa w art. 100 ust. 1 pkt 4 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoRS

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w procedurze odwrotnego obciążenia, dla której podatnikiem jest nabywca zgodnie z art. 17 ust. 1 pkt 7 i 8 ustawy oraz innych przypadków odwrotnego obciążenia występujących w obrocie krajowym – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoOOKraj

from do.KS_Documents

where KSD_ID=@Id1@
  • Suma wartości sprzedaży w procedurze marży, o której mowa w art. 119 i art. 120 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaNettoMarza

from do.KS_Documents

where KSD_ID=@Id1@
  • Kwota należności ogółem – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_SumaBrutto

from do.KS_Documents

where KSD_ID=@Id1@
  • Kurs waluty stosowany do wyliczenia kwoty podatku w przypadkach, o których mowa w przepisach Działu VI ustawy na fakturach, o których mowa w art. 106b ust. 1 pkt 4 ustawy – użytkownik wybiera kontrolkę typu Liczba stałoprzecinkowa, znajdującą się w danym typie obiegu
Select KSD_KursWalutyZ

from do.KS_Documents

where KSD_ID=@Id1@
  • Przepis ustawy albo aktu wydanego na podstawie ustawy, na podstawie którego podatnik stosuje zwolnienie od podatku – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWUstawa

from do.KS_Documents

where KSD_ID=@Id1@
  • Przepis dyrektywy 2006/112/WE, który zwalnia od podatku taką dostawę towarów lub takie świadczenie usług – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWDyrektywa

from do.KS_Documents

where KSD_ID=@Id1@
  • Inna podstawa prawna wskazująca na to, że dostawa towarów lub świadczenie usług korzysta ze zwolnienia – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_SprzedazZWPodstawa

from do.KS_Documents

where KSD_ID=@Id1@
  • Data dopuszczenia nowego środka transportu do użytku – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_NSTWDT

from do.KS_Documents

where KSD_ID=@Id1@
  • Dane dla przypadków, gdy pole RodzajFaktury przyjmuje wartości KOR, KOR_ZAL lub KOR_ROZ – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_RodzajFaktury

from do.KS_Documents

where KSD_ID=@Id1@
  • Przyczyna korekty dla faktur korygujących – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_PrzyczynaKorekty

from do.KS_Documents

where KSD_ID=@Id1@
  • Data wystawienia faktury korygowanej – użytkownik wybiera kontrolkę typu Data i godzina, znajdującą się w danym typie obiegu
Select KSD_DataWystFaKorygowanej
from do.KS_Documents
where KSD_ID=@Id1@

 

  • Numer faktury korygowanej – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Numer identyfikujący fakturę korygowaną w Krajowym Systemie e-Faktur (KSeF) – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrKSeFFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Dla faktury korygującej – okres, do którego odnosi się udzielany opust lub obniżka, w przypadku gdy podatnik udziela opustu lub obniżki ceny w odniesieniu do wszystkich dostaw towarów lub usług dokonanych lub świadczonych na rzecz jednego odbiorcy w danym okresie – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_OkresFaKorygowanej

from do.KS_Documents

where KSD_ID=@Id1@
  • Poprawny numer faktury korygowanej w przypadku, gdy przyczyną korekty jest błędny numer faktury korygowanej – użytkownik wybiera kontrolkę typu Tekst, znajdującą się w danym typie obiegu
Select KSD_NrFaKorygowany

from do.KS_Documents

where KSD_ID=@Id1@



Udostępnienie funkcji RPA (automatycznego trybu pracy) na punktach ACD typu „Import dokumentów ze skrzynki e-Doręczenia” oraz „Import dokumentów zakupu z KSeF”

W wersji 2025.2.0 umożliwiono pełną automatyzację importowania oraz generowania dokumentów przez punkty ACD typu „Import dokumentów ze skrzynki e-Doręczenia” i „Import dokumentów zakupu z KSeF”.

Wprowadzono również możliwość ustawiania filtrów dla punktów ACD typu „Import dokumentów zakupu z KSeF” w konfiguracji automatycznego trybu pracy.

Aby umożliwić wykonywanie działań na wskazanych punktach ACd, wprowadzono nowe metody w obiekcie Globals w klasie ACD, która określa metody wykonywane jedynie w kontekście okna ACD – są to następujące metody:

  • ImportEDorMessages() – metoda do automatycznej obsługi pobierania nowych wiadomości z usługi e-Doręczenia – ta metoda:
    • Nie posiada parametrów wejściowych
    • Zwraca wyniki:
      • 0 – jeśli operacja wykonała się poprawnie
      • -1- jeśli wystąpił błąd
    • int ImportMessages()

return: 0 – ok, -1 – error

 

Widok okna „Konfiguracji automatycznego trybu” z przykładowym skryptem do automatycznego pobierania wiadomości z usługi E-Doręczenia i generowania dokumentów BPM (gdy punkt ACD współpracujący z usługą E-Doręczenia nosi nazwę „E-Doręczenia”) – przykład

 

  • ImportKSeFDocuments() – metoda do automatycznej obsługi pobierania nowych dokumentów z usługi KSeF – ta metoda:
    • Nie posiada parametrów wejściowych
    • Zwraca wyniki:
      • 0 – jeśli operacja wykonała się poprawnie
      • -1- jeśli wystąpił błąd
    • int ImportKSeFDocuments()

return: 0 – ok, -1 – error

 

Widok okna „Konfiguracji automatycznego trybu” z przykładowym skryptem do automatycznego pobierania dokumentów z KSeF i generowania dokumentów BPM (gdy punkt ACD współpracujący z KSeF nosi nazwę „Faktury KSeF”) – przykład

  • SetKSeFFilters(string, DateTime?,DateTime?, decimal?, decimal?, byte?, byte) – metoda służąca do ustawiania filtrów dla punktów ACD typu „Import dokumentów zakupu z KSeF” według określonych kryteriów. Uruchomienie metody powoduje przeładowanie listy dokumentów przy uwzględnieniu nowych wartości filtrów. Ta metoda:
    • Posiada parametry wejściowe – podanie wszystkich parametrów nie jest wymagane:
      • string – NIP firmy
      • DateTime? – Data przyjęcia dw KSeF- od
      • DateTime? – Data przyjęcia dw KSeF- do
      • decimal? – Wartość brutto – od
      • decimal? – Wartość brutto – do
      • byte? – Typ dokumentu
      • byte – Stan faktury
    • Zwraca wyniki:
      • 0 – jeśli operacja wykonała się poprawnie
      • -1- jeśli wystąpił błąd
    • int SetKSeFFilters(string, string?, string?, decimal?,decimal?, byte?, byte)

string: KSeF NIP

DateTime?: KSeF date from

DateTime?: KSeF date to

decimal?: KSeF gross amount from

decimal?: KSeF gross amount value to

byte?: 0 – VAT invoice, 1 – corrective invoice, 2 – advance invoice, 3 – settlement invoice, 4 – simplified                               invoice,  5 – correction of advance invoice, 6 – corrective settlement invoice

byte: 0 – unregistered, 1 – rejected, 2 – registered, 3 – all

return: 0 – ok, -1 – error

 

Widok okna „Konfiguracji automatycznego trybu” z przykładowym skryptem do automatycznego pobierania dokumentów z KSeF, filtrowania ich i generowania dokumentów BPM (gdy punkt ACD współpracujący z KSeF nosi nazwę „Faktury KSeF”) – przykład

 

  • ResetKSeFFilters() – metoda służąca do resetowania filtrów dla punktów ACD typu „Import dokumentów zakupu z KSeF”. Domyślne ustawienia to brak filtrów: NIP firmy, Data przyjęcia w KSeF – od, Data przyjęcia w KSeF – do, Wartość brutto – od, Wartość brutto – do Typ dokumentu. Filtr Stan faktury jest ustawiony na faktury niezarejestrowane w Comarch BPM. Ta metoda:
    • Nie posiada parametrów wejściowych
    • Zwraca wyniki:
      • 0 – jeśli operacja wykonała się poprawnie
      • -1- jeśli wystąpił błąd
    • int ResetKSeFFilters()

return: 0 – ok, -1 – error

 

Widok okna „Konfiguracji automatycznego trybu” z przykładowym skryptem do automatycznego pobierania dokumentów z KSeF, resetu filtrów i generowania dokumentów BPM (gdy punkt ACD współpracujący z KSeF nosi nazwę „Faktury KSeF”) – przykład

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 




Przenoszenie danych KSeF we współpracy z Comarch ERP Optima

Od wersji 2025.2.0 podczas generowania dokumentów FZ i FZV do Comarch ERP Optima można przenosić na dokumenty dane dotyczące KSeF (numery i daty).

W ramach definicji obiegu OptimaInvoiceGeneration.workflow dostępnej wraz z generatorem faktur zakupowych do Comarch ERP Optima dodano:

  • kontrolkę typu Własna akcja „Sprawdź numer KSeF” (identyfikator: Sprawdz_numer_KSeF), która zawiera procedurę ERP, dzięki której możliwa jest weryfikacja, czy dokument z danym numerem KSeF w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP Optima;

 

Definicja kontrolki „Sprawdź numer KSeF”

 

  • kontrolkę typu Komunikat (identyfikator: Msg2), która odpowiada za wyświetlenie komunikatu „Dokument o numerze KSeF [numer] znajduje się już w Comarch ERP Optima” – jeśli dokument o numerze znajdującym się w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP Optima

 

Definicja kontrolki typu Komunikat (identyfikator:Msg2)

 

  • kontrolkę typu Tekst „Status KSeF w Optimie” (identyfikator: StatusKSeFOptima), która zawiera informację zależną od wyniku weryfikacji za pomocą kontrolki „Sprawdź numer KSeF” – jeśli dokument znajduje się w Comarch ERP Optima, w kontrolce „Status KSeF w Optimie” widnieje napis „Dokument o takim numerze istnieje już w ERP”, jeśli zaś nie – „Dokument o takim numerze nie istnieje w ERP”.

 

Definicja kontrolki „Status KSeF w Optimie”

 

Nowe kontrolki na dokumencie, który ma zostać wygenerowany do Comarch ERP Optima jako faktura zakupu

 

W ramach definicji obiegów:

  • OptimaVatRegisterGeneration.workflow dostępnego wraz z generatorem dokumentów do rejestru VAT Comarch ERP Optima
  • OptimaVatRegisterGenerationAndAnalyticalDescription.workflow dostępnego wraz z generatorem dokumentów i opisu analitycznego do rejestru VAT Comarch ERP Optima

dodano następujące kontrolki, z których dane przekazywane są przez generator dokumentów Rejestr VAT do Comarch ERP Optima:

  • kontrolkę typu Data „Data przyjęcia KSeF” (identyfikator: DataKSeF)
  • kontrolkę typu Tekst „Numer KSeF” (identyfikator: NumerKSeF).

Dla tych kontrolek wprowadzono także odpowiednie klucze w pliku OptimaVatRegisterGenerator.exe.config (<add key=”KSeFNumberControl” value=”NumerKSeF” /> oraz <add key=”KSeFReceiptDateControl” value=”DataKSeF” />).

Kontrolki: „Data przyjęcia KSeF” „Numer KSeF” nie są wymagane do wygenerowania dokumentu w Comarch ERP Optima.

Dodatkowo na definicjach obiegów: OptimaVatRegisterGeneration.workflow i OptimaVatRegisterGenerationAndAnalyticalDescription.workflow wprowadzono następujące zmiany:

  • dodano kontrolkę typu Własna akcja z procedurą ERP akcja „Sprawdź numer KSeF” (identyfikator: Sprawdz_numer_KSeF), która sprawdza, czy dokument z danym numerem KSeF w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP Optima
  • dodano kontrolkę typu Komunikat (identyfikator: Msg2), która odpowiada za wyświetlenie komunikatu „Dokument o numerze KSeF [numer] znajduje się już w Comarch ERP Optima” – jeśli dokument o numerze znajdującym się w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP Optima
  • dodano kontrolkę typu Tekst „Status KSeF w Optimie” (identyfikator: StatusKSeFOptima), która zawiera informację zależną od wyniku weryfikacji za pomocą kontrolki „Sprawdź numer KSeF” – jeśli dokument znajduje się w Comarch ERP Optima, w kontrolce „Status KSeF w Optimie” widnieje napis „Dokument o takim numerze istnieje już w ERP”, jeśli zaś nie – „Dokument o takim numerze nie istnieje w ERP”.

 

Nowe kontrolki na dokumencie, który ma zostać wygenerowany do rejestru VAT




Przenoszenie danych KSeF we współpracy z Comarch ERP XL

Od wersji 2025.2.0 podczas generowania dokumentów Faktura zakupu FZ, (A) Faktura zakupu (A)FZ i (A) Faktura zakupu uproszczona do Comarch ERP XL można przenosić na dokumenty dane dotyczące KSeF (numery i daty).

 

Dodanie nowych pól w ramach kontrolki typu Dokument ERP XL

W wersji 2025.2.0 w przypadku, gdy na definicji kontrolki typu Dokument ERP XL na zakładce „Dokument ERP XL” w polu „Typ” wybrano jeden z poniższych typów dokumentów:

  • Faktura zakupu
  • (A)Faktura zakupu
  • (A)Faktura zakupu uproszczona

wówczas w ramach nagłówka dokumentu zostaną dodane pola: „Numer KSeF” i „Data KSeF” – operator może ręcznie wypełnić pola lub zmapować wartości, może również modyfikować wartości, jeśli kontrolka nie jest w trybie tylko do odczytu.

 

Uwaga
Jeżeli dokument jest dowiązywany z systemu Comarch ERP XL, wówczas nowe pola „Numer KSeF” i „Data przyjęcia KSeF” będą w trybie tylko do odczytu, podobnie jak pozostałe pola dostępne w ramach kontrolki.

 

Pola „Numer KSeF” i „Data KSeF” zostały również dodane na definicji kontrolki typu Dokument ERP XL dla trzech wspomnianych typów dokumentów, na zakładce „Wartości mapowane”, w sekcji „Nagłówek” – operator może wybrać: dla pola „Numer KSeF” kontrolkę typu Tekst, z której ma zostać zmapowany numer oraz dla pola „Data KSeF” – kontrolkę typu Data i godzina, z której wartość ma zostać zmapowana. Mapowanie tych wartości nie jest konieczne, aby zapisać dokument i wygenerować dokument ERP XL.

 

Widok zakładki „Wartości mapowane” w sekcji „Nagłówek” na definicji kontrolki typu Dokument ERP XL, gdy wybrano typ „Faktura zakupu” – widoczne są nowe pola „Numer KSeF” i „Data KSeF”, dla których wybrano kontrolki, które mają zostać zmapowane

 

Formatka dokumentu ERP XL – zaznaczono nowe pola z przykładowymi wartościami

 

Nowe pola „Numer KSeF” i „Data KSeF” zostały również wprowadzone w aplikacji web oraz w aplikacjach mobilnych.

W ramach definicji predefiniowanych obiegów:

  • Faktura kosztowa (Nagłówek);
  • Faktura kosztowa (Elementy);
  • Faktura kosztowa (Waluty)

dodano:

  • kontrolkę typu Tekst „Numer KSeF” (identyfikator: NumerKSeF) – w ramach kontrolki można wprowadzić numer KSeF; zostanie on przekazany do Comarch ERP XL do kolumny KSF_Numer w tabeli KSeFDokumenty; wypełnienie kontrolki nie jest obowiązkowe do wygenerowania dokumentu ERP XL;
  • kontrolkę typu Data i godzina „Data przyjęcia KSeF” (identyfikator: DataKSeF) – w ramach kontrolki można wybrać date przyjęcia faktury KSeF; zostanie ona przekazany do Comarch ERP XL do kolumny KSF_TStampPrzyjecia w tabeli KSeFDokumenty; wypełnienie kontrolki nie jest obowiązkowe do wygenerowania dokumentu ERP XL;
  • kontrolkę typu Własna akcja „Sprawdź numer KSeF” (identyfikator: Sprawdz_numer_KSeF), która zawiera procedurę ERP, dzięki której możliwa jest weryfikacja, czy dokument z danym numerem KSeF w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP XL;

 

Definicja kontrolki „Sprawdź numer KSeF”

 

  • kontrolkę typu Komunikat (identyfikator: Msg2), która odpowiada za wyświetlenie komunikatu „Dokument o numerze KSeF [numer] znajduje się już w Comarch ERP XL” – jeśli dokument o numerze znajdującym się w kontrolce „Numer KSeF” (identyfikator: NumerKSeF) jest już w Comarch ERP XL

 

Definicja kontrolki typu Komunikat (identyfikator:Msg2)

 

  • kontrolkę typu Tekst „Status KSeF w ERP XL” (identyfikator: StatusKSeFXL), która zawiera informację zależną od wyniku weryfikacji za pomocą kontrolki „Sprawdź numer KSeF” – jeśli dokument znajduje się w Comarch ERP XL, w kontrolce „Status KSeF w ERP XL” widnieje napis „Dokument o takim numerze istnieje już w ERP”, jeśli zaś nie – „Dokument o takim numerze nie istnieje w ERP”.

 

Definicja kontrolki „Status KSeF w ERP XL”

 

Sekcja „KSeF” w ramach predefiniowanego obiegu „Faktura kosztowa (Elementy)” – gdy za pomocą kontrolki „Sprawdź numer KSeF” stwierdzono, że danego dokumentu nie ma w Comarch ERP XL

 

Sekcja „KSeF” w ramach predefiniowanego obiegu „Faktura kosztowa (Elementy)” wraz z komunikatem – gdy za pomocą kontrolki „Sprawdź numer KSeF” stwierdzono, że dany dokument znajduje się w Comarch ERP XL

 

Mapowanie danych do nowych kontrolek w predefiniowanych typach obiegów

Jeśli operator chce przenieść numer i datę faktury zakupu KSeF na dokument Comarch BPM w ramach punktu ACD typu „Import dokumentów zakupu z KSeF”, wówczas powinien na definicji punktu ACd, na zakładce „Kontrolki” wprowadzić następujące zapytania:

  • Dla kontrolki „Numer KSeF”:

 

select isnull (KSH_NumerReferencyjnyKSeF, ' ')

from do.KS_DocumentHeaders

join do.KS_Documents on ksd_id=KSH_DocumentId

where KSD_ID=@Id1@

 

Wprowadzanie zapytania SQL dla kontrolki „Numer KSeF”

 

  • Dla kontrolki „Data przyjęcia KSeF”:

 

select isnull (KSH_DataWytworzeniaFa, ' ')

from do.KS_DocumentHeaders

join do.KS_Documents on ksd_id=KSH_DocumentId

where KSD_ID=@Id1@

 

Wprowadzanie zapytania SQL dla kontrolki „Data przyjęcia KSeF”




Czy wiesz, że można wypełnić kontrolkę typu Dane Tabelaryczne pozycjami dokumentu pobranego z KSeF oraz przeliczyć wartości przy współpracy z Comarch ERP XL?

Zastosowanie

Dzięki zastosowaniu tej zintegrowanej konfiguracji, proces obiegu faktur kosztowych w Comarch BPM zyskuje pełną automatyzację i spójność danych. Dane są pobierane bezpośrednio z systemu KSeF (poprzez BPM), a kontrolka tabelaryczna jest automatycznie wypełniana.

Głównym celem jest:

  • Eliminacja ręcznego wprowadzania pozycji dokumentów: Dane z faktury KSeF (pobrane do tabeli do.KS_DocumentItems) są automatycznie mapowane i wypełniają kontrolkę tabelaryczną na karcie obiegu.
  • Automatyczne kalkulowanie wartości: Kontrolka tabelaryczna uzyskuje zdolność automatycznego przeliczania wszędzie tam, gdzie zmienione zostaną dane wejściowe (np. Cena, Ilość, Stawka VAT) przez użytkownika.
  • Minimalizacja błędów i skrócenie czasu obsługi faktury: Proces akceptacji bazuje na poprawnych i spójnych danych, które są automatycznie kalkulowane i aktualizowane, zanim dokument zostanie zaksięgowany w ERP XL.

 

Zawartość przykładu

  • Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu dokumentu kosztowego z krokami akceptacji, konfiguracją kontrolki Dane tabelaryczne i wygenerowaniem dokumentu do Comarch ERPXL
  • Punkt konfiguracyjny ACD: Wzorcowa konfiguracja, która jest odpowiedzialna za pobranie ID dokumentu KSeF, Załącznika oraz wszystkich kluczowych danych nagłówkowych (Numer dokumentu, Kontrahent, Data zakupu, Data wystawienia, Data wpływu Termin płatności, Forma płatności, Waluta, Wartość Netto, Wartość Brutto, Numer KSeF) oraz inicjację dokumentu obiegowego. W przypadku kontrolki Kontrahent w zapytaniu przed nazwą tabeli CDN.KntKarty należy wskazać właściwą nazwę bazy Comarch ERXL.

 

Kliknij tutaj, aby pobrać przykład

 

Zasada działania

Mechanizm opiera się na dwóch trybach działania zintegrowanych w jednej kontrolce Dane Tabelaryczne (Elementy), wykorzystując dane z bazy Comarch BPM, które zostały zapisane po przetworzeniu faktury z KSeF w punkcie ACD.

  • Konfiguracja wykorzystuje ID dokumentu KSeF (zapisane w dedykowanej kontrolce typu Liczba całkowita o nazwie np. ID_KSeF) jako identyfikator do pobrania danych.
  • Kontrolka tabelaryczna obserwuje to pole (ID_KSeF), reagując na jego wypełnienie.
  • Kluczowym elementem jest zapytanie SQL umieszczone na zakładce Inicjowanie Wartości kontrolki typu dane tabelarycznej.
  • Zapytanie jest filtrowane za pomocą parametru @ID_KSeF@, dzięki czemu pobiera ono wiersze z właściwego dokumentu KSeF z tabeli do.KS_DocumentItems w bazie BPM.
  • W zapytaniu SQL zawarta jest niezbędna logika konwersji (CTE z ROW_NUMBER), która mapuje stawki VAT z KSeF na identyfikatory liczbowe (Naz_GIDLp) z tabeli CDN.Nazwy, których BPM wymaga do poprawnego wyświetlania danych w kolumnie typu Lista (Stawka VAT).
  • Dodatkowo, kontrolka Dane Tabelaryczne (Elementy) obserwuje sama siebie (@^SenderControlName@ = ’Elementy’), co aktywuje logikę automatycznego przeliczania wartości w trybie edycji:
  • Zapytanie monitoruje zmiany w kolumnach wejściowych, takich jak Cena lub Ilość (oraz Stawka VAT).
  • W przypadku edycji tych pól, skrypt automatycznie pobiera stawkę VAT, a następnie przelicza i aktualizuje wartości Netto (Ilość * Cena) oraz Brutto (Netto * (1 + VAT)) w bieżącym wierszu.

 

Konfiguracja przykładu

1. Utworzono kontrolkę ID_KSeF: Na karcie obiegu dodano kontrolkę typu Liczba całkowita o nazwie (identyfikatorze) ID_KSeF, do której będzie zapisywane ID dokumentu KSeF.

 

Kontrolka Liczba całkowita ID_KSeF

 

2. Utworzono kontrolkę Tabelaryczną: Dodano kontrolkę typu Dane tabelaryczne o nazwie (identyfikatorze) Elementy i skonfigurowano w niej następujące kolumny:

  • ”Nazwa” (identyfikator kolumny: Nazwa) typ Tekst
  • ”Cena” (identyfikator kolumny: Cena)typ Liczba stałoprzecinkowa
  • ”Ilość” (identyfikator kolumny: Ilosc) typ Liczba stałoprzecinkowa
  • ”Netto” (identyfikator kolumny: Netto)typ Liczba stałoprzecinkowa
  • ”Stawka VAT” (identyfikator kolumny: StawkaVAT)typ Lista
  • ”Brutto” (identyfikator kolumny: Brutto)typ Liczba stałoprzecinkowa

 

Kolumny w kontrolce typu Dane tabelaryczne

 

3. W kontrolce typu Dane tabelaryczne o nazwie (identyfikatorze) Elementy na zakładce Listy zdefiniowano zapytanie pobierające:

 

  • Stawki VAT:
 select Naz_gidLp as Id,  
 CASE  
  WHEN Naz_Nazwa='A 23.00' THEN '23%' 
  WHEN Naz_Nazwa='B 8.00' THEN '8%' 
  WHEN Naz_Nazwa='C 0.00' THEN '0%' 
  WHEN Naz_Nazwa='D 0.00' THEN 'ZW' 
  WHEN Naz_Nazwa='E 0.00' THEN 'NP' 
  WHEN Naz_Nazwa='F 7.00' THEN '7%' 
  WHEN Naz_Nazwa='G 5.00' THEN '5%' 
 END  
 from CDN.Nazwy  
 where Naz_GIDTyp = 624  AND trim(substring(Naz_Nazwa,9,2))=''

 

Lista Stawka VAT w kontrolce typu Dane tabelaryczne

 

  • Jednostki miary:

 

SELECT Naz_GIDLp,Naz_Nazwa from cdn.Nazwy where Naz_GIDTyp=144;

 

Lista Jednostka miary w kontrolce typu Dane tabelaryczne

 

4. Dodano obserwację kontrolki: W kontrolce Dane tabelaryczne, na zakładce Inicjowanie wartości, dodano powiązanie do kontrolki ID_KSeF oraz do samej siebie.

 

Dane tabelaryczna, zakładka Inicjowanie wartości

 

5. Dodano zapytanie SQL: W kontrolce Dane tabelaryczne, na zakładce Inicjowanie wartości w sekcji Wzór na wartość SQL ERP dodano zapytanie, które pobiera dane z tabel do.KS_DocumentItems na podstawie przekazanego parametru @ID_KSeF@ (ID dokumentu KSeF).

W zapytaniu SQL konieczne jest użycie logiki CASE WHEN do konwersji wartości pola KSI_ElementStawkaVAT (np. 'Stawka23′, 'zw’) na ujednolicony klucz, który następnie jest mapowany na identyfikatory liczbowe (Naz_GIDLp) stawek VAT z tabeli CDN.Nazwy z bazy XL. Logika CTE z ROW_NUMBER() zapewnia unikalność mapowanych ID.

 

Uwaga
 W zapytaniu przed nazwą tabeli do.KS_DocumentItems należy wskazać właściwą nazwę bazy Comarch BPM.

 

  • Ta sekcja jest wywoływana tylko raz, podczas inicjowania obiegu:

 

IF @^SenderControlName@ = 'ID_KSeF' /*Identyfikator kontrolki do której pobierane jest ID dokumentu KSeF */

BEGIN

/* Tryb 1: Inicjowanie wierszy z dokumentu KSeF */

WITH ProcessedDocumentItems AS (

/* CTE 1: Ujednolicenie stawek VAT, tabela KSI_ElementStawkaVAT */

SELECT

KSI_ElementNazwa,

KSI_ElementCenaNetto,

KSI_ElementIlosc,

KSI_ElementWartoscNetto,

KSI_ElementStawkaVAT,

CASE

WHEN di.KSI_ElementStawkaVAT LIKE 'Stawka%' THEN LTRIM(RTRIM(SUBSTRING(di.KSI_ElementStawkaVAT, 7, LEN(di.KSI_ElementStawkaVAT) - 6)))

WHEN di.KSI_ElementStawkaVAT = 'zw' THEN 'ZW'

WHEN di.KSI_ElementStawkaVAT = 'np' THEN 'NP'

ELSE di.KSI_ElementStawkaVAT

END AS StandardizedStawkaVAT

FROM

[BAZA_BPM].do.KS_DocumentItems AS di /*Należy wskazać nazwę bazy BPM*/

WHERE KSI_DocumentId = @ID_KSeF@ /*Identyfikator kontrolki liczba całkowita, do której pobierane jest ID dokumentu KSeF*/

),

ProcessedNazwyRanked AS (

/* CTE 2: Porządkowanie stawek VAT z tabeli słownikowej (CDN.Nazwy), w celu zapewnienia unikalności */

SELECT

Naz_GIDLp,

Naz_Nazwa1,

CASE

WHEN LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%ZW%' THEN 'ZW'

WHEN LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%NP%' THEN 'NP'

WHEN CHARINDEX(' ', LTRIM(RTRIM(n.Naz_Nazwa1))) > 0 THEN LTRIM(RTRIM(SUBSTRING(n.Naz_Nazwa1, 1, CHARINDEX(' ', n.Naz_Nazwa1) - 1)))

ELSE LTRIM(RTRIM(n.Naz_Nazwa1))

END AS StandardizedNazwa1_ForJoin,

CASE

WHEN LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%ZW%' OR LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%NP%' THEN 0.00

WHEN ISNUMERIC(

CASE

WHEN CHARINDEX(' ', LTRIM(RTRIM(n.Naz_Nazwa1))) > 0 THEN LTRIM(RTRIM(SUBSTRING(n.Naz_Nazwa1, 1, CHARINDEX(' ', n.Naz_Nazwa1) - 1)))

ELSE LTRIM(RTRIM(n.Naz_Nazwa1))

END

) = 1 THEN CAST(

CASE

WHEN CHARINDEX(' ', LTRIM(RTRIM(n.Naz_Nazwa1))) > 0 THEN LTRIM(RTRIM(SUBSTRING(n.Naz_Nazwa1, 1, CHARINDEX(' ', n.Naz_Nazwa1) - 1)))

ELSE LTRIM(RTRIM(n.Naz_Nazwa1))

END

AS DECIMAL(5, 2)) / 100.0

ELSE 0.00

END AS CalculatedVATRate,

/* Numerujemy rekordy dla tego samego klucza łączenia. */

ROW_NUMBER() OVER (PARTITION BY

CASE

WHEN LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%ZW%' THEN 'ZW'

WHEN LTRIM(RTRIM(n.Naz_Nazwa1)) LIKE '%NP%' THEN 'NP'

WHEN CHARINDEX(' ', LTRIM(RTRIM(n.Naz_Nazwa1))) > 0 THEN LTRIM(RTRIM(SUBSTRING(n.Naz_Nazwa1, 1, CHARINDEX(' ', n.Naz_Nazwa1) - 1)))

ELSE LTRIM(RTRIM(n.Naz_Nazwa1))

END

ORDER BY n.Naz_GIDLp ASC) as RN

FROM

CDN.Nazwy AS n

WHERE Naz_GIDTyp = 624

),

ProcessedNazwy AS (

/* CTE 3: Finalne, unikalne stawki */

SELECT

Naz_GIDLp,

StandardizedNazwa1_ForJoin,

CalculatedVATRate

FROM

ProcessedNazwyRanked

WHERE RN = 1 /* Wybieramy tylko jeden (pierwszy) rekord dla każdej unikalnej stawki */

)

/* Końcowy SELECT: Zwraca żądany zestaw kolumn */

SELECT

pi.KSI_ElementNazwa,

pi.KSI_ElementCenaNetto,

pi.KSI_ElementIlosc,

pi.KSI_ElementWartoscNetto,

pn.Naz_GIDLp AS 'stawka VAT', /* ID stawki z drugiej tabeli */

pi.KSI_ElementWartoscNetto * (1 + pn.CalculatedVATRate) AS 'Wartość brutto',

NULL AS 'NULL'

FROM

ProcessedDocumentItems AS pi

JOIN

ProcessedNazwy AS pn

ON

pi.StandardizedStawkaVAT = pn.StandardizedNazwa1_ForJoin;

END

 

  • Ta sekcja jest wywoływana przy każdej modyfikacji danych w kontrolce „Elementy” i wymaga użycia ELSE po sekcji KSeF:

 

ELSE

IF @^SenderControlName@ = 'Elementy' /*Identyfikator kontrolki Dane tabelaryczne*/

BEGIN

/* Tryb 2: Automatyczne przeliczanie wartości w trybie edycji */

/* Kolumny 2-Cena, 3-Ilość, 5-Stawka VAT */

IF @Elementy_Column@=2 OR @Elementy_Column@=3 OR @Elementy_Column@=5

BEGIN

DECLARE @VAT as decimal (4,2)

/* Pobranie stawki VAT z tabeli słownikowej */

SELECT @VAT=CAST(SUBSTRING (Naz_Nazwa1, 0, CHARINDEX (' ', Naz_Nazwa1)) as decimal (4,2))/100

FROM CDN.Nazwy

WHERE Naz_GIDTyp=624 AND Naz_GIDLp=

(SELECT [Stawka VAT]

FROM @Elementy@

WHERE POS=@Elementy_Row@)

UPDATE @Elementy@

/* Aktualizacja wartości Netto */

SET [Netto] = (Ilosc * Cena),

/* Aktualizacja wartości Brutto */

[Brutto] = (Ilosc * Cena) * (@VAT + 1)

WHERE POS=@Elementy_Row@

/* Zwrócenie zaktualizowanej tabeli - Obowiązkowy select */

SELECT * FROM @Elementy@

END

END

 

Zapytanie SQL w kontrolce typu Dane tabelaryczne na zakładce Inicjowanie wartości

 

Kolumna Netto i Brutto w trybie „Do odczytu”

 

6. Utworzono kontrolkę liczbową: Dodano kontrolkę typu Liczba stałoprzecinkowa o nazwie (identyfikatorze) WartoscNetto, w której dodano powiązanie do kontrolki Elementy i skonfigurowano w niej zapytanie, które zlicza wartość z kolumny Netto z kontrolki tabelarycznej:

 

select sum (Netto) from  @Elementy@

 

Kontrolka Liczbowa WartoscNetto

 

7. Utworzono kontrolkę liczbową: Dodano kontrolkę typu Liczba stałoprzecinkowa o nazwie (identyfikatorze) WartoscBrutto, w której dodano powiązanie do kontrolki Elementy i skonfigurowano w niej zapytanie, które zlicza wartość z kolumny Brutto z kontrolki tabelarycznej:

 

select sum (Brutto) from  @Elementy@

 

Kontrolka Liczbowa WartoscBrutto

 

8. Punkt ACD: W punkcie konfiguracyjnym ACD (Współpraca z KSeF), na zakładce Kontrolki, dodano kontrolkę ID_KSeF i przypisano jej zapytanie, które pobiera ID dokumentu KSeF:

 

 select @Id1@

 

Kontrolka ID_KSeF w punkcie ACD

 

Uzupełniona kontrolka typu Dane Tabelaryczne

Po pomyślnym zainicjowaniu dokumentu z punktu ACD, kontrolka typu Dane Tabelaryczne została automatycznie wypełniona pozycjami odczytanymi z KSeF.

Dla każdej pozycji, system automatycznie przeliczył i uzupełnił wartości w kolumnach Netto i Brutto w tym samym wierszu. W przypadku nieprawidłowości w kwotach możliwe jest przeliczanie wartości Netto/Brutto poprzez zmianę Ceny/Ilości lub Stawki VAT.

Kolumna Netto oraz Brutto jest zablokowana do ręcznej edycji (tryb „Do odczytu”), co gwarantuje poprawność danych.

Kontrolka Wartość Netto wyświetla poprawną sumę końcową z kolumny Netto kontrolki typu Dane tabelaryczne.

Kontrolka Wartość Brutto wyświetla poprawną sumę końcową z kolumny Brutto kontrolki Dane tabelaryczne.

 

Kontrolka typu Dane tabelaryczne uzupełniona pozycjami odczytanymi z KSeF oraz podsumowanie kwot

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!