Data aktualizacji: 02-07-2020

Szkolenie multimedialne dotyczące obsługi pliku JPK_V7 w Comarch ERP Optima dostępne jest tutaj.


1. Wstęp

Od 1 października 2020 roku Ministerstwo Finansów wprowadza nowy rodzaj pliku JPK. Są to pliki JPK_V7M dla rozliczeń miesięcznych oraz JPK_V7K dla rozliczeń kwartalnych. Pliki te zawierają część deklaracyjną (na wzór deklaracji VAT-7) oraz ewidencyjną (na wzór pliku JPK_VAT). Nowy rodzaj pliku JPK zastępuje więc zarówno plik JPK_VAT jak i deklarację VAT-7. W przypadku podatników rozliczających podatek VAT kwartalnie, za pierwszy i drugi miesiąc kwartału będą oni składali tylko część ewidencyjną, a po upływie trzeciego miesiąca – część deklaracyjną rozliczającą podatek VAT za dany kwartał oraz część ewidencyjną za trzeci kwartał. Obowiązek składania plików JPK_V7 dotyczy wszystkich podatników VAT, bez względu na ich wielkość. Inaczej niż w przypadku plików JPK_VAT, podatnicy rozliczający się stawką zryczałtowaną 4%, np. taksówkarze, nie będą już musieli składać plików JPK_V7.

W programie Comarch ERP Optima udostępniona została możliwość opisywania dokumentów nowymi danymi na potrzeby pliku JPK_V7, sporządzenia tego pliku i jego wysyłki dla każdego Użytkownika, bez względu na wielkość firmy.

Uwaga
Do sporządzenia i wysłania pliku JPK_V7 wymagane jest pobranie podczas logowania modułów księgowych – Księga Handlowa, Księga Handlowa Plus bądź Księga Podatkowa.

Sporządzić plik JPK_V7 mogą wszyscy operatorzy mający dostęp do modułów księgowych, natomiast prawo eksportu plików i odbioru UPO posiadają wyłącznie wybrani operatorzy w programie. Ma to na celu zablokowanie wysłania pliku JPK_V7 przez nieupoważnione do tego osoby.

W przypadku zmiany wymaganej struktury plików JPK istnieje możliwość aktualizacji formatów służących do eksportu poprzez pobranie ich z serwerów Comarch w momencie generowania plików.

Uwaga
Funkcjonalność aktualizacji wzorów dokumentu elektronicznego dla plików JPK_V7 jest dostępna tylko dla programów na gwarancji oraz w przypadku pracy na najnowszej dostępnej wersji programu Comarch ERP Optima.

2. Konfiguracja ustawień związanych z JPK_V7

W Konfiguracji Firmy/ Dane firmy/ Deklaracje w sekcji Podatnik składa deklaracje/odprowadza zaliczki z tytułu znajduje się parametr JPK_V7. W przypadku jego zaznaczenia możliwe jest sporządzenie plików JPK_V7 poprzez udostępnienie odpowiedniej opcji w menu programu. Parametr jest domyślnie zaznaczony dla nowo zakładanych baz.

Aby móc wysłać plik JPK_V7 oraz odebrać dla niego Urzędowe Poświadczenie Odbioru, na karcie operatora w Konfiguracji Programu/ Użytkowe/ Operatorzy musi zostać zaznaczony parametr Prawo eksportu plików JPK:

Tylko Operator z uprawnieniami administratora może zaznaczyć ten parametr sobie bądź innym Operatorom. Początkowo jedynie operator ADMIN ma ten parametr zaznaczony.

Poniżej znajduje się parametr Zmiana atrybutów/kodów JPK na zatw. dok. umożliwiający edycję kodów JPK na zatwierdzonej oraz na zaksięgowanej Fakturze Zakupu/Sprzedaży. Jest to istotne w związku z przenoszeniem informacji zawartych w tych kodach do plików JPK (dla rejestrów VAT oraz faktur). Parametr może być edytowany tylko przez operatora z uprawnieniami administratora.

Dodatkowo w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny musi zostać wskazany katalog przechowywania plików wymiany, do którego będą zapisywane kopie wysyłanych plików w formacie *.xml:

Przy eksporcie plików JPK_V7 w ramach wskazanego katalogu tworzony jest podkatalog z nazwą firmy (bazy), więc w przypadku biur rachunkowych dane poszczególnych firm trafiają do własnych katalogów. Nazwy tworzonych plików zawierają informacje o zakresie dat zawartych w nich danych oraz o czasie ich utworzenia, wg wzoru:

Jpk_V7_PLN_Data_od_Data_do_Data_i_godzina_utworzenia_Kolejny_plik_w_miesiącu

3. Oznaczanie dokumentów na potrzeby plików JPK_V7

Struktura plików JPK_V7M i JPK_V7K została rozbudowana względem pliku JPK_VAT o dodatkowe informacje, które mają być przesyłane dla każdej faktury. Dlatego też istotne jest aby odpowiednio opisywać przyjmowane oraz wydawane dokumenty od 01.10.2020 dodatkowymi informacjami. Są to: kod kraju kontrahenta, kod towarowy, procedura i typ dokumentu.

3. 1. Kody towarowe, procedury i typy dokumentów – informacje ogólne

Ministerstwo Finansów zdefiniowało listę kodów towarowych, które mają być wysyłane w pliku JPK_V7M/7K dla dokumentu, na którym zarejestrowano sprzedaż danego rodzaju:

  • GTU_01 – dostawa napojów alkoholowych – alkoholu etylowego, piwa, wina, napojów fermentowanych i wyrobów pośrednich, w rozumieniu przepisów o podatku akcyzowym
  • GTU_02 – dostawa towarów, o których mowa w art. 103 ust. 5aa ustawy
  • GTU_03 – dostawa oleju opałowego w rozumieniu przepisów o podatku akcyzowym oraz olejów smarowych, pozostałych olejów o kodach CN od 2710 19 71 do 2710 19 99, z wyłączeniem wyrobów o kodzie CN 2710 19 85 (oleje białe, parafina ciekła) oraz smarów plastycznych zaliczanych do kodu CN 2710 19 99, olejów smarowych o kodzie CN 2710 20 90, preparatów smarowych objętych pozycją CN 3403, z wyłączeniem smarów plastycznych objętych tą pozycją
  • GTU_04 – dostawa wyrobów tytoniowych, suszu tytoniowego, płynu do papierosów elektronicznych i wyrobów nowatorskich, w rozumieniu przepisów o podatku akcyzowym
  • GTU_05 – dostawa odpadów – wyłącznie określonych w poz. 79–91 załącznika nr 15 do ustawy
  • GTU_06 – dostawa urządzeń elektronicznych oraz części i materiałów do nich, wyłącznie określonych w poz. 7–9, 59–63, 65, 66, 69 i 94–96 załącznika nr 15 do ustawy
  • GTU_07 – dostawa pojazdów oraz części samochodowych o kodach wyłącznie CN 8701–8708 oraz CN 8708 10
  • GTU_08 – dostawa metali szlachetnych oraz nieszlachetnych – wyłącznie określonych w poz. 1–3 załącznika nr 12 do ustawy oraz w poz. 12–25, 33–40, 45, 46, 56 i 78 załącznika nr 15 do ustawy
  • GTU_09 – dostawa leków oraz wyrobów medycznych – produktów leczniczych, środków spożywczych specjalnego przeznaczenia żywieniowego oraz wyrobów medycznych, objętych obowiązkiem zgłoszenia, o którym mowa w art. 37av ust. 1 ustawy z dnia 6 września 2001 r. – Prawo farmaceutyczne (Dz. U. z 2019 r. poz. 499, z późn. zm.)
  • GTU_10 – dostawa budynków, budowli i gruntów
  • GTU_11 – świadczenia usług w zakresie przenoszenia uprawnień do emisji gazów cieplarnianych, o których mowa w ustawie z dnia 12 czerwca 2015 r. o systemie handlu uprawnieniami do emisji gazów cieplarnianych (Dz. U. z 2018 r. poz. 1201 i 2538 oraz z 2019 r. poz. 730, 1501 i 1532)
  • GTU_12 – świadczenia usług o charakterze niematerialnym – wyłącznie: doradczych, księgowych, prawnych, zarządczych, szkoleniowych, marketingowych, firm centralnych (head offices), reklamowych, badania rynku i opinii publicznej, w zakresie badań naukowych i prac rozwojowych
  • GTU_13 – świadczenia usług transportowych i gospodarki magazynowej – Sekcja H PKWiU 2015 symbol ex 49.4, ex 52.1

Procedury, podobnie jak kody towarowe, opisują dodatkowo dokument wysyłany w pliku JPK_V7. Nie są jednak ściśle powiązane z towarem. Są podzielone na procedury dla dokumentów sprzedaży i zakupu.

Procedury dla sprzedaży:

  • SW – dostawa w ramach sprzedaży wysyłkowej z terytorium kraju, o której mowa w art. 23 ustawy
  • EE – świadczenie usług telekomunikacyjnych, nadawczych i elektronicznych, o których mowa w art. 28k ustawy
  • TP – istniejące powiązania między nabywcą a dokonującym dostawy towarów lub usługodawcą, o których mowa w art. 32 ust. 2 pkt 1 ustawy
  • TT_WNT – wewnątrzwspólnotowe nabycie towarów dokonane przez drugiego w kolejności podatnika VAT w ramach transakcji trójstronnej w procedurze uproszczonej, o której mowa w dziale XII rozdział 8 ustawy
  • TT_D – dostawa towarów poza terytorium kraju dokonana przez drugiego w kolejności podatnika VAT w ramach transakcji trójstronnej w procedurze uproszczonej, o której mowa w dziale XII rozdział 8 ustawy
  • MR_T – świadczenia usług turystyki opodatkowanych na zasadach marży zgodnie z art. 119 ustawy
  • MR_UZ – dostawa towarów używanych, dzieł sztuki, przedmiotów kolekcjonerskich i antyków, opodatkowana na zasadach marży zgodnie z art. 120 ustawy
  • I_42 – wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 42 (import)
  • I_63 – wewnątrzwspólnotowa dostawa towarów następująca po imporcie tych towarów w ramach procedury celnej 63 (import)
  • B_SPV – transferu bonu jednego przeznaczenia dokonanego przez podatnika działającego we własnym imieniu, opodatkowanego zgodnie z art. 8a ust. 1 ustawy
  • B_SPV_DOSTAWA – dostawa towarów oraz świadczenie usług, których dotyczy bon jednego przeznaczenia na rzecz podatnika, który wyemitował bon zgodnie z art. 8a ust. 4 ustawy
  • B_MPV_PROWIZJA – świadczenie usług pośrednictwa oraz innych usług dotyczących transferu bonu różnego przeznaczenia, opodatkowanych zgodnie z art. 8b ust. 2 ustawy
  • MPP – transakcje objęte obowiązkiem stosowania mechanizmu podzielonej płatności

Procedury dla zakupu:

  • IMP – podatek naliczony z tytułu importu towarów, w tym importu towarów rozliczanych zgodnie z art. 33a ustawy
  • MPP – transakcje objęte obowiązkiem stosowania mechanizmu podzielonej płatności

Oprócz wspomnianych kodów towarowych oraz procedur, do opisu transakcji na potrzeby pliku JPK_V7 służą typy dokumentów. Dokument w pliku JPK_V7 może być oznaczony jednocześnie tylko jednym z wymienionych poniżej kodów. Dostępne typy dokumentów dla sprzedaży to:

  • RO – dokument zbiorczy wewnętrzny zawierający sprzedaż z kas rejestrujących
  • WEW – dokument wewnętrzny
  • FP – faktura, o której mowa w art. 109 ust. 3d ustawy

Dla zakupu dostępne są typy:

  • VAT_RR – faktura VAT RR, o której mowa w art. 116 ustawy
  • WEW – dokument wewnętrzny
  • MK – faktura wystawiona przez podatnika będącego dostawcą lub usługodawcą, który wybrał metodę kasową rozliczeń określoną w art. 21 ustawy

3.2. Dostosowanie danych słownikowych do sporządzania plików JPK_V7

3.2.1. Formularz kontrahenta

Na karcie kontrahenta na zakładce [Ogólne] znajduje się rozwijalna listę kodów krajów przed numerem NIP. Zawiera ona kody krajów z zgodnie wymaganiami pliku JPK_V7.

Dla ułatwienia wyboru właściwego prefiksu, rozwijalna lista obok kodów zawiera również kolumnę z nazwą kraju. 5 najczęściej wybieranych prefiksów krajów wyświetlanych jest początku listy pogrubioną czcionką, bezpośrednio pod wierszem z pustym prefiksem. Ustawienia są zapamiętywane dla każdego Operatora i każdej bazy firmowej.

Wymagany przez plik JPK_V7 dla transakcji innych niż krajowe kod kraju kontrahenta, po uzupełnieniu na karcie kontrahenta przenoszony jest na dokumenty w module Handel oraz w Rejestrach VAT, na których ten podmiot został wybrany. Kod kraju może być uzupełniony na formularzu pojedynczego kontrahenta bądź jednocześnie dla wielu kontrahentów za pomocą operacji seryjnej Zmień status dostępnej na liście kontrahentów:

Na formularzu kontrahenta dostępna jest zakładka [JPK] umożliwiająca przypisanie domyślnych procedur i kodów towarowych, które będą się automatycznie przenosiły na transakcje. Na zakładce znajduje się lista zawierająca trzy kolumny:

  • Kod – kod procedury bądź kodu,
  • Opis – słowny opis procedury lub kodu
  • Rodzaj – wyświetlająca wartość Procedura lub Kod towarowy.

Obok listy dostępne są ikony Dodanie pozycji oraz Usuń pozycję. Po kliknięciu  Dodanie pozycji otwierane jest okno Kody JPK_V7 – Wybierz zawierające listę dostępnych kodów towarowych i procedur pogrupowanych według rodzaju:

Użytkownik ma możliwość wyboru jednej bądź wielu pozycji, zaznaczając je na liście. Kliknięcie ikony  Wybierz powoduje przeniesienie na kartę kontrahenta zaznaczonych pozycji. Jeżeli żadna pozycja nie została zaznaczona, kliknięcie ikony powoduje przeniesienie podświetlonej na liście pozycji. Wybór opcji Zamknij okno powoduje zamknięcie listy kodów bez przeniesienia żadnego z nich na kartę kontrahenta.

Kliknięcie ikony  Usuń pozycję na zakładce [JPK] powoduje usunięcie z karty kontrahenta zaznaczonych procedur bądź kodów towarowych. Jeżeli żadna pozycja nie została zaznaczona, kliknięcie ikony powoduje usunięcie podświetlonej na liście pozycji.

W przypadku wybranych na karcie kontrahenta procedur dla sprzedaży – przenoszone są one na Faktury Sprzedaży oraz dokumenty w Rejestrze Sprzedaży VAT, natomiast procedury dla zakupu przenoszone są na Faktury Zakupu oraz dokumenty w Rejestrze Zakupu VAT dodane dla tego kontrahenta.

Podczas kopiowania karty kontrahenta, na nowo tworzoną kartę przenoszone zostają domyślne procedury i kody towarowe z kopiowanej karty.

Podczas łączenia kart kontrahentów następuje dopisywanie procedur z kontrahenta podrzędnego na kartę kontrahenta głównego.

Informacje o przypisanych do kontrahenta kodach towarowych i procedurach dla plików JPK_V7 przenoszone są za pomocą pracy rozproszonej.

Możliwe jest seryjne dodawanie oraz usuwanie kodów JPK_V7 dla wielu kontrahentów jednocześnie. Po wybraniu na liście kontrahentów w menu Operacje seryjne/ JPK opcji Dodaj kody JPK_V7 otwierane jest okno z listą kodów towarowych oraz procedur dla plików JPK_V7:

Po zaznaczeniu wybranych kodów i kliknięciu na przycisk Dodaj kody JPK_V7 zostaną one przypisane do kartotek zaznaczonych na liście kontrahentów i będą przenoszone na dokumenty dla tych kontrahentów.

Analogicznie po wybraniu Operacje seryjne/ JPK/ Usuń kody JPK_V7 otwierane jest okno z listą kodów towarowych oraz procedur dla plików JPK_V7:

Po zaznaczeniu wybranych kodów i kliknięciu na przycisk Usuń kody JPK_V7 zostaną one usunięte z kartotek zaznaczonych na liście kontrahentów i nie będą z nich przenoszone na dokumenty tych kontrahentów.

3.2.2. Pozycja cennika

Na karcie pozycji cennikowej na zakładce [Dodatkowe] znajduje się sekcja JPK z polem Domyślny kod JPK_V7. Pole jest rozwijalną listą na której można wybrać jeden kod towarowy bądź procedurę która ma za zadanie dodatkowo opisać dokument przesyłany do pliku JPK_V7.

Wyświetlana lista pozycji zawiera te same kody towarowe i procedury, które dostępne są do wyboru na karcie kontrahenta na zakładce [JPK]. Wskazany w tym miejscu domyślny kod będzie przenosił się na transakcje handlowe, na których wybrana została ta pozycja cennika.

Podczas kopiowania pozycji cennika, na nowo tworzoną kartę przenoszona jest domyślna procedura z kopiowanej karty.

Z poziomu okna Lista zasobów oraz Cennik dostępna jest operacja seryjna Zmiana parametrów karty zawierająca opcję Ustaw domyślny kod JPK_V7. Umożliwia ona seryjne ustawienie wybranego kodu towarowego bądź procedury dla zaznaczonych pozycji cennika.

Operacja jest aktywowana przyciskiem  Wykonaj.

  • Wykonanie operacji dla towarów, które nie mają przypisanego kodu, będzie skutkowało jego ustawieniem.
  • Wykonanie operacji dla towarów, które już mają przypisany kod, będzie skutkowało jego zmianą.
  • Wykonanie operacji bez wskazania kodu, będzie skutkowało usunięciem kodów JPK_V7 z zaznaczonych pozycji.

Oprócz wspomnianych kodów towarowych oraz procedur, do opisu transakcji na potrzeby pliku JPK_V7 służą typy dokumentów. Typy te uzupełniane są automatycznie na dokumentach w module Handel oraz w Rejestrach VAT.

3.2.3. Dokumenty w module Handel

Na potrzeby pliku JPK_V7 dokumenty handlowe muszą być oznaczone ściśle określonymi procedurami. Dotyczy to następujących typów dokumentów:

  • Faktur Sprzedaży,
  • Faktur VAT Marża,
  • Faktur Zaliczkowych, Faktur Finalnych,
  • Paragonów,
  • Faktur do Paragonów,
  • Faktur Zakupu,
  • Korekt do powyższych dokumentów,
  • Dokumentów Wewnętrznych

Dla powyższych dokumentów na zakładce [Atrybuty/JPK] znajduje się tabela z kodami towarowymi i procedurami wymaganymi w deklaracji JPK_V7.

Przenoszą się tu automatycznie kody i procedury przypisane do kontrahenta wybranego na dokument. Po zmianie kontrahenta na dokumencie, zostaną usunięte kody poprzedniego kontrahenta i do tabeli kodów JPK_V7 zostaną dodane kody nowego kontrahenta.

Podobnie dla towarów, przenoszą się tu automatycznie kody przypisane do pozycji cennikowych. Jeśli towary dodane na dokument mają taki sam kod, w tabeli JPK_V7 jest on wyświetlany tylko raz. Po usunięciu towaru z dokumentu, z tabeli JPK_V7 usuwany jest kod tego towaru.

Nie są usuwane kody, które zostały na dokument dodane przez Użytkownika.

Do czasu zapisania dokumentu na stałe, Użytkownik może modyfikować tabelę z kodami JPK_V7. Po zatwierdzeniu dokumentu na stałe, procedury można modyfikować pod warunkiem, że operator ma zaznaczony parametr: Zmiana atrybutów/ kodów JPK na zatw. Dok. (menu System/ Konfiguracja/ Program/ Użytkowe/ Operatorzy – Karta operatora/ zakładka [Ogólne]).

Oprócz kodów towarowych i procedur, na dokument można dodać kod JPK przypisany do typu dokumentu:

  • Dla dokumentów sprzedaży:
  • RO – dokument zbiorczy wewnętrzny zawierający sprzedaż z kas rejestrujących
  • WEW – dokument wewnętrzny
  • FP – faktura, o której mowa w art. 109 ust. 3d ustawy
  • Dla dokumentów zakupu:
  • VAT_RR – faktura VAT RR, o której mowa w art. 116 ustawy
  • WEW – dokument wewnętrzny
  • MK – faktura wystawiona przez podatnika będącego dostawcą lub usługodawcą, który wybrał metodę kasową rozliczeń określoną w art. 21 ustawy

Możliwe jest seryjne dodawanie oraz usuwanie kodów JPK_V7 z poziomu list:

  • Faktury Sprzedaży,
  • Faktury Zakupu,
  • Paragony,
  • Dokumenty Wewnętrzne Sprzedaży,
  • Dokumenty Wewnętrzne Zakupu.

Opcja jest dostępna na liście dokumentów, dla zaznaczonych pozycji pod przyciskiem Operacji seryjnych:

Uwaga
Aby zmieniać kody JPK_V7 (w tym seryjnie) na dokumentach zapisanych na stałe, należy w menu System/ Konfiguracja/ Program/ Użytkowe/ Operatorzy – na karcie operatora, na zakładce [Ogólne] zaznaczyć parametr Zmiana atrybutów/ kodów JPK na zatw. dok.

Po wybraniu tej operacji należy zaznaczyć kody, które chcemy dodać do/ usunąć z dokumentów i zatwierdzić wybór przyciskiem Dodaj kody JPK_V7/ Usuń kody JPK_V7 bądź klawiszem <F8>:

Procedury przenoszone automatycznie na dokumenty handlowe

Uwaga
Poniżej opisane procedury są dodawane na dokumenty automatycznie. Jeśli zostaną one przypisane przez operatora do kontrahenta oraz do pozycji cennikowych, będą zawsze przenoszone na dokumenty (niezależnie od wymogów ich stosowania).

Faktury podlegające obligatoryjnemu mechanizmowi podzielonej płatności – MPP

W przypadku, gdy na Fakturę Sprzedaży zostaną wybrane towary, które na swoich kartach mają zaznaczony parametr MPP – podzielona płatność oraz wartość Faktury przekroczy 15000 PLN, na dokument zostanie automatycznie dodana procedura MPP.

Paragony, zafiskalizowane Faktury Sprzedaży

Dla wszystkich wystawionych w programie Paragonów, zafiskalizowanych Faktur Sprzedaży oraz dla korekt do tych dokumentów automatycznie dodawana jest procedura RO.

Faktura VAT Marża

Po wskazaniu na Fakturze VAT Marża procedury marży, do dokumentu zostanie automatycznie dopisana odpowiednia procedura dla JPK_V7:

  • MR_T – Procedura marża dla biur podróży,
  • MR_UZ – Procedura marża – towary używane,
  • MR_UZ – Procedura marży – dzieła sztuki,
  • MR_UZ – Procedura marży – przedmioty kolekcjonerskie i antyki.

Paragon, Faktura Sprzedaży dla kontrahenta powiązanego

Na Paragon i Fakturę Sprzedaży wystawioną dla kontrahenta, który na swojej karcie, na zakładce [Handlowe] ma zaznaczony parametr Kontrahent powiązany, automatycznie jest dodawana procedura TP.

Faktury Zakupu dla rolnika ryczałtowego

  • Na Fakturze Zakupu dla kontrahenta, który na swojej karcie, na zakładce [Handlowe] ma zaznaczony parametr Rolnik, automatycznie jest dodawana procedura VAT_RR.
  • Po przekształceniu FRR do FZ, Faktura Zakupu automatycznie otrzymuję procedurę VAT_RR.

Faktura Zakupu – metoda kasowa

Na Fakturze Zakupu dla kontrahenta, który na swojej karcie, na zakładce [Handlowe] ma zaznaczony parametr Metoda kasowa, automatycznie jest dodawana procedura MK.

Faktura zakupu – import

Na Fakturze Zakupu dla kontrahenta o statusie Pozaunijny/ Pozaunijny (zwroty VAT), automatycznie jest dodawana procedura IMP.

Dokumenty wewnętrzne

  • Na Dokumenty Wewnętrzne tworzone do Faktury Zakupu, przenoszone są kody JPK_V7 z FZ,
  • Na Dokumenty Wewnętrzne o statusie: krajowy, poza terytorium kraju i poza terytorium kraju stawka NP automatycznie dodawany jest kod WEW,
  • Zmiana kontrahenta na dokumentach wewnętrznych, generowanych do faktur pierwotnych, nie ma wpływu na kod WEW, który pobierany jest z dokumentu pierwotnego. W przypadku dokumentów wewnętrznych wystawianych ręcznie, jeśli atrybut WEW zostanie z niego usunięty, zmiana na kontrahenta krajowego/pozaunijnego nie spowoduje ponownego dodania parametru.

Zasady przenoszenia procedur pomiędzy dokumentami handlowymi

  • Na korektę przenoszone są wszystkie kody i procedury z korygowanego dokumentu. Po usunięciu pozycji z korekty, nie jest usuwany powiązany z nią kod. Do czasu zapisania korekty na stałe, Użytkownik może modyfikować tabelę z kodami JPK_V7.
  • Na Fakturę Sprzedaży powstałą z Paragonu, przenoszone są kody JPK_V7 z Paragonu. Na Faktury Sprzedaży tworzone za pomocą funkcji Generuj Fakturę na wybrane pozycje, kody JPK_V7 nie są przenoszone z PA (są pobierane ponownie z karty kontrahenta i z pozycji cennikowych, które widnieją na FS).
  • Na skopiowane dokumenty przenoszone są wszystkie procedury z kopiowanego dokumentu.

3.2.4. Dokumenty w rejestrze VAT

Na formularzu dokumentu w rejestrze VAT na zakładce [JPK] znajduje się sekcja Kody JPK_V7, w której wyświetlane są:

  • kody towarowe,
  • procedury,
  • typy dokumentów.

Mogą one zostać:

  • dodane ręcznie bezpośrednio na formularzu dokumentu w rejestrze VAT,
  • przeniesione z karty kontrahenta,
  • przeniesione z modułu Handel,
  • dodane automatycznie na podstawie danych z karty kontrahenta, danych z modułu Handel lub parametrów zaznaczonych bezpośrednio na formularzu dokumentu w rejestrze VAT.

Na dokumentach w rejestrze VAT zakupu istnieje możliwość dodania procedur i typów dokumentów dotyczących zakupu oraz dowolnych kodów towarowych. Na dokumentach w rejestrze VAT sprzedaży istnieje możliwość dodania procedur i typów dokumentów dotyczących sprzedaży oraz dowolnych kodów towarowych.

Na dokumencie można dodać tylko jeden taki sam kod towarowy/ procedurę/ typ dokumentu danego rodzaju. Przykładowo, nie ma możliwości dodania dwóch pozycji o kodzie GTU_02 na jednym dokumencie.

Po wyborze kontrahenta na dokumencie, do sekcji Kody JPK_V7 automatycznie przenoszone są kody towarowe oraz procedury uzupełnione na karcie tego kontrahenta na zakładce [JPK]. Na dokumenty w rejestrze VAT zakupu przenoszone są tylko procedury dotyczące zakupu. Na dokumenty w rejestrze VAT sprzedaży przenoszone są tylko procedury dotyczące sprzedaży.

Zmiana kontrahenta na dokumencie powoduje usunięcie kodów towarowych/ procedur przypisanych do kontrahenta wybranego pierwotnie na dokumencie i przeniesienie kodów towarowych/ procedur z karty nowo wybranego kontrahenta. Pozycje dodane ręcznie w sekcji Kody JPK_V7 nie są usuwane przy zmianie kontrahenta.

Możliwe jest seryjne dodawanie oraz usuwanie kodów JPK_V7 dla wielu dokumentów jednocześnie. Po wybraniu na liście dokumentów w Rejestrze VAT w menu Operacje seryjne/ JPK opcji Dodaj kody JPK_V7 otwierane jest okno:

W przypadku dokumentów w rejestrze VAT zakupu wyświetlana jest lista procedur i typów dokumentów dotyczących zakupu oraz wszystkie kody towarowe. W przypadku dokumentów w rejestrze VAT sprzedaży wyświetlana jest lista procedur i typów dokumentów dotyczących sprzedaży oraz wszystkie kody towarowe. Istnieje możliwość zaznaczenia więcej niż jednego kodu.

Po zaznaczeniu wybranych kodów i kliknięciu na przycisk Dodaj kody JPK_V7 zostaną one przeniesione na podświetlony/zaznaczone dokumenty.

Analogicznie po wybraniu Operacje seryjne/ JPK/ Usuń kody JPK_V7 otwierane jest okno:

Po zaznaczeniu wybranych kodów i kliknięciu na przycisk Usuń kody JPK_V7 zostaną one usunięte z podświetlonym/zaznaczonych dokumentów.

Istnieje możliwość dodania/ usunięcia kodów JPK_V7 (zarówno z poziomu formularza dokumentu, jak i seryjnie z poziomu listy) na zaksięgowanym dokumencie. W przypadku dokumentów wyeksportowanych dodanie/ usunięcie kodu JPK_V7 jest możliwe jeżeli na karcie operatora zaznaczono parametr Zmiana dokumentów wyeksportowanych.

Przenoszenie dokumentów z modułu Handel

Podczas przenoszenia faktur sprzedażowych i zakupowych z modułu Handel wszystkie zapisane na nich kody towarowe, procedury i typ dokumentów przenoszone są na formularz dokumentu w rejestrze VAT, gdzie podlegają edycji.

Podczas przenoszenia paragonów (zbiorczo lub pojedynczo) na formularz dokumentu w rejestrze VAT sprzedaży przenoszone są procedury i typy dokumentów uzupełnione na paragonie w module Handel. Nie są natomiast przenoszone kody towarowe. Podczas zbiorczego przenoszenia paragonów na dokument w rejestrze VAT przenoszone są wszystkie procedury i typy dokumentów wybrane na zaznaczonych paragonach.

Faktury do paragonów

Faktury wystawione do paragonów z kodem FP są widoczne w części ewidencyjnej pliku JPK_V7 ale nie są uwzględniane w podsumowaniu podatku należnego. Nie są również uwzględniane przy liczeniu części deklaracyjnej. Uwzględniane są w pliku JPK_V7 za miesiąc zgodny z datą ich wystawienia.

Dokumenty VAT marża

W celu poprawnego wykazywania dokumentów VAT marża, faktura sprzedaży w tej procedurze musi mieć uzupełniony kod MR_UZ lub MR_T. Wówczas w tworzonym pliku taka faktura zostanie prawidłowo oznaczona, w tagu SprzedazVAT_Marza wykazana zostanie kwota marży. W pliku JPK_V7 utworzony zostanie dokument techniczny dla zakupu bez pozycji a jedynie z oznaczeniem ZakupVAT_Marza na kwotę różnicy pomiędzy pozycją ze stawką NP na fakturze VAT marża i dokumentem rozliczenia marży.

Automatyczne dodawanie kodów JPK_V7

Dokumenty wewnętrzne

Podczas dodawania/generowania dokumentu wewnętrznego automatycznie dodawany jest typ dokumentu o kodzie WEW. W przypadku rejestru zakupu dotyczy to transakcji krajowych, a dla rejestru sprzedaży dokumentów z rodzajem transakcji: krajowa, dostawa poza terytorium kraju oraz poza terytorium kraju (stawka NP). Usunięcie kodu WEW nie powoduje odznaczenia parametru Dokument wewnętrzny. Na dokument dodawany ręcznie przenoszone są kody towarowe/ procedury uzupełnione na karcie kontrahenta. Na dokument generowany automatycznie przenoszone są procedury uzupełnione na dokumencie pierwotnym.

Uwaga
Na dokumencie wewnętrznym sprzedaży dostępne są wszystkie kody towarowe, procedury oraz typy dokumentów. Wynika to z tego, że w celu prawidłowego uwzględnienia niektórych transakcji w VAT, konieczne jest wygenerowanie zarówno dokumentu wewnętrznego zakupu, jak i sprzedaży. Przykładowo, aby wykazać na deklaracji transakcję importową, zarówno na dokumencie wewnętrznym zakupu, jak i sprzedaży musi być wybrana procedura IMP.

Sprzedaż detaliczna

Po zaznaczeniu na dokumencie w rejestrze VAT sprzedaży parametru Sprzedaż detaliczna automatycznie dodawany jest typ dokumentu o kodzie RO. Usunięcie kodu RO nie powoduje odznaczenia parametru Sprzedaż detaliczna.

Dokument dla kontrahenta powiązanego – sprzedaż

Po wyborze na dokumencie w rejestrze VAT sprzedaży kontrahenta na kartotece którego zaznaczono parametr Kontrahent powiązany automatycznie dodawana jest procedura o kodzie TP.

Metoda kasowa – zakup

Po wyborze na dokumencie w rejestrze VAT zakupu podmiotu na kartotece którego dla parametru Metoda kasowa zaznaczona opcję Zakup lub o zaznaczeniu na dokumencie parametru Metoda kasowa automatycznie dodawany jest typ dokumentu o kodzie MK. Usunięcie kodu MK nie powoduje odznaczenia parametru Metoda kasowa.

Dokument zakupu – Rolnik

Po wyborze na dokumencie w rejestrze VAT zakupu podmiotu na kartotece którego zaznaczono parametr Rolnik lub po zaznaczeniu na dokumencie parametru Rolnik automatycznie dodawany jest typ dokumentu o kodzie VAT_RR. W przypadku faktur VAT RR, numer NIP bądź PESEL dostawcy powinien znajdować się w polu NIP na dokumencie w rejestrze VAT zakupu.

Dokument zakupu – Import

Po wyborze na dokumencie w rejestrze VAT zakupu rodzaju transakcji Import automatycznie dodawana jest procedura o kodzie IMP. Usunięcie kodu IMP nie powoduje zmiany rodzaju transakcji.

MPP – podzielona płatność

Po zaznaczeniu na dokumencie o łącznej kwocie brutto powyżej 15 tys. zł parametru MPP – podzielona płatność automatycznie dodawana jest procedura o kodzie MPP. Usunięcie kodu MPP nie powoduje odznaczenia parametru MPP – po dzielona płatność. Po odznaczeniu na dokumencie parametru MPP – podzielona płatność procedura o kodzie MPP nie zostanie usunięta jeżeli na dokumencie dodano kody towarowe: GTU_05, GTU_06 lub GTU_08. Podczas próby dodania na dokumencie o łącznej kwocie brutto nie przekraczającej 15 tys. zł procedury o kodzie MPP pojawia się komunikat: Wybierasz kod transakcji objętej obowiązkowym mechanizmem podzielonej płatności MPP a dokument nie spełnia warunków takiej weryfikacji. Czy jesteś pewien, że chcesz dodać taki kod?

Uwaga
Procedury o kodach SW, EE, TT_WNT, TT_D, I_42, I_63, B_SPV, B_SPV_DOSTAWA i B_MPV_PROWIZJA nie są automatycznie dodawane na dokumencie. Mogą zostać one przeniesione na dokument w rejestrze VAT z karty kontrahenta, z modułu Handel lub dodane ręcznie przez użytkownika.

Uwaga

Nie jest wymagane wprowadzanie dodatkowych dokumentów technicznych z odpowiednimi atrybutami, jak było to w przypadku plików JPK_VAT. Takie dokumenty tworzone są przez program automatycznie, np. dla pól K_33, K_34, K_35, K_36, K_44, K_45 znajdujących się w części ewidencyjnej pliku JPK_V7. Dokumenty te wysyłane są wyłącznie do pliku JPK_V7, nie pojawiają się w rejestrach VAT w programie.

W przypadku gdy Użytkownik nie korzysta z dostępnego w programie załącznika VAT-ZD lub istnieje potrzeba uwzględnienia dokumentu korygującego ulgę za złe długi z pominięciem VAT-ZD od strony zakupu, wówczas możliwe jest (analogicznie jak w przypadku plików JPK_VAT) skorzystanie z możliwości dodania dokumentów technicznych w rejestrze VAT zakupu i ustawienia na nich atrybutów odpowiednio VAT-ZD ZAKUP NIEZAPŁ i VAT-ZD ZAKUP ZAPŁAC. W takim przypadku należy dodatkowo w części deklaracyjnej pliku JPK_V7 wpisać sumę tych wartości w pola P_46(wartość ujemna) i P_47(wartość dodatnia).

W celu ułatwienia weryfikacji jakie kody JPK wybrane zostały na dokumentach w Rejestrze VAT, dostępna jest kolumna Kody JPKV7. W kolumnie tej wyświetlane są kody JPK_V7 wybrane na formularzu dokumentu na zakładce [JPK] w sekcji Kody JPK_V7.

Informacje o wybranych na dokumentach (zarówno w Rejestrze VAT jak i w module Handel) kodach JP_V7 przenoszone są za pomocą pracy rozproszonej.

4. Przygotowanie i eksport plików JPK_V7


4.1. Lista plików JPK_V7

Po kliknięciu w menu JPK pozycji Pliki JPK_V7  otwierane jest okno Pliki JPK_V7 z ulgą na złe długi. Okno to może zostać również wywołane z poziomu menu Rejestry VAT, gdzie również występuje pozycja Pliki JPK_V7.

Okno posiada 2 zakładki:

  • JPK_V7,
  • Ulga na złe długi (VAT-ZD).

4.1.1. Zakładka JPK_V7

Na pierwszej zakładce widoczna jest lista utworzonych w programie plików JPK_V7:

Na liście dostępne są następujące informacje w formie kolumn:

  • Miesiąc i Rok którego utworzony plik dotyczy,
  • Korekta (jeżeli plik jest korektą widoczna jest wartość 1),
  • Data obliczenia,
  • Kwota podatku podlegającego wpłacie,
  • Status (w przypadku części deklaracyjnej kolumna przyjmuje wartość obliczona bądź zamknięta, jeżeli plik nie zawiera części deklaracyjnej a wyłącznie ewidencyjną – zawsze ma status zamknięta),
  • e-Portal (Nie wysłano, Wysłano/nie odebrano UPO, Wysłano/odebrano UPO, Błąd przetwarzania),
  • Zawartość (informacja czy plik zawiera część deklaracyjną i ewidencyjną czy tylko jedną z nich),
  • Scalony (informacja czy plik został scalony),
  • Operator który wysłał plik,
  • Nazwa pliku,
  • Data wysłania – kolumna domyślnie ukryta,
  • PRED (informacja czy dodano predekretację) – kolumna domyślnie ukryta.
  • Typ pliku (informacja czy jest to plik JPK_V7M miesięczny czy JPK_V7K kwartalny oraz czy jest to plik obowiązkowy czy na żądanie) – kolumna domyślnie ukryta,
  • Wersja części deklaracyjnej – kolumna domyślnie ukryta,

Dostępna jest również kolumna służąca do zaznaczania wybranych pozycji na liście.

Na dole okna dostępny jest parametr Rok służący do filtrowania listy plików JPK_V7 oraz parametr Pokaż scalone, po którego zaznaczeniu wyświetlane są również pliki które zostały scalone.

Ikona Zmień umożliwia podgląd utworzonego wcześniej pliku (części deklaracyjnej). Po rozwinięciu ikony za pomocą znajdującej się obok niej strzałki możliwe jest podejrzenie Urzędowego Poświadczenia Odbioru:

Ikona Usuń  służy do skasowania podświetlonego bądź zaznaczonych plików JPK_V7. Nie można usuwać plików, które uległy scaleniu, plików zatwierdzonych zawierających część deklaracyjną oraz wysłanych do Ministerstwa Finansów.

Kliknięcie ikony Zamknij okno  powoduje zamknięcie okna Pliki JPK_V7 z ulgą na złe długi.

Pliki JPK_V7 zawierające część deklaracyjną wyświetlane są na liście w kolorze zielonym jeżeli są w buforze (niezatwierdzone), natomiast zatwierdzone pliki wyświetlane są w kolorze czarnym. Pliki zawierające wyłącznie część ewidencyjną wyświetlane są po ich dodaniu w kolorze czarnym (nie podlegają one zatwierdzaniu). Jeżeli do pliku utworzona została korekta lub istnieje później dodany plik za ten sam okres, jest on wyświetlany na liście w kolorze czerwonym.

Uwaga
W przypadku gdy aktualizacja wersji zawierającej plik JPK_V7 została wykonana zbyt późno i została już naliczona deklaracja VAT-7 za okresy od października 2020, przy próbie dodania pliku JPK_V7 za ten okres pojawi się komunikat: Za ten okres jest już policzona deklaracja VAT-7(19). Należy ją usunąć zanim policzysz plik JPK_V7.

4.1.2. Zakładka Ulga na złe długi (VAT-ZD)

Na drugiej zakładce widoczna jest lista utworzonych w programie zawiadomień VAT-ZD:

Jest to analogiczna lista jak ta dotycząca załączników VAT-ZD dla deklaracji VAT-7, nie zawiera tylko kolumn e-Deklaracje i Data wysłania. Również same załączniki VAT-ZD generowane za październik 2020 i okresy późniejsze nie zawierają już zakładki [e-Deklaracje]. Wzorzec dokumentu elektronicznego dla plików JPK_V7 nie przewiduje wysyłania  załącznika VAT-ZD. Jednakże załączniki te nadal są potrzebne w celu utworzenia zapisów korekcyjnych do niezapłaconych faktur, które to powinny w pliku JPK_V7 się znaleźć. Lista zawiera kolumny: Miesiąc, Rok, Korekta, Data obliczenia, Kwota oraz Status.

Lista zawiera te same zawiadomienia VAT-ZD, które zostały dodane dla deklaracji VAT-7 (Rejestry VAT/ Deklaracje VAT-7/ zakładka VAT-ZD). Dodanie zawiadomienia na jednej z tych list powoduje wyświetlenie go również w drugim miejscu.

Na liście możliwe jest dodanie załącznika VAT-ZD zarówno dla sprzedaży jak i dla zakupu. Po wygenerowaniu zawiadomienia należy utworzyć do niego zapisy korekcyjne, które zostaną pobrane w momencie generowania pliku JPK_V7. Generowanie zapisów korekcyjnych należy wykonać przed dodaniem pliku JPK_V7 za ten okres lub jego  zatwierdzeniem (dotyczy plików zawierających część deklaracyjną).

W przypadku gdy Użytkownik nie korzysta z dostępnego w programie załącznika VAT-ZD lub istnieje potrzeba uwzględnienia dokumentu korygującego ulgę za złe długi z pominięciem VAT-ZD od strony zakupu, wówczas możliwe jest (analogicznie jak w przypadku plików JPK_VAT) skorzystanie z możliwości dodania dokumentów technicznych w rejestrze VAT zakupu i ustawienia na nich atrybutów odpowiednio VAT-ZD ZAKUP NIEZAPŁ i VAT-ZD ZAKUP ZAPŁAC. W takim przypadku należy dodatkowo w części deklaracyjnej pliku JPK_V7 wpisać sumę tych wartości w pola P_46(wartość ujemna) i P_47(wartość dodatnia).

4.2. Generowanie pliku JPK_V7

Po kliknięciu ikony Dodaj  otwierane jest okno Eksport plików JPK_V7:

Na oknie tym należy wskazać czy plik JPK_V7 jest plikiem obowiązkowym (domyślna opcja) czy też składanym na żądanie Urzędu Skarbowego podczas kontroli. Możliwe jest dodanie za ten sam okres pliku obowiązkowego oraz na żądanie US.

Należy również wskazać okres (rok i miesiąc) za który składany jest plik. Pierwszy plik JPK_V7 można utworzyć dopiero za miesiąc październik 2020. Przy próbie dodania pliku za okresy wcześniejsze pojawia się komunikat: Nie można utworzyć pliku JPK_V7. Za ten okres obowiązuje plik JPK_VAT.

Jeżeli w Konfiguracji Firmy/ Księgowość/ Deklaracje i stawki podatkowe zaznaczony jest parametr Kwartalne rozliczenia VAT, w zależności od wyboru miesiąca będzie się generował nowy plik JPK_V7 albo tylko z częścią ewidencyjną (w przypadku wskazania dwóch pierwszych miesięcy kwartału) albo z częścią ewidencyjną za ostatni miesiąc kwartału i deklaracyjną za cały kwartał (w przypadku wskazania ostatniego miesiąca kwartału). Jeżeli wspomniany parametr nie jest zaznaczony (czyli obowiązuje miesięczny okres rozliczania podatku VAT), wygenerowany zostanie plik z częścią ewidencyjną i deklaracyjną za wskazany miesiąc.

Na oknie należy wybrać Urząd Skarbowy (obowiązkowe pole do uzupełnienia).  W tym polu podpowiada się Urząd Skarbowy dla deklaracji VAT wskazany w Konfiguracji Firmy/ Dane firmy/ Deklaracje. Wskazany urząd powinien mieć na swojej karcie uzupełniony czterocyfrowy kod urzędu. Jeśli ten kod nie jest uzupełniony, wówczas wyświetlane jest ostrzeżenie: „Na karcie US nie uzupełniono kodu urzędu. Eksport plików JPK będzie możliwy po uzupełnieniu kodu urzędu na karcie US.

Kolejną uzupełnianą informacją jest współczynnik szacunkowy struktury sprzedaży. Wartość współczynnika podpowiada się na podstawie deklaracji za miesiąc poprzedni (jeśli była dodana w danym roku).

W przypadku pliku za miesiąc styczeń, współczynnik wyliczany jest na podstawie zapisów z rejestru sprzedaży za poprzedni rok. Wówczas do wyliczenia wartości współczynnika brane są pod uwagę dokumenty, które na pozycji w kolumnie Uwz. w proporcji mają ustawione Uwzględniaj lub Tylko w mianowniku. Proporcja jest wyliczana jako iloraz, gdzie w liczniku znajduje się roczny obrót z tytułu czynności, w związku z którymi podatnik ma prawo do obniżenia podatku należnego, a w mianowniku całkowity roczny obrót podatnika (łącznie np. z subwencjami).

W przypadku braku zapisów w rejestrze VAT za poprzedni rok, podpowiada się współczynnik w wartości 100%, natomiast Użytkownik może go ręcznie zmodyfikować zaznaczając parametr. Po zaznaczeniu parametru i wprowadzeniu wartości współczynnika, jest ona zapamiętywana dla kolejnych plików JPK_V7.

Według wskazanego współczynnika szacunkowego struktury sprzedaży przeliczana jest część deklaracyjna, jak również zapisy części ewidencyjnej dotyczącej zakupów z odliczeniami warunkowymi.

U dołu okna znajduje się lista najczęściej zadawanych pytań dotyczących plików JPK_V7 wraz z odpowiedziami.

Ikona Anuluj  powoduje zamknięcie okna Eksport plików JPK_V7 bez wygenerowania pliku.

Po kliknięciu ikony Utwórz plik  następuje wygenerowanie pliku JPK_V7 za wskazany okres.

Uwaga
Przed generowaniem pliku JPK_V7, jeżeli ma zostać uwzględniona ulga na złe długi, należy najpierw naliczyć zawiadomienie VAT-ZD, wygenerować zapisy korekcyjne i dopiero wówczas utworzyć plik JPK_V7.

W przypadku rozliczenia VAT miesięcznego i za trzeci miesiąc kwartału dla rozliczenia kwartalnego VAT otwierane jest okno z częścią deklaracyjną pliku:

Okno to jest bardzo podobne do formularza dostępnej w programie deklaracji VAT-7. Okres za który sporządzany jest plik, jak również wartość szacunkowego współczynnika struktury sprzedaży pobierane są z okna Eksport plików JPK_V7 i na oknie z częścią deklaracyjną nie podlegają edycji. W poszczególnych polach uzupełnione będą automatycznie kwoty na podstawie zapisów w rejestrach VAT. Część pól umożliwia ręczną edycję wartości przez Użytkownika, pozwalając na wpisanie własnych danych. Na podstawie występujących na formularzu danych (wyliczonych automatycznie, jak i wpisanych ręcznie) do pliku JPK_V7 zostaną przeniesione wartości do odpowiednich pól odpowiadających tym z formularza deklaracji.

Uwaga
W przypadku kwartalnego rozliczania podatku VAT, pliki JPK_V7 za 2 pierwsze miesiące kwartału zawierają wyłącznie część ewidencyjną (bez części deklaracyjnej), natomiast plik za ostatni miesiąc kwartału zawiera zarówno część ewidencyjną, jak i deklaracyjną. Dla miesięcznego okresu rozliczania podatku VAT, pliki JPK_V7 zawierają obie części – deklaracyjną i ewidencyjną.

W związku z tym w przypadku kwartalnej metody rozliczania podatku VAT, jeżeli plik generowany jest za dwa pierwsze miesiące kwartału, po kliknięciu ikony Utwórz plik  następuje od razu utworzenie części ewidencyjnej pliku JPK_V7 bez otwarcia formularza z częścią deklaracyjną.

W stosunku do obecnego wzoru deklaracji VAT-7(20), na części deklaracyjnej JPK_V7M(21) dodane zostały pola P_59 – P_61 dotyczące Wniosku o zaliczenie podatku na poczet przyszłych zobowiązań:

Dodane zostały również pola P_68 i P_69 prezentujące łączną sumę kwot netto i VAT dla zapisów korekcyjnych dla VAT-ZD od sprzedaży uwzględnionych w bieżącym miesiącu/kwartale:

Do pliku JPK_V7 przenoszona jest informacja o dacie jego utworzenia, pobierana jako data systemowa ze stanowiska komputerowego. W związku z tym że data ta nie może być wcześniejsza niż 01.10.2020, jeżeli plik zostanie utworzony wcześniej, do pliku zostanie przeniesiona data 01.10.2020. Dotyczy to zarówno plików JPK_V7 tworzonych w programie, jak i scalanych.

Dane podatnika (NIP i nazwa pełna) pobierane są z pieczątki firmy. Jeżeli w Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW zaznaczono parametr Podatnik jest osobą fizyczną, wówczas wymagane przez plik dane jak Nazwisko i Imię podatnika pobierane są z tej właśnie gałęzi, natomiast adres e-mail, jak również numer telefonu pobierane są z części deklaracyjnej pliku JPK_V7 (jeżeli są tam uzupełnione). W przypadku numeru telefonu, jeżeli nie jest wskazany w części deklaracyjnej pliku, jest pobierany z Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW – odpowiednio z danych przedstawiciela, a jeżeli tam jest nieuzupełniony – z danych adresowych firmy. Jeżeli chodzi o adres e-mail, jeżeli nie jest wskazany w części deklaracyjnej pliku JPK_V7, jest pobierany z Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW z danych przedstawiciela, a jeżeli tam nie jest wskazany – z Pieczątki firmy.

Uwaga
Do poprawnej wysyłki pliku JPK_V7 wymagane jest uzupełnienie adresu e-mail na 4 zakładce cześci deklaracyjnej.

Jeżeli podatnik rozlicza VAT metodą struktury zakupów, na oknie dostępna jest ikona  Struktura zakupów służąca do obliczenia podatku należnego dokonując podziału sprzedaży za dany miesiąc w proporcjach wynikających z udokumentowanych zakupów. Po wykonaniu tej operacji należy ponownie przeliczyć część deklaracyjną pliku JPK_V7 za pomocą ikony  Przelicz.

Po zweryfikowaniu wyliczonych wartości i ewentualnym uzupełnieniu odpowiednich pól na formularzu Użytkownik może zatwierdzić deklarację klikając na ikonę Zapisz zmiany  co spowoduje wygenerowanie pliku JPK_V7.

Wygenerowany plik składa się z dwóch części – deklaracyjnej i ewidencyjnej lub tylko jednej z nich. Zapisy z rejestrów VAT przesyłane są do części ewidencyjnej według daty obowiązku podatkowego. Dla rejestru sprzedaży VAT to data obowiązku podatkowego a dla rejestru VAT zakupu – data prawa do odliczenia.  Wyjątek stanowią faktury wystawione do paragonów posiadające kod JPK_V7 o symbolu FP – trafiają one do pliku zgodnie z datą wystawienia.

Podczas eksportu Rejestrów VAT do części ewidencyjnej plików JPK_V7 przenoszone są m.in. następujące dane:

Dla Rejestru VAT zakupu:

  • Identyfikator podatkowy podmiotu z zapisu w rejestrze VAT (NIP w przypadku podmiotu gospodarczego, w przypadku osób fizycznych wstawiana jest wartość BRAK); w przypadku nieuzupełnienia numeru NIP na dokumencie do pliku przenoszona jest wartość BRAK
  • Nazwa dostawcy z zapisu w rejestrze VAT; w przypadku nieuzupełnienia pola Nazwa na dokumencie, do pliku przenoszona jest wartość BRAK
  • Data wystawienia
  • Data wpływu (jeżeli jest różna od daty wystawienia)
  • Numer dokumentu
  • Kwoty podzielone według kwalifikacji do VAT
  • Informacje o typie dokumentu i procedurze na podstawie znajdujących się na dokumencie kodach JPK_V7

Dla Rejestru VAT sprzedaży:

  • Identyfikator podatkowy podmiotu z zapisu w rejestrze VAT (NIP w przypadku podmiotu gospodarczego, w przypadku osób fizycznych wstawiana jest wartość BRAK); w przypadku nieuzupełnienia numeru NIP na dokumencie do pliku przenoszona jest wartość BRAK,
  • Nazwa kontrahenta z zapisu w rejestrze VAT; w przypadku nieuzupełnienia pola Nazwa na dokumencie, do pliku przenoszona jest wartość BRAK; jeżeli dokument jest Paragonem (ma wybrany kod RO), wówczas w polu określającym nazwę kontrahenta pojawia się opis SPRZEDAŻ PARAGONOWA,
  • Data wystawienia,
  • Data sprzedaży (o ile różni się od daty wystawienia)
  • Numer dokumentu
  • Kwoty podzielone według kwalifikacji do VAT
  • Informacje o typie dokumentu, procedurze i kodach towarowych na podstawie znajdujących się na dokumencie kodach JPK_V7

Wszystkie kody JPK_V7 uzupełnione na dokumentach są przenoszone do pliku i możliwe jest podejrzenie jego zawartości w MS Excelu. Pozwala to na weryfikację które kody zostały przypisane do określonego dokumentu (w kolumnach odpowiadającym poszczególnym kodom pojawi się oznaczenia 1 dla kodu, który znajduje się na dokumencie).

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK_V7.

W logu z procesu generowania pliku JPK_V7 pojawia się informacja/ostrzeżenie dla jakich dokumentów i do jakich pól wstawiono do pliku wartość BRAK/SPRZEDAŻ PARAGONOWA wraz z sugestią, aby Użytkownik zweryfikował poprawność tych dokumentów. W przypadku raportu dobowego lub faktury dla osoby fizycznej brak numeru NIP nie jest błędem, natomiast w przypadku np. faktury sprzedaży dla podmiotu gospodarczego dane takie jak numer NIP i nazwa kontrahenta powinny zostać uzupełnione na dokumencie a plik JPK_V7 ponownie wygenerowany.

Część deklaracyjna pliku JPK_V7 może mieć status obliczona (w buforze) lub zamknięta – analogicznie jak pozostałe typy deklaracji. Jeżeli deklaracja została zamknięta, możliwe jest jej odblokowanie z poziomu listy plików JPK_V7 poprzez kliknięcie na niej prawym przyciskiem myszy i wybranie opcji Odblokuj część deklaracyjną. Nie ma możliwości odblokowywania pliku JPK_V7 który został już wysłany.

Część deklaracyjna pliku (w przypadku obowiązkowych plików JPK_V7) generuje w preliminarzu płatność o kierunku rozchód na kwotę podatku do zapłaty (pole P_51) lub płatność o kierunku przychód na kwotę do zwrotu na rachunek bankowy (pole P_54 w pliku). Stan płatności jest przenoszony z części deklaracyjnej: płatność ma stan bufor jeżeli deklaracja jest niezatwierdzona lub do realizacji jeżeli deklaracja została zablokowana przez zmianami. Korekta części deklaracyjnej pliku generuje płatność na kwotę różnicy podatku do zapłaty (lub kwoty zwrotu na rachunek bankowy) w stosunku do korygowanej deklaracji.

W przypadku plików JPK_V7 na żądanie Urzędu Skarbowego – generują one płatności o statusie Nie podlega jeżeli za dany okres nie ma jeszcze dodanego obowiązkowego pliku JPK_V7. W celu zapewnienia prawidłowości rozliczeń płatności wynikających z części deklaracyjnej plików JPK_V7 zaleca się dodawanie pliku na żądanie dopiero wówczas, kiedy wcześniej utworzony już został obowiązkowy plik JPK_V7 (i ewentualne jego korekty). W przeciwnym razie obowiązkowy plik JPK_V7 dodany za okres za który dodano już wcześniej plik na żądanie nie wygeneruje nowej płatności w preliminarzu (lub wygeneruje płatność tylko na kwotę różnicy w stosunku do pliku na żądanie).

W przypadku kliknięcia ikony Anuluj zmiany  następuje odrzucenie tworzonego pliku i powrót na listę plików JPK_V7.

Wygenerowanie pliku JPK_V7 powoduje utworzenie pliku w formacie XML. Jeżeli folder dla plików JPK nie został wskazany w konfiguracji na danym stanowisku komputerowym, podczas próby utworzenia pliku pojawia się komunikat: W menu Konfiguracja->Stanowisko->Ogólne->Jednolity plik kontrolny nie ustawiono katalogu dla plików z danymi. Czy chcesz skonfigurować teraz? Po wybraniu opcji Tak następuje otwarcie okna Konfiguracji  na którym można wskazać folder zapisu dla plików JPK.

Po zapisaniu pliku z częścią deklaracyjną istnieje możliwość edycji tego pliku do czasu kiedy pozostaje on w buforze i ponownego przeliczenia części deklaracyjnej. W takim wypadku jeżeli po utworzeniu pliku użytkownik dokona zmian w części deklaracyjnej, wówczas utworzony zostanie nowy plik XML zawierający plik JPK_V7 w tej lokalizacji na dysku.

Plik JPK_V7 zawierający część deklaracyjną przed wysłaniem musi zostać zatwierdzony poprzez zaznaczenie na nim parametru Zablokuj deklarację przed zmianami.

Jeżeli został sporządzony plik JPK_V7 z częścią deklaracyjną i nie został zatwierdzony, a w międzyczasie nastąpiły zmiany w rejestrze VAT wpływające na wykazywane w pliku informacje, podczas próby zablokowania części deklaracyjnej pojawia się informacja: Błąd obliczania deklaracji. Od ostatniego przeliczenia deklaracji nastąpiły zmiany w ewidencji, należy ponownie przeliczyć deklarację. Po pojawieniu się tego komunikatu należy kliknąć ikonę Przelicz na formularzu części deklaracyjnej i zapisać zmiany. Komunikat nie pojawia się jeżeli na części deklaracyjnej uzupełniono wyłącznie pola P_39 lub P_44 – P_47.

Jeżeli w Konfiguracji Programu/ Ogólne/ e-Deklaracje/JPK zaznaczony jest parametr Sprawdzaj poprawność plików JPK przed wysłaniem, wówczas weryfikacja zgodności pliku JPK_V7 z wzorcem Ministerstwa Finansów odbywa się zarówno podczas tworzenia pliku, jak również podczas jego wysyłki. Generowany plik jest również weryfikowany pod kątem uzupełnienia pól obowiązkowych. Użytkownik otrzymuje informację jeśli jakieś dane nie zostały prawidłowo uzupełnione, np. brakuje adresu e-mail lub imienia i nazwiska w przypadku podatnika będącego osobą fizyczną. Wyłączenie walidacji jest możliwe w Konfiguracji Programu/ Ogólne/ e-Deklaracje/JPK ale nie jest zalecane. Pliki zawierające błędy bądź niepełne informacje nie są wysyłane.

Jeżeli w trakcie sprawdzania poprawności pliku JPK_V7 wystąpią błędy związane z walidacją, wówczas generowany jest komunikat:

Jeżeli plik JPK_V7 zawiera część deklaracyjną należy go odblokować, poprawnie uzupełnić dane, przeliczyć JPK_V7 i ponownie wysłać.

W przypadku pliku zawierającego tylko ewidencję należy uzupełnić brakujące dane, dodać nowy plik JPK_V7 i ponownie wysłać. Poprzedni plik można usunąć.

Uwaga
Występujący w logu podczas generowania plików JPK komunikat:

Nie można sprawdzić poprawności wygenerowanego dokumentu(XML), ponieważ występują problemy z dostępem do serwerów Ministerstwa Finansów. Plik JPK można wysłać, a jego poprawność zostanie sprawdzona przy odbiorze UPO lub wysłać w innym terminie, gdy dostęp do serwerów zostanie przywrócony. (Nie udało się pobrać schematu

może wynikać z braku możliwości połączenia się z serwerem http://crd.gov.pl, na którym znajdują się wzorce dokumentu elektronicznego z którymi Comarch ERP Optima porównuje generowany plik JPK. Należy sprawdzić na stanowisku ustawienia programu antywirusowego, zapory sieciowej, a w przypadku korzystania z serwera proxy – dodać wyjątek na ten adres. Komunikat może również wynikać z czasowej niedostępności tego serwera. Należy również zweryfikować możliwość nawiązania komunikacji z adresem www.mf.gov.pl.


4.3. Wysyłka plików JPK_V7

Znajdująca się na dole okna Pliki JPK_V7 z ulgą na złe długi ikona Wyślij  umożliwia wysłanie zaznaczonych plików JPK_V7 za pomocą:

  • podpisu kwalifikowanego,
  • podpisu niekwalifikowanego (wyłącznie osoby fizyczne)
  • podpisu zaufanego.

Odpowiednią opcję należy wybrać po rozwinięciu ikony Wyślij:

Wybranie pierwszej opcji powoduje wywołanie okna Wybierz certyfikat do podpisu zawierającego listę zainstalowanych w systemie Windows certyfikatów służących do elektronicznego podpisywania wysyłanych deklaracji oraz plików JPK_V7.

Uwaga
Jeżeli Użytkownik korzysta z podpisu kwalifikowanego (np. Szafir) podpisując nim w programie Comarch ERP Optima deklaracje, a pomimo to podczas wysyłania pliku JPK_V7 na liście certyfikatów podpis nie jest widoczny, wówczas należy zaktualizować ze strony producenta aplikację do obsługi karty kryptograficznej i zrestartować komputer.

Warunkiem widoczności certyfikatu jest jego zainstalowanie w systemie operacyjnym. Certyfikat musi być prawidłowy (zaufany). W celu weryfikacji poprawności certyfikatu należy uruchomić program certmgr.msc. W grupie certyfikatów osobistych należy sprawdzić, czy jest widoczny certyfikat, który ma być wykorzystany do podpisu. Jeżeli go nie ma w tym miejscu, oznacza to że certyfikat nie został zainstalowany w systemie Windows.

Po wyświetleniu szczegółów certyfikatu należy na zakładce [Ogólne] upewnić się czy jest on aktualny oraz czy widoczna jest informacja: Masz klucz prywatny, który odpowiada temu certyfikatowi. Dodatkowo na zakładce [Ścieżka certyfikacji] musi być widoczny stan certyfikatu: Ten certyfikat jest prawidłowy – tak jak na poniższych zrzutach ekranu:

Po wybraniu opcji Wyślij podpisem niekwalifikowanym otwierane jest okno z danymi podatnika pobranymi z Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW: numerem NIP, imieniem i nazwiskiem oraz datą urodzenia. Na oknie należy uzupełnić kwotę przychodu podatnika za dwa lata wstecz. Domyślnie w tym polu wykazywana jest kwota 0,00.

Uwaga
Podpisywanie plików JPK_V7 podpisem niekwalifikowanym możliwe jest jedynie dla osób fizycznych. Wysłanie tym sposobem plików JPK_V7 podatników nie będących osobami fizycznymi nie jest możliwe.

Jeżeli podczas wysyłki pliku JPK_V7 podano niewłaściwą kwotę przychodu (podczas odbioru UPO pojawił się błąd o kodzie 403), wówczas plik JPK_V7 uzyskuje z powrotem status Nie wysłano, umożliwiając ponowną jego wysyłkę. W przypadku podpisu niekwalifikowanego nieprawidłowe dane autoryzacyjne nie blokują możliwości kolejnej próby wysyłki pliku JPK_V7. Możliwe jest ponowne wprowadzenie prawidłowych danych i wysyłka pliku.

Korzystając z wysyłki plików JPK_V7 za pomocą podpisu niekwalifikowanego należy upewnić się, że są podane wszystkie wymagane dane. Brak jednej z nich (np. numeru NIP, imienia bądź nazwiska) powoduje wyświetlenie komunikatu: Nieprawidłowy format danych autoryzujących.

Po wybraniu opcji Wyślij podpisem zaufanym dla plików o statusie Nie wysłano otwierane jest okno z kreatorem procesu podpisywania pliku JPK podpisem zaufanym:

Plik JPK przeznaczony do podpisu za pomocą podpisu zaufanego tworzony jest w katalogu wskazanym w Comarch ERP Optima w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny w katalogu zgodnym z nazwą firmy w podkatalogu E-PUAP. Informacja o dokładnej ścieżce do pliku znajduje się na oknie Podpisywanie pliku JPK podpisem zaufanym w pierwszym kroku kreatora. Tam również dostępny jest przycisk Skopiuj link do schowka, którego użycie ułatwia wklejenie ścieżki do katalogu, w którym znajduje się przygotowany plik JPK na stronie ePUAP.

W drugim kroku należy przejść  na stronę https://www.gov.pl/web/gov/podpisz-dokument-elektronicznie-wykorzystaj-podpis-zaufany i podpisać wygenerowany plik JPK_V7.

Po podpisaniu pliku i jego zapisaniu na dysku, należy go wskazać klikając na przycisk Wybierz podpisany plik JPK.

Ikona Odbierz UPO służy do odebrania Urzędowego Poświadczenia Odbioru dla zaznaczonych plików JPK_V7. UPO dla podświetlonego na liście pliku można podejrzeć za pomocą ikony  .

Ikony Wyślij oraz Odbierz UPO są aktywne dla operatora, który na swojej karcie ma zaznaczony parametr Prawo do eksportu plików JPK.

4.4. Korekta pliku JPK_V7

Dostępna na oknie Pliki JPK_V7 z ulgą na złe długi ikona Korekta  udostępnia po kliknięciu do wyboru 3 opcje:

  • Korekta części deklaracyjnej i ewidencyjnej,
  • Korekta części ewidencyjnej,
  • Korekta części deklaracyjnej.

Wybór rodzaju korekty zależy od zmian jakie mają zostać wykazane. Jeżeli miała miejsce zmiana w rejestrze VAT wpływająca na wyliczenie deklaracji (np. dodanie nowego dokumentu) wówczas należy sporządzić korektę części deklaracyjnej i ewidencyjnej. Jeśli korekta ma dotyczyć np. wyłącznie terminu zwrotu podatku VAT, wówczas należy wybrać korektę części deklaracyjnej. W przypadku kiedy na dokumencie w ewidencji VAT zmianie uległy np. dane adresowe kontrahenta, które nie wpływają na kwoty wykazywane w części deklaracyjnej, wówczas wystarczy sporządzić korektę samej ewidencji.

W przypadku kwartalnego rozliczania podatku VAT, jeżeli podświetlony został plik za pierwszy i drugi miesiąc kwartału, wówczas dostępna tylko opcja korekty części ewidencyjnej (pozostałe opcje korekty są wyszarzane). W pozostałych przypadkach wszystkie opcje korekty są aktywne.

Korekta powoduje utworzenie nowego pliku JPK_V7. Otwierany jest wówczas formularz Eksport plików JPK_V7, na którym możliwe jest zmodyfikowanie współczynnika struktury sprzedaży (jeżeli tworzona jest korekta zawierająca część deklaracyjną i ewidencyjną). W przypadku korekty tylko części deklaracyjnej lub tylko części ewidencyjnej zmiana współczynnika szacunkowego struktury sprzedaży nie jest możliwa. Okres za który sporządzany jest plik pobierany jest z korygowanej na liście pozycji i nie ma możliwości jego zmiany.

Jeśli wykonywana jest korekta części deklaracyjnej, po kliknięciu ikony Utwórz plik  otwiera się formularz z częścią deklaracyjną. Po kliknięciu ikony Zapisz zmiany  następuje wygenerowanie korekty pliku JPK_V7.

Jeśli wykonywana jest korekta tylko części ewidencyjnej, po kliknięciu ikony Utwórz plik  od razu generowana jest korekta pliku JPK_V7.

Ikona korekty dostępna jest wyłącznie w przypadku pozycji wyświetlanych na liście w kolorze czarnym – zamkniętej części deklaracyjnej bądź części ewidencyjnej.

4.5. Podgląd zawartości pliku JPK_V7

Na wstążce programu z poziomu okna Pliki JPK_V7 z ulgą na złe długi dostępna jest ikona Podgląd pliku  która powoduje otwarcie arkusza MS Excel z zawartością podświetlonego na liście pliku JPK_V7. Arkusz zawiera 5 zakładek prezentujących poszczególne części pliku:

  • JPK_V7_DanePodatnika – nazwa programu, cel złożenia, NIP, telefon, adres email, pełna nazwa podatnika,
  • JPK_V7_Deklaracja – kwoty z części deklaracyjnej,
  • JPK_V7_Agregaty – zagregowane wartości z części ewidencyjnej,
  • JPK_V7_SprzedazWiersz – dokumenty sprzedaży,
  • JPK_V7_ZakupWiersz – dokumenty zakupu.

4.6. Dodawanie plików JPK_V7 z dysku

Za pomocą dostępnej na wstążce programu funkcji  Dodaj plik JPK z dysku na listę możliwe jest zaczytanie pliku JPK_V7 z pliku XML. Umożliwia to import plików wygenerowanych z poziomu innych baz Comarch ERP Optima jak również w programach innych producentów. Po kliknięciu ikony pojawia się okno wyboru pliku:

Na otwartym oknie podpowiada się standardowy folder zapisu dla plików JPK dla firmy (określany w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny, łącznie z podkatalogiem o nazwie zgodnej z nazwą firmy). Po wskazaniu nowego pliku XML zawierającego plik JPK i kliknięciu Otwórz, plik zapisywany jest do bazy i pojawia się na liście plików JPK_V7.

Z poziomu okna Pliki JPK_V7 z ulgą na złe długi możliwe jest wczytanie wyłącznie plików JPK_V7. Pliki JPK_VAT należy wczytywać z poziomu okna Pliki JPK.

Zaimportowany plik JPK_V7 podlega edycji w zakresie pól możliwych do uzupełnienia ręcznie. Nie można jednak wykonać do niego korekty. Nie generuje również płatności w preliminarzu. Plik można wysłać do Ministerstwa Finansów i odebrać Urzędowe Poświadczenie Odbioru. Jeśli zawiera część deklaracyjną, można ją wydrukować wybierając wydruk JPK_V7M, JPK_V7K z listy plików. Stąd dostępny jest również wydruk UPO.

Dla plików wczytanych z dysku nie ma możliwości robienia wydruków z formularza części deklaracyjnej.

4.7. Scalanie plików JPK_V7

Dostępna na wstążce programu ikona  Scal pliki JPK_V7 jest aktywna po zaznaczeniu na liście co najmniej dwóch plików JPK_V7. Po jej kliknięciu otwierane jest okno Łączenie plików JPK_V7:

Scalać można ze sobą wyłącznie pliki tego samego typu (z tą samą zawartością), a więc:

  • albo pliki jednocześnie z częścią deklaracyjną i ewidencyjną,
  • albo pliki wyłącznie z częścią deklaracyjną,
  • albo pliki wyłącznie z częścią ewidencyjną.

Na oknie należy wskazać Urząd Skarbowy do którego jest składany plik.

Znajdują się na nim również 2 parametry:

  • Oznacz plik JPK_V7 jako korektę – w przypadku zaznaczenia, plik tworzony jest jako korekta
  • Po scaleniu utwórz również plik MS Excel – po wygenerowaniu scalonego pliku otwierany jest arkusz kalkulacyjny z jego zawartością

Należy również określić czy scalony plik JPK_V7 jest plikiem obowiązkowym czy składanym na żądanie Urzędu Skarbowego.

Po kliknięciu ikony  Wykonaj połączenie następuje utworzenie scalonego pliku i powrót na listę plików. Nazwa scalonego pliku zaczyna się od: Jpk_V7_SCALONY. Pliki które zostały scalone wyświetlane są (w przypadku kiedy parametr Pokaż scalone jest zaznaczony) na liście w kolorze szarym. Scalony plik zawiera sumę zarówno części deklaracyjnych jak i ewidencyjnych z połączonych plików. Dane podatnika pobierane są z bazy firmowej, podobnie jak w przypadku nowych plików JPK_V7.

Po utworzeniu scalonego pliku zawierającego część deklaracyjną możliwe jest podejrzenie go i zmodyfikowanie edytowalnych pozycji.

Uwaga
Po połączeniu plików JPK_V7 należy samodzielnie zweryfikować pola od P_49 do końca formularza.

Po edycji takiego pliku tworzony jest nowy plik XML już o standardowej nazwie (bez członu SCALONY).

Scalony plik nie generuje nowych płatności w preliminarzu. W przypadku kiedy scalany był wygenerowany w danej bazie plik JPK_V7 (który posiadał w preliminarzu płatność) z plikiem wgrywam z dysku (który nie posiadał płatności), po połączeniu płatność scalonego pliku pozostaje bez zmian (jest na taką kwotę, jaką miała płatność z pierwotnego pliku wygenerowanego w bazie).

Do pliku scalonego nie można wykonać korekty. Nie generuje również płatności w preliminarzu. Plik można wysłać do Ministerstwa Finansów i odebrać Urzędowe Poświadczenie Odbioru. Jeśli zawiera część deklaracyjną można ją wydrukować wybierając wydruk JPK_V7M, JPK_V7K z listy plików. Stąd dostępny jest również wydruk UPO.

Dla plików scalonych nie ma możliwości robienia wydruków z formularza części deklaracyjnej.

Wybór opcji  Anuluj zmiany powoduje zamknięcie okna Łączenie plików JPK_V7 i powrót na listę plików bez wykonania połączenia plików.

4.8. Wydruk części deklaracyjnej oraz Urzędowego poświadczenia Odbioru

Wydruk części deklaracyjnej pliku JPK_V7 (również z załącznikami UPO i ORD-ZU) oraz samego Urzędowego poświadczenia odbioru dostępne są z poziomu listy plików JPK_V7, jak również z poziomu formularza deklaracji, za wyjątkiem plików wczytanych na listę i scalonych.

4.9. Księgowanie części deklaracyjnej

W przypadku księgowości kontowej na liście plików JPK_V7 dostępna jest ikona  Księgowanie deklaracji służąca do zaksięgowania kwot z części deklaracyjnej pliku, za pomocą schematu księgowego bądź predekretacji.. Dotychczasowe schematy utworzone przez Użytkownika do księgowania deklaracji VAT-7 księgują analogiczne kwoty z części deklaracyjnej plików JPK_V7. Pliki wczytane na listę, scalone oraz zawierające tylko część ewidencyjną nie podlegają księgowaniu.

5. Import plików JPK_V7 do rejestrów VAT

Opcja importu plików JPK_V7 (jak również JPK_VAT) do rejestrów VAT dostępna jest z menu głównego po wyborze JPK/ Import do rej.VAT :

Na oknie po kliknięciu ikony  Wybór pliku należy wskazać źródłowy plik XML, z którego mają zostać importowane dane. Warunkiem powodzenia importu jest aby struktura wskazanego pliku była zgodna z wymaganą przez Ministerstwo Finansów strukturą JPK_VAT(2), JPK_VAT(3) lub JPK_V7. W przypadku importu z plików JPK_V7 program pobiera informacje wyłącznie z części ewidencyjnej pliku.

W przypadku wybrania niewłaściwego typu pliku pojawia się stosowne ostrzeżenie i import danych nie jest możliwy.

Parametr Za okres domyślnie jest nieaktywny. Takie ustawienie powoduje, że wszystkie dokumenty z pliku zostaną zaimportowane bez względu na ich daty. Po wskazaniu pliku JPK_V7 zakres dat zostaje uzupełniony na podstawie danych w pliku. Po zaznaczeniu parametru Za okres Użytkownik może wpisać inny zakres dat (zawęzić okres) za jaki zostaną zaimportowane dokumenty ze wskazanego pliku. Dla dokumentów sprzedażowych wskazywane dla parametru daty dotyczą daty wystawienia, natomiast dla dokumentów zakupowych – daty wpływu. Jeżeli w pliku JPK_V7 dla dokumentu importowanego do rejestru zakupu VAT nieuzupełniona jest data wpływu, jest ona uzupełniona jako zgodna z datą zakupu. W przypadku dokumentu importowanego do rejestru sprzedaży VAT, jeżeli nieuzupełniona jest data sprzedaży, jest ona uzupełniona jako zgodna z datą wystawienia.

Na oknie istnieje możliwość wskazania rejestrów sprzedaży i zakupów VAT, do których mają zostać zaimportowane dokumenty z pliku. Odznaczenie jednego z typów rejestru VAT (zakupów lub sprzedaży) powoduje, że tego typu dokumenty nie zostaną zaimportowane z pliku. Jeżeli w pliku JPK_V7 występują tylko dokumenty jednego typu (np. tylko rejestr sprzedaży VAT) i ten typ rejestrów został odznaczony przez Użytkownika, przy próbie importu pojawi się informacja o braku danych do zaimportowania.

Podczas importu dokumentów, jeśli w pliku JPK_V7 uzupełniony jest numer NIP kontrahenta i w bazie istnieje już kontrahent z takim numerem NIP, wówczas po zaimportowaniu dokument przypisywany jest do tego kontrahenta (podstawiany jest jego akronim). Jeżeli istniejący w bazie kontrahent oznaczony został jako zduplikowany podczas operacji łączenia kart kontrahentów, na zaimportowanym dokumencie podstawiony zostanie kontrahent główny. Dane kontrahenta na dokumencie (jego nazwa i adres) przenoszone są zawsze z pliku. Rodzaj transakcji, rodzaj na pozycji dokumentu oraz status kontrahenta na zaimportowanym dokumencie uzupełniane są zgodnie z domyślnymi ustawieniami kwalifikującymi do JPK_V7 dla pola, do którego dany dokument w pliku został zakwalifikowany.

Na dokument podstawiana jest kategoria sprzedaży lub zakupu z istniejącej karty kontrahenta (jeżeli domyślne kategorie dla kontrahenta są uzupełnione).

W przypadku nie zaznaczonego parametru Załóż karty kontrahentów (na podstawie numeru NIP) jeżeli kontrahent o takim numerze NIP jak na dokumencie w pliku nie występuje w bazie (lub jest więcej niż jeden kontrahent z takim numerem NIP), wówczas na zaimportowanym dokumencie podstawiany jest kontrahent Nieokreślony. Dane kontrahenta na dokumencie (jego nazwa i adres) przenoszone są z pliku. W przypadku importu dokumentów do rejestru VAT bez zakładania kart kontrahentów, jeżeli na dokumencie w pliku JPK_V7 uzupełniony jest numer NIP kontrahenta, na zaimportowanym dokumencie zaznaczony zostaje parametr Podmiot gospodarczy. Jeżeli w pliku JPK_V7 nie ma numeru NIP dla transakcji (pole z numerem NIP jest puste lub znajduje się w nim znak „-”), w rejestrze VAT na dokumencie zaznaczony zostaje parametr Finalny. Po przeprowadzonym imporcie zaleca się wykonanie dla zaimportowanych dokumentów operacji seryjnej Zweryfikuj status VAT.

W przypadku zaznaczonego parametru Załóż karty kontrahentów (na podstawie numeru NIP) jeżeli kontrahent o takim numerze NIP jak na dokumencie w pliku nie występuje w bazie, wówczas zostanie założona jego karta na podstawie danych w pliku i zostanie on podstawiony na zaimportowanym dokumencie. Jako akronim nowego kontrahenta wstawiany jest numer NIP. Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Autonumeracja akronimów kontrahentów przy dodawaniu, wówczas akronim zakładanego kontrahenta nadawany jest według wskazanego w Konfiguracji schematu numeracji.

Jeżeli na dokumencie w pliku kontrahent nie ma uzupełnionego numeru NIP (lub w bazie jest więcej niż jeden kontrahent z takim numerem NIP), wówczas karta kontrahenta nie jest zakładana. Na takim dokumencie po imporcie podstawia się kontrahent Nieokreślony z danymi adresowymi takimi, jakie są w pliku JPK_V7. W przypadku braku numeru NIP kontrahenta w pliku JPK_V7, na dokumencie jako rodzaj transakcji podpowie się Krajowa.

Jeżeli numer NIP kontrahenta krajowego w pliku JPK_V7 jest niepoprawny, nie jest zakładana karta takiego kontrahenta i nie są importowane jego dokumenty do rejestru VAT.

Na oknie importu istnieje możliwość wyboru formy płatności na zaimportowanych dokumentach. Po wybraniu opcji domyślną Użytkownik może wskazać jedną z aktywnych form płatności występujących w bazie. Jeżeli istniejący w bazie kontrahent ma ustawiony na swojej karcie indywidualny termin płatności, taki termin zostanie wyliczony na zaimportowanym dokumencie. Jeżeli istniejący w bazie kontrahent nie ma określonego terminu płatności, wówczas termin płatności na zaimportowanym dokumencie wyliczony zostanie na podstawie terminu ustawionego na wybranej formie płatności.

W przypadku wybrania opcji z karty kontrahenta, na dokumencie podstawiana jest forma płatności wskazana na karcie istniejącego kontrahenta. Jeżeli w bazie nie istnieje kontrahent o podanym numerze NIP, na zaimportowanym dokumencie podstawiana jest forma płatności gotówka. Ta forma płatności zostanie również ustawiona jako domyślna forma płatności dla założonego kontrahenta. Jeżeli forma płatności gotówka jest zablokowana, podstawi się kolejna (według kolejności wprowadzania) forma płatności.

Jeżeli istniejący w bazie kontrahent ma zaznaczony parametr Nie rozliczaj płatności, płatność z zaimportowanego dokumentu zostanie dodana do preliminarza ze statusem Nie podlega.

Jeżeli Użytkownik wybierze dla opcji domyślną formę płatności gotówka (lub kontrahent ma wybraną tę formę płatności jako domyślną), po zaimportowaniu nie będą tworzone automatycznie zapisy K/B rozliczające płatności do importowanych dokumentów.

Zaznaczenie na oknie importu parametru Ustaw status płatności na Nie podlega powoduje, że wszystkie płatności z zaimportowanych dokumentów otrzymają status Nie podlega.

Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Kontrola duplikacji zapisów w rejestrze VAT, ewidencji dodatkowej i na fakturach zakupu, podczas importu następuje weryfikacja czy w bazie nie występuje już dokument o parametrach określonych dla kontroli duplikacji. Jeżeli taki dokument już istnieje, dokument z pliku JPK_V7 nie zostanie zaimportowany, a w logu z przebiegu importu pojawi się stosowna informacja.

Kliknięcie ikony  Uruchom import powoduje zaczytanie danych z pliku JPK_V7 do bazy. Ikona jest aktywna po wskazaniu poprawnego pliku JPK_V7 lub JPK_VAT oraz zaznaczeniu rejestru sprzedaży i/lub rejestru zakupu do importu.

Wybranie opcji  Zamknij okno powoduje rezygnację z importu i zamknięcie okna.

Uwaga
Pliki JPK_V7 nie posiadają wszystkich potrzebnych informacji występujących na dokumentach w rejestrze VAT, dlatego też przy imporcie przyjmowane są pewne uproszczenia np. co do formy płatności, rodzaju transakcji, waluty, stawki VAT, opisu, kolumny KPiR itp. W związku z tym po zaimportowaniu dokumentów należy zweryfikować ich poprawność.

W razie potrzeby należy skorzystać z operacji seryjnych dostępnych bezpośrednio w rejestrach VAT.

Na zaimportowanych dokumentach do rejestru zakupu VAT domyślnie ustawiane są odliczenia na TAK.

Uwaga
W pliku JPK_V7 znajdują się tylko wartości z odliczeniami na TAK lub Warunkowo (przeliczone przez szacunkowy współczynnik struktury sprzedaży). Jeżeli więc na dokumencie przed eksportem do pliku JPK_V7 znajdowały się pozycje z odliczeniami na NIE oraz na TAK, wówczas do pliku zostaną wyeksportowane (a tym samym zaimportowane z niego) tylko te pozycje mające odliczenia na TAK. W przypadku odliczeń WARUNKOWO, po eksporcie do pliku te pozycje są mnożone przez szacunkowy współczynnik struktury sprzedaży. W związku z tym wartość brutto na zaimportowanym dokumencie w rejestrze zakupu VAT nie zawsze będzie się zgadzać z wartością brutto dokumentu sprzed eksportu do pliku JPK_V7. Należy więc po imporcie zweryfikować poprawność kwot brutto dokumentów.

W przypadku rejestrów sprzedaży VAT w kolumnie Uwzględniaj w proporcji ustawiane są domyślne wartości dla poszczególnych stawek VAT:

  • Uwzględniaj – dla stawek: 23%, 8%, 5%, 0%
  • Tylko w mianowniku – dla stawki ZW
  • Nie uwzględniaj – dla stawki NP

W przypadku ustawionego w Konfiguracji Firmy/ Księgowość/ Parametry rodzaju księgowości księga podatkowa, na pozycjach  zaimportowanych dokumentów w rejestrze sprzedaży VAT ustawiana jest kolumna KPiR 7.Sprzedaż, natomiast na dokumentach w rejestrze zakupu VAT kolumna 10.Towary.

Jeżeli ustawiony jest rodzaj księgowości ewidencja ryczałtowa, na pozycjach  zaimportowanych dokumentów w rejestrze sprzedaży VAT ustawiana jest stawka dla ryczałtu 3,00%.

W przypadku plików JPK_V7 nie są importowane do rejestru VAT występujące w pliku dokumenty techniczne wykazywane w polach:

  • P_33 – Podatek należny od towarów objętych spisem z natury,
  • P_34 – Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących,
  • P_35 – Podatek od wewnątrzwspólnotowego nabycia środków transportu,
  • P_36 – Podatek od wewn. Nabycia towarów art. 103 ust. 5aa,
  • P_44 – Korekta podatku naliczonego od nabycia środków trwałych,
  • P_45 – Korekta podatku naliczonego od pozostałych nabyć,
  • P_46 – Korekta podatku naliczonego, o której mowa w art. 89b ust. 1 ustawy,
  • P_47 – Korekta podatku naliczonego, o której mowa w art. 89b ust. 4 ustawy.

W logu z operacji importu dla takich dokumentów pojawia się informacja: Dokument nie został zaimportowany ponieważ posiada wartości związane z dokumentami technicznymi w pliku JPK_V7.

Z pliku JPK_V7 importowane są wykazane w nim dla poszczególnych dokumentów kody JPK i przenoszone są na tworzone dokumenty w rejestrze VAT.

Jeżeli w pliku JPK_V7 znajduje się dokument z kodem MK, po zaimportowaniu na dokumencie w rejestrze VAT zaznaczany jest parametr Metoda kasowa.

Na zaimportowanych z pliku JPK_V7 do rejestru VAT dokumentach, w polu Rozliczać w VAT ustawiany jest rok i miesiąc zgodny z okresem za jaki wygenerowany został plik JPK_V7. Dotyczy to metody zwykłej rozliczenia podatku VAT.

Uwaga
Na zaimportowanych dokumentach zostanie prawidłowo ustawiona data rozliczenia w VAT jedynie w bazach, które za dany okres czasu rozliczają VAT metodą zwykłą. Jeśli w bazie docelowej wybrana jest metoda kasowa, wówczas należy ponownie zweryfikować datę uwzględnienia w VAT na poszczególnych dokumentach.




Data aktualizacji: 02-07-2020

1 Wstęp

Od 1 lipca 2016 roku weszły w życie przepisy mówiące o konieczności generowania plików JPK dla dużych firm. Jednolite Pliki Kontrolne mają być wykorzystywane przez Urzędy Skarbowe celem weryfikacji Ksiąg oraz zapisów na podstawie, których powstały.

W przypadku dużych podatników obowiązkiem będzie przygotowywanie tego typu plików, w przypadku małych i średnich przedsiębiorców będzie okres przejściowy (2 lata) do 1 lipca 2018, kiedy będą mogli ale nie będą musieli takich plików przygotowywać. Po tym czasie każdy przedsiębiorca będzie musiał przygotowywać na wezwanie US tego rodzaju pliki.

Obowiązkowe comiesięczne pliki JPK_VAT – w przypadku rejestrów VAT dane przesyłane są obowiązkowo co miesiąc. Dla dużych podatników obowiązek ten istnieje od 1 lipca 2016 roku, natomiast w przypadku małych i średnich firm od 1 stycznia 2017. Mikroprzedsiębiorstwa muszą spełniać ten obowiązek od 1 stycznia 2018. Od 1 października 2020 w miejsce plików JPK_VAT zaczną obowiązywać pliki JPK_V7 opisane w osobnym biuletynie.

Na moment publikacji tego biuletynu zostało przygotowanych i opublikowanych 8 struktur plików dotyczących dokumentów handlowych, kasowo/bankowych oraz księgowych, uwzględniając pliki JPK_V7. Struktury plików JPK znajdują się na poniższej stronie: https://www.gov.pl/web/kas/struktury-jpk.

W programie Comarch ERP Optima udostępniona została możliwość eksportu wymaganych danych dla każdego Użytkownika bez względu na wielkość firmy.Prawo eksportu posiadają wyłącznie wybrani operatorzy w programie – ze względu na to aby zabezpieczyć dane przed niepowołanym do nich wglądem przez nieupoważnione osoby.W przypadku zmiany wymaganej struktury plików JPK istnieje możliwość aktualizacji formatów służących do eksportu poprzez pobranie ich z serwerów Comarch w momencie generowania plików.

Uwaga
Funkcjonalność aktualizacji wzorów dokumentu elektronicznego dla plików JPK jest dostępna tylko dla programów na gwarancji oraz w przypadku pracy na najnowszej dostępnej wersji programu Comarch ERP Optima.

Wskazówka

Zachęcamy do obejrzenia filmów instruktażowych prezentujących jak wygenerować Jednolity Plik Kontrolny:

Jak złożyć obowiązkowy miesięczny plik JPK_VAT

Jak wygenerować plik JPK na wezwanie Urzędu Skarbowego

Jak scalić pliki JPK_VAT wygenerowane w innych programach

Wskazówka

Wskazówka
Po kliknięciu w menu JPK na pozycję Informacje o JPK otwierana jest strona pomocy dotycząca Jednolitego Pliku Kontrolnego (JPK) w Comarch ERP Optima.

2 Konfiguracja ustawień związanych z JPK

Aby móc wyeksportować dane, na karcie operatora w Konfiguracji Programu/ Użytkowe/ Operatorzy musi zostać zaznaczony parametr Prawo eksportu plików JPK:

Tylko Operator z uprawnieniami administratora może zaznaczyć ten parametr sobie bądź innym Operatorom. Początkowo jedynie operator ADMIN ma ten parametr zaznaczony.

Poniżej znajduje się parametr Zmiana atrybutów/kodów JPK na zatw. dok. umożliwiający edycję atrybutów na zatwierdzonej oraz na zaksięgowanej Fakturze Zakupu/Sprzedaży oraz na zaksięgowanym dokumencie w rejestrze VAT. Jest to istotne w związku z przenoszeniem informacji zawartych na atrybutach do plików JPK (dla rejestrów VAT oraz faktur). Parametr może być edytowany tylko przez operatora z uprawnieniami administratora.

Dodatkowo w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny musi zostać wskazany katalog przechowywania plików wymiany, do którego będą zapisywane kopie wysyłanych plików w formacie *.xml:

Przy eksporcie Jednolitego Pliku Kontrolnego w ramach wskazanego katalogu tworzony jest podkatalog z nazwą firmy (bazy), więc w przypadku biur rachunkowych dane poszczególnych firm trafiają do własnych katalogów. Nazwy plików określają ich zawartość:

      • dla dokumentów z rejestrów VAT – JPK_VAT_PLN_Data_od_Data_do_Data_i_godzina_utworzenia
      • dla Księgi Handlowej – JPK_KR_ Data_od_Data_do_Data_i_godzina_utworzenia
      • dla Księgi Podatkowej – JPK_PKPIR_ Data_od_Data_do_Data_i_godzina_utworzenia
      • dla ewidencji ryczałtowej – JPK_EWP_Data_od_Data_do_Data_i_godzina_utworzenia
      • dla wyciągów bankowych –JPK_WB_Waluta_Rachunek_bankowy_Data_otwarcia_Data_zamknięcia_Data_i_godzina_utworzenia
      • dla dokumentów handlowych – JPK_FA_Data_od_Data_do_Data_i_godzina_utworzenia
      • dla dokumentów magazynowych – JPK_MAG_Magazyn_Waluta_Data_od_Data_do_Data_i_godzina_utworzenia

3 Przygotowanie i eksport plików JPK – informacje ogólne

Przygotowanie plików JPK i eksport danych odbywa się z poziomu menu JPK/ Pliki JPK . Po wybraniu tej opcji otwierane jest okno Pliki JPK:

Wygenerowane pliki od wersji 2017.3.1 zapisywane są w katalogu do przechowywania plików JPK wskazanym w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny, jak również w bazie danych programu Comarch ERP Optima.

Na liście prezentowane są takie informacje, jak: operator wysyłający plik JPK, typ pliku, nazwa pliku, numer korekty, data utworzenia, zakres dat danych zawartych w plikach JPK, czy plik został scalony oraz status pliku JPK. Kolumny Okres od i Okres do wyświetlające zakres dat dla danych zawartych w plikach JPK uzupełnione są dla plików JPK wygenerowanych od wersji 2017.3.1. Dla plików wygenerowanych i wysłanych w poprzednich wersjach programu kolumny będą puste. Kolumna Scalony wyświetla dla plików które zostały połączone wartość T, natomiast dla pozostałych wartość N. Istnieje również możliwość dodania domyślnie ukrytej kolumny Czas pokazującej datę i godzinę utworzenia pliku JPK, jak również kolumny JPK_VAT pokazującej czy plik jest obowiązkowy czy na żądanie (po konwersji z wcześniejszych wersji niż 2018.2.1 wszystkie dotychczasowe pliki JPK_VAT otrzymają status Obowiązkowy).

Uwaga
W związku z funkcjonalnością łączenia plików JPK_VAT i możliwością dodania nowych plików JPK, wszystkie pliki wygenerowane w wersjach programu wcześniejszych niż 2017.3.1 ale nie wysłane, po konwersji nie będą widoczne na liście. Istnieje możliwość dodania tych już wygenerowanych plików na listę plików JPK za pomocą ikony  dostępnej na wstążce programu.

Możliwe jest filtrowanie plików JPK po typie pliku – służy temu pole Typ pliku. Jako wartość tego pola można wybrać opcję –wszystkie- (wówczas widoczne będą wszystkie pliki JPK bez względu na ich typ) lub wybrać konkretny typ plików (np. JPK_VAT). Domyślnie na liście ustawia się typ plików JPK_VAT. W obszarze filtra znajduje się pole Rok umożliwiające wyfiltrowanie plików JPK dotyczących wybranego roku.

Istnieje możliwość dodania na listę nowych plików JPK (wygenerowanych z poziomu innych baz Comarch ERP Optima lub w programach innych producentów)  – służy do tego ikona Dodaj plik JPK z dysku na listę dostępna na wstążce programu. Po kliknięciu ikony pojawia się okno wyboru pliku:

Na otwartym oknie podpowiada się standardowy folder zapisu dla plików JPK dla firmy (określany w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny, łącznie z podkatalogiem o nazwie zgodnej z nazwą firmy). Po wskazaniu nowego pliku XML zawierającego plik JPK i kliknięciu Otwórz, plik zapisywany jest do bazy i pojawia się na oknie Pliki JPK.

U góry okna Pliki JPK znajdują się odnośniki:

3.1    Przygotowanie plików JPK

Aby dodać w programie plik JPK_VAT należy kliknąć na ikonę  – spowoduje to otwarcie okna Przygotowanie pliku JPK_VAT:

Okno wywoływane jest również z poziomu menu kontekstowego po kliknięciu prawym przyciskiem myszy i wybraniu opcji Dodaj, jak również przy pomocy skrótu <Insert>.

Okno zawiera parametry dotyczące plików JPK_VAT. Dla parametru Składam plik JPK istnieje możliwość wyboru dwóch opcji:

      • obowiązkowy (opcja domyślnie zaznaczona),
      • na żądanie Urzędu Skarbowego podczas kontroli.

Uwaga
Opcja dodania plików JPK na żądanie US powinna być wykorzystywana w sytuacji kiedy urząd skarbowy zwróci się o wygenerowanie plików podczas kontroli podatnika.

W polu Za okres wskazywany jest miesiąc i rok za jaki ma zostać wygenerowany plik JPK_VAT. Pole może zostać rozwinięte celem łatwiejszego wybrania odpowiedniego okresu.

Uwaga

Podczas dodawania pliku JPK_VAT program sprawdza okres, za który jest on sporządzany. Jeżeli za ten okres powinien być już sporządzony plik JPK_V7 program informuje o tym Użytkownika stosownym komunikatem:

Za okres od października 2020 należy składać pliki JPK_V7. Czy chcesz mimo wszystko wyliczyć plik JPK_VAT?

Wybór opcji Tak powoduje utworzenie pliki JPK_VAT za wybrany miesiąc. W przypadku wybrania opcji Nie plik JPK_VAT nie jest tworzony.

Plik taki, nawet jeśli zostanie utworzony, nie będzie wysyłany do Ministerstwa Finansów.

Na oknie można zaznaczyć parametr współczynnik szacunkowy struktury sprzedaży i określić jego wartość procentową.

Zaznaczenie parametru Korekta powoduje przeniesienie informacji, że generowany plik JPK_VAT jest korektą – pole CelZlozenia w pliku przyjmuje wówczas wartość 2. W przypadku plików JPK_VAT(3) po zaznaczeniu parametru Korekta istnieje możliwość wpisania numeru korekty. Numer korekty jest uzupełniany automatycznie jako numer kolejny, ale może zostać zmodyfikowany przez Użytkownika. W tym polu nie może zostać wpisana wartość mniejsza niż 1. Numer korekty przenoszony jest do pliku JPK_VAT(3).

Uwaga

W polu Korekta należy podać kolejny numer, tj. jeżeli wcześniej w 2017 r. lub w latach poprzednich złożony został tylko plik pierwotny oznaczony cyfrą”1″ (JPK_VAT(1)), a pierwszej korekty dokonuje się w 2018 r. na nowej strukturze, to należy w polu Korekta wpisać cyfrę „2″, a kolejne korekty za ten sam okres oznaczamy 3, 4, 5 itd.

Jeżeli w 2017 r. złożony został JPK_VAT z oznaczeniem celu złożenia „1″ i potem były złożone korekty z oznaczeniem celu złożenia „2″, to składając kolejną korektę za ten okres już według nowej struktury w 2018 r. należy wpisać „3″ (niezależnie od tego ile w 2017 r. złożono korekt JPK_VAT z oznaczeniem „2″). Kolejne korekty za ten sam okres oznaczamy 4, 5 itd

W 2017 r. przyjęto następującą zasadę oznaczania JPK_VAT 1 – dla pierwotnego JPK_VAT 2 – dla każdej kolejnej korekty JPK_VAT

W 2018 r. przyjęto następującą zasadę oznaczania JPK_VAT: 0 – dla pierwotnego JPK_VAT 1, 2, 3, 4…. dla kolejnych korekt JPK_VAT za ten sam okres.

Pod parametrami wyświetlane są podstawowe informacje dotyczące składania pliku JPK_VAT.

Istnieje możliwość wysłania do arkusza kalkulacyjnego danych znajdujących się w generowanych plikach JPK celem łatwiejszego ich przeglądania. Na oknie Przygotowanie pliku JPK_VAT znajduje się parametr Podczas eksportu utwórz również pliki MS Excel. Po wygenerowaniu pliku JPK z zaznaczonym powyższym parametrem, w zależności od ustawienia parametru Otwieranie wyeksportowanych plików w menu Widok, nastąpi otwarcie arkusza zawierającego wyeksportowane dane (opcja Otwieraj) bądź wyświetlone zostanie pytanie czy plik otworzyć (opcja Pytaj). Tworzony plik arkusza kalkulacyjnego zawiera arkusz dotyczący danych podatnika, agregatów oraz danych poszczególnych dokumentów.

Uwaga
Do eksportu danych JPK do arkusza MS Excel wymagane jest połączenie z Internetem.

Po kliknięciu ikony  Utwórz plik, na liście plików JPK dodany zostanie plik JPK_VAT za podany okres.

Na oknie Pliki JPK istnieje możliwość rozwinięcia ikony plusa – pojawi się wówczas możliwość dodania oprócz pliku JPK_VAT również pozostałych plików JPK:

Po wybraniu drugiej opcji Pozostałe pliki JPK otwierane jest okno:

Okno dodania pozostałych plików JPK może zostać wywołane za pomocą skrótu <Shift>+<Insert>.

Na oknie istnieje możliwość wyboru spośród wszystkich pozostałych (oprócz JPK_VAT) 6 grup danych dla plików JPK:

      • Księgi Handlowe (z opcją uwzględnienia zapisów w buforze),
      • Zapisy KPiR (z opcją uwzględnienia zapisów w buforze),
      • Ewidencja ryczałtowa (z opcją uwzględnienia zapisów w buforze),
      • Wyciągi bankowe (z opcją bądź „poszczególnymi wyciągami” bądź „za okres”),
      • Faktury sprzedaży i zakupu (z możliwością wyboru rodzaju dat na dokumentach dla podanego poniżej zakresu dat),
      • Dokumenty

Na oknie Przygotowanie pliku JPK znajdują się pola, w których należy określić zakres dat za jaki zostaną wyeksportowane dane. Domyślnie po otwarciu okna podpowiada się zakres dat dla poprzedniego miesiąca w stosunku do daty bieżącej, chociaż może on zostać zmieniony przez Użytkownika.

Podany zakres dat nie może być szerszy niż jeden rok kalendarzowy dla zapisów KPiR i ewidencji ryczałtowej. W przypadku wyboru zapisów Księgi Handlowej, zakres dat nie może przekraczać jednego okresu obrachunkowego. Dodatkowo do pliku JPK_KR zostaną wyeksportowane tylko zapisy z bieżącego okresu obrachunkowego.

Na oknie należy wskazać urząd skarbowy, do którego JPK ma zostać skierowany. Domyślnie po wejściu na okno przygotowania plików JPK urząd skarbowy pobierany jest z Konfiguracji Firmy/ Dane firmy/ Deklaracje z pola U.S.  (VAT). Jeżeli urząd skarbowy dla deklaracji VAT będzie nieuzupełniony, wówczas US zostanie pobrany z pola U.S. (PIT‑4R, CIT-8). W przypadku kiedy w żadnym z tych 2 pól w Konfiguracji nie został wskazany urząd skarbowy, wówczas przy pierwszym otwarciu okna przygotowania plików JPK pole z urzędem skarbowym będzie puste i Użytkownik przed przygotowaniem pliku JPK będzie musiał wybrać odpowiedni US. Wybrany urząd skarbowy zostanie zapamiętany przy kolejnym otwarciu okna. Na karcie wybranego urzędu skarbowego musi być uzupełniony czterocyfrowy kod urzędu. W przeciwnym razie przygotowanie pliku nie będzie możliwe.

Istnieje możliwość wysłania do arkusza kalkulacyjnego danych znajdujących się w generowanych plikach JPK celem łatwiejszego ich przeglądania. Na oknie Pliki JPK znajduje się parametr Podczas eksportu utwórz również pliki MS Excel. Po wygenerowaniu pliku JPK z zaznaczonym powyższym parametrem, w zależności od ustawienia parametru Otwieranie wyeksportowanych plików w menu Widok, nastąpi otwarcie arkusza zawierającego wyeksportowane dane (opcja Otwieraj) bądź wyświetlone zostanie pytanie czy plik otworzyć (opcja Pytaj). Tworzony plik arkusza kalkulacyjnego zawiera arkusz dotyczący danych podatnika, agregatów oraz danych poszczególnych dokumentów.

Uwaga
Do eksportu danych JPK do arkusza MS Excel wymagane jest połączenie z Internetem.

Ikona utworzenia pliku JPK  staje się aktywna po zaznaczeniu co najmniej jednej grupy danych oraz wskazaniu urzędu skarbowego.

Podczas eksportu danych do pliku (zarówno JPK_VAT jak i pozostałych plików JPK) następuje weryfikacja poprawności wysyłanych danych poprzez porównanie ze wzorcem dokumentu elektronicznego. Generowany plik jest również weryfikowany pod kątem uzupełnienia pól obowiązkowych.

Uwaga
Występujący w logu podczas generowania plików JPK komunikat:

  • „Nie można sprawdzić poprawności wygenerowanego dokumentu(XML), ponieważ występują problemy z dostępem do serwerów Ministerstwa Finansów. Plik JPK można wysłać, a jego poprawność zostanie sprawdzona przy odbiorze UPO lub wysłać w innym terminie, gdy dostęp do serwerów zostanie przywrócony.
  • Nie można odnaleźć informacji schematu dla elementu…

może wynikać z braku możliwości połączenia się z serwerem http://crd.gov.pl, na którym znajdują się wzorce dokumentu elektronicznego z którymi Comarch ERP Optima porównuje generowany plik JPK. Należy sprawdzić na stanowisku ustawienia programu antywirusowego, zapory sieciowej, a w przypadku korzystania z serwera proxy – dodać wyjątek na ten adres. Komunikat może również wynikać z czasowej niedostępności tego serwera. Należy również zweryfikować możliwość nawiązania komunikacji z adresem www.mf.gov.pl.

Możliwe jest wyłączenie sprawdzania poprawności generowanych plików JPK poprzez odznaczenie parametru Sprawdzaj poprawność plików JPK przed wysłaniem, znajdującego się w Konfiguracji Programu/ Ogólne/ e‑deklaracje/JPK.W przypadku braku danych za okres podany podczas eksportu, pliki JPK nie są tworzone a w logu z przebiegu operacji pojawia się stosowny komunikat.  Wyjątkiem jest plik JPK_VAT, który jest tworzony nawet jeśli za dany okres nie ma zapisów w rejestrze VAT, a Użytkownik jest zobligowany do złożenia pustej deklaracji VAT-7.

Jeżeli w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny nie ustawiono katalogu dla plików z danymi, wówczas podczas próby przygotowania pliku JPK pojawia się okno z odpowiednim komunikatem.

Podczas eksportu danych do nagłówka pliku JPK_VAT(3) przenoszone są następujące informacje:

      • Zakres dat dla eksportowanych danych
      • Dane identyfikacyjne podatnika pobierane z Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy – NIP oraz Pełna nazwa; dane pobierane są z najnowszej pieczątki firmy.
      • Adres E-mail (pole opcjonalne) pobierany w pierwszej kolejności z deklaracji VAT-7(18); jeżeli nie jest uzupełniony na deklaracji, zostanie pobrany z Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW, a jeżeli tam również nie będzie uzupełniony – wówczas z Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy (z najnowszej pieczątki firmy)
      • Nazwa programu z którego wygenerowano plik JPK_VAT(3) (w pliku widnieje nazwa „Comarch ERP Optima” wraz numerem wersji)

Podczas eksportu danych do nagłówka pozostałych plików JPK przenoszone są następujące informacje (wyjątek: JPK_PKPiR(2) – uwaga poniżej):

      • Kod urzędu skarbowego (uzupełniany z poziomu Ogólne/ Inne/ Urzędy)
      • Zakres dat dla eksportowanych danych
      • Dane identyfikacyjne oraz adres podatnika pobierane z Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy (NIP, Pełna nazwa, REGON, Kod Kraju, Województwo, Powiat, Gmina, Ulica, Nr domu, Nr lokalu, Miejscowość, Kod pocztowy, Poczta); dane pobierane są z najnowszej pieczątki firmy.

Uwaga
W przypadku plików JPK_PKPiR(2) (generowanych za okres od stycznia 2017) pola adresowe podatnika oprócz kodu kraju i miasta nie są już obowiązkowe. W związku z tym podczas generowania pliku JPK_PKPiR(2) nie jest sprawdzane uzupełnienie województwa, powiatu, gminy, nr domu, kodu pocztowego i poczty w Pieczątce firmy (w przypadku pozostałych struktur plików JPK te pola nadal są obowiązkowe i powinny zostać uzupełnione).

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK.

Uwaga
Jeżeli w Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy numer NIP podatnika jest uzupełniony łącznie z kodem kraju (PL), do plików JPK przenoszone są tylko cyfry z numeru NIP.

3.2 Wysyłka plików JPK

Po rozwinięciu na oknie Pliki JPK ikony Wyślij istnieje możliwość wyboru trzech sposobów podpisania wysyłanych plików JPK:

      • Wyślij podpisem kwalifikowanym,
      • Wyślij podpisem niekwalifikowanym,
      • Wyślij podpisem zaufanym.

Wybranie pierwszej opcji powoduje wywołanie listy zainstalowanych w systemie Windows certyfikatów służących do elektronicznego podpisywania wysyłanych deklaracji oraz plików JPK.

Uwaga
Jeżeli Użytkownik korzysta z podpisu kwalifikowanego (np. Szafir) podpisując nim w programie Comarch ERP Optima deklaracje np. VAT, a pomimo to podczas wysyłania pliku JPK na liście certyfikatów podpis nie jest widoczny, wówczas należy zaktualizować ze strony producenta aplikację do obsługi karty kryptograficznej i zrestartować komputer.

Warunkiem widoczności certyfikatu jest jego zainstalowanie w systemie operacyjnym. Certyfikat musi być prawidłowy (zaufany). W celu weryfikacji poprawności certyfikatu należy uruchomić program certmgr.msc. W grupie certyfikatów osobistych należy sprawdzić, czy jest widoczny certyfikat, który ma być wykorzystany do podpisu. Jeżeli go nie ma w tym miejscu, oznacza to że certyfikat nie został zainstalowany w systemie Windows.

Po wyświetleniu szczegółów certyfikatu należy na zakładce [Ogólne] upewnić się czy jest on aktualny oraz czy widoczna jest informacja: Masz klucz prywatny, który odpowiada temu certyfikatowi. Dodatkowo na zakładce [Ścieżka certyfikacji] musi być widoczny stan certyfikatu: Ten certyfikat jest prawidłowy – tak jak na poniższych zrzutach ekranu:

Po wybraniu drugiej opcji otwierane jest okno z danymi podatnika pobranymi z Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW: numerem NIP, imieniem i nazwiskiem oraz datą urodzenia. Na oknie należy uzupełnić kwotę przychodu podatnika za dwa lata wstecz. Domyślnie w tym polu wykazywana jest kwota 0,00.

Uwaga
Podpisywanie plików JPK podpisem niekwalifikowanym możliwe jest jedynie dla plików JPK_VAT dla osób fizycznych. Wysłanie tym sposobem innych typów plików JPK bądź plików JPK_VAT podatników nie będących osobami fizycznymi nie jest możliwe.

Jeżeli podczas wysyłki pliku JPK_VAT podano niewłaściwą kwotę przychodu (podczas odbioru UPO pojawił się błąd o kodzie 403), wówczas plik JPK_VAT uzyskuje z powrotem status Nie wysłano, umożliwiając ponowną jego wysyłkę. W przypadku podpisu niekwalifikowanego nieprawidłowe dane autoryzacyjne nie blokują możliwości kolejnej próby wysyłki pliku JPK_VAT. Możliwe jest ponowne wprowadzenie prawidłowych danych i wysyłka pliku.

Korzystając z wysyłki plików JPK_VAT za pomocą podpisu niekwalifikowanego należy upewnić się, że są podane wszystkie wymagane dane. Brak jednej z nich (np. numeru NIP, imienia bądź nazwiska) powoduje wyświetlenie komunikatu: Nieprawidłowy format danych autoryzujących.

Po wybraniu trzeciej opcji dla plików o statusie Nie wysłano otwierane jest okno z kreatorem procesu podpisywania pliku JPK podpisem zaufanym:

Plik JPK przeznaczony do podpisu za pomocą podpisu zaufanego tworzony jest w katalogu wskazanym w Comarch ERP Optima w Konfiguracji Stanowiska/ Ogólne/ Jednolity Plik Kontrolny w katalogu zgodnym z nazwą firmy w podkatalogu E-PUAP. Informacja o dokładnej ścieżce do pliku znajduje się na oknie Podpisywanie pliku JPK podpisem zaufanym w pierwszym kroku kreatora. Tam również dostępny jest przycisk Skopiuj link do schowka, którego użycie ułatwia wklejenie ścieżki do katalogu, w którym znajduje się przygotowany plik JPK na stronie ePUAP.

W drugim kroku należy przejść  na stronę www.epuap.gov.pl/wps/portal W górnej części okna widoczny będzie tekst: Masz firmę? Podpisz JPK_VAT profilem zaufanym. Należy wybrać: Podpisz Podpisem Zaufanym.

Należy kliknąć na przycisk Podpisz JPK_VAT:

Następnie należy wybrać sposób logowania „profil zaufany”:

Należy zalogować się za pomocą hasła lub wskazać odpowiedni bank:

Po zalogowaniu należy kliknąć w przycisk Wybierz plik z dysku.

Skopiowany w Kroku 1 link należy wkleić w polu Nazwa pliku (np. za pomocą skrótu <CTRL> + <V>).

Po wskazaniu pliku z wybranego katalogu rozpocznie się wczytywanie i sprawdzanie pliku. Ze względu na obciążenie serwerów może to potrwać nawet kilka minut.

Po prawidłowym wczytaniu pliku JPK_VAT, należy kliknąć na przycisk Podpisz podpisem zaufanym

W zależności od wybranej formy weryfikacji, na ekranie pojawi się okno na wpisanie kodu autoryzacyjnego, który jest wysyłany SMS-em bądź na adres mailowy.

W sytuacji, gdy podpis zaufany zakładany był za pomocą aplikacji bankowej, proces podpisywania pliku wygląda nieco inaczej. Użytkownik po wyborze opcji Podpisz podpisem zaufanym zobaczy swoje dane i ponownie wybiera Podpisz profilem zaufanym.

Po tej operacji pojawi się okno autoryzacji podpisania profilem zaufanym i prośba o zalogowanie i potwierdzenie smsem lub kodem ze zdrapki.

Po wykonaniu tych czynności można zapisać na dysku plik JPK_VAT za pomocą opcji Zapisz.

W ostatnim kroku kreatora podpisywania pliku JPK podpisem zaufanym w Comarch ERP Optima należy zaimportować podpisany plik JPK klikając na przycisk Wybierz podpisany plik JPK. Po wskazaniu pliku pojawia się komunikat: Czy chcesz teraz wysłać podpisany plik?

Wybór opcji Tak powoduje wysłanie pliku JPK i zamknięcie okna z kreatorem podpisywania pliku JPK. Plik na liście otrzymuje status Wysłano/Nie odebrano UPO.

Wybór opcji Nie zamyka okno kreatora podpisywania pliku JPK. Plik na liście otrzymuje status Podpisany podpisem zaufanym/Nie wysłano. Usunięcie z listy pliku o tym statusie usuwa plik również z podkatalogu EPUAP. Pliku już podpisanego nie można ponownie podpisać. Po wybraniu opcji Wyślij podpisem zaufanym na pliku o statusie Podpisany podpisem zaufanym /Nie wysłano, następuje automatyczna wysyłka pliku bez konieczności ponownego przechodzenia kreatora podpisywania pliku JPK.

Pliku JPK o statusie Podpisany podpisem zaufanym/Nie wysłano nie można wysłać za pomocą podpisu kwalifikowanego. Przy próbie takiej wysyłki pojawia się stosowny komunikat.

Plik JPK podpisany podpisem zaufanym może zostać wysłany wyłącznie z komputera, na którym został skierowany do podpisu i podpisany.

Równoczesna opcja podpisu i wysyłki pliku JPK podpisem zaufanym możliwa jest dla pojedynczego pliku. Jeżeli zaznaczono kilka plików JPK o statusie Podpisany podpisem zaufanym/Nie wysłano możliwa jest ich zbiorcza wysyłka za pomocą opcji podpisu podpisem zaufanym.

Wysyłka pliku JPK za pomocą podpisu zaufanego nie jest dostępna z programu Comarch ERP Optima Biuro Rachunkowe.

Na oknie Pliki JPK znajduje się również przycisk  Odbierz służący do odbioru UPO. Aby uniemożliwić nadpisywanie daty odebrania Urzędowego Poświadczenia Odbioru dla plików JPK, nie ma możliwości ponownego pobrania UPO dla plików JPK ze statusem Wysłano/ odebrano UPO.

Z poziomu tego okna możliwe jest również podejrzenie pobranego Urzędowego Poświadczenia Odbioru za pomocą ikony  Podgląd UPO lub za pomocą funkcji Zmień dostępnej w menu kontekstowym po kliknięciu prawym przyciskiem myszy na pliku JPK. Wydruk UPO dostępny jest z poziomu listy plików JPK.

Wybór opcji  Podgląd pliku znajdującej się na wstążce programu powoduje otwarcie arkusza kalkulacyjnego zawierającego dane znajdujące się w podświetlonym na liście pliku JPK celem ich weryfikacji. Otwarcie arkusza MS Excel możliwe jest również po wywołaniu funkcji Podgląd dokumentu w menu kontekstowym. Jeżeli w katalogu jest zapisany arkusz kalkulacyjny to on jest otwierany, jeśli go nie ma wówczas arkusz jest tworzony. Wygenerowanie bądź dodanie na listę pliku JPK powoduje zapisanie go do bazy firmowej, więc podgląd pliku będzie zawsze możliwy bez względu na stanowisko na którym wygenerowano bądź dodano plik JPK.

Możliwe jest również usuwanie zaznaczonych plików JPK za pomocą ikony  Usuń. Aby usunięcie pliku JPK było możliwe, musi on mieć inny status niż Wysłano/nie odebrano UPO lub Wysłano/ odebrano UPO. Usunięcie pliku powoduje usunięcie go z listy plików, z bazy danych oraz z katalogu do przechowywania plików JPK.

3.3 Scalanie plików JPK_VAT

Istnieje możliwość łączenia plików JPK_VAT w programie Comarch ERP Optima. Użytkownik może wskazać pliki które mają zostać połączone i na podstawie tych plików zostanie utworzony nowy plik zawierający dane z tych wskazanych plików.

Proces łączenia plików JPK_VAT wygląda następująco: Użytkownik powinien zaznaczyć wybrane przez siebie pliki na liście plików JPK i kliknąć ikonę Scal pliki JPK_VAT znajdującą się na wstążce programu. Funkcja może zostać również uruchomiona z poziomu menu kontekstowego po kliknięciu prawym przyciskiem myszy na plikach JPK i wybraniu opcji Scal pliki JPK_VAT. Zarówno ikona jak i funkcja w menu kontekstowym jest aktywna po wyfiltrowaniu plików JPK do typu JPK_VAT(wybór w polu Typ pliku wartości JPK_VAT) i zaznaczeniu co najmniej 2 plików.

Na oknie Łączenie plików JPK_VAT można wskazać czy plik ma być złożony jako korekta (parametr Oznacz plik JPK_VAT jako korektę). Podczas scalania plików JPK_VAT(3) po oznaczeniu scalonego pliku jako korekty można wpisać numer tej korekty. Scalane pliki JPK_VAT muszą być w tej samej wersji. Na oknie można również zaznaczyć czy po wygenerowaniu pliku JPK_VAT ma zostać również wygenerowany arkusz kalkulacyjny zawierający dane przeniesione do połączonego pliku.

Na oknie dostępny jest parametr Składam plik JPK z dwiema opcjami:

      • obowiązkowy (opcja domyślnie zaznaczona),
      • na żądanie Urzędu Skarbowego podczas kontroli.

Generowanie pliku rozpoczynane jest po kliknięciu ikony Wykonaj połączenie  . Funkcja może zostać również wywołana poprzez naciśnięcie <F8>.

Warunkiem połączenia plików jest to, aby były to pliki JPK_VAT wygenerowane w  tym samym wzorcu dokumentu elektronicznego – wszystkie pliki we wzorcu JPK_VAT(2) bądź wszystkie we wzorcu JPK_VAT(3) i zawierające dokumenty za ten sam zakres dat (z tym samym rokiem i miesiącem rozliczenia w deklaracji VAT).

Dane dotyczące podatnika składającego połączony plik JPK_VAT pobierane są z Pieczątki firmy (Konfiguracja Firmy/ Dane firmy/ Pieczątka firmy). Pozostałe dane zostaną odpowiednio połączone – wszystkie dokumenty sprzedaży ze wszystkich plików zostaną umieszczone w sekcji dotyczącej Rejestrów sprzedaży. Analogicznie dla rejestrów VAT zakupu. Sekcje zawierające zagregowane dane będą zawierały informacje dotyczące wszystkich pozycji z wszystkich plików. Tak więc suma ilości pozycji z wszystkich łączonych plików będzie zgodna z ilością w pliku zbiorczym. Nowy połączony plik zbiorczy otrzymuje nazwę JPK_VAT_SCALONY_PLN_Data_od_Data_do_Data_i_godzina_utworzenia.

Po utworzeniu zbiorczego pliku JPK_VAT, pliki cząstkowe które podlegały połączeniu zmieniają status z Nie wysłano na Nie podlega. Dopiero w przypadku usunięcia pliku zbiorczego takie pliki otrzymają z powrotem status Nie wysłano. Nie ma możliwości wysłania plików, które uległy połączeniu  – w takim przypadku należy wysłać plik zbiorczy. Nie jest również możliwe usunięcie pliku cząstkowego – należy w pierwszej kolejności usunąć plik wynikowy.

Nie jest możliwe ponowne połączenie plików, które już zostały poddane łączeniu. Wysłane pliki JPK_VAT również nie podlegają połączeniu – łączenie  plików JPK_VAT możliwe jest tylko dla plików o statusie Nie wysłano.

Domyślnie pliki JPK_VAT które zostały połączone są ukrywane, ale można je wywołać na listę plików JPK. Służy temu parametr Pokaż scalone. Pliki cząstkowe, które zostały  połączone, wyświetlane są na liście plików w kolorze szarym.

W kolejnych rozdziałach biuletynu opisane zostały szczegółowe informacje dotyczące eksportu poszczególnych grup danych do plików JPK.

4 Rejestry VAT – JPK_VAT

Uwaga
Pliki JPK_VAT obowiązują tylko do września 2020. Za okres od października 2020 należy składać pliki JPK_V7. Plik JPK_VAT utworzony za okres późniejszy niż wrzesień 2020 nie będzie wysyłany do Ministerstwa Finansów.

Uwaga
Znajdujący się na dokumentach w Rejestrze VAT parametr JPK_FA opisany został w rozdziale dotyczącym faktur. Parametr nie dotyczy plików JPK_VAT składanych obowiązkowo co miesiąc. Należy zaznaczyć go w przypadku, gdy na żądanie US podatnik jest zobligowany do złożenia pliku z fakturami (JPK_FA), które wprowadzone zostały ręcznie do rejestru VAT z pominięciem modułu Handel.

Podczas eksportu Rejestrów VAT istnieje możliwość zaznaczenia parametru współczynnik szacunkowy struktury sprzedaży. Domyślnie parametr nie jest zaznaczony. Wówczas w polu obok parametru program wylicza wartość współczynnika na podstawie dokumentów w Rejestrze VAT Sprzedaży za rok poprzedni w stosunku do roku określonego w polu Zakres dat od: na oknie przygotowania plików JPK. Do wyliczenia wartości współczynnika brane są pod uwagę dokumenty, które na pozycji w kolumnie Uwz. w proporcji mają ustawione Uwzględniaj lub Tylko w mianowniku. Proporcja jest wyliczana jako iloraz, gdzie w liczniku znajduje się roczny obrót z tytułu czynności, w związku z którymi podatnik ma prawo do obniżenia podatku należnego, a w mianowniku całkowity roczny obrót podatnika (łącznie np. z subwencjami). Współczynnik szacunkowy struktury sprzedaży służy do przemnożenia wartości z pozycji dokumentów z Rejestru VAT Zakupu, które w kolumnie Odliczenia mają ustawione Warunkowo.

Po zaznaczeniu parametru pole z wartością współczynnika jest odblokowywane i Użytkownik może wpisać wartość inną niż wyliczona przez program. Możliwe jest wpisanie wartości współczynnika szacunkowego struktury

sprzedaży z dokładnością do dwóch miejsc po przecinku. Ma to zastosowanie w związku z centralizacją jednostek budżetowych kiedy jednostki podległe mają obowiązek przesyłania plików JPK do jednostek nadrzędnych (gmin) z niezaokrąglonymi wartościami współczynników i prewspółczynników.

Wpisywana wartość szacunkowego współczynnika struktury sprzedaży zapamiętywana jest dla operatora w kontekście każdej firmy osobno. Dzięki temu po zalogowaniu tego operatora do konkretnej bazy i przygotowywania kolejnego pliku JPK_VAT, wpisana poprzednio wartość współczynnika dla tej firmy jest podpowiadana przez program.

Pliki JPK_VAT generowane za okres od stycznia 2018 roku, jak również korekty plików  JPK_VAT za okresy wcześniejsze, tworzone są wzorcem dokumentu elektronicznego JPK_VAT(3). Dla plików JPK_VAT(3) zastosowanie ma znajdujący się na oknie Przygotowanie pliku JPK_VAT parametr Korekta, którego zaznaczenie powoduje oznaczenie składanego pliku jako korekty.

Podczas eksportu Rejestrów VAT do plików JPK przenoszone są m.in. następujące dane:

W przypadku plików JPK_VAT(3):

Dla Rejestru VAT zakupu:

      • Nazwa i identyfikator (NIP w przypadku podmiotu gospodarczego, w przypadku osób fizycznych wstawiana jest wartość BRAK) podmiotu z zapisu w rejestrze VAT ‑ pola obowiązkowe; w przypadku nieuzupełnienia pól na dokumencie do pliku JPK_VAT(3) przenoszona jest wartość BRAK
      • Dane adresowe podmiotu z zapisu w rejestrze VAT (Miasto, Ulica, Nr domu/lokalu, Kod pocztowy, Poczta (jeżeli jest inna niż Miasto)) – pola obowiązkowe; w przypadku nieuzupełnienia pól na dokumencie do pliku JPK_VAT(3) przenoszona jest wartość BRAK
      • Data wpływu
      • Data wystawienia
      • Numer dokumentu
      • Kwoty podzielone według kwalifikacji na deklaracji VAT-7

Dla Rejestru VAT sprzedaży:

      • Nazwa i identyfikator (NIP w przypadku podmiotu gospodarczego, w przypadku osób fizycznych wstawiana jest wartość BRAK) podmiotu z zapisu w rejestrze VAT ‑ pola obowiązkowe; w przypadku nieuzupełnienia pól na dokumencie do pliku JPK_VAT(3) przenoszona jest wartość BRAK; jeżeli dokument jest Paragonem przeniesionym bezpośrednio do rejestru VAT z modułu Handel/Faktury lub ma powiązanie z Paragonem, wówczas w polu określającym nazwę odbiorcy pojawia się opis SPRZEDAŻ PARAGONOWA
      • Dane adresowe podmiotu z zapisu w rejestrze VAT (Miasto, Ulica, Nr domu/lokalu, Kod pocztowy, Poczta (jeżeli jest inna niż Miasto)) – pola obowiązkowe; w przypadku nieuzupełnienia pól na dokumencie do pliku JPK_VAT(3) przenoszona jest wartość BRAK; jeżeli dokument jest Paragonem przeniesionym bezpośrednio do rejestru VAT z modułu Handel/Faktury lub ma powiązanie z Paragonem, wówczas w polu określającym adres odbiorcy pojawia się opis SPRZEDAŻ PARAGONOWA
      • Data wystawienia i data sprzedaży (o ile różni się od daty wystawienia)
      • Numer dokumentu
      • Kwoty podzielone według kwalifikacji na deklaracji VAT-7

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK.

W logu z procesu generowania pliku JPK_VAT(3) pojawia się informacja/ostrzeżenie dla jakich dokumentów i do jakich pól wstawiono do pliku wartość BRAK/SPRZEDAŻ PARAGONOWA wraz z sugestią, aby Użytkownik zweryfikował poprawność tych dokumentów. W przypadku raportu dobowego lub faktury dla osoby fizycznej brak numeru NIP nie jest błędem, natomiast w przypadku np. faktury sprzedaży dla podmiotu gospodarczego dane takie jak numer NIP, nazwa i adres odbiorcy powinny zostać uzupełnione na dokumencie a plik JPK_VAT ponownie wygenerowany. W przypadku faktur VAT RR, numer NIP bądź PESEL dostawcy powinien znajdować się w polu NIP na dokumencie w rejestrze VAT zakupu.

W przypadku dokumentów wewnętrznych sprzedaży i zakupu rozliczających transakcje (m.in. nabycia wewnątrzunijnego, importu usług, zakupu z odwrotnym obciążeniem) do pliku JPK_VAT jako numer dokumentu przenoszony jest numer dokumentu pierwotnego z rejestru zakupu. Warunkiem jest powiązanie dokumentów wewnętrznych z dokumentem źródłowym. W związku z tym kiedy takiego powiązania nie ma (dokumenty wewnętrzne dodane ręcznie do rejestru VAT bądź zaimportowane mechanizmem pracy rozproszonej), dokumenty wewnętrzne do pliku JPK_VAT zostaną przeniesione z własnym numerem dokumentu.

Dokumenty wewnętrzne będące korektą paragonów przekształconych do faktur przenoszone są do pliku JPK_VAT z numerem dokumentu wewnętrznego.

Wykonanie korekty danych z poziomu korekt faktury w module Handel / Faktury nie spowoduje zmiany na dokumencie w Rejestrze VAT – zmiany danych na dokumencie należy dokonać ręcznie. Dokument Faktura korygująca dane nie jest przenoszony do Rejestrów VAT.

Do plików JPK_VAT(3) przenoszone są wszystkie zapisy korekcyjne wygenerowane z załącznika VAT-ZD za wskazany okres. Pozycje na tych zapisach z odliczeniami warunkowymi są przeliczane przez określony na oknie przygotowania plików JPK współczynnik szacunkowy struktury sprzedaży.

W celu wykazywania wartości w odpowiednich polach w plikach JPK dla Rejestrów VAT, wprowadzone zostały następujące atrybuty dokumentów:

      • KOREKTA ŚR. TRWAŁYCH (Korekta podatku naliczonego od nabycia środków trwałych),
      • KOREKTA POZ. NABYĆ (Korekta podatku naliczonego od pozostałych nabyć),
      • VAT-ZD ZAKUP NIEZAPŁ (Korekta podatku naliczonego, zgodnie z Art. 89b ust. 1),
      • VAT-ZD ZAKUP ZAPŁAC. (Korekta podatku naliczonego, zgodnie z Art. 89b ust. 4),
      • PODATEK OD SPISU (Podatek należny od towarów objętych spisem z natury),
      • ZWROT ZA KASĘ FISKAL (Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących),
      • NAB.PALIW SILN. (Podatek od wewnątrzwspólnotowego nabycia paliw silnikowych); atrybut ten będzie wykorzystany po pojawieniu się wzoru dokumentu elektronicznego dla pliku JPK_VAT zgodnego z deklaracją VAT-7(17),
      • NABYCIE ŚR.TRAN (Wewnątrzwspólnotowe nabycie środków transportu).

Pierwsze 4 atrybuty powinny być wybierane na dokumentach w rejestrze zakupu VAT, natomiast kolejne 4 na dokumentach w rejestrze sprzedaży VAT.

Uwaga
W przypadku kiedy w programie utworzony został załącznik VAT-ZD o typie zakup i wygenerowany/e z niego zapis/y korekcyjny/e, atrybutów VAT‑ZD ZAKUP NIEZAPŁ oraz VAT-ZD ZAKUP ZAPŁAC. nie należy dodawać na dokumentach w rejestrze VAT ponieważ spowoduje to duplikację kwot w pliku JPK_VAT. Zapisy korekcyjne z VAT-ZD o typie zakup są wykazywane w pliku JPK_VAT jako korekta zgodnie z Art. 89b, odpowiednio ust. 1 lub 4.

Podobnie w przypadku atrybutu WEWN.NABYCIE ŚR.TRAN – jeżeli na przeliczanej w programie Comarch ERP Optima deklaracji VAT-7pole Podatek od wewnątrzwsolnotowego nabycia środków transportu jest uzupełniane automatycznie przez program na podstawie wprowadzonych dokumentów, atrybutu nie należy stosować.

Wspomniane atrybuty należy wykorzystywać tylko pod warunkiem, że odpowiadające im pola na deklaracji VAT-7 Użytkownik uzupełnia ręcznie.

Jest to związane z tym, że sumy dla dokumentów z rejestrów VAT w plikach JPK powinny być zgodne z deklaracją VAT-7 za ten sam okres, natomiast m.in. pola 47 Korekta podatku naliczonego od nabycia środków trwałych oraz 48 Korekta podatku naliczonego od pozostałych nabyć (numeracja wg deklaracji VAT-7 wersja 20) mogą być wyliczane na podstawie dokumentów z poprzednich okresów bądź uzupełniane ręcznie. W związku z tym jeżeli na deklaracji VAT-7 pojawiły się wartości w polach 36, 37, 39, 47 lub 48, należy do rejestru VAT zakupu dodać odpowiedni dokument techniczny. Dokument taki nie musi posiadać żadnej pozycji, natomiast należy wybrać na nim odpowiedni wskazany powyżej atrybut (jeden bądź więcej) uzupełniając jego wartość kwotą z odpowiadających im pól na deklaracji. W celu spełnienia wymagań wzorca dokumentu elektronicznego, należy uzupełnić numer dokumentu (np.: Dokument techniczny do deklaracji VAT-7 pod plik JPK_VAT). Zalecamy kontakt z Urzędem Skarbowym celem uzgodnienia jakie dane powinny się na tego typu dokumentach znaleźć.

W przypadku korzystania z atrybutów VAT-ZD ZAKUP NIEZAPŁ lub VAT-ZD ZAKUP ZAPŁAC należy na wprowadzonych dokumentach nie dodawać pozycji, natomiast uzupełnić numer dokumentu oraz wskazać kontrahenta jaki występował fakturze która ma zostać skorygowana.

Wymienione atrybuty należy w razie potrzeby dodać na dokumencie w Rejestrze VAT na zakładce [JPK] w sekcji JPK_VAT. W tej sekcji można wskazać atrybut widoczny na liście atrybutów (Ogólne/ Atrybuty) na zakładce [JPK], który ma zaznaczony parametr JPK_VAT.

Atrybut z zaznaczonym parametrem JPK_VAT oraz dodatkowo zaznaczonym parametrem przenosić na transakcje zostanie automatycznie dodany na każdym nowo dodawanym dokumencie w rejestrze VAT.

Podczas eksportu Rejestrów VAT do plików JPK wysyłane są dokumenty mające określony miesiąc kwalifikacjiw VAT (parametr Rozliczać w VAT na dokumencie) zgodny z określonym podczas eksportu danych. W przypadku Rejestru VAT zakupu, eksportowane są tylko dokumenty mające na pozycjach w kolumnie Odliczenia ustawione Tak lub Warunkowo oraz stawkę VAT inną niż ZW i NP. Dodatkowo wpływ na eksportowane dane mają ustawienia parametrów w Konfiguracji Programu/ Księgowość/ Deklaracje. Porównując eksportowane dokumenty należy więc korzystać z drugiej zakładki na rejestrze VAT: [Do VAT/JPK_V7]. Dodatkowo w plikach JPK_VAT wykazywane są dokumenty z rejestru sprzedaży VAT zawierające pozycje ze stawką 4% (faktury taksówkarzy). Pozycje wykazywane są w pliku JPK_VAT polach K_17 (wartość netto) oraz K_18 (wartość VAT), natomiast te dokumenty nie są wykazywane w deklaracji VAT-7.

W przypadku dokumentów mających dodany atrybut o typie JPK_VAT oraz zapisów korekcyjnych wygenerowanych z załącznika VAT-ZD, do pliku JPK_VAT tego typu dokumenty przenoszone są bez względu na to czy parametr Rozliczać w VAT jest na nich zaznaczony czy nie.

W przypadku braku zapisów w rejestrze zakupów bądź rejestrze sprzedaży za podany podczas eksportu okres, tworzony plik JPK będzie zawierał informacje tylko o tym typie rejestru, w którym były zapisy. Jeżeli w określonym podczas przygotowania plików JPK okresie czasu nie ma zapisów w rejestrze VAT zakupu ani sprzedaży, wówczas jest generowany plik JPK_VAT zawierający tylko dane nagłówkowe i dane podatnika.

5 Księgi Handlowe – JPK_KR

W przypadku zaznaczenia opcji Księgi Handlowe na oknie przygotowania plików JPK istnieje możliwość wskazania, czy mają być eksportowane również zapisy znajdujące się w buforze – parametr Uwzględniaj zapisy w buforze. Domyślnie jest on zaznaczony. W pliku JPK zapisy księgowe znajdujące się w buforze rozróżnione są od zapisów zatwierdzonych poprzez oznaczenie numeru dziennika znacznikiem (b).

Podczas eksportu zapisów z Ksiąg Handlowych do plików JPK przenoszone są m.in. następujące dane:

      • Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
      • Dane dotyczące kont księgowych (Numer konta, Typ, Nazwa, Bilans otwarcia dla konta, Obroty konta za podany okres, Obroty narastająco, Saldo konta)
      • Dane dotyczące nagłówków zapisów księgowych:
        • Nr dziennika cząstkowego
        • Nazwa dziennika
        • Numer dokumentu
        • Data księgowania
        • Data Operacji
        • Data wystawienia
        • Akronim operatora (z pola Zmodyfikował)
        • Opis operacji (wartość wymagana)
      • Dane dotyczące pozycji zapisów księgowych:
        • Numery kont Wn i Ma
        • Symbol waluty na pozycji dekretu
        • Kwota w PLN i w walucie
        • Opis na pozycji dekretu (niewymagany, może być nieuzupełniony)

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK. Podczas generowania plików JPK_KR w przypadku nieuzupełnionego opisu operacji na zapisie księgowym bądź nieuzupełnionej nazwy konta księgowego, w tworzonym pliku JPK w odpowiednich polach wstawione zostanie słowo BRAK, a stosowna informacja pojawi się w logu z tworzenia pliku z informacją dla Użytkownika o konieczności weryfikacji przyczyny braku tych danych.

Dane dotyczące kont pozabilansowych nie są wysyłane do pliku JPK.

W przypadku braku zapisów mających daty księgowania za podany podczas eksportu okres, pliki JPK nie są tworzone.

6 Zapisy KPiR – JPK_PKPIR

W przypadku zaznaczenia opcji Zapisy KPiR na oknie przygotowania plików JPK istnieje możliwość wskazania, czy mają być eksportowane również zapisy znajdujące się w buforze – parametr Uwzględniaj zapisy w buforze. Domyślnie jest on zaznaczony.

Pliki JPK_PKPiR dla zapisów z księgi podatkowej generowane za okres od stycznia 2017 roku tworzone są nowym wzorcem dokumentu elektronicznego – JPK_PKPiR(2). Zapisy za wcześniejsze okresy są wysyłane poprzednią wersją wzorca.

Podczas eksportu zapisów KPiR do plików JPK przenoszone są m.in. następujące dane:

      • Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
      • Wartość spisu z natury na początek roku podatkowego (wartość z kolumny 15 spisu za miesiąc styczeń roku, z którego dane są eksportowane)
      • Wartość spisu z natury na koniec roku podatkowego (wartość z kolumny 15 spisu za miesiąc grudzień roku, z którego dane są eksportowane)
      • Liczba porządkowa zapisu KPiR
      • Data operacji gospodarczej
      • Numer dowodu
      • Nazwa podmiotu z zapisu KPiR – pole obowiązkowe
      • Dane adresowe podmiotu z zapisu KPiR (Miasto, Ulica, Nr domu/lokalu, Kod pocztowy) – pola obowiązkowe
      • Opis z zapisu KPiR – pole obowiązkowe
      • Kwoty dla poszczególnych kolumn od 7 do 16 na zapisie KPiR
      • Wartość z kolumny Uwagi na zapisie KPiR (pole opcjonalne)

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK. Podczas generowania plików JPK_PKPIR w przypadku nieuzupełnionych pól na zapisie księgowym: Nazwa podmiotu, Dane adresowe podmiotu oraz Opis, w tworzonym pliku JPK w odpowiednich polach wstawione zostanie słowo BRAK, a stosowna informacja pojawi się w logu z tworzenia pliku z informacją dla Użytkownika o konieczności weryfikacji przyczyny braku tych danych.

Zaznaczenie parametru Korekta nie ma wpływu na generowanie pliku JPK_PKPiR – plik zawsze wysyłany jest jako pierwotnie złożony.

Zapisy skreślone nie są eksportowane do plików JPK.

W przypadku braku zapisów mających datę księgowania za podany podczas przygotowania plików okres, pliki JPK nie są tworzone.

Uwaga
W związku z wymaganiami wzoru dokumentu elektronicznego, należy uzupełnić spis z natury na koniec roku (nawet jeśli spis na koniec roku jest równy spisowi na początek roku). Jest to niezbędne aby został prawidłowo wyliczony dochód w pliku JPK podczas eksportu danych za cały rok.

7 Ewidencja ryczałtowa – JPK_EWP

W przypadku zaznaczenia opcji Ewidencja ryczałtowa na oknie przygotowania plików JPK istnieje możliwość wskazania, czy mają być eksportowane również zapisy znajdujące się w buforze – parametr Uwzględniaj zapisy w buforze. Domyślnie jest on zaznaczony.

Podczas eksportu ewidencji ryczałtowej do plików JPK przenoszone są m.in. następujące dane:

      • Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
      • Liczba porządkowa zapisu w ewidencji
      • Data wpisu do ewidencji
      • Data uzyskania przychodu
      • Numer dokumentu
      • Kwoty dla poszczególnych stawek

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK.

Zapisy skreślone nie są eksportowane do plików JPK. Nie są również przesyłane zapisy związane z ewidencją produktów rolnych (2%).

W przypadku braku zapisów mających daty wpisu do ewidencji za podany podczas eksportu okres, pliki JPK nie są tworzone.

8 Wyciągi bankowe – JPK_WB

W przypadku wybrania opcji Wyciągi bankowe na oknie przygotowania plików JPK istnieje możliwość określenia w jaki sposób mają być wysyłane dane.

Domyślnie zaznaczona opcja poszczególnymi wyciągami spowoduje wygenerowanie tyle plików JPK ile było raportów bankowych w podanym zakresie dat. Dla każdego rejestru bankowego będą generowane oddzielne pliki dla każdego wyciągu. W przypadku kiedy wyciągi będą za inny okres niż miesięczny i ten okres nie będzie się pokrywał z zakresem dat wskazanym przed eksportem, wówczas wyeksportowane zostaną wszystkie wyciągi, które będą miały daty otwarcia bądź zamknięcia zawierające się w tym zakresie dat, nawet jeżeli tylko część dni z wyciągu będzie zawierać się w podanym zakresie dat.

Wybór opcji za okres spowoduje wygenerowanie tyle plików ile jest rejestrów o typie Konto bankowe. Dla każdego rejestru bankowego zostanie utworzony jeden plik za cały zakres dat.

Na oknie generowania plików JPK dla wyciągów bankowych istnieje możliwość wyboru rejestru bankowego, z którego będą eksportowane operacje do pliku JPK. W polu Rachunek bankowy można wybrać czy mają być eksportowane zapisy z wszystkich, czy z jednego wybranego rejestru bankowego.

Eksportowane są tylko wyciągi zawierające zapisy (nie są eksportowane puste raporty). Eksportowane są również otwarte raporty.

Podczas eksportu wyciągów bankowych do plików JPK przenoszone są m.in. następujące dane:

      • Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
      • Numer rachunku wpisany na formularzu rejestru kasowego/bankowego
      • Symbol waluty rachunku bankowego
      • Liczba porządkowa zapisu K/B
      • Data zapisu K/B
      • Nazwa podmiotu z zapisu K/B
      • Opis z zapisu K/B (przenoszonych jest pierwszych 256 znaków)
      • Kwota operacji

Numer rachunku bankowego określany na formularzu rejestru bankowego musi być w formacie IBAN. Zgodnie wymaganiami Ministerstwa Finansów, tylko takie rachunki zostaną wyeksportowane za pomocą pliku JPK_WB. W sytuacji kiedy w systemie numer rachunku zapisany jest jako numer w standardzie IBAN jednak bez kodu kraju PL, kod ten jest automatycznie dodawany podczas wysyłki do pliku.

Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK.

9 Faktury – JPK_FA

Do pliku JPK wysyłane są Faktury Sprzedaży, Faktury Zakupu, Faktury Zaliczkowe a także wystawione do nich dokumenty korygujące. Aby dokumenty były uwzględnione w pliku JPK, muszą zostać wcześniej zatwierdzone. Do pliku JPK_FA przenoszone są transakcje w różnych walutach. Na dokumentach walutowych wartość netto, kwota VAT oraz wartość brutto wykazywane są w walucie dokumentu. W przypadku wartości VAT, dla dokumentów walutowych przeliczana jest ona na złotówki. Podczas generowania plików JPK_FA istnieje możliwość wyboru waluty. Jeśli w bazie istnieją waluty nieaktywne, wówczas na liście takie waluty widoczne są w kolorze czerwonym. Domyślne ustawienie pola pozwala na eksport dokumentów we wszystkich walutach.

      • JPK_FA nie musi zawierać faktur zakupowych, natomiast struktura JPK_ VAT zawiera faktury zakupowe, z których podatnikowi przysługuje prawo do zmniejszenia podatku należnego,
      • Faktury, na których oprócz standardowych stawek pojawiają się też stawki NP. lub zw dla zakupów będą trafiały do pliku JPK_FA w całości, a na deklarację VAT-7 (w tym do pliku JPK_VAT) bez pozycji w tych stawkach,
      • JPK_FA nie zawiera sprzedaży detalicznej (paragonów), transakcje te natomiast wykazywane są w pliku JPK_VAT,
      • Korekta faktury in minus, której potwierdzenia odbioru od kupującego nie uzyskał podatnik – w pliku JPK_FA zostanie wykazana, natomiast w strukturze JPK_VAT pojawi się wówczas, gdy spełnione zostaną dodatkowe przesłanki dające podatnikowi prawo do obniżenia podstawy opodatkowania,
      • Faktura z oznaczeniem „metoda kasowa” jest wykazana w pliku JPK_VAT w okresie, w którym została ona zapłacona w całości lub części (odliczenie VAT dotyczy wyłącznie tej części). Dokument ten natomiast w pliku JPK_FA będzie wykazywany w całości niezależnie od terminu zapłaty.

Podczas eksportu Faktur do plików JPK przenoszone są m.in. następujące dane:

      • Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
      • Dane dotyczące nagłówków faktur:
        • Waluta dokumentu
        • Data wystawienia dokumentu
        • Numer dokumentu (dla Faktur Zakupu numer obcy)
        • Nazwa i dane adresowe Nabywcy (dla Faktur Zakupu dane Nabywcy pobierane z Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy
        • Nazwa i dane adresowe sprzedawcy (dla Faktur Zakupu dane Dostawcy)
        • Numer NIP sprzedawcy
        • Numer NIP nabywcy
        • Data zakończenia transakcji (dla Faktur Sprzedaży – data sprzedaży, dla Faktur Zakupu – data zakupu, dla Faktur Zaliczkowych – data wystawienia, dokumenty korygujące – data korekty)
        • Suma kwot netto sprzedaży w danej stawce w walucie dokumentu
        • Kwota podatku VAT w danej stawce w walucie dokumentu
        • W przypadku dokumentów walutowych Kwota podatku VAT przeliczona na złotówki
        • Wartość brutto (kwota netto + wartość podatku VAT) w walucie dokumentu
        • Informacja czy na transakcji wystąpił Mechanizm podzielonej płatności
        • Rodzaj dokumentu (dla Faktur – VAT, dla Faktur Zaliczkowych oraz Końcowych rozliczających zaliczkę – VAT, dla dokumentów korygujących – KOREKTA)
      • W przypadku Faktur VAT Marża uzupełniane jest pole dotyczące procedury marży
      • W przypadku dokumentów korygujących przenoszone są również następujące dane:
        • Cena (jako różnica pomiędzy ceną pierwotną i korektą), wartości oraz ilości zgodnie z danymi na korekcie. Korekty (wartości) do Faktur Zaliczkowych są uwzględniane w pliku w analogicznej formie jak korekty wartości wystawione do zwykłej Faktury Sprzedaży.
        • Przyczyna korekty. Na potrzeby generowania pliku JPK, dla dokumentów korygujących wprowadzono możliwość zmiany przyczyny korekty na zatwierdzonych dokumentach w module Handel / Faktury. Operator może dokonywać takich zmian, jeśli na jego karcie w Konfiguracji/Program/Użytkowe/Operatorzy na zakładce [Parametry] zostanie zaznaczony parametr Zmiana opisu i osoby odbierającej na dok.
        • Numer faktury korygowanej (dla Faktur Zakupu numer obcy korygowanego dokumentu)           W przypadku Korekty Zbiorczej/Rabat jeśli korekta dotyczy większej ilości dokumentów to w pole: Numer faktury korygowanej przenoszony jest opis „Korekta zbiorcza”.
        • Dla dokumentu Korekta Zbiorcza/Rabat przenoszona jest data sprzedaży od – do, czyli okres, do którego odnosi się udzielony rabat (data od – najniższa data sprzedaży, data do – najwyższa data sprzedaży Faktury, której dotyczy korekta). W przypadku pozostałych rodzajów korekt w polu wskazana jest data korekty od – do.
        • Na dokumencie Korekta Zbiorcza/Rabat nie jest ujęta lista towarów, ale wartość sprzedaży za dany okres w poszczególnych stawkach VAT. W związku z tym, w pliku JPK w części dotyczącej szczegółów pozycji z faktur, wartość korekty dla każdej stawki VAT będzie uwzględniona jako osobna pozycja. Ponadto, nie będzie tutaj uzupełniana nazwa towaru / usługi, a pola dotyczące jednostki miary oraz ilości będą uzupełniane wartościami „szt” oraz „1”.
        • W przypadku korekty stawki VAT, jeżeli korekta liczona jest od wartości brutto, cena jednostkowa netto ani wartość netto nie są uzupełniane w pliku, natomiast w polach dotyczących ceny i wartości brutto wpisywane jest 0. Gdy korekta stawki VAT liczona jest od wartości netto, pola dotyczące ceny i wartości brutto nie są uzupełniane, natomiast w polach dotyczące ceny i wartości netto wpisywane jest 0.
      • W przypadku Faktur Zaliczkowych przenoszone są również następujące dane:
        • Otrzymana kwota zapłaty
        • Kwota podatku od tej zapłaty
        • W przypadku kilku Faktur zaliczkowych – Numer Faktury Zaliczkowej
      • Dane podsumowujące listę faktur – sumy kontrolne, gdzie uwzględnione są dane:
        • Liczba faktur w pliku
        • Łączna wartość kwot brutto faktur w pliku
      • Szczegółowe zestawienie pozycji faktur w pliku
        • Numer dokumentu (dla Faktur Zakupu numer obcy)
        • Nazwa towaru lub usługi
        • Jednostka miary z dokumentu
        • Ilość produktu w jednostce z dokumentu
        • Cena jednostkowa netto towaru w walucie dokumentu
        • Cena jednostkowa brutto towaru w walucie dokumentu
        • Wartość sprzedaży netto
        • Wartość sprzedaży brutto
        • Stawka podatku
      • Dane podsumowujące listę wierszy faktur – sumy kontrolne, gdzie uwzględnione są dane:
        • Suma wszystkich wierszy – elementów z faktur w pliku
        • Łączna wartość netto wszystkich wierszy – elementów z faktur w pliku bez względu na walutę
      • Dane dotyczące Zamówienia
        • Numer Faktury Zaliczkowej
        • Wartość zamówienia – wartość brutto Faktury Pro Forma
      • Szczegółowe pozycje dotyczące zamówienia (Faktury Pro Forma)
        • Nazwa towaru/ usługi
        • Jednostka miary
        • Ilość towaru/ usługi
        • Cena jednostkowa netto
        • Wartość pozycji netto
        • Kwota podatku pozycji
        • Stawka podatku pozycji
      • Dane podsumowujące listę zamówień – sumy kontrolne:
        • Liczba zamówień
        • Łączna wartość kolumny: Wartość zamówienia w okresie, którego dotyczy JPK_FA

W przypadku, gdy w Konfiguracji Firmy/ Dane firmy/ Pieczątka firmy – jednostka samorządowa dodana została pieczątka firmy z zakresem dat obejmującym datę wystawienia dokumentu, wówczas do pliku JPK_FA dla faktur sprzedaży jako dane sprzedawcy, a dla zakupu jako dane nabywcy przenoszone są dane z tej pieczątki firmy dla jednostki samorządowej. Dotyczy zarówno dokumentów wystawianych w module Handel/Faktury jak i w Rejestrze VAT.

W pliku JPK_FA nie są uwzględniane informacje o kaucjach. Jeżeli zatem na dokumentach FA lub FZ, pobranych do pliku występowały pozycje związane z opakowaniami kaucjonowanymi, dane dotyczące kwot kaucji nie będą zaczytane do pliku JPK.

Dla Faktur zaliczkowych, do pliku JPK przenoszone są dane zgodnie z wartościami na Fakturze Zaliczkowej. Wartości w poszczególnych stawkach VAT oraz wartość brutto zaliczki. Do pliku nie są przenoszone  informacje o pozycjach z dokumentu gdyż mają one swoje odzwierciedlenie w sekcji Zamówienie.

Dla Faktur Finalnych, do pliku JPK przenoszone są dane zgodnie z wartościami na Fakturze Finalnej. Wartości w poszczególnych stawkach VAT oraz wartość brutto dokumentu ogółem (wartość z faktury pomniejszona o kwotę użytych zaliczek), są więc przeniesione z Faktury Finalnej. Również w części dotyczącej poszczególnych pozycji z dokumentu, w pliku uwzględniane są kwoty i ilości zgodne z fakturą finalną.

W celu wykazywania wartości w odpowiednich polach w plikach JPK, dla faktur wprowadzone zostały następujące atrybuty dla dokumentów handlowych:

      • SAMOFAKTUROWANIE (faktury wystawiane metodą samofakturowania) – atrybut o typie tekst bez domyślnej wartości, atrybut należy dodać na dokument wystawiony metodą samofakturowania, aby taki dokument został poprawnie zarejestrowany w pliku JPK
      • POLSKA USTAWA (przyczyna zastosowania zwolnienia na podstawie Art. 43 ust. 1 ustawy o VAT) – atrybut o typie lista, przed użyciem atrybutu należy ręcznie uzupełnić wartości listy, wpisując który punkt z ustawy daje podstawę do zwolnienia
      • DYREKTYWA UNIJNA (przyczyna zastosowania zwolnienia na mocy artykułu 141 dyrektywy 2006/112/WE) – atrybut o typie lista, przyjmuje wartość: Faktura WE uproszczona na mocy artykułu 141 dyrektywy 2006/112/WE
      • INNE ZWOLNIENIA (inna przyczyna zastosowania zwolnienia)
      • FA NA RZECZ DŁUŻNIKA (faktura wystawiona w imieniu, na rzecz dłużnika; jako wartość atrybutu należy wprowadzić kod kontrahenta, który jest organem egzekucyjnym lub komornikiem) – w bazie danych należy założyć kartę kontrahenta dla komornika lub dla organu egzekucyjnego, który będzie wystawiał faktury w imieniu i na rzecz dłużnika. Na karcie kontrahenta należy uzupełnić pola Kod, Nazwa oraz dane adresowe. Dane te są wymagane, ponieważ są one przenoszone do pliku JPK. Kod takiego kontrahenta należy następnie wprowadzić na listę wartości atrybutu. Jego dane zostaną wówczas automatycznie przeniesione do pliku JPK. Jeśli na listę zostanie wprowadzony niepoprawny kod kontrahenta, np. kod kontrahenta, którego nie ma w bazie, pola w pliku dotyczące organu egzekucyjnego lub komornika nie zostaną uzupełnione.
      • PRZEDSTAWICIEL PODAT (faktura wystawiona w imieniu, na rzecz podatnika; jako wartość atrybutu należy wprowadzić kod kontrahenta, który jest przedstawicielem podatkowym) – w bazie danych należy założyć kartę kontrahenta dla przedstawiciela podatkowego, który będzie wystawiał faktury w imieniu i na rzecz podatnika. Na karcie kontrahenta należy uzupełnić pola Kod, Nazwa, dane adresowe oraz numer NIP. Dane te są wymagane, ponieważ są one przenoszone do pliku JPK. Kod takiego kontrahenta należy następnie wprowadzić na listę wartości atrybutu. Jego dane zostaną wówczas automatycznie przeniesione do pliku JPK. Jeśli na listę zostanie wprowadzony niepoprawny kod kontrahenta, np. kod kontrahenta, którego nie ma w bazie, pola w pliku dotyczące przedstawiciela podatkowego nie zostaną uzupełnione.
      • DATA DOPUSZCZ. POJ (data dopuszczenia nowego środka transportu do użytku) – atrybut o typie data, bez domyślnej wartości. Użytkownik uzupełnia datę dopuszczenia nowego środka transportu do użytku.
      • PRZEBIEG POJAZDU (przebieg pojazdu – w przypadku pojazdów lądowych) – atrybut o typie liczba, bez domyślnej wartości. Użytkownik uzupełnia przebieg pojazdu – w przypadku pojazdów lądowych
      • LICZBA GODZ. UŻYW (liczba godzin roboczych używania nowego środka transportu – w przypadku jednostek pływających oraz statków powietrznych) – atrybut o typie liczba, bez domyślnej wartości. Użytkownik uzupełnia liczbę godzin roboczych używania nowego środka transportu.

Wymienione atrybuty należy w razie potrzeby dodać na dokumencie handlowym na zakładce [Atrybuty] w sekcji JPK. W tej sekcji można wskazać atrybut widoczny na liście atrybutów (Ogólne/ Atrybuty) na zakładce [JPK], który ma zaznaczony parametr JPK_FA: FA.

Atrybut z zaznaczonym parametrem JPK_FA: FA oraz dodatkowo z parametrem przenosić na transakcje zostanie automatycznie dodany na każdym nowo dodawanym dokumencie handlowym.

Na liście Faktur Sprzedaży możliwy jest wybór dodatkowych kolumn odpowiadających atrybutom wykorzystywanym w Jednolitym Pliku Kontrolnym.

Podczas księgowania faktur z modułu Handel/Faktury z wybranymi atrybutami JPK do rejestrów VAT, zostaną one przeniesione na dokument w rejestrze VAT do grupy atrybutów JPK_FA pod warunkiem, że będą mieć zaznaczony parametr kopiować przy księgowaniu do rejestru VAT. Przeniesione w ten sposób atrybuty typu JPK_FA będą widoczne na dokumentach w rejestrze VAT nawet jeśli parametr JPK_FA na dokumencie w rejestrze VAT nie będzie zaznaczony.

Powyższe atrybuty mogą być również wykorzystywane na dokumentach w rejestrach VAT dla np. faktur kosztowych. Warunkiem, aby dokumenty wprowadzone bezpośrednio do Rejestrów VAT zostały wyeksportowane do plików JPK, jest zaznaczenie na nich parametru JPK_FA. Parametr ten został dodany na dokumentach w Rejestrach VAT Zakupu i Sprzedaży w prawej górnej części okna.

W szczególności dotyczy on dokumentów kosztowych, które nie mają odzwierciedlenia w module Handel. Podczas ręcznego dodawania dokumentów do Rejestrów VAT sprzedaży parametr jest automatycznie zaznaczany. Wyjątek stanowią dokumenty wewnętrzne, dla których parametr nie zaznacza się samoczynnie. Od wersji Comarch ERP Optima 2017.1.1. na ręcznie dodawanych dokumentach w rejestrze VAT zakupu parametr JPK_FA nie jest automatycznie zaznaczany ponieważ do pliku JPK_FA nie ma obowiązku eksportu faktur zakupowych.

Dokumenty przeniesione z modułu Handel /Faktury, jak również zaimportowane z pliku VAT_R lub za pomocą Comarch ERP Migrator nie będą miały tego parametru zaznaczonego. Parametr nie będzie również zaznaczany dla istniejących dokumentów podczas konwersji baz danych z poprzednich wersji. Parametr JPK_FA jest przenoszony dla dokumentów zaimportowanych pracą rozproszoną pod warunkiem, eksport odbywa się z rejestrów VAT i na dokumentach w rejestrze VAT w bazie źródłowej parametr JPK_FA jest zaznaczony.

Parametr JPK_FA możliwy jest do zaznaczenia również w przypadku dokumentów zaksięgowanych lub posiadających predekretację.

Dodatkowo dla dokumentów wprowadzanych bezpośrednio w Rejestrze VAT, z racji braku odpowiednich informacji na dokumencie, wprowadzone zostały poniższe atrybuty:

      • FAVAT MARŻA (wybór odpowiedniej procedury marży – wybierany w przypadku rozliczenia marży) ‑ atrybut typu lista. W programie dostępne są następujące pozycje listy (z możliwością edycji): 1 – Procedura marży dla biur podróży, 2 – Procedura marży – towary używane, 3 – Procedura marży – dzieła sztuki, 4 – Procedura marży – przedmioty kolekcjonerskie i antyki.
      • FA ZALICZKOWA (czy dokument jest fakturą zaliczkową – wybierany w przypadku faktur zaliczkowych) ‑ atrybut o typie lista, z domyślną wartością TAK
      • PRZYCZYNA KOREKTY (wybierany w przypadku faktury korygującej) – atrybut o typie lista. W programie dostępne są następujące pozycje listy (z możliwością edycji): 1 – korekta ilości, 2 – korekta wartości/ceny, 3 – korekta stawki VAT, 4 – korekta zbiorcza
      • OKRES KOREKTY OD (korekta za okres: od) – atrybut o typie data
      • OKRES KOREKTY DO (korekta za okres: do) – atrybut o typie data

Wymienione powyżej atrybuty należy dodać na dokumencie w rejestrze VAT na zakładce [JPK] w sekcji JPK_FA. W tej sekcji można wskazać atrybut widoczny na liście atrybutów (Ogólne/ Atrybuty) na zakładce [JPK], który ma zaznaczony parametr JPK_FA: VAT. Warunkiem jest, aby na dokumencie w rejestrze VAT był zaznaczony parametr JPK_FA. W przeciwnym wypadku jeśli parametr jest nie zaznaczony, na zakładce [JPK] w sekcji JPK_FA nie będzie możliwości wybrania tego typu atrybutów.

Dla dokumentów wprowadzonych do rejestru VAT i eksportowanych do pliku JPK_FA,  nazwa towaru pobierana jest z pola Opis na pozycji dokumentu, a w przypadku jego nie uzupełnienia, z kolumny Rodzaj. Jeżeli chodzi o ilość towaru/usługi oraz jednostkę miary – w takim przypadku w pliku JPK_FA przyjmowane są wartości domyślne, czyli 1 szt.

W przypadku kiedy dane do pliku JPK_FA pobierane są z rejestru VAT i na dokumencie w walucie obcej zaznaczony jest parametr Inny kurs do księgowania, wówczas do pliku JPK_FA pobierane są kwoty wg kursu do VAT.

W przypadku wprowadzania do Rejestru VAT dokumentu korygującego, oprócz zaznaczenia na zakładce [Ogólne] parametru Korekta i wprowadzeniu numeru dokumentu korygowanego, należy dodać atrybut PRZYCZYNA KOREKTY. Daty okresu korekty pobierane są z atrybutów OKRES KOREKTY OD oraz OKRES KOREKTY DO, a w przypadku ich braku – z pola Data wystawienia.

Uwaga
Dodanie na dokumentach odpowiednich atrybutów i uzupełnienie ich wartości, jest konieczne aby w pliku JPK zarejestrować dodatkowe informacje dotyczące szczególnych warunków transakcji.

10 Dokumenty magazynowe – JPK_MAG

Do pliku JPK_MAG wysyłane są Przyjęcia Zewnętrzne, Wydania Zewnętrzne, Rozchody Wewnętrzne oraz Przesunięcia Międzymagazynowe, a także wygenerowane do tych dokumentów korekty. Aby dokumenty zostały zaczytane do pliku, muszą być wcześniej zatwierdzone. Do pliku nie są przenoszone dokumenty anulowane ani WZKK.

Pliki JPK_MAG generowane są osobno dla każdego magazynu w bazie i każdej waluty. Wartości w tych plikach wykazywane są w walucie, w jakiej zostały wystawione dokumenty.

Na oknie generowania plików JPK dla dokumentów magazynowych istnieje możliwość wyboru waluty. Jeśli w bazie istnieją waluty nieaktywne, wówczas na liście takie waluty widoczne są w kolorze czerwonym. Domyślne ustawienie pola pozwala na eksport dokumentów we wszystkich walutach. Po wyborze konkretnej waluty tworzony jest plik zawierający tylko dokumenty w tej walucie.

Na oknie generowania plików JPK istnieje również możliwość wyboru magazynu. Jeśli w bazie istnieją magazyny nieaktywne, wówczas na liście wyboru magazynu widoczne są w kolorze czerwonym. Domyślne ustawienie pola pozwala na eksport dokumentów ze wszystkich magazynów.  Po wyborze konkretnego magazynu tworzony będzie plik tylko z dokumentami z tego magazynu.

Podczas eksportu dokumentów magazynowych do plików JPK przenoszone są m.in. następujące dane:

Następnie dla każdego typu dokumentu przenoszone są dane dotyczące wartości całego dokumentu, szczegóły pozycji oraz wiersz sumy kontrolnej ilości dokumentów danego typu i ich łącznej wartości.

Dla dokumentów PZ:

      • Dane wartości dokumentu uwzględniają:
        • Numer obcy
        • Data wystawienia
        • Wartość netto dokumentu
        • Data zakupu
        • Dostawca towaru
        • Numer obcy dokumentu handlowego
        • Data wystawienia Faktury Zakupu powiązanej z PZ
      • Dane dotyczące elementów uwzględniają:
        • Numer obcy
        • Kod towaru / usługi
        • Nazwa towaru / usługi
        • Ilość przyjęta w jednostce miary z dokumentu
        • Jednostka miary z dokumentu
        • Cena netto towaru / usługi
        • Wartość netto
      • Wiersz sumy kontrolnej, gdzie uwzględniono:
        • Liczbę dokumentów PZ w pliku
        • Wartość netto dokumentów PZ w pliku

Dla dokumentów WZ:

      • Dane wartości dokumentu uwzględniają:
        • Numer dokumentu
        • Data wystawienia
        • Wartość netto dokumentu
        • Data wydania WZ
        • Nazwa odbiorcy towaru
        • Numer faktury do WZ
        • Data wystawienia Faktury Sprzedaży powiązanej z WZ
      • Dane dotyczące elementów uwzględniają:
        • Numer dokumentu WZ
        • Kod towaru / usługi
        • Nazwa towaru / usługi
        • Ilość towaru w jednostce miary z dokumentu
        • Jednostka miary z dokumentu
        • Cena netto towaru / usługi
        • Wartość netto
      • Wiersz sumy kontrolnej, gdzie uwzględniono:
        • Liczbę dokumentów WZ w pliku
        • Wartość netto dokumentów WZ w pliku

Dla dokumentów RW:

      • Dane wartości dokumentu uwzględniają:
        • Numer dokumentu RW
        • Data wystawienia
        • Wartość netto dokumentu
        • Data wydania towaru na RW
      • Dane dotyczące elementów uwzględniają:
        • Numer dokumentu RW
        • Kod towaru / usługi
        • Nazwa towaru / usługi
        • Ilość towaru w jednostce miary z dokumentu
        • Jednostka miary z dokumentu
        • Cena netto towaru / usługi w jednostce z dokumentu
        • Wartość netto
      • Wiersz sumy kontrolnej, gdzie uwzględniono:
        • Liczbę dokumentów RW w pliku
        • Wartość netto dokumentów RW w pliku

Dla dokumentów MM:

      • Dane wartości dokumentu uwzględniają:
        • Numer dokumentu
        • Data wystawienia
        • Wartość netto dokumentu
        • Data wydania MM
      • Dane dotyczące elementów uwzględniają:
        • Numer dokumentu MM
        • Kod towaru / usługi
        • Nazwa towaru / usługi
        • Ilość towaru w jednostce miary z dokumentu
        • Jednostka miary z dokumentu
        • Cena netto towaru / usługi
        • Wartość netto
      • Wiersz sumy kontrolnej, gdzie uwzględniono:
        • Liczbę dokumentów MM w pliku
        • Wartość netto dokumentów MM w pliku

11 Import plików JPK_VAT do rejestrów VAT

Od wersji Comarch ERP Optima 2018.1 Użytkownicy mogą skorzystać z funkcji importu plików JPK_VAT do rejestrów VAT. Opcja dostępna jest z menu głównego po wyborze JPK/ Import do rej.VAT  :

Na oknie po kliknięciu ikony  Wybór pliku należy wskazać źródłowy plik XML, z którego mają zostać importowane dane. Warunkiem powodzenia importu jest aby struktura wskazanego pliku była zgodna z wymaganą przez Ministerstwo Finansów strukturą JPK_VAT(2), JPK_VAT(3) lub JPK_V7. W przypadku wybrania niewłaściwego typu pliku pojawia się stosowne ostrzeżenie i import danych nie jest możliwy.

Parametr Za okres domyślnie jest nieaktywny. Takie ustawienie powoduje, że wszystkie dokumenty z pliku zostaną zaimportowane bez względu na ich daty. Po wskazaniu pliku JPK_VAT zakres dat zostaje uzupełniony na podstawie danych w pliku. Po zaznaczeniu parametru Za okres Użytkownik może wpisać inny zakres dat (zawęzić okres) za jaki zostaną zaimportowane dokumenty ze wskazanego pliku. Dla dokumentów sprzedażowych wskazywane dla parametru daty dotyczą daty wystawienia, natomiast dla dokumentów zakupowych – daty wpływu. Jeżeli w pliku JPK_VAT dla dokumentu importowanego do rejestru zakupu VAT nieuzupełniona jest data wpływu, jest ona uzupełniona jako zgodna z datą zakupu.

Na oknie istnieje możliwość wskazania rejestrów sprzedaży i zakupów VAT, do których mają zostać zaimportowane dokumenty z pliku. Odznaczenie jednego z typów rejestru VAT (zakupów lub sprzedaży) powoduje,

że tego typu dokumenty nie zostaną zaimportowane z pliku. Jeżeli w pliku JPK_VAT występują tylko dokumenty jednego typu (np. tylko rejestr sprzedaży VAT) i ten typ rejestrów został odznaczony przez Użytkownika, przy próbie importu pojawi się informacja o braku danych do zaimportowania.

Podczas importu dokumentów, jeśli w pliku JPK_VAT uzupełniony jest numer NIP kontrahenta i w bazie istnieje już kontrahent z takim numerem NIP, wówczas po zaimportowaniu dokument przypisywany jest do tego kontrahenta (podstawiany jest jego akronim). Jeżeli istniejący w bazie kontrahent oznaczony został jako zduplikowany podczas operacji łączenia kart kontrahentów, na zaimportowanym dokumencie podstawiony zostanie kontrahent główny. Dane kontrahenta na dokumencie (jego nazwa i adres) przenoszone są zawsze z pliku. Rodzaj transakcji, rodzaj na pozycji dokumentu oraz status kontrahenta na zaimportowanym dokumencie uzupełniane są zgodnie z domyślnymi ustawieniami kwalifikującymi do deklaracji VAT-7 dla pola, do którego dany dokument w pliku JPK_VAT został zakwalifikowany.

Na dokument podstawiana jest kategoria sprzedaży lub zakupu z istniejącej karty kontrahenta (jeżeli domyślne kategorie dla kontrahenta są uzupełnione).

W przypadku nie zaznaczonego parametru Załóż karty kontrahentów (na podstawie numeru NIP) jeżeli kontrahent o takim numerze NIP jak na dokumencie w pliku nie występuje w bazie (lub jest więcej niż jeden kontrahent z takim numerem NIP), wówczas na zaimportowanym dokumencie podstawiany jest kontrahent Nieokreślony. Dane kontrahenta na dokumencie (jego nazwa i adres) przenoszone są z pliku. W przypadku importu dokumentów do rejestru VAT bez zakładania kart kontrahentów, jeżeli na dokumencie w pliku JPK_VAT uzupełniony jest numer NIP kontrahenta, na zaimportowanym dokumencie zaznaczony zostaje parametr Podmiot gospodarczy. Jeżeli w pliku JPK_VAT nie ma numeru NIP dla transakcji (pole z numerem NIP jest puste lub znajduje się w nim znak „-”), w rejestrze VAT na dokumencie zaznaczony zostaje parametr Finalny. Po przeprowadzonym imporcie zaleca się wykonanie dla zaimportowanych dokumentów operacji seryjnej Zweryfikuj status VAT.

W przypadku zaznaczonego parametru Załóż karty kontrahentów (na podstawie numeru NIP) jeżeli kontrahent o takim numerze NIP jak na dokumencie w pliku nie występuje w bazie, wówczas zostanie założona jego karta na podstawie danych w pliku i zostanie on podstawiony na zaimportowanym dokumencie. Jako akronim nowego kontrahenta wstawiany jest numer NIP. Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Autonumeracja akronimów kontrahentów przy dodawaniu, wówczas akronim zakładanego kontrahenta nadawany jest według wskazanego w Konfiguracji schematu numeracji.

Jeżeli na dokumencie w pliku kontrahent nie ma uzupełnionego numeru NIP (lub w bazie jest więcej niż jeden kontrahent z takim numerem NIP), wówczas karta kontrahenta nie jest zakładana. Na takim dokumencie po imporcie podstawia się kontrahent Nieokreślony z danymi adresowymi takimi, jakie są w pliku JPK_VAT. W przypadku braku numeru NIP kontrahenta w pliku JPK_VAT, na dokumencie jako rodzaj transakcji podpowie się Krajowa.

Jeżeli numer NIP kontrahenta krajowego w pliku JPK_VAT jest niepoprawny, nie jest zakładana karta takiego kontrahenta i nie są importowane jego dokumenty do rejestru VAT.

Na oknie importu istnieje możliwość wyboru formy płatności na zaimportowanych dokumentach. Po wybraniu opcji domyślną Użytkownik może wskazać jedną z aktywnych form płatności występujących w bazie. Jeżeli istniejący w bazie kontrahent ma ustawiony na swojej karcie indywidualny termin płatności, taki termin zostanie wyliczony na zaimportowanym dokumencie. Jeżeli istniejący w bazie kontrahent nie ma określonego terminu płatności, wówczas termin płatności na zaimportowanym dokumencie wyliczony zostanie na podstawie terminu ustawionego na wybranej formie płatności.

W przypadku wybrania opcji z karty kontrahenta, na dokumencie podstawiana jest forma płatności wskazana na karcie istniejącego kontrahenta. Jeżeli w bazie nie istnieje kontrahent o podanym numerze NIP, na zaimportowanym dokumencie podstawiana jest forma płatności gotówka. Ta forma płatności zostanie również ustawiona jako domyślna forma płatności dla założonego kontrahenta. Jeżeli forma płatności gotówka jest zablokowana, podstawi się kolejna (według kolejności wprowadzania) forma płatności.

Jeżeli istniejący w bazie kontrahent ma zaznaczony parametr Nie rozliczaj płatności, płatność z zaimportowanego dokumentu zostanie dodana do preliminarza ze statusem Nie podlega.

Jeżeli Użytkownik wybierze dla opcji domyślną formę płatności gotówka (lub kontrahent ma wybraną tę formę płatności jako domyślną), po zaimportowaniu nie będą tworzone automatycznie zapisy K/B rozliczające płatności do importowanych dokumentów.

Zaznaczenie na oknie importu parametru Ustaw status płatności na Nie podlega powoduje, że wszystkie płatności z zaimportowanych dokumentów otrzymają status Nie podlega.

Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Kontrola duplikacji zapisów w rejestrze VAT, ewidencji dodatkowej i na fakturach zakupu, podczas importu następuje weryfikacja czy w bazie nie występuje już dokument o parametrach określonych dla kontroli duplikacji. Jeżeli taki dokument już istnieje, dokument z pliku JPK_VAT nie zostanie zaimportowany, a w logu z przebiegu importu pojawi się stosowna informacja.

Kliknięcie ikony  Uruchom import powoduje zaczytanie danych z pliku JPK_VAT do bazy. Ikona jest aktywna po wskazaniu poprawnego pliku JPK_VAT oraz zaznaczeniu rejestru sprzedaży i/lub rejestru zakupu do importu.

Wybranie opcji  Zamknij okno powoduje rezygnację z importu i zamknięcie okna.

Uwaga
Pliki JPK_VAT nie posiadają wszystkich potrzebnych informacji występujących na dokumentach w rejestrze VAT, dlatego też przy imporcie przyjmowane są pewne uproszczenia np. co do formy płatności, rodzaju transakcji, waluty, stawki VAT, opisu, kolumny KPiR, stanu dokumentu zwykły/wewnętrzny itp. W związku z tym po zaimportowaniu dokumentów należy zweryfikować ich poprawność.

W razie potrzeby należy skorzystać z operacji seryjnych dostępnych bezpośrednio w rejestrach VAT.

Na zaimportowanych dokumentach do rejestru zakupu VAT domyślnie ustawiane są odliczenia na TAK.

Uwaga
W pliku JPK_VAT znajdują się tylko wartości z odliczeniami na TAK lub Warunkowo (przeliczone przez szacunkowy współczynnik struktury sprzedaży). Jeżeli więc na dokumencie przed eksportem do pliku JPK_VAT znajdowały się pozycje z odliczeniami na NIE oraz na TAK, wówczas do pliku zostaną wyeksportowane (a tym samym zaimportowane z niego) tylko te pozycje mające odliczenia na TAK. W przypadku odliczeń WARUNKOWO, po eksporcie do pliku te pozycje są mnożone przez szacunkowy współczynnik struktury sprzedaży. W związku z tym wartość brutto na zaimportowanym dokumencie w rejestrze zakupu VAT nie zawsze będzie się zgadzać z wartością brutto dokumentu sprzed eksportu do pliku JPK_VAT. Należy więc po imporcie zweryfikować poprawność kwot brutto dokumentów.

W przypadku rejestrów sprzedaży VAT w kolumnie Uwzględniaj w proporcji ustawiane są domyślne wartości dla poszczególnych stawek VAT:

      • Uwzględniaj – dla stawek: 23%, 8%, 5%, 0%
      • Tylko w mianowniku – dla stawki ZW
      • Nie uwzględniaj – dla stawki NP

W przypadku ustawionego w Konfiguracji Firmy/ Księgowość/ Parametry rodzaju księgowości księga podatkowa, na pozycjach  zaimportowanych dokumentów w rejestrze sprzedaży VAT ustawiana jest kolumna KPiR 7.Sprzedaż, natomiast na dokumentach w rejestrze zakupu VAT kolumna 10.Towary.

Jeżeli ustawiony jest rodzaj księgowości ewidencja ryczałtowa, na pozycjach  zaimportowanych dokumentów w rejestrze sprzedaży VAT ustawiana jest stawka dla ryczałtu 3,00%.

Jeżeli w pliku JPK_VAT znajdowały się dokumenty z pozycjami wykazywanymi w deklaracji VAT-7 w polach:

      • 36 – Podatek należny od towarów objętych spisem z natury,
      • 37 – Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących,
      • 38 – Podatek od wewnątrzwspólnotowego nabycia środków transportu,
      • 39 – Podatek od wewn. nabycia towarów art. 103 ust. 5aa,
      • 47 – Kwota podatku naliczonego od nabycia środków trwałych,
      • 48 – Kwota podatku naliczonego od pozostałych nabyć,
      • 49 – Kwota podatku naliczonego, o której mowa w art.89b ust. 1 ustawy,
      • 50 – Kwota podatku naliczonego, o której mowa w art.89b ust. 4 ustawy,

a więc wynikające z zastosowania na dokumentach atrybutów JPK_VAT, pozycje te nie zostaną zaimportowane do rejestru VAT z pliku JPK_VAT.

Uwaga
Na zaimportowanych z pliku JPK_VAT do rejestru VAT dokumentach, w polu Rozliczać w VAT ustawiany jest rok i miesiąc zgodny z okresem za jaki wygenerowany został plik JPK_VAT. Dotyczy to metody zwykłej rozliczenia podatku VAT.

Na zaimportowanych dokumentach zostanie prawidłowo ustawiona data rozliczenia w VAT jedynie w bazach, które za dany okres czasu rozliczają VAT metodą zwykłą. Jeśli w bazie docelowej wybrana jest metoda kasowa, wówczas należy ponownie zweryfikować datę uwzględnienia w VAT na poszczególnych dokumentach.




Data aktualizacji: 20-11-2019

Teoria i przykłady praktyczne

Panel filtra zaawansowanego

Filtr jest narzędziem wspomagającym przeszukiwanie list. W wielu miejscach systemu pojawiają się różnego rodzaju listy, do których można stosować filtry. Filtrowanie listy powoduje zawężenie ilości elementów wyświetlanych na liście do takich, które spełniają warunki filtra. Panel filtra można stosować na dwa sposoby:

  • Proste filtrowanie
  • Filtr zaawansowany


We wszystkich przypadkach list, które mogą być filtrowane, panel filtra zaawansowanego znajduje się na dole listy. Po prawej stronie wiersza filtra znajdują się zawsze przyciski do włączania i wyłączania działania filtra Filtruj, Wyczyść filtr oraz przycisk do tworzenia warunków filtrujących filtra zaawansowanego Konstruktor filtra.

Jeżeli pinezka (widoczna obok ikony filtrowania – lejka) jest:
wyłączona – wówczas po zmianie filtrowania na ikonie lejka pojawia się znak zapytania i dopiero po jego kliknięciu uruchomione zostanie filtrowanie. Ten tryb pracy jest efektywniejszy gdy lista zwiera bardzo dużo pozycji. Można wtedy najpierw ustawić wszystkie parametry filtrowania, a dopiero na końcu uruchomić samo przefiltrowanie listy.
włączona – wszystkie zmiany filtrowania wykonywane są na bieżąco i od razu widoczne są na liście.

Filtr zaawansowany pozwala filtrować listę według stworzonych przez Użytkownika warunków. Filtry zaawansowane są zapamiętywane w systemie. Nazwa filtra zaawansowanego jest poprzedzona znakiem „#”. Do tworzenia filtra zaawansowanego służy Konstruktor filtra , uruchamiany z dowolnego okna, w którym istnieje możliwość zastosowania filtra.
Praca z konstruktorem filtra wymaga pewnej znajomości struktury baz danych oraz umiejętności formułowania warunków logicznych.
Nazwa – nazwa filtra. Po zapisaniu filtra wpisana w tym polu nazwa zostanie poprzedzona znakiem „#”. Filtr pod tą nazwą będzie zapisany w zbiorze dostępnych filtrów dla danej listy. Zbiór filtrów przyporządkowanych do danej listy może być dowolnie modyfikowany tzn. można dodawać, poprawiać i usuwać zdefiniowane filtry.

Zakładka [Ogólne]

Zakładka [Ogólne] zawiera mechanizm łatwego konstruowania rozbudowanego wyrażenia logicznego filtrującego listę. W rozbudowanej postaci warunek logiczny może składać się z wielu członów połączonych operatorami logicznymi „oraz” (AND), „lub” (OR), „oraz nie” (AND Not) i „lub nie” (OR Not). W konstruktorze filtra tworzy się proste warunki logiczne, a następnie łączy się je za pomocą dostępnych operatorów.

Konstruktor filtra – zakładka Ogólne

Tworzenie pojedynczego wyrażenia filtra zaczyna się od dodania warunku (po kliknięciu w domyślny operator Oraz wybieramy opcję Dodaj warunek lub obok wciskamy przycisk). Następnie w warunku kliknięcie na domyślnie podstawione pierwsze pole z bazy danych rozwija listę z wyborem dostępnych pól. Nie trzeba znać dokładnie nazw pól czy struktury bazy – po prawej stronie listy znajduje się opis (komentarz).

Konstruktor filtra – lista dostępnych pól z bazy danych

Dostęp do pól zorganizowany jest za pośrednictwem list rozwijanych. W zależności od tego, dla jakiej listy tworzony jest filtr (z poziomu którego okna został wywołany konstruktor filtra), lista dostępnych pól jest różna. Przykładowo, jeżeli konstruktor filtra zostanie wywołany z okna Kontrahenci – wówczas dostępne będą pola związane z kartoteką kontrahenta.
Za każdym razem Użytkownik otrzymuje zestaw dostępnych pól odpowiedni do danej listy. Dzięki temu, chcąc tworzyć własne filtry, nie musi znać całej bazy danych. Może się ograniczyć do znajomości struktury kilku tabel, w oparciu o które będzie budował własne filtry. Po wyborze pola należy wybrać odpowiedni operator porównania
z listy. Lista pojawi się po kliknięciu na domyślnie wyświetlany operator.

Konstruktor filtra – dostępne operatory warunkujące

Inaczej mówiąc, należy przyrównać wybrane pole do ustalonej z góry wartości stałej lub do parametru, którego wartość będzie pobierana w momencie uruchamiania filtra. Wartość do której będzie odbywało się przyrównanie wpisujemy po kliknięciu w pole . Tworzenie wyrażenia może odbywać się także w oknie Edycja wyrażenia filtra, które uruchamia się po kliknięciu w pole , a następnie przycisku plusa po prawej stronie .

Po wywołaniu okna Edycja wyrażenia filtra należy podać wartość szukaną dla tego pola. Jeżeli wartość szukana ma być pobierana w momencie uruchomienia filtra to należy zaznaczyć pole wyboru Pytaj o wartość. Następnie w polu Tytuł należy wpisać opis pobieranej wartości. W ten prosty sposób tworzy się filtry z parametrem. Poniżej przedstawione zostało okno z pytaniem o parametry filtra. Okno pojawia się automatycznie po uruchomieniu filtra z parametrem.

Edycja wyrażenia filtra

Logiczna reprezentacja utworzonego w ten sposób wyrażenia filtrującego jest wyświetlana w dolnej części okna po zaakceptowaniu Edycji wyrażenia filtra.

Zakładka [Zaawansowane]

Zakładka [Ogólne] konstruktora filtra pozwala na łatwe budowanie wyrażeń filtrujących, posiada on jednak pewne ograniczenia. Dla bardziej wymagających Użytkowników została zaprojektowana zakładka [Zaawansowane]. Można tu ręczne tworzyć warunek filtrujący. Zakładka [Zaawansowane] posiada pole, do którego wprowadzany jest filtr w postaci wyrażenia z użyciem składni języka SQL. Praca z konstruktorem filtra wymaga znajomości struktury baz danych oraz umiejętności formułowania warunków logicznych.

Uwaga
Aby zobaczyć listę zdefiniowanych filtrów należy przycisnąć klawisz CTRL razem z LEWYM KLAWISZEM MYSZY na przycisku Konstruktor filtra. Lista ta obsługiwana jest przez standardowe przyciski i klawisze umożliwiające dodawanie, edytowanie i kasowanie filtrów.

Konstruktor filtra – zakładka Zaawansowane

Jeżeli zachodzi potrzeba utworzenia warunku, aby filtr działał jedynie na wybranej bazie firmowej, na początku treści filtra należy wpisać:

'DEMO' = {_QGetSQL('select SYS_Wartosc from cdn.SystemCDN where SYS_ID =1')}
po tym warunku po operatorze „AND” należy wprowadzić właściwą treść filtra. W powyższym warunku na początku jako argument (w powyższym przykładzie „DEMO”) należy podać nazwę bazy wyświetlaną na liście firm.

Zakładka [Opcje]

Zakładka [Opcje] zawiera typ filtra. Domyślnym typem jest filtr Stanowiska. Jego definicja jest zapisywana w rejestrze systemowym i filtr stanowiska będzie widoczny dla danego stanowiska.

Definicja filtra Globalnego jest zapisywana w bazie danych, dzięki czemu jest on widoczny i dostępny do edycji dla wszystkich Użytkowników.

Filtr może być dostępny tylko dla wybranego operatora po zaznaczeniu opcji Operator i wybraniu odpowiedniego operatora. Po zalogowaniu się operator będzie miał możliwość wyboru filtra z listy filtrów.

Filtr może być Obowiązkowy dla danego operatora, co oznacza, że po zalogowaniu się tego operatora filtr będzie włączony i nie będzie widoczny (do wyboru) na liście filtrów. Dodatkowo należy zaznaczyć w menu System/ Konfiguracja/ Program/ Użytkowe/ Parametry – parametr Stosuj filtry obowiązkowe.

Parametr Chroniony – jeśli zaznaczy go operator z uprawnieniami Administratora, wówczas inni operatorzy nie będą mieli możliwości edycji i usunięcia danego filtra.

Parametr Domyślny można zaznaczyć dla danego filtra niezależnie od jego typu (Stanowiska/ Operatora/ Globalny/ Obowiązkowy). Zaznaczenie parametru powoduje, że filtr jest automatycznie stosowany przy wejściu na daną listę. W odróżnieniu od filtra obowiązkowego można go wyłączyć. Filtrów domyślnych dla danej listy może być wiele, ale przy otwieraniu listy zostanie wybrany tylko jeden z nich. Kryterium wyboru wyznacza typ filtra oraz kolejność filtra w ramach typu. Najwyższy priorytet mają filtry Stanowiska, a więc związane z danym komputerem. Jeśli na jednym lub kilku filtrach typu Użytkownika, podłączonych do danej listy, zostanie zaznaczony parametr Domyślny, ostatni z nich zostanie uznany jako domyślny. W przypadku braku domyślnego filtra Stanowiska przeszukiwane są filtry Operatora, a wybór filtra domyślnego następuje analogicznie jak poprzednio. Jeśli na danej liście nie ma zdefiniowanego ani filtra domyślnego Stanowiska ani Operatora – domyślny filtr jest szukany w filtrach Globalnych.

Konstruktor filtra – zakładka Opcje

Zapamiętywanie ustawień filtra

Po zamknięciu listy zapamiętywanie ustawień filtra jest realizowane wg poniższych zasad:

  • zapamiętywane jest czy panel dodatkowy był zwinięty/rozwinięty,
  • zapamiętywane jest czy pinezka była włączona/wyłączona,
  • zapamiętywane są ustawienia pól z panelu podstawowego i rozwijanego,
  • lista otwiera się wyfiltrowana wg zapamiętanych filtrów.


Ponadto przy pierwszym uruchomieniu listy pinezka jest włączona, a dostępna opcja Wyczyść filtr na liście oraz Reset ustawień okien przywraca ustawienia domyślne dla filtrów panelu podstawowego i rozwijanego.

Odświeżanie listy odbywa się przy każdorazowym użyciu lejka lub oraz poprzez wciśnięcie F5 w dowolnym miejscu na liście.

Filtry zapisywane są do bazy konfiguracyjnej, więc odtworzenie bazy konfiguracyjnej powoduje przywrócenie wszystkich filtrów, które zostały do niej dodane. Inną możliwością przeniesienia filtrów do innej instalacji jest skopiowanie treści filtra z zakładki [Zaawansowane] Konstruktora filtra i wklejenie jej w tym samym miejscu w innej instalacji Comarch ERP Optima. Istotne jest, aby Konstruktor filtra był uruchomiony z poziomu tej samej listy.

Przykłady z instrukcją tworzenia

Moduły Handlowo-Magazynowe

Filtry tworzone z poziomu zakładki [Ogólne]

Na liście Faktur Sprzedaży chcemy wyświetlić tylko te dokumenty, których wartość brutto jest pomiędzy 500 a 1000 PLN. W konstruktorze filtra, zakładka [Ogólne] w pole Nazwa wpisujemy wybraną nazwę filtra, następnie w celu dodania warunków klikamy ikonę plusa i wskazujemy pole TrN_RazemBrutto.

Określamy dla niego warunek „Jest większe niż” oraz kwotę 500
Następnie analogicznie dodajemy kolejny warunek, w którym określamy TrN_RazemBrutto „Jest mniejsze niż” 1000. Zapisujemy filtr ikoną .
Po zapisie jest on widoczny na liście filtrów dostępnych z poziomu listy Faktur Sprzedaży.

Filtry tworzone z poziomu zakładki [Zaawansowane]

Z poziomu listy Faktur Sprzedaży do bazy danych wysyłane jest automatycznie zapytanie:

SELECT [lista kolumn] FROM A.TraNag WHERE …

Alias „A” dla tabeli TraNag, który jest widoczny w powyższym przykładzie pozwala na tworzenie bardziej skomplikowanych zapytań przy użyciu wielu tabel. Dla różnych list aliasy mogą być różne – można je podejrzeć za pomocą zaawansowanych narzędzi do obsługi serwera SQL.
W treści filtra zaawansowanego wpisujemy wyrażenie SQL, które następuje po WHERE w zapytaniu.

Prosty filtr zaawansowany
Dla filtra przedstawionego we wcześniejszym przykładzie dla zakładki [Ogólne] można zbudować bezpośrednie zapytanie w zakładce [Zaawansowane], które wyglądałoby tak:

(TrN_RazemBrutto > '500.0000' AND TrN_RazemBrutto < '1000.0000')

Jest to filtr o analogicznym działaniu, pokazujący Faktury Sprzedaży, których wartość brutto zawiera się między 500 a 1000 PLN.

Filtr zaawansowany z parametrem dynamicznym
W przykładzie pokażemy jak wyfiltrować dokumenty handlowo-magazynowe, które wystawił określony operator.
Id operatora, który wystawił dany dokument znajduje się w bazie w tabeli TraNag w polu TrN_OpeZalID. W filtrze musimy porównać wartość tego pola z ID operatora wybranego. Potrzebny będzie parametr dynamiczny. Stworzymy go klikając prawym przyciskiem myszy w polu Filtr SQL i wybierając opcję Wstaw/edytuj deklarację parametru dynamicznego.

Pojawi się kreator, który poprowadzi nas przez kolejne kroki, w których:

  • wskazujemy nazwę parametru, której użyjemy potem w zapytaniu (np. OpeID)
  • wybór typów parametru:


Parametr typu lista wywoływana
– jeśli wybierzemy typ – lista wywoływana – dla tego typu parametrów pojawia się pewien zakres gotowych procedur, z których możemy wybrać np. opcje: lista kontrahentów, lista kategorii, lista grup, lista towarów itp. Wybieramy z tej listy procedurę lista operatorów, która wyświetli listę akronimów operatorów, a po wyborze konkretnego operatora zwróci jego ID i przekaże w parametrze OpeID.

Po zatwierdzeniu kolejnych okien deklaracja parametru wygląda w ten sposób:

@PAR ?@LS20(OP_PROC.DLL|CALLLOOKUPOPELISTA())|OpeID|&OpeID:{}@? PAR@

Wywołanie parametru w zapytaniu wstawiamy jak pokazano poniżej:

TrN_OpeZalID = ??OpeID

Umożliwi to wybór z listy operatorów wybranego operatora i przefiltrowanie dokumentów po określonym operatorze. Filtr pokazuje dokumenty WYSTAWIONE przez danego operatora. Aby filtr reagował na dokumenty ZMODYFIKOWANE przez operatora należy zmienić TrN_OpeZalID na TrN_OpeModID

Parametr typu lista rozwijana
Jeśli chcielibyśmy w parametrze zastosować listę rozwijaną, wówczas w kolejnym kroku kreatora pojawi się szablon zapytania, które należy uzupełnić:

SELECT ID = 1, Kod = ''

W tym miejscu powinno znaleźć się zapytanie, które zwróci nam ID oraz KOD. KOD będzie wyświetlany na liście rozwijanej, natomiast po dokonaniu wyboru z tej listy – do parametru będzie przekazywane ID wyboru.

SELECT ID = Ope_OpeId, Kod = Ope_Kod From {OPBK()}.CDN.Operatorzy Order By Ope_Kod

Lista operatorów znajduje się w tabeli CDN.Operatorzy w bazie konfiguracyjnej, dlatego konieczne jest odwołanie w podany sposób:

{OPBK()}.CDN.Operatorzy

Ostatecznie filtr z parametrem z listą rozwijaną będzie wyglądał w ten sposób:

@PAR ?@R(SELECT ID = Ope_OpeId, Kod = Ope_Kod From {OPBK()}.CDN.Operatorzy Order By Ope_Kod)|OpeID|&OpeID:{}@? PAR@
TrN_OpeZalID = ??OpeID

Należy pamiętać o tym, aby w definicji parametru dynamicznego użyć kolumny liczbowej (w tym przypadku TrN_OpeZalID).

Funkcje systemowe
Modyfikacją zaprezentowanego filtra może być taki filtr, który pokaże dokumenty aktualnie zalogowanego operatora. W tym celu można wykorzystać funkcje systemowe. Opcja dostępna pod prawym przyciskiem myszy:

Spośród listy dostępnych funkcji możemy wybrać funkcję OperatorID, która zwróci ID zalogowanego operatora:

Ostatecznie filtr z użyciem funkcji systemowej będzie wyglądał tak:

TrN_OpeZalID = {OperatorID}

Moduły Księgowe

Filtry tworzone z poziomu zakładki [Ogólne]

Na liście zapisów kasowych/bankowych chcemy wyświetlić zapisy, na których nie zostało uzupełnione konto przeciwstawne.
W konstruktorze filtra, zakładka [Ogólne] w pole Nazwa wpisujemy wybraną nazwę filtra, następnie w celu dodania warunków klikamy ikonę plusa i wskazujemy pole Bzp_KontoPrzeciwstawne.

Określamy dla niego warunek „Jest puste”.
Następnie zapisujemy filtr ikoną .
Po zapisie jest on widoczny na liście filtrów dostępnych z poziomu listy zapisów kasowych/bankowych.

Filtry tworzone z poziomu zakładki [Zaawansowane]

Filtr zaawansowany z parametrem dynamicznym
W przykładzie pokażemy jak wyfiltrować dokumenty w rejestrze VAT, które posiadają określoną kategorię w nagłówku dokumentu.
Id kategorii, która została wybrana na dokumencie w rejestrze VAT znajduje się w bazie w tabeli VatNag w polu VaN_KatID.
W filtrze musimy porównać wartość tego pola z ID operatora wybranego. Potrzebny będzie parametr dynamiczny. Stworzymy go klikając prawym przyciskiem myszy w polu Filtr SQL i wybierając opcję Wstaw/edytuj deklarację parametru dynamicznego.

Pojawi się kreator, który poprowadzi nas przez kolejne kroki, w których:

  • wskazujemy nazwę parametru, której użyjemy potem w zapytaniu (np. Kategoria)
  • wybór typów parametru:


Parametr typu lista wywoływana
– jeśli wybierzemy typ – lista wywoływana – dla tego typu parametrów pojawia się pewien zakres gotowych procedur, z których możemy wybrać np. opcje: lista kontrahentów, lista kategorii, lista grup, lista towarów itp.
Wybieramy z tej listy procedurę lista kategorii, która wyświetli listę kategorii, a po wyborze konkretnej kategorii zwróci jego ID i przekaże w parametrze kategoria.

Po zatwierdzeniu kolejnych okien deklaracja parametru wygląda w ten sposób:

@PAR ?@LS0(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:0|@? PAR@

Wywołanie parametru w zapytaniu wstawiamy jak poniżej:

VaN_KatId = ??Kategoria

Umożliwi to wybór z listy kategorii wybranej kategorii i przefiltrowanie dokumentów po określonej kategorii wybranej w nagłówku dokumentu w rejestrze VAT. Należy pamiętać o tym, aby w definicji parametru dynamicznego użyć kolumny liczbowej (w tym przypadku VaN_KatId).

Moduły Płace i Kadry

Filtry tworzone z poziomu zakładki [Ogólne]

Na liście pracowników w kadrach chcemy wyświetlić osoby, dla których została odnotowana informacja na temat wieloetatowości, a konkretnie posiadają ustawiony etat podstawowy.
W konstruktorze filtra, zakładka [Ogólne] w pole Nazwa wpisujemy wybraną nazwę filtra, następnie w celu dodania warunków klikamy ikonę plusa i wskazujemy pole PRI_Nadrzedny.

Określamy dla niego warunek „Jest równe” oraz podajemy wartość 1.
Następnie zapisujemy filtr ikoną .
Po zapisie jest on widoczny na liście filtrów dostępnych z poziomu listy pracowników.

Filtry tworzone z poziomu zakładki [Zaawansowane]


Filtr zaawansowany z parametrem dynamicznym

W przykładzie pokażemy jak odfiltrować pracowników, którzy posiadają przypisaną określoną kategorię.
Id kategorii, która została przypisana pracownikowi na jego formularzu kadrowym (zakładka 7 [Dodatkowe]) znajduje się w bazie w tabeli PracEtaty w polu PRE_KatId.
W filtrze musimy porównać wartość tego pola z wartością wybraną z listy słownikowej wszystkich kategorii. Potrzebny będzie parametr dynamiczny. Stworzymy go klikając prawym przyciskiem myszy w polu Filtr SQL i wybierając opcję Wstaw/edytuj deklarację parametru dynamicznego.

  • wskazujemy nazwę parametru, której użyjemy potem w zapytaniu (np. Kategoria)
  • wybór typów parametru:


Parametr typu lista rozwijana
– jeśli wybierzemy typ – lista rozwijana – dla tego typu parametrów należy zdefiniować odpowiednie zapytanie SQL podając w zapytaniu dwa pobierane pola z czego pierwsze musi być numeryczne (identyfikator) a drugie tekstowe (opis).

Należy pamiętać o tym, aby w definicji parametru dynamicznego użyć kolumny liczbowej (w tym przypadku PRE_KatId).

Pozostałe przykłady

Uwaga
Nowo dodane przykłady filtrów oznaczone są kolorem zielonym na liście.

Ogólne

Jak ustawić w filtrze datę bieżącą lub zakres dat, np. od pierwszego do ostatniego dnia miesiąca?

Aby po zdefiniowaniu filtrów, w których pada pytanie o datę lub zakres dat podpowiadała się data bieżąca, a nie data z dnia definiowania filtra, należy skorzystać z parametru dynamicznego. Na zakładce [Zaawansowane] w Konstruktorze filtra należy zdefiniować odpowiednie parametry dynamiczne (prawy klawisz myszy na polu z filtrem, Wstaw/edytuj deklarację parametru dynamicznego, potem, żeby go wykorzystać: Wstaw/edytuj odwołanie do parametru dynamicznego).
Przykładowy filtr (zakres dat na bieżący miesiąc) w polu Filtr SQL powinien mieć wpisane:

@PAR ?@D17|data1|&Data od:{DateClwFirstDay('m')} @? PAR@ @PAR ?@D17|data2|&Data do:{DateClwLastDay('m')} @? PAR@ TrN_DataDok >= ??data1 AND TrN_DataDok <= ??data2

Jak zawęzić listę kontrahentów do tych, których kod rozpoczyna się na zadaną literę?

Taki filtr może być przydatny przy seryjnym generowaniu Not odsetkowych, Ponagleń Zapłaty czy Potwierdzeń Salda, które jest dostępne z menu Ogólne/ Kontrahenci, pod ikoną Generacja na pasku zadań.
W Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać w polu Filtr SQL:

Knt_Kod LIKE ?@S100|Kod zaczyna się od:'' + '%'

Aby odfiltrować dokumenty Ponagleń zapłaty lub Potwierdzeń salda dla kontrahentów, których kod rozpoczyna się od zadanej litery, należy:
W Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać w polu Filtr SQL:

exists (select * from CDN.Kontrahenci where BDN_PodmiotID=Knt_KntId AND Knt_Kod LIKE ?@S100|Kod zaczyna się od:'' + '%')

Dla listy Not odsetkowych w polu Filtr SQL:

exists (select * from CDN.Kontrahenci where NON_PodmiotID=Knt_KntId AND Knt_Kod LIKE ?@S100|Kod zaczyna się od:'' + '%')

Jak wyfiltrować kontrahentów, którzy mają wybraną na karcie konkretną kategorię szczegółową (sprzedaży bądź zakupu)?

Aby odnaleźć kontrahentów z określoną kategorią sprzedaży, na liście kontrahentów należy uruchomić konstruktor filtra, a następnie na zakładce [Zaawansowane] w polu Filtr SQL należy wpisać:

@PAR ?@LS0(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:0|@? PAR@
Knt_KatID= ??Kategoria

Z kolei, aby odnaleźć kontrahentów z określoną kategorią zakupu należy zastosować filtr:

@PAR ?@LS0(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:0|@? PAR@
Knt_KatZakID= ??Kategoria

Przed odfiltrowaniem listy program będzie pytał o kategorię szczegółową.
Aby odnaleźć kontrahentów z kategorią zawierającą określoną frazę, to stosując poniższy filtr:

Knt_KatID=(select Kat_KatID from cdn.kategorie where Kat_KatID=Knt_KatID and kat_KodSzczegol like ?@S100|Kat szczeg:'')

podczas wpisywania kategorii, przed bądź za wpisywaną frazą należy wstawić znak „%” zastępujący dowolny ciąg znaków.

Jak zbudować filtr, który przed odfiltrowaniem listy kontrahentów z danego województwa będzie wyświetlał listę województw do wyboru?

Na liście kontrahentów, w Konstruktorze filtra na zakładce [Zaawansowane] należy wpisać:

@PAR ?@R(SELECT Id = 0, Kod = '' UNION
SELECT Id = 1, Kod = 'dolnośląskie' UNION
SELECT Id = 2, Kod = 'kujawsko-pomorskie' UNION
SELECT Id = 3, Kod = 'lubelskie' UNION
SELECT Id = 4, Kod = 'lubuskie' UNION
SELECT Id = 5, Kod = 'łódzkie' UNION
SELECT Id = 6, Kod = 'małopolskie' UNION
SELECT Id = 7, Kod = 'mazowieckie' UNION
SELECT Id = 8, Kod = 'opolskie' UNION
SELECT Id = 9, Kod = 'podkarpackie' UNION
SELECT Id = 10, Kod = 'podlaskie' UNION
SELECT Id = 11, Kod = 'pomorskie' UNION
SELECT Id = 12, Kod = 'śląskie' UNION
SELECT Id = 13, Kod = 'świętokrzyskie' UNION
SELECT Id = 14, Kod = 'warmińsko-mazurskie' UNION
SELECT Id = 15, Kod = 'wielkopolskie' UNION
SELECT Id = 16, Kod = 'zachodniopomorskie')|Woj|&Województwo: @? PAR@
Knt_Wojewodztwo = Case ??Woj
When 1 Then 'dolnośląskie'
When 2 Then 'kujawsko-pomorskie'
When 3 Then 'lubelskie'
When 4 Then 'lubuskie'
When 5 Then 'łódzkie'
When 6 Then 'małopolskie'
When 7 Then 'mazowieckie'
When 8 Then 'opolskie'
When 9 Then 'podkarpackie'
When 10 Then 'podlaskie'
When 11 Then 'pomorskie'
When 12 Then 'śląskie'
When 13 Then 'świętokrzyskie'
When 14 Then 'warmińsko-mazurskie'
When 15 Then 'wielkopolskie'
When 16 Then 'zachodniopomorskie'
Else ''
End

Pierwsza część (od @PAR do PAR@) jest to deklaracja parametru dynamicznego. Jeżeli zostanie wybrany parametr dynamiczny typu „Lista rozwijana” to zapytanie SQL musi zwrócić wynik dwukolumnowy – w pierwszym ma być wartość numeryczna (która zostanie podstawiona do zmiennej), a w drugim tekst (który zostanie wyświetlony na liście). Najwygodniej jest najpierw napisać sobie takie zapytanie np. w WinSQL-u (łatwo wtedy sprawdzić, czy nie ma w nim błędów), a potem przekleić do „wizarda parametru dynamicznego” w kroku 4 (wizard jest dostępny na zakładce [Zaawansowane] w Konstruktorze filtra w menu kontekstowym).
Druga część, to wykorzystanie tego parametru w zapytaniu SQL, które zostanie podstawione do filtra. Pod ??Woj program podstawi liczbę odpowiadającą wybranemu województwu, a konstrukcja CaseWhenThen … pozwoli na „przetłumaczenie” z powrotem liczby na tekst.

Jak wyszukać kontrahenta na podstawie numeru rachunku bankowego?

Na liście kontrahentów w Konstruktorze filtra, na zakładce: [Zaawansowane] w polu Filtr SQL należy wpisać:

@PAR ?@S30|Numer|&Numer rachunku:''@? PAR@
exists (select * from CDN.SchematPlatnosci where SPL_PodmiotTyp=1 and SPL_PodmiotID=Knt_KntID and SPL_RachunekNr0=replace(replace(??Numer,' ',''),'-',''))

Kasa/Bank

Jak wyfiltrować dokumenty, które zostały rozliczone w styczniu 14 dni po terminie płatności?

Klient wystawiał noty odsetkowe tylko klientom, którzy zapłacili 14 dni po upływie terminu płatności. Zastosowanie filtra w Preliminarzu pozwoliło na wyodrębnienie dokumentów, które odpowiadały ww. zapytaniu. Wynik można wysłać do Excela i posortować wg nazwy kontrahenta.
Filtr należy zbudować z poziomu Preliminarza Płatności. W Konstruktorze filtra, na zakładce: [Zaawansowane] należy wpisać w polu Filtr SQL:

BZd_DataRoz BETWEEN CONVERT(DATETIME,'2018-01-01',120) AND CONVERT(DATETIME,'2018-01-31',120) And BZd_DataRoz > DateAdd(day, 14, BZd_Termin)

Jak wyfiltrować zdarzenia w Preliminarzu, które mają wybraną przez operatora formę płatności?

Na liście zdarzeń w Preliminarzu, pod ikonką Konstruktor filtra, na zakładce [Zaawansowane], w polu Filtr SQL wpisujemy:

@PAR ?@R(SELECT FPl_FPlId, FPl_Nazwa FROM CDN.FormyPlatnosci)|fp|&fp: @? PAR@
BZd_FPlId=??fp

Przed odfiltrowaniem pojawi się rozwijana lista z dostępnymi formami płatności.

Jak wyfiltrować z poziomu listy kontrahentów nierozliczone zdarzenia z preliminarza wystawione w zadanym okresie?

Filtr ten sprawdza, czy w Preliminarzu Płatności dla danego kontrahenta są zapisy przychodowe, zatwierdzone, nierozliczone i wystawione w zadanym okresie czasu.
Z poziomu listy kontrahentów w Konstruktorze filtra, na zakładce: [Zaawansowane] w polu Filtr SQL należy wpisać:

exists ( select * From CDN.BnkZdarzenia
where BZd_DataDok>= ?@D10-|Data od:
and BZd_DataDok<= ?@D10-|Data do: and Bzd_PodmiotTyp = 1 and Bzd_PodmiotID=Knt_KntID and BZd_Kierunek =1 and BZd_Stan>0
and BZd_KwotaSys<>BZd_KwotaRozSys)

Jak przefiltrować na preliminarzu płatności tylko te FA i FKOR, które nie mają powiązania z dokumentami magazynowymi?

Trzeba wykonać filtr w Preliminarzu płatności, który uwzględni tabelę TraNag, w której jest przechowywana taka informacja. Przykładowy filtr SQL będzie wyglądał tak:

exists (select * from CDN.TraNag where Trn_TrNID=Bzd_DokumentID And Bzd_DokumentTyp=1 and TrN_Rodzaj=302000 or Trn_Rodzaj=302001 or Trn_Rodzaj=302002 or Trn_Rodzaj=302002)

Jak wyfiltrować zapisy kasowo/bankowe zawierające kategorię szczegółowe należące do zadanej kategorii ogólnej?

Na liście zapisów kasowo/bankowych, w Konstruktorze filtra, na zakładce [Zaawansowane] w polu Filtr SQL należy wpisać:

exists (select Kat_KodOgolny, Kat_KodSzczegol from cdn.kategorie where BZp_KatID=Kat_KatID AND Kat_KodOgolny=?@S100|Kategoria ogólna:'')

Jak wyfiltrować listę kontrahentów, dla których są pary dokumentów do rozliczenia?

Chodzi o to aby użytkownik w menu Kasa/Bank/Rozliczenia, po wywołaniu listy kontrahentów, mógł ją zawęzić do tych, którzy mają nierozliczone dokumenty, które można ze sobą rozliczyć czyli np. Fakturę Sprzedaży i dokument KP lub Fakturę zakupu i dokument KW lub Fakturę Sprzedaży i Fakturę Zakupu lub Dokumenty KP i KW.
Można założyć filtr zaawansowany na liście kontrahentów w menu Ogólne/ Kontrahenci, który będzie korzystał z tabeli CDN.DokumentyKBView.
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL można wpisać:

Exists (Select * From CDN.DokumentyKBView Where DKB_PodmiotTyp = 1 And DKB_PodmiotId = Knt_KntId And DKB_Rozliczono = 1 And DKB_Kierunek = Case DKB_TypDokumentuKB When 1 Then 1 Else -1 End)
And Exists (Select * From CDN.DokumentyKBView Where DKB_PodmiotTyp = 1 And DKB_PodmiotId = Knt_KntId And DKB_Rozliczono = 1 And DKB_Kierunek = Case DKB_TypDokumentuKB When 1 Then -1 Else 1 End)

Podobny filtr można stworzyć na liście pracowników podmieniając:

DKB_PodmiotTyp = 1 And DKB_PodmiotId = Knt_KntId

na

DKB_PodmiotTyp = 3 And DKB_PodmiotId = Pra_PraId

Filtr nie sprawdza waluty dokumentów.

Jak wyfiltrować w Preliminarzu płatności dokumenty, których termin płatności upłynął więcej niż 30 dni temu?

W Preliminarzu płatności, w Konstruktorze filtra, w polu Filtr SQL należy wstawić:

datediff ( d , BZd_Termin , {DateSQL(Today())} ) > 30

Filtr policzy różnicę pomiędzy datą bieżącą i terminem płatności i wyświetli te dokumenty, dla których różnica jest większa niż 30 dni.

Jak wyszukać zduplikowanych kontrahentów i zduplikowane zdarzenia w Preliminarzu?

W słownikach na liście kontrahentów można zastosować filtr, który sprawdzi czy są kontrahenci którym powtarza się numer NIP i dodatkowo pole NIP nie jest puste:

Knt_Nip IN
(SELECT Knt_Nip
FROM CDN.Kontrahenci WHERE Knt_Nip <> ''
GROUP BY Knt_Nip
HAVING COUNT ( Knt_Nip ) > 1 )

W Preliminarzu płatności filtr wyświetli zdarzenia o takim samym numerze obcym. To pozwoli sprawdzić czy w systemie nie wprowadzono dwa razy tego samego dokumentu:

BZd_NumerObcy IN
(SELECT BZd_NumerObcy
FROM cdn.bnkzdarzenia
GROUP BY BZd_NumerObcy
HAVING COUNT ( BZd_NumerObcy ) > 1 )

Jak wyfiltrować w Preliminarzu faktury, które w rejestrze VAT znajdują się w konkretnym podrejestrze?

W Preliminarzu należy uruchomić Konstruktor filtra, a następnie na zakładce [Zaawansowane] w polu Filtr SQL należy wpisać:

(Bzd_DokumentTyp='2' AND Bzd_DokumentID in (select Van_VanID from CDN.VatNag where Bzd_DokumentID=Van_VanID AND VaN_Rejestr=?@S100|Nazwa rejestru:'')) OR (Bzd_DokumentTyp='1' AND Bzd_DokumentID in (select Van_TrnID from CDN.VatNag where Bzd_DokumentID=Van_TrnID AND VaN_Rejestr=?@S100|Nazwa rejestru:''))

Przed odfiltrowaniem listy program będzie pytał o nazwę rejestru dla którego ma wyświetlić faktury.
Inny wariant powyższego filtra, gdzie nazwa rejestru VAT wybierana jest z rozwijalnej listy:

@PAR ?@R(SELECT LP=Gru_GruID, KOD=Gru_Nazwa FROM cdn.Grupy WHERE (Gru_Typ=1 OR Gru_Typ=2))|RejVat|&RejVat:0 |@? PAR@
(Bzd_DokumentTyp='2' AND Bzd_DokumentID in (select Van_VanID from CDN.VatNag where Bzd_DokumentID=Van_VanID AND VaN_Rejestr=??_RES2_RejVat))
OR
(Bzd_DokumentTyp='1' AND Bzd_DokumentID in (select Van_TrnID from CDN.VatNag where Bzd_DokumentID=Van_TrnID AND VaN_Rejestr=??_RES2_RejVat))

Filtry uwzględniają zarówno faktury wprowadzone bezpośrednio do Rejestrów VAT jak i faktury wystawione
w module Faktury i przeniesione do Rejestrów VAT.

Jak wyfiltrować kontrahentów, którzy nie są osobą fizyczną i suma nierozliczonych dokumentów jest większa niż podana przez operatora?

Na liście kontrahentów w menu Ogólne/ Kontrahenci, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select Knt_KntId from CDN.BnkZdarzenia where Knt_KntId=BZd_PodmiotID AND BZd_PodmiotTyp=1
having SUM(BZd_Kierunek * (BZd_KwotaSys-BZd_KwotaRozSys)) >?@N-15.4|Kwota:0)

Wyrażenie:

having SUM(BZd_Kierunek * (BZd_KwotaSys-BZd_KwotaRozSys))

pozwoli wyfiltrować różnicę nierozliczonych przychodów i rozchodów.
Filtr uwzględni wszystkie dokumenty z Preliminarza Płatności dla danego kontrahenta. Dla zawężonej listy będzie można wygenerować np. Potwierdzenie Salda lub Ponaglenie Zapłaty.
Poniżej filtr, który uwzględni również historyczność czyli stan rozliczeń na konkretny dzień podany przez operatora.
Na liście kontrahentów w menu Ogólne/ Kontrahenci, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu: Filtr SQL należy wpisać:

@PAR ?@D17|Dzien|&Na dzień:{Today()} @? PAR@ @PAR ?@N15.2|Kwota|&Kwota powyżej:0 @? @RH(999999) PAR@ @PAR ?@S3|Waluta|&Waluta:PLN @? @U() PAR@ Knt_Finalny = 0 AND EXISTS ( SELECT BZd_PodmiotId FROM (SELECT BZd_PodmiotId, BZd_Kierunek, BZd_Kwota, BZd_KwotaRoz = SUM(IsNull(BRK_Kwota,0)) FROM CDN.BnkZdarzenia LEFT OUTER JOIN (CDN.BnkRozRelacje JOIN CDN.BnkRozKwoty ON BRR_BRKId = BRK_BRKId) ON BZd_BZdId = BRR_ZDokId AND BRR_ZDokTyp = 1 AND (BRK_DataDok <= ??Dzien OR BRK_DataDok Is NULL) WHERE BZd_Stan > 0 AND BZd_PodmiotTyp = 1 AND BZd_PodmiotID = Knt_KntId AND BZd_DataDok <= ??Dzien AND CASE BZd_Waluta WHEN '' THEN 'PLN' ELSE BZd_Waluta END = ??Waluta AND BZd_Rozliczono <> 0 GROUP BY BZd_PodmiotId, BZd_Kierunek, BZd_Kwota, BZd_BZdId ) As TmpTable GROUP BY BZd_PodmiotId HAVING Sum(BZd_Kierunek * (BZd_Kwota-BZd_KwotaRoz)) > ??Kwota )

Jak wyfiltrować na liście zapisów kasowo bankowych te, które mają uzupełnione konto Wn lub konto Ma w kwotach dodatkowych?

Na liście zapisów kasowo/bankowych pod ikoną konstruktora filtra, na zakładce [Zaawansowane], w polu Filtr SQL wpisujemy:

exists (select * from CDN.KwotyDodatkowe where Kdd_DokumentID=Bzp_BzpID AND KDD_DokumentTyp=14 AND (Kdd_Segment1<>'' OR Kdd_Segment2<>''))

Aby wyfiltrować te które mają wpisane określone konto po stronie Wn , możemy użyć:

exists (select * from CDN.KwotyDodatkowe where Kdd_DokumentID=Bzp_BzpID AND KDD_DokumentTyp=14 AND Kdd_Segment1=?@S100|KontoWN:'')
Analogicznie konto Ma:

exists (select * from CDN.KwotyDodatkowe where Kdd_DokumentID=Bzp_BzpID AND KDD_DokumentTyp=14 AND Kdd_Segment2=?@S100|KontoMA :'')

lub wyszukując określoną kwotę w kwotach dodatkowych:

exists (select * from CDN.KwotyDodatkowe where Kdd_DokumentID=Bzp_BzpID AND KDD_DokumentTyp=14 AND Kdd_Kwota=?@S100|Kwota:'')

Filtr dla zapisów Kasowych/Bankowych, wyświetlający zapisy kontrahentów, którzy są przydzieleni do danego pracownika (ustawienie w Karcie Kontrahenta)

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_PRCW.DLL|CALLLOOKUPPRILISTA())|Pracownik|&Pracownik:0|@? PAR@
BZp_PodmiotTyp=1 and exists (select * from cdn.kontrahenci where BZp_PodmiotID=Knt_KntId and Knt_OpiekunId=??Pracownik and Knt_OpiekunTyp=3)

Filtr wyświetlający zdarzenia w preliminarzu dla dwóch (lub więcej) kontrahentów:

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKNTLISTA())|kod1|&kontrahent1:REG= @? PAR@ BZd_PodmiotID = ??kod1
OR
@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKNTLISTA())|kod2|&kontrahent2:REG= @? PAR@ BZd_PodmiotID = ??kod2

Filtr ograniczający listę wyświetlanych w Preliminarzu płatności dokumentów do płatności pochodzących z Faktur Zakupu z modułu Handel i zapisów z Rejestru zakupu VAT:

Filtr może być stosowany wtedy, gdy np. Faktury Zakupu z których towary mają wejść na magazyn wprowadzamy w module Handel, a Faktury Zakupu kosztowe – od razu w Rejestrach VAT. Po zastosowaniu takiego filtra w Preliminarzu możemy widzieć jednocześnie oba te rodzaje dokumentów (i tylko te dokumenty).
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.TraNag where Trn_TrNID=Bzd_DokumentID And Bzd_DokumentTyp=1 and TrN_TypDokumentu=301) or exists (select * from CDN.VatNag where VaN_VaNID=Bzd_DokumentID And Bzd_DokumentTyp=2 and VaN_Typ=1)

Filtr ograniczający listę wyświetlanych w Preliminarzu płatności dokumentów do płatności pochodzących z Faktur Sprzedaży z modułu Handel i z Rejestru sprzedaży VAT.

Filtr może być stosowany wtedy, gdy np. Faktury Sprzedaży, z których towary mają wyjść z magazynu wprowadzamy w module Handel, a pozostałe faktury – od razu w Rejestrach sprzedaży VAT.
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.TraNag where Trn_TrNID=Bzd_DokumentID And Bzd_DokumentTyp=1 and TrN_TypDokumentu=302) or exists (select * from CDN.VatNag where VaN_VaNID=Bzd_DokumentID And Bzd_DokumentTyp=2 and VaN_Typ=2)

W jaki sposób w Preliminarzu odnaleźć płatności mające wybrany rachunek bankowy po nazwie tego rachunku, określanego na karcie kontrahenta?

W Preliminarzu płatności w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S30|Rachunek|&Rachunek:''@? PAR@
exists (select * from CDN.SchematPlatnosci where BZd_RachunekNr=SPL_RachunekNr and SPL_PodmiotID=BZd_PodmiotID and SPL_PodmiotTyp=1 and SPL_Opis=??Rachunek)

Jak na liście dokumentów rozliczonych odnaleźć te pochodzące z konkretnego rejestru VAT?

Na liście dokumentów rozliczonych w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S30|Rejestr|&Rejestr:''@? PAR@
(BRK_LDokTyp=1 and exists (select * from CDN.BnkZdarzenia where BRK_LDokID=BZd_BZdID and BZd_DokumentTyp=2 and exists ( select * from CDN.VatNag where BZd_DokumentID=VaN_VaNID and VaN_Rejestr = ??Rejestr))) OR (BRK_PDokTyp=1 and exists (select * from CDN.BnkZdarzenia where BRK_PDokID=BZd_BZdID and BZd_DokumentTyp=2 and exists ( select * from CDN.VatNag where BZd_DokumentID=VaN_VaNID and VaN_Rejestr = ??Rejestr)))

W jaki sposób w Preliminarzu odnaleźć płatności z faktur sprzedażowych mających konkretny atrybut i wartość atrybutu?

W Preliminarzu płatności w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@LS20(SELECT [DeA_DeAId], [DeA_Kod], [DeA_Nazwa] FROM [CDN].[DefAtrybuty] WHERE [DeA_Typ]= 4|GENERICLOOKUP(Atrybuty dokumentów, 0, 1))|Atrybut|&Atrybut: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
@PAR ?@S100|Wartosc|&Wartość: @? @MSG(Wartość atrybutu) @TIP(Wartość atrybutu) PAR@
EXISTS (SELECT * FROM CDN.TraNag JOIN CDN.DokAtrybuty ON DAt_TrNId = TrN_TrNId WHERE TrN_TrNID = BZd_DokumentID AND BZd_DokumentTyp=1 AND TrN_TypDokumentu=302 AND DAt_DeAId=??Atrybut AND DAt_WartoscTxt=??Wartosc)

W jaki sposób odnaleźć dokumenty nierozliczone kontrahentów ze statusem 'Partner’?

Na liście dokumentów nierozliczonych w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

(DKB_TypDokumentuKB=1 And EXISTS (Select * From CDN.BnkZdarzenia JOIN CDN.Kontrahenci ON BZd_PodmiotID=Knt_KntId AND BZd_PodmiotTyp=1 where DKB_DKBId=BZd_BZdID And Knt_Rodzaj_Partner=1)) OR (DKB_TypDokumentuKB=2 And EXISTS (Select * From CDN.BnkZapisy JOIN CDN.Kontrahenci ON BZp_PodmiotID=Knt_KntId AND BZp_PodmiotTyp=1 where DKB_DKBId=BZp_BZpID And Knt_Rodzaj_Partner=1))

W jaki sposób odnaleźć różnice kursowe wygenerowane przez zapisy kasowe/bankowe wprowadzone do konkretnego rejestru?

Na liście różnic kursowych w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S30|Rejestr|&Rejestr:''@? PAR@
(BRK_LDokTyp=2 and exists (select * from CDN.BnkZapisy where BRK_LDokID=BZp_BZpID and exists ( select * from CDN.BnkRachunki where BRa_BRaID=BZp_BRaID and BRa_Symbol = ??Rejestr)))
OR
(BRK_PDokTyp=2 and exists (select * from CDN.BnkZapisy where BRK_PDokID=BZp_BZpID and exists ( select * from CDN.BnkRachunki where BRa_BRaID=BZp_BRaID and BRa_Symbol = ??Rejestr)))

W jaki sposób odnaleźć kontrahentów mających wystawione w module Kasa/Bank potwierdzenia sald w 2018 roku?

Na liście kontrahentów w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

Exists (Select * From CDN.BnkDokNag Where BDN_PodmiotID=Knt_KntID And BDN_PodmiotTyp=1 And BDN_Typ=223 And BDN_NumerPelny Like '%2018%')

W jaki sposób odnaleźć dokument kompensaty na którym wskazano dokument o określonym numerze?

Z poziomu Kasa/Bank/ Dokumenty kompensat w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S50|Numer_dok|Numer szukanego dokumentu:''@? PAR@
EXISTS (select * from cdn.KompensatyElem left join cdn.BnkRozKwoty on KPE_BRKID = BRK_BRKID where (BRK_LNumer like ??_QNumer_dok + '%' or BRK_PNumer like ??_QNumer_dok + '%') and KPN_KPNID = KPE_KPNID)

Handel i Faktury

Jak wyfiltrować dokumenty FA, które wystawione są na klienta detalicznego ale nie ‘od netto’?

Trzeba wykonać zapytanie na liście Faktur Sprzedaży w module Faktury, uwzględniając tabelę Kontrahenci, gdzie Knt_Finalny = 1. W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Exists(select * from CDN.Kontrahenci where Trn_PodID=Knt_KntID AND TrN_PodmiotTyp=1 AND TrN_TypNB=2 AND Knt_Finalny=1)

Jak z listy faktur sprzedaży odfiltrować te faktury, które są nierozliczone lub rozliczone częściowo?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Exists (select * from CDN.BnkZdarzenia where TrN_TrNID=BZd_DokumentID AND Bzd_DokumentTyp='1' AND (Bzd_Kwota-Bzd_KwotaRoz<>0))

Filtr można zastosować również na liście faktur zakupu.

Jak wyfiltrować dokumenty handlowo-magazynowe, które wystawił określony operator?

Filtr powinien wyglądać w ten sposób:
Filtr SQL

@PAR ?@R(SELECT ID = Ope_OpeId, Kod = Ope_Kod From {OPBK()}.CDN.Operatorzy Order By Ope_Kod)|Operator|&Operator:1 @? PAR@
TrN_OpeZalID = ??Operator

Umożliwi to wybór z listy operatorów wybranego operatora i przefiltrowanie dokumentów po określonym operatorze. Filtr pokazuje dokumenty WYSTAWIONE przez danego operatora. Aby filtr reagował na dokumenty ZMODYFIKOWANE przez operatora należy zmienić TrN_OpeZalID na TrN_OpeModID

Jak filtrować kontrahentów wg atrybutów podpiętych na karcie kontrahenta?

Filtr SQL dla wyfiltrowania kontrahentów z zadanym kodem atrybutu z listy kontrahentów. Filtr przed odfiltrowaniem listy będzie wyświetlał listę atrybutów dla kontrahentów.

W celu dodania filtra należy w Konstruktorze filtra wywołanym z poziomu listy kontrahentów, na zakładce [Zaawansowane], w polu Filtr SQL wpisać:

@PAR ?@R(SELECT ID = DeA_DeAId, Kod = DeA_Kod FROM CDN.DefAtrybuty WHERE DeA_Typ=2 ORDER BY DeA_Kod)|KodAtr|&Kod atrybutu:ATR1 @? PAR@ exists(select * from CDN.KntAtrybuty where KnA_PodmiotId=Knt_KntId AND KnA_PodmiotTyp=1 AND KnA_DeAId = ??KodAtr )

Filtr SQL dla wyfiltrowania kontrahentów z określoną wartością atrybutu.

W celu dodania filtra należy w Konstruktorze filtra wywołanym z poziomu listy kontrahentów, na zakładce [Zaawansowane], w polu Filtr SQL wpisać:

Exists (Select * From CDN.KntAtrybuty Where Knt_KntId=KnA_PodmiotId AND KnA_PodmiotTyp=1 AND KnA_WartoscTxt LIKE '%' + ?@S100|Wartość:'' + '%')

Jak filtrować listę faktur wg atrybutów podpiętych na karcie kontrahenta?

Filtr SQL dla listy faktur pokazujący dokumenty wystawione na kontrahentów mających na swoich kartach przypisany określony atrybut. Filtr przed odfiltrowaniem listy będzie wyświetlał listę atrybutów kontrahentów.

W celu dodania filtra należy w Konstruktorze filtra wywołanym z poziomu listy faktur, na zakładce [Zaawansowane], w polu Filtr SQL wpisać:

@PAR ?@R(SELECT ID = DeA_DeAId, Kod = DeA_Kod FROM CDN.DefAtrybuty WHERE DeA_Typ=2 ORDER BY DeA_Kod)|KodAtr|&Kod atrybutu:ATR1 @? PAR@ exists(select * from CDN.KntAtrybuty Where KnA_PodmiotId=TrN_PodId AND KnA_PodmiotTyp=TrN_PodmiotTyp AND KnA_DeAId =??KodAtr)

Filtr SQL dla listy faktur pokazujący dokumenty wystawione na kontrahentów mających na swoich kartach przypisany atrybut z określoną wartością.

W celu dodania filtra należy w Konstruktorze filtra wywołanym z poziomu listy faktur, na zakładce [Zaawansowane], w polu Filtr SQL wpisać:

Exists (Select * From CDN.KntAtrybuty Where KnA_PodmiotId=TrN_PodId AND KnA_PodmiotTyp=TrN_PodmiotTyp AND KnA_WartoscTxt LIKE '%' + ?@S100|Wartość:'' + '%')

Jak wyfiltrować faktury, które zostały wystawione na kontrahentów, którzy mają przyporządkowanego opiekuna w formie operatora systemu Comarch ERP Optima?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = Ope_OpeID , Kod = Ope_Kod from {opbk()}.CDN.Operatorzy)|Operator|&Operator: @? PAR@
Exists (Select * From CDN.Kontrahenci Where Knt_OpiekunID = ??Operator and TrN_PodId = Knt_KntId And TrN_PodmiotTyp = 1)

Jak wyfiltrować listę Faktur Sprzedaży po opiekunie, który jest zapisany na karcie kontrahenta i jest to pracownik firmy?

Na liście faktur, w konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = Pra_PraID, Kod = Pra_Kod From CDN.PracKod)|Pracownik|&Pracownik: @? PAR@
Exists (Select * From CDN.Kontrahenci Where Knt_OpiekunID = ??Pracownik and TrN_PodID = Knt_KntID and TrN_PodmiotTyp = 1)

Jak wyfiltrować listę faktur jeśli na fakturze mam wpisaną daną kategorię nagłówka szczegółową?

Na liście faktur w module FA, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT Kat_KatID, Kat_KodSzczegol From CDN.Kategorie Where Kat_Poziom
= 2)|Kategoria|&Kategoria:AAA @? PAR@
TrN_KatID = ??Kategoria

Jak wyfiltrować faktury na liście faktur które są rozliczone po terminie?

Należy założyć filtr zaawansowany na liście faktur, który korzystał będzie z tabeli CDN.BnkZdarzenia.
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.BnkZdarzenia where TrN_TrNID=BZd_DokumentID and
Bzd_DokumentTyp='1' and BZD_dataroz > Bzd_datareal)

Jak wyfiltrować dokumenty RO z listy RO, które są przekształcone do WZ a dodatkowo WZ ma wystawioną Fakturę Sprzedaży?

Na liście RO, po ikoną konstruktora filtra, na zakładce [Zaawansowane], w polu Filtr SQL wpisujemy:

EXISTS(Select * from cdn.tranagrelacje rel1 Where rel1.trr_trnid = trn_trnid and rel1.trr_fatyp = 306 and EXISTS(select * from cdn.tranagrelacje rel2 where rel2.trr_trnid = rel1.trr_faid and rel2.trr_fatyp =302))

Jak wyfiltrować dokumenty PA z listy PA, które są przekształcone do FA a FA skojarzone z tymi PA nie ma dokumentów WZ?

Na liście PA, pod ikoną konstruktora filtra, na zakładce [Zaawansowane], w polu Filtr SQL wpisujemy:

EXISTS (SELECT * FROM CDN.TraNag FA WHERE A.TrN_FaID = FA.TrN_TrNID AND
FA.TrN_FaID IS NOT NULL AND FA.TrN_Rodzaj = 302006 )

Jak wyfiltrować wybrany typ dokumentu z listy FA używając funkcji serwerowej?

Zastosowanie złożonego filtra na liście faktur (np. wyszukujących faktury finalne przekształcone z Faktury Pro Forma i powiązane z dokumentem WZ) nie działa przy księgowaniu dokumentów. Pojawia się komunikat „The multi-part identifier „A.trn_trnid” could not be bound.”

W związku z tym filtr z aliasem o postaci:

exists (select * from cdn.tranag A1 left join cdn.tranag A2 on A1.trn_trnid = A2.trn_faid left join cdn.tranag A3 on A1.trn_faid = A3.trn_trnid where A2.trn_rodzaj = 302200 and A.trn_trnid = A3.trn_trnid)

należy zastąpić filtrem: (select CDN.fn_PrzykladowaNazwa(Trn_trnID))=1,
gdzie funkcja serwerowa ma postać:

Create Function CDN.fn_PrzykladowaNazwa(@ATrnID int)
RETURNS int
AS
BEGIN
Declare @Result int
Set @Result = 0
select @Result = count(*) from cdn.tranag A1
join cdn.tranag A2 on A1.trn_trnid = A2.trn_faid
join cdn.tranag A3 on A1.trn_faid = A3.trn_trnid
where A2.trn_rodzaj = 302200 and A3.trn_trnid = @ATrnID
RETURN @Result
END
GO

Jak wyfiltrować kontrahentów, którzy np. w m-cu styczniu zapłacili po terminie ? Lista może być potrzebna do np. do sporządzenia masowych not odsetkowych dla kontrahentów.

Filtr z poziomu słowników kontrahentów. W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (
select * from CDN.BnkZdarzenia where BZd_PodmiotID=Knt_KntID and BZd_PodmiotTyp=1 and BZd_Rozliczono=1 and BZd_DataRoz BETWEEN ?@D17|Data od:75609 AND ?@D17|Data do:75609)
or exists (
select * from CDN.BnkZdarzenia where BZd_PodmiotID=Knt_KntID and BZd_PodmiotTyp=1 and BZd_Rozliczono=2 and BZd_DataRoz BETWEEN ?@D17|Data od:75609 AND ?@D17|Data do:75609)

Jak wyfiltrować listę kontrahentów aby uzyskać tylko tych kontrahentów z którymi prowadziliśmy transakcje ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

EXISTS (
SELECT [TrN_TrNID] FROM [CDN].[TraNag] WHERE [TrN_PodmiotTyp] = A.[Knt_PodmiotTyp] AND [TrN_PodID] = A.[Knt_KntId] AND [TrN_TypDokumentu] IN (302)
)

Typ dokumentu może przyjąć następujące wartości:
301 – [FZ] Faktura zakupu
302 – [FA] Faktura sprzedaży
303 – [PW] Przyjęcie wewnętrzne
304 – [RW] Rozchód wewnętrzny
305 – [PA] Paragon
306 – [WZ] Wydanie zewnętrzne
307 – [PZ] Przyjęcie zewnętrzne
308 – [RO] Rezerwacja odbiorcy
309 – [ZD] Zamówienie dostawcy
310 – [BOM] Bilans otwarcia magazynu
311 – [AI] Arkusz Inwentaryzacyjny
312 – [MM] Przesunięcie międzymagazynowe
313 – [PKA] Przyjęcie kaucji
314 – [WKA] Wydanie kaucji
317 – [PWP] Przyjęcie wewnętrzne produkcji
318 – [RWS] Rozchód wewnętrzny składników
320 – [FPF] Faktura ProForma
345 – [TF] Dokument TaxFree
350 – [FRR] Faktura RR

Jak wyfiltrować listę kontrahentów z którymi (nie było/lub było) transakcji po np. 01.01.2018r.?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
a) Kontrahenci z którymi nie było transakcji

not exists (select * from CDN.TraNag Z where A.Knt_KntId = Z.TrN_PodId and TrN_PodmiotTyp = 1 and TrN_DataOpe >='2018-01-01')

b) Kontrahenci z którymi były transakcje

exists (select * from CDN.TraNag Z where A.Knt_KntId = Z.TrN_PodId and TrN_PodmiotTyp = 1 and TrN_DataOpe >='2018-01-01')

Jak wyfiltrować listę kontrahentów, z którymi (nie było/lub było) transakcji tylko FA, FZ po np. 01.01.2018r.?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
a) Kontrahenci z którymi nie było transakcji

not exists (select * from CDN.TraElem where TrE_PodID=A.Knt_KntID and TrE_PodmiotTyp=A.Knt_PodmiotTyp and TrE_DataOpe >= '2018-01-01' and TrE_TypDokumentu IN (302,301))
b) Kontrahenci, z którymi były transakcje

exists (select * from CDN.TraElem where TrE_PodID=A.Knt_KntID and TrE_PodmiotTyp=A.Knt_PodmiotTyp and TrE_DataOpe >= '2018-01-01' and TrE_TypDokumentu IN (302,301))

Typ dokumentu:
301 – [FZ] Faktura zakupu
302 – [FA] Faktura sprzedaży

Jak wyfiltrować na liście zasobów lub cenniku towary uwzględnione z grupy głównej i grup dodatkowych ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPTWGLISTA())|TwrGrupa|&Grupa towarowa:@? PAR@
Twr_GIDNumer IN (SELECT GIDNumer FROM CDN.TwrInTwG(??TwrGrupa))

Jak wyfiltrować na liście zasobów lub cenniku towary uwzględnione tylko z grupy głównej ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPTWGLISTA())|TwrGrupa|&Grupa towarowa:@? PAR@
Twr_TwGGIDNumer = ??TwrGrupa

Jak wyfiltrować na liście zasobów lub cenniku towary, które na karcie mają określonego Dostawcę ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKNTLISTA())|Dostawca|&Dostawca:REG=!NIEOKREŚLONY! @? PAR@ Twr_KntId = ??Dostawca

Jak wyfiltrować na liście zasobów lub cennika towary względem kodu, wartości lub nazwy atrybutu przypisanego na karcie tego towaru ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
a) potrzeba odfiltrować towary posiadające atrybut o kodzie (bez podawania wartości tego atrybutu)

@PAR ?@LS20(SELECT [DeA_DeAId], [DeA_Kod], [DeA_Nazwa] FROM [CDN].[DefAtrybuty] WHERE [DeA_Typ]= 1|GENERICLOOKUP(Atrybuty towarów, 0, 1))|Atrybut|&Atrybut: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
EXISTS(SELECT [TwA_TwAId] FROM [CDN].[TwrAtrybuty] WHERE [Twr_TwrId] = [TwA_TwrId] AND [TwA_DeAId]= ??Atrybut)

b) potrzeba odfiltrować towary posiadające atrybut z określoną wartością

@PAR ?@LS20(SELECT [DeA_DeAId], [DeA_Kod], [DeA_Nazwa] FROM [CDN].[DefAtrybuty] WHERE [DeA_Typ]= 1|GENERICLOOKUP(Atrybuty towarów, 0, 1))|Atrybut|&Atrybut: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
@PAR ?@S100|Wartosc|&Wartość: @? @MSG(Wartość atrybutu) @TIP(Wartość atrybutu) PAR@
EXISTS(SELECT [TwA_TwAId] FROM [CDN].[TwrAtrybuty] WHERE [Twr_TwrId] = [TwA_TwrId] AND [TwA_DeAId]= ??Atrybut AND [TwA_WartoscTxt] = ??Wartosc)

c) potrzeba odfiltrować towary po nazwie atrybutu towaru

EXISTS (SELECT * FROM CDN.TwRAtrybuty JOIN CDN.DefAtrybuty on TwA_DeAId = DeA_DeaID WHERE Twr_TwrId = TwA_TwrId AND DeA_Nazwa=?@S100|Nazwa atrybutu:'')

Jak wyfiltrować na liście zasobów lub cenniku zasoby po wartościach atrybutów towarów typu lista ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT DAE_DAEId, DAE_Wartosc from CDN.DefAtrElem)|wart_atr|&wart_atr:REG= @? PAR@ exists (select * from CDN.DefAtrElem, CDN.TwrAtrybuty where Twr_TwrId = TwA_TwrId and TwA_WartoscTxt in (select DAE_Wartosc from CDN.DefAtrElem where DAE_DAEId=??wart_atr))

Jak na liście zasobów lub cenniku wyfiltrować towary które mają jakikolwiek atrybut?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.TwrAtrybuty where TwA_TwrId = Twr_TwrId)

Jak na liście zasobów lub cenniku wyfiltrować towary które nie maja żadnego atrybutu?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

not exists (select * from CDN.TwrAtrybuty where TwA_TwrId = Twr_TwrId)

Jak na liście zasobów lub cenniku wyfiltrować towary, które w danym dniu były sprzedawane na dokumentach FA lub PA?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data|&data:REG={Today()} @? PAR@
exists (select * from CDN.TraElem T where A.Twr_TwrId=T.TrE_TwrId and T.TrE_DataDok=??data and (T.TrE_TypDokumentu=302 or T.TrE_TypDokumentu=305))

Wariant filtra w którym podajemy zakres dat:

@PAR ?@D17|data_od|&data od:REG={Today()} @? PAR@
@PAR ?@D17|data_do|&data do:REG={Today()} @? PAR@
exists (select * from CDN.TraElem T where A.Twr_TwrId=T.TrE_TwrId and T.TrE_DataDok>=??data_od and T.TrE_DataDok<=??data_do and (T.TrE_TypDokumentu=302 or T.TrE_TypDokumentu=305))

Jak na liście zasobów lub cenniku wyfiltrować towary z którymi nie było transakcji po zadanej dacie?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data|&Data:REG={Today()} @? PAR@
not exists (select * from CDN.TraElem Z where A.Twr_TwrId = Z.TrE_TwrId and TrE_DataOpe >= ??data)

Jak na liście zasobów lub cenniku wyfiltrować towary, których cena zakupu (ID=1) jest równa zero ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.TwrCeny C where A.Twr_TwrID=C.TwC_TwrID and C.TwC_TwCNumer=1 and C.TwC_Wartosc=0)

Jak na liście zasobów lub cenniku wyfiltrować poprzez wybór z listy ceny te towary, które mają tą cenę większą od zera?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = DfC_Lp, KOD = DfC_Nazwa from CDN.DefCeny)|cena|&cena:REG= @? PAR@
exists(select * from CDN.TwrCeny where TwC_TwCNumer=??cena and TwC_Wartosc>0 and TwC_TwrID=TwR_TwrID)

Jak na liście zasobów wyfiltrować towary po ilości, a nie ilości dostępnej przy zaznaczonym parametrze „zerowe”?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Twi_Ilosc>0

Jak wyfiltrować listę zasobów z którymi (nie było lub było) transakcji po np. 01.01.2018?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
a) Towary z którymi nie było transakcji:

not exists (select * from CDN.TraElem Z where A.Twr_TwrId = Z.Tre_TwrId and Tre_DataOpe >= '2018-01-01')

b) Towary z którymi były transakcje:

exists (select * from CDN.TraElem Z where A.Twr_TwrId = Z.Tre_TwrId and Tre_DataOpe >= '2018-01-01')

Jak wyfiltrować WZ-ki po operatorze, który stworzył dokument źródłowy (FA lub PA)?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = Ope_OpeId, Kod = Ope_Kod From {OPBK()}.CDN.Operatorzy Order By Ope_Kod)|OperatorId|&Operator:1 @? PAR@ EXISTS (SELECT * FROM CDN.TraNag Z WHERE A.TrN_FaId
= Z.TrN_TrNID AND Z.TrN_OpeZalId= ??OperatorId)

Jak wyfiltrować na liście dokumenty handlowo-magazynowe po danej kategorii dokumentu?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:REG=-brak- @? PAR@
TrN_KatID = ??Kategoria

Jak wyfiltrować dokumenty WZ utworzone z FPF, do której były wygenerowane zaliczki, ale tylko dla FPF, które nie zostały jeszcze przekształcone do faktur finalnych?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

A.TrN_Rodzaj=306010 and exists (select * from CDN.Tranag Z where Z.TrN_TypDokumentu=320 and A.TrN_FaID=Z.TrN_TrNID and exists (select * from CDN.Tranag t2 where t2.Trn_Rodzaj=302200 and t2.TrN_FaID=Z.TrN_TrNID))

Jak wyfiltrować dokumenty WZ, które są skojarzone z innymi dokumentami ale ich daty wystawienia się różnią?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Exists (select * from CDN.TraNag Z where A.TrN_FaId = Z.TrN_TrNID and Z.TrN_DataWys != A.TrN_DataWys and A.Trn_Rodzaj=306004)

Jak wyfiltrować listę dokumentów handlowo-magazynowych aby nie wyświetlały się dokumenty, których wartość wynosi zero np. na korektach oraz te które są zaksięgowane do KH? Wtedy dokumenty, które nie są zaksięgowane, a ich wartość zakupu jest równa zero nie będą widoczne.

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

IsNull(TrN_DekId,0)=0 AND TrN_WartoscZakupu<>0

Jak wyfiltrować dokumenty PZ, które zostały skorygowane w całości?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select Z.TrN_ZwrID from CDN.TraNag Z where Z.TrN_ZwrId = A.TrN_TrNID and Z.TrN_Bufor=0 and (Z.TrN_Rodzaj=307001 or Z.TrN_Rodzaj=307002 or Z.TrN_Rodzaj=307003 or Z.TrN_Rodzaj=307004) group by Z.TrN_ZwrID having SUM(Z.Trn_RazemBrutto)*(-1)= A.Trn_RazemBrutto)

Jak wyfiltrować listę tych FA, których elementy mają wskazany przez nas atrybut towaru?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@S50|atrybut|&Kod atrybutu:REG=’’ @? PAR@ exists(select * from CDN.TraElem,
CDN.Twratrybuty join CDN.DefAtrybuty on TwA_DeAId = DeA_DeaID where Trn_TrnId = Tre_TrnId
and Tre_TwrId = TwA_TwrId and Dea_Kod=??atrybut)

Gdy szukamy atrybut towaru o zadanej wartości:

@PAR ?@S50|atrybut|&Wartość atrybutu:REG= @? PAR@ exists(select * from CDN.TraElem, CDN.Twratrybuty join CDN.DefAtrybuty on TwA_DeAId = DeA_DeaID where Trn_TrnId = Tre_TrnId and Tre_TwrId = TwA_TwrId and Twa_wartosctxt=??atrybut)

Można filtrować też mniej rygorystycznie z zastosowaniem wyrażenia: (LIKE ‘%’+…+’%’)

Jak wyfiltrować na liście Faktur sprzedaży listę faktur zaliczkowych bez faktur finalnych?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

A.Trn_Rodzaj = 302200 and exists (select * from CDN.TraNag Z where A.Trn_Faid = Z.Trn_TrnId and Z.Trn_TypDokumentu = 320 and Z.Trn_Faid is Null)

Niestety filtr ten nie będzie działał na standardowym wydruku listy faktur. Proszę w przypadku wydruku tak wyfiltrowanej listy korzystać z wydruku GenRap.

Jak wyfiltrować na liście faktur sprzedaży faktury zaliczkowe do których jest wystawiona faktura finalna?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

EXISTS (SELECT * FROM CDN.TraNag Z WHERE A.TrN_FaId = Z.TrN_TrNID AND Z.TrN_FaId is not null AND A.TrN_Rodzaj = 302200)

Jak wyfiltrować faktury sprzedaży, które są skojarzone z innymi dokumentami, ale ich daty wystawienia się różnią?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Exists (select * from CDN.TraNag Z where Z.TrN_FaId = A.TrN_TrNID and Z.TrN_DataWys != A.TrN_DataWys and A.Trn_Rodzaj=302004)

Jak wyfiltrować dokumenty handlowe których termin płatności mija w zadanym okresie.

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

TrN_Termin BETWEEN ?@D17|&Od:REG={Today()} @? AND ?@D17|&Do:REG={Today()} @?

Jak wyfiltrować listę dokumentów handlowo-magazynowych po wybranym towarze?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_TWR.DLL|CALLLOOKUPTWRLISTA())|Towar|&Towar:REG= @? PAR@
exists (select * from CDN.TraElem where Trn_TrnId = Tre_TrnId and Tre_TwrId = ??Towar)

Jak wyfiltrować faktury sprzedaży po fragmencie nazwy umieszczonej na zakładce -kontrahent odbiorca faktury? (Np. głównym nabywcą jest Makro W-dwa a odbiorcą faktury Makro Olsztyn).

W konstruktorze filtra wybieramy pole „TRN_OdbNazwa1 (Pierwsza linia nazwy odbiorcy)”, następnie po wywołaniu okna Edycja wyrażenia filtra należy z rozwijalnej listy w miejscu operator wybrać zawiera, a następnie zaznaczyć parametr Pytaj o wartość i podać tytuł zapytania np. Podaj nazwę odbiorcy i zatwierdzić wpis. Logiczna reprezentacja utworzonego w ten sposób wyrażenia filtrującego jest wyświetlana w dolnej części okna może wyglądać np.

TrN_OdbNazwa1 LIKE '%' + ?@S100|Podaj nazwę:'' + '%'.

W oknie Konstruktor filtra podać nazwę filtra.

Jak wyfiltrować dokumenty PA, które zostały skorygowane w całości?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select t.TrN_ZwrID from CDN.TraNag t where t.TrN_ZwrId = A.TrN_TrNID and t.TrN_Bufor=0 and (t.TrN_Rodzaj=305001 or t.TrN_Rodzaj=305005) group by t.TrN_ZwrID having SUM(t.Trn_RazemBrutto)*(-1)= A.Trn_RazemBrutto)

Jak wyfiltrować dokumenty RO, które mają oraz nie mają powiązania z dokumentami PWP?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
a) mają powiązanie z dokumentami PWP:

EXISTS(SELECT TrN_TrNId FROM CDN.TraNag WHERE TrN_RelTrNId = A.TrN_TrNId AND TrN_TypDokumentu = 317)
b) nie mają powiązania z dokumentami PWP:

NOT EXISTS (SELECT TrN_TrNId FROM CDN.TraNag WHERE TrN_RelTrNId = A.TrN_TrNId AND TrN_TypDokumentu = 317)

Jak wyfiltrować na liście RO dokumenty, wg numeru obcego zamówienia?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

TrN_NumerObcy=?@S100|Nr zamówienia:''

Jak wyfiltrować dokumenty wg kontrahentów dla pola Nabywca?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT KnT_KntID, Knt_kod from CDN.kontrahenci)|kontrah|&kontrah:REG= @? PAR@
Trn_PodID=??kontrah

Jak wyfiltrować dokumenty wg kontrahentów dla pola Odbiorca?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKNTLISTA())|kod|&kod:REG=!NIEOKREŚLONY! @? PAR@
TrN_OdbiorcaTyp = 1 AND TrN_OdbId = ??kod

Jak wyfiltrować listę dokumentów zawierających dany atrybut dokumentu?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_TWR.DLL|CALLLOOKUPATRLISTADOK())|atr|&atr:REG= @? PAR@ exists (select * from CDN.DokAtrybuty where DAt_TrNId = TrN_TrNId and DAt_DeAId = ??atr)

Jak wyfiltrować listę dokumentów posiadających dany atrybut dokumentu, którego wartość zawiera podany przez użytkownika tekst?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_TWR.DLL|CALLLOOKUPATRLISTADOK())|atr|&atr:REG= @? PAR@
@PAR ?@S50|tekst_atrybutu|&tekst_atrybutu:REG= @? PAR@ exists (select * from CDN.DokAtrybuty where DAt_TrNId = TrN_TrNId and DAt_DeAId = ??atr and DAt_WartoscTxt Like '%'+??tekst_atrybutu+'%')

Jak wyfiltrować transakcje, gdzie na pozycjach użyto atrybutu (bez podawania wartości tego atrybutu)?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(SELECT [DeA_DeAId], [DeA_Kod], [DeA_Nazwa] FROM [CDN].[DefAtrybuty] WHERE [DeA_Typ]= 1|GENERICLOOKUP(Atrybuty towarów, 0, 1))|Atrybut|&Atrybut: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
EXISTS(
SELECT [TrE_TrNId]
FROM [CDN].[TraElem] JOIN [CDN].[TraElemAtr] ON [TrE_TrEID] = [TrA_TrEId] AND
[TrE_TrNId] = [A].[TrN_TrNID]
WHERE [TrA_DeAId]=??Atrybut)

Jak wyfiltrować transakcje, gdzie na pozycjach użyto atrybutu z określoną wartością?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(SELECT [DeA_DeAId], [DeA_Kod], [DeA_Nazwa] FROM [CDN].[DefAtrybuty] WHERE [DeA_Typ]= 1|GENERICLOOKUP(Atrybuty towarów, 0, 1))|Atrybut|&Atrybut: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
@PAR ?@S100|Wartosc|&Wartość: @? @MSG(Wartość atrybutu) @TIP(Wartość atrybutu) PAR@
EXISTS(
SELECT [TrE_TrNId]
FROM [CDN].[TraElem] JOIN [CDN].[TraElemAtr] ON [TrE_TrEID] = [TrA_TrEId] AND
[TrE_TrNId] = [A].[TrN_TrNID]
WHERE [TrA_DeAId]=??Atrybut
AND [TrA_Wartosc]=??Wartosc)

Jak wyfiltrować dokumenty do których nie były wykonane korekty?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

not exists (select t.TrN_ZwrID from CDN.TraNag t where t.TrN_ZwrId = A.TrN_TrNID)

Jak wyfiltrować dokumenty wystawione w dniu dzisiejszym ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

TrN_DataDok = {DateSQL(Today())}

Jak wyfiltrować dokumenty po wybranej formie płatności?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = FPl_FPlId, Kod = FPl_Nazwa From CDN.FormyPlatnosci)|formy_platnosci|&formy_platnosci:REG= @? PAR@
TrN_FPlId = ??formy_platnosci

Jeżeli chodzi nie tyle o konkretną formę płatności co o typ formy płatności to należałoby odwołać się do tabeli CDN.FormyPlatnosci. Wyrażenie:

EXISTS(SELECT * FROM CDN.FormyPlatnosci WHERE FPl_FPlId = TrN_FPlId AND FPl_Typ=1)
wpisane w polu Filtr SQL wyfiltruje dokumenty, które mają formę płatności o typie "gotówka".
FPl_Typ=2 - typ formy płatności "przelew".
FPl_Typ=3 - karta kredytowa

Jak wyfiltrować listę dokumentów po kategorii dokumentu ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:REG=-brak- @? PAR@ TrN_KatID = ??Kategoria

Jak wyfiltrować listę dokumentów po kategorii elementu?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|Kategoria|&Kategoria:REG= @?TIP(Wybierz kategorię) PAR@ exists (select * from CDN.TraElem where Trn_TrnId=Tre_TrnId and Tre_KatId = ??kategoria)

Jak wyfiltrować listę dokumentów aby wyświetlały się wszystkie dokumenty oprócz tych w buforze, korekt i anulowanych?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

IsNull(TrN_Korekta,0)=0 AND TrN_Bufor=0

Jak wyfiltrować dokumenty, na których występują towary/ usługi z określonej grupy towarowej?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPTWGLISTA())|grupa|&grupa:REG= @? PAR@
exists( SELECT TrE_TrEID FROM CDN.TraElem JOIN CDN.Towary ON TrE_TwrID = Twr_TwrID WHERE TrE_TrNID = A.TrN_TrNID AND Twr_TwGGIDNumer=??grupa )

Jak wyfiltrować dokumenty wg. daty wystawienia oraz dowolnego fragmentu numeru pełnego dokumentu?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|Data|&Data wystawienia:REG=75828 @? PAR@ @PAR ?@S20|wartosc|&Podaj wartosc:REG= @? PAR@
TrN_NumerPelny LIKE '%' + ??wartosc+'%' and TrN_DataWys=??Data

Jak wyfiltrować dokumenty, gdzie występują elementy z określoną cechą i wartością?

Dla cech typu data, do pola wartość należy wpisać datę wg formatu RRRR-MM-DD. Żaden inny format nie będzie rozpoznany przez filtr.
Zapytanie należy wpisać z poziomu konstruktora filtra, bezpośrednio na zakładce Zaawansowane, w polu Filtr SQL:

@PAR ?@LS20(OP_TWR.DLL|CALLLOOKUPATRLISTATWR())|CechaID|&Cecha: @? @MSG(Wybór z listy) @TIP(Wybór z listy) PAR@
@PAR ?@S255|CechaWartosc|&Wartość: @? @MSG(Wartość cechy) @TIP(Wartość cechy) PAR@
EXISTS( SELECT TrE_TrEID FROM [CDN].[TraElem] JOIN [CDN].[TraSElemDost] ON [TrE_TrEID] = [TsD_TrEID] WHERE TrE_TrNID = A.TrN_TrNID AND (
(ISNULL([TsD_Cecha1_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha1_Format] = 4 AND [TsD_Cecha1_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha1_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha1_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha2_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha2_Format] = 4 AND [TsD_Cecha2_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha2_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha2_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha3_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha3_Format] = 4 AND [TsD_Cecha3_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha3_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha3_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha4_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha4_Format] = 4 AND [TsD_Cecha4_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha4_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha4_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha5_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha5_Format] = 4 AND [TsD_Cecha5_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha5_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha5_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha6_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha6_Format] = 4 AND [TsD_Cecha6_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha6_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha6_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha7_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha7_Format] = 4 AND [TsD_Cecha7_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha7_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha7_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha8_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha8_Format] = 4 AND [TsD_Cecha8_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha8_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha8_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha9_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha9_Format] = 4 AND [TsD_Cecha9_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha9_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha9_Wartosc] END = ??CechaWartosc)
OR (ISNULL([TsD_Cecha10_DeAId], 0) = ??CechaID AND CASE WHEN ([TsD_Cecha10_Format] = 4 AND [TsD_Cecha10_Wartosc] <> '') THEN CONVERT(VARCHAR(10), DATEADD("day", CONVERT(INT, [TsD_Cecha10_Wartosc]), '1800-12-28'), 21) ELSE [TsD_Cecha10_Wartosc] END = ??CechaWartosc)
))

Filtr można zastosować również na liście zasobów, wówczas należy zmodyfikować w wyrażeniu WHERE relacje po polach TrE_TwrId=A.Twr_TwrId

Jak wyfiltrować listę zasobów/cennik tylko do tych towarów które są powiązane z dostawcą (zdefiniowany kontrahent na karcie towaru zakładka Dodatkowe pole Dostawca)?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKNTLISTA())|KontrahentId|&Kontrahenci:REG=’!NIEOKREŚLONY!’ @? PAR@
Twr_KntId = ??KontrahentId

Jak wyfiltrować na liście dokumentów PZ, dokumenty nie powiązane z FRR?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

not exists (select trr_trrid from cdn.tranagrelacje where trn_trnid = trr_trnid and trr_fatyp = 301) or trn_faid not in (select trn_trnid FROM CDN.TraNag JOIN cdn.TraNagRelacje ON TrN_TrNId = TrR_TrNId where TrR_TrNId = TrN_TrNID and TrR_FaTyp=350)

Jak wyfiltrować na liście dokumentów PZ, dokumenty powiązane z FRR?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select trr_trrid from cdn.tranagrelacje where trn_trnid = trr_trnid and trr_fatyp = 301) and trn_faid in (select trn_trnid FROM CDN.TraNag JOIN cdn.TraNagRelacje ON TrN_TrNId = TrR_TrNId where TrR_TrNId = TrN_TrNID and TrR_FaTyp=350)

Jak wyfiltrować na liście dokumentów RO, dokumenty ze statusem w Realizacji do których wygenerowano dokument FA bez WZ?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from cdn.tranagrelacje where TrR_FaTyp = 302 and trn_trnid = trr_trnid and trn_zwroconocalailosc = 2)

Jak wyfiltrować na liście faktur sprzedaży, dokumenty korekt ilościowych do dokumentów pierwotnych, które nie zostały przekształcone do dokumentu PW?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

not exists (select * from CDN.TraNagRelacje where TrR_TrNId = TrN_TrNID and (TrR_FaTyp=303 or TrR_FaTyp=306) and trn_rodzaj = 302101) and trn_rodzaj = 302101

Jak wyfiltrować na liście faktur, faktury zaliczkowe które nie mają skojarzonych faktur finalnych?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Trn_TrnId not in ( select A.TrR_FaId from cdn.tranagrelacje B left outer join cdn.Tranag T on TrR_TrNID = T.TrN_TrNID left outer join cdn.TraNagRelacje A on B.TrR_FaId = A.TrR_TrNId where B.TrR_FaTyp = 320 AND TrN_Rodzaj in (302009, 302004)) and trn_rodzaj = 302200

Wyszukiwanie dokumentów z konkretnej dostawy. Filtr działa na liście WZ, wyświetli te dokumenty WZ, które rozchodowują towar z konkretnego (wskazanego w filtrze) PZ.

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@S30|numer|&numer:REG= @? PAR@
exists (select * from CDN.TraNag TRN2, CDN.TraElem TRE1, CDN.TraElem TRE2, CDN.TraSElem TRS1, CDN.TraSElem TRS2 where A.TrN_TrNID=TRE1.TrE_TrNID and TRS1.TrS_TrEId=TRE1.TrE_TrEID and TRS1.TrS_TrSIdDost=TRS2.TrS_TrSId and TRS2.TrS_TrEId = TRE2.TrE_TrEID and TRE2.TrE_TrNId=TRN2.TrN_TrNID and TRN2.TrN_NumerPelny like '%'+??numer+'%')

Wyszukiwanie dokumentów z konkretnych wydań. Filtr dla listy dokumentów PZ, po wskazaniu numeru dokumentu WZ wyświetli dokumenty PZ którymi towar z WZ został przyjęty.

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@S30|numer|&numer:REG= @? PAR@
exists (select * from CDN.TraNag TRN2, CDN.TraElem TRE1, CDN.TraElem TRE2, CDN.TraSElem TRS1, CDN.TraSElem TRS2 where A.TrN_TrNID=TRE1.TrE_TrNID and TRS1.TrS_TrEId=TRE1.TrE_TrEID and TRS1.TrS_TrSId=TRS2.TrS_TrSIdDost and TRS2.TrS_TrEId = TRE2.TrE_TrEID and TRE2.TrE_TrNId=TRN2.TrN_TrNID and TRN2.TrN_NumerPelny like '%'+??numer+'%')

Jak wyfiltrować towary z ceną domyślną w walucie np. EUR?

W menu Ogólne/ Cennik, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.TwrCeny where TwC_TwrID=Twr_TwrId and TwC_TwCNumer=Twr_TwCNumer and TwC_Waluta='EUR')

Jak wyfiltrować towary z określonym kodem CN na liście cennikowej?

Należy założyć filtr zaawansowany który będzie korzystał z tabeli CDN.KodyCN. Filtr będzie wyglądał tak:

@PAR ?@R(SELECT KCN_KcNID, KCN_Kod From CDN.KodyCN)|Kody_CN|&Kody CN: @? PAR@
Twr_KCNID = ??Kody_CN

Jak wyfiltrować towary, które nie mają ustalonego kodu CN?

W menu Ogólne/ Cennik, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Twr_KCNID is null

Jak wyfiltrować towary, które nie mają ustalonego kraju pochodzenia?

W menu Ogólne/ Cennik, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Twr_KrajPochodzenia = ''

Jak wyfiltrować towary, które nie mają wprowadzonej wagi lub waga jest zerowa?

W menu Ogólne/ Cennik, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Twr_WagaKG is null or Twr_WagaKG = 0

Jak wyfiltrować towary z przypisaną jedną grupą?

W menu Ogólne/ Cennik, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select count (TwG_Kod) from CDN.TwrGrupy Where TwG_GIDTyp = 16 and TwG_GIDNumer = Twr_TwrId Group by TwG_Kod Having count (TwG_Kod) =1)

Jak wyfiltrować Dokumenty WZ mające powiązanie (bądź nie mające powiązania) z Fakturą Sprzedaży?

W menu Handel/ Wydania zewnętrzne, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:
– w celu znalezienia dokumentów WZ mających powiązanie z fakturą:

exists (select * from CDN.TraNagRelacje where TrR_TrNId = TrN_TrNID and TrR_FaTyp=302)

– w celu znalezienia dokumentów WZ nie mających powiązania z fakturą:

not exists (select * from CDN.TraNagRelacje where TrR_TrNId = TrN_TrNID and TrR_FaTyp=302)

Jak wyfiltrować Dokumenty WZ powiązane z Fakturami Sprzedaży i Paragonami, gdzie daty wystawienia dokumentów handlowych znajdują się w podanym przedziale?

W menu Handel/ Wydania zewnętrzne, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data_od|&data od:REG={Today()} @? PAR@
@PAR ?@D17|data_do|&data do:REG={Today()} @? PAR@
Exists (select * from CDN.TraNag Z where A.TrN_FaId = Z.TrN_TrNID and Z.TrN_DataWys>= ??data_od and Z.TrN_DataWys <= ??data_do and A.Trn_TypDokumentu=306 and (Z.TrN_TypDokumentu=302 or Z.TrN_TypDokumentu=305)) Druga wersja filtra z wykorzystaniem tabeli CDN.TraNagRelacje: @PAR ?@D17|data_od|&data od:REG={Today()} @? PAR@ @PAR ?@D17|data_do|&data do:REG={Today()} @? PAR@ exists(select * from CDN.TraNagRelacje join CDN.TraNag Z on Trr_faid = z.trn_trnid where TrR_TrNId = A.TrN_TrNID and TrR_FaTyp in (302,305) and Z.TrN_DataWys>= ??data_od and Z.TrN_DataWys
<= ??data_do)

Jak na liście dokumentów WZ ukryć te mające powiązania z Fakturą Sprzedaży/Fakturą korygującą, które zostały całkowicie zwrócone?

W menu Handel/ Wydania zewnętrzne, w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

TrN_TrNID NOT IN (SELECT TrR_TrNID FROM CDN.TraNagRelacje WHERE TrR_FaTyp IN (302)) AND TrN_TrNID NOT IN ( SELECT Zrd.Tre_TrNID from CDN.TraElem [Kor] LEFT JOIN CDN.TraElem [Zrd] on Kor.TrE_ZwrId = Zrd.TrE_TrEId WHERE Kor.TrE_Aktywny <> 0 AND Zrd.TrE_TypDokumentu = 306 GROUP BY Zrd.TrE_TrNID, Zrd.TrE_Ilosc HAVING Zrd.Tre_Ilosc + SUM(Kor.Tre_Ilosc) <= 0) AND TrN_Korekta = 0 AND TrN_Anulowany = 0

Jak wyfiltrować dokumenty po opisie pozycji?

Na liście dokumentów w module Handel/Faktury w Konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@ABC(' ')@? PAR@
@PAR ?@LS20(SELECT Tre_TrnId, TrE_TwrOpis AS [Opis], TrE_TwrKod AS [Kod], TrE_TwrNazwa AS [Nazwa] FROM CDN.TraElem
WHERE REPLACE(REPLACE(REPLACE(REPLACE(TrE_TwrOpis,CHAR(13),''), char(10),''),CHAR(9), ''),' ','') <> '' AND TrE_TypDokumentu = 302
ORDER BY TrE_TwrOpis |GENERICLOOKUP(Towary z opisem na dokumencie, 0, 1))|TwrOpis|&Opis Towaru:| 6@? PAR@
Trn_TrnId = ??TwrOpis

CRM

Jak wyfiltrować listę kontaktów/ zadań aby widoczne były CRM-y zmodyfikowane danego dnia?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data|&Data:REG={Today()} @? PAR@
FLOOR(CONVERT(DECIMAL(14,4), CRK_TS_MOD)) = FLOOR(CONVERT(DECIMAL(14,4), CONVERT(DATETIME,??data ,120)))

Jak zrobić aby właściciel firmy na liście kontaktów i zadań widział swoje zadania i zadań podwładnych, natomiast podwładni widzą tylko i wyłącznie swoje zadania ?

W Konfiguracji/ Program/ Użytkowe/ Parametry należy zaznaczyć parametr Stosuj filtry obowiązkowe.
Na zakładce Opcje w Typie filtra należy zaznaczyć Obowiązkowy oraz z menu wybrać akronim Operatora.
Do zadania może być przypisany pracownik lub operator. W bazie danych ID pracownika jak i operatora może być takie samo albo różne, dlatego w filtrze można wykorzystać również pole CRK_OpiekunTyp gdzie typ=8 to operator a typ =3 to pracownik.
W polu Filtr SQL można wpisać:

CRK_OpiekunId= {OperatorID} and CRK_OpiekunTyp =8

Gdzie {OperatorID} oznacza ID operatora aktualnie zalogowanego.
Na zakładce [Opcje] w Typie filtra należy zaznaczyć Obowiązkowy oraz z menu wybrać akronim Operatora.

Obieg dokumentów

Jak wyfiltrować w bibliotece dokumentów wszystkie dokumenty które nie mają powiązań z transakcjami ?

Będą to zarówno dokumenty firmowe, jak i wspólne (te z zasady nie są kojarzone z innymi transakcjami). Tak więc ewentualnie należy dodatkowo zawęzić listę dokumentów tylko do firmowych (parametr na liście).
Zapytanie należy wpisać z poziomu konstruktora filtra, bezpośrednio na zakładce [Zaawansowane], w polu Filtr SQL.

not exists (select * from CDN.DokRelacje Z where A.Dnv_DonId = Z.Dor_ParentId and Z.Dor_ParentTyp = 750)

Jak wyfiltrować dokumenty z biblioteki dokumentów, które są na zadanym etapie realizacji (etap bieżący) i etap ten jest etapem głównym?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = SE_SEID, Kod = SE_Symbol From {OPBK()}.CDN.SekEtapy Order By
SE_Symbol )|EtapID|&Etap:1 @? PAR@
exists (select * from CDN.DokNagProcesEtapy, CDN.DokNagEtapy where DNV_DoNID=DnPr_DoNID and DnPr_DnPrID=DnE_DnPrID and DnE_EtapID=??EtapID and A.DNV_EtapBiezacyLp=DnPr_Lp and DnPr_Poziom=1)

Jak wyfiltrować dokumenty z biblioteki dokumentów, które są na zadanym etapie realizacji (etap bieżący)?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = SE_SEID, Kod = SE_Symbol From {OPBK()}.CDN.SekEtapy Order By
SE_Symbol )|EtapID|&Etap:1 @? PAR@
exists (select * from CDN.DokNagProcesEtapy, CDN.DokNagEtapy where DNV_DoNID=DnPr_DoNID and DnPr_DnPrID=DnE_DnPrID and DnE_EtapID=??EtapID and A.DNV_EtapBiezacyLp=DnPr_Lp)

Jak wyfiltrować dokumenty z biblioteki dokumentów, które w schemacie mają zadany etap realizacji?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = SE_SEID, Kod = SE_Symbol From {OPBK()}.CDN.SekEtapy Order By
SE_Symbol )|EtapID|&Etap:1 @? PAR@
exists (select * from CDN.DokNagProcesEtapy, CDN.DokNagEtapy where DNV_DoNID=DnPr_DoNID and DnPr_DnPrID=DnE_DnPrID and DnE_EtapID=??EtapID)

Księgowość i Środki Trwałe

Jak wyfiltrować z rejestrów VAT faktury, które mają datę deklaracji VAT-7 inną niż rejestr VAT?

W Rejestrze (zakupu lub sprzedaży) VAT, w Konstruktorze filtra, na zakładce: [Zaawansowane]należy wpisać w polu Filtr SQL:

Van_RokMies<>Van_DeklRokMies

Filtr zastosowany z zakładki Rejestr VAT, zakres dat: od 2018/01/01 do 2018/01/31 pozwoli wyświetlić np. fakturę wystawioną 5 stycznia 2018, a mającą wejść na deklarację w lutym 2018.

Przeglądam dokumenty RVAT za pierwszy kwartał, chciałbym wyfiltrować te, które są rozliczane w deklaracjach za następne miesiące. Jak mogę to wykonać?

Polem odpowiedzialnym za rozliczenie wpisu w deklaracji za dany miesiąc to pole: VaN_DeklRokMies. Pole to agreguje w postaci liczby całkowitej rok oraz miesiąc, np.: dokument przeznaczony do rozliczenia w deklaracji za kwiecień 2018 będzie w tym polu posiadał wpis : 201804
Możemy, więc wprowadzić filtr zaawansowany , który będzie wykorzystywał to pole wpisując w polu Filtr SQL:

@PAR ?@D17|DATA_OD|&Od :{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DATA_DO|&Do :{DateClwFirstDay('m')} @? PAR@
YEAR(??DATA_OD ) * 100 + MONTH(??DATA_OD) <=VaN_DeklRokMies and YEAR(??DATA_DO ) * 100 + MONTH(??DATA_DO) >=VaN_DeklRokMies

Filtr przed uruchomieniem będzie odpytywał o daty określające przedział – Od i Do. – z wskazanej daty znaczenie będą miały jedynie miesiąc oraz rok.

Czy można utworzyć filtr dla Rejestru VAT po akronimie pracownika wybranego na formatce faktury na zakładce Kontrahent?

W polu Filtr SQL można wpisać:

VaN_PodZalId=(select Pre_PreID from cdn.pracetaty where Pre_kod like ?@S100|Akronim pracownika:'') AND VaN_PodmiotZalTyp=3

Przed odfiltrowaniem listy program będzie pytał o akronim pracownika.
Można również posłużyć się deklaracją parametru dynamicznego i przekazać do zapytania kod pracownika wyświetlony na liście – w polu Filtr SQL wpisujemy:

@PAR ?@LS20(OP_PRCW.DLL|CALLLOOKUPPRILISTA())|pracownik|&pracownik:REG= @? PAR@
VaN_PodZalId=??pracownik AND VaN_PodmiotZalTyp=3

Jak z listy rejestru VAT odfiltrować te faktury, które są nierozliczone lub rozliczone częściowo i dodatkowo forma płatności jest różna od gotówki?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.BnkZdarzenia where VaN_VaNID=BZd_DokumentID and (Bzd_Kwota<>Bzd_KwotaRoz)) AND VaN_FplID<>1

Jak w Rejestrach VAT wyfiltrować faktury z podaną kategorią tak aby wyfiltrowaną listę można było zaznaczyć i zaksięgować?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|Kategoria|&Kategoria: @? PAR@
VaN_KatId = ??Kategoria

Program będzie pytał o kategorię przed filtrowaniem i dodatkowo będzie ją można wybrać z listy kategorii. Po zawężeniu listy zaznaczamy faktury np. kombinacją klawiszy CTRL + A i księgujemy wybranym schematem.

Jak wyfiltrować faktury w Rejestrach VAT zawierające kategorie szczegółowe należące do zadanej kategorii ogólnej?

a) dla kategorii nagłówka dokumentu:
W konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select Kat_KodOgolny, Kat_KodSzczegol from cdn.kategorie where VaN_KatID=Kat_KatID AND Kat_KodOgolny=?@S100|Kategoria ogólna:'')

b) dla kategorii wybranych w elementach faktury VAT (kategorie przy poszczególnych stawkach VAT):
W konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

Exists (select * from cdn.vattab Join cdn.kategorie on vat_katid = kat_katid where vat_vanid = van_vanid and Kat_KodOgolny=?@S100|Kategoria ogólna:'')

Jak wyfiltrować w Rejestrach VAT listę faktur całkowicie rozliczonych i zakwalifikowanych do danej deklaracji VAT-7?

Taka lista może być potrzebna tym firmom, które potrzebują ustalić wartość zapłaconych Faktur Zakupu dla potrzeb ustalenia kwoty VAT do zwrotu na rachunek bankowy podatnika.
Aby zrobić wydruk takich faktur, należy:
1. Zbudować filtr: na zakładce [Zaawansowane] w Konstruktorze filtra w polu Filtr SQL należy wpisać:

VaN_DeklRokMies=?@N-15.4|Rok i miesiąc VAT-7:0

2. Na zakładce Rejestr VAT w Rejestrach VAT, zawęzić listę faktur, za pomocą ww. filtra, do tych które są zakwalifikowane tylko do deklaracji np. listopadowej (gdy przed odfiltrowaniem listy program zapyta o rok
i miesiąc deklaracji – wpisać: 201811).
3. Wykonać odpowiedni wydruk dokumentów rozliczonych z menu wydruków.
Listę faktur można uzyskać również bezpośrednio na ekranie.
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.BnkZdarzenia where VaN_VaNID=BZd_DokumentID AND BZd_DokumentTyp=2 AND (BZd_KwotaSys=BZd_KwotaRozSys) AND VaN_DeklRokMies=?@N-15.4|Rok i miesiąc VAT-7:0)

Przed filtrowaniem program pyta o datę deklaracji VAT-7 – należy wpisać rok i miesiąc w formacie np. 201611. Tak wyfiltrowanej listy nie da się wydrukować ze względu na składnię filtra, ale można ją wysłać do arkusza Excel.

Jak wyfiltrować listę faktur po kolumnie KPiR, do której dokumenty mają być zaksięgowane?

Na liście faktur w rejestrze VAT, w konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT Id = 1, Kod = 'Sprzedaż' UNION SELECT Id = 2, Kod = 'Pozostałe' UNION SELECT Id = 3, Kod = 'Towary' UNION SELECT Id = 4, Kod = 'Uboczne' UNION SELECT Id = 5, Kod = 'Reklama' UNION SELECT Id = 6, Kod = 'Wynagrodzenia' UNION SELECT Id = 7, Kod = 'Inne' UNION SELECT Id = 8, Kod = 'Zaszłości')|Kolumna|&Kolumna: @? PAR@
exists (Select * From CDN.VatTab Where VaT_VaNID = VaN_VaNId And VaT_KolumnaKPR = ??Kolumna )

Filtr ma taką właściwość, że jeśli jest jakiś zapis, który ma być zaksięgowany w części do jednej kolumny,
a w części do innej, to na liście widać go w pełnej kwocie, a na wydruku w kwocie do zaksięgowania do wskazanej kolumny.

Jak uzyskać listę transakcji nierozliczonych, pochodzących z Rejestru VAT, na danym koncie rozrachunkowym?

W menu Księgowość/Księgowość/ Dzienniki, zakładka Konto, należy wybrać odpowiednie konto, a w Konstruktorze filtra, na zakładce Zaawansowane, w polu Filtr SQL wpisać:

exists(select * from CDN.VatNag join CDN.BnkZdarzenia on VaN_VaNID=BZd_DokumentID where VaN_DekID=DeN_DeNId AND Bzd_DokumentTyp=2 AND (Bzd_Kwota-Bzd_KwotaRoz<>0)) OR exists(select * from CDN.VatNag join CDN.TraNag on TrN_VaNId=VaN_VaNID join CDN.BnkZdarzenia on TrN_TrNID=BZd_DokumentID where VaN_DekID=DeN_DeNId AND Bzd_DokumentTyp=1 AND (Bzd_Kwota-Bzd_KwotaRoz<>0))

Filtr zawęzi listę do tych dekretów, które pochodzą z Rejestru VAT (zostały wprowadzone bezpośrednio do Rejestru VAT lub przesłane z modułu FA i zaksięgowane z Rejestru VAT) i nie są rozliczone lub są rozliczone częściowo.

Jak sprawdzić czy poprawnie wprowadzono Kwoty dodatkowe na fakturach w Rejestrze VAT?

Jeżeli jest jakaś reguła np. zwykle na Fakturach Zakupu rozksięgowujemy kwotę netto na różne konta „czwórek” czy „piątek” i suma księgowań po stronie Wn ma się równać kwocie netto dokumentu, to można zbudować filtr, który będzie wyświetlał faktury nie spełniające tego warunku.
W Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

not exists (select * from CDN.KwotyDodatkowe where Kdd_DokumentID=VaN_VaNID AND KDD_DokumentTyp=2 AND Kdd_Segment1<>''
having SUM(Kdd_Kwota) = VaN_RazemNetto)

Zostaną wyfiltrowane wszystkie pozycje różne od tych, na których suma kwot dodatkowych WN jest równa kwocie netto faktury.

Jak wyfiltrować środki trwałe aktywne, całkowicie umorzone?

Poniżej przykład filtra, który wyświetli środki trwałe aktywne, których wartość bieżąca bilansowa minus odpisy umorzeniowe = 0. Filtr nie uwzględnia historyczności i bierze pod uwagę tylko amortyzację bilansową.

SrT_Stan=0 and SrT_WartoscBilan + ( Select IsNull(Sum( SrH_KwotaBilan - SrH_KwotaUm ), 0) From CDN.TrwaleHist Where SrH_SrTId = SrT_SrTId And SrH_TypDokumentu<>4) = 0

Jak w dziennikach księgowych wyfiltrować dekrety, których dokumenty źródłowe były płatne gotówką?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL można wpisać:

exists (select * from CDN.TraNag where
DeN_DeNId = TrN_DekId and TrN_FPlId=1) OR exists(select * from CDN.VatNag where DeN_DeNId=VaN_DekID AND VaN_FplID=1)
TrN_FPlId=1 i VaN_FplID=1 oznacza formę płatności o ID 1. Standardowo jest to forma płatności o nazwie „gotówka”.

Jak wyfiltrować różnice kursowe, które powstały z rozliczenia dokumentów innych niż te pochodzące z Ewidencji dodatkowej?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

''=''AND(BRK_LDokTyp='1' AND exists(select*from CDN.BnkZdarzenia where BRK_LDokID=Bzd_BzdID and BZd_DokumentTyp<>12))OR(BRK_PDokTyp='1' AND exists(select*from CDN.BnkZdarzenia where BRK_PDokID=Bzd_BzdID and BZd_DokumentTyp<>12))

Powyższy filtr wyświetli różnice kursowe, na których co najmniej jeden z dokumentów nie pochodzi z Ewidencji dodatkowej. Wyfiltrowane różnice kursowe można zaznaczyć i zaksięgować.
BRK_LDokTyp=’1′ czyli że typ lewego dokumentu to dokument pochodzący z tabeli BnkZdarzenia.
BZd_DokumentTyp=1 to typ dokumentu w BnkZdarzenia np.
1 – faktura z modułu Faktury;
12 – faktura z Rejestru VAT;
12 – dokument z Ewidencji dodatkowej;

Jak sprawdzić, która faktura z rejestru zakupów VAT nie została zaksięgowana na konto VAT’u lub została zaksięgowana, ale kwota VAT z faktury nie zgadza się z kwotą VAT na koncie?

W Rejestrze zakupów VAT można stworzyć filtr, który wyświetli te faktury, których suma kwoty VAT nie jest równa kwocie zaksięgowanej na konto VAT’u. W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL można wpisać:

VaN_DekId Is Not Null And Not Exists (Select DeK_AccId From CDN.DekretyKonta Join CDN.Konta On DeK_AccId = Acc_AccId Where DeK_DeNId = VaN_DekId And Acc_Numer='221-02' And Year(DeK_DataDok)
= Year(VaN_DataZap) And Month(DeK_DataDok) = Month(VaN_DataZap) Group By DeK_AccId Having Sum(DeK_Kwota) = VaN_RazemVat)

W pole Acc_Numer=’221-2′ należy wpisać numer konta VAT. W przypadku faktur – korekt na kwoty ujemne, filtr zadziała prawidłowo wtedy, gdy kwota VAT’u jest księgowana na to samo konto co zwykła faktury i po tej samej stronie tylko ze znakiem „minus”.

Jak wyfiltrować w dziennikach księgowań PK, które zawierają pozycje zawierające zadany opis?

W menu Księgowość/ Dzienniki, zakładka [Dzienniki]. W konstruktorze filtra na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S30|Szukaj|&Szukaj: @? PAR@
DeN_Dokument Like '%'+ ??Szukaj +'%' Or DeN_Kategoria Like '%'+ ??Szukaj +'%' Or Exists (Select * From CDN.DekretyElem Where DeE_DeNId = DeN_DeNId And (DeE_Dokument Like '%'+ ??Szukaj +'%' Or DeE_Kategoria Like '%'+ ??Szukaj +'%'))

Jak wyfiltrować listę dokumentów rozliczonych pochodzących z Rejestru VAT lub ewidencji dodatkowej?

Na liście Dokumentów Rozliczonych w menu Kasa/Bank w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from cdn.bnkzdarzenia where
(bzd_dokumenttyp=12 and brk_ldoktyp=1 and brk_ldokid = bzd_bzdid) or
(bzd_dokumenttyp=12 and brk_pdoktyp=1 and brk_pdokid = bzd_bzdid) or
(bzd_dokumenttyp=2 and brk_ldoktyp=1 and brk_ldokid = bzd_bzdid) or
(bzd_dokumenttyp=2 and brk_pdoktyp=1 and brk_pdokid = bzd_bzdid))

Jak wyfiltrować Rejestr VAT wg numeru NIP Kontrahenta pod warunkiem, że dokument nie jest zaksięgowany?

Na liście Rejestru VAT w menu Kasa/Bank w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@HO(RY:1|KP:2|KH:3)|TypKsi|&KSI:{GetSql('Select Fir_Wartosc From CDN.Firma Where Fir_Numer=1204', '')} @? PAR@ {CHOOSE ( ??TypKsi, 'IsNull(VaN_RycId,0)=0', 'IsNull(VaN_KPRId,0)=0', 'IsNull(VaN_DekId,0)=0', '1=1')} and VaN_KntNipE LIKE '%' + ?@S100|numer NIP:'' + '%'

Jak wyfiltrować konta w Planie kont, które mają inny numer w przyszłym okresie?

Na Planie kont w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists ( select * from cdn.konta k2 where A.Acc_NextAccId=k2.Acc_AccId
and A.Acc_Numer<>k2.Acc_Numer)

Jak wyfiltrować polecenia księgowania, które zawierają dekrety na konto 404-1 i 501-01?

Przykład takiego filtra dla zakładki [Dzienniki] w menu Księgowość/Księgowość/Dzienniki:

exists(select * from CDN.DekretyElem K1 join CDN.DekretyElem K2 on (DeN_DeNID = K2.DeE_DeNID) where DeN_DeNID = K1.DeE_DeNID and K1.DeE_KontoWn = '404-1' and K2.DeE_KontoWn = '501-01')

Na fakturze w Rejestrze VAT wpisuję jako wartość atrybutu numer rejestracyjny samochodu i jako kolejny atrybut – paliwo, jak sprawdzić ile paliwa zakupiono dla danego samochodu?

Na jednym dokumencie uzupełniono atrybuty REJESTRACJA (nr rejestracyjny samochodu) i PALIWO (ilość zakupionego paliwa). Poniższe zapytanie, w Rejestrach VAT, na zakładce [Wg atrybutów], zwróci rekordy zawierające ilość paliwa dla podanego numeru rejestracyjnego samochodu. Przed odfiltrowaniem program zapyta o nr rejestracyjny.

exists (select * from CDN.VATAtrybutyView as ATR1 join CDN.VATAtrybutyView as ATR2 on (ATR1.VAV_VaNID=ATR2.VAV_VaNID and ATR2.VAV_DeAKod='REJESTRACJA' AND ATR2.VAV_DAtWartoscTxt =?@S100|Nr rejestracyjny:'') where ATR1.VAV_VaNID=VAN_VaNID and ATR1.VAV_DeAKod = 'PALIWO')

W polu Atrybut można wybrać atrybut PALIWO – wtedy będzie można podsumować wyfiltrowane rekordy (ilość paliwa).

Jak wyfiltrować dokumenty w rejestrze VAT według wskazanych grup kontrahentów?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT Gru_GruID, Gru_Nazwa FROM cdn.Grupy WHERE Gru_Typ=31)|Grupa_kontrahentow|&Grupa_kontrahentow:REG= @? PAR@
exists (select * from cdn.kontrahenci where knt_kntID=van_podId and van_podmiotTyp=1 and knt_grupa=??_Q_RES2_Grupa_kontrahentow)

Jak wyfiltrować faktury z rejestru VAT zaksięgowane pomiędzy podanymi datami, które zakwalifikowane zostały do deklaracji VAT-7 za podany okres?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data_od|&Data_zapisu_od:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|data_do|&Data_zapisu_do:{DateClwLastDay('m')} @? PAR@
@PAR ?@N4|Rok|&Rok_deklaracji:{Year(Today())} @? PAR@
@PAR ?@N4|Miesiac|&Miesiąc_deklaracji:{Month(Today())} @? @RL(1) @RH(12) PAR@
EXISTS (SELECT * FROM CDN.DekretyNag WHERE VaN_DekId = DeN_DeNId AND VaN_DekId IS NOT NULL AND VaN_DeklRokMies={100 * ??Rok + ??Miesiac} AND DeN_DataDok >=??Data_od AND DeN_DataDok <= ??Data_do)

W przypadku stosowania metody kasowej należy użyć poniższego filtra:
@PAR ?@D17|data_od|&Data_zapisu_od:{DateClwFirstDay('m')} @? PAR@ @PAR ?@D17|data_do|&Data_zapisu_do:{DateClwLastDay('m')} @? PAR@ @PAR ?@N4|Rok|&Rok_deklaracji:{Year(Today())} @? PAR@ @PAR ?@N4|Miesiac|&Miesiąc_deklaracji:{Month(Today())} @? @RL(1) @RH(12) PAR@ EXISTS (SELECT * FROM CDN.DekretyNag WHERE VaN_DekId = DeN_DeNId AND VaN_DekId IS NOT NULL AND DeN_DataDok >=??Data_od AND DeN_DataDok <= ??Data_do) AND EXISTS ( SELECT * FROM CDN.VatTab7 WHERE Va7_VaNID=VaN_VaNID AND Va7_RokMiesiac={100 * ??Rok + ??Miesiac} AND VaN_MetodaKasowa=1)

Jak wyfiltrować środki trwałe mające określony atrybut?

Na liście środków trwałych w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = DeA_DeAId, Kod = DeA_Kod FROM CDN.DefAtrybuty WHERE DeA_Typ=3 ORDER BY DeA_Kod)|KodAtr|&Kod atrybutu:ATR1 @? PAR@
EXISTS (SELECT * FROM CDN.TrwaleAtrybuty JOIN CDN.DefAtrybuty ON SrA_DeAId = DeA_DeAId WHERE SrT_SrTID = SrA_SrTId AND DeA_DeAId =??KodAtr)

Jak wyfiltrować dokumenty w rejestrze VAT, które zostały wprowadzone lub zmodyfikowane po konkretnej dacie?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|data_od|&Data_wprowadzenia_lub_modyfikacji:{DateClwFirstDay('m')} @? PAR@
VaN_TS_Zal >= ??data_od OR VaN_TS_Mod >= ??data_od

Jak wyfiltrować dokumenty w Rejestrze VAT posiadające określony atrybut?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@LS20(OP_TWR.DLL|CALLLOOKUPATRLISTADOK())|Atrybut|&Atrybut:REG= @? PAR@ exists (select * from CDN.DokAtrybuty where VaN_VaNID = DAt_VaNID and DAt_DeAId = ??Atrybut)

Jak wyfiltrować dokumenty w Rejestrze VAT posiadające określoną wartość atrybutu?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@S30|Wartosc_atrybutu|&Wartosc_atrybutu:''@? PAR@
exists (select * from CDN.DokAtrybuty where VaN_VaNID = DAt_VaNID and DAt_WartoscTxt
= ??Wartosc_atrybutu)

Jak wyfiltrować dokumenty w Rejestrze VAT, które mają nie zaznaczonego parametru Rozliczać w deklaracji VAT?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

VaN_RozliczacVat7 = 0

Jak znaleźć zapisy w Rejestrze VAT, które pod listą zaliczek mają wybranego jakiegoś pracownika?

W Rejestrze VAT w konstruktorze filtra na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

VaN_PodmiotZalTyp='3’

Jak odnaleźć zapisy księgowe na koncie z daną kategorią w elemencie zapisu?

W menu Księgowość/Dzienniki, zakładka [Konto] w konstruktorze filtra na zakładce [Zaawansowane] należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|Kategoria|&Kategoria:REG= @?TIP(Wybierz
kategorię) PAR@ DeE_KatId =??kategoria

Jak odnaleźć zapisy księgowe na koncie z daną kategorią w nagłówku zapisu?

W menu Księgowość/Dzienniki, zakładka [Konto] w konstruktorze filtra na zakładce [Zaawansowane] należy wpisać:

@PAR ?@LS20(OP_LIST.DLL|CALLLOOKUPKATLISTA())|Kategoria|&Kategoria:REG=-brak- @? PAR@
DeN_KatId = ??Kategoria

W jaki sposób wyszukać dokumenty środków trwałych w zależności od osoby odpowiedzialnej przypisanej w zadanym okresie?

Na liście dokumentów środków trwałych w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@D17|data1|&Data od:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|data2|&Data do:{DateClwLastDay('m')} @? PAR@
@PAR ?@R(SELECT distinct Pri_PraId, PRi_nazwisko+' '+pri_Imie1 FROM cdn.Pracidx where PRI_Typ <>2 order by 2 )|PRACOWNIK|&PRACOWNIK:0|@? PAR@
Exists (select * from CDN.TrwaleOsobyOdpowiedzialne where SrH_SrtID=SrOO_SrTID and SrOO_DataOd<=??data1 and (SrOO_DataDo >=??data2 or SrOO_DataDo is null) and SrOO_PrcID =??PRACOWNIK)

W jaki sposób na liście zapisów w rejestrze VAT (bądź na liście faktur) wyszukać dokumenty zaksięgowane na konkretne konto?

Na liście zapisów w rejestrze VAT w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@S30|Konto|&Konto:''@? PAR@
EXISTS (SELECT * FROM CDN.DekretyNag join CDN.DekretyElem on DeN_DeNId=DeE_DeNId WHERE VaN_DekID = DeN_DeNId AND (DeE_KontoWn=??Konto OR DeE_KontoMa=??Konto))

Filtr do zastosowania na liście faktur:

@PAR ?@S30|Konto|&Konto:''@? PAR@
EXISTS (SELECT * FROM CDN.DekretyNag join CDN.DekretyElem on DeN_DeNId=DeE_DeNId WHERE TrN_DekId = DeN_DeNId AND (DeE_KontoWn=??Konto OR DeE_KontoMa=??Konto))

W jaki sposób wyszukać zapisy KPiR zaksięgowane z określonych dokumentów źródłowych?

 

Na liście zapisów KPiR w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@R (SELECT Id = 2, Kod = 'Rejestr VAT' UNION
SELECT Id = 3, Kod = 'Samochodówka' UNION
SELECT Id = 4, Kod = 'Remanent' UNION
SELECT Id = 5, Kod = 'Wynagrodzenia uproszczone' UNION
SELECT Id = 7, Kod = 'Dokumenty ŚT' UNION
SELECT Id = 10, Kod = 'Wynagrodzenia' UNION
SELECT Id = 12, Kod = 'Ewidencja dodatkowa' UNION
SELECT Id = 13, Kod = 'Różnice kursowe' UNION
SELECT Id = 14, Kod = 'Zapisy k/b'
)|Zrodlo|&Zrodlo: @? PAR@
KPR_Zrodlo = ??Zrodlo

W jaki sposób wyszukać zapisy księgowe na koncie mające parę (taką samą kwotę) po obu stronach konta?

Z poziomu Księgowość/ Dzienniki/ zakładka [Konto] w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@D17|data1|&Data od:{DateClwFirstDay('y')} @? PAR@ @PAR ?@D17|data2|&Data do:{DateClwLastDay('y')} @? PAR@
@PAR ?@S30|Konto|&Konto:''@? PAR@
Exists (Select * From CDN.DekretyElem A Where A.DeE_DeEId=DeK_DeEId
And (Exists (Select * From CDN.DekretyElem B Where A.DeE_Kwota=B.DeE_Kwota
And A.DeE_KontoMa=??Konto and B.DeE_KontoWn=??Konto
AND A.DeE_DataWys between ??data1 And ??data2
AND B.DeE_DataWys between ??data1 And ??data2)
OR Exists (Select * From CDN.DekretyElem B Where A.DeE_Kwota=B.DeE_Kwota
And A.DeE_KontoWn=??Konto and B.DeE_KontoMa=??Konto
AND A.DeE_DataWys between ??data1 And ??data2
AND B.DeE_DataWys between ??data1 And ??data2)))

W jaki sposób na planie kont wyszukać konta rozrachunkowe tego samego podmiotu, na których istnieją nierozliczone rozrachunki po przeciwnych stronach?

Z poziomu Księgowość/ Plan kont w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

EXISTS( Select * From CDN.Konta B Where A.Acc_SlownikId=B.Acc_SlownikId And A.Acc_SlownikTyp=B.Acc_SlownikTyp And A.Acc_Rozrachunkowe = 1 And B.Acc_Rozrachunkowe = 1 AND A.Acc_NumerIdx IN (SELECT Roz.KRo_KontoIdx FROM CDN.KsiRozrachunki AS Roz WHERE Roz.KRo_RozliczenieID IS NULL AND Roz.KRo_Strona=1) AND B.Acc_NumerIdx IN (SELECT Roz.KRo_KontoIdx FROM CDN.KsiRozrachunki AS Roz WHERE Roz.KRo_RozliczenieID IS NULL AND Roz.KRo_Strona=2))
OR
EXISTS( Select * From CDN.Konta B Where A.Acc_SlownikId=B.Acc_SlownikId And A.Acc_SlownikTyp=B.Acc_SlownikTyp And A.Acc_Rozrachunkowe = 1 And B.Acc_Rozrachunkowe = 1 AND A.Acc_NumerIdx IN (SELECT Roz.KRo_KontoIdx FROM CDN.KsiRozrachunki AS Roz WHERE Roz.KRo_RozliczenieID IS NULL AND Roz.KRo_Strona=2) AND B.Acc_NumerIdx IN (SELECT Roz.KRo_KontoIdx FROM CDN.KsiRozrachunki AS Roz WHERE Roz.KRo_RozliczenieID IS NULL AND Roz.KRo_Strona=1))

Powyższy filtr zadziała w przypadku, gdy jest nierozliczony rozrachunek po stronie Wn na koncie 201-2-1-ADM
i po stronie Ma na koncie 202-2-1-ADM, chociaż równie dobrze może to być to samo konto.

W jaki sposób na liście dokumentów w rejestrze VAT wyfiltrować dokumenty według stanu ich rozliczeń?

Z poziomu rejestru VAT w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać treść filtra odpowiednią dla szukanych dokumentów:
– wyłącznie dokumenty nierozliczone całkowicie:

not exists (select * from CDN.BnkZdarzenia where VaN_VaNID = BZd_DokumentID and BZd_DokumentTyp = 2 and (Bzd_KwotaRoz > 0)) AND VaN_Wewnetrzna = 0

– wyłącznie dokumenty rozliczone częściowo:

exists(select BZd_DokumentID, BZd_DokumentTyp, SUM(BZd_Kwota), SUM(BZd_KwotaRoz) from cdn.BnkZdarzenia where BZd_DokumentID = VaN_VaNID AND BZd_DokumentTyp = 2 GROUP BY BZd_DokumentID, BZd_DokumentTyp HAVING SUM(BZd_Kwota) <> SUM(BzD_KwotaRoz) AND SUM(BzD_KwotaRoz) > 0.00)

– dokumenty nierozliczone bądź częściowo rozliczone:

exists (select BZd_BZdID FROM CDN.BnkZdarzenia where VaN_VaNID=BZd_DokumentID and BZd_DokumentTyp = 2 and (Bzd_Kwota<>Bzd_KwotaRoz))

– wyłącznie dokumenty rozliczone całkowicie:

exists(select BZd_DokumentID, BZd_DokumentTyp, SUM(BZd_Kwota), SUM(BZd_KwotaRoz) from cdn.BnkZdarzenia where BZd_DokumentID = VaN_VaNID AND BZd_DokumentTyp = 2 GROUP BY BZd_DokumentID, BZd_DokumentTyp HAVING SUM(BZd_Kwota) = SUM(BzD_KwotaRoz) AND SUM(BzD_KwotaRoz) > 0.00)

Płace i Kadry

Jak wyfiltrować pracowników, dla których ważność badań upływa w podanym okresie?

Na liście pracowników w menu Kadry/Płace / Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|DataOd|Podaj datę:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DataDo|Podaj datę:{DateClwLastDay('m')} @? PAR@
exists (select 1 from CDN.PracEtaty where PRI_PraId=PRE_PraId and
PRE_WaznoscBadanOkres between ??DataOd AND ??DataDo)

Przed odfiltrowaniem pojawi się pytanie o daty. Domyślnie podpowiada się data pierwszego i ostatniego dnia miesiąca.

Jak odfiltrować listę pracowników niepełnosprawnych po kodzie niepełnosprawności?

Po uruchomieniu filtru pojawi się okno, w którym należy wpisać kod niepełnosprawności (1,2,3 lub 4) datę tj. dzień, na który chcemy sprawdzić listę osób niepełnosprawnych (sprawdzane są daty od-do niepełnosprawności).
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|Data|&Data:{Today()}@? PAR@
exists(select 1 from cdn.pracetaty where pri_praid=pre_praid and PRE_StNiepelnosp LIKE '%' +
?@S100|Stopień niepełnospr:'' + '%' and ??Data between pre_niepelnospod and pre_niepelnospdo)

Jak wyfiltrować listę osób mających zawarte umowy cywilno-prawne o podanym symbolu?

Po uruchomieniu filtru pojawi się okno, w którym należy wpisać zakres dat (sprawdza datę zawarcia umowy we wskazanym okresie) oraz symbol umowy (np. UMW).
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|DataOd|Podaj datę:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DataDo|Podaj datę:{DateClwLastDay('m')} @? PAR@
exists (select 1 from CDN.UMOWY where Pri_PraID = UMW_PraID and umw_numerstring LIKE
'%' + ?@S100|Symbol:'' + '%' and UMW_DataOd between ??DataOd AND ??DataDo)

Jak wyfiltrować z listy pracowników osoby z przypisanym Urzędem Skarbowym, na wskazany dzień?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|Data|na dzień:{Today()}@? PAR@
exists (select * from CDN.PracEtaty where PRI_Praid=PRE_PraId and pre_PODUrzSkarbId>0 and
??Data between PRE_DataOd and PRE_DataDo)

Ewentualnie zamiast @D17 można wykorzystać @HD17 jeśli parametr z datą ma być ukryty (a więc zawsze jako parametr ma się pojawiać data bieżąca):

@PAR ?@HD17|filtr_dtDataAkt|&filtr_dtDataAkt:{Today()}@? PAR@
exists (select * from CDN.PracEtaty where PRI_Praid=PRE_PraId and pre_PODUrzSkarbId>0 and
??filtr_dtDataAkt between PRE_DataOd and PRE_DataDo)

Osoby bez przypisanego Urzędu Skarbowego:

@PAR ?@D17|Data|na dzień:{Today()}@? PAR@
not exists (select * from CDN.PracEtaty where PRI_Praid=PRE_PraId and pre_PODUrzSkarbId>0 and
??Data between PRE_DataOd and PRE_DataDo)

Jak wyfiltrować pracowników, którym wybrana kwalifikacja kończy się w zadanym zakresie?

Na liście pracowników w menu Kadry/Płace / Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT ID = Dkm_DkmID, Kod = DKM_Nazwa from cdn.DaneKadMod where dkm_Rodzaj = 6 order by DKM_Nazwa)|Kwalifikacje|&Kwalifikacje: @? PAR@
@PAR ?@D17|DataOd|&DataOd:REG={DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DataDo|&DataDo:REG={DateClwLastDay('m')} @? PAR@
exists (select 1 from cdn.Uprawnienia join cdn.DaneKadMod on Upr_DkmId = Dkm_DkmID where Pri_PraID
= Upr_PraID and DKM_DkmID = ??Kwalifikacje and upr_KursTermin between ??DataOd and ??DataDo)

Przed odfiltrowaniem pojawi się rozwijana lista kwalifikacji oraz pytanie o zakres dat.

Jak zablokować operatorowi dostęp do dokumentów dotyczących rozliczeń z pracownikami z tytułu wynagrodzeń?

Aby operator nie widział:
A. Zapisów kasowo/bankowych wystawionych na pracowników, należy założyć filtr w menu: Kasa/bank/Zapisy kasowe/bankowe. Kliknąć na ikonę „Konstruktor filtra” i na zakładce [Zaawansowane], wpisać w polu Filtr SQL:

BZp_PodmiotTyp<>3

Na zakładce [Opcje], wybrać: Obowiązkowy i wybrać operatora, który ma mieć załączony ten filtr.
Jeżeli jest więcej niż jeden operator, który ma mieć założony taki filtr, należy zbudować drugi identyczny filtr, z tym, że na zakładce Opcje wybrać innego operatora.

B. Dla zdarzeń w Preliminarzu pochodzących z list płac, należy założyć filtr w menu: Kasa/Bank / Preliminarz płatności.
Kliknąć na ikonę „Konstruktor filtra” i na zakładce [Zaawansowane], wpisać w polu Filtr SQL:

BZd_DokumentTyp<>8

Na zakładce [Opcje], wybrać: Obowiązkowy i wybrać operatora, który ma mieć załączony ten filtr.
Jeżeli jest więcej niż jeden operator, który ma mieć założony taki filtr, należy zbudować drugi identyczny filtr, z tym, że na zakładce Opcje wybrać innego operatora.

C. Aby operator nie mógł wybrać z listy pracownika (np. po to aby podglądnąć listę rozliczonych i nierozliczonych zapisów dla wybranego pracownika w menu Kasa/bank/ Rozliczenia podmiotu. Należy operatorowi dodać blokadę dostępu do listy pracowników. Blokadę zakłada się w menu: System / Konfiguracja / Program/Użytkowe/Operatorzy. Na formatce danego operatora, na zakładce [Blokady dostępu] należy dodać blokadę: Lista pracowników, wspólników i właścicieli.

D. Aby operator nie widział rozliczeń powstałych z dokumentów, z których przynajmniej jeden jest wystawiony na pracownika, należy założyć następujący filtr obowiązkowy dla operatora w menu Kasa/Bank/ Rozliczenia: pole Filtr SQL:

not exists (select * from CDN.BnkRozKwotyView where BRKV_BRKId=BRK_BRKId and (BRKV_PodmiotTyp1=3 OR BRKV_PodmiotTyp2=3))

Filtry obowiązkowe włącza się w menu: System/Konfiguracja/Program/Użytkowe/Parametry: Stosuj filtry obowiązkowe. Operator nadający filtry obowiązkowe musi być Administratorem, pozostali operatorzy nie powinni być administratorami.

Uwaga
Na formatce Operatora (menu: System/Konfiguracja/Program/Użytkowe/Operatorzy) znajduje się parametr Blokada dostępu do rozliczeń pracowników. Parametr ten blokuje dostęp do dokumentów w module Kasa/Bank, na których jako podmiot jest wybrany pracownik lub wspólnik.

Jak wyfiltrować listę pracowników, którym kończy się ważność badań okresowych?

Na liście pracowników w menu Kadry/Płace/Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|DataOd|Podaj datę:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DataDo|Podaj datę:{DateClwLastDay('m')} @? PAR@
exists (select 1 from CDN.PracEtaty where PRI_PraId=PRE_PraId and
PRE_WaznoscBadanOkres between ??DataOd AND ??DataDo)
Przed odfiltrowaniem pojawi się pytanie o zakres dat.

Jak wyfiltrować listę pracowników zatrudnionych na stanowiskach robotniczych?

Na liście pracowników w menu Kadry/Płace/Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|Data|&Data:{Today()}@? PAR@
exists (select 1 from CDN.PracEtaty join CDN.DaneKadMod on PRE_ETADkmIdStanowisko=DKM_DkmId
where DKM_Robotnicze=1 and DKM_Rodzaj=1 and PRE_PraId=PRI_PraId and ??Data between PRE_DataOd and PRE_DataDo)

Przed odfiltrowaniem pojawi się zapytanie o datę.

Jak wyfiltrować listę pracowników zgłoszonych do wszystkich ubezpieczeń (społeczne i zdrowotne)?

Na liście pracowników w menu Kadry/Płace/Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from cdn.pracetaty where pri_praid=pre_praid and pre_ubzzdrowod <> CONVERT(DATETIME,'1899-12-30',120) and PRE_UBZJestEmerytal=1 and PRE_UBZJestRentowe=1 and PRE_UBZJestchorobowe=1 and PRE_UBZJestwypad=1)

Jak wyfiltrować listę pracowników zgłoszonych tylko do ubezpieczenia zdrowotnego?

Na liście pracowników w menu Kadry/Płace/Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from cdn.pracetaty where pri_praid=pre_praid and pre_ubzzdrowod <> CONVERT(DATETIME,'1899-12-30',120) and PRE_UBZJestEmerytal=0 and PRE_UBZJestRentowe=0 and PRE_UBZJestchorobowe=0 and PRE_UBZJestwypad=0)

Jak wyfiltrować listę pracowników przypisanych do wybranej kategorii?

Na liście pracowników w menu Kadry/Płace/Kadry, w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(select ID=KAT_KatId, Kat_KodSzczegol from CDN.Kategorie)|Kategoria|&Kategoria:REG=PLACE @? PAR@
exists (select 1 from CDN.PracEtaty where PRI_PraId=PRE_PraId and PRE_KATId=
??Kategoria and ?@D17|Data:{Today()} between PRE_DataOd and PRE_DataDo)

Przed odfiltrowaniem pojawi się rozwijana lista słownikowa z kategoriami oraz pytanie o datę.

Jak wyfiltrować listę dokumentów nierozliczonych wystawionych na pracownika?

Na liście Dokumentów Nierozliczonych w menu Kasa/Bank w Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

exists (select * from CDN.PodmiotyView where DKB_PodmiotId=Pod_PodId
and Dkb_PodmiotTyp = Pod_PodmiotTyp AND DKb_PodmiotTyp=3)

Jak wyfiltrować pracowników z listy Kadry zwolnionych w zadanym okresie, w aktualnym okresie historycznym?

W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@D17|DataOd|Zwoln. w okresie od:{DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|DataDo|do:{DateClwLastDay('m')} @? PAR@
exists (select 1 from CDN.PracEtaty where PRI_PraId=PRE_PraId and
PRE_ZatrudnionyDo between ??DataOd AND ??DataDo and ?@D17|Na datę aktualności:{Today()} between PRE_DataOd and PRE_DataDo)

Jak wyfiltrować pracowników, którzy mają formę płatności „ROR” lub „gotówka”, w aktualnym okresie historycznym?

Filtr działa tak, że sprawdza odpowiedni zapis historyczny pracownika (data ,którą ustawimy jako „Zapis hist. prac” – podpowiada się aktualna) oraz płatność, która ma ustawioną „nadwyżkę”.
W Konstruktorze filtra, na zakładce [Zaawansowane], w polu Filtr SQL należy wpisać:

@PAR ?@R(SELECT Id = 1, Kod = 'gotówka' UNION
SELECT Id = 3, Kod = 'ROR')|platnosc|&platność:REG= @? PAR@
exists(select 1 from CDN.PracEtaty join CDN.SchematPlatnosci on SPL_PodmiotId = PRE_PreId
where PRE_PraId=PRI_PraId and SPL_Reszta = 1 and SPL_FplId = ??Platnosc AND ?@D17|Zapis hist. prac:{Today()} between PRE_DataOd and PRE_DataDo)

W jaki sposób wyszukać pracowników z określoną kategorią na wybranej liście płac?

Z poziomu Płace i Kadry/ Wypłaty pracowników w Konstruktorze filtra, na zakładce [Zaawansowane] należy wpisać:

@PAR ?@R(SELECT LPL_LplId, LPL_NumerPelny FROM CDN.ListyPlac)|Lista|&Lista plac:REG= @? PAR@
@PAR ?@LS0(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:0|@? PAR@
EXISTS(SELECT 1 FROM CDN.PracEtaty
JOIN CDN.Wyplaty ON WPL_PraId = PRE_PraId
JOIN CDN.ListyPlac ON LPL_LplId = WPL_LplId
WHERE PRI_PraId = PRE_PraId
AND WPL_KatId = ??Kategoria
AND LPL_LplId = ??Lista)

Można również zastosować wariant filtra, w którym numer listy płac jest automatycznie przekazywany na podstawie wybranej na oknie listy:

@PAR ?@HN0|ListaPlacId|&ListaPlacId:0@? PAR@
@PAR ?@LS0(OP_LIST.DLL|CALLLOOKUPKATLISTA())|kategoria|&kategoria:0|@? PAR@
EXISTS(SELECT 1 FROM CDN.PracEtaty
JOIN CDN.Wyplaty ON WPL_PraId = PRE_PraId
JOIN CDN.ListyPlac ON LPL_LplId = WPL_LplId
WHERE PRI_PraId = PRE_PraId
AND WPL_KatId = ??Kategoria
AND LPL_LplId = ??ListaPlacId)




Data aktualizacji: 20-07-2020


Spis treści

Wstęp

Przykłady z instrukcją tworzenia


Wstęp

Użytkownik Comarch ERP Optima ma możliwość dodawania na listach dokumentów kolumn o dowolnej definicji z dowolnej tabeli dostępnej w bazie danych. Dodawanie kolumn odbywa się z pomocą mechanizmu personalizacji okna. Możliwe jest wyłączenie personalizacji listy dla danego operatora, zwykła personalizacja kolumn, które zdefiniował użytkownik poprzez dodanie kolejnych instrukcji JOIN, dodanie wyrażeń definiujących nową kolumnę oraz testowanie całego zapytania.

Można w dowolny sposób dołączać tabele (również z bazy konfiguracyjnej) do zdefiniowanego zapytania SQL oraz definiować kolumny o dowolnej składni pobierania danych. Dodawanie kolumn może odbywać się w łatwy sposób poprzez „przeciągnięcie” wybranej kolumny na listę Kolumny użytkownika. Dodane kolumny można sortować, grupować oraz wykonywać operacje dostępne z wiersza sum.

Po dodaniu kolumn i tabel wydajność pobierania danych na liście może znacznie spaść. Należy rozważyć tutaj dwa przypadki: sama definicja kolumny nie spowoduje żadnego spowolnienia, jeśli kolumna nie będzie widoczna oraz dodatkowa instrukcja LEFT JOIN spowoduje spowolnienie tylko wtedy, gdy będzie widoczna jakaś kolumna wykorzystująca tą instrukcję lub kolumna zostanie użyta w filtrze. Powyższe problemy zostawiamy do rozwiązania wdrożeniowo przez partnera rozszerzającego funkcjonalność listy.

Wygląd okna personalizacji

Funkcjonalność dostępna jest z poziomu personalizacji aktywnego okna <Shift>+<F9> po kliknięciu ikony . Na oknie Personalizacja listy jest możliwość:

  • Dodawania złączeń do kolejnych tabel bazy danych (również z bazy konfiguracyjnej).
  • Dodawania wyrażeń definiujących nową kolumnę danych,  po której będzie można sortować i grupować listę.
  • Testowania całego zapytania.

Okno personalizacji listy podzielone jest na 5 części:

  • Kolumny dostępne z aktualnie wybranych tabel (wraz z dodatkowymi instrukcjami JOIN) – Jest to lista prezentująca wszystkie pola możliwe do pokazania na liście przy aktualnie zdefiniowanej klauzuli FROM wraz z dodatkowymi złączeniami (instrukcjami JOIN) dodanymi przez użytkownika. Lista jest aktualizowana po dołączeniu nowej tabeli przez użytkownika w sekcji Tabele użytkownika. Lista wyświetlana jest w trybie tylko do odczytu, istnieje jednak możliwość „przeciągnięcia” wybranej kolumny na listę Kolumny użytkownika.
  • Kolumny użytkownika – lista kolumn dodanych przez użytkownika. Dla dodanej kolumny można określić jej nazwę dla użytkownika, instrukcję pobierania, typ i format wyświetlania, domyślną widoczność i dostępność kolumny oraz dodatkowy opis.
  • Tabele domyślne – treść zapytania FROM standardowo wysyłanego do serwera SQL – pole do odczytu.
  • Tabele użytkownika – sekcja umożliwiająca dołączenie kolejnych tabel przez użytkownika. Aby dołączyć nową tabelę należy wskazać jej nazwę (wraz z prefixem „CDN”) oraz podać instrukcję łączenia, czyli klauzulę potrzebną do wykonania połączenia tabel (np. TrN_KntID= Knt_KntID).
  • Wynikowe zapytanie SQL – zapytanie utworzone z kolumn zdefiniowanych przez użytkownika i instrukcji FROM z dodanymi złączeniami (instrukcjami JOIN) użytkownika, z możliwością sprawdzenia poprawności wykonania – pole do odczytu.

Rys. Personalizacja listy

Na oknie znajdują się przyciski:

  •  – Sprawdzenie poprawności utworzonego zapytania. Przycisk możliwy do wywołania w dwóch trybach (rozwijalna lista obok przycisku):
  • Sprawdź składnię – weryfikacja poprawności składni zapytań użytkownika, w przypadku poprawnego wykonania testu pojawia się komunikat: Kolumny zostały dodane poprawnie.
  • Sprawdź wydajność – zmierzenie czasu wykonania zapytania użytkownika; pierwsze wykonanie zmienionego zapytania SQL może nie być miarodajne, gdyż Serwer SQL nie będzie jeszcze miał w pamięci cache tego zapytania, w związku z czym pierwsze wykonanie zapytania może być dłuższe, niż kolejne.
  •  Zapis zmian. Jeżeli po wprowadzeniu zmian użytkownik nie sprawdzi poprawności zapytania, zostanie to wykonane w momencie zapisu zmian w dodatkowych kolumnach. Jeżeli zapytanie nie będzie poprawne, okna nie będzie można zapisać. Podczas zapisu okna personalizacji listy sprawdzane jest również, czy modyfikacja zapytania nie spowodowała efektu „rozmnożenia” wierszy na liście (np. faktura pokazuje się na liście tyle razy, ile ma elementów) – taka sytuacja jest błędna i niektóre funkcje programu mogą wówczas nie działać prawidłowo
  •  Eksport ustawień dodatkowych kolumn użytkownika, bez pozostałych ustawień personalizacji. Eksport wykonywany jest do formatu XML.
  •  Import ustawień dodatkowych kolumn użytkownika z pliku XML.

Kolumny użytkownika

Lista umożliwiająca dodanie przez użytkownika nowej kolumny na listę. Zawiera kolumny:

Nazwa dla użytkownika – pod jaką nazwą kolumna będzie widoczna na interfejsie.

Instrukcja pobrania danych – pole z bazy lub można wpisać treść, która występuje w klauzuli SELECT i dotyczy pojedynczej kolumny.

Format wyświetlania – można określić formatowanie zwracanych wartości w kolumnie np. jeżeli do pokazania będzie kolumna typu DateTime, a standardowo część czasowa jest ucinana, potrzebne będzie tu wprowadzenie odpowiedniej wartości formatującej pokazywaną treść. Formatowanie należy ustawić w kolumnie Typ formatu wyświetlania oraz w kolumnie Format wyświetlania. Kolumna Typ formatu wyświetlania przyjmuje 4 wartości:

  • None – dane w definiowanej kolumnie wyświetlane są sposób domyślny
  • Numeric – dane liczbowe
  • DateTime – data/czas
  • Custom – niestandardowy format wyświetlania

Ostatnie 3 opcje definiują w jaki sposób wartości mają być wyświetlane używając formatu z pola Format wyświetlania.

Kolumna Format wyświetlania

  • Standardowe formaty wyświetlania dla liczb.

Standardowy format wyświetlania dla liczb składa się z litery (określającej rodzaj formatu) oraz 2 cyfr (określających precyzję). Rodzaj formatu decyduje w jaki sposób wartość jest transformowana.

Rodzaj formatu

Opis

Przykład formatu

Przykładowa wartość

c lub CLiczba jest wyświetlana jako wartość walutowa. Specyfikacja precyzji określa żądaną ilość miejsc dziesiętnych. Jeżeli precyzja nie zostanie wpisana, zostanie użyta domyślna precyzja wartości formatu waluty z ustawień regionalnych.c2$1,234.00
n lub NLiczba jest wyświetlana w formie "-d,ddd,ddd.ddd...", gdzie każde 'd' oznacza cyfrę. Wartość będzie poprzedzona znakiem minus, jeżeli liczba jest ujemna. Separator tysięcy jest wstawiany między każdą grupę 3 cyfr na lewo od kropki dziesiętnej. Specyfikacja precyzji określa żądaną ilość miejsc dziesiętnych. Jeżeli precyzja nie zostanie wpisana, zostanie użyta domyślna precyzja wartości formatu waluty z ustawień regionalnych.n01.234
d lub DWartość jest wyświetlana jako liczba całkowita ze znakiem minus. Jeżeli wyświetlana będzie liczba z częścią dziesiętna, zostanie ona sformatowana domyślnie. Specyfikacja precyzji określa minimalną ilość cyfr, która ma zostać pokazana. Jeżeli będzie to potrzebne, liczba zostanie dopełniona „nieistotnymi” zerami z lewej strony, aby zapewnić odpowiednią długość wartości. Jeżeli precyzja nie zostanie wybrana, pokazane zostanie dokładnie tyle cyfr, ile potrzeba do reprezentowania wartości bez początkowych zer.D800004392
p lub PLiczba mnożona jest przez 100 i wyświetlana ze znakiem %. Specyfikacja precyzji określa żądaną ilość miejsc dziesiętnych. Jeżeli nie zostanie określona, pokazywane są 4 miejsca dziesiętne.P289,48 %

  • Standardowe formaty wyświetlania dla daty i czasu.

Standardowy format daty/czasu składa się z jednej litery, która określa wzorzec, wg którego wartości będą wyświetlane (czy i w jaki sposób wyświetlać lata, miesiące itd.).

FormatOpisPrzykład
dWzorzec daty krótkiej.04-06-2014
DWzorzec daty długiej.4 czerwca 2014
tWzorzec czasu krótkiego.14:08
TWzorzec czasu długiego.14:08:00
fWzorzec daty długiej i czasu krótkiego.4 czerwca 2014 14:08
FWzorzec daty długiej i czasu długiego.4 czerwca 2014 14:08:00
gWzorzec daty krótkiej i czasu krótkiego.04-06-2014 14:08
GWzorzec daty krótkiej i czasu długiego.04-06-2014 14:08:00
m lub MWzorzec miesiąca i dnia.4 czerwca
y lub YWzorzec roku i miesiąca.czerwiec 2014
sWzorzec sortowalny.2014-06-04T14:08:00

  • Niestandardowe formaty dla liczb

Formaty niestandardowe używane są do ręcznego stworzenia odpowiedniego wzorca. Tego sposobu formatowania należy używać tylko wtedy, gdy standardowe formaty nie są wystarczające. Wszystkie formaty składające się z litery, za którą występują jedna lub dwie cyfry, traktowane są jako formaty standardowe. Wszystkie pozostałe są interpretowane jako formaty niestandardowe. Poniżej znajdują się najczęściej używane symbole do konstruowanie niestandardowych formatów.

ZnakZnaczenie
0Cyfra jest wyświetlana zawsze.
#Cyfra jest wyświetlana, gdy jest potrzebna (używane np, aby nie wyświetlać początkowych zer).
.Określa miejsce kropki dziesiętnej. Wygląd symbolu dziesiętnego zależy od ustawień regionalnych.
,Wyznacza użycie separatora tysięcy. Wygląd separatora zależy od ustawień regionalnych.
%Mnoży liczbę przez 100 i wstawia symbol % zgodny z ustawieniami regionalnymi.
\Kolejny znak jest wstawiany literalnie do wyniku.

  • Niestandardowe formaty daty i czasu

Aby stworzyć wzorzec daty i czasu należy połączyć symbole z tabel poniżej, reprezentujące rok, miesiąc, dzień itd. w różnych formatach.

Symbole dotyczące dat:

SymbolZnaczenieWynik formatownia przykładowej daty (22.06.2014)
yyOstatnie dwie cyfry roku.14
yyyyCztery cyfry roku.2014
MMNumer miesiąca.06
MMMSkrót nazwy miesiąca.cze
MMMMPełna nazwa miesiąca.czerwiec
ddNumer dnia.22
dddSkrót dnia tygodnia.N
ddddPełna nazwa dnia tygodnia.niedziela
/Separator daty. Pobierany z ustawień regionalnych.

  • Symbole dotyczące czasu:

SymbolZnaczenie
hhGodziny.
mmMinuty.
ssSekundy.
:Separator czasu. Pobierany z ustawień regionalnych.

Szczegółowe informacje na temat formatowania danych można odnaleźć na stronach MSDN w obszarze dotyczącym formatowania wartości (Formatting types: http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.100).aspx).

Domyślnie Widoczna/Dostępna – domyślne wartości, jakie ustawią się dla tej kolumny na liście.

Opis – dodatkowy opis pokazujący się po najechaniu myszką na nagłówek kolumny.

Tabele użytkownika

Lista umożliwiająca dołączenie kolejnych tabel lub innych obiektów dozwolonych przez SQL do wykonywanego już zapytania. Zawiera kolumny:

Lp – liczba porządkowa, służy do ustalenia kolejności dołączania tabel w zapytaniu.

Nazwa tabeli – nazwa tabeli ze struktury bazy danych.

Instrukcja łączenia – klauzula potrzebna do wykonania połączenia tabel np. TrN_KntID= Knt_KntID.

Parametr kolumny użytkownika na oknie personalizacji

Na oknie personalizacji znajduje się kolumna Kolumny użytkownika. Domyślnie każdy operator ma zaznaczoną tę wartość, co oznacza, że dla tego operatora są dostępne do wyboru dodatkowo zdefiniowane kolumny. Jeżeli parametr dla operatora będzie odznaczony – wówczas pomimo dodanych nowych kolumn w personalizacji, lista dla tego operatora będzie miała dostępne tylko standardowe kolumny. Na rozwijanej liście z dostępnymi kolumnami, te dodane przez użytkownika wraz z przeniesionymi domyślnymi ustawieniami w kolumnach Widoczna i Dostępna będą widoczne na końcu listy, dodatkowo pisane kursywą dla łatwego ich odróżnienia od kolumn standardowych.

Rys. Okno personalizacji

Dodawanie kolumn na listach

Podczas uruchamiania okna programu z listą, która ma dodane przez użytkownika niestandardowe tabele, zostanie najpierw wykonane sprawdzenie, czy zapytanie użytkownika nie zwraca większej ilości wierszy, niż zapytanie standardowe. Jeżeli ilość wierszy będzie taka sama, wówczas okno uruchomi się w spersonalizowanym trybie. Jeżeli natomiast ilość wierszy będzie różna, wówczas wygenerowany zostanie komunikat: Dodatkowe tabele dodane w personalizacji powodują powielanie wierszy na liście. Lista zostanie uruchomiona w trybie standardowym., po czym nastąpi uruchomienie okna bez dodatkowych kolumn i tabel.

Uwaga
Dodanie każdej tabeli użytkownika powoduje modyfikację treści FROM zapytania. W związku z tym wskazanie np. tabeli z elementami dokumentu (nawet bez wybrania kolumn z tej tabeli) będzie powodować zduplikowanie wyświetlanych wierszy i generowanie powyższego komunikatu przy otwieraniu listy.

Jeżeli nie uda się pobieranie danych na listę z dodatkowymi kolumnami i/lub tabelami, pokazany zostanie komunikat Błąd pobierania danych na listę. Lista zostanie uruchomiona w trybie standardowym., a następnie okno programu zostanie uruchomione bez dodatkowych kolumn i tabel.

W przypadku ustawienia filtrowania lub sortowania wg dodanej przez użytkownika kolumny, wydruki z list mogą nie działać poprawnie, jednakże wydruk bieżącego widoku powinien zawsze działać poprawnie.

W menu Narzędzia/ Testy integralności jest dostępny test Okna z dodatkowymi kolumnami sprawdzający, do których okien dodane zostały kolumny lub tabele użytkownika i prezentujący w logu nazwy tych okien.

Przekazywanie zmiennych dynamicznych

W polach Instrukcja wprowadzania danych oraz Instrukcja łączenia istnieje możliwość przekazania wybranych wartości ze zmiennych dynamicznych oraz wartości z panelu filtra. Otrzymujemy możliwość uzależnienia wartości pokazywanych w dodatkowych kolumnach od wartości ze zmiennych dynamicznych (np. uzależnienie od Operatora), czy wartości z panelu filtra (np. uzależnienie od daty aktualności listy).

W polach wprowadzania instrukcji, gdzie podajemy konkretne wartości (np. 2017-11-21) mamy możliwość wykorzystania specjalnych aliasów, odpowiadających tym wartościom (np. #CDN_DataBiezaca#), przekazujących wybrane zmienne dynamiczne lub wartości z panelu filtra. Aby ułatwić wstawienie odpowiedniego aliasu menu kontekstowe wyświetla listę dostępnych wartości:

Parametry standardowe - przy dodawaniu kolumn udostępnione zostały wybrane wartości ze zmiennych dynamicznych. Po wybraniu opcji Parametry standardowe rozwija się dodatkowe menu z następującymi wartościami:

Parametry filtra - po wybraniu opcji Parametry filtra rozwija się dodatkowe menu z wartościami przekazywanymi z panelu filtra danej listy. Między różnymi listami mogą być różne parametry filtra. Poniżej przykład z wartościami przekazywanymi z listy pracowników:

Po wybraniu wartości w miejsce kursora zostanie wstawiony odpowiedni alias.

Przykłady z instrukcją tworzenia

1. Lista zasobów/cennik. Kolumny: kod PLU, nazwa fiskalna oraz waga towaru

Potrzebne pola znajdują się w tabeli CDN.Towary. Na oknie personalizacji listy w sekcji Kolumny dostępne z aktualnie wybranych tabel należy odnaleźć pole Twr_PLU i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny. Tak samo należy postąpić w przypadku pozostałych kolumn czyli Twr_NazwaFiskalna oraz Twr_WagaKG. Dodatkowo dla pola Waga ustawiamy w kolumnie Typ formatu wyświetlania na Numeric a Format wyświetlania na N4 (N- wartość numeryczna, 4 – wyświetlanie do czterech miejsc dziesiętnych).

2. Lista zasobów/cennik. Kolumny: kod CN oraz kraj pochodzenia

Potrzebne pola znajdują się w tabeli CDN.Towary oraz CDN.KodyCN. Na oknie personalizacji listy w sekcji Tabele użytkownika należy połączyć powyższe tabele aby mieć dostęp do pól związanych z kodami CN. W związku z powyższym w kolumnie Nazwa tabeli podajemy tabelę CDN.KodyCN a w kolumnie Instrukcja łączenia wprowadzamy pola klucze łączące obie tabele Twr_KCNId=KCN_KCNId zgodnie ze strukturą bazy danych. Teraz w sekcji Kolumny dostępne z aktualnie wybranych tabel pojawią się pola z tabeli CDN.KodyCN. Należy odnaleźć pole KCN_Kod i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny. Tak samo należy postąpić w przypadku kolumny Twr_KrajPochodzenia.

3. Lista zasobów/cennik. Kolumna marża procentowa dla ceny hurtowa1 - szybkie sprawdzenie przewidywanej marży

Ceny zapisywane są w tabeli CDN.TwrCeny i wiązane z tabelą CDN.Towary po kluczu TwC_TwrId=Twr_TwrId. Ponieważ chcemy uzyskać marżę dla ceny o numerze drugim rozwiązaniem będzie zastosowanie zapytania SQL w kolumnie Instrukcja pobierania danych w sekcji Kolumny użytkownika. Ponieważ dodawanie kolumn odbywa się na oknie towarów należy w zapytaniu aliasować pole Twr_TwrId. Zapytanie będzie mieć następującą postać:
(SELECT TwC_Marza From CDN.TwrCeny WHERE TwC_TwrId=A.Twr_TwrId And TwC_TwCNumer=2)

Kolumna ta ma pokazywać wartość w procentach w związku z tym ustawiamy w kolumnie Typ formatu wyświetlania typ na Custom oraz w kolumnie Format wyświetlania ustawiamy maskę 00.00”%” (0 – oznacza że cyfra jest zawsze wyświetlana, . – oznacza miejsca dziesiętne, „%” – dodanie na końcu znaku procent).

4. Lista dokumentów w Handlu. Kolumna Mail

Jeśli użytkownik korzysta ze skrzynki pocztowej w module CRM i wysyła wydruki faktur do swoich klientów drogą mailową to korzystając z powiązania faktura sprzedaży – mail może na liście faktur wyświetlić informację, czy faktura została wysłana do klienta. Informacja ta jest oparta o sprawdzenie czy z fakturą skojarzony jest jakikolwiek mail.

Mail - w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:
CASE WHEN EXISTS (SELECT * FROM CDN.DokRelacje WHERE Dor_DokumentId=A.TrN_TrnId AND Dor_ParentTyp=1011 AND DoR_DokumentTyp = 302) THEN 'Tak' ELSE 'Nie' END

5. Lista dokumentów w Handlu. Kolumna Wydruk

Jeśli użytkownik wykonuje kopie elektroniczne wydruków faktur sprzedaży to korzystając z powiązania faktura sprzedaży – wydruk w archiwum może na liście faktur wyświetlić informację czy faktura została wydrukowana. Dla przypomnienia: kopie elektroniczne wydruków są tworzone po zaznaczeniu parametru na definicji wydruku.

Wydruk - w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:
CASE WHEN EXISTS (SELECT * FROM CDN.WdrKopieElektroniczne WHERE WdKE_ObjId=A.TrN_TrNId AND WdKE_ObjType=A.TrN_typDokumentu) THEN 'Tak' ELSE 'Nie' END

6. Lista dokumentów WZ. Kolumna marża

Marża wyliczana jest jako różnica pomiędzy sumą Wartości Netto pozycji dokumentu a sumą ich Wartości Zakupu. Zastosujemy zapytanie SQL w kolumnie Instrukcja pobierania danych w sekcji Kolumny użytkownika. Zapytanie wyliczające marżę dokumentu będzie wyglądać następująco:
(SELECT SUM(TrE_WartoscNetto) - SUM(TrE_WartoscZakupu) FROM CDN.TraElem WHERE TrE_TrnId=A.TrN_TrnId)

7. Lista dokumentów w Handlu. Kolumna e-mail kontrahenta (Nabywcy)

Należy skorzystać z widoku CDN.PodmiotyView i dostępnego pola Pod_Email. W zapytaniu sql pola z tego widoku muszą być aliasowane. Należy odnaleźć pole Pod_Email i przeciągnąć do sekcji Kolumny użytkownika nadać nazwę dla kolumny, a następnie edytować kolumnę Instrukcja pobierania danych i ustawić alias. Ostateczna postać wyrażenia Pod.Pod_Email.

8. Lista faktur sprzedaży. Kolumna pozostaje do zapłaty

Należy skorzystać z tabeli CDN.BnkZdarzenia. Kolumna Pozostaje do zapłaty musi zostać wyliczona poprzez odjęcie od pola Razem pola Zapłacono. Trzeba stworzyć wyrażenie, które będzie sprawdzać, czy faktura została utworzona z paragonu, gdyż w przypadku, gdy faktura została przekształcona z paragonu zapisy kasowo/bankowe są tworzone dla paragonu. Do sprawdzenia, czy faktura została utworzona z paragonu, posłuży pole TrN_Rodzaj oraz pole TrN_TrNFaId z tabeli CDN.TraNag. W sekcji Kolumny użytkownika należy dodać kolumnę o nazwie Pozostaje do zapłaty i następującej instrukcji pobierania danych:
CASE WHEN TrN_Rodzaj=302006 THEN (SELECT SUM(Bzd_Kwota * BZd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId=A.TrN_FaId) - (SELECT SUM(Bzd_KwotaRoz * Bzd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId =A.TrN_FaId) ELSE (SELECT SUM(Bzd_Kwota * BZd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId=A.TrN_TrNId) - (SELECT SUM(Bzd_KwotaRoz * Bzd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId =A.TrN_TrNId) ENDJeśli płatności do dokumentów są w różnych walutach, to powyższe zapytanie należy zmodyfikować i dostosować do potrzeb użytkownika.

9. Lista dokumentów w Handlu. Kolumna z informacją o akronimie operatora, który zmodyfikował dokument

Dane o operatorach zapisane są w bazie konfiguracyjnej w tabeli CDN. Operatorzy. Należy wykonać złączenie do bazy konfiguracyjnej i powyższej tabeli. Na oknie personalizacji listy w sekcji Tabele użytkownika w kolumnie Nazwa tabeli podajemy tabelę i nazwę bazy do której jest ona podpięta, obie tabele muszą istnieć na serwerze SQL. Wprowadzamy [CDN_KNF_Konfiguracja].[CDN].[Operatorzy] a w kolumnie Instrukcja łączenia wprowadzamy pola klucze łączące tabele CDN.Operatorzy i CDN.TraNag czyli Ope_OpeId=TrN_OpeModId zgodnie ze strukturą bazy danych. Należy odnaleźć pole Ope_Kod i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny.

10. Lista dokumentów w Handlu. Kolumna z nazwą dnia tygodnia terminu płatności

Należy skorzystać z funkcji sqlowej CDN. NazwaDnia i podać dla niej parametry TrN_Termin oraz tryb 0. W związku z powyższym w sekcji Kolumny użytkownika w kolumnie Instrukcja łączenia wprowadzamy wyrażenie:
(SELECT CDN.NazwaDnia(A.TrN_Termin, 0))

11. Formularz dokumentu HaMag. Ostatnia cena zakupu

W pierwszej kolejności należy dołączyć tabelę CDN.TwrCeny – instrukcja łączenia: twc_twrid = tre_twrid

Kolejny krok to samo zapytanie wyciągające cenę zakupu z cennika. Będzie to zawsze ostatnia cena zakupu zgodnie z konfiguracją programu (uwzględnianie korekt itp.):
(SELECT TwC_Wartosc from CDN.TwrCeny WHERE TwC_TwCNumer =1 AND TwC_TwrId = TrE_TwrId)

12. Lista pracowników. Kolumna z wartością atrybutu o nazwie Atrybut 1 na dzień bieżący

Potrzebne pola znajdują się w tabeli CDN.OAtrybuty oraz CDN.OAtrybutyHist. Na oknie personalizacji listy w sekcji Tabele użytkownika należy dołączyć powyższe tabele, aby mieć dostęp do ich pól. W związku z tym w kolumnie Nazwa tabeli dodajemy tabelę CDN.OAtrybuty, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek dla atrybutu o nazwie Atrybut 1, wprowadzamy zatem:
OAT_PrcId = PRI_PraId AND OAT_NazwaKlasy = 'Atrybut 1'Następnie podajemy drugą tabelę CDN.OAtrybutyHist, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek filtrujący zakres dat na dzień bieżący, wprowadzamy zatem:
ATH_OatId = OAT_OatId AND ATH_DataOd <= GETDATE() AND ATH_DataDo >= GETDATE()Teraz w sekcji Kolumny dostępne z aktualnie wybranych tabel pojawią się pola dostępne z tabeli CDN.OAtrybutyHist. Należy odnaleźć pole ATH_Wartosc i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny.

13. Lista pracowników. Kolumna z wartością atrybutu o nazwie Atrybut 1 na dzień daty aktualności listy

Potrzebne pola znajdują się w tabeli CDN.OAtrybuty oraz CDN.OAtrybutyHist. Na oknie personalizacji listy w sekcji Tabele użytkownika należy dołączyć powyższe tabele, aby mieć dostęp do ich pól. W związku z tym w kolumnie Nazwa tabeli dodajemy tabelę CDN.OAtrybuty, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek dla atrybutu o nazwie Atrybut 1, wprowadzamy zatem:
OAT_PrcId = PRI_PraId AND OAT_NazwaKlasy = 'Atrybut 1'Następnie podajemy drugą tabelę CDN.OAtrybutyHist, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek filtrujący zakres dat na dzień daty aktualności listy, wprowadzamy zatem:
ATH_OatId = OAT_OatId AND ATH_DataOd <= #filtr_dtDataAkt# AND ATH_DataDo >= #filtr_dtDataAkt#Teraz w sekcji Kolumny dostępne z aktualnie wybranych tabel pojawią się pola dostępne z tabeli CDN.OAtrybutyHist. Należy odnaleźć pole ATH_Wartosc i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny.

14. Lista pracowników. Kolumna z pełnym kodem ubezpieczenia pracownika na dzień daty aktualności listy

Na oknie personalizacji listy w sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
CASE WHEN LEN(PRE_UBZTyuId) = 3 THEN '0' + CAST(PRE_UBZTyuId as CHAR(3)) + CAST(PRE_PrawoER as CHAR(1)) + CAST(PRE_StNiepelnosp as CHAR(1)) WHEN PRE_UBZTyuId = 99999 THEN '' ELSE CAST(PRE_UBZTyuId as CHAR(4)) + CAST(PRE_PrawoER as CHAR(1)) + CAST(PRE_StNiepelnosp as CHAR(1)) END

15. Lista wypłat pracowników. Kolumna z sumą naliczonej zaliczki podatku (bez zaokrągleń) w wypłacie pracownika dla wybranej listy płac

Potrzebne pola znajdują się w tabeli CDN.Wyplaty. Należy wykonać złączenie do powyższej tabeli. Na oknie personalizacji listy w sekcji Tabele użytkownika w kolumnie Nazwa tabeli podajemy tabelę CDN.Wyplaty, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek przekazujący ID wybranej listy płac, wprowadzamy zatem:
WPL_PraId = PRI_PraId and WPL_LplId = #filtr_LookupListaPlac_ID#
Następnie w sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
(SELECT SUM(WPE_NalFis) FROM CDN.WypElementy WHERE WPE_WplId = WPL_WplId)

16. Lista wypłat pracowników. Kolumna z sumą naliczonej zaliczki podatku (bez zaokrągleń) w wypłacie pracownika dla wybranej listy płac – przypadek, gdy dwie wypłaty (np. umowy cywilnoprawne) policzone są w jednej wypłacie

Na oknie personalizacji listy w sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
(SELECT Suma FROM (
SELECT WPE_WplId, WPE_PraId, SUM(WPE_NalFis) OVER(PARTITION BY WPE_PraID) AS Suma, WPL_LplId, ROW_NUMBER() OVER(PARTITION BY WPE_PraID ORDER BY WPE_NalFis) AS "Row Number"
FROM CDN.WypElementy
JOIN CDN.Wyplaty ON WPL_WplId = WPE_WplId
WHERE WPL_LplId = #filtr_LookupListaPlac_ID#
GROUP BY WPL_LplId, WPE_PraId, WPE_NalFis, WPE_WplId) AS T
WHERE "Row Number" = 1 AND WPE_PraId = PRI_PraId)

17. Rejestr VAT. Kolumna do jakiego dziennika został zapis z rejestru zaksięgowany oraz jaki ma numer w dzienniku

Potrzebne pola znajdują się w tabeli CDN.DekretyNag. Na oknie personalizacji listy w sekcji Tabele użytkownika należy połączyć powyższe tabele aby mieć dostęp do pól związanych z dziennikami. W związku z powyższym w kolumnie Nazwa tabeli podajemy tabelę CDN.DekretyNag a w kolumnie Instrukcja łączenia wprowadzamy pola klucze łączące obie tabele VaN_DekId = DeN_DeNId zgodnie ze strukturą bazy danych. Teraz w sekcji Kolumny dostępne z aktualnie wybranych tabel pojawią się pola dostępne z tabeli CDN.DekretyNag. Należy odnaleźć pole DeN_Dziennik i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny. Tak samo dla kolumny DeN_NrKsiegi.

18. Rejestr VAT. Kolumny: forma płatności, termin, kwota zaksięgowania do KPiR-kwota, data księgowania, numer korekty, numer dziennika cząstkowego

Forma płatności -  należy skorzystać z dostępnej na liście kolumny: Fpl_Nazwa

Termin -  należy skorzystać z dostępnej na liście kolumny: VaN_Termin

Kwota zaksięgowana do KPiR -  Kwota:   Należy w sekcji Tabele użytkownika wykonać złączenie do tabeli CDN.ZapisyKPR po polach VaN_KPRID=KpR_KPRID. Teraz w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:

KPR_Sprzedaz+KPR_Pozostale+KPR_Towary+KPR_Uboczne+KPR_Reklama+KPR_Wynagrodz+KPR_Inne+KPR_Zaszlosci

Data księgowania - należy skorzystać z dostępnej na liście kolumny: KPR_DataOpe

Numer korekty - należy skorzystać z dostępnej na liście kolumny: VaN_Korekta

Numer dziennika cząstkowego - Należy w sekcji Tabele użytkownika wykonać złączenie do tabeli CDN.DekretyNag po polach VaN_DekID=DeN_DeNID. Teraz w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:
DeN_Dziennik+'/'+CONVERT(varchar(20),DeN_NrDziennika)

19. Lista not odsetkowych, ponagleń zapłaty, potwierdzeń sald. Kolumna kod podmiotu

Kod podmiotu -  należy skorzystać z dostępnej na liście kolumny: Pod_Kod

20. Lista dokumentów rozliczonych. Kolumna pokazująca czy rozliczenie zostało uwzględnione na dokumencie kompensaty

Należy w sekcji Tabele użytkownika wykonać złączenie do tabeli CDN.KompensatyElem po polach BrK_BrkId=Kpe_BrkId. Teraz w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:
CASE Brk_BrkId WHEN Kpe_BrkId THEN 'Tak' ELSE '' END

21. Lista środków trwałych. Kolumny: metoda amortyzacji, opis

Metoda amortyzacji - w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych:
CASE SrT_Metoda WHEN 1 THEN 'Liniowa' WHEN 2 THEN 'Degresywna' WHEN 3 THEN 'Jednorazowy' WHEN 4 THEN 'Naturalna' WHEN 5 THEN 'Nie amortyzowany' ENDOpis - należy skorzystać z dostępnej na liście kolumny: Srt_Opis.

22. Lista dokumentów środków trwałych. Kolumny: osoba przekazująca, osoba przyjmująca, miejsce użytkowania przekazujące, miejsce użytkowania przyjmujące

Osoba przekazująca - należy skorzystać z dostępnej na liście kolumny: SrH_PrcImieNazwisko1

Osoba przyjmująca - należy skorzystać z dostępnej na liście kolumny: SrH_PrcImieNazwisko2

Miejsce użytkowania przekazujące - należy skorzystać z dostępnej na liście kolumny: SrH_MiejsceUzytkowania1

Miejsce użytkowania przyjmujące - należy skorzystać z dostępnej na liście kolumny: SrH_MiejsceUzytkowania2

23. Lista ewidencji dodatkowej. Kolumna kod kategorii

Kod kategorii: Należy w sekcji Tabele użytkownika wykonać złączenie do tabeli CDN. Kategorie po polach EDN_KatID=Kat_KatID. Teraz w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych Kat_KodSzczegol

24. Lista zleceń serwisowych. Kolumny: nazwa urządzenia, opis urządzenia, priorytet zlecenia

Nazwa urządzenia - należy skorzystać z dostępnej na liście kolumny: SrU_Nazwa

Opis urządzenia - należy skorzystać z dostępnej na liście kolumny: SrU_Opis

Priorytet zlecenia - w sekcji „Kolumny użytkownika” dodać kolumnę o instrukcji pobierania danych:
CASE SrZ_Priorytet WHEN 1 THEN 'najwyższy' WHEN 2 THEN 'wysoki' WHEN 3 THEN 'niski' WHEN 4 THEN 'najniższy' END

25. Lista biblioteki dokumentów. Kolumny: schemat obiegu oraz etap bieżący

Schemat obiegu - należy skorzystać z dostępnej na liście kolumny: DNV_ProcesKod

Etap bieżący - Należy w sekcji Tabele użytkownika wykonać złączenie do bazy konfiguracyjnej i tabeli CDN. SekEtapy. W kolumnie Nazwa tabeli należy wprowadzić [CDN_KNF_Konfiguracja].[CDN].[SekEtapy] a w kolumnie Instrukcja łączenia wprowadzić DNV_EtapBiezacyLP=SE_SEID. Teraz w sekcji Kolumny użytkownika skorzystać z dostępnej na liście kolumny: SE_Symbol

26. Zlecenie serwisowe. Zakładka Części. Kolumna z numerem dokumentu wydającego część

W sekcji Tabele użytkownika należy wykonać złączenie do trzech tabel:

  • CDN.TraElemRelacje po polach TeR_ParentId = SrC_SrCId and TeR_ParentTyp = 902,
  • CDN.TraElem po polach TrE_TrEId = TeR_ChildId,
  • CDN.TraNag po polach TrN_TrNId = TrE_TrNId.

Następnie w sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych TrN_NumerPelny.

27. Oferta Handlowa. Dodanie kolumny zawierającej cenę zakupu w liście elementów

W sekcji Tabele użytkownika należy wykonać złączenie do jednej tabeli : CDN.TwrCeny

W polu instrukcja łączenie wpisujemy TwC_TwCNumer=1 and TwC_TwrID =TwrId

W obszarze Kolumny użytkownika dodajemy nową kolumnę Cena Zakupu o instrukcji TwC_Wartosc

28. Dodanie na dokumentach handlowo magazynowych kolumny: Ilość dostępna i braki towaru, na magazynie z dokumentu i z datą wystawienia dokumentu

Na oknie konfiguracji kolumn dodatkowych dodajemy w obszarze dodatkowych tabel tabelę CDN.TraNag z łączem UsrA.Trn_TrnID = Tre_TrnID

Następnie w oknie dodatkowych kolumn dodajemy kolumnę Ilość dostępna:
(select case when TwI_Ilosc - TwI_Rezerwacje >0 then TwI_Ilosc - TwI_Rezerwacje else 0 end from
CDN.TwrIlosci B
where
B.TwI_TwrId = Tre_TwrId and
B.TwI_MagId = TrE_MagId --MagID
And B.TwI_Data = (
Select Top 1 H.TwI_Data From CDN.TwrIlosci H Where H.TwI_TwrId = B.TwI_TwrID --A.Twr_TwrId
and H.TwI_MagId = TrE_MagId --magId
And H.TwI_Data <= TrN_DataDok --'2016-03-10'
Order By H.TwI_Data Desc ))

A dla kolumny Braki:
(select TwI_Braki from
CDN.TwrIlosci B
where
B.TwI_TwrId = Tre_TwrId and
B.TwI_MagId = TrE_MagId --MagID
And B.TwI_Data = (
Select Top 1 H.TwI_Data From CDN.TwrIlosci H Where H.TwI_TwrId = B.TwI_TwrID --A.Twr_TwrId
And H.TwI_MagId = TrE_MagId --magId
And H.TwI_Data <= TrN_DataDok --'2016-03-10'
Order By H.TwI_Data Desc ))

29. Formularz dokumentu handlowo-magazynowego – ostatnia cena zakupu, data ostatniej dostawy oraz średnia cena zakupu

Ostatnia cena zakupu:

Należy dodać tabelę CDN.TwrCeny z łączeniem Tre_TwrId = Twc_TwrId and Twc_TwCNumer = 1

Instrukcja pobierania danych dla kolumny ma postać:

TwC_Wartosc

Data ostatniej dostawy:

Należy dodać tabelę CDN.TraSElem z łączeniem Tre_TwrId = Trs_TwrId

Instrukcja pobierania danych dla kolumny ma postać:

(select MAX(trs_dataope) from cdn.traselem where trs_typ = 1)

Średnia cena zakupu:

Należy dodać tabelę CDN.TraSElem z łączeniem Tre_TwrId = Trs_TwrId

Instrukcja pobierania danych dla kolumny ma postać:

(select CONVERT(decimal(10,2), AVG(trs_cena)) from cdn.traselem where trs_typ = 1)

30. Okno historii Towaru - kolumna opis dokumentu

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
(Select Trn_Opis from cdn.TraNag TRN where TRN.TrN_TrNId = _DATASOURCE_.TrNId)

31. Formularz dokumentu handlowo-magazynowego - kolumna wartość atrybutu pozycji

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych

STUFF(
(SELECT ', ' +
CASE trA_Wartosc
WHEN '' THEN '{pusty}'
ELSE
CASE DEA.DeA_Format
WHEN 4 THEN
CAST(FORMAT(DATEADD(DAY,CAST(trA_Wartosc AS INT),'1800/12/28'),'yyyy-MM-dd') AS NVARCHAR)
ELSE TrA_Wartosc
END
END
FROM cdn.TraElemAtr TRA
LEFT JOIN cdn.DefAtrybuty DEA ON TRA.TrA_DeAId = DEA.DeA_DeAId
WHERE TRA.TrA_Kod='KOD_ATRYBUTU' AND
TRA.TrA_TrEID = 1
FOR XML PATH (''))
,1,2,'')

 

gdzie w miejsce KOD_ATRYBUTU trzeba wprowadzić konkretny kod

32. Lista dokumentów w Handlu. Sumaryczna waga dokumentu

Na karcie towaru można podać jego wagę, a informacja ta jest zapisywana w tabeli CDN.Towary. Aby wyświetlić na liście sumaryczną wagę dla danego dokumentu należy skorzystać z poniższego zapytania:

(SELECT CAST(SUM(TRE.TrE_Ilosc * TWR.Twr_WagaKG) as numeric(36,4)) FROM CDN.TraElem TRE LEFT JOIN CDN.Towary TWR on TWR.Twr_TwrId = TRE.TrE_TwrId WHERE TRE.Tre_TrNID = A.Trn_TrnId)

33. Formularz dokumentu HaMag. Sumaryczna waga pozycji

Na karcie towaru można podać jego wagę, a informacja ta jest zapisywana w tabeli CDN.Towary. Aby wyświetlić na formularzu dokumentu sumaryczną wagę dla danej pozycji, należy skorzystać z poniższego zapytania:

(SELECT CAST(_DATASOURCE_.TrE_Ilosc * TWR.Twr_WagaKG as numeric(36,4)) FROM cdn.Towary TWR WHERE TWR.Twr_TwrId = _DATASOURCE_.TrE_TwrId)

34. Lista zgłoszeń przewozu towaru SENT – Kod CN.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

STUFF(
(
SELECT ', ' + CAST(SNEL_KodCN AS VARCHAR(MAX))
FROM CDN.SentElement WHERE SNEL_SentID = Sent_SentID

FOR XML PATH('')
) ,1,2,'' )

35. Wyświetlanie na liście Rezerwacji Odbiorcy informacji, czy do zamówienia ma być wystawiony Paragon/Faktura.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(CASE A.TrN_eSklepRodzajDokumentu WHEN 1 THEN 'Paragon' WHEN 2 THEN 'Faktura' ELSE '' END)

36. Wyświetlanie na liście Wydań Zewnętrznych informacji, czy do powiązanego z nim zamówienia (Rezerwacji Odbiorcy) ma być wystawiony Paragon/Faktura.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(SELECT
CASE TRN.TrN_eSklepRodzajDokumentu
       WHEN 1 THEN 'Paragon'
       WHEN 2 THEN 'Faktura'
       ELSE '' END
FROM CDN.Tranag TRN
where TRN.TrN_TrNID = (Select top 1 ISNULL(TrN_TrnID,0) 
from cdn.Powiazania(A.Trn_TrnID,306)
where TrN_TypDokumentu = 308 order by Trn_DataOpe))

37.Wyświetlanie na listach dokumentów numerów powiązanych dokumentów Zlecenia Nadania Przesyłek.

  • Kolumna wyświetla wszystkie zlecenia rozdzielone przecinkami.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

Dla dokumentów handlowo-magazynowych:

 (SELECT SZL.SZL_NumerPelny + ', ' FROM CDN.SenditZleceniePrzesylki SZL
WHERE A.Trn_TrnID IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))
and SZL_DokZrodloweTyp = A.Trn_TypDokumentu
ORDER BY SZL.SZL_SZLID FOR XML PATH (''))

Dla dokumentów Zleceń serwisowych:

 (SELECT SZL.SZL_NumerPelny + ', ' FROM CDN.SenditZleceniePrzesylki SZL
WHERE A.SrZ_SrZId (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))
and SZL_DokZrodloweTyp = 900
ORDER BY SZL.SZL_SZLID FOR XML PATH (''))
  • Kolumna wyświetla pierwsze powiązane zlecenie wg ID, a po najechaniu na ten numer wszystkie powiązane.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

Dla dokumentów handlowo-magazynowych:

 (SELECT SZL.SZL_NumerPelny + char(10) FROM CDN.SenditZleceniePrzesylki SZL
WHERE A.Trn_TrnID IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))
and SZL_DokZrodloweTyp = A.Trn_TypDokumentu
ORDER BY SZL.SZL_SZLID FOR XML PATH (''))

Dla dokumentów Zleceń serwisowych:

(SELECT SZL.SZL_NumerPelny + char(10) FROM CDN.SenditZleceniePrzesylki SZL
WHERE A.SrZ_SrZId IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))
and SZL_DokZrodloweTyp = 900
ORDER BY SZL.SZL_SZLID FOR XML PATH (''))

38.Lista Faktur Sprzedaży oraz Faktur Zakupu. Wyświetlanie rozliczających dokumentów KP/KW.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

ISNULL(STUFF((SELECT '# ' + CASE WHEN BRK_LDokTyp=1 AND BRK_LDokID=BZd_BZdID THEN
BRK_PNumer ELSE BRK_LNumer END
FROM cdn.BnkZdarzenia A JOIN
cdn.BnkRozKwoty B ON (B.BRK_LDokTyp=1 AND B.BRK_LDokID=A.BZd_BZdID OR
B.BRK_PDokTyp=1 AND B.BRK_PDokID=A.BZd_BZdID)
WHERE ((((BZd_DokumentTyp = 1 AND BZd_DokumentID = TrN_TrNID)))) FOR XML
PATH('')),1,1,''),'nierozliczony')

39.Lista Faktur Sprzedaży oraz Faktur Zakupu. Wyświetlanie daty rozliczenia dokumentu.

(ISNULL((Select DataRoz=STUFF( (SELECT ', ' + cast(Bzd_dataRoz as nvarchar(25))
From CDN.BnkZdarzenia T1 WHERE T1.BZd_DokumentID = T2.BZd_DokumentID
FOR XML PATH ('')), 1, 1, '')
FROM CDN.BnkZdarzenia T2 Where BZd_DokumentTyp = 1
And BZd_DokumentId = TrN_TrNId group
by BZd_DokumentID),' nierozliczony'))

40. Lista Faktur Sprzedaży oraz Paragonów. Wyświetlanie powiązanych dokumentów Wydania Zewnętrznego.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

STUFF((select ', ' + POW.TrN_NumerPelny from CDN.Powiazania(A.Trn_TrnId,
A.TrN_TypDokumentu) POW where POW.TrN_TypDokumentu = 306 
FOR XML PATH('')), 1, 2, '')

41. Lista Faktur Sprzedaży oraz Wydań Zewnętrznych. Wyświetlanie powiązanych korekt.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(select TRN.TrN_NumerPelny + ', ' from cdn.tranag TRN where 
TrN_ZwrId = A.TrN_TrNID AND TRN.TrN_Anulowany = 0 for xml path (''))

42. Lista pracowników. Kolumna z wyszczególnioną datą ważności badań okresowych, która upłynęła lub upłynie w okresie 30 dni od daty

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(select PRE_WaznoscBadanOkres from cdn.pracetaty a where pri_praid = a.pre_praid 
and year(a.pre_datado) = 2999)

W celu wyróżnienia kolorem daty ważności badań okresowych, która upłynęła lub upłynie w okresie 30 dni od daty aktualności w Stylach wartości należy dodać poniższy warunek:

(select PRE_WaznoscBadanOkres from cdn.pracetaty a where pri_praid = a.pre_praid 
and year(a.pre_datado) = 2999) <= #filtr_dtDataAkt# + 30 
AND (select PRE_WaznoscBadanOkres from cdn.pracetaty a where pri_praid = 
a.pre_praid and year(a.pre_datado) = 2999) >= #filtr_dtDataAkt# -30

43. Lista pracowników. Kolumna z wyszczególnioną datą zwolnienia, która upłynęła lub upłynie w okresie 5 dni od daty aktualności.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid 
and year(a.pre_datado) = 2999)

W celu wyróżnienia kolorem daty zwolnienia, która upłynęła lub upłynie w okresie 5 dni od daty aktualności w Stylach wartości należy dodać poniższy warunek:

(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid 
and year(a.pre_datado) = 2999) <= #filtr_dtDataAkt# + 5 AND 
(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid 
and year(a.pre_datado) = 2999) >= #filtr_dtDataAkt# -5

44. Lista pracowników. Kolumna z datą rozwiązania nierozliczonej umowy, która zakończyła się 10 dni temu w stosunku do daty aktualności.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:

(select top 1 umw_datado from cdn.umowy where umw_splacona < UMW_Brutto 
and UMW_Praid = Pra_Praid and UMW_DataDo <= #filtr_dtDataAkt# - 10)

45. Lista pracowników. Kolumna z wyszczególnioną datą ważności uprawnienia Szkolenie BHP (UPR_UprId=52), która upłynęła lub upłynie w okresie 30 dni od daty aktualności.

Potrzebne pole znajduje się w tabeli CDN.Uprawnienia. Na oknie personalizacji listy w sekcji Tabele użytkownika należy dołączyć powyższą tabelę, aby mieć dostęp do jej pól. W związku z tym w kolumnie Nazwa tabeli dodajemy tabelę CDN.Uprawnienia, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek dla uprawnienia o Id=52, wprowadzamy zatem:

upr_praid=pra_praid and upr_dkmid=52

W sekcji Kolumny dostępne z aktualnie wybranych tabel pojawią się pola dostępne z tabeli CDN.Uprawnienia. Należy odnaleźć pole UPR_KursTermin i przeciągnąć do sekcji Kolumny użytkownika oraz nadać nazwę dla kolumny.
W celu wyróżnienia kolorem daty ważności uprawnienia, która upłynęła lub upłynie w okresie 30 dni od daty aktualności w Stylach wartości należy dodać poniższy warunek:

UPR_KursTermin <= #filtr_dtDataAkt# + 30 AND UPR_KursTermin>= 
#filtr_dtDataAkt# -30