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”.
Klucz może przybierać jedną z następujących wartości:
1.Demo – wartość 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” .

Zakładka Ogólne
Wygląd zakładki „Ogólne” jest zależny od trybu pracy Comarch DMS.
W trybie jednospółkowym na zakładce należy w ramach pola:su_list icon=”icon: check” icon_color=”#009de0″]
- Nazwa punktu – określić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
- Typ obiegu – wskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSeF.
[/su_list]
Jeżeli Comarch 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”)).

W trybie wielospółkowym na zakładce należy w ramach pola:
- Nazwa punktu – określić nazwę pod jaką punkt konfiguracyjny będzie widoczny na liście punktów;
- Spółka – wskazać 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 obiegu – wskazać typ obiegu, w ramach którego będą generowane dokumenty zawierające dane z KSEF.

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”.
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.

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.
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”.
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=@IdOperatorDMS@ /*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

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.
- 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=@IdOperatorDMS@ /*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


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@


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.
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@

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.


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).