Wprowadzenie do konfiguratora schematów KSeF
1. Informacje wstępne
Konfigurator schematów KSeF jest modułem umożliwiającym dostosowanie struktury faktur ustrukturyzowanych do indywidualnych potrzeb użytkownika. Narzędzie pozwala na tworzenie i modyfikowanie własnych schematów, które stanowią podstawę do generowania pliku XML zgodnego z wymaganiami Krajowego Systemu e-Faktur (KSeF).
Za pomocą konfiguratora użytkownik może:
- przygotować własny model faktury ustrukturyzowanej,
- zmieniać sposób prezentacji danych,
- dodawać lub ukrywać elementy struktury,
- kontrolować logikę wypełniania pól,
- generować plik XML do wysyłki do KSeF według własnego schematu.
Utworzony schemat jest wykorzystywany podczas tworzenia dokumentów i stanowi bazę do wygenerowania gotowej faktury, która następnie jest walidowana i przesyłana do KSeF.
2. Charakterystyka działania
Konfigurator:
- działa w oparciu o aktualne struktury publikowane przez Ministerstwo Finansów,
- pozwala rozbudować dokument o dodatkowe pola pomocnicze wykorzystywane wewnętrznie w firmie, np. identyfikatory, znaczniki, uwagi,
- generuje XML zgodny z formatem przyjmowanym przez KSeF, jeśli struktura jest zgodna ze specyfikacją MF.
Użytkownik ma możliwość dowolnego dostosowania wyglądu i logiki dokumentu, jednak obowiązkowe elementy określone przez KSeF muszą zostać zachowane, aby dokument został prawidłowo przyjęty przez system.
3. Wymagania i kompetencje użytkownika
Choć narzędzie jest intuicyjne i przyjazne w obsłudze, jego efektywne wykorzystanie wymaga:
- podstawowej znajomości zagadnień programistycznych,
- orientacji w strukturach XML,
- świadomości zasad walidacji stosowanych przez KSeF,
- rozumienia zależności pomiędzy polami w dokumencie a jego poprawnością techniczną i księgową.
Brak wiedzy w tym zakresie może prowadzić do stworzenia schematów, które nie będą spełniały wymogów walidacyjnych KSeF.
4. Ważne uwagi i ograniczenia
- Producent oprogramowania nie odpowiada za błędy wynikające z niewłaściwej konfiguracji własnych schematów przez użytkownika.
- Wszelkie zmiany wykonane w konfiguratorze, które naruszają strukturę wymaganą przez KSeF, mogą skutkować odrzuceniem faktury.
- Producent zapewnia, że domyślne schematy systemowe będą na bieżąco aktualizowane w zakresie wymaganym przez Ministerstwo Finansów, tak aby zawsze odpowiadały aktualnym przepisom i specyfikacjom technicznym.
- Użytkownik, tworząc własny schemat, przejmuje odpowiedzialność za jego zgodność z wymogami MF.
UWAGA!!!
Producent dołoży wszelkich starań, aby fabryczne elementy struktury były aktualizowane również w niefabrycznych schematach. Jednak nie gwarantujemy, że wszystkie elementy schematów niefabrycznych będą mogły podlegać aktualizacji.
5. Rekomendacje
- Przed modyfikacją schematów zaleca się zapoznanie z dokumentacją techniczną struktur KSeF, opublikowaną przez Ministerstwo Finansów.
- W sytuacjach, gdy konieczna jest istotna ingerencja w strukturę faktury, warto skonsultować projekt ze specjalistą lub działem IT.
- Po każdej zmianie schematu zaleca się wykonanie testowej wysyłki dokumentu do środowiska testowego KSeF, aby upewnić się, że plik XML jest poprawny.
6. Moduł w opłacie rocznej
Moduł Konfigurator Schematów KSeF działa w oparciu o opłatę roczną, która jest bezpośrednio powiązana z modułem KSeF. Oznacza to, że:
• obowiązuje opłata roczna,
• moduł Konfiguratora wygasa w tym samym momencie, co moduł KSeF,
• nie ma możliwości korzystania z Konfiguratora bez aktywnego modułu KSeF.
UWAGA!!!
W przypadku wygaśnięcia modułu KSeF i jednoczesnego braku aktywnego modułu Konfiguratora, użytkownik utraci możliwość generowania dokumentów na podstawie wcześniej utworzonych własnych schematów. Schematy pozostaną w systemie, jednak ich użycie nie będzie możliwe do czasu odnowienia odpowiednich modułów.
Interfejs Konfiguratora Schematów KSeF
1. Lista schematów
Konfigurator Schematów KSeF znajduje się w menu dostępnym pod ikoną KSeF.

Po wybraniu tej opcji otwiera się okno Konfiguracja schematów sprzedaży, w którym prezentowane są:
- schematy fabryczne (dostarczane przez producenta),
- schematy utworzone samodzielnie przez użytkownika.
Widok listy schematów
Widok konfiguracji schematów sprzedaży zawiera tabelę, w której znajdują się następujące kolumny:
- Identyfikator
Unikalny numer przypisany do każdego schematu, zbudowany według zasady:
kod systemowy / wersja schematu / kolejny numer
- Nazwa konfiguracji
- dla schematów fabrycznych — nazwa opisująca rodzaj dokumentu, do którego schemat jest stosowany,
- dla schematów użytkownika — nazwa nadawana dowolnie.
0
- Symbol operatora
Symbol użytkownika, który utworzył schemat.
W przypadku schematów fabrycznych symbol przyjmuje zawsze wartość SZEF.
- Data utworzenia
Data stworzenia schematu zarówno fabrycznego, jak i własnego.
- Kod systemowy
Kod określający wersję schematu zgodną ze specyfikacją Ministerstwa Finansów.
- Rodzaj schematu KSeF
Wewnętrzny identyfikator wskazujący typ dokumentu, do którego przeznaczony jest schemat:
- VAT – faktura VAT,
- KOR – korekta faktury,
- ZAL – faktura zaliczkowa,
- ROZ – faktura rozliczeniowa zaliczki,
- UPR – faktura uproszczona,
- KOR_ZAL – korekta faktury zaliczkowej,
- KOR_ROZ – korekta faktury rozliczeniowej zaliczki.
- Fabryczna
Określa pochodzenie schematu:
- TAK – schemat fabryczny,
- NIE – schemat utworzony przez użytkownika.
- Wersja schematu
Numer wersji danego schematu.
- Uwagi
Pole dostępne dla schematów użytkownika, pozwalające na wprowadzenie własnych notatek i informacji.
Panel uwag
W dolnej części okna konfiguratora znajduje się panel, który po zaznaczeniu wybranego schematu wyświetla jego szczegółowe uwagi.

2. Okno konfiguracji schematu
Po otwarciu schematu lub dodaniu nowego, pojawia się okno konfiguracji umożliwiające edycję i przegląd struktury.

Nagłówek okna
W górnej części wyświetlane są podstawowe informacje o schemacie:
- Identyfikator konfiguracji,
- Nazwa konfiguracji,
- Kod systemowy,
- Wersja schematu,
- Rodzaj schematu KSeF,
3. Pozycje schematu
#Drzewo
Pierwsza z trzech zakładek wyświetla listę tagów w układzie drzewiastym.
W nagłówku zakładki znajduje się wyszukiwarka, która umożliwia szybkie i wygodne odnalezienie odpowiedniego tagu.

W dolnej części zakładki Drzewo znajduje się legenda, która objaśnia znaczenie poszczególnych typów tagów:
- Obowiązkowe – oznaczenie tagu wymaganego przez KSeF. Jego aktywacja jest konieczna do prawidłowej walidacji dokumentu; brak wypełnienia skutkuje błędem walidacji.
- Obowiązkowe (użytkownik) – oznaczenie tagu uznanego przez użytkownika za obowiązkowy do wypełnienia, niezależnie od wymagań KSeF.
- Opcjonalne – oznaczenie tagu niewymaganego przez KSeF, który może zostać uzupełniony fakultatywnie.
- Nieaktywne – oznaczenie tagu, który jest aktualnie niedostępny do edycji lub niepodlegający wypełnieniu.
- Dwuklik = edycja – informacja wskazująca, że dwukrotne kliknięcie tagu otwiera okno jego edycji.
#Tabela
Druga zakładka prezentuje listę tagów w układzie tabelarycznym.
Pod względem funkcjonalnym nie różni się od pierwszej zakładki; różnica polega na formie prezentacji danych. Tagi wyświetlane są w bardziej technicznym układzie, zgodnym ze strukturą systemową.
W tym miejscu użytkownik może zdefiniować własny widok prezentowanych tagów.
Edycja tagów odbywa się poprzez dwukrotne kliknięcie myszką.

#Przypisania
Na ostatniej zakładce Przypisania znajduje się tabelka prezentująca listę rejestrów dokumentów.
Z tego miejsca można przypisywać utworzony schemat do poszczególnych rejestrów dokumentów lub usuwać już przypisane schematy za pomocą przycisku Usuń.

Należy pamiętać, że po kliknięciu przycisku Plus w oknie listy rejestrów wyświetlone zostaną tylko te rejestry, które nie mają przypisanego żadnego schematu sprzedaży oraz w swojej definicji posiadają opcję Dokument ma trafiać do KSeF zaznaczoną na Tak.

4. Definicja dodatkowych opisów nagłówka
Przycisk Definicja dodatkowych opisów nagłówka otwiera okno Listy formuł opisu dodatkowego.

5. Definicja dodatkowych opisów pozycji
Po kliknięciu przycisku Definicja dodatkowych opisów pozycji otwiera się okno zawierające listę formuł opisu dodatkowego dla pozycji.
W oknie znajdują się zarówno pozycje stałe dostępne do wyboru, jak i możliwość dodania własnych, indywidualnych formuł.

6. Tag
Konfigurator schematów zawiera listę tagów, które mogą występować w generowanym pliku XML.
Z poziomu tego modułu użytkownik ma możliwość zarządzania tagami poprzez:
- Aktywacja/ dezaktywacja – oznaczenie, czy dany tag będzie uwzględniany w generowanym XML-u,
- Wymagalność wypełnienia – określenie, czy tag musi zostać wypełniony w XML-u,
- Edycja formuły – umożliwia przypisanie tagowi wartości innych niż domyślnie przewidziane przez producenta, pozwalając na dostosowanie danych do indywidualnych potrzeb użytkownika.
Dzięki tym funkcjom użytkownik może precyzyjnie kontrolować strukturę generowanego pliku XML oraz zawartość poszczególnych tagów.

7. Prolog
Prolog to program wykonywany w języku XBase, uruchamiany przed rozpoczęciem generowania pliku XML w schemacie KSeF.
Umożliwia on przygotowanie danych, ustawienie środowiska lub wykonanie dodatkowych operacji logicznych potrzebnych do poprawnego wygenerowania dokumentu.
Możliwości Prologu
W Prologu można umieszczać wszystkie polecenia oraz funkcje dostępne w języku XBase, w tym m.in.:
- otwieranie zbiorów danych,
- zakładanie relacji pomiędzy zbiorami,
- ustawianie porządków indeksowania,
- wykonywanie zapytań SQL SELECT,
- wykonywanie dowolnych operacji logicznych i obliczeniowych.
Zasady tworzenia Prologu
- Każde polecenie lub funkcja powinny znajdować się w osobnym wierszu, zakończonym klawiszem Enter.
- Jeśli polecenie jest dłuższe niż szerokość okna edytora, należy podzielić je na kilka linii, stosując średnik (;) na końcu każdej linii kontynuacji (z wyjątkiem linii ostatniej).
- Można dodawać komentarze, umieszczając na początku wiersza znak *.
Uwagi dodatkowe:
- Prolog jest kompilowany i wykonywany automatycznie przed generowaniem XML, błędy w Prologu mogą uniemożliwić utworzenie dokumentu.
- Do stworzenia poprawnego Prologu wymagana jest podstawowa znajomość języka XBase.

8. Epilog po kodzie fabrycznym
Epilog to program w języku XBase, uruchamiany bezpośrednio po zakończeniu generowania XML.
Jego zadaniem jest wykonanie operacji porządkowych lub uzupełniających, które powinny nastąpić już po wygenerowaniu dokumentu.
Zastosowanie Epilogu
Epilog może służyć m.in. do:
- przywracania ustawień środowiska zmienionych w Prologu,
- wykonywania dodatkowych obliczeń lub dopisków po wygenerowaniu struktury,
- obsługi specjalnych scenariuszy biznesowych wymagających reakcji po utworzeniu dokumentu.
Automatyczne przywracanie środowiska
System automatycznie przywraca większość ustawień obowiązujących przed uruchomieniem generatora, w tym:
- relacje między zbiorami,
- porządki indeksowania tabel,
- bieżący obszar roboczy,
- wartości zmiennych systemowych.
Co wymaga ręcznego przywracania
Automatyczne przywracanie nie obejmuje filtrów ustawionych poleceniem:
SET FILTER TO
Jeśli Prolog wprowadzał filtry, to Epilog powinien je odpowiednio wyłączyć lub zmienić, aby nie wpływały na dalsze działanie systemu.

Funkcjonalność dodatkowych opisów nagłówka
W oknie konfiguracji schematu dostępny jest przycisk Definicja dodatkowych opisów nagłówka, który otwiera okno Lista formuł opisu dodatkowego.
Obszar ten umożliwia dodawanie własnych pól opisowych, które mogą zostać automatycznie uzupełniane na podstawie danych pobieranych z systemu.

Na liście znajdują się pozycje składające się z dwóch elementów:
- Klucz – nazwa identyfikująca dany opis,
- Formuła (wartość) – kod/ formuła pobierająca określone dane z systemu i przypisująca je do klucza.
Dzięki temu mechanizmowi użytkownik może w ramach dodatkowego opisu zdefiniować własny klucz oraz wartość pobieraną z systemu, co pozwala na umieszczenie tych danych na fakturze.

Przycisk Edytor Formuły otwiera dodatkowe okno zawierające pole z kodem formuły.
Edytor umożliwia:
- podgląd formuły,
- jej edycję,
- sprawdzenie poprawności składni.

1. Przykład zastosowania
Zmodyfikowany schemat dla faktur podstawowych VAT, w którym do nagłówka dodano dodatkowy opis zawierający symbol kontrahenta.

Formuła:
Local loN, lcRet
* Przepisanie danych z kursora nagłówka na obiekt loN
SCATTER MEMO NAME loN
*Zwracany kod sprzedawcy u kontrahenta
lcRet = SQL_FIND(“kod_u_ktr”,”kontrah”,”symbol_ktr = ‘”+loN.symbol_ktr+”‘”,””)
*Zwracana zmienna musi być typu znakowego (max 256 znaków)
Return lcRet
Fragment XMLa zawierający tag <DodatkowyOpis>

Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

Funkcjonalność dodatkowych opisów pozycji
Po kliknięciu przycisku Definicja dodatkowych opisów pozycji otwiera się okno zawierające listę formuł opisu dodatkowego dla pozycji.
W oknie znajdują się zarówno pozycje stałe dostępne do wyboru, jak i możliwość dodania własnych, indywidualnych formuł.

1. Pozycje stałe
Wystarczy zaznaczyć odpowiedni checkbox, a właściwe informacje zostaną automatycznie umieszczone na fakturze w sekcji Dodatkowy opis.
- Uwzględnij opłatę cukrową jako dodatkowe opisy
Fragment XMLa zawierający tag <DodatkowyOpis>

Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

- Uwzględnij KGO jako dodatkowe opisy pozycji

Fragment XMLa zawierający tag <DodatkowyOpis>

Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

- Uwzględnij numery seryjne jako dodatkowe opisy pozycji

Fragment XMLa zawierający tag <DodatkowyOpis>

Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

- Uwzględnij numery partii jako dodatkowe opisy pozycji

Fragment XMLa zawierający tag <DodatkowyOpis>

Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

2. Przykład zastosowania własnej formuły
Zmodyfikowany schemat dla faktur podstawowych VAT, w którym do pozycji dodano dodatkowy opis zawierający termin przydatności.
Formuła:
Local loPozF, lcRet
* Przepisanie danych z kursora pozycji na obiekt loPozF
SCATTER MEMO NAME loPozF
* Zwracany termin przydatności
lcRet = DTOC(loPozF.termin)
*Zwracana zmienna musi być typu znakowego (max 256 znaków)
Return lcRet
Fragment XMLa zawierający tag <DodatkowyOpis>
Fragment dokumentu w PDF zawierające informacje w sekcji Dodatkowe opisy

Edycja formuły tagu
Zmodyfikowany schemat dla faktur podstawowych VAT, w którym do tagu wprowadzono zmianę dotyczącą pobierania adresu email z innego miejsca.
Przykład: zmiana źródła danych w tagu dla Podmiotu 1
W standardowej konfiguracji systemu tag dla Podmiotu 1 uzupełnia się automatycznie na podstawie Danych podatkowych firmy, dokładnie z pola E-mail znajdującego się na zakładce Dane adresowe.

Tak wygląda zachowanie fabryczne:
XML (fabrycznie)

PDF (fabrycznie)

Zmiana źródła danych – własny schemat
Użytkownik może jednak zmienić zachowanie systemu i sprawić, aby w tagu była pobierana wartość z innego pola, np. z dodatkowego pola zdefiniowanego w kartotece kontrahenta.

Aby to zrobić, należy:
1. Utworzyć własny schemat KSeF.
2. W tagu Podmiotu 1 wpisać kod, który pobierze e-mail z wybranego pola kontrahenta.

Po zapisaniu schematu system podczas generowania XML automatycznie pobierze dane wynikające z kodu i wstawi je do tagu .
Tak wygląda efekt po zmianie:
XML (po zmianie)

PDF (po zmianie)

Instrukcja techniczna Konfiguratora schematów KSeF
Do każdego modułu Konfiguratora Schematów KSeF dołączana jest instrukcja techniczna, udostępniana użytkownikowi po zakupie modułu.
Instrukcja zawiera szczegółowe informacje niezbędne do prawidłowego tworzenia i modyfikowania formuł, opisów dodatkowych oraz tagów w schematach. Zawiera między innymi:
- opis dostępnych funkcji i metod do wywoływania klas w systemie,
- zasady tworzenia i stosowania formuł w nagłówkach i pozycjach dokumentów,
- wytyczne dotyczące użycia prologów i logiki biznesowej w schematach,
- przykłady kodów i struktur wspierających poprawne wypełnianie plików XML.
Celem instrukcji jest zapewnienie użytkownikowi możliwości bezpiecznego i poprawnego tworzenia własnych schematów, zgodnych ze specyfikacją KSeF i wymaganiami Ministerstwa Finansów.
Użytkownik, posiadając instrukcję techniczną, może w pełni wykorzystać funkcjonalności Konfiguratora bez ryzyka niezgodności generowanych dokumentów z wymogami systemu.