Wspólne

OPT088 - Pliki JPK_V7 – przygotowanie dokumentów i generacja pliku

Data aktualizacji: 08-03-2024

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 wprowadziło 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 składają oni 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 muszą już 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. Od wersji programu Comarch ERP Optima 2022.2.1 umożliwiono sporządzenie pliku JPK_V7(2) zgodnie z nowym wzorcem dokumentu elektronicznego obowiązującym za okres rozliczenia VAT od stycznia 2022.
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 lub handlowych (Faktury, Handel lub Handel Plus).
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 i pełnomocnictwa 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. Zaznaczenie znajdującego się na karcie operatora parametru Prawo do odblok. Wysłanej e-Deklaracji umożliwia odblokowanie pliku JPK_V7 o statusie Wysłano/odebrano UPO lub Błąd przetwarzania. Służy do tego opcja Odblokuj JPK_V7 dostępna po kliknięciu prawym przyciskiem myszy na pliku. Dotyczy programu Comarch ERP Optima od wersji 2023.1.1. 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 o zawartości alkoholu powyżej 1,2%, piwa oraz napojów alkoholowych będących mieszaniną piwa i napojów bezalkoholowych, w których zawartość alkoholu przekracza 0,5% (CN od 2203 do 2208)
  • GTU_02 – dostawa towarów, o których mowa w art. 103 ust. 5aa ustawy
  • GTU_03 – dostawa olejów opałowych nieujętych w lit. b, olejów smarowych i pozostałych olejów (CN od 2710 19 71 do 2710 19 83 i CN od 2710 19 87 do 2710 19 99, z wyłączeniem smarów plastycznych zaliczonych do kodu CN 2710 19 99), olejów smarowych (CN 2710 20 90) oraz preparatów smarowych (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, 8, 59–63, 65, 66, 69 i 94–96 załącznika nr 15 do ustawy, a także folii typu stretch określonej w poz. 9 tego załącznika
  • GTU_07 – dostawa pojazdów oraz części (CN od 8701 do 8708)
  • GTU_08 – dostawa metali szlachetnych oraz nieszlachetnych – wyłącznie określonych w poz. 1 i 1a 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 produktów leczniczych, środków spożywczych specjalnego przeznaczenia żywieniowego oraz wyrobów medycznych – wyłącznie 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 2021 r. poz. 974 i 981)
  • GTU_10 – dostawa budynków, budowli i gruntów oraz ich części i udziałów w prawie własności, w tym również zbycia praw, o których mowa w art. 7 ust. 1 ustawy
  • 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 2021 r. poz. 332 i 1047)
  • GTU_12 –  świadczenie usług o charakterze niematerialnym – wyłącznie: doradczych, w tym doradztwa prawnego i podatkowego oraz doradztwa związanego z zarządzaniem (PKWiU 62.02.1, 62.02.2, 66.19.91, 69.20.3, 70.22.11, 70.22.12, 70.22.13, 70.22.14, 70.22.15, 70.22.16, 70.22.3, 71.11.24, 71.11.42, 71.12.11, 71.12.31, 74.90.13, 74.90.15, 74.90.19), w zakresie rachunkowości i audytu finansowego (PKWiU 69.20.1, 69.20.2), prawnych (PKWiU 69.1), zarządczych (PKWiU 62.03, 63.11.12, 66.11.19, 66.30, 68.32, 69.20.4, 70.22.17, 70.22.2, 90.02.19.1), firm centralnych (PKWiU 70.1), marketingowych lub reklamowych (PKWiU 73.1), badania rynku i opinii publicznej (PKWiU 73.2), w zakresie badań naukowych i prac rozwojowych (PKWiU 72) oraz w zakresie pozaszkolnych form edukacji (PKWiU 85.5)
  • GTU_13 – świadczenia usług transportowych i gospodarki magazynowej – (PKWiU 49.4, 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 (kod obowiązujący do czerwca 2021)
  • EE – świadczenie usług telekomunikacyjnych, nadawczych i elektronicznych, o których mowa w art. 28k ustawy (kod obowiązujący do grudnia 2021)
  • 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 (kod obowiązujący do czerwca 2021)
  • WSTO_EE – wewnątrzwspólnotowa sprzedaż na odległość towarów, które w momencie rozpoczęcia ich wysyłki lub transportu znajdują się na terytorium kraju, oraz świadczenie usług telekomunikacyjnych, nadawczych i elektronicznych, o których mowa w art. 28k ustawy, na rzecz podmiotów niebędących podatnikami, posiadających siedzibę, stałe miejsce zamieszkania lub miejsce pobytu na terytorium państwa członkowskiego innym niż terytorium kraju (kod obowiązujący od stycznia 2022)
  • IED – dostawa towarów, o której mowa w art. 7a ust. 1 i 2 ustawy, dokonana przez podatnika ułatwiającego tę dostawę, który nie korzysta z procedury szczególnej, o której mowa w dziale XII w rozdziale 6a lub 9 ustawy lub w odpowiadających im regulacjach, dla której miejscem dostawy jest terytorium kraju (kod obowiązujący od stycznia 2022)
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 (kod obowiązujący do czerwca 2021)
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 o sprzedaż z kas rejestrujących
  • WEW – dowód 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
  • Znacznik techniczny ZakupVAT_Marza – nabycia towarów i usług związanych ze sprzedażą opodatkowaną na zasadzie marży zgodnie z art. 119 i art. 120 ustawy
  Lista kodów JPK_V7 wyświetlana na dokumentach zależy od daty rozliczenia w VAT określonego dokumentu i wynika z okresu obowiązywania danego kodu. Dla dokumentów rozliczanych w VAT metodą kasową pod uwagę brana jest data bieżąca w programie. W przypadku karty kontrahenta, kategorii oraz pozycji cennika możliwość przypisania konkretnych domyślnych kodów również zależy od ustawionej w programie daty bieżącej. Podobnie jest w przypadku operacji seryjnych dot. dodawania / usuwania kodów JPK_V7 – widoczność poszczególnych kodów uzależniona jest od daty bieżącej.

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 oraz znacznika technicznego ZakupVAT_Marza,, 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 lub znacznik techniczny ZakupVAT_Marza 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, kody towarowe i znacznik techniczny ZakupVAT_Marza z kopiowanej karty. Podczas łączenia kart kontrahentów następuje dopisywanie procedur i znaczniku ZakupVAT_Marza z kontrahenta podrzędnego na kartę kontrahenta głównego. Informacje o przypisanych do kontrahenta kodach towarowych, 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, procedur i znacznikiem technicznym ZakupVAT_Marza 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, procedur i znacznikiem technicznym ZakupVAT_Marza 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.

Na liście kontrahentów dostępna jest domyślnie widoczna kolumna Kody JPK_V7 wyświetlająca przypisane do danego kontrahenta domyślne kody.

3.2.2. Formularz kategorii

Na formularzu kategorii znajduje się sekcja Kody JPK_V7. Na kategoriach o typie Koszty istnieje możliwość wskazania typu dokumentu i procedur dotyczących zakupu, dowolnych kodów towarowych oraz znacznika technicznego ZakupVAT_Marza. Na kategoriach o typie Przychody istnieje możliwość wskazania typu dokumentu i procedur dotyczących sprzedaży oraz dowolnych kodów towarowych. Możliwe jest dodanie więcej niż jednego kodu towarowego i więcej niż jednej procedury oraz tylko jednego typu dokumentu. Kody JPK_V7 uzupełnione na formularzu kategorii ogólnej nie są przenoszone na formularz dodanej do niej kategorii szczegółowej. Jeżeli użytkownik chce, aby kody JPK_V7 uzupełnione na formularzu kategorii ogólnej zostały przeniesione na wszystkie dodane do niej kategorie szczegółowe, może skorzystać w menu kontekstowym z operacji seryjnej Kopiuj kody JPK_V7 na podkategorie. Opcja ta dostępna jest tylko dla kategorii ogólnych.
Uwaga
W związku z wprowadzeniem funkcji przenoszenia kodów JPK_V7 z formularza kategorii na dokument w rejestrze VAT zalecamy wybór jednego miejsca uzupełniania domyślnych kodów JPK_V7 – albo kartę kontrahenta albo formularz kategorii.

3.2.3. Pozycja cennika

Na karcie pozycji cennikowej na zakładce [Dodatkowe] znajduje się sekcja JPK_V7 z polem Domyślny kod. Pole jest rozwijalną listą na której można wybrać jeden kod towarowy bądź procedurę znacznik techniczny ZakupVAT_Marza które mają za zadanie dodatkowo opisać dokument przesyłany do pliku JPK_V7. Wyświetlana lista pozycji zawiera te same kody towarowe, procedury i znacznik techniczny ZakupVAT_Marza 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ę przenoszony jest domyślny kod 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, procedury bądź znacznika technicznego ZakupVAT_Marza 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.4. 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:
  • Sprzedaż:
    • Faktur Sprzedaży,
    • Faktur VAT Marża,
    • Faktur Zaliczkowych, Faktur Finalnych,
    • Paragonów,
    • Faktur do Paragonów,
    • Dowodów Wewnętrznych
  • Zakup:
    • Faktur Zakupu,
    • Korekt do Faktury Zakupu,
    • Dowodów Wewnętrznych

Na zakładce [Atrybuty/JPK] na dokumentach sprzedaży znajduje się tabela z kodami towarowymi i procedurami wymaganymi w pliku JPK_V7. Dla dokumentów zakupu nie ma możliwości wskazania kodu JPK_V7 o rodzaju Kod towarowy.

Na zakładkę [Atrybuty/JPK] przenoszą się 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.
Uwaga
Kody towarowe z formularza kontrahenta oraz towaru przenoszone są tylko na dokumenty sprzedażowe, na dokumenty zakupowe kody towarowe nie są przenoszone.
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 Start/Konfiguracja/ Program/ Użytkowe/ Operatorzy – Karta operatora/ zakładka [Ogólne]).
Uwaga
Faktury Sprzedaży wystawione w procedurze OSS nie są uwzględniane w pliku JPK_V7. Na takie dokumenty nie są przenoszone kody JPK_V7 z towarów i z karty kontrahenta, nie można również wskazać kodów JPK_V7 ręcznie.
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 o sprzedaż z kas rejestrujących
    • WEW – dowód 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 – dowód 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
    • Znacznik techniczny ZakupVAT_Marza – nabycia towarów i usług związanych ze sprzedażą opodatkowaną na zasadzie marży zgodnie z art. 119 i art. 120 ustawy
Uwaga
Na dokumencie należy wskazać jeden kod JPK_V7 opisujący typ dokumentu. Jeśli wskazanych zostanie więcej kodów, wówczas przy próbie zapisu dokumentu pojawi się komunikat: Na dokumencie wybrano zbyt wiele kodów JPK_V7 opisujących typ dokumentu. Wybierz tylko jeden kod opisujący typ dokumentu.
Możliwe jest seryjne dodawanie oraz usuwanie kodów JPK_V7 z poziomu list:
  • Faktury Sprzedaży,
  • Faktury Zakupu,
  • Paragony,
  • Dowody Wewnętrzne Sprzedaży,
  • Dowody 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 Start/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 Na dokumentach wystawionych od lipca 2021 kod MPP nie jest przenoszony na dokumenty. Paragony, zafiskalizowane Faktury Sprzedaży

Dla wszystkich wystawionych w programie Paragonów nadawana jest procedura RO. Dla Faktur Sprzedaży zafiskalizowanych lub powstałych z przekształcenia Paragonu nadawana jest procedura FP. Kod FP nie jest przenoszony na korektę utworzoną do zafiskalizowanej faktury.

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. Jeśli na dokumencie znajdują się tylko pozycje o typie Usługa (bez pozycji o typie Towar), przy próbie zapisu pojawi się komunikat: Zapisujesz dokument z kodem IMP. Kod ten powinien być stosowany do importu towarów. Na dokumencie nie ma pozycji z rodzajem towar. Czy chcesz, aby program usunął kod IMP? Zaakceptowanie komunikatu powoduje usunięcie z dokumentu kodu IMP. Wybór opcji Nie skutkuje pozostawieniem kodu IMP na dokumencie. Zaznaczenie w oknie komunikatu opcji Zapamiętaj odpowiedź i nie pokazuj więcej powoduje, że komunikat nie pojawi się ponownie dla danego operatora. Dowody wewnętrzne
  • Procedura WEW dodawana jest automatycznie na dokument Dowodu Wewnętrznego Sprzedaży (FWS) tworzony z poziomu menu Handel/ Inne (Handel)/ Dowody wewnętrzne Sprzedaży. Nie jest dodawana na FWS powstałą z przekształcenia Faktury Zakupu (FZ).
  • Na Dowód Wewnętrzny Sprzedaży powstały z przekształcenia Faktury Zakupu nie są przenoszone kody JPK_V7 z FZ. Kody z FZ są przenoszone tylko na Dowód Wewnętrzny Zakupu.
  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. Wyjątkiem jest korekta do Faktury Sprzedaży, na którą nie jest przenoszony kod FP.
  • Na Fakturę Sprzedaży powstałą z Paragonu, przenoszone są procedury 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 kody z kopiowanego dokumentu.

3.2.5. 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ą:
  • na dokumencie sprzedażowym:
    • kody towarowe,
    • procedury,
    • typy dokumentów.
  • na dokumencie zakupowym:
    • procedury,
    • typy dokumentów,
    • znacznik techniczny.
Mogą one zostać:
  • dodane ręcznie bezpośrednio na formularzu dokumentu w rejestrze VAT,
  • przeniesione z karty kontrahenta,
  • przeniesione z kategorii,
  • 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, typów dokumentów dotyczących zakupu oraz znacznika technicznego ZakupVAT_Marza. 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. Nie można dodać więcej niż jednego kodu JPK_V7 określającego typ dokumentu. Podczas próby dodania na dokumencie w rejestrze VAT zakupu/ sprzedaży więcej niż jednego kodu dotyczącego typu dokumentu pojawia się komunikat: Zaznaczono zbyt wiele kodów dla typów dokumentów. Wybierz jeden kod opisujący typ dokumentu. Jeżeli na dokumencie dodano we wcześniejszej wersji programu jeden lub więcej typów dokumentu to po dodaniu kolejnego typu dokumentu wcześniejsze typy są usuwane i pozostaje tylko jeden typ dokumentu. Jeżeli w wyniku modyfikacji dokumentu dodany zostanie automatycznie typ dokumentu to dodane wcześniej typy dokumentu są również usuwane. Jeżeli na dokumencie z kodem RO dodatkowo wybrane są kody JPK określające procedury dla sprzedaży, są one przenoszone do części ewidencyjnej pliku JPK_V7. Kody towarowe (GTU) wybrane na dokumencie z kodem RO nie są przenoszone do pliku.
Uwaga

W przypadku plików JPK_V7 generowanych za okresy od lipca 2021 do grudnia 2021 nastąpiły zmiany w przenoszeniu kodów.

Kod MPP nie jest już przenoszony do pliku, nawet jeżeli znajduje się na dokumencie w Rejestrze VAT.

Kod SW nie jest już przenoszony do pliku; jeżeli znajduje się na dokumencie w Rejestrze VAT, w pliku JPK_V7 zostanie zamieniony na kod EE.

Kody GTU wskazane na dokumencie nie są przenoszone do pliku JPK_V7 jeżeli na dokumencie wybrany jest również kod WEW.

Jeżeli na dokumencie z kodem RO dodatkowo wybrane są kody JPK określające procedury dla sprzedaży, nie są one przenoszone do części ewidencyjnej pliku JPK_V7.

W przypadku plików JPK_V7(2) generowanych za okresy od stycznia 2022 kod EE nie jest już przenoszony do pliku, nawet jeżeli znajduje się na dokumencie w Rejestrze VAT. Jeżeli na dokumentach z okresem rozliczenia w VAT od stycznia 2022 będą znajdowały się kody WSTO_EE i IED, zostaną przeniesione do pliku JPK_V7(2). Kody JPK znajdujące się na kontrahencie, kategorii lub pozycji cennika są przenoszone na dokument bez względu na jego datę. Również w przypadku importu dokumentów z plików JPK_V7, VAT_R (Comma) oraz za pomocą pracy rozproszonej, przenoszone są wszystkie kody JPK znajdujące się w pliku dla importowanego dokumentu bez względu na jego datę.
Jeżeli w bazie istnieją już dokumenty zawierające jednocześnie więcej niż jeden kod dotyczący typu dokumentu, podczas przeliczania pliku JPK_V7 pojawia się komunikat uniemożliwiający utworzenie pliku: Plik JPK_V7 nie może być naliczony. Istnieją transakcje zawierające więcej niż jeden typ dokumentu na zakładce Kody JPK_V7. Po zatwierdzeniu komunikatu pojawia się Lista dokumentów z więcej niż jednym typem dokumentu JPK_V7. Użytkownik powinien na każdym z tych dokumentów pozostawić tylko jeden kod dotyczący typu dokumentu. Na formularz dokumentu w rejestrze VAT na zakładkę [JPK] do sekcji Kody JPK_V7 automatycznie przenoszone są kody JPK_V7 uzupełnione na formularzu kategorii wybranej w nagłówku dokumentu oraz w pozycjach dokumentu (w kolumnie Kategoria oraz Kategoria 2). Jeżeli na dokumencie dodano wcześniej dany kod JPK_V7,  nie jest on dublowany. Po wyborze kontrahenta na dokumencie, do sekcji Kody JPK_V7 automatycznie przenoszone są kody towarowe, procedury oraz znacznik techniczny ZakupVAT_Marza, uzupełnione na karcie tego kontrahenta na zakładce [JPK]. Jeżeli na formularzu kontrahenta uzupełniono kody JPK_V7 oraz wskazano domyślną kategorię sprzedaży/ zakupu z uzupełnionymi kodami JPK_V7 to po wyborze takiego kontrahenta na dokumencie w rejestrze VAT przenoszone są kody JPK_V7 z karty kontrahenta i formularza kategorii (kody nie są dublowane). 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 lub kategorii na dokumencie powoduje usunięcie kodów towarowych/ procedur przypisanych do kontrahenta/kategorii wybranej pierwotnie na dokumencie i przeniesienie kodów towarowych/ procedur z karty nowo wybranego kontrahenta czy kategorii. W przypadku zmiany kategorii, usuwane są tylko te kody, które nie są przypisane do innych kategorii wybranych na dokumencie. Pozycje dodane ręcznie w sekcji Kody JPK_V7 nie są usuwane przy zmianie kontrahenta lub kategorii. 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 znacznik techniczny ZakupVAT_Marza. 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. Widoczność poszczególnych kodów uzależniona jest od daty bieżącej ustawionej w programie. Istnieje możliwość zaznaczenia więcej niż jednego kodu JPK_V7, z wyjątkiem kodów dotyczącego typu dokumentu (taki kod można wskazać tylko jeden). Jeżeli podczas wykonywania operacji seryjnej Dodaj kody JPK_V7 wskazano kod dotyczący typu dokumentu, to wybrany wcześniej na dokumencie typ dokumentu jest usuwany i pozostaje tylko jeden kod określający typ dokumentu. Po zaznaczeniu wybranych kodów i kliknięciu na przycisk Dodaj kody JPK_V7 zostaną one przeniesione na podświetlony dokument/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świetlonego dokumentu/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 fiskalne Faktury fiskalne nie mające powiązania z Paragonem posiadają oznaczenie FP. Aby zostały uwzględnione również w raporcie fiskalnym, podczas przenoszenia faktury fiskalnej z modułu Handel do Rejestru VAT lub importu za pomocą pracy rozproszonej tworzony jest dokument techniczny z takimi samymi danymi, ale z opisem Zapis techniczny do rozliczenia JPK_V7 i kodem RO. Dokument ten służy do wyliczenia kwot na części deklaracyjnej pliku. Dokumentu technicznego nie można zaksięgować i nie generuje on płatności.
Uwaga
Użytkownicy ewidencjonujący zafiskalizowane Faktury Sprzedaży z pominięciem modułu Handel powinni od 1 października 2020 r. do rejestru VAT sprzedaży wprowadzać dwa dokumenty, odpowiednio z typem dokumentu FP oraz RO, jeśli nie jest on uwzględniany we wprowadzonym do Rejestru VAT raporcie fiskalnym. Zalecamy na jednym z nich zaznaczyć parametr Wewnętrzny aby nie wygenerował on płatności.
Faktura fiskalna z kodem FP uwzględniana jest wyłącznie w części ewidencyjnej pliku JPK_V7. Dokumenty z kodem FP nie są również wyświetlane w rejestrze VAT na zakładce Do VAT/JPK_V7.
Uwaga
Na dokumentach które zostały już we wcześniejszych wersjach programu przeniesione do Rejestru VAT należy zmienić kod z RO na FP oraz dodać ręcznie, zbiorczy zapis z kodem RO na łączną kwotę przeniesionych dokumentów. Innym rozwiązaniem jest usunięcie dokumentów z Rejestru VAT, usunięcie kodu RO i dodanie kodu FP na zafiskalizowanych fakturach w module Handel (można to wykonać za pomocą operacji seryjnej) a następnie ponowne przeniesienie dokumentów do Rejestru VAT.
Po dodaniu na dokumencie kodu FP (bezpośrednio na dokumencie lub za pomocą operacji seryjnej) lub po przeniesieniu z menu Handel faktury zafiskalizowanej z kodem FP, na dokumencie data rozliczenia w VAT ustawiana jest zgodnie z datą wystawienia. Dotyczy to również sytuacji, kiedy w Konfiguracji ustawiono metodę kasową lub na dokumencie zaznaczono parametr Metoda kasowa. 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. W związku z koniecznością wykazywania w odpowiedni sposób faktur do paragonów w pliku JPK_V7, w przypadku ręcznego dodawania dokumentów do Rejestrów VAT bądź importu z pliku VAT_R.txt, oprócz faktur do paragonów z kodem FP musi zostać dodany przez Użytkownika również zapis na łączną kwotę tych dokumentów z kodem RO. Płatność do takiego dokumentu najlepiej ustawić jako niepodlegającą rozliczeniu. Dokument z kodem RO można również oznaczyć jako wewnętrzny – wówczas nie wygeneruje on płatności. W przypadku przenoszenia dokumentów w ramach tej samej bazy z modułu Handel do Rejestru VAT lub importu za pomocą pracy rozproszonej, oprócz faktur do paragonów z kodem FP przenoszone są również paragony z kodem RO. Nie ma więc konieczności w takim przypadku dodawania pojedynczych paragonów lub zbiorczego raportu fiskalnego ręcznie przez Użytkownika. Zbiorcze raporty fiskalne Jeżeli paragony były dodawane w module Handel i przenoszone w ramach jednej bazy zbiorczo do Rejestrów VAT (w Konfiguracji Firmy/ Księgowość/ Parametry nie był zaznaczony parametr Przenoszenie pojedynczych paragonów do rejestru VAT), wówczas w pliku JPK_V7 każdy z takich zbiorczych dokumentów z kodem RO znajdujący się w Rejestrze VAT wykazywany jest jako osobna pozycja. Jeżeli natomiast podczas przenoszenia paragonów z modułu Handel do Rejestrów VAT wspomniany parametr o pojedynczym przenoszeniu paragonów był zaznaczony bądź dokumenty do Rejestrów VAT dodawane były ręcznie, importowane pracą rozproszoną lub z pliku VAT_R, lub jest to dokument techniczny do faktury fiskalnej, to w pliku JPK_V7 wykazywane są jako jedna sumaryczna pozycja oznaczona numerem dokumentu: Detal – dokument zbiorczy sprzedaży oraz z kontrahentem: Raport okresowy sprzedaży zafiskalizowanej. Paragony niefiskalne Paragony wystawione przez podatników zwolnionych z obowiązku posiadania kas fiskalnych powinny być wykazywane w pliku JPK_V7 z kodem WEW (zamiast RO jak w przypadku paragonów fiskalnych). Jeżeli paragony przenoszone są z modułu Handel do rejestrów VAT, należy zmienić na nich domyślnie dodawany kod RO na WEW. Można posłużyć się operacjami seryjnymi dostępnymi w rejestrach VAT (Dodaj kody JPK_V7). Po wybraniu kodu WEW, kod RO zostanie usunięty z dokumentów. Jeżeli paragony były przenoszone pojedynczo do rejestrów VAT, po zmianie kodu wykazywane są w pliku JPK_V7 jako jeden zapis zbiorczy z kodem WEW dla kontrahenta o nazwie Raport okresowy sprzedaży detalicznej oraz numerze dokumentu: Detal – dokument zbiorczy sprzedaży. Dokumenty wprowadzane ręcznie do rejestrów VAT powinny zostać wprowadzone jednym zbiorczym zapisem z kodem WEW, ponieważ nie będą agregowane w części ewidencyjnej pliku. 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. Kwoty w stawce NP z takich dokumentów wykazywane są w tagu SprzedazVAT_Marza w pliku JPK_V7 – bez względu na to, czy z takim dokumentem zwykłym istnieje powiązany dowód wewnętrzny sprzedaży rozliczenia marży. Rozliczenie marży jednostkowej, czyli wygenerowany w programie powiązany dowód wewnętrzny nie powinien mieć oznaczenia WEW. Jeśli natomiast wprowadzane jest zbiorcze rozliczenie marży jako zbiorczy dowód wewnętrzny, wówczas taki dokument powinien już posiadać kod WEW. Dokument rozliczenia marży na kwotę ujemną z kodem MR_UZ lub MR_T (dowód wewnętrzny mający zerową kwotę VAT i ujemną kwotę brutto w stawce opodatkowanej) nie jest  uwzględniany przy liczeniu części deklaracyjnej. Wykazywany jest wyłącznie w części ewidencyjnej. W przypadku dokumentu rozliczenia marży, jeżeli podczas generowania tego dokumentu podana zostanie ujemna kwota marży, zamiast domyślnie podpowiadanej dodatniej (czyli na dokumencie rozliczenia marży będzie dodatnia kwota w stawce NP) oraz:
  • suma wartości netto i VAT na dokumencie rozliczenia będzie równa 0,
  • dokument źródłowy będzie miał dodatnią kwotę w stawce NP,
  wówczas taki dokument oznaczany jest na potrzeby pliku JPK_V7 jako marża ujemna. Dokument taki nie jest wykazywany w części deklaracyjnej pliku JPK_V7 (wyłącznie w części ewidencyjnej) i nie pojawia się w Rejestrze VAT na zakładce [Do VAT/JPK_V7]. Każdy inny dokument dodany ręcznie, który nie będzie rozliczeniem marży, nawet jeżeli będzie posiadał pozycje w stawce NP i ujemną pozycję z zerową kwotą VAT, będzie traktowany jako korekta dokumentu pierwotnego, a nie rozliczenie marzy ujemnej. Dokument zakupu związanego ze sprzedażą opodatkowaną na zasadach marży powinien zostać wprowadzony do Rejestru VAT zakupu ze znacznikiem technicznym ZakupVAT_Marza. Powinien mieć zaznaczony parametr Rozliczać w VAT i  wskazany odpowiedni okres, jak również pozycję ze stawką NP z uzupełnioną kwotą brutto dotyczącą zakupu w tej procedurze. Wówczas w pliku JPK_V7 taki dokument wykazywany jest w części ewidencyjnej po stronie zakupu. Znajdują się na nim dane kontrahenta z dokumentu, wraz z jego numerem NIP, numer dokumentu oraz kwota brutto oznaczona jako ZakupVAT_Marza. Taki dokument nie jest uwzględniany przy wyliczaniu kwot na części deklaracyjnej pliku JPK_V7. W przypadku metody kasowej nie ma znaczenia fakt rozliczenia wprowadzonego w Rejestrze VAT zakupu dokumentu ze znacznikiem ZakupVAT_Marza. Jeżeli parametr Rozliczać w VAT jest zaznaczony, dokument taki jest wykazywany w pliku JPK_V7 wg domyślnej daty obowiązku podatkowego jak przy metodzie zwykłej. Odwrotne obciążenie Dokumenty zwykłe z rejestru sprzedaży VAT z rodzajem transakcji Krajowa – podatnikiem jest nabywca ze stawką NP wykazywane są w części deklaracyjnej pliku JPK_V7 w polu P_10 (Sprzedaż krajowa zwolniona od podatku) oraz w polu K_10 części ewidencyjnej. Kwalifikacja ta jest niezależna od zaznaczenia parametru Uwzględniać sprzedaż nie podlegającą VAT na VAT-7 w Konfiguracji Programu/ Księgowość/ Deklaracje. Jeżeli chodzi o transakcje zakupu objęte odwrotnym obciążeniem, dowody wewnętrzne sprzedaży z rodzajem transakcji Krajowa – podatnikiem jest nabywca wykazywane są w części deklaracyjnej pliku w polach P_31 (wartość netto) oraz P_32 (wartość VAT), jak również w części ewidencyjnej, odpowiednio w polach K_31 oraz K_32. W zakresie podatku naliczonego stosowane są ogólne zasady prezentowania odliczenia (dowody wewnętrzne zakupu wykazywane są w polach P_40 – P_43 w części deklaracyjnej pliku, jak również w części ewidencyjnej). Sprzedaż energii i gazu objętych odwrotnym obciążeniem Istnieje możliwość wykazania w pliku JPK_V7 sprzedaży i nabycia energii elektrycznej oraz gazu objętych odwrotnym obciążeniem VAT. W tym celu na dokumencie w rejestrze sprzedaży VAT na zakładce [KSeF/ JPK] w sekcji Atrybuty JPK_VAT i JPK_V7 należy wybrać atrybut JPK o kodzie SPRZ_ENERGIA_GAZ_OO i nazwie JPK_Sprz. i nabycie energii, podleg. oo. Po wybraniu tego atrybutu, kwota netto i VAT z dokumentu jest wykazywana w części deklaracyjnej pliku w polach P_31 oraz P_32 (Dostawa towarów, dla których podatnikiem jest nabywca zgodnie z art. 17 ust. 1 pkt 5 ustawy) oraz w części ewidencyjnej w polach K_31 oraz K_32. Dowody wewnętrzne Dowody wewnętrzne, wprowadzone od wersji Comarch ERP Optima 2021.4.1, w pliku JPK_V7 w polu DowodZakupu / DowodSprzedazy są wykazywane z numerem własnym z dowodu wewnętrznego. Podczas generowania pojedynczych dowodów wewnętrznych w Rejestrze VAT program domyślnie proponuje jako numery dowodów wewnętrznych numer dokumentu pierwotnego. W przypadku transakcji importu Użytkownik powinien wpisać numer dokumentu celnego. Podczas zmiany proponowanego numeru dokumentu pojawia się informacja: Uwaga! Do pliku JPK_V7 utworzone dowody wewnętrzne zostaną przeniesione z numerem dokumentu wskazanym w tym polu. Nie będą pobierane numery dokumentów źródłowych. Wyjątkiem są dowody wewnętrzne przeniesione z modułu Handel i zbiorcze dowody wewnętrzne tworzone w Rejestrach VAT, które przenoszone są do pliku z numerem dokumentu źródłowego. Automatyczne dodawanie kodów JPK_V7 Dowody wewnętrzne Pojedyncze dowody wewnętrzne wygenerowane automatycznie w programie, mające powiązanie z dokumentem z Rejestru VAT zakupu/sprzedaży, nie są oznaczane kodem WEW. Podczas generowania z poziomu Rejestru VAT sprzedaży zbiorczego dowodu wewnętrznego zakupu dla transakcji krajowych, w przypadku uzupełnienia na przynajmniej jednym z dowodów wewnętrznych sprzedaży typu dokumentu WEW, na dowód wewnętrzny zakupu dodawany jest typ dokumentu WEW. W przypadku ręcznie dodawanych dowdów wewnętrznych, niepowiązanych z dokumentem z Rejestru VAT zakupu/sprzedaży, automatycznie dodawany jest typ dokumentu o kodzie WEW. Usunięcie kodu WEW nie powoduje odznaczenia parametru Wwewnętrzny. Na dowód dodawany ręcznie przenoszone są kody towarowe/ procedury/ znacznik techniczny uzupełnione na karcie kontrahenta oraz na formularzu kategorii. Na dowód generowany automatycznie przenoszone są procedury uzupełnione na dokumencie pierwotnym, jeżeli mają zastosowanie dla określonego typu dokumentu sprzedaży/zakupu. 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. Jeżeli na dokumencie zaznaczono parametr Metoda kasowa to jest on kwalifikowany do JPK_V7 w miesiącu z daty rozliczenia lub wystawienia (w zależności, która z dat jest późniejsza). 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. Jeżeli na dokumencie są wyłącznie pozycje z rodzajem Usługi (brak jest pozycji z rodzajem Towary), wówczas przy zapisie dokumentu pojawia się informacja: Zapisujesz dokument z kodem IMP. Kod ten powinien być stosowany do importu towarów. Na dokumencie nie ma pozycji z rodzajem towar. Czy chcesz aby program usunął kod IMP? Wybór opcji Tak powoduje usunięcie kodu IMP i zapisanie dokumentu. Wybór opcji Nie powoduje zapisanie dokumentu i pozostawienie kodu IMP MPP – podzielona płatność Na dokumentach z datą rozliczenia w VAT od lipca 2021 r. nie jest automatycznie dodawana procedura MPP. Jeżeli na dokumencie z kodem MPP zmieniono datę rozliczenia w VAT na późniejszą niż czerwiec 2021 r. wówczas kod MPP jest usuwany z dokumentu po jego zapisaniu. Jeżeli na dokumencie zmieniono datę rozliczenia w VAT na wcześniejszą niż lipiec 2021 r. wówczas kod MPP jest dodawany na dokument po jego zapisaniu jeżeli na dokumencie zaznaczony jest parametr MPP – Podzielona płatność i kwota dokumentu przekracza 15 tys. zł brutto. Jeżeli kod MPP znajduje się w pliku z którego następuje import do programu to jest on przenoszony na dokument niezależnie od daty rozliczenia w VAT, natomiast w przypadku dokumentu z datą rozliczenia w VAT od lipca 2021 r. kod MPP nie jest przenoszony do pliku JPK_V7. W przypadku metody kasowej kod MPP nie jest dodawany na dokument z datą wpływu (w przypadku rejestru VAT zakupu)/ datą sprzedaży (w przypadku rejestru VAT sprzedaży) od lipca 2021 r. Jeśli kod MPP dodano na dokument z datą wcześniejszą niż lipiec 2021 r., a rozliczenie dokumentu następuje z datą późniejszą niż czerwiec 2021 r. wówczas kod MPP pozostaje na dokumencie, nie jest natomiast przenoszony do pliku JPK_V7.
Uwaga
Procedury o kodach SW, EE, WSTO_EE, IEDTT_WNT, TT_D, I_42, I_63, B_SPV, B_SPV_DOSTAWA i B_MPV_PROWIZJA oraz znacznik technicznyZakupVAT_Marza nie są automatycznie dodawane na dokumencie. Mogą zostać one przeniesione na dokument w rejestrze VAT z karty kontrahenta, z modułu Handel, z kategorii lub dodane ręcznie przez użytkownika.
Uwaga
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 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 JPK_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; w przypadku plików które zostały scalone, w kolumnie wyświetlana jest wartość scalona ),
  • 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 Pokazuj 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 szarym. W menu kontekstowym po kliknięciu prawym przyciskiem myszy na pliku dostępne są opcje Odblokuj JPK_V7 oraz Eksportuj dane w formacie JPK_V7, które zostały opisane w kolejnych punktach biuletynu.

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. Na zawiadomieniu VAT-ZD o typie Sprzedaż istnieje możliwość wykazania dokumentów dla podmiotów nie będących podatnikami VAT czynnymi oraz dla osób fizycznych, po zaznaczeniu w sekcji Uwzględniaj dokumenty dla parametrów: podatników VAT nieczynnych i/lub osób fizycznych. 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ą). Po wykonaniu zapisu korekcyjnego należy przeliczyć plik JPK_V7 lub sporządzić jego korektę. Na generowane automatycznie zapisy korekcyjne dotyczące ulgi na złe długi (VAT-ZD) nie są przenoszone kody JPK_V7 uzupełnione na dokumencie pierwotnym. Jeżeli na dokumencie w rejestrze VAT wybrano kontrahenta o kodzie !NIEOKREŚLONY!, wówczas po uwzględnieniu dokumentu na zawiadomieniu VAT-ZD, na zapis korekcyjny przenoszone są dane kontrahenta uzupełnione na dokumencie pierwotnym. Nowy wzorzec dokumentu elektronicznego plików JPK_V7(2) obowiązujący od stycznia 2022 w części ewidencyjnej przewiduje dodatkowe informacje dla dokumentów sprzedażowych. Oprócz oznaczenia, że dokument jest korektą wynikającą z VAT-ZD (w polu KorektaPodstawyOpodt pojawia się wówczas wartość 1) dodane zostały dwa nowe pola: Termin płatności w przypadku korekt dokonanych zgodnie z art. 89a ust. 1 ustawy (pole TerminPlatnosci w pliku XML) – do tego pola przenoszony jest termin płatności dla każdej płatności do dokumentu wykazywanego jako korekta pierwotna (dokument w kolorze czarnym na zawiadomieniu VAT-ZD). Data zapłaty w przypadku korekt dokonanych zgodnie z art. 89a ust. 4 ustawy (pole DataZaplaty) – do tego pola przenoszona jest data dla każdej zapłaty (częściowej bądź całkowitej) dokonanej w tym okresie do dokumentu wykazywanego jako korekta zwrotna (dokument w kolorze zielonym na zawiadomieniu VAT-ZD). Od wersji programu 2023.5.1 na zapisy korekcyjne generowane z zawiadomienia VAT-ZD dla sprzedaży automatycznie dodawane są atrybuty JPK_V7: KOREKTA_ART.89A oraz TERMIN_PLATNOSCI lub DATA_ZAPLATY. Atrybuty te są dodawane również na istniejące już w bazie zapisy korekcyjne podczas konwersji bazy danych.
Uwaga
Jeżeli w danym miesiącu nastąpiło kilka płatności/zapłat do dokumentu i każda z nich ma zostać wykazana w części ewidencyjnej pliku JPK_V7 oddzielnie, należy zmodyfikować wygenerowany automatycznie zbiorczy zapis korekcyjny dla dokumentu i dodać ręcznie zapisy dla każdej płatności/zapłaty z odpowiednim terminem płatności/ datą zapłaty.
W przypadku podglądu pliku JPK_V7 w arkuszu MS Excel, na zakładce JPK_V7_SprzedazWiersz widoczne są kolumny: Korekta art.89a (może przyjmować wartość 1), jak również Termin płatności oraz Data zapłaty uzupełniane datami pobieranymi z pliku. W przypadku korekty pierwotnej dla wykazywanego w pliku dokumentu, uzupełnione są pola Korekta art.89a i Termin płatności, natomiast w przypadku korekty powrotnej – pola Korekta art.89a i Data zapłaty.
Uwaga
W przypadku gdy za określony miesiąc jest już wygenerowane zawiadomienie VAT-ZD i w tym miesiącu następują kolejne zapłaty do dokumentu wykazanego już na zawiadomieniu, wówczas należy usunąć zapisy korekcyjne do tego VAT-ZD, odblokować zawiadomienie i przeliczyć je ponownie. Nie należy w tym przypadku stosować korekt zawiadomienia VAT-ZD, ponieważ może to skutować wykazaniem zduplikowanych pozycji dotyczących zapłat dokumentu w części ewidencyjnej pliku JPK_V7. W przypadku, kiedy plik JPK_V7 wraz z zawiadomieniem VAT-ZD został już złożony i zachodzi potrzeba wykonania jego korekty w związku z uwzględnieniem kolejnej płatności do dokumentu, który już wcześniej wykazany został na zawiadomieniu VAT-ZD za ten sam miesiąc, należy postąpić następująco: 1. Dodać korektę pliku JPK_V7 za ten miesiąc pozostawiając ją w buforze. 2. Usunąć zapisy korekcyjne do zawiadomienia VAT-ZD wygenerowane w tym miesiącu. 3. Odblokować zawiadomienie VAT-ZD i przeliczyć je ponownie. 4. Zablokować VAT-ZD i wygenerować zapisy korekcyjne. 5. Przeliczyć korektę pliku JPK_V7, zablokować ją i wysłać do Urzędu Skarbowego.
Korekta podatku naliczonego i należnego z pominięciem załącznika VAT-ZD 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 celu wykazania dokumentu w polu P_46 (Korekta podatku naliczonego, o której mowa w art. 89b ust. 1 ustawy) należy dodać w rejestrze zakupu dokument bez pozycji z danymi korygowanego dokumentu: np. numerem faktury oraz danymi kontrahenta i zaznaczoną odpowiednią datą Rozliczać w VAT. Na zakładce [KSeF/JPK] w sekcji Atrybuty JPK_VAT i JPK_V7 należy wybrać atrybut JPK_V7 o nazwie VAT-ZD ZAKUP NIEZAPŁ i uzupełnić odpowiednią wartością na minus. W celu wykazania dokumentu w polu P_47 (Korekta podatku naliczonego, o której mowa w art. 89b ust. 4 ustawy) należy dodać w rejestrze zakupu dokument bez pozycji z danymi korygowanego dokumentu: np. numerem faktury oraz danymi kontrahenta i zaznaczoną odpowiednią datą Rozliczać w VAT. Na zakładce [KSeF/JPK] w sekcji Atrybuty JPK_VAT i JPK_V7 należy wybrać atrybut JPK_V7 o nazwie VAT-ZD ZAKUP ZAPŁAC. i uzupełnić odpowiednią wartością na plus. W przypadku rejestru sprzedaży VAT – jeżeli zachodzi potrzeba wykazania korekty podstawy opodatkowania oraz podatku należnego, o której mowa w art. 89a ust. 1 i 4 Ustawy, a dokumentów sprzedażowych nie ma w programie (np. dotyczą okresu, kiedy księgowość była prowadzona w innym programie lub przez inne Biuro Rachunkowe), możliwe jest oznaczenie wprowadzonych do rejestru sprzedaży VAT dokumentów technicznych jako korekty pierwotnej lub korekty powrotnej z pominięciem załącznika VAT-ZD. Służą do tego atrybuty JPK_V7: KOREKTA_ART.89A, TERMIN_PLATNOSCI oraz DATA_ZAPLATY. Chcąc oznaczyć dokument w rejestrze sprzedaży VAT jako korektę, o której mowa w art. 89a ust. 1 Ustawy (zmniejszenie podstawy opodatkowania, korekta pierwotna), należy dodać na dokumencie na zakładce [KSeF/JPK] w sekcji Atrybuty JPK_VAT i JPK_V7 atrybut KOREKTA_ART.89A, wybierając wartość Tak oraz atrybut TERMIN_PLATNOSCI i uzupełnić na nim oczekiwaną datę. Na zakładce [Ogólne] dokumentu należy wprowadzić pozycję/pozycje z wartością ujemną w odpowiedniej stawce VAT. Parametr Rozliczać w VAT powinien wskazywać na okres zgodny ze sporządzanym plikiem JPK_V7. Dokument powinien mieć zaznaczony parametr Wewnętrzny aby nie wygenerował on płatności do rozliczenia w module Kasa/Bank. Po zaznaczeniu tego parametru należy na dokumencie z zakładki [KSeF/JPK] z sekcji Kody JPK_VAT usunąć kod WEW. Chcąc oznaczyć dokument w rejestrze sprzedaży VAT jako korektę o której mowa w art. 89a ust. 4 Ustawy (zwiększenie podstawy opodatkowania, korekta powrotna), należy dodać na dokumencie na zakładce [KSeF/JPK] w sekcji Atrybuty JPK_VAT i JPK_V7 atrybut KOREKTA_ART.89A, wybierając wartość Tak oraz atrybut DATA_ZAPLATY i uzupełnić na nim oczekiwaną datę. Na zakładce [Ogólne] dokumentu należy wprowadzić pozycję/pozycje z wartością dodatnią w odpowiedniej stawce VAT. Parametr Rozliczać w VAT powinien wskazywać na okres zgodny ze sporządzanym plikiem JPK_V7. Dokument powinien mieć zaznaczony parametr Wewnętrzny aby nie wygenerował on płatności do rozliczenia w module Kasa/Bank. Po zaznaczeniu tego parametru należy na dokumencie z zakładki [KSeF/JPK] z sekcji Kody JPK_VAT usunąć kod WEW. Oznaczenie w ten sposób dokumentów spowoduje odpowiednie ich wykazanie w części ewidencyjnej pliku JPK_V7. Jeżeli chodzi o pola P_68 oraz P_69 znajdujące się na części deklaracyjnej pliku, powinny one zostać uzupełnione przez Użytkownika samodzielnie.

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 i pełnomocnictwa. 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. Wartość współczynnika szacunkowego struktury sprzedaży określana jest z dokładnością do 2 miejsc po przecinku. Umożliwia to obsługę prewspółczynnika przez jednostki budżetowe. Z poziomu części deklaracyjnej pliku JPK_V7 za styczeń lub pierwszy kwartał roku dostępne są wydruki Obliczenie korekty VAT dla zakupów 20XX prezentujące wyliczone przez program kwoty korekty podatku naliczonego wynikające ze zmiany wartości współczynnika szacunkowego struktury sprzedaży. Z wydruków mogą skorzystać firmy nie rozliczające VAT prewspółczynnikiem. 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.

Jeżeli w bazie istnieją już dokumenty zawierające jednocześnie więcej niż jeden kod dotyczący typu dokumentu, podczas przeliczania pliku JPK_V7 pojawia się komunikat uniemożliwiający utworzenie pliku: Plik JPK_V7 nie może być naliczony. Istnieją transakcje zawierające więcej niż jeden typ dokumentu na zakładce Kody JPK_V7. Po zatwierdzeniu komunikatu pojawia się Lista dokumentów z więcej niż jednym typem dokumentu JPK_V7.

Dokumenty z więcej niż jednym kodem określającym typ dokumentu mogą występować jeżeli zostały dodane we wcześniejszej wersji programu niż 2021.0.1. Mogły również zostać zaimportowane z pliku VAT_R lub za pomocą pracy rozproszonej (w szczególności jeżeli pliki te pochodziły z programów innych producentów). Użytkownik powinien na każdym z wymienionych na liście dokumentów pozostawić tylko jeden kod dotyczący typu dokumentu.

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:   W zależności od okresu za jaki sporządzany jest plik, otworzona zostanie część deklaracyjna JPK_V7 w wersji formularza 21 (pliki JPK_V7 za okresy do grudnia 2021) lub część deklaracyjna JPK_V7 w wersji 22 (pliki JPK_V7 za okresy od stycznia 2022). 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 celu wykazywania w pliku JPK_V7 kwot w polach 33-36 oraz 44-47 należy dodać do rejestru VAT dokument techniczny z odpowiednim atrybutem. Taki sposób kwalifikacji dokumentów umożliwia wykazanie w części ewidencyjnej kwoty podatku należnego oraz korekty podatku naliczonego w innym miesiącu niż jest to wykazywane w części deklaracyjnej pliku. Wykorzystanie atrybutów na dokumentach technicznych jest analogicznym działaniem jak w przypadku plików JPK_VAT. Dotyczy to zarówno miesięcznego, jak i kwartalnego rozliczenia podatku VAT.
Uwaga
W celu wykazania w pliku JPK_V7 kwot w polach 33-36 oraz 44-47 należy na dokumencie wybrać standardowo dostępny w programie atrybut o typie JPK i odpowiedniej nazwie. Nie należy dodawać i wybierać na dokumentach atrybutów o tych samych nazwach jak atrybuty standardowe, ale o niewłaściwym typie (atrybutów kontrahenta bądź dokumentu). Atrybut należy wybrać na dokumencie w Rejestrze VAT na zakładce [KSeF/JPK] w sekcji Atrybuty JPK_VAT i JPK_V7:
Po wprowadzeniu dokumentów technicznych z odpowiednimi atrybutami, na części deklaracyjnej zostaną automatycznie uzupełnione odpowiadające im pola (nie ma potrzeby wpisywania w nich ponownie kwot ręcznie, jak było to w przypadku deklaracji VAT-7). W związku z tym pola 33,34,35,36,46,47 są zablokowane do edycji. Wyjątkiem są pola 44 i 45, które są aktywne do zmiany. Dla tych pól należy dodać dokument techniczny (w celu wykazania w części ewidencyjnej pliku), a dodatkowo na części deklaracyjnej uzupełnić wartość. Wynika to z tego, że te pola są wyliczane automatycznie w pliku JPK_V7 za styczeń bądź pierwszy kwartał jako korekta roczna, w przypadku stosowania szacunkowego współczynnika struktury sprzedaży, i może zaistnieć potrzeba ich ręcznej zmiany. Obok pól 33-36 oraz 44-47 dostępna jest ikona , po najechaniu na którą pojawia się chmurka z informacją jak należy wprowadzić dokument, aby kwota pojawiła się w danym polu. Na dokumencie technicznym wartość atrybutu (kwota) może zostać wpisana z groszami. Poniżej znajdują się informacje dotyczące poszczególnych pól: Aby wartość w polu P_33 (Podatek należny od towarów objętych spisem z natury) została uwzględniona na deklaracji i w części ewidencyjnej pliku należy dodać w rejestrze sprzedaży dokument bez pozycji z atrybutem JPK_V7 o nazwie PODATEK OD SPISU i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Aby wartość w polu P_34 (Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących) została uwzględniona na deklaracji i w części ewidencyjnej pliku należy dodać w rejestrze sprzedaży dokument bez pozycji z atrybutem JPK_V7 o nazwie ZWROT ZA KASĘ FISKAL i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Wartość w polu P_35 (Podatek od wewnątrzwspólnotowego nabycia środków transportu) jest częścią pola P_24 (Wewnątrzwspólnotowe nabycie towarów – kwota VAT dokumentów z wybranym rodzajem Środki transportu). Jeśli wartość w polu P_35 nie wynika z pola P_24, wówczas należy dodać w rejestrze sprzedaży dokument bez pozycji z atrybutem JPK_V7 o nazwie WEWN.NABYCIE ŚR.TRAN i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Aby wartość w polu P_36 (Podatek od wewn. nabycia towarów art. 103 ust. 5aa) została uwzględniona na deklaracji i w części ewidencyjnej pliku należy dodać w rejestrze sprzedaży dokument bez pozycji z atrybutem JPK_V7 o nazwie WEWN.NAB.PALIW SILN. i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Aby wartość w polu P_44 (Korekta podatku naliczonego od nabycia środków trwałych) została uwzględniona w części ewidencyjnej pliku należy dodać w rejestrze zakupu dokument bez pozycji z atrybutem JPK_V7 o nazwie KOREKTA ŚR. TRWAŁYCH i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Aby wartość w polu P_45 (Korekta podatku naliczonego od pozostałych nabyć) została uwzględniona w części ewidencyjnej pliku należy dodać w rejestrze zakupu dokument bez pozycji z atrybutem JPK_V7 o nazwie KOREKTA POZ. NABYĆ i odpowiednią wartością oraz zaznaczoną datą Rozliczać w VAT. Wartość w polu P_46 (Korekta podatku naliczonego, o której mowa w art. 89b ust. 1 ustawy) wynika z zapisów korekcyjnych do VAT-ZD. Jeśli nie ma takich zapisów, wówczas należy dodać w rejestrze zakupu dokument bez pozycji z danymi korygowanego dokumentu: np. numerem faktury oraz danymi kontrahenta, z atrybutem JPK_V7 o nazwie VAT-ZD ZAKUP NIEZAPŁ i odpowiednią wartością na minus oraz zaznaczoną datą Rozliczać w VAT. Wartość w polu P_47 (Korekta podatku naliczonego, o której mowa w art. 89b ust. 4 ustawy) wynika z zapisów korekcyjnych do VAT-ZD. Jeśli nie ,ma takich zapisów, wówczas należy dodać w rejestrze zakupu dokument bez pozycji z danymi korygowanego dokumentu: np. numerem faktury oraz danymi kontrahenta, z atrybutem JPK_V7 o nazwie VAT-ZD ZAKUP ZAPŁAC. i odpowiednią wartością na plus oraz zaznaczoną datą Rozliczać w VAT. Podczas importu dokumentów do rejestrów VAT z plików JPK_V7, dokumenty techniczne z powyższymi atrybutami nie są importowane. W stosunku do wzoru deklaracji VAT-7(20), na części deklaracyjnej JPK_V7 w wersji formularza 21 i 22 dodane zostały pola P_59 – P_61 dotyczące Wniosku o zaliczenie podatku na poczet przyszłych zobowiązań. Ponadto w przypadku części deklaracyjnej JPK_V7 w wersji formularza 22 (pliki JPK_V7 za okresy od stycznia 2022) dostępnych jest 6 terminów zwrotu podatku (w wersji 21 były 4 terminy zwrotu).   Jeżeli w pliku JPK_V7 zaznaczone zostało pole P_59 (Wniosek na zaliczenie podatku na poczet przyszłych zobowiązań), wymagane jest wpisanie w polu P_60 (Wysokość zwrotu do zaliczenia na poczet przyszłych zobowiązań podatkowych) wartości większej od 0. W polu P_60 (Wysokość zwrotu do zaliczenia na poczet przyszłych zobowiązań podatkowych) może zostać wpisana maksymalnie wartość z pola P_54 (Kwota do zwrotu na rachunek bankowy). Dostępne są 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:   W 22 wersji formularza części deklaracyjnej dostępne jest nowe pole P_660 – Podatnik ułatwiał w okresie rozliczeniowym dokonanie czynności, o których mowa w art. 109b ust. 4 ustawy (pole do ręcznego zaznaczenia). Do pliku JPK_V7 przenoszona jest informacja o dacie jego utworzenia, pobierana jako data systemowa ze stanowiska komputerowego. Dane podatnika (NIP i nazwa pełna) pobierane są z pieczątki firmy. Jeżeli w Konfiguracji Firmy/ Dane firmy/ VAT, AKC-WW, CUK 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, CUK – 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, CUK 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 częś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, procedurze i oznaczeniu technicznym ZakupVAT_Marza na na podstawie znajdujących się na dokumencie kodach JPK_V7
  • W przypadku zapisów korekcyjnych wygenerowanych z załącznika VAT-ZD przenoszona jest informacja o korekcie zgodnie z art. 89a oraz termin płatności / data zapłaty
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, z wyjątkiem przypadków opisanych w rozdziale 3.2.5, 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 JPK_V7. W przypadku pliku JPK_V7 który został już wysłany, odblokowanie jest możliwe jeżeli operator ma na swojej karcie zaznaczony parametr Prawo do odblok. Wysłanej e-Deklaracji oraz plik JPK ma status Wysłano/odebrano UPO lub Błąd przetwarzania. Odblokowanie nie jest możliwe dla pliku posiadającego status Wysłano/nie odebrano UPO. 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. Istnieje możliwość ponownego wygenerowania pliku XML dla pliku JPK_V7. Dzięki temu, jeżeli plik JPK_V7 jest już wysłany a poprzedni plik XML został usunięty z dysku lub utworzony na innym komputerze, jest możliwe uzyskanie nowego pliku XML zawierającego dane z pliku JPK. W menu podręcznym, po kliknięciu prawym przyciskiem myszy na wybranym pliku JPK, dostępna jest opcja Eksportuj dane w formacie JPK_V7. Po jej wybraniu w folderze zapisu plików JPK wskazanym w Konfiguracji Stanowiska/ Ogólne/ Jednolity plik kontrolny tworzony jest plik XML . 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ąć.” W przypadku gdy plik JPK_V7 z deklaracją został utworzony a nastąpiła zmiana danych na deklaracji (np. uzupełniono kwotę do zwrotu na rachunek bankowy) i w trakcie zapisywania pliku przerwano tę operację lub wystąpił inny błąd uniemożliwiający zapisanie pliku XML, wówczas plik jest aktualizowany o zmienione dane w momencie jego wysyłki na serwery Ministerstwa Finansów.
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://moj.gov.pl/uslugi/signer/upload?xFormsAppName=SIGNER 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 Pokazuj scalone jest zaznaczony) na liście w kolorze szarym, a w kolumnie Status wyświetlany jest opis scalona. 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. Ponadto sporządzając plik JPK_V7 za kolejny okres, jeśli w poprzednim okresie sporządzono i wysłano plik scalony, należy zweryfikować pole P_39 (Kwota nadwyżki z poprzedniej deklaracji). Wartość do tego pola przenoszona jest z pliku JPK_V7 za poprzedni okres wygenerowanego w programie na podstawie zapisów w rejestrze VAT a nie z pliku scalonego. W związku z tym w razie potrzeby pole P_39 należy zmodyfikować samodzielnie.
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 dodanym 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. Możliwy jest import dokumentów zarówno z obowiązujących do grudnia 2021 plików JPK_V7(1) jak i JPK_V7(2), które obowiązują od stycznia 2022. 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 kod). 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 lub wg autonumeracji ustawionej w konfiguracji) 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 lub wg autonumeracji ustawionej w konfiguracji) 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. Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Autonumeracja kodów kontrahentów przy dodawaniu, wówczas kod zakładanego kontrahenta nadawany jest według wskazanego w Konfiguracji schematu numeracji. W przypadku, gdy podczas automatycznego dodawania kontrahenta, numer w schemacie numeracji kodów przekroczy maksymalną wartość, kontrahent dodawany jest z kodem uzupełnionym zgodnie z jego numerem NIP. Jeżeli parametr Autonumeracja kodów kontrahentów przy dodawaniu nie jest zaznaczony w Konfiguracji, wówczas jako kod nowego kontrahenta wstawiany jest jego numer NIP. Dodatkowo jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Automatyczne pobieranie rachunków bankowych z Wykazu podatników VAT, dla dodawanego automatycznie kontrahenta następuje weryfikacja w Wykazie podatników VAT na podstawie jego numeru NIP i pobierane są numery rachunków bankowych kontrahenta. Jeżeli parametr w konfiguracji nie jest zaznaczony, kontrahent dodawany jest bez importu listy rachunków bankowych. 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.

OPT079- Jednolity Plik Kontrolny

Data aktualizacji: 26-11-2023

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. Firmy małe, średnie oraz mikro udostępniają pliki JPK na każde żądanie organu podatkowego od 1 lipca 2018. Proces udostępnienia pliku rozpoczyna się dopiero po otrzymaniu postanowienia o wszczęciu postępowania od organu podatkowego. Jednolite Pliki Kontrolne są wykorzystywane przez Urzędy Skarbowe celem weryfikacji Ksiąg oraz zapisów na podstawie, których powstały. 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 zaczęły 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ć pliki JPK na żądanie należy kliknąć ikonę bądź po rozwinięciu ikony plusa wybrać opcję Pozostałe pliki JPK. Otwierane jest wówczas okno: Okno dodania pozostałych plików JPK może zostać wywołane za pomocą skrótu <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 powyżej zakresu dat),
      • Dokumenty magazynowe (z możliwością wskazania czy dokumenty maja być wykazane wg kosztu zakupu czy ceny jednostkowej netto).
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 i pełnomocnictwa 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 pozostałych plików JPK, jak i plików JPK_VAT) 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 są pliki JPK_EWP i JPK_VAT, które są tworzone nawet jeśli za dany okres nie ma zapisów w ewidencji ryczałtowej / rejestrze VAT. 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 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.

4 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) W danych dotyczących kont księgowych w polu OpisZespolu umieszczane jest oznaczenie na podstawie pierwszej cyfry z numeru konta: ■ 0 – Aktywa trwałe, ■ 1 – Środki pieniężne, rachunki bankowe oraz krótkoterminowe aktywa finansowe, ■ 2 – Rozrachunki i roszczenia, ■ 3 – Materiały i towary, ■ 4 – Koszty według rodzajów i ich rozliczenie, ■ 5 – Koszty według typów działalności i ich rozliczenie, ■ 6 – Produkty i rozliczenia międzyokresowe, ■ 7 – Przychody i koszty związane z ich osiąganiem, ■ 8 – Kapitały (fundusz) własne, fundusze specjalne, rezerwy i wynik finansowy, ■ 9 – Konta zespołu 9. Jeżeli numer konta nie zaczyna się od cyfry, zarówno do pola KodZespolu jak i OpisZespolu przenoszony jest pierwszy znak z numeru 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, w przypadku nieuzupełnienia opisu na dekrecie do pliku przenoszona jest wartość BRAK)
      • 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. W przypadku braku zapisów mających daty księgowania za podany podczas eksportu okres, pliki JPK nie są tworzone.

5 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. W przypadku nieuzupełnienia wymaganych pól (Nazwa kontrahenta, Adres kontrahenta, Opis operacji) w pliku umieszczana jest wartość BRAK. 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.

6 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. W przypadku składania pliku za okresy od 1 stycznia 2022 roku obowiązuje struktura pliku JPK_EWP(3). Za okresy wcześniejsze obowiązują pliki JPK_EWP(2) (rok 2021) i JPK_EWP(1) (lata wcześniejsze). W przypadku pliku JPK_EWP(3) obok uwzględnienia stawek ryczałtu 14% i 12% plik ten obejmuje wykaz środków trwałych i wartości niematerialnych i prawnych. Do pliku przenoszone są zapisy kart środków trwałych i wartości niematerialnych i prawnych z podstawowymi informacjami, m.in. o dacie przyjęcia do używania, numerze KŚT czy wartości początkowej i zaktualizowanej, bez informacji o dokonanych odpisach amortyzacyjnych. Do pliku nie są przenoszone informacje o środkach trwałych w budowie, jak również środkach zbytych bądź zlikwidowanych przed okresem, za który sporządzany jest plik. Nie są również wykazywane środki trwałe z datą przyjęcia do użytkowania późniejszą niż okres, za jaki plik jest sporządzany. Środki trwałe całkowicie zamortyzowane oraz z zerową wartością są przenoszone do pliku JPK_EWP(3). Jedną z wymaganych informacji dla środków trwałych wykazywanych w pliku JPK_EWP(3) jest numer dokumentu zakupu. W programie na karcie środka trwałego na zakładce [Dokumenty] można wskazać więcej niż jeden dokument zakupu. W takim przypadku do pliku przenoszony jest ostatni (najmłodszy) dokument. Jeżeli dokument zakupu na karcie środka trwałego nie jest wskazany, wówczas podczas generowania pliku pojawia się komunikat: „Element tns:KW_5.Element element 'Wykaz’ w przestrzeni nazw 'http://jpk.mf.gov.pl/wzor/2022/02/01/02011/’ ma nieprawidłowy element podrzędny element 'KW_5′ w przestrzeni nazw 'http://jpk.mf.gov.pl/wzor/2022/02/01/02011/’. Lista oczekiwanych możliwych elementów: element 'KW_4′ w przestrzeni nazw 'http://jpk.mf.gov.pl/wzor/2022/02/01/02011/’.’ Należy wówczas dodać na zakładce [Dokumenty] na karcie środka trwałego odpowiedni numer dokumentu zakupu. Numer może zostać uzupełniony ręcznie, bez wskazania dokumentu w Rejestrze zakupów VAT lub Ewidencji dodatkowej kosztów (opcja: Bez wskazania dokumentu). Taka operacja jest możliwa pod warunkiem, że środek trwały nie posiada wygenerowanych odpisów amortyzacyjnych. Jeżeli takie odpisy już są, wówczas możliwe jest wskazanie na karcie środka trwałego na zakładce [Atrybuty] atrybutu o kodzie DOWÓD_ZAKUPU_EWP i wpisanie jako wartości tego atrybutu numeru dokumentu zakupu. Inną informacją przenoszoną do pliku JPK_EWP(3) jest numer Klasyfikacji Środków Trwałych. W przypadku kiedy nie jest on uzupełniony, podczas generowania pliku pojawia się informacja: „Na środku trwałym/wnip [NAZWA] w polu KW_6 (KŚT) zapisano BRAK. Zweryfikuj poprawność.” Wówczas Użytkownik powinien zweryfikować czy faktycznie w tym przypadku brak uzupełnionego numeru KŚT jest poprawną sytuacją (np. w przypadku wartości niematerialnych i prawnych dla których ten numer nie jest uzupełniany) czy jednak należy uzupełnić dane na karcie środka trwałego i ponowić generowanie pliku JPK_EWP(3). 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
      • Wykaz środków trwałych i wartości niematerialnych i prawnych (pliki JPK_EWP za okresy od 1 stycznia 2022)
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%).

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

8 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. Faktury Zaliczkowe, Faktury Sprzedaży oraz korekty do Faktur wystawione w procedurze OSS są uwzględniane w pliku JPK_FA. 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ą dowody 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.

9 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. Wydania Zewnętrzne oraz korekty do WZ wystawione w procedurze OSS są uwzględniane w pliku JPK_MAG. Pliki JPK_MAG generowane są osobno dla każdego magazynu w bazie i każdej waluty, jeżeli dokument generowany jest z cenami z dokumentu. Wartości w tych plikach wykazywane są w walucie, w jakiej zostały wystawione dokumenty. Wybór waluty możliwy jest gdy zostanie wybrana cena jednostkowa netto, w przypadku kosztu zakupu wszystkie wartości w pliku są wykazywane w walucie PLN. 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

10 Rejestry VAT – JPK_VAT

Uwaga
Uwaga: Pliki JPK_VAT obowiązywały do rozliczenia podatku VAT za okresy do września 2020 roku. Od rozliczenia za okresy od października 2020 roku obowiązują pliki JPK_V7 dostępne w programie w menu JPK/ Pliki JPK_V7 i opisane w biuletynie OPT088 – Pliki JPK_V7 – przygotowanie dokumentów i generacja pliku. Obecnie możliwe jest składanie korekt do plików JPK_VAT za okresy, w których tego typu pliki obowiązywały.
Aby dodać w programie plik JPK_VAT należy z rozwijalnej listy przy ikonie plusa wybrać opcję Pliki_JPK_VAT   – 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 <Shift> + <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
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
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
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
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.
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 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 ■ 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 ■ Nazwa programu z którego wygenerowano plik JPK_VAT(3) (w pliku widnieje nazwa „Comarch ERP Optima” wraz numerem wersji) W przypadku plików JPK_VAT(3) przenoszone są następujące informacje dotyczące dokumentów: 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 dowodó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 dowodów wewnętrznych z dokumentem źródłowym. W związku z tym kiedy takiego powiązania nie ma (dowody wewnętrzne dodane ręcznie do rejestru VAT bądź zaimportowane mechanizmem pracy rozproszonej), dowody wewnętrzne do pliku JPK_VAT zostaną przeniesione z własnym numerem dokumentu. Dowody wewnętrzne będące korektą paragonów przekształconych do faktur przenoszone są do pliku JPK_VAT z numerem dowodu 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), ■ WEWN.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), ■ WEWN.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
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 kwalifikacji w 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.
Uwaga
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.

11 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. Parametr określa cel złożenia łączonego pliku JPK_VAT. 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.

12 Import plików JPK_VAT do rejestrów VAT

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 lub wg autonumeracji ustawionej w konfiguracji)) 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 lub wg autonumeracji ustawionej w konfiguracji) 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.. Jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Autonumeracja kodów kontrahentów przy dodawaniu, wówczas kod zakładanego kontrahenta nadawany jest według wskazanego w Konfiguracji schematu numeracji. W przypadku, gdy podczas automatycznego dodawania kontrahenta, numer w schemacie numeracji kodów przekroczy maksymalną wartość, kontrahent dodawany jest z kodem uzupełnionym zgodnie z jego numerem NIP. Jeżeli parametr Autonumeracja kodów kontrahentów przy dodawaniu nie jest zaznaczony w Konfiguracji, wówczas jako kod nowego kontrahenta wstawiany jest jego numer NIP. Dodatkowo jeżeli w Konfiguracji Firmy/ Ogólne/ Parametry zaznaczony jest parametr Automatyczne pobieranie rachunków bankowych z Wykazu podatników VAT, dla dodawanego automatycznie kontrahenta następuje weryfikacja w Wykazie podatników VAT na podstawie jego numeru NIP i pobierane są numery rachunków bankowych kontrahenta. Jeżeli parametr w konfiguracji nie jest zaznaczony, kontrahent dodawany jest bez importu listy rachunków bankowych. 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.

OPT074 - Dodawanie kolumn użytkownika na listach

Data aktualizacji: 25-01-2024

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 - definiowanie kolumn użytkownika

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

Handel

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 zasobów. Ilość dni zalegania towaru na magazynie/ach na podstawie najstarszej dostawy.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
(SELECT TOP 1 CASE WHEN #filtrMagazynGridLookup_ID# = 0 then 
(SELECT DATEDIFF(DAY, min(TwZ_Data), GETDATE()) AS DateDiff

FROM CDN.TwrZasoby

WHERE Twr_TwrId = TwZ_TwrId)

else (SELECT DATEDIFF(DAY, min(TwZ_Data), GETDATE()) AS DateDiff

FROM CDN.TwrZasoby

WHERE Twr_TwrId = TwZ_TwrId AND TwZ_MagId = #filtrMagazynGridLookup_ID#) end)

5. Lista zasobów/cennik. Kolumna średnia cena zakupu dla dostaw, które nie zostały zdjęte z magazynu

Wyświetla średnią ważoną dla cen, po których dostawy danego towaru zostały wprowadzone do magazynu. Brane pod uwagę są tylko dostawy, które ciągle znajdują się w magazynie. Listę tych dostaw można sprawdzić otwierając formularz towaru i przechodząc na zakładkę Zasoby.
(SELECT CONVERT(DECIMAL(10, 2), AVG(TwZ_Wartosc/TwZ_Ilosc)) FROM CDN.TwrZasoby
WHERE TwZ_TwrId=Twr_TwrId)

6. Lista zasobów/cennik. Kolumna wyświetlająca ‘Tak’ jeśli towar/usługa jest udostępniany w przynajmniej jednym e-Sklepie oraz ‘Nie’ jeśli nie jest udostępniany

CASE WHEN EXISTS 
(SELECT * FROM Cdn.TwrESklep WHERE Twes_TwrID=Twr_TwrId AND Twes_Udostepnij=1) 
THEN 'Tak' ELSE 'Nie' END

7. Lista kontrahentów. Kolumna z listą atrybutów przypisanych do kontrahenta

Atrybuty przedstawiane są w formie Nazwa_atrybutu: Wartość.
STUFF(
(SELECT ', ' + DA.DeA_Kod + ': ' + KA.KnA_WartoscTXT
FROM CDN.KntAtrybuty KA
JOIN CDN.DefAtrybuty DA ON KA.KnA_DeAId=DA.DeA_DeAId
WHERE KA.KnA_PodmiotId=Knt_KntId 
FOR XML PATH (''))
,1,2,'')

8. Lista zestawów promocyjnych. Kolumna z maksymalną liczbą zestawów jakie można utworzyć, biorąc pod uwagę ilości towarów wchodzących w skład zestawu znajdujące się w magazynach

Łączna ilość ze wszystkich magazynów, dla towaru wchodzącego w skład zestawu promocyjnego jest dzielona przez ilość, w jakiej ten towar występuje w składzie zestawu. Kolumna wyświetla najniższy wynik takich obliczeń (zaokrąglony w dół do liczb całkowitych), wykonanych dla wszystkich towarów wchodzących w skład zestawu.
(SELECT FLOOR(MIN(t.sum1)) FROM
(SELECT SUM(TZ.TwZ_Ilosc) sum1 FROM CDN.TwrZasoby TZ 
JOIN CDN.ZestawyTwr ZT ON TZ.TwZ_TwrId=ZT.ZTw_TwrId
WHERE ZT.ZTw_ZTwId=ZTw_ZTwId
UNION
SELECT SUM(TZ.TwZ_Ilosc/ZTS.ZTS_Ilosc) sum1 FROM CDN.TwrZasoby TZ 
JOIN CDN.ZestawyTwrSkladniki ZTS ON TZ.TwZ_TwrId=ZTS.ZTS_TwrId
WHERE ZTS.ZTS_ZTwId=ZTw_ZTwId
GROUP BY TwZ_TwrId) t)

9. Lista dokumentów w module Handel. 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

10. Lista dokumentów w module Handel. 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

11. Lista dokumentów w module Handel. 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.

12. Lista dokumentów w module Handel. 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.

13. Lista dokumentów w module Handel. 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))

14. Lista dokumentów w module Handel. 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)

15. Lista dokumentów w module Handel. Kolumna z formą płatności

Kolumna wyświetla nazwę formy płatności, która została wybrana na formularzu dokumentu.
(SELECT FPl_Nazwa FROM CDN.FormyPlatnosci WHERE FPl_FPlId=TrN_FPlId)

16. Lista dokumentów w module Handel. Akronim operatora lub pracownika, który jest opiekunem kontrahenta, dla którego został wystawiony dokument

Wyświetla akronim operatora lub pracownika, który został wskazany na formularzu kontrahenta (zakładka Dodatkowe) wybranego na dokumencie. Dane o operatorach zapisane są w bazie konfiguracyjnej. Zamiast CDN_KNF_Konfiguracja należy wprowadzić nazwę własnej bazy konfiguracyjnej.
(SELECT Ope_Kod 
FROM CDN_KNF_Konfiguracja.CDN.Operatorzy O 
JOIN CDN.Kontrahenci Knt ON TrN_PodID=Knt.Knt_KntId
WHERE Knt.Knt_OpiekunId=O.Ope_OpeID AND Knt.Knt_OpiekunTyp=8
UNION
SELECT Pre_Kod FROM CDN.PracEtaty PE 
JOIN CDN.Kontrahenci Knt ON TrN_PodID=Knt.Knt_KntId
WHERE Knt.Knt_OpiekunId=PE.Pre_PreId AND Knt.Knt_OpiekunTyp=3)

17. Lista dokumentów w module Handel. Kolumna pokazująca łączną wysokość opłaty cukrowej naliczonej dla pozycji danego dokumentu

(SELECT CONVERT(DECIMAL(10,2), SUM(TrE_Ilosc*Tre_OplataCukrowaDoliczDoCeny*
TrE_OplataCukrowaPrzelicznikML/1000)) FROM CDN.TraElem 
WHERE TrE_TrNId=TrN_TrNId)

18. 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 (''))

19. 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) END Jeś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.

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

21. Lista Faktur Sprzedaży oraz Faktur Zakupu. Wyświetlanie daty rozliczenia dokumentu.

W sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych:
(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'))

22. 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, '')

23. 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 (''))

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

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

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

27. Lista Faktur Pro Forma. Kolumna wyświetlająca sumę wartości netto wszystkich powiązanych Faktur Zaliczkowych

(SELECT SUM(TN.TrN_RazemNetto) 
FROM CDN.TraNag TN
JOIN CDN.TraNagRelacje TNR ON TNR.TrR_TrNId = TN.TrN_TrNID 
WHERE TNR.TrR_FaId = A.TrN_TrNID AND TN.TrN_Rodzaj=302200)

28. 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,'' )

29. Formularz dokumentu w module Handel. 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)

30. Formularz dokumentu w module Handel. 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)

31. Formularz dokumentu w module Handel. 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 ))

32. Formularz dokumentu w module Handel. 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)

33. Formularz dokumentu w module Handel. 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 = TrE_TrEId FOR XML PATH ('')) ,1,2,'') gdzie w miejsce KOD_ATRYBUTU trzeba wprowadzić konkretny kod.

34. Formularz dokumentu w module Handel. Kolumna pokazująca, z którego dokumentu agregowanego pochodzi dana pozycja

W przypadku gdy dokument, którego formularz jest aktualnie otwarty powstał w wyniku przekształcenia więcej niż jednego dokumentu, możliwe będzie zidentyfikowanie z jakiego dokumentu pochodzi dana pozycja.
STUFF(
(SELECT ', ' + TRN.TrN_NumerPelny
FROM CDN.TraNag TRN
JOIN CDN.TraElem TE ON TE.TrE_TrNId=TRN.TrN_TrNId
JOIN CDN.TraElemRelacje TER ON TER.TeR_ParentId=TE.TrE_TrEID
WHERE TER.TeR_ChildId=_DATASOURCE_.TrE_TrEID
FOR XML PATH (''))
,1,2,'')

35. Formularz dokumentu w module Handel. Kolumna z listą atrybutów przypisanych do pozycji dokumentu

Atrybuty przedstawiane są w formie Nazwa_atrybutu: Wartość. Prawidłowe wartości w tej kolumnie będą się wyświetlać dopiero po zapisaniu i ponownym otwarciu dokumentu.
STUFF(
(SELECT ', ' + ATR.TrA_Kod + ': ' + ATR.TrA_Wartosc 
FROM CDN.TrAElemAtr ATR 
WHERE ATR.TrA_TrEId=_DATASOURCE_.TrE_TrEID 
FOR XML PATH (''))
,1,2,'')

36. Formularz Inwentaryzacji. Średnia cena zakupu dostaw znajdujących się w magazynie, dla którego wykonywana jest inwentaryzacja

Kolumna dla każdego z towarów wprowadzonych na Arkusz Inwentaryzacyjny wyświetla średnią cenę zakupu dostaw, które ciągle znajdują się w magazynie, dla którego wykonywana jest inwentaryzacja.
(SELECT CONVERT(DECIMAL(10,2), AVG(TwZ_Wartosc/TwZ_Ilosc)) 
FROM CDN.TwrZasoby 
WHERE TwZ_TwrId=TrE_TwrId AND TrE_MagId=TwZ_MagId)

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

Serwis, CRM, Obieg dokumentów

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

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

3. Lista Ofert Handlowych. Kolumna zawierająca numery dokumentów powiązanych

Kolumna wyświetla dokumenty, które powstały z przekształcenia danej Oferty Handlowej.
STUFF(
(SELECT ', ' + TRN.TrN_NumerPelny
FROM CDN.TraNag TRN
JOIN CDN.DokRelacje DR ON DR.DoR_DokumentId=TRN.TrN_TrNID
WHERE DR.DoR_ParentId = OfD_OfDId AND DR.DoR_ParentTyp=800 
FOR XML PATH (''))
,1,2,'')

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

5. Formularz Oferty Handlowej, zakładka Kontrahent. Kolumna z numerami dokumentów, które zostały wygenerowane dla danego Kontrahenta poprzez przekształcenie aktualnie otwartej Oferty

STUFF(
(SELECT ', ' + TRN.TrN_NumerPelny
FROM CDN.TraNag TRN
JOIN CDN.DokRelacje DR ON TRN.TrN_TrNId=DR.DoR_DokumentId
JOIN CDN.OfertyKnt OK ON DR.DoR_ParentId=OK.OfK_OfDId
WHERE OK.OfK_OfKId=_DATASOURCE_.Ofk_OfkId AND DR.DoR_ParentTyp=800 AND 
TRN.TrN_PodID=_DATASOURCE_.Ofk_PodID
FOR XML PATH (''))
,1,2,'')

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

Księgowość i Kasa/Bank

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

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

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

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

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

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

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

8. Lista deklaracji. Kolumna z polem kwotowym z deklaracji utworzonej w Comarch Deklaracje Podatkowe

Należy w sekcji Kolumny użytkownika dodać kolumnę o instrukcji pobierania danych: (select convert(decimal (18,2),replace(JSON_VALUE(DkE_WartoscTekst, '$.Deklaracja.PozycjeSzczegolowe.P_66'),',','.') ) AS kwota from cdn.DeklElem where DkE_DkNID= DkN_DkNID and DkE_Numer=50 and DkN_TypDeklar=17 and DkN_Wersja =32)CASE Brk_BrkId WHEN Kpe_BrkId THEN 'Tak' ELSE '' END Jest to przykład, który z deklaracji CIT-8 w wersji 32 zwraca wartość pola 66. Ta definicja działa dla Windows Server 2016 I późniejszych.  

Płace i Kadry

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

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

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

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

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

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

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

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

9. 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, WPE_WpeId) AS T WHERE "Row Number" = 1 AND WPE_PraId = PRI_PraId)

10. Deklaracje PIT pracowników. Kolumna z kwotą przychodu ze stosunku pracy (pozycja 29) z deklaracji PIT-11 za wybrany rok.

Potrzebne pola znajdują się w tabeli CDN.DeklElem. Należy wykonać złączenie do powyższej tabeli. W oknie personalizacji listy, w sekcji Tabele użytkownika w kolumnie Nazwa tabeli podajemy tabele CDN.DeklElem, a w kolumnie Instrukcja łączenia wprowadzamy pola łączące obie tabele oraz dodatkowy warunek dke_numer=1, który wskazuje na wypełnioną deklarację web w formacie JSON: dkn_dknid=dke_dknid and dke_numer=1 Następnie w sekcji Kolumny użytkownika należy dodać kolumnę o instrukcji pobierania danych: (select convert(decimal (18,2),replace(JSON_VALUE(DkE_WartoscTekst, '$.Deklaracja.PozycjeSzczegolowe.P_29'),',','.') )) W przypadku potrzeby odwołania się do innej pozycji z deklaracji PIT należy podać odpowiedni numer pola z pliku JSON.

OPT042 - Dodatkowe możliwości filtrowania list w programie

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 Start/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 Case ... When ... Then ... 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 wyfiltrować 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: Start/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: Start/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: Start/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)

OPT089 - Pakiet VAT e-commerce (OSS)

Data aktualizacji: 28-06-2022

1. Wstęp

W programie Comarch ERP Optima dostępne są funkcje związane z pakietem VAT e-commerce, który obowiązuje od 1 lipca 2021 roku. W skutek tych zmian w przepisach, w przypadku sprzedaży wysyłkowej (transakcje z konsumentami z innych krajów Unii Europejskiej) po przekroczeniu wartości 10.000 EUR łącznej sprzedaży do krajów UE, dostawca zobowiązany jest do przystąpienia do procedury VAT-OSS lub do rejestracji VAT w kraju przeznaczenia i rozliczania podatku VAT w tym kraju. Poprzez uczestnictwo w nowej procedurze VAT-OSS możliwe jest uniknięcie rejestracji do celów rozliczenia VAT w każdym kraju członkowskim, do którego dostarczane są towary. Procedura VAT-OSS umożliwia również rozliczenie podatku VAT z tego tytułu na jednej deklaracji składanej elektronicznie.

2. Ustawienia ogólne

2.1 Stawki VAT w Konfiguracji Programu

Przy sprzedaży na odległość wobec konsumentów z innych krajów UE należy stosować stawkę VAT obowiązującą w kraju, do którego dostarczane są towary. W związku z tym w Konfiguracji Programu/ Ogólne/ Stawki VAT dostępne są stawki VAT obowiązujące we wszystkich krajach Unii Europejskiej. Lista stawek podzielona jest na poszczególne kraje:

Stawki VAT.

Podczas wprowadzania bądź edytowania stawki VAT, na formularzu stawki znajduje się informacja czy jest to stawka podstawowa czy też obniżona. Wskazywany jest również prefiks kraju (pole obowiązkowe), którego dana stawka VAT dotyczy:

Formularz stawki VAT.

Podczas dodawania nowej stawki domyślnie podpowiada się stawka podstawowa oraz kraj PL. Dostępne do wyboru są kody krajów należących do Unii Europejskiej.

2.2 Karta kontrahenta

Na karcie kontrahenta dostępny jest rodzaj transakcji: Procedura OSS. Ten rodzaj powinien zostać wybrany dla tych kontrahentów będących osobami fizycznymi z innego kraju UE, dla których realizowana jest sprzedaż towarów na odległość. Pozwoli to na skorzystanie z uproszczonej procedury OSS w przypadku przekroczenia limitu 10 tys. EUR.

Formularz kontrahenta – wybór rodzaju transakcji.

Po wybraniu rodzaju transakcji Procedura OSS wymagane jest wskazanie prefiksu kraju UE na zakładce [Ogólne] karty kontrahenta. Jeżeli w programie sporządzana jest deklaracja Intrastat, po wybraniu na karcie kontrahenta rodzaju transakcji Procedura OSS możliwe jest wskazanie domyślnego kodu transakcji (podobnie jak dla rodzaju transakcji: Wewnątrzunijny). Jeżeli kontrahent ma na swojej karcie wybrany rodzaj transakcji Procedura OSS, ten rodzaj przenoszony jest domyślnie na dokument sprzedażowy w module Handel oraz w Rejestrze VAT Sprzedaży. W przypadku wybrania takiego kontrahenta na dokumencie zakupowym, podstawiony zostanie rodzaj transakcji Nabycie wewnątrzunijne. W przypadku konieczności ustawienia nowego rodzaju transakcji dla większej ilości kontrahentów, możliwe jest skorzystanie z operacji seryjnej Zmień status dostępnej na liście kontrahentów:

Operacje seryjne – zmiana statusu kontrahenta.

Po wyborze rodzaju transakcji Procedura OSS wymagane jest wskazanie kodu kraju wewnątrzunijnego. W przeciwnym razie seryjna zmiana statusu kontrahentów nie będzie możliwa.

2.3 Formularz kategorii

Na formularzu kategorii znajduje się sekcja Stawki VAT (procedura OSS) zawierająca tabelę z listą domyślnych stawek VAT dla poszczególnych krajów:

Formularz kategorii – Stawki VAT (procedura OSS)

Tabela zawiera takie informacje, jak: kod kraju, nazwa kraju i stawka VAT. Dla każdego kraju możliwe jest wskazanie tylko jednej stawki VAT dla procedury OSS przenoszonej na dokument z danej kategorii.

3 Zastosowanie procedury OSS w module Handel

3.1 Stawki VAT dla pozycji cennikowych

Na potrzeby ewidencjonowania dokumentów sprzedażowych w systemie procedury OSS, dla towarów i usług należy przypisać stawki VAT obowiązujące w poszczególnych Państwach Unii Europejskiej. Stawki te będą wykorzystywane na dokumentach sprzedażowych, na których zostanie zastosowany rodzaj transakcji: Procedura OSS. Na karcie pozycji cennika (menu Ogólne/ Cennik lub Handel/ Zasoby) na zakładce [Jednostki, EAN, VAT] w tabeli Stawki VAT (procedura OSS) po naciśnięciu przycisku  – Dodaj należy wskazać kod kraju UE, dla którego chcemy przypisać stawkę VAT, a następnie wybrać stawkę VAT, jaką jest opodatkowany towar w danym państwie Do wyboru dostępne są wyłącznie stawki VAT zdefiniowane dla tego kraju w menu Start/Konfiguracja/ Program/ Ogólne/ Stawki VAT. Otwórz – umożliwia zmianę kodu kraju lub zmianę stawki VAT dla danego kraju. – Usuń – umożliwia usunięcie stawki VAT przypisanej to towaru.

Pozycja cennika – Stawki VAT (procedura OSS)

Jeżeli na dokument związany ze sprzedażą zostanie wybrany kontrahent z rodzajem transakcji Procedura OSS, to dla każdej pozycji dokumentu będzie proponowana stawka VAT z karty cennikowej, z zakładki [Jednostki, EAN, VAT], zgodnie z kodem kraju odbiorcy wybranego na dokumencie. Operacje seryjne Dla towarów zaznaczonych na liście można seryjnie dodawać i usuwać stawki VAT dla procedury OSS. Funkcja jest dostępna w menu Ogólne/ Cennik lub Handel/ Zasoby pod przyciskiem   – Operacje seryjne/ Stawki VAT/ Dodaj/ Usuń stawki VAT dla procedury OSS:

Pozycja cennika – Stawki VAT (procedura OSS)

W pierwszym kroku należy określić, czy chcemy dodać czy usunąć stawki VAT dla zaznaczonych na liście pozycji cennikowych.

Podstawowe dla wszystkich państw UE – zaznaczenie tego parametru spowoduje, że dla każdego zaznaczonego towaru zostanie przypisana/ usunięta podstawowa stawka VAT każdego kraju unijnego (zdefiniowana w menu Start/Konfiguracja/ Program/ Ogólne/ Stawki VAT).

Dla wybranego państwa UE – po zaznaczeniu parametru należy wskazać kod kraju i jedną ze stawek VAT obowiązujących w tym kraju, którą chcemy przypisać bądź usunąć z zaznaczonych towarów. W przypadku, gdy jakiś towar ma już dodaną stawkę VAT dla wskazanego kraju i za pomocą operacji seryjnej chcemy dodać dla tego kraju inną stawkę VAT, to w skutek wykonania operacji seryjnej zostanie podmieniona stawka VAT dla tego kraju na karcie towaru zgodnie ze stawką VAT wskazaną w operacji seryjnej.

Operacja seryjna jest wykonywana za pomocą przycisku . Aby zablokować operatorowi możliwość seryjnego ustawiania stawek VAT dla procedury OSS, na karcie operatora (menu Start/Konfiguracja/ Program/ Użytkowe/ Operatorzy), na zakładce [Blokady dostępu] należy zaznaczyć blokadę zmiany procedury Seryjne ustawienie stawki VAT dla procedury OSS.

3.2 Dokumenty handlowe w procedurze OSS

Procedura OSS dotyczy dokumentów sprzedaży. W programie można ją zastosować na:
  • Fakturach Sprzedaży,
  • Wydaniach Zewnętrznych,
  • Rezerwacjach Odbiorcy,
  • Fakturach Pro Forma,
  • Fakturach Zaliczkowych,
  • Fakturach Finalnych,
  • Wydaniach Kaucji,
  • na korektach do powyższych dokumentów.
  Korzystanie z uproszczonej procedury rozliczania VAT (OSS) dotyczy sprzedaży B2C (transakcje pomiędzy przedsiębiorcą a osobą fizyczną). Aby wystawić dokument sprzedaży w procedurze OSS, należy wybrać na dokument kontrahenta (Nabywcę), który na swojej karcie, na zakładce [Handlowe] ma określony rodzaj transakcji: Procedura OSS. Wówczas lista stawek VAT pozycji cennikowych dodawanych na dokument zostanie zawężona do stawek obowiązujących w kraju kontrahenta wskazanego jako Odbiorca na dokumencie. Kraj Odbiorcy jest weryfikowany na podstawie jego prefiksu w NIP. Domyślnie dla pozycji podpowiada się stawka VAT przypisana dla kraju Odbiorcy na karcie towaru. W oknie Pozycja dokumentu można wskazać inną stawkę VAT spośród zdefiniowanych dla kraju Odbiorcy w menu Start/Konfiguracja/ Program/ Ogólne/ Stawki VAT. Jeśli na karcie towaru nie zdefiniowano stawki VAT dla kraju Odbiorcy, podczas dodawania pozycji na dokument, pojawia się informacja: Brak zdefiniowanej stawki VAT obowiązującej w kraju odbiorcy. Uzupełnij stawkę VAT na karcie towaru. W przypadku gdy na dokumencie określono rodzaj transakcji jako Procedura OSS i nie podano kodu kraju Odbiorcy, nie będzie można zapisać dokumentu.
Uwaga
Na Fakturze Sprzedaży do Wydania Zewnętrznego wystawionego w procedurze OSS, nie ma możliwości zmiany Odbiorcy i prefiksu NIP Odbiorcy.
Po wyborze kontrahenta (Nabywcy), który ma domyślny rodzaj transakcji: Procedura OSS, na dokumencie (nie dotyczy WKA) pojawi się parametr: Rozliczam podatek w OSS. Jest on domyślnie zaznaczony i oznacza, że podatek VAT z Faktury jest rozliczany za pomocą procedury OSS (One Stop Shop), czyli ta transakcja będzie rozliczana procedurą uproszczoną w deklaracji VIU-D (zaznaczenie parametru jest przenoszone do rejestrów VAT). Transakcja jest kwalifikowana do deklaracji VIU-D na podstawie daty sprzedaży. Ustawienie parametru Rozliczam podatek w OSS jest przenoszone na powiązane dokumenty:
  • w przypadku przekształcenia Faktury Pro Forma do Wydania Zewnętrznego, na WZ nie ma możliwości zmiany ustawienia tego parametru,
  • w przypadku przekształcenia Faktury Pro Forma do Faktury Zaliczkowej, na Fakturze Zaliczkowej można zmienić ustawienie tego parametru. Jeżeli do tej samej Faktury Pro Forma są tworzone kolejne Faktury Zaliczkowe, to na kolejnych Fakturach Zaliczkowych nie ma możliwości zmiany ustawienia parametru. Jego ustawienie przenoszone jest z pierwszej Faktury Zaliczkowej.
  Odznaczenie parametru Rozliczam podatek w OSS, skutkuje tym, że podatek od tej transakcji nie będzie rozliczany w deklaracji VIU-D. Natomiast stawki VAT są w dalszym ciągu naliczane dla kraju Odbiorcy. Jedynie zmiana rodzaju transakcji na dokumencie spowoduje ustawienie stawek VAT dla pozycji zgodnie z tym jaki zostanie wybrany rodzaj transakcji.

Pozycja cennika – Stawki VAT (procedura OSS)

Opakowania kaucjonowane Na Fakturze Sprzedaży dla opakowań kaucjonowanych z zakładki [Kaucje] ustawiana jest stawka VAT zgodna z krajem Odbiorcy. Na Wydanie Kaucji utworzone do Faktury Sprzedaży przenoszony jest rodzaj transakcji z Faktury: procedura OSS. Na Fakturze Sprzedaży do Wydania Kaucji dla kontrahenta z rodzajem transakcji: Procedura OSS, domyślnie jest zaznaczony parametr Rozliczam podatek w OSS. Jeżeli Wydanie Kaucji nie ma rodzaju transakcji Procedura OSS, to po przekształceniu do Faktury i zmianie na takiej Fakturze rodzaju transakcji na Procedura OSS, stawki VAT zostaną naliczone zgodnie z krajem Odbiorcy. Korekty do dokumentów Ustawienie rodzaju transakcji: Procedura OSS oraz parametru: Rozliczam podatek w OSS jest przenoszone na korektę z dokumentu korygowanego bez możliwości zmiany. Wyjątkiem jest korekta zbiorcza/ rabat, na którą rodzaj transakcji jest pobierany z karty kontrahenta. Na zbiorczej korekcie dla kontrahenta z rodzajem transakcji: Procedura OSS, domyślnie jest zaznaczony parametr: Rozliczam podatek w OSS. Współpraca z modułem Serwis – FS, WZ do Zlecenia Serwisowego Faktury Sprzedaży, Wydania Zewnętrzne wystawione do Zlecenia serwisowego – w zakresie procedury OSS, tworzone są na takich samych zasadach jak dokumenty wystawione w module Handel. Fiskalizacja Nie ma możliwości fiskalizacji Faktur Sprzedaży wystawionych w procedurze OSS. Faktura Sprzedaży do Paragonu Na Fakturę Sprzedaży utworzoną do Paragonu domyślnie jest przenoszony rodzaj transakcji z PA: Krajowy. Na takiej FS nie ma możliwości wyboru rodzaju transakcji: Procedura OSS. W przypadku ręcznego wyboru kontrahenta, który na karcie ma rodzaj transakcji: Procedura OSS, na FS zostanie ustawiony rodzaj transakcji: Wewnątrzunijny. RO, WZ do PA Podczas próby przekształcenia Rezerwacji Odbiorcy, Wydania Zewnętrznego wystawionych w procedurze OSS do Paragonu, wyświetla się komunikat: Nie można utworzyć paragonu do dokumentu o rodzaju transakcji procedura OSS. Przekształć dokument do faktury. Import/ eksport dokumentów w formacie XML Dla dokumentów eksportowanych i importowanych w formacie XML przenoszone jest ustawienie parametru: Rozliczam podatek w OSS oraz rodzaj transakcji: Procedura OSS. Podczas importu:
  • stawki VAT pozycji dokumentu, których nie ma w programie są dodawane do konfiguracji (menu Start/Konfiguracja/ Program/ Ogólne/ Stawki VAT),
  • dla zakładanych kartotek towarowych, stawka VAT z pliku XML jest uzupełniana na zakładce [Jednostki, EAN, VAT] pozycji cennika w sekcji dotyczącej procedury OSS. Na zakładce [Ogólne] jest uzupełniana polska podstawowa stawka VAT.
  Intrastat Dokumenty z procedurą OSS są uwzględniane w wyliczaniu deklaracji Intrastat. JPK_FA Faktury Zaliczkowe, Faktury Sprzedaży oraz korekty do Faktur wystawione w procedurze OSS są uwzględniane w pliku JPK_FA. JPK_MAG Wydania Zewnętrzne oraz korekty do WZ wystawione w procedurze OSS są uwzględniane w pliku JPK_MAG. JPK_V7 Faktury Sprzedaży wystawione w procedurze OSS nie są uwzględniane w pliku JPK_V7. Na takie dokumenty nie są przenoszone kody JPK_V7 z towarów i z karty kontrahenta, nie można również wskazać kodów JPK_V7 ręcznie. MPP, Odwrotne obciążenie Nie ma możliwości zastosowania Mechanizmu Podzielonej Płatności czy Odwrotnego Obciążenia dla transakcji wystawionych w procedurze OSS – transakcje te co do zasady stosowania wykluczają się. SENT Nie można utworzyć zgłoszenia SENT do Faktur Sprzedaży, Wydań Zewnętrznych o rodzaju transakcji Procedura OSS

4 Zastosowanie procedury OSS w rejestrach VAT

4.1 Procedura OSS na dokumentach w rejestrze VAT sprzedaży

Na dokumencie w rejestrze VAT sprzedaży dostępny jest rodzaj transakcji Procedura OSS. Może on zostać przeniesiony z karty kontrahenta lub wybrany bezpośrednio na dokumencie.
Uwaga
W przypadku wyboru na dokumencie w rejestrze VAT zakupu kontrahenta z domyślnym rodzajem transakcji Procedura OSS na dokumencie ustawiany jest rodzaj transakcji Nabycie wewnątrzunijne.
Po wyborze na dokumencie rodzaju transakcji Procedura OSS ukrywany jest parametr Rozliczać w VAT, pole Obow. podat., parametr Metoda kasowa oraz dane dla metody kasowej. Z dokumentu usuwane są kody JPK_V7 i na zakładce [JPK] użytkownik ma możliwość dodania atrybutów tylko w sekcji JPK_FA. Pojawia się natomiast zakładka [OSS], omówiona poniżej. Takie dokumenty nie są uwzględniane w pliku JPK_V7. Na dokumencie pozostaje natomiast możliwość zaznaczenia/odznaczenia parametru JPK_FA. W przypadku wyboru na dokumencie z rodzajem transakcji Procedura OSS kontrahenta i/lub kategorii z uzupełnionymi kodami JPK_V7 nie są one przenoszone na dokument. Po zmianie na dokumencie rodzaju transakcji na inny niż Procedura OSS kody JPK_V7 nie są automatycznie dodawane na dokument. Aby zostały przeniesione, należy dokonać modyfikacji dokumentu (np. dodać nową pozycję z taką kategorią). Do dokumentu z rodzajem transakcji Procedura OSS nie można wygenerować rozliczenia marży. Dokumenty z rodzajem transakcji Procedura OSS nie są wyświetlane na zakładce [Do VAT/JPK_V7] oraz na zakładce [Do deklaracji VAT-UE]. Dokumenty z rodzajem transakcji Procedura OSS przenoszone są za pomocą pracy rozproszonej oraz pliku VAT_R.txt. W przypadku importu takich dokumentów z pliku VAT_R.txt na listę kontrahentów dodawany jest podmiot z rodzajem transakcji Procedura OSS. W przypadku importu z pliku VAT_R.txt do rejestru VAT zakupu dokumentu dotyczącego kontrahenta z rodzajem transakcji Procedura OSS na dokumencie ustawiany jest rodzaj transakcji Nabycie wewnątrzunijne.

4.2 Zakładka OSS

Po wyborze rodzaju transakcji Procedura OSS na dokumencie w rejestrze VAT sprzedaży pojawia się dodatkowa zakładka [OSS], na której automatycznie zaznaczany jest parametr Rozliczam podatek w OSS, co oznacza, że dana transakcja zostanie uwzględniona na formularzu deklaracji VIU-DO Automatycznie ustawia się rok i kwartał, zgodnie z którym dokument zostanie zakwalifikowany na deklarację VIU-DO.  Kwartał ustawiany jest zgodnie z datą sprzedaży na dokumencie. Użytkownik ma możliwość odznaczenia tego parametru (również na dokumencie zaksięgowanym oraz na dokumencie z uzupełnioną Predekretacją). Odznaczenie parametru Rozliczam podatek w OSS powoduje ukrycie wszystkich danych na zakładce [OSS] za wyjątkiem pola Kraj odbiorcy, które to jest potrzebne do prawidłowego ustawienia stawki VAT na pozycjach dokumentu, zgodnej z krajem odbiorcy.

Formularz dokumentu w rejestrze VAT sprzedaży w PLN, zakładka OSS

Prefiks kraju odbiorcy domyślnie przenoszony jest z zakładki [Kontrahent]. Użytkownik ma możliwość jego zmiany. Zmiana prefiksu na zakładce [Kontrahent] powoduje zmianę prefiksu na zakładce [OSS]. Zmiana prefiksu na zakładce [OSS] nie powoduje zmiany prefiksu na zakładce [Kontrahent]. Nie ma możliwości zapisania dokumentu z zaznaczonym parametrem Rozliczam podatek w OSS bez uzupełnionego prefiksu kraju odbiorcy. Podczas próby zapisania takiego dokumentu pojawia się komunikat: Transakcja kwalifikowana do procedury OSS powinna mieć uzupełniony prefiks kraju. Po zaakceptowaniu komunikatu użytkownik jest przenoszony na zakładkę [OSS] z kursorem ustawionym w polu Kraj odbiorcy. Lista krajów na zakładce [OSS] jest analogiczna do listy krajów dostępnej na zakładce [Kontrahent]. W pierwszej kolejności na liście wyświetlane są kody krajów należących do Unii Europejskiej. W przypadku wyboru kraju pozaunijnego nie będzie możliwe dodanie pozycji na dokumencie, ponieważ nie ma zdefiniowanych stawek w Konfiguracji. Z tego względu prefiks kraju odbiorcy powinien być zawsze prefiksem kraju należącego do Unii Europejskiej. W polu Waluta podatku ustawiana jest waluta EUR, bez możliwości zmiany. W przypadku dokumentu dodanego w walucie innej niż EUR widoczna jest sekcja Kurs z ostatniego dnia kwartału, a gdy nieopublikowany z kolejnego dnia. Deklaracja VIU-DO zawiera wartości podatku w walucie EUR w przeliczeniu po kursie Europejskiego Banku Centralnego na koniec kwartału, a jeżeli kurs nie zostanie opublikowany to na kolejny dzień. Stąd na zakładce [OSS] la waluty dokumentu różnej od EUR istnieje możliwość wskazania odpowiedniego kursu. Na dokumencie w walucie PLN jako kurs domyślnie ustawiany jest Kurs EBC (Europejskiego Banku Centralnego) i pobierany jest z ostatniego dnia kwartału wskazanego na zakładce [OSS]. W przypadku braku notowania EBC (Europejskiego Banku Centralnego) na dokumencie ustawiany jest Kurs ręczny z notowaniem 1 EUR = 1,0000 PLN. Użytkownik ma możliwość zmiany na kurs Nieokreślony (również na dokumencie zaksięgowanym oraz na dokumencie z uzupełnioną Predekretacją). W przypadku dokumentu dodanego w walucie obcej innej niż EUR i PLN jako kurs domyślnie ustawiany jest Kurs ręczny z notowaniem 1 EUR = 1,0000 PLN, z możliwością zmiany na Nieokreślony (również na dokumencie zaksięgowanym oraz na dokumencie z uzupełnioną Predekretacją). Każda z pozycji dokumentu przeliczana jest po wskazanym kursie. W przypadku dokumentu dodanego w walucie innej niż EUR w polu Data kursu domyślnie ustawiany jest ostatni dzień kwartału do którego należy data sprzedaży.
Uwaga
Dokumenty w walucie różnej od EUR powinny być przeliczone po kursie na koniec kwartału, więc w przypadku, gdy są to dokumenty wystawione w trakcie kwartału, to kursu Europejskiego Banku Centralnego jeszcze z oczywistych przyczyn nie ma. Z tego względu na dokumencie ustawiany jest Kurs ręczny. Po zakończeniu kwartału użytkownik może skorzystać z operacji seryjnej Przelicz po kursie EBC lub dokonać przeliczenia dokumentów podczas dodawania deklaracji VIU-DO. Po przeliczeniu po kursie EBC jako typ kursu pozostaje Kurs ręczny z ustawionym odpowiednim notowaniem na ostatni dzień kwartału oraz wyliczonymi kwotami.

4.3 Stawki VAT na dokumencie w rejestrze VAT sprzedaży

Podczas dodawania pozycji na dokumencie z rodzajem transakcji Procedura OSS, stawki VAT są ograniczane do tych, które obowiązują w kraju unijnym wskazanym na zakładce [OSS] w polu Kraj odbiorcy. W przypadku braku stawki dla danego kraju unijnego, możliwe do wyboru są stawki obowiązujące w Polsce. Podczas próby dodawania pozycji na dokumencie z rodzajem transakcji Procedura OSS bez uzupełnionego prefiksu kraju na zakładce [OSS] lub z prefiksem kraju nienależącego do Unii Europejskiej pojawia się komunikat: Wskaż prawidłowy kraj unijny odbiorcy na zakładce OSS. Dodanie pozycji na dokumencie jest możliwe po wskazaniu na zakładce [OSS] prefiksu kraju należącego do Unii Europejskiej. Stawki pobierane są z Konfiguracji lub z formularza kategorii. Na dokumencie z rodzajem transakcji Procedura OSS, po wybraniu w pozycji dokumentu kategorii na formularzu której uzupełniono domyślną stawkę w sekcji Stawki VAT (procedura OSS), stawka ta jest ustawiana na pozycji dokumentu pod warunkiem, że obowiązuje ona w kraju wskazanym na zakładce [OSS]. Jeżeli na formularzu kategorii nie wskazano takiej stawki lub w pozycji dokumentu nie wybrano kategorii to ustawiana jest stawka podstawowa dla danego kraju pobierana z Konfiguracji. Na dokumencie z rodzajem transakcji innym niż Procedura OSS do pozycji może zostać przeniesiona stawka wskazana na formularzu kategorii w polu Stawka VAT. Po zmianie na dokumencie rodzaju transakcji na Procedura OSS, jeżeli dodano pozycję w stawce nieobowiązującej w kraju wskazanym na zakładce [OSS], podczas próby zapisania dokumentu pojawia się komunikat: Część stawek VAT na pozycjach dokumentu nie odpowiada stawkom kraju OSS. Czy chcesz zweryfikować stawki VAT? Wybierając Tak możesz zmienić stawki VAT, wybierając Nie zapiszesz dokument. Zaakceptowanie komunikatu powoduje przeniesienie na zakładkę [Ogólne] gdzie użytkownik ma możliwość weryfikacji stawki VAT. Wybór opcji Nie powoduje zapisanie dokumentu. Po zmianie na dokumencie rodzaju transakcji z Procedura OSS na inny, jeżeli na dokumencie dodano przynajmniej jedną pozycję w stawce VAT nieobowiązującej w Polsce, podczas próby zapisania dokumentu pojawia się komunikat: Na dokumencie wskazano stawki VAT różne od polskich. Czy chcesz zweryfikować stawki VAT? Wybierając Tak możesz zmienić stawki VAT, wybierając Nie zapiszesz dokument. Zaakceptowanie komunikatu powoduje przeniesienie na zakładkę [Ogólne] gdzie użytkownik ma możliwość zmiany stawki VAT. Wybór opcji Nie powoduje zapisanie dokumentu. Po zmianie prefiksu kraju na zakładce [OSS], jeżeli na dokumencie dodano przynajmniej jedną pozycję w stawce VAT nieobowiązującej w wybranym kraju, podczas próby zapisania dokumentu pojawia się komunikat: Część stawek VAT na pozycjach dokumentu nie odpowiada stawkom kraju OSS. Czy chcesz zweryfikować stawki VAT? Wybierając Tak możesz zmienić stawki VAT, wybierając Nie zapiszesz dokument. Zaakceptowanie komunikatu powoduje przeniesienie na zakładkę [Ogólne] gdzie użytkownik ma możliwość weryfikacji stawki VAT. Wybór opcji Nie powoduje zapisanie dokumentu.
Uwaga
Na dokumencie w rejestrze VAT zakupu dostępne są tylko stawki VAT obowiązujące w Polsce.

4.4 Przenoszenie Faktur Sprzedaży z modułu Handel

Podczas przenoszenia z modułu Handel Faktury Sprzedaży z rodzajem transakcji Procedura OSS przenoszone są wszystkie ustawienia z formularza Faktury na dokument w rejestrze VAT, gdzie podlegają edycji. Podczas przenoszenia z modułu Handel korekty zbiorczej na dokument w rejestrze VAT sprzedaży przenoszone są te same stawki co na pozycjach faktury zbiorczej, nawet jeśli dotyczą kraju innego niż ten wskazany w polu Kraj odbiorcy.

4.5 Lista dokumentów w rejestrze VAT sprzedaży

Kolumny dodatkowe Na liście dokumentów w rejestrze VAT sprzedaży dostępne są domyślnie ukryte kolumny:
  • Deklaracja OSS – jeżeli na dokumencie zaznaczono parametr Rozliczam podatek w OSS to w kolumnie wyświetlany jest kwartał i rok deklaracji, do którego zakwalifikowany jest dokument. W przypadku odznaczenia parametru Rozliczam podatek w OSS lub w przypadku gdy na dokumencie wybrano rodzaj transakcji inny niż Procedura OSS wyświetlana jest opcja Nie dotyczy.
  • Kraj OSS – w kolumnie wyświetlany jest prefiks widoczny na dokumencie w polu Kraj odbiorcy. Jeżeli nie został on uzupełniony to kolumna pozostaje pusta.
  W kolumnie Rodzaj transakcji uwzględniana jest opcja Procedura OSS.
Uwaga
W celu wyfiltrowania dokumentów dotyczących procedury OSS użytkownik może dodać na listę dokumentów w rejestrze VAT domyślnie ukrytą kolumnę Rodzaj transakcji i w filtrze nagłówka listy wskazać opcję Zawiera i wpisać Procedura OSS. Dodatkowo po dodaniu na listę kolumny Deklaracja OSS użytkownik ma możliwość wyfiltrowania dokumentów za dany kwartał dla konkretnej deklaracji. W celu wyfiltrowania dokumentów, które nie dotyczą procedury OSS, użytkownik może w kolumnie Rodzaj transakcji w filtrze nagłówka wskazać opcję Nie zawiera i wpisać Procedura OSS.
W przypadku dokumentów z rodzajem transakcji Procedura OSS w kolumnie VAT-7 oraz VAT-UE widnieje opcja Nie. Operacje seryjne Na liście dokumentów w rejestrze VAT sprzedaży dostępna jest grupa operacji seryjnych OSS, zawierająca operacje seryjne:
  • Przelicz po kursie EBC – funkcja umożliwia seryjne przeliczenie dokumentów po kursie Europejskiego Banku Centralnego dla dokumentów zakwalifikowanych do deklaracji VIU-DO w danym kwartale.

Parametry seryjnego przeliczenia dokumentów po kursie EBC

Po wybraniu kwartału i roku oraz naciśnięciu przycisku pioruna następuje przeliczenie dokumentów z rodzajem transakcji Procedura OSS, w walucie innej niż EUR i Kursem ręcznym z notowaniem 1=1, dla których w polu Rozliczam podatek w OSS wskazano wybrany w oknie operacji seryjnej rok i kwartał. Użytkownik nie musi zaznaczać na liście żadnych dokumentów. Dokumenty przeliczane są po kursie EBC z ostatniego dnia kwartału do którego należy data sprzedaży.
Wskazówka
Przykład: Data sprzedaży: 01.03.2022. Rozliczam podatek w OSS: 2 kwartał 2022. Dokument zostanie przeliczony po kursie Europejskiego Banku Centralnego opublikowanym na 31.03.2022.
Po przeliczeniu po kursie EBC na dokumencie w walucie innej niż EUR na zakładce [OSS] jako typ kursu pozostaje Kurs ręczny z ustawionym odpowiednim notowaniem oraz wyliczonymi kwotami. Dokumenty z Kursem ręcznym z notowaniem innym niż 1=1 oraz dokumenty z kursem Nieokreślony nie są przeliczane po kursie EBC. Jeżeli na ostatni dzień danego kwartału nie opublikowano jeszcze kursu EBC dla waluty EUR w oknie operacji seryjnej pojawia się ostrzeżenie: Na dzień [data] nie opublikowano kursu waluty. Jeżeli na ostatni dzień danego kwartału nie opublikowano jeszcze kursu EBC dla waluty EUR i w tym kwartale dodano dokumenty w walucie innej niż EUR to po naciśnięciu przycisku pioruna pojawia się komunikat: Nie można przeliczyć dokumentów w walutach innych niż EUR, ponieważ nie ma opublikowanego notowania kursu Europejskiego Banku Centralnego.
  • Zmień datę deklaracji VIU-DO – funkcja umożliwia seryjną zmianę daty deklaracji VIU-DO dla dokumentów z rodzajem transakcji Procedura OSS.

Parametry seryjnej zmiany daty deklaracji

Po wyborze opcji Zmień datę deklaracji VIU-DO pojawia się okno z domyślnie zaznaczonym parametrem Rozliczać w VIU-DO wraz z możliwością wskazania kwartału i roku jaki ma zostać ustawiony na podświetlonym/ zaznaczonych dokumentach. Użytkownik ma również możliwość odznaczenia parametru Rozliczam podatek w OSS na podświetlonym/ zaznaczonych dokumentach. Aby tego dokonać należy w oknie seryjnej zmiany daty deklaracji VIU-DO odznaczyć parametr Rozliczać w VIU_DO. Odznaczenie parametru powoduje, że wskazane dokumenty nie zostaną uwzględnione w deklaracji VIU-DO. Operacja seryjna Zmień rodzaj transakcji dostępna na liście dokumentów w rejestrze VAT sprzedaży umożliwia wybór rodzaju transakcji Procedura OSS. W przypadku wyboru tego rodzaju transakcji konieczne jest uzupełnienie prefiksu NIP. Podczas seryjnej zmiany rodzaju transakcji na Procedura OSS pojawia się komunikat: Zmieniając rodzaj transakcji na „Procedura OSS” zweryfikuj stawki VAT na dokumencie. Użytkownik powinien dokonać weryfikacji stawek na zmienionych dokumentach, ponieważ jeżeli nastąpi zmiana kraju odbiorcy np. z Austrii na Bułgarię to stawki VAT na dokumencie nie zostaną automatycznie zmienione na te obowiązujące w Bułgarii. Stąd konieczności ich weryfikacji przez użytkownika. Jeżeli na dokumencie jako rodzaj transakcji wybrano Procedura OSS to po wyborze operacji seryjnej Zmień kategorię i zaznaczeniu parametrów Zmień kategorię pozycji oraz Aktualizuj stawkę VAT i Uwz. w proporcji na dokument przenoszona jest stawka wskazana na formularzu kategorii w sekcji Stawki VAT (procedura OSS) pod warunkiem, że obowiązuje ona w kraju wskazanym na zakładce [OSS]. Zmianie ulega jedynie stawka VAT, wartości na pozycji się nie aktualizują. Jeżeli na formularzu kategorii nie wskazano takiej stawki lub wybrano stawkę nieobowiązującą w kraju wskazanym na zakładce [OSS] to stawka VAT na dokumencie nie jest zmieniana. Jeżeli na dokumencie jako rodzaj transakcji wybrano Procedura OSS to po wyborze operacji seryjnej: Dodaj kody JPK_V7, Aktualizuj kody JPK_V7 z kategorii, Dodaj atrybut JPK pojawia się komunikat uniemożliwiający wykonanie tej operacji. Ze względu na to, że podczas importu dokumentów z pliku możliwe jest dodanie kodu JPK_V7 na dokumencie z rodzajem transakcji Procedura OSS, istnieje możliwość skorzystania z operacji seryjnej Usuń kody JPK_V7. Wydruk Zestawienie transakcji do VIU-DO W rejestrze VAT sprzedaży z poziomu zakładki [Rejestry VAT] dostępny jest wydruk Klasyfikacja sprzedaży/ Zestawienie transakcji do VIU-DO. W przypadku dokumentów w walucie innej niż EUR prezentowane na wydruku kwoty pobierane są z dokumentu z zakładki [OSS]. Przed wykonaniem wydruku dokumenty powinny zostać przeliczone przez użytkownika po kursie EBC na koniec kwartału. Można do tego wykorzystać dostępną w rejestrze VAT sprzedaży operację seryjną Przelicz po kursie EBC. Przed wykonaniem wydruku pojawia się okno z możliwością wskazania kwartału i roku oraz z parametrem pozwalającym na określenie, czy drukować listę dokumentów czy tylko podsumowania Wydruk składa się z dwóch sekcji, odpowiadających formularzowi deklaracji VIU-DO:
  • C.2. Świadczenie usług z państwa członkowskiego identyfikacji oraz stałego miejsca prowadzenia działalności gospodarczej poza Unią Europejską oraz dostawy towarów wysyłanych lub transportowanych z państwa członkowskiego identyfikacji – do sekcji kwalifikowane są dokumenty z datą sprzedaży należącą do kwartału deklaracji VIU-DO,
  • C.5. Korekty kwot podatku VAT wykazanych w deklaracjach za poprzednie okresy wynikające z korekt dostaw towarów lub świadczonych usług – do sekcji kwalifikowane są dokumenty z datą sprzedaży należącą do innego kwartału niż kwartał deklaracji VIU-DO. Dokumenty są prezentowane na wydruku z podziałem na poszczególne kraje, rodzaj (Towary lub Usługi) oraz w ramach rodzaju z podziałem na poszczególne stawki VAT. Wydruk zawiera osobne podsumowanie dla każdej stawki VAT, rodzaju i kraju.

5 Deklaracja VIU-DO

W programie Comarch ERP Optima dostępny jest formularz Deklaracji dla rozliczania podatku VAT w zakresie procedury unijnej wraz z jej wydrukiem oraz wysyłką do systemu e Deklaracje. Deklaracja VIU-DO składana jest za okresy kwartalne w terminie do końca miesiąca następującego po każdym kolejnym kwartale. Termin nie ulega przesunięciu z uwagi na dni wolne. Nie można złożyć deklaracji przed upływem kwartału. Jeżeli deklaracja VIU-DO za dany kwartał została przeliczona i wysłana do systemu e-Deklaracje, a w tym kwartale pojawiły się kolejne dokumenty to zostaną one uwzględnione w deklaracji za kolejny kwartał. Do sporządzenia deklaracji VIU-DO konieczne jest pobranie modułu Księga Podatkowa lub Księga Handlowa lub Księga Handlowa Plus.

5.1 Konfiguracja

Deklaracja VIU-DO jest dostępna w menu Rejestry VAT/ Inne/ Deklaracje VIU-DO jeżeli Konfiguracji Firmy/ Dane firmy/Deklaracje i pełnomocnictwa w sekcji Podatnik składa deklaracje/odprowadza zaliczki z tytułu zaznaczono opcję VIU DO. Parametr jest domyślnie zaznaczony. Deklaracja VIU-DO składana jest do Drugiego Urzędu Skarbowego Warszawa Śródmieście, w związku z tym w polu US (VIU-DO) domyślnie wskazany jest ten Urząd. Pole podlega edycji. W Konfiguracji dostępna jest również sekcja Numer rachunku do deklaracji VIU-DO wraz z domyślnie uzupełnionym numerem rachunku: 84 1010 1010 0165 9315 1697 8000. Jest to konto bankowe dla wpłat podatku VAT do Urzędu Skarbowego dla płatności dokonywanych z Polski (rachunek prowadzony w walucie EUR). Pole podlega edycji. Numer z tej sekcji pojawia się na płatności do deklaracji VIU-DO.

5.2 Lista deklaracji VIU-DO

Po przejściu do menu Rejestry VAT/ Inne/ Deklaracje VIU-DO dostępna jest Lista deklaracji VIU-DO zawierająca kolumny:
  •  Kwartał – kwartał, za który składana jest deklaracja.
  •  Rok – rok, za który składana jest deklaracja.
  •  Wersja – wersja formularza deklaracji, zgodnie z którą wyliczona została deklaracja.
  •  Data obliczenia – data obliczenia deklaracji.
  •  Kwota – kwota należnego podatku VAT do wpłaty. Kwota prezentowana jest w walucie EUR.
  •  Status – status określający stan deklaracji (obliczona lub zamknięta).
  •  e-Deklaracje – informacje dotyczące statusu e-Deklaracji.
  •  Data wysłania – data wysłania deklaracji do systemu e-Deklaracje.
Istnieje możliwość wyświetlania listy deklaracji tylko za konkretny rok przez zaznaczenie parametru Rok i wybranie konkretnego roku. Wysyłka i odbiór UPO dostępne są z listy deklaracji VIU-D0, a nie jak w przypadku innych deklaracji z samego formularza deklaracji. Przycisk Wyślij umożliwia wysłanie deklaracji VIU-DO do systemu e-Deklaracje za pomocą podpisu kwalifikowanego. Przycisk Odbierz UPO służy do odebrania Urzędowego Poświadczenia Odbioru. Przycisk Zmień umożliwia podgląd utworzonej wcześniej Deklaracji VIU-DO. Po rozwinięciu dodatkowego menu (czarna strzałka obok przycisku ) dostępna jest opcja Podgląd UPO umożliwiająca podgląd Urzędowego Poświadczenia Odbioru.
Uwaga
Uwaga: Podczas edycji deklaracji VIU-DO za pomocą przycisku dane na deklaracji nie są przeliczane na nowo. Jeżeli w rejestrze VAT sprzedaży nastąpi zmiana związana z procedurą OSS to należy usunąć dodaną wcześniej deklarację VIU-DO i dodać ją na nowo.
Deklaracja VIU-DO jest zawsze widoczna na liście w kolorze czarnym. Przycisk  umożliwia usunięcie deklaracji o statusie obliczona. Wysyłka deklaracji do systemu e-Deklaracje powoduje zmianę jej statusu na zamknięta i blokuje możliwość jej usunięcia. W przypadku gdy podczas odbioru UPO w kolumnie e Deklaracje pojawi się Błąd przetwarzania to deklaracja zmienia ponownie status na obliczona i ponownie podlega usunięciu. Odbiór UPO pozostawia status zatwierdzona. Na liście deklaracji VIU-DO w menu kontekstowym pod prawym przyciskiem myszy dostępna jest opcja Odblokuj deklarację, która umożliwia zmianę statusu deklaracji do której odebrano UPO na obliczona. W takim przypadku z Preliminarza płatności usuwana jest płatność utworzona do deklaracji. Z listy deklaracji VIU-DO dostępny jest wydruk Urzędowego Poświadczenia Odbioru (w tym czarno-biały).

5.3 Dodanie deklaracji VIU-DO

Po naciśnięciu przycisku pojawia się okno z możliwością wskazania kwartału i roku, za który ma zostać dodana deklaracja.

 Dodawanie deklaracji VIU-DO

Po wybraniu kwartału i roku i naciśnięciu przycisku Utwórz deklarację następuje przeliczenie dokumentów dodanych do rejestru VAT sprzedaży z rodzajem transakcji Procedura OSS, w walucie innej niż EUR i Kursem ręcznym z notowaniem 1=1, dla których w polu Rozliczam podatek w OSS wskazano wybrany w oknie dodawania VIU-DO rok i kwartał. Poszczególne dokumenty przeliczane są po kursie Europejskiego Banku Centralnego z ostatniego dnia kwartału do którego należy data sprzedaży na dokumencie. Po przeliczeniu dokumentu po kursie EBC na dokumencie w walucie innej niż EUR na zakładce [OSS] jako typ kursu pozostaje Kurs ręczny z ustawionym odpowiednim notowaniem oraz wyliczonymi kwotami. Dokumenty, które zostały wcześniej przeliczone po kursie EBC (z notowaniem różnym od 1=1) nie są ponownie przeliczane po kursie EBC podczas dodawania deklaracji VIU-DO.
Uwaga
Uwaga: Dokumenty z rodzajem transakcji Procedura OSS, w walucie innej niż EUR i Kursem ręcznym z notowaniem 1=1 mogą również zostać przeliczone po kursie EBC na koniec kwartału za pomocą dostępnej w rejestrze VAT sprzedaży operacji seryjnej Przelicz po kursie EBC. Szczegóły funkcjonalności opisane zostały w punkcie nr 4.5.
Jeżeli na ostatni dzień danego kwartału nie opublikowano kursu EBC, a w danym kwartale są dokumenty w walucie innej niż EUR, które kwalifikują się na deklarację VIU-DO lub w przypadku braku połączenia z Internetem po naciśnięciu przycisku Utwórz deklarację pojawia się komunikat uniemożliwiający dodanie deklaracji: Nie można naliczyć deklaracji. Nie można przeliczyć dokumentów w walutach innych niż EUR, ponieważ nie ma opublikowanego notowania kursu Europejskiego Banku Centralnego. Podczas próby dodania deklaracji VIU-DO za okres wcześniejszy niż 3 kwartał 2021 r. pojawia się komunikat: Błąd wyliczania deklaracji. Formularz deklaracji obowiązuje za okres od 01.07.2021. Istnieje możliwość dodania tylko jednej deklaracji VIU-DO za dany kwartał. Jeżeli jest potrzeba korekty już wysłanej deklaracji to należy to zrobić w deklaracji za kolejny kwartał. W momencie przeliczania/ edycji deklaracji VIU-DO w aplikacji Comarch Deklaracje Podatkowe, na liście deklaracji VIU-DO w programie Comarch ERP Optima pojawia się okno z informacją: Trwa edycja deklaracji VIU-DO. Zamknij formularz deklaracji aby wrócić na listę.

5.4 Formularz deklaracji VIU-DO

Formularz deklaracji VIU-DO otwierany jest w aplikacji Comarch Deklaracje Podatkowe. Z programu Comarch ERP Optima przenoszone są następujące dane:
  • NIP podatnika – nie podlega edycji na formularzu deklaracji.
  •  Rok i kwartał, za jaki liczona jest deklaracja – nie podlega edycji na formularzu deklaracji.
  • Urząd Skarbowy, do którego adresowana jest deklaracja – nie podlega edycji na formularzu deklaracji.
  • Rodzaj podatnika (osoba fizyczna lub podmiot niebędący osobą fizyczną) – podlega edycji na formularzu deklaracji.
  • Pełna nazwa firmy lub nazwisko i imię dla osoby fizycznej – podlega edycji na formularzu deklaracji.
  • Dane z dokumentów wprowadzonych do rejestru VAT sprzedaży: kraj, stawki VAT, oznaczenie stawki (podstawowa lub obniżona), rodzaj dostaw (dostawa towarów lub świadczenie usług), podstawa opodatkowania wg danej stawki VAT oraz kwota podatku wg danej stawki VAT – podlegają edycji na formularzu deklaracji.
Do sekcji C.2. Świadczenie usług z państwa członkowskiego identyfikacji oraz stałego miejsca prowadzenia działalności gospodarczej poza Unią Europejską oraz dostawy towarów wysyłanych lub transportowanych z państwa członkowskiego identyfikacji kwalifikowane są dokumenty z rodzajem transakcji Procedura OSS z datą sprzedaży należącą do kwartału deklaracji VIU-DO. Dokument z rodzajem Usługi na deklaracji VIU-DO widoczny jest jako Świadczenie usług. Dokument z rodzajem Towary lub Środki trwałe na deklaracji VIU-DO widoczny jest jako Dostawa towarów. Kwoty przenoszone z programu Comarch ERP Optima na formularz deklaracji VIU-DO są sumą poszczególnych pozycji na dokumencie. Z kolei podstawa opodatkowania uzupełniona ręcznie na formularzu deklaracji VIU-DO jest przeliczana po odpowiedniej stawce. Z tego względu mogą pojawić się różnice w kwocie podatku VAT wynikające z zaokrągleń. Do sekcji C.5. Korekty kwot podatku VAT wykazanych w deklaracjach za poprzednie okresy wynikające z korekt dostaw towarów lub świadczonych usług kwalifikowane są dokumenty z rodzajem transakcji Procedura OSS z datą sprzedaży należącą do innego kwartału niż kwartał deklaracji VIU-DO. Do deklaracji VIU-DO nie są przenoszone pozycje w stawce ZW, NP oraz 0%. Na formularzu deklaracji dla każdego kraju w oddzielnym wierszu wykazana jest każda stawka z oznaczeniem Podstawowa/ Obniżona oraz kwota podatku VAT w danej stawce. Jeżeli na dokumencie w rejestrze VAT sprzedaży dodano pozycję w stawce VAT nieobowiązującej w wybranym na dokumencie kraju to taki dokument trafia na deklarację VIU-DU z Rodzajem stawki VAT jako Podstawowa. Dane przeniesione z dokumentów z programu Comarch ERP Optima podlegają edycji/ usunięciu na formularzu deklaracji VIU-DO. Po zmianie w pozycji stawki VAT, kwota VAT wyliczana jest na nowo. Podczas edycji pozycji w sekcji C.2 następuje weryfikacja, czy dla danego kraju nie dodano już pozycji z takim samym rodzajem dostaw i taką samą stawką VAT. Jeżeli taka pozycja została już dodana to pojawia się informacja uniemożliwiająca edycję pozycji: Taki element został już wybrany. Użytkownik ma również możliwość dodawania/ usuwania własnych pozycji na deklaracji VIU-DO. Za pomocą przycisku Dodaj państwo członkowskiego konsumpcji istnieje możliwość dodania nowego kraju ze zdefiniowanej listy krajów. Za pomocą przycisku Dodaj wiersz/ Usuń wiersz istnieje możliwość dodania/ usunięcia pozycji dotyczącej danego rodzaju dostaw i stawki VAT. W sekcji C.2 oraz C.3 istnieje możliwość dodania pozycji dla kraju, którego jeszcze nie ma na liście lub takiego który już jest, ale z inną stawką VAT lub z innym rodzajem dostaw. Nie ma możliwości dodania takiej samej pozycji, która już istnieje. Podczas próby dodania takiej pozycji pojawia się informacja: Taki element został już wybrany. Użytkownik powinien w takim przypadku dokonać modyfikacji już istniejącej pozycji. W sekcji C.2 i C.3 nie jest również możliwe dodanie pozycji z kwotą ujemną Za pomocą przycisku Usuń sekcję istnieje możliwość usunięcia wszystkich pozycji związanych z danym krajem w danej sekcji. Na formularzu deklaracji VIU-DO nie ma mechanizmu weryfikującego, czy stawka VAT uzupełniona w pozycji odpowiada stawkom danego kraju. W sekcji C.5 następuje walidacja, czy wskazano wcześniejszy kwartał niż ten, za który składana jest deklaracja VIU-DO. Kwoty w sekcji C.6 oraz kwota w sekcji C.7 w poz. 18 Całkowita kwota należnego podatku VAT do wpłaty są wyliczane automatycznie i podlegają modyfikacji. Kwota w poz. 18 jest wyliczana jako suma kwot z sekcji C.6 z pominięciem kwot ujemnych. Wszystkie kwoty na formularzu deklaracji VIU-DO wyświetlane są w walucie EUR. Płatność do deklaracji VIU-DO tworzona jest na kwotę z poz. 18 Całkowita kwota należnego podatku VAT w walucie EUR w momencie odbioru UPO. Kwota w PLN na płatności przeliczana jest po kursie EBC z dnia odbioru UPO. Termin płatności ustawiany jest na ostatni dzień miesiąca, a gdy przypada na dzień wolny to jest przesuwany na kolejny dzień roboczy. Istnieje możliwość zmiany kursu na płatności utworzonej do deklaracji VIU-DO. Jeżeli na dzień odbioru UPO nie opublikowano kursu EBC to na płatności ustawiany jest Kurs ręczny z notowaniem 1=1. Kurs ten podlega edycji. Jeżeli na deklaracji nie uzupełniono wszystkich wymaganych pól to podczas próby zapisania formularza wyświetlany jest komunikat: Niektóre pola nie zostały uzupełnione. Popraw błędy na formularzu. Wydruk deklaracji VIU-DO jest dostępny z poziomu otwartego formularza deklaracji pod przyciskiem . Podgląd wydruku deklaracji VIU-DO jest dostępny z poziomu otwartego formularza deklaracji pod przyciskiem .
Uwaga
Uwaga: Z poziomu formularza deklaracji VIU-DO nie ma możliwości ponownego jej przeliczenia. Jeżeli w rejestrze VAT sprzedaży nastąpi zmiana i deklaracja VIU-DO za ten kwartał nie została jeszcze wysłana do systemu e Deklaracje to należy ją usunąć i dodać ponownie.

5.5 Kwalifikowanie dokumentów do sekcji dotyczącej korekt

Jeżeli na dokumencie w rejestrze VAT sprzedaży z rodzajem transakcji Procedura OSS data sprzedaży należy do poprzedniego kwartału i za ten okres deklaracja VIU-DO została naliczona i wysłana do systemu e-Deklaracje to w polu Rozliczam podatek w OSS domyślnie ustawia się bieżący kwartał. Jeżeli data sprzedaży dokumentu należy do kwartału wcześniejszego niż poprzedni to w polu Rozliczam podatek w OSS domyślnie ustawia się bieżący kwartał. W przypadku dokumentu dodanego w walucie innej niż EUR w polu Data kursu domyślnie ustawiany jest ostatni dzień kwartału do którego należy data sprzedaży.

5.6 Księgowanie deklaracji VIU-DO

Jeżeli pobrano moduł Księga Handlowa lub Księga Handlowa Plus oraz jako rodzaj księgowości wskazano Księgowość kontową to Użytkownik ma możliwość zaksięgowania kwot z deklaracji VIU-DO z poziomu Rejestry VAT/ Inne/ Deklaracje VIU-DO. Deklaracja podlega księgowaniu po odebraniu poprawnego UPO. W schematach księgowych o typie Deklaracje w polu Kwota dostępne jest makro @VIUDODoZaplaty, które umożliwia księgowanie kwoty należnego podatku VAT do wpłaty. Podczas księgowania kwoty podatku, która jest zawsze wyrażona w EUR, następuje jej przeliczenie po średnim kursie NBP z dnia odebrania UPO. W przypadku braku notowania na ten dzień, księgowanie następuje według Kursu ręcznego z notowaniem 1=1. Księgowane kwoty w walucie EUR i po przeliczeniu na PLN są zgodne z kwotami widocznymi na płatności utworzonej do deklaracji VIU-DO. Użytkownik może zmienić kurs na płatności i zaksięgować według innego niż proponowany, wtedy zmieniana jest wartość w przeliczeniu na PLN, kwota w EUR pozostaje bez zmian. W schematach księgowych o typie Deklaracje w pozycji schematu dostępny jest parametr Księgowanie walutowe, umożliwiający księgowanie deklaracji w walucie obcej. Makro @Dokument dostępne w polu Opis (w nagłówku schematu oraz w elemencie schematu) w przypadku księgowania deklaracji VIU-DO generuje opis: DEK/Miesiąc/Rok/VIUDO. Deklaracja VIU-DO jest księgowana z datą ostatniego dnia miesiąca po kwartale, za który została złożona, za wyjątkiem wskazania jako daty księgowania opcji Data bieżąca. Z poziomu listy deklaracji VIU-DO istnieje możliwość dodawania predekretacji, pod przyciskiem Predekretacja lub za pomocą skrótu klawiszowego <Ctrl>+<F8>. Na liście deklaracji VIU-DO w menu kontekstowym pod prawym przyciskiem myszy dostępna jest opcja Usuń zapisy księgowe.  

Handel

OPT048 - Współpraca z urządzeniami zewnętrznymi w Comarch ERP Optima

Data aktualizacji: 04-08-2023

Wprowadzenie

Celem biuletynu jest przedstawienie urządzeń zewnętrznych, z którymi współpracuje program Comarch ERP Optima. W aktualnej wersji możliwa jest współpraca z następującymi urządzeniami zewnętrznymi:

Współpraca z drukarkami fiskalnymi

W aktualnej wersji program Comarch ERP Optima współpracuje z następującymi drukarkami fiskalnymi:
  • POSNET (oparte o protokół DF-3001, Thermal, Thermal HS i FV, HD, HD EJ, XL2 OnLine, Temo, XL2 Online)
  • ELZAB (Omega, Mera, Mera OnLine, ZETA),
  • INNOVA (Profit, Market, DF-1),
  • NOVITUS (Vivo, Vento, Quarto, Delio Prime (E) , Deon(E), Deon OnLine, Bono (E), Bono OnLine, HD Online),
  • TORELL (Duo Pro, Andros),
  • EMAR (Printo, Tempo 3),
  • Epson TM-T801FV.

W przypadku sterowników Elzab, Elzab Online, Novitus od 2.0, Posnet Thermal HS i FV możliwa jest komunikacja po protokole TCP/IP. W zależności od wyboru sterownika drukarki program podpowie domyślną wartość dla portu TCP/IP: Elzab i Elzab Online – 8000, Novitus od 2.0 – 6001, Posnet Thermal HS i FV – 6666.

W przypadku komunikacji po porcie COM niektóre drukarki wymagają ustawienia odpowiedniego sterowania przepływem danych. Użytkownik może wybrać w programie Comarch ERP Optima opcje:
  • ustawienia systemowe (program nie ustawia sterowania przepływem, brane są ustawienia systemu)
  • RTS (do sterowania przepływem jest wykorzystywana w porcie para linii RTS/CTS)
  • Xon / Xoff (sterowanie przepływem odbywa się przez wysłanie znaczników XOn oraz XOff)
  • RTS i Xon / Xoff (wykorzystuje obydwie metody sterowania przepływem)
  • brak (nie jest wykorzystywana żadna metoda kontroli przepływu danych)
Drukarka Posnet Temo podłączona bezpośrednio przez USB do poprawnej komunikacji musi mieć ustawione sterowanie przepływem: RTS. Przy pracy przez port COM parametr ten może być dowolny można ustawić ustawienia systemowe.
Uwaga
Drukarki fiskalne nie są przystosowane do fiskalizacji z wielu stanowisk jednocześnie. W celu zapewnienia poprawnej fiskalizacji należy unikać równoczesnego drukowania z kilku stanowisk.
Uwaga
W przypadku wydruku faktury fiskalnej na drukarce Posnet Temo, długość nazwy i adresu kontrahenta nie mogą przekraczać 40 znaków (zgodnie z dokumentacją drukarki). Jeżeli nastąpi przekroczenie tej wartości, pozycje te nie będą drukowane na fakturze.
W nowych drukarkach Posnet Thermal i Novitus Delio w konfiguracji drukarki można ustawić sterowanie przepływem, w Comarch ERP Optima musi być wybrana taka sama opcje (drukarki te mają domyślne ustawienie "brak"). Drukarka Epson w przypadku, gdy w Comarch ERP Optima dodany zostanie Paragon z towarami i kaucjami, ale nie dodano płatności na kaucje, to nie jest wysyłana żadna forma płatności do drukarki. Na innych drukarkach drukują się towary, kaucje i kwota paragonu. W drukarce Epson w takim przypadku drukuje się domyślna forma płatności gotówka. Również jeśli zostanie dodany Paragon z towarami i kaucjami i dodano płatności na kaucje, ale w ustawieniach drukarki jest zaznaczone nie drukuj form płatności, to wtedy zostanie wydrukowana domyślna forma płatności gotówka.

Ustawienia portów COM

ParametryPosnetElzabInnovaNovitusTORELLEMAR
Szybkość96009600 / 192009600960096009600
Parzystośćbrak (none)parzysta (even)brak (none)brak (none)brak (none)brak (none)
Liczba bitów888888
Bit stopu111111
Sterowanie przepływembrakbrak, xon/xoff, *brakbrakbrakbrak
Uwaga
W przypadku drukarek Elzab starszego typu należy sterowanie przepływem ustawić na: sprzętowe.

Drukarki w usługach terminalowych

Więcej informacji o konfiguracji połączenia drukarek fiskalnych w usługach terminalowych znajdą Państwo w biuletynie technicznym: „OPT060 - Comarch ERP Optima w środowisku terminalowym”.

Najczęściej pojawiające się problemy

Przy próbie wydruku pojawia się komunikat: „Nie zdefiniowano stawki VAT dla zw.”. Taki komunikat może pojawić się dla każdej stawki VAT niezdefiniowanej w konfiguracji programu Remedium
  • Wydrukować raport dobowy.
  • W Konfiguracja programu/ Ogólne/ Symbole stawek VAT należy dla stawki ZW ustawić oznaczenie takie, jakie jest dla niej przypisane na raporcie dobowym.
Przy próbie wydruku pojawia się komunikat: „Błędna interpretacja stawki podatkowej”. Remedium
  • Zmienić nazwę tego towaru (dodając np. kropkę na końcu). Towar kiedyś został sprzedany w innej stawce podatkowej, drukarka fiskalna to pamięta i nie pozwala wysłać takiego towaru z nową stawką.
  • Jeżeli to nie pomoże to może być problem z błędnym przypisaniem stawki. Należy wtedy wydrukować raport dobowy, potem w programie Comarch ERP OptimaKonfiguracja programu/ Ogólne/ Symbole stawek VAT dla odpowiedniej stawki przypisać oznaczenie takie, jakie jest dla niej na raporcie dobowym.
Przy próbie wydruku pojawia się komunikat: „Wydruk niemożliwy. Wybrana drukarka nie jest dostępna. W buforze są znaki do druku. Remedium
  • Z menu Narzędzia wykonać raport dobowy. Spróbować czy teraz paragony się fiskalizują.
  • Zmienić nazwę drukowanego towaru. Towar mógł zostać wysłany wcześniej na drukarkę z inną stawką podatkową.
  • Wyłączyć i włączyć drukarkę ponownie, aby towary dodrukowały się na paragon.
Przy próbie wydruku pojawia się komunikat: „Wydruk niemożliwy. Wybrana drukarka nie jest dostępna. Błąd komunikacji z drukarką”. Remedium
  • Należy sprawdzić w systemie Windows w menedżerze urządzeń ustawienia portu COM.
  • W programie Comarch ERP Optima wejść do Konfiguracji programu/ Ogólne/ Drukarki fiskalne i wybrać odpowiedni sterownik, port COM a następnie zapisać ustawienia dyskietką. Potem ikoną drukarki wykonać test połączenia z drukarką.
W usługach Terminalowych. Przy próbie wydruku pojawia się komunikat: „ODBC Serwer Driver. Serwer SQL nie istnieje lub odmówiono do niego dostępu Błąd sprawdzania licencji” lub „ODBC Server Driver does not exist for access denied for Microsoft OLE ODBC Driver”. Remedium. W momencie uruchomienia Comarch ERP Optima w okienku Rejestracja w programie należy kliknąć na ikonę Pokaż szczegóły i w polu serwer klucza wpisać nazwę serwera SQL do którego wpięty jest klucz HASP, a następnie zapisać wprowadzony wpis ikoną dyskietki.

Dodatkowe informacje

Uwaga
Drukarki w wersjach aptecznych nie są obsługiwane.
Uwaga
Drukarka Torell Andros w numerze paragonu nie drukuje kolejnych znaków „/”. Podczas fiskalizacji za pomocą driverów Comarch ERP Optima nie ma możliwości ingerowania w obsługę wyświetlacza.
Uwaga
W przypadku drukarek Posnet Temo USB, aby była możliwość komunikacji przez USB należy w menu drukarki włączyć obsługę USB. Domyślnie jest wyłączona. Następnie należy wykonać restart drukarki.
Uwaga
Jeżeli w nazwie towaru drukowanej na paragonie występują znaki specjalne, to w niektórych przypadkach może wystąpić problem z wydrukiem na drukarce fiskalnej. W celu uzyskania informacji na temat znaków niedozwolonych przez drukarkę, należy zapoznać się z dokumentacją konkretnego modelu drukarki lub skontaktować się z serwisem technicznym producenta drukarki.
Uwaga
Jednostki miary na paragonie. Comarch ERP Optima obsługuje tylko literowe jednostki miary (maksymalnie 5 liter), gdyż niektóre drukarki fiskalne nie akceptują cyfr w jednostkach miary. W drukarkach Emar Printo 57, Innova Market/Profit, Torell Duo Pro - przyjmowana jest tylko ilość a jednostka miary jest ignorowana. Jednostka miary jest drukowana w drukarkach: Elzab, Novitus, Posnet (z wyłączeniem wersji 1.01, 1.02).

Współpraca z kasami fiskalnymi

System Comarch ERP Optima współpracuje z następującymi rodzajami kas fiskalnych:
  • ELZAB (kasy II generacji: Alfa, Delta, Jota, Teta, Eco, Mini, K10 online, Mini LT online, Jota Online)
  • SHARP (ER-457P, ER-237P, ER-277P, ER-A285P)
  • NOVITUS (zgodne z protokołem Tango: Bravo, Nano , PS-3000, PS-4000E, Soleo, Sento online)

Ustawienia portów COM

Zgodnie z instrukcją użytkownika kasy fiskalnej. Prędkość na porcie COM w systemie Windows powinna być ustawiona tak samo jak w kasie fiskalnej.

Konfiguracja kas fiskalnych

Więcej informacji na ten temat znajdą Państwo w artykule Kasy fiskalne.

Najczęściej pojawiające się problemy

Przy próbie importu paragonów z kasy pojawia się komunikat: „Błąd komunikacji z kasą. Brak towaru []. Zaimportuj PLU z kasy. (Rekord nie został znaleziony.)". Remedium
  • W kasie fiskalnej znajdują się towary, które nie mają założonych odpowiadających im kart cennikowych w bazie Comarch ERP Optima. Należy wykonać import towarów z kasy w menu Ogólne/ Cennik.
  • Źle została przygotowana baza danych. Kody towarów w bazie powinny być wpisane jako cyfry bez zer wiodących, czyli, np. 1,2,3…10,11…100,101… itd. W kasach fiskalnych kody krótkie są to kody, które stosuje się najczęściej do prostej identyfikacji towarów dla sprzedaży ręcznej. Kody te charakteryzują się ograniczoną maksymalną wartością oraz ignorowaniem zer nieznaczących, co oznacza, że podając np. 003 kasa przyjmie kod towaru o nr 3. Ograniczenie wartości jest zależne od modelu kasy (ilości obsadzonej pamięci) i określa maksymalną wartość kodu, który kasa zidentyfikuje jako krótki.
Przy próbie nawiązania komunikacji z kasą pojawia się komunikat: „Błąd komunikacji z kasą. Cena poza zakresem lub programowano cenę zerową, a nie ustawiono flagi „cena otwarta”. Remedium
  • Wysyłany jest na kasę towar o niepoprawnej strukturze kodu EAN, np. w polu EAN jest znak inny niż cyfra np. 39309-75320. Kasy fiskalne akceptują tylko kody składające się z cyfr. Napis w pliku tekstowym musi być konwertowalny do liczby stałoprzecinkowej o określonej długości maksymalnej akceptowanej dla typu kasy fiskalnej.
  • Błędnie podany kanał multipleksera w konfiguracji programu.
Przy próbie wysłania towarów na kasę fiskalną z programu Comarch ERP Optima pojawia się komunikat: „Nie ustawiono stawki VAT ani grupy". Remedium W programie Comarch ERP Optima Konfiguracja programu/ Ogólne/ Działy dla kas fiskalnych należy zdefiniować nazwę działu (grupy) taką jaka jest ustawiona na kasie fiskalnej. Przy próbie wysłania towarów na kasę fiskalną z programu Comarch ERP Optima pojawia się komunikat: „Błąd komunikacji z kasą. Brak w konfiguracji symbolu stawki VAT dla stawki 22%". Taki komunikat może się pojawić w przypadku każdej stawki VAT. Remedium W programie Comarch ERP Optima Konfiguracja programu/ Ogólne/ Działy dla kas fiskalnych jest zdefiniowana nazwa działu, ale w Konfiguracja programu/ Ogólne/ Symbole stawek VAT (Kasy) nie ma przypisanego odpowiedniego symbolu fiskalnego. Przy próbie eksportu cennika do kasy pojawia się komunikat: „Napotkano niedozwolony znak”. Remedium
  • Nazwy działów towarowych nie mogą być jedno znakowe w Konfiguracja/ Program/ Ogólne/ Działy dla kas fiskalnych. Dla kas Novitus – nazwa działu lub towaru ma być od 3 do 18 znaków.
  • W bazie towarowej są takie towary o dłuższej nazwie niż przyjmuje kasa, np. Opakowanie karton 20 szt. oraz Opakowanie karton 100 szt. – z punktu widzenia kasy to są takie same towary (pierwsze 18 znaków jest takie same, nie uwzględniając wielkości liter).
  • przy porównaniu nazw nie są brane pod uwagę znaki spacja,-,*,= itp. czyli dla kasy fiskalnej np. Novitus Soleo towar o nazwie PLANDEKA58M jest tym samym towarem co towar o nazwie PLANDEKA 58M.
  • niedozwolone znaki w nazwach towarów których nie akceptuje kasa fiskalna typu %@* itp.
Przy próbie komunikacji z kasą pojawia się komunikat: „Nie udało się nawiązać połączenia z kasą". Remedium Należy sprawdzić w systemie Windows w menedżerze urządzeń prędkość dla portu COM. Prędkość na porcie COM w systemie Windows powinna być ustawiona taka sama jak na kasie fiskalnej.

Czytniki kodów kreskowych

Comarch ERP Optima współpracuje z każdym czytnikiem kodów kreskowych, który emuluje klawiaturę - ma możliwość wpięcia go do portu klawiatury. Czytnik możemy wykorzystywać do:
  1. Wpisywania kodu EAN na formularz towaru. Karty cennikowe muszą mieć wypełnione pole EAN. Jeśli pozycja nie posiada własnego kodu (pole EAN jest puste) – wciśnięcie przycisku nadaje 13-znakowy kod EAN rozpoczynający się od 201 lub należy ustawić się w polu EAN i odczytać czytnikiem taki kod z towaru.
    Uwaga
    Wpisany tu kod kreskowy jednoznacznie identyfikuje pozycję, tzn. w jednej bazie nie mogą istnieć dwa towary o takim samym kodzie paskowym.
  2. Odszukiwania pozycji w cenniku/ na liście zasobów – operacje można wykonać z poziomu Cennika/Listy zasobów – zakładka Wg EAN.
  3. Dopisywania pozycji na dokument, w tym celu należy w Konfiguracja/ Firma/ Handel/ Parametry zaznaczyć w sekcji Dodawanie pozycji na dokumencie parametr edycja na liście – Wprowadzenie towarów polega na ustawieniu się w dokumencie w tabelce z towarami i odczyt czytnikiem kodu EAN, program szuka na liście zasobów pozycji o zadanym kodzie i jeśli taki kod istnieje pozycja zostanie dopisana. Pozostaje ustalenie ilości i ceny.
  4. Wprowadzania towaru jako składnika na recepturę.
Aby można było korzystać z czytnika kodów należy w Comarch ERP Optima zaznaczyć: w Konfiguracji firmy/ Handel/ Parametry parametr Sprzedaż tylko wg kodów EAN. Jeśli parametr jest zaznaczony to podczas wpisywania pozycji na dokument program najpierw wyszukuje towar wg pola kod EAN, jeśli nie znajdzie towaru o takim kodzie EAN to przeszukuje listę wg kodu towaru, a jeśli nie znajdzie towaru o podanym kodzie – to w ostatniej kolejności przeszukuje listę wg nazwy. Kody wagowe Podczas wystawiania dokumentów w systemie Comarch ERP Optima istnieje możliwość odczytywania tzw. kodów wagowych (zawierających informację o wadze towaru). Kody takie są drukowane przez wagi, natomiast w chwili odczytu program rozpoznaje, że jest to kod wagowy i odpowiednio odczytuje ilość, wprowadzając ją na dokument. Sam towar jest rozpoznawany na podstawie 4-znakowego identyfikatora towaru, wpisanego w polu EAN na karcie towaru.
Uwaga
Funkcja odczytywania kodów wagowych nie działa na dokumentach Przyjęcia Wewnętrznego Produktów (PWP) oraz Rozchodu Wewnętrznego Składników (RWS).
Comarch ERP Optima współpracuje z kodami wagowymi, które zaczynają się od 27 lub 29. Kod wagowy ma określoną strukturę, w związku, z czym:
  • wygenerowany kod wagowy ma mieć 13 znaków i rozpoczynać się prefiksem od 20 do 29 (trzeba zaprogramować poprawnie wagę metkującą).
  • kod EAN w programie Comarch ERP Optima zapisany na karcie towaru musi mieć wpisane 4 znaki (od 3 do 6 znaku z 13 znakowego kodu EAN).
  • waga towaru nie może przekraczać 99.999 kg.
Uwaga
Funkcja odczytywania kodów wagowych działa tylko, jeśli w Konfiguracji firmy/ Handel/ Parametry wybrano parametr: Dodawanie pozycji na dokumencie jako: edycja na liście.
Przykłady:
  1. Towar o wadze 1,525 kg jest oznaczony numerem 29 1234 V 01525 K. Numer 1234 jest numerem tego towaru.
  2. Towar o masie np. 1,52 kg jest oznaczony numerem 27 0001 V 01520 K. Numer 0001 jest numerem danego towaru.

Drukarki etykiet

System Comarch ERP Optima współpracuje z następującymi drukarkami etykiet:
  • Dymo z serii Label Writer: 400 i 450 (Duo i Turbo)
  • Brother: QL-560 i QL-580N
W programie dostępne są wydruki etykiet opracowane w edytorze Generator Raportów dla odpowiednich rozmiarów papieru. Z listy cennikowej i kontrahentów dostępne są następujące wzory wydruków:
  • Dymo – Wzór: 57 x 32mm, 89 x 36 mm
  • Brother – Wzór: 29 x 90 mm, 62 x 100 mm
Uwaga
W przypadku drukarki Dymo dla wydruku wykonywanego bezpośrednio z menu wydruków, konieczne jest ustawienie we właściwościach drukarki w systemie Windows, w preferencjach drukowania (opcje zaawansowane), opcji „99012 Large Address” dla rozmiaru papieru.

Współpraca z kolektorami danych

System Comarch ERP Optima współpracuje z następującymi typami kolektorów:
  • Cipherlab (z serii 8000, 8001, 8300, 8400)
  • Opticon   (z firmy OptiData, np. Opticon PHL-2700)
  • BHT
  • Dolphin
Uwaga
Wymagamy, aby kolektor posiadał wgrane oprogramowanie oryginalne producenta, nie importera. Jeżeli jest inaczej może być konieczność przeprogramowania kolektora odpowiednim oprogramowaniem dostępnym na stronie producenta.
Możliwa jest współpraca z kolektorami z systemem znakowym na standardowych sterownikach Comarch ERP Optima. Kolektory z wbudowanym systemem operacyjnym nie będą działać ze standardowymi sterownikami jednak możliwe jest zastosowanie dodatkowych rozwiązań opracowanych przez innych producentów np. krakowską firmę OPTIDATA – więcej na ten temat w punkcie 6.7. Konfiguracja danych dotyczących współpracy z kolektorem jest możliwa z poziomu Konfiguracji stanowiska/ Ogólne/ Kolektor. Należy tam wskazać przede wszystkim typ kolektora, z którym będzie współpracował program oraz port COM, przez który będzie przebiegała transmisja danych. Należy również wskazać protokół, wg, którego przebiega transmisja oraz inne parametry współpracy. W części Definicja rekordu należy podać specyfikację dotyczącą formatu pliku przesyłającego dane.
Uwaga
Po wybraniu typu kolektora program proponuje domyślne ustawienia parametrów transmisji. Użytkownik powinien jednak skontrolować, czy proponowane ustawienia są zgodne ze specyfikacją producenta kolektora.
W przypadku, gdy kolektor komunikuje się z komputerem przy wykorzystaniu tranceivera należy dodatkowo zaznaczyć parametr Używaj tranceivera. Obsługa kolektorów jest zrealizowana w taki sposób, żeby umożliwić automatyczne dodawanie towarów wprowadzonych do kolektora na dokumenty handlowe i magazynowe oraz na arkusze inwentaryzacyjne. Możliwość importu danych z kolektora dostępna jest z poziomu większości formularzy dokumentów. Import z kolektora następuje automatycznie po wciśnięciu przycisku „Kolektor danych” lub kombinacją klawiszy <CTRL>+<ALT>+<K>. Na podstawie danych z Konfiguracji stanowiska program nawiązuje łączność z kolektorem danych, a następnie wywołuje transmisję. W efekcie na formularz dokumentu zostają wpisane towary wraz z ilościami. Ilości są wyrażone zawsze w jednostkach podstawowych. Ceny na dokumencie są proponowane przez program, zgodnie z obowiązującymi zasadami. W przypadku dokumentów zakupowych (FZ, PZ, PW, ZD) proponowane są ostatnie ceny zakupu. W przypadku dokumentów sprzedażowych (FA, WZ, RO, FPF…) – proponowane są ceny sprzedaży z grupy cenowej skojarzonej z kontrahentem wpisanym na dokument, z uwzględnieniem wszystkich rabatów.
Uwaga
Program Comarch ERP Optima posiada funkcję odbioru danych z kolektora, nie potrafi wysłać danych na kolektor.
Uwaga
Funkcja importu danych z kolektora nie działa w przypadku dokumentów korygujących oraz dokumentów, na których zblokowana jest możliwość dopisywania nowych pozycji (np. Faktura Sprzedaży utworzona na podstawie WZ z różnych magazynów).

Konfiguracja na przykładzie kolektora Cipherlab 8300 dla EAN13

Pobranie odpowiedniej aplikacji ze strony producenta Ze strony WWW producenta http://www.cipherlab.com pobieramy program „Generator Aplikacji” z sekcji Download. Program dostępny również na płytach CD z oprogramowaniem dołączonym do kolektora. Zdefiniowanie długości rekordu w kolektorze W Generatorze Aplikacji należy wybrać z menu kontekstowego opcję Edit zakładka Form i ustawić odpowiednio parametry rekordu (Rys. 1), w naszym przypadku ustawiamy stałą długość dla kodów EAN 13, odpowiednio:
  • #1 – Pole przeznaczone na EAN: Typ danych: tekst; Min długość: 0; Max długość: 13
  • #2 – Pole przeznaczone na ilość: Typ danych: liczbowy; Min długość: 0; Max długość: 10
  • #3 – Pole przeznaczone na cechę (pole opcjonalne): Typ danych: tekst; Min długość: 0; Max długość: 20

Formularz ustawień długości rekordu w kolektorze

Dla każdej linii rekordu w kolumnie Properties należy wcisnąć przycisk More… i ustawić „Fixed data length” na wartość, która jest w polu „Max length” (Rys. 2). Należy również ustawić odpowiednio dopełnienie do określonej ilości znaków. W tym celu w generatorze aplikacji kolektora wybieramy z rozwijalnej listy dopełnienie od lewej strony typu spacja, wybieramy więc „Left alligned (padded with space)”. Opcja ta służy do tego, aby zaczytując kolektorem towar o kodzie EAN krótszym niż 13 znaków program dopełniał go (w naszym przypadku spacjami) do 13 znaków, gdyż taką długość kodów EAN zdefiniowaliśmy w kolektorze (Rys. 2).

Formularz ustawień długości znaków dla danych

Przesłanie ustawień z Generatora Aplikacji do kolektora W kolektorze danych należy wybrać opcje 3. Narzędzia/ 6. Ładuj aplikację i wczytać ustawienia z Generatora aplikacji - polecenie Download Application w menu kontekstowym Generatora Aplikacji. Nastąpi wówczas nawiązanie komunikacji i przesył danych do kolektora. Ustawienie parametrów połączenia w kolektorze W kolektorze danych Wybrać opcje 3. Narzędzia/ 1. Ustawienia programu Ustawić:
  • Download Interface – Cradle-IR
  • Upload Interface – Cradle-IR
  • Transmission Speed – Baud rate – 9600 bps
Ustawienie parametrów dla połączenia z kolektorem w Comarch ERP Optima W programie Comarch ERP Optima Konfiguracja stanowiska/ Ogólne/ Kolektor w sekcji Ustawienia sterownika wybieramy sterownik Cipherlab (Rys. 3). Jeżeli kolektor używa transceivera to zaznaczamy odpowiedni czek, następnie ustawiamy:
  • Protokół – SKKBHT
  • Prędkość transmisji – 9600
  • Parzystość – Brak
  • Bity danych – 8
  • Bity stopu – 1
Ustawienie definicji rekordu kolektora w Comarch ERP Optima W programie Comarch ERP Optima, w Konfiguracji stanowiska/ Ogólne/ Kolektor w sekcji Definicja rekordu ustawiamy w naszym przypadku dla EAN 13 znakowego odpowiednio parametry (Rys. 3):
  • Długość rekordu – 24
  • Początek pola kodu towaru – 0
  • Koniec pola kodu towaru – 12
  • Początek pola ilości – 14
  • Koniec pola ilości – 23

Formularz dla ustawień kolektora Comarch ERP Optima

Import danych z kolektora do Comarch ERP Optima Po ustawieniu powyższych parametrów połączenia oraz zdefiniowaniu prawidłowej długości rekordu w kolektorze, wybieramy w kolektorze funkcję 1. Collect data i zaczytujemy do kolektora kody towarów EAN w odpowiednich ilościach. Następnie w kolektorze wybieramy opcję 2. Upload data a w programie Comarch ERP Optima na formularzu dokumentu ikoną Kolektor danych zaczytujemy dane z kolektora.

Przeprogramowanie frameware kolektora Cipherlab

Jeżeli kolektor posiadał wgrane oprogramowanie importera, a nie oryginalne producenta należy wówczas takiemu kolektorowi przeprogramować jego środowisko programowe, tzw. „frameware”. Pliki zawierające środowisko programowe kolektora mają rozszerzenie .SHX, dostępne do pobrania ze strony producenta. W momencie włączenia kolektora na dole ekranu pod napisem „Welcome” możemy sprawdzić jaka jest jego obecna wersja frameware. Aby przeprogramować kolektor należy wykonać następujące czynności:
  1. Wyłączamy kolektor.
  2. Włączamy kolektor kombinacją klawiszy: 7,9 i przycisk włącz (Power).
  3. Wybieramy: 6. Load Program -> 1. Cradle-IR -> 6. Baud rate: 9600 -> please place In Cradle (odstawiamy kolektor na tranceiver).
  4. Uruchamiamy program ProgLoad.exe. Podajemy typ komunikacji, numer portu COM, prędkość transmisji oraz wskazujemy plik .SHX z frameware, zgodnie z rysunkiem 4.
  5. Wciskamy przycisk OK. Po nawiązaniu połączenia z kolektorem i wykonaniu downloadu wyłączamy kolektor.
  6. Włączamy kolektor i wykonujemy programowanie Generatorem Aplikacji zgodnie z punktem 5.1.

 Formularz programu ProgLoad

Uwaga
Środowisko kolektora z którym poprawnie działa Comarch ERP Optima to starszy frameware w wersji U8000-2600.SHX. Do pobrania ze strony producenta. Przeprogramowanie na tą wersję wykonywać gdy nie można uzyskać komunikacji Comarch ERP Optima z obecną wersją frameware kolektora.

Najczęściej pojawiające się problemy

Przy próbie odczytu danych z kolektora pojawia się komunikat: „Brak danych w kolektorze”. Remedium
  • Sprawdzić czy prędkość transmisji jest ustawiona taka sama w kolektorze jak w konfiguracji w programie Comarch ERP Optima.
  • Sprawdzić w kolektorze, który korzysta z transceivera czy w ustawieniach parametry Upload oraz Download Interface została ustawiona w obu miejscach opcja na Cradle-IR.
  • Źle jest ustawiony rekord w kolektorze lub definicja rekordu w Comarch ERP Optima.
Przy próbie odczytu danych z kolektora CipherLab pojawia się komunikat: „Wielokrokowa operacja wygenerowała błędy”. Remedium Problem związany jest z nieprawidłowym zaprogramowaniem kolektora. Należy sprawdzić jak jest ustawione dopełnienie, czy nie jest zaznaczona opcja konwersji kodu np. 12-znakowego na 13-znakowy kod EAN, a w kolektorze ustawiony jest EAN-14 z dopełnianiem, czy zostały zaznaczone dodatkowe błędne parametry.

Przykład ustawień dla kolektora Cipherlab 8400 (kody EAN13)

Zakładając, że kolektor posiada domyślne ustawienia dystrybutora (Torell) konfiguracja po stronie Comarch ERP Optima wygląda jak poniżej (Konfiguracja stanowiska/ Ogólne/ Kolektor). W sekcji Ustawienia sterownika wybieramy sterownik Cipherlab (C:\Program Files\Comarch ERP Optima\cdn_ciph.dll). Jeżeli kolektor używa transceivera, to zaznaczamy odpowiedni czek, a następnie ustawiamy:
  • Protokół – YMODEM
  • Prędkość transmisji – 115200
  • Parzystość – Brak
  • Bity danych – 8
  • Bity stopu – 1
  • Bity stopu – 1
Ustawienie definicji rekordu kolektora w Comarch ERP Optima: W menu Konfiguracja stanowiska/ Ogólne/ Kolektor w sekcji Definicja rekordu ustawiamy (w tym przypadku dla EAN 13 znakowego) odpowiednio parametry:
  • Długość rekordu – 24
  • Początek pola kodu towaru – 0
  • Koniec pola kodu towaru – 12
  • Początek pola ilości – 14
  • Koniec pola ilości – 23

Przykład ustawień dla kolektora BHT Denso w Comarch ERP Optima

Sterownik: C:\Program Files\Comarch ERP Optima\cdn_coll.dll
  • Protokół: SKKBHT
  • Prędkość transmisji: 19200
  • Parzystość: brak
  • Bit danych: 8
  • Bit stopu: 1
  • Używaj tranceivera: odznaczone
Definicja rekordu:
  • Długość rekordu: 30
  • Pocz. pola towaru: 0
  • Koniec pola tow.:19
  • Pocz. pola ilość: 21
Uwaga
W przypadku gdy z kolektora przesyła się na dokument tylko pierwsza pozycja należy w rejestrze systemowym Windows dodać w gałęzi [HKEY_LOCAL_MACHINE\SOFTWARE\CDN\Kolektory] ciąg o nazwie „Brak zakonczenia linii” i ustawić dla tego wpisu wartość „1”.

Przykład ustawień dla kolektora firmy OPTIDATA

Ustawienie parametrów połączenia w kolektorze
  • Prędkość transmisji – 19200
  • Parzystość – Brak
  • Bity danych – 8
  • Bity stopu – 1
Na urządzeniu należy wybrać profil „ERP XL” co spowoduje automatyczne ustawienie powyższych parametrów. W tym celu należy wejść do menu Parametry następnie wprowadzić odpowiednie hasło odszukać opcję „Profil” i wybrać profil „ERP XL” (jest on zgodny z Comarch ERP Optima). W przypadku niektórych rodzajów kolektorów należy w doku komunikacyjnym – na spodzie podstawki komunikacyjnej odpowiednio ustawić grupę mikroprzełączników na takie same wartości jak na porcie COM. Konfiguracja szerokości pól w kolektorach OptiData jest stała i nie podlega zmianom, przy czym kolektory poprawnie obsługują zarówno 8 jak i 13 znakowe kody kreskowe. Ustawienie parametrów dla połączenia z kolektorem w Comarch ERP Optima W programie Comarch ERP Optima, w Konfiguracji stanowiska/ Ogólne/ Kolektor w sekcji Ustawienia sterownika wybieramy sterownik Cipherlab (Rys. 5). Nie zaznaczamy czeku używaj tranceivera a następnie ustawiamy parametry:
  • Protokół – SKKBHT
  • Prędkość transmisji – 19200
  • Parzystość – Brak
  • Bity danych – 8
  • Bity stopu – 1
Ustawienie definicji rekordu kolektora w Comarch ERP Optima
  • Długość rekordu – 44
  • Początek pola kodu towaru – 0
  • Koniec pola kodu towaru – 19
  • Początek pola ilości – 21
  • Koniec pola ilości – 33

Formularz dla ustawień kolektora w Comarch ERP Optima

Terminale płatnicze

Comarch ERP Optima zapewnia współpracę z następującymi terminalami:
  • Verifone VX 520 dystrybuowanym przez eService
  • Verifone VX 520 dystrybuowanym przez First Data Polcard
  • Ingenico iCT220 ETH dystrybuowanym przez First Data Polcard
  • Ingenico Desk 3200 dystrybuowanym przez First Data Polcard
  • ING
  • Polskie ePłatności
Za pomocą terminali płatniczych obsługiwane są następujące operacje kartą płatniczą:
PolcardeServiceINGPolskie ePłatności
obciążenie karty płatniczej
zwrot środków płatniczych na kartę
Szczegóły współpracy terminala płatniczego z programem Comarch ERP Opima opisane są w artykule terminale płatnicze

OPT009 - Import danych z arkusza Microsoft Excel

Data aktualizacji: 09-07-2021

Eksport /Import - przygotowanie danych

Od wersji 2012 Comarch ERP Optima można zaimportować towary i kontrahentów w takim formacie jak zostały wyeksportowane z programu. Oznacza to, że jeśli wykonamy eksport do MS Excel, zmodyfikujemy dane np. ceny dla towarów to możemy zaimportować taki plik bez konieczności zmian nazw kolumn. Dane można wyeksportować za pomocą ikony , która dostępna jest pod listą odpowiednio kontrahentów (Ogólne/ Kontrahenci) oraz towarów/usług (Ogólne/ Cennik). Dane można zaimportować za pomocą ikony , która dostępna jest obok ikony do eksportu. Import można wykonać również z poziomu menu Narzędzia/ Importy/ Słowników z pliku/ Kontrahenci lub Cennik. Przy imporcie cennika, w oknie Parametry importu cennika należy wybrać: Plik w formacie MS Excel i wskazać plik, w którym znajduje się arkusz z danymi. Pierwszy niepusty wiersz w arkuszu musi zawierać nazwy kolumn. Kolumny mogą występować w dowolnej kolejności. Każdy arkusz musi zawierać dwie lub trzy kolumny obowiązkowe oraz różną ilość kolumn opcjonalnych. Format komórek danej kolumny musi być taki sam. Błędem jest umieszczenie w jednej kolumnie raz wartości 11, a potem w innym wierszu 21,99. Powinno być 11,00 i 21,99. Od wersji 2021.4 opcja importu i eksportu cennika poprzez plik MS Excel umożliwia również dodawanie/aktualizację informacji dla towarów przesyłanych do sklepów internetowych takich jak nazwy i opisy w językach, statusy dostępności, koszty dostaw, a także atrybuty czasowe i jednostki miary.

Importowane dane

Kontrahenci

Arkusz MS Excel – należy zapisać jako skoroszyt programu MS Excel 97-2003. Wymagane są trzy kolumny: Kod, Nazwa, NIP Nazwa arkusza w pliku może być dowolna. Jeśli w pliku jest więcej wypełnionych arkuszy szukany jest pierwszy, który ma kolumnę NIP. Lista form płatności budowana jest w oparciu o pola: FormaPlatnosciTerminPlatnosci Wszystkie płatności przypinane są do kasy gotówkowej. Dla każdego kontrahenta importowane są następujące pola:
Arkusz Kontrahenci
Lp.Nazwa pola w tabeli CDN.KontrahenciNazwa pola w arkuszu KontrahenciWartości wymagane w polu arkusza
1.Knt_KodKodKod kontrahenta – pole obowiązkowe
2.Knt_Nazwa1NazwaNazwa kontrahenta cz.1 – pole obowiązkowe
3.Knt_Nazwa2Nazwa2Nazwa kontrahenta cz. 2
4.Knt_Nazwa3Nazwa3Nazwa kontrahenta cz. 3
5.Knt_TelefonTelefonNumer telefonu
6.Knt_Telefon2Telefon2Drugi numer telefonu
7.Knt_TelefonSmsTelefonSmsTelefon dla SMS
8.Knt_FaxFaxNumer faxu
9.Knt_UlicaUlicaAdres kontrahenta – ulica
10.Knt_NrDomuNrDomuAdres kontrahenta – numer budynku
11.Knt_NrLokaluNrLokaluAdres kontrahenta – numer lokalu
12.Knt_KodPocztowyKodPocztowyKod pocztowy miasta kontrahenta
13.Knt_Poczta PocztaPoczta
14.Knt_Miasto MiastoMiasto
15.Knt_KrajKrajKraj
16.Knt_WojewodztwoWojewodztwoWojewództwo
17.Knt_PowiatPowiatPowiat – pole niedostępne na formularzu kontrahenta, możliwe uzupełnienie z poziomu bazy danych
18.Knt_GminaGminaGmina – pole niedostępne na formularzu kontrahenta, możliwe uzupełnienie z poziomu bazy danych
19.Knt_URLURLAdres strony WWW kontrahenta
20.Knt_GrupaGrupaGrupa kontrahentów
21.Knt_FinalnyOsobaFizyczna0 – podmiot gospodarczy
1 – osoba fizyczna
22.Knt_NIPENIPNumer NIP – pole obowiązkowe
23.Knt_NIPKrajNIPKrajPrzedrostek NIP dla krajów UE
24.Knt_ZezwolenieZezwolenieNumer zezwolenia na działalność gospodarczą
25.Knt_RegonRegonNumer REGON
26.Knt_PeselPeselNumer PESEL
27.Knt_EmailEmailAdres e-mail
28.Knt_RachunekNrBankRachunekNrNumer rachunku kontrahenta
29.Knt_BnkNazwaBankNazwaNazwa banku
30.Knt_OsNazwiskoOsobaNazwisko przedstawiciela
31.Knt_OpisOpisDodatkowy opis kontrahenta
32.Knt_RodzajRodzajO – odbiorca, D – dostawca, K – konkurencja, P – partner, T – klient potencjalny
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest O (odbiorca)
33.Knt_PodatekVATPlatnikVAT0 – (zero) kontrahent nie jest płatnikiem VAT
1 – kontrahent jest płatnikiem VAT
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest 1 (płatnik VAT)
34.Knt_PodatekVatPodatnikVatCzynnyPodatnik VAT czynny
0 – parametr niezaznaczony
1 – parametr zaznaczony
35.Knt_ExportEksport0 – (zero) kontrahent krajowy
1 – kontrahent pozaunijny
2 – pozaunijny (zwrot VAT)
3 – kontrahent UE
4 – wewnątrzunijny trójstronny
5 – podatnikiem jest nabywca
6 – poza terytorium kraju
7 – poza terytorium kraju (stawka np.)
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest 0 – (zero) kontrahent krajowy.
W przypadku kontrahentów wewnątrzunijnych oraz wewnątrzunijnych trójstronnych z kolumny NIPKraj pobierany jest wymagany kod kraju UE.
36.Knt_LimitKredytuLimitKredytuJeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest 0 (zero)
37.Knt_TerminTerminTermin płatności – określany w dniach od daty wystawienia dokumentu.
38.Knt_FplID z CDN.FormyPlatnosciFormaPlatnosciSłownie wyrażona forma płatności. Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest gotówka.
39.Knt_CenyCenyCena dla klienta
0 – cena domyślna
1 – cena zakupu
2 – pierwsza cena sprzedaży
3 – druga cena sprzedaży
4 – trzecia cena sprzedaży
5 – czwarta cena sprzedaży
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowane jest 2 (pierwsza cena sprzedaży). Jeśli w bazie, do której importujemy nie ma ceny z arkusza to jako cena domyślna ustawiana jest cena „domyślna”.
40.Knt_CenyCenyNazwaNazwa ceny domyślnej np. hurtowa 2
Cena domyślna jest ustalana na podstawie nazwy, a jeśli nazwa nie zostanie znaleziona w bazie danych to cena domyślna ustalana jest na podstawie numeru z kolumny: Ceny
41.CDN.Rabaty, dla Rab_typ=2 (jeden kontrahent / wszystkie towary)UpustWartość upustu. Jeżeli kontrahent na 10% upustu należy wpisać 10 (bez znaczka procentu).
42.Knt_NieNaliczajOdsetekNieNaliczajOdsetekNie naliczać odsetek dla płatności kontrahenta.
43.Knt_MetodaKasowaMetodaKasowaMetoda kasowa
0 – niezaznaczony żaden parametr
1 – Zakup (parametr zależny od Podatnik VAT czynny)
2 – Sprzedaż
44.Knt_WindykacjaEMailWindykacjaEMailAdres poczty e-mail osoby reprezentującej firmę w sprawach windykacji należności.
45.Knt_WindykacjaTelefonSmsWindykacjaTelefonSmsTelefon dla SMS
46.Knt_AlgorytmAlgorytmNettoBruttoDomyślny algorytm naliczania podatku VAT na dokumentach handlowo – magazynowych
0 – netto
1 – brutto
47.Knt_WalutaWalutaDomyślna waluta kontrahenta
Jeżeli waluty nie ma w programie, wówczas przy imporcie jest ona dodawana w Konfiguracji Programu /Ogólne/Waluty .

Towary

Wymagane są trzy kolumny: Kod, Nazwa, JM Nazwa arkusza w pliku może być dowolna. Jeśli w pliku jest więcej wypełnionych arkuszy szukany jest pierwszy, który ma kolumnę J.M. lub JM W przypadku, gdy towar posiada więcej jednostek miary lub kodów EAN należy dodać odpowiednio arkusz: JednostkiMiary lub KodyKreskowe Dla arkusza JednostkiMiary wymagane pola to: KodTowaru, JMZ Dla arkusza KodyKreskowe wymagane pola to: KodTowaru, Ean, Domyslny W przypadku, gdy mają być importowani producenci lub marki należy dodać odpowiednio arkusz: Producenci lub Marki. Dla arkusza Producenci wymagane pole to: Kod Dla arkusza Marki wymagane pole to: Marka Aby zaimportować kody CN należy dodać arkusz KodyCN, dla którego wymagane jest pole Kod. Aby zaimportować dane towarowe dla sklepów internetowych (od wersji 2021.4) należy dodać odpowiednio arkusze eHandel, eHandelJezyki, eHandelJednostki. Arkusz eHandel zawiera dane dot. udostepnienia towaru w e-Sklep takie jak grupa domyślna do sklepu, statusy dostępności, koszty dostaw oraz atrybuty czasowe Dla arkusza eHandel wymagane pola to: KodTowaru, Grupa Arkusz eHandelJezyki zawiera dane dot. nazw i opisów towarów dla Comarch e-Sklep w językach obcych Dla arkusza eHandelJezyki wymagane pola to: KodTowaru, JęzykID, Nazwa Arkusz eHandelJednostki zawiera dane dot. Jednostek miar wysyłanych do Comarch e-Sklep Dla arkusza eHandelJednostki wymagane pola to: KodTowaru, JednostkaPomocnicza Jeżeli pozycja cennika jest towarem złożonym nie jest przenoszona receptura produktu. Nie są importowane waluty. Jako nazwy kolumn w arkuszu dla tabeli CDN.Towary mogą być stosowane również nazwy kolumn tej tabeli zgodne ze strukturą bazy danych, czyli poprawny zapis nazwy kolumny odpowiedzialnej za kod towaru to: Kod lub Twr_Kod Dla każdej pozycji cennika importowane są następujące pola:
Arkusz Cennik
Lp.Nazwa pola w tabeli CDN.TowaryNazwa pola w arkuszu CennikWartości wymagane w polu arkusza
1.Twr_KodKodKod towaru - pole obowiązkowe
2.Twr_NazwaNazwaNazwa towaru - pole obowiązkowe
3.Twr_JmJMNazwa jednostki miary - pole obowiązkowe
4. Twr_JMWysCmWysokoscCmWysokość dla jednostki podstawowej (zakładka [Jednostki, EAN, VAT] na formularzu towaru
5. Twr_JMSzerCmSzerokoscCmSzerokość dla jednostki podstawowej (zakładka [Jednostki, EAN, VAT] na formularzu towaru
6. Twr_JMDlugCmDlugoscCmDługość dla jednostki podstawowej (zakładka [Jednostki, EAN, VAT] na formularzu towaru
7.Twr_JmZJmZDodatkowa jednostka miary. Jeżeli towar posiada więcej jednostek miary należy dodać arkusz JednostkiMiary.
8.Twr.JMPrzelicznikLPrzelicznik_JmJmZPrzelicznik podstawowej jednostki miary na jednostkę złożoną.
Twr.JMPrzelicznikM
9.Twr_TypTypTP – towar prosty
Twr_ProduktTZ – towar złożony
UP – usługa prosta
UZ – usługa złożona
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona, przyjmowana jest wartość TP (towar prosty), jeśli została pobrana licencja na Comarch ERP Optima Handel/ Handel Plus lub UP (usługa prosta), jeśli pobrano licencję tylko na Comarch ERP Optima Faktury.
10.Twr_NumerKatNumerKatalogowyNumer katalogowy
11.Twr_SWWSWWNumer PKWiU
12.Twr_TwGGIDNumerGrupaGrupa towarowa
CDN.TwrGrupy
13.Twr_IloscMinStanMinStan minimalny towaru na magazynie
14.Twr_IloscMaxStanMaxStan maksymalny towaru na magazynie
15.Twr_StawkaVATLiczba całkowita określająca stawkę VAT. Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowana jest wartość 23.
16.Twr_StawkaZakVATZakLiczba całkowita określająca stawkę VAT zakupu. Jeżeli kolumny te nie występują to stawka VAT zakupu jest ustawiana na taką samą jak stawka VAT sprzedaży.
17.Twr_FlagaVATFlaga1 - zwolniona
2 - opodatkowana
3 - zaniżona
4 - nie podlega
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowana jest wartość 2.
18.Twr_FlagaZakVatZakFlaga1 - zwolniona
2 - opodatkowana
3 - zaniżona
4 - nie podlega
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona to wartość pola jest ustawiana na taką samą jak wartość pola Twr_Flaga.
19.Twr_EANEANKod kreskowy
20.Twr_OpisOpisOpis towaru
21.Twr_KaucjaOpakowanieKaucjaKolumna powinna zawierać 1 jeśli towar jest opakowaniem kaucjonowanym i 0 w pozostałych przypadkach.
22.Twr_OdwrotneObciazenieOdwrotneObciazenieParametr Odwrotne obciążenie (widoczny w oknie Pozycji cennika na zakładce [Ogólne] po zaznaczeniu w menu Start/Konfiguracja/ Firma/ Handel/ Parametry – Odwrotne obciążenie wg karty towaru ):
0 – Nie
1 – Tak
2 – Powyżej limitu
23.Twr_CenaZCzteremaMiejscamiCenaZCzteremaMiejscamiParametr Ceny z czterema miejscami po przecinku (widoczny w oknie Pozycji cennika na zakładce [Ogólne] po zaznaczeniu w menu Start/Konfiguracja/ Firma/ Handel/ Parametry – Ceny z czterema miejscami po przecinku ):
0 – niezaznaczony
1 – zaznaczony
24.Twr_TypMinimumGranica ceny0 – brak granicy ceny,
1 – minimalna marża,
2 – maksymalny rabat.
25.Twr_MinCenaMarzaMinimalna cena/marżaWartość ustalonej granicy ceny (min. marży/ max. rabatu).
26.Twr_Kntid (Id z tabeli CDN.Kontrahenci)DostawcaDostawca (kod dostawcy z zakładki Dodatkowe na karcie towaru), Dostawca musi być wcześniej wprowadzony na listę kontrahentów oraz na swojej karcie musi mieć zaznaczony parametr Dostawca.
27.Twr_KoddostawcyKod u dostawcyKod u dostawcy (kod towaru u dostawcy z zakładki Dodatkowe na karcie towaru).
28.Twr_ProducentKodKod producentaKod producenta (kod towaru producenta z zakładki Dodatkowe na karcie towaru).
29.Twr_KosztUslugiTypKosztUslugiTyp1 - typ kwotowy
2 – typ procentowy
30.Twr_KosztUslugiKosztUslugiKoszt usługi w przeliczeniu na PLN lub procent dla typu procentowego
31. Twr_KosztUslugiWalKosztUslugiWalKoszt usługi w walucie lub procent dla typu procentowego
32. Twr_WalutaWalutaWaluta ostatniej ceny zakupu
33.Twr_KCNId (Id z tabeli CDN.KodyCN)Intrastat - kod CNOśmiocyfrowy kod CN.
W sytuacji kiedy w arkuszu Cennik dla towaru uzupełniono kod CN, ale nie ma go bazie, do której wykonywany jest import i nie uzupełniono go w arkuszu KodyCN , kod ten nie zostanie uzupełniony na importowanej/ aktualizowanej kartotece towarowej.
34.Twr_KrajPochodzeniaIntrastat - kraj pochodzeniaDwuznakowy symbol kraju pochodzenia towaru.
35.Twr_MasaIntrastat - masaMasa netto dla jednostki podstawowej towaru podana w kg.
36.Twr_JmPomPrzelicznikLIntrastat - JmPomPrzelicznikLLicznik przelicznika jednostki miary uzupełniającej przypisanej do kodu CN określającego jej stosunek do podstawowej jednostki miary towaru.
37.Twr_JmPomPrzelicznikMIntrastat - JmPomPrzelicznikMMianownik przelicznika jednostki miary uzupełniającej przypisanej do kodu CN określającego jej stosunek do podstawowej jednostki miary towaru.
38.Twr_SplitPayPodzielona płatnośćParametr MPP - podzielona płatność (widoczny w oknie Pozycji cennika na zakładce [Ogólne]):
0 - niezaznaczony
1 - zaznaczony
39.Prd_KodProducentProducent towaru (zakładka [Dodatkowe] na formularzu towaru)
40.Mrk_NazwaMarkaMarka towaru (zakładka [Dodatkowe] na formularzu towaru)
41.Twc_wartosc dla Twc_TwcNumer=1 dla odpowiedniego towaru Twc_twridCena zakupuCena zakupu
42.TwC_Waluta dla TwcNumer=1 dla odpowiedniego towaru Twc_twridWaluta Cena zakupuWaluta ceny zakupu
43.Twc_wartosc dla Twc_TwcNumer= 2Cena hurtowa 1Cena hurtowa (1)
44.TwC_Waluta dla TwcNumer=2Waluta Cena hurtowa 1Waluta ceny hurtowej (1)
45.Twc_wartosc dla Twc_TwcNumer=3Cena hurtowa 2Cena hurtowa (2)
46.TwC_Waluta dla TwcNumer=3Waluta Cena hurtowa 2Waluta ceny hurtowej (2)
47.Twc_wartosc dla Twc_TwcNumer=4Cena hurtowa 3Cena hurtowa (3)
48.TwC_Waluta dla TwcNumer=4Waluta Cena hurtowa 3Waluta ceny hurtowej (3)
49.Twc_wartosc dla Twc_TwcNumer=5Cena detalicznaCena detaliczna
50.TwC_Waluta dla TwcNumer=5Waluta Cena detalicznaWaluta ceny detalicznej
51.Twc_wartosc dla Twc_TwcNumer=6Cena iSklep24Ewentualna cena dodana przez Użytkownika
52.TwC_Waluta dla TwcNumer=6Waluta Cena iSklep24Waluta ceny iSklep24

Arkusz JednostkiMiary

1.Twr_KodKodTowaruKod towaru - pole obowiązkowe
2.TwJZ_JM (Twr_TwrID = TwJZ_TwrID)JMZNazwa jednostki miary - pole obowiązkowe
3.TwJZ_JMPrzelicznikL ((Twr_TwrID = TwJZ_TwrID)PrzelicznikLJeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowana jest wartość równa 1.
4.TwJZ_JMPrzelicznikM (Twr_TwrID = TwJZ_TwrID)PrzelicznikMJeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowana jest wartość równa 1.
5.TwJZ_WysCmWysokoscCmWysokość dla jednostki pomocniczej (zakładka [Jednostki, EAN, VAT] na formularzu towaru
6.TwJZ_SzerCmSzerokoscCmSzerokość dla jednostki pomocniczej (zakładka [Jednostki, EAN, VAT] na formularzu towaru
7.TwJZ_DlugCmDlugoscCmDługość dla jednostki pomocniczej (zakładka [Jednostki, EAN, VAT] na formularzu towaru

Arkusz KodyKreskowe

1.Twr_KodKodTowaruKod towaru – pole obowiązkowe
2.TwE_EAN (Twr_TwrID = TwE_TwrID)EanKod kreskowy – pole obowiązkowe
3.TwE_JM (Twr_TwrID = TwE_TwrID)JmDlaEanJeżeli kolumna nie występuje w arkuszu lub jest nieokreślona przyjmowana jest wartość z JM.
4.TwE_Domyslny (Twr_TwrID = TwE_TwrID)DomyslnyStatus kodu kreskowego – pole obowiązkowe

Arkusz Producenci

1.Prd_KodKodKod producenta – pole obowiązkowe
2.Prd_NazwaNazwaNazwa producenta
3.Prd_URLURLOdsyłacz do adresu internetowego

Arkusz Marki

1.Mrk_NazwaMarkaNazwa marki – pole obowiązkowe
2.Prd_KodProducentKod producenta

Arkusz Kody CN

1.KCN_KodKodOśmiocyfrowy kod CN – pole obowiązkowe
2.KCN_OpisOpisOpis kodu CN
3.KCN_UzupJMJmDla kodów CN związanych z jednostką miary uzupełniającą należy podać nazwę tej jednostki
4.KCN_MasaMasaPrzyjmuje wartość 1 jeśli dla kodu CN należy określić masę towaru. W przeciwnym wypadku pole należy pozostawić puste bądź uzupełnić wartością 0 .
5.KCN_StawkaVATLiczba całkowita określająca stawkę VAT kodu CN.
6.KCN_FlagaVATFlaga1 - zwolniona
2 - opodatkowana
3 - zaniżona
4 - nie podlega
Jeżeli kolumna nie występuje w arkuszu lub jest nieokreślona, przyjmowana jest wartość 2.

Arkusz eHandel

1.Twr_KodKodTowaruKod towaru – pole obowiązkowe
2.Twes_Udostepnij
(Twr_TwrID = Twes_TwrID)
UdostepnijParametr Udostępnij (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
3.Twes_TwGGIDNumer
(Twr_TwrID = Twes_TwrID
CDN.TwrGrupy)
GrupaGrupa Towarowa dla e-Sklep/e-Sale
(wskazana grupa musi być podgrupą dla grupy udostępnianej do sklepu)
4.Twes_ESklepStatus
(Twr_TwrID = Twes_TwrID)
StatusDostepnosciParametr Status dostępności (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – Zapowiedź
1 – Dostępny
2 – Dostępny na zamówienie
3 – Niedostępny
5.Twes_ESklepDostepnosc
(Twr_TwrID = Twes_TwrID)
DostepnoscWartość parametru Dostępność (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – Dostępny od ręki
1 – Dostępny do 24h
2 – Dostępny do 48h
3 – od 3 do 5 dni
4 – do 7 dni
5 – do 14 dni
6 – powyżej 14 dni
Parametr ustawiany jedynie w przypadku gdy w kolumnie StatusDostepnosci ustawiono wartość 1
6.Twes_ESklepNieKontrolujStanow
(Twr_TwrID = Twes_TwrID)
KontrolaStanowParametr Nie kontroluj stanów magazynowych (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 – zaznaczony
Parametr nie zostanie zaznaczony jeśli w kolumnie StatusDostepnosci ustawiono różną od 0 i 1 lub jeżeli karta cennikowa jest usługą
7.Twes_ESklepDostepnyOd
(Twr_TwrID = Twes_TwrID)
DostepnyOdParametr Dostępny od (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 – zaznaczony
Parametr nie zostanie zaznaczony jeśli w kolumnie StatusDostepnosci ustawiono wartość inną niż 0
8.Twes_ESklepDataDostepnosci
(Twr_TwrID = Twes_TwrID)
DataDostepnyOdData od której towar będzie dostępny w przypadku ustawienia statusu Zapowiedź.
Parametr nie zostanie wypełniony jeśli w kolumnie StatusDostepnosci ustawiono wartość inną niż 0
9.Twes_ESklepZapytajOCene
(Twr_TwrID = Twes_TwrID)
ZapytajOCeneParametr Zapytaj o cenę towaru (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 – zaznaczony
10.Twes_ESklepBezRabatu
(Twr_TwrID = Twes_TwrID)
RabatParametr Towar nie podlega rabatowaniu (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 – zaznaczony
11.Twes_ESklepKalkulacjaDostaw
(Twr_TwrID = Twes_TwrID)
KosztDostawyWartość parametru Negocjowalny koszt dostawy (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – ustawienia e-Sklep
1 – negocjowalny koszt dostawy
2 –stały koszt dostawy
12.Twes_ESklepKalkulacjaDostawWartosc
(Twr_TwrID = Twes_TwrID)
KosztDostawyWartoscWartość kosztu dostawy w przypadku ustawienia stałego kosztu dostawy.
Parametr nie zostanie wypełniony jeśli w kolumnie KosztDostawy ustawiono wartość inną niż 2
13.Twes_ESklepFlaga_Nowosc
(Twr_TwrID = Twes_TwrID)
NowoscFlaga dla atrybutu czasowego Nowość (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
14.Twes_ESklepFlaga_Promocja
(Twr_TwrID = Twes_TwrID)
PromocjaFlaga dla atrybutu czasowego Promocja (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
15.Twes_ESklepFlaga_ProduktzGazetki
(Twr_TwrID = Twes_TwrID)
GazetkaFlaga dla atrybutu czasowego Produkt z gazetki (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
16.Twes_ESklepFlaga_ProduktPolecany
(Twr_TwrID = Twes_TwrID)
PolecanyFlaga dla atrybutu czasowego Produkt polecany (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
17.Twes_ESklepFlaga_Wyprzedaz
(Twr_TwrID = Twes_TwrID)
WyprzedazFlaga dla atrybutu czasowego Wyprzedaż (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
18.Twes_ESklepFlaga_Nagroda
(Twr_TwrID = Twes_TwrID)
NagrodaFlaga dla atrybutu czasowego Nagroda (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 – zaznaczony
Parametr nie zostanie zaznaczony jeśli w kolumnie ZapytajOCene ustawiono wartość 1
19.Twes_ESklepFlaga_SuperJakosc
(Twr_TwrID = Twes_TwrID)
SuperJakoscFlaga dla atrybutu czasowego Super Jakość (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
20.Twes_ESklepFlaga_SuperCena
(Twr_TwrID = Twes_TwrID)
SuperCenaFlaga dla atrybutu czasowego Super Cena (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
21.Twes_ESklepFlaga_NajlepiejOceniany
(Twr_TwrID = Twes_TwrID)
NajlepiejOcenianyFlaga dla atrybutu czasowego Najlepiej Oceniany (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony
22.Twes_ESklepFlaga_RekomendacjaSprzedawcy
(Twr_TwrID = Twes_TwrID)
RekomendacjaFlaga dla atrybutu czasowego Rekomendacja Sprzedawcy (widoczny w oknie Pozycji cennika na zakładce [eHandel]):
0 – niezaznaczony
1 - zaznaczony

Arkusz eHandelJezyki (Tylko dla modułu Handel Plus)

1.Twr_KodKodTowaruKod towaru – pole obowiązkowe
2.TwrJ_JezykID
(Twr_TwrID = TwrJ_TwrID)
JezykIDId języka, wg. kolejności na liście wyboru parametru Język
(formularz języka towaru zakładka e-Sklep/e-Sale)
np.:
1 – polski,
2 – angielski,
3 – niemiecki
3.TwrJ_NazwaNazwaNazwa towaru w języku obcym (Formularz języka towaru zakładka [e-Sklep/e-Sale])
4.TwrJ_OpisOpisOpis towaru w języku obcym (Formularz języka towaru zakładka [e-Sklep/e-Sale])
5.TwrJ_MetaTytulTytulTytuł towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])
6.TwrJ_LinkLinkLink dla pozycjonowania towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])
7.TwrJ_MetaSlowaKluczoweSlowaKluczoweSłowa kluczowe dla pozycjonowania towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])
8.TwrJ_MetaOpisMetaOpisMeta Opis dla pozycjonowania towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])
9.TwrJ_OpisKrotkiOpisSkroconyOpis skrócony dla pozycjonowania towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])
10.TwrJ_SzukajSzukajSłowa kluczowe wykorzystywane do wyszukiwania przy pozycjonowaniu towaru w języku obcym (Formularz języka towaru zakładka [Pozycjonowanie])

Arkusz eHandelJednostki

1.Twr_Kod
(Twr_TwrID = TwJZ_TwrID)
KodTowaruKod towaru – pole obowiązkowe
2.TwJZ_JM
(Twr_TwrID = TwJZ_TwrID)
JednostkaPomocniczaNazwa jednostki miary dla eSklep
3.TwJZ_eSklepDomyslna
(Twr_TwrID = TwJZ_TwrID)
DomyslnaParametr określający czy wybrana Jednostka miary jest domyślna dla e-Sklep
0 – niezaznaczony
1 – zaznaczony
W przypadku gdy więcej niż jedna jednostka pomocnicza ma w kolumnie Domyslna ustawioną wartość 1 – jako domyślna zostanie ustawiona jedynie oststnia występująca w arkuszu dla danego towaru.
Uwaga
Wszystkie ceny z arkusza będą traktowane wg ustawień w konfiguracji programu Comarch ERP Optima (Start/Konfiguracja Firmy/ Handel/ Ceny towarów i usług). Jeśli przed importem cena np. Cena hurtowa 2 została usunięta z konfiguracji, wówczas podczas importu pomijana jest Cena hurtowa 2 (rozpoznawane są nazwy).
Jeżeli cena w arkuszu jest ceną netto, dla odpowiedniej ceny w Comarch ERP Optima należy ustawić typ: netto. Jeżeli cena w arkuszu jest ceną brutto, dla odpowiedniej ceny w Comarch ERP Optima należy ustawić typ: brutto. Ustawienie to musi być zrobione przed rozpoczęciem importu. Aby zostały zaimportowane ceny z czterema miejscami po przecinku, w menu Start/Konfiguracja/ Firma/ Handel/ Parametry musi by zaznaczony parametr Ceny z czterema miejscami po przecinku i w arkuszu w kolumnie CenaZCzteremaMiejscami musi być wartość 1. Przy aktualizacji cen (kolejne importy) nie jest podmieniany typ karty cennikowej – towar/ usługa, prosty/ złożony. Przy aktualizacji pól tekstowych np. numeru katalogowego, jeśli pola w arkuszu nie są wypełnione, to wartości w Comarch ERP Optima nie są czyszczone (pozostają takie jak przed aktualizacją).

Pliki do pobrania

OPT078 - Uzgadnianie stanów magazynowych

Data aktualizacji: 28-11-2018

Analizy pomocne przy ustalaniu stanów magazynowych

Stan magazynu wykazywany w menu Handel/Zasoby w kolumnie W. Zakupu-PLN  oraz prezentowany na wydruku Spis z natury jest wynikiem operacji ewidencjonowanych za pomocą dokumentów handlowo-magazynowych. Stan wartościowy magazynu powinien być zgodny ze stanem wynikającym z księgowania dokumentów handlowo-magazynowych. Zazwyczaj stany wykazywane na kontach dotyczą stanów poszczególnych magazynów. Jeśli pojawią się w tym zakresie jakiekolwiek niezgodności, wówczas zalecamy wykonanie wyliczenia stanów magazynowych w oparciu o wszystkie dokumenty, które powodują ruch towaru na magazynie. Analiza stanu magazynowego w module handel w danym okresie czasu opiera się na uzgodnieniu rachunku: stan początkowy + przychody – rozchody = stan końcowy Jeśli stan magazynu w module Handel jest poprawny, następstwa ewentualnych różnic wyliczonych w module Księga Handlowa wynikają najczęściej z tego, że:
  • wykorzystano nieprawidłowe raporty do ustalenia wartości,
  • nie uwzględniono wszystkich typów dokumentów przy wykonywaniu obliczeń,
  • nie zaksięgowano wszystkich dokumentów lub zaksięgowano niewłaściwe kwoty.
Uwaga
Przed porównywaniem jakichkolwiek wyników z księgowością należy doprowadzić do sytuacji, by stan w magazynie był uzgodniony.
Jeśli stan wyliczony w module Handel jest niepoprawny, należy poszukać przyczyn niezgodności. Należy pamiętać przy tym o zasadach:
  • dokumenty magazynowe, przychodowe w buforze nie wprowadzają towaru do magazynu, dlatego nie powinny być uwzględniane w analizie,
  • dokumenty magazynowe, rozchodowe w buforze wydają towar z magazynu, dlatego powinny być uwzględniane w analizie,
  • na listach dokumentów oraz na wydrukach widoczne są dokumenty anulowane, jednak ich wartość nie jest uwzględniania w podsumowaniu,
  • na dokumentach magazynowych mogą wystąpić pozycje o statusie usługi – wpływają one na wartość raportów, natomiast nie wpływają na wartość magazynu. W przypadku, gdy na dokumentach magazynowych występują usługi – wartości otrzymane na raportach należy pomniejszyć o wartość usług z dokumentów,
  • w specyficznych sytuacjach, w analizie należy uwzględnić Faktury Sprzedaży i/lub Paragony z zaznaczoną opcją Pobranie (parametr w Konfiguracji Firmy/ Magazyn/ Inicjacja dokumentów).

Stan początkowy i końcowy

W programie pamiętane są stany magazynowe wstecz, dla każdego towaru odrębnie – na każdy dzień, kiedy występowały transakcje tym towarem. Aby ustalić stan początkowy należy na Liście zasobów określić datę oraz potrzebny magazyn. Do ustalenia wartości mogą służyć dwa wydruki:
  • Spis z natury: wzór standard – każda pozycja magazynowa jest opisana w jednej pozycji zawierającej łączną ilość i wartość towaru na dany dzień.
  • Spis z natury: z podziałem na dostawy – każda pozycja jest rozbita na poszczególne dostawy (zasoby) towaru, które były w magazynie na dany dzień.
Obydwa wydruki powinny dać taką samą wartość towaru w magazynie.

Przychody

Przychody ustalamy na podstawie standardowego wydruku listy dokumentów magazynowych, wydruk ten drukuje dokumenty zgodnie z zadanym na liście filtrem (magazyn, okres itp.). W okresie, jaki obejmują obliczenia nie powinno być dokumentów przychodowych w buforze  – ponieważ tylko dokumenty zatwierdzone wprowadzają towar na magazyn. W analizie powinny być uwzględniane:
  • Lista dokumentów PZ
    • podczas obliczeń należy uwzględniać wartość netto dokumentów,
    • wydruk można porównać z analizą zakupów wg towarów – wartości powinny być zgodne. Jeżeli występują różnice, należy sprawdzić czy na dokumentach nie ma usług, będących przyczyną niezgodności.
  • Lista dokumentów PW
    • dokumenty PW nie mogą zawierać pozycji o statusie usługa, więc wykonywanie analiz porównawczych nie jest konieczne.
  • Lista dokumentów MM przychodowych
    • lista MM zawiera wszystkie dokumenty MM niezależnie od magazynów, których dotyczą oraz kierunku przepływu towarów,
    • w przypadku wyliczania przychodów należy listę wyfiltrować w ten sposób, by magazynem docelowym był magazyn, dla którego przeprowadzamy analizę (magazyn źródłowy: wszystkie, magazyn docelowy: magazyn analizowany),
    • czy istnieją dokumenty MM w buforze – dokumenty takie zdejmują towar z magazynu źródłowego, ale nie wprowadzają na magazyn docelowy.
  • Lista dokumentów PWP
    • analiza listy jest podobna jak w przypadku dokumentów PZ,
    • należy sprawdzić, czy przyjmowane produkty nie mają statusu usługi.
  • Lista dokumentów BO
    • jeśli analiza obejmuje całą bazę danych (wszystkie dokumenty od założenia) – należy uwzględnić dokument BO, który wprowadził towar do magazynu w chwili rozpoczęcia pracy,
    • jeśli na liście występują dokumenty BZM (Bilans Zamknięcia Magazynu) – nie powinny być uwzględniane w obliczeniach. Dokumenty BZM rejestrują jedynie stan magazynu na zadany dzień, jednak nie mają żadnego wpływu na zasoby.

Rozchody

Rozchody ustalamy na podstawie wydruków list dokumentów magazynowych. Dokumenty rozchodowe w buforze zdejmują towar z magazynu (wpływają na stan magazynu), więc powinny być uwzględniane w analizie. W analizie powinny być uwzględniane:
  • Lista dokumentów WZ
    • do analizy należy wykorzystać wydruk Dodatkowe: RKZ. Na wydruku widoczna jest kolumna Koszty, która przedstawia koszt zakupu rozchodowanych towarów z danej transakcji i to właśnie dane z tej kolumny wykorzystujemy do wyliczenia wartości rozchodu,
    • należy sprawdzić, czy na dokumentach nie ma wprowadzonych usług. Dla usług można określić koszt własny, jednak nie wpływa on na wartość magazynu a wpływa na zwiększenie kosztu transakcji, stąd mogą wynikać rozbieżności pomiędzy wartością wyliczoną z Listy zasobów a wyliczeniem z poziomu RKZ. Na RKZ w wartości transakcji będzie uwzględniony koszt usługi. Domyślnie koszt jest wyliczany na podstawie danych z karty usługi (zakładka [Dodatkowe]), istnieje też możliwość ręcznego wprowadzenia kosztu zakupu w momencie tworzenia dokumentu, z poziomu zakładki Szczegóły na oknie Podglądu pozycji danej usługi,
    • do porównania może służyć analiza WZ wg towarów (na analizie nie ma podanej wartości w cenach zakupu, jednak jest wartość netto obrotu i marża),
    • do analizy nie należy wykorzystywać listy Faktur Sprzedaży, ponieważ nie są tam uwzględniane dokumenty WZKK!
  • Lista dokumentów RW
    • na dokumencie RW w specyficznej sytuacji mogą wystąpić usługi. Jeżeli składnikiem usługi złożonej wskazanej na FA/PA jest inna usługa, wówczas podczas generowania dokumentów magazynowych zostanie ona przeniesiona na dokument RW (dotyczy to usług złożonych z zaznaczonym parametrem Pobieranie składników na FA/PA). W przypadku, gdy na usłudze określony został koszt zakupu, wartość wyliczona z listy RW powoduje niezgodność pomiędzy wartością wyliczoną z poziomu Listy zasobów.
  • Lista dokumentów MM rozchodowych
    • w przypadku wyliczania przychodów należy listę wyfiltrować w ten sposób, by magazynem źródłowym był magazyn, dla którego przeprowadzamy analizę (magazyn źródłowy: magazyn analizowany, magazyn docelowy: wszystkie).
  • Lista dokumentów RWS
    • dokumenty RWS są tworzone automatycznie na podstawie dokumentów produkcyjnych PWP,
    • jeśli występują dokumenty w buforze, oznacza to, że skojarzone z nim dokumenty PWP również zostały zapisane do bufora. PWP w buforze nie wprowadzają towaru złożonego na magazyn, natomiast istotne jest odnalezienie powiązanego dokumentu PWP w buforze i zweryfikowanie parametrów określających sposób zachowania się składników (pobranie/ rezerwacja). Na dokumencie PWP można zaznaczyć, czy składniki mają być pobierane czy rezerwowane. Jeśli pobierane – dokument RWS w buforze powinien być uwzględniony w analizie, jeśli rezerwowane – dokument RWS należy pominąć w trakcie analizy,
    • jeśli dokument RWS jest zapisany na trwałe – zawsze zdejmuje towar z magazynu i powinien być uwzględniony w analizie,
    • należy sprawdzić, czy pobrane składniki nie mają statusu usługi – można do tego wykorzystać analizę RWS wg towarów.
  • Faktury/ Paragony z pobraniem
    • Standardowo Faktura Sprzedaży/ Paragon nie wydaje towaru z magazynu. Wydanie następuje dopiero po przekształceniu do dokumentu magazynowego WZ/RW. Natomiast istnieje możliwość takiego skonfigurowania programu, żeby FA/PA działały analogicznie jak dokumenty magazynowe i wydawały towar z magazynu. W Konfiguracji Firmy/ Magazyn/ Inicjacja dokumentów można wybrać opcję rezerwacja lub pobranie. W przypadku wybranego pobrania, taki dokument FA/PA należy traktować podobnie jak WZ i uwzględniać w analizach. Należy jednak pamiętać, że raport RKZ generowany z listy dokumentów FA/ PA różni się od RKZ wyliczanego z listy dokumentów WZ. Podstawowe różnice zostały opisane w FAQ.

Opakowania kaucjonowane

W przypadku, gdy firma obsługuje opakowania kaucjonowane należy to również uwzględnić podczas analizy bazy danych. Jeśli analiza ma obejmować opakowania:
  • Spis z natury powinien obejmować opakowania (zaznaczony parametr: Opakowania na Liście Zasobów),
  • dodatkowo uwzględnić dokumenty kaucyjne PKA i WKA, zgodnie z zasadami obowiązującymi dla WZ/PZ.
Jeśli analiza ma dotyczyć tylko towarów handlowych należy:
  • Spis z natury wykonać bez uwzględniania opakowań (parametr: Opakowania na Liście Zasobów odznaczony),
  • nie uwzględniać dokumentów kaucjonowanych WKA i PKA, należy przy tym pamiętać, że opakowania kaucjonowane mogą być powiązane z FA/PA z pobraniem i wtedy nie powodują powstania dokumentu PKA/WKA, natomiast ściągają towar z magazynu i powiększają wartość transakcji,
  • należy pamiętać, że towary kaucjonowane mogą się pojawić jako zwykłe elementy dokumentów magazynowych – mają więc wpływ na wartość poszczególnych raportów, natomiast nie są uwzględniane na spisie z natury,
  • z analizy przychodów i rozchodów wyeliminować wartości związane z opakowaniami kaucjonowanymi (podobnie jak usługi).

Przyczyny niezgodności

W przypadku wystąpienia niezgodności należy dodatkowo sprawdzić:
  • Czy wartości są pobrane z prawidłowych wydruków.
  • Czy na wydrukach Spisu z natury są uwzględnione zarówno towary proste jak i złożone.
  • Czy w bazie nie ma towarów oznaczonych jako nieaktywne, ze stanem różnym od zera.
  • Czy na wszystkich wydrukach są uwzględnione takie same magazyny (istotne w przypadku firm, które na jednej bazie prowadzą kilka magazynów).
  • Jeśli księgowane są dokumenty handlowe bez magazynowych – należy sprawdzić, czy wszystkie dokumenty handlowe zostały przekształcone do dokumentów magazynowych.
  • Czy istnieją FA/PA bez WZ z zaznaczoną opcją pobranie – pobierają towar z magazynu, ale nie są uwzględniane na raportach RKZ tworzonych z listy WZ.
  • Czy w firmie są obsługiwane kaucje i w jaki sposób są uwzględniane w analizie.
  • Czy wszystkie dokumenty zostały prawidłowo zaksięgowane.
W poszukiwaniu dokumentów, które powodują niezgodność, rozpoczynamy od ustalenia określonego przedziału dat. Stopniowo zawężamy zakres dat, tak aby znaleźć konkretne dokumenty, które powodują niezgodności. Należy też zwrócić uwagę na poprawny wybór dat przy filtrowaniu. Skutek magazynowy dla dokumentów WZ/PZ następuje w oparciu o datę wydania/przyjęcia, data ta na listach dokumentów WZ/PZ widnieje pod nazwą data operacji. Dokument WZ/PZ może być wystawiony z inną data niż data wydania/przyjęcia, dlatego przy poszukiwaniu niezgodności na listach należy wziąć pod uwagę możliwość wystąpienia rozbieżności tych dat.
 

OPT032 - Handlowy dokument identyfikacyjny

Data aktualizacji: 20-11-2019

Wstęp

29 czerwca 2003 weszło w życie Rozporządzenie Ministra Rolnictwa i Rozwoju Wsi (Dz. U. nr 106, poz. 1000), w którym podany został wzór handlowego dokumentu identyfikacyjnego (HDI) obowiązujący w obrocie niektórymi artykułami spożywczymi pochodzenia zwierzęcego. Na podstawie tego rozporządzenia mięso rozebrane oraz jego przetwory, podobnie jak inne produkty wymienione w rozporządzeniu, zaopatrywane będą w handlowy dokument identyfikacyjny wystawiany przez firmę wprowadzającą na rynek środki spożywcze pochodzenia zwierzęcego. W Comarch ERP Optima dokument HDI można wydrukować z poziomu formularza faktury. W tym celu należy do wydruków użytkownika podłączyć wydruk załączony do tego biuletynu.
Uwaga
Wydruk dokumentu HDI odbywa się przy pomocy Generatora Raportów.

Handlowy dokument identyfikacyjny – dane o towarze

Aby na dokumencie HDI wydrukowane zostały informacje dotyczące towarów pobranych na Fakturę Sprzedaży, należy najpierw uzupełnić dane na karcie towaru. Niezbędne parametry to:
  • nazwa towaru
  • opis towaru (obligatoryjny)
  • jednostka miary (powinna być to jednostka wagowa np. kg)
  • jednostka pomocnicza (jednostka opakowania zbiorczego)
  • ilość jednostek podstawowych w opakowaniu zbiorczym
Dane pobierane bezpośrednio z Faktury Sprzedaży:
  • nazwa i adres wysyłającego (dane adresowe z Pieczątki Firmy)
  • numer faktury, do której drukowany jest dokument HDI
  • data wysyłki (data wystawienia faktury)
  • ilość towaru
Uwaga
Na dokument HDI nie są przenoszone pozycje, które na karcie towaru mają zdefiniowany typ usługa.

Handlowy dokument identyfikacyjny – wydruk

Po wybraniu opcji wydruku HDI pojawia się dodatkowe okno, w którym należy wprowadzić dane, które wymagane są na dokumencie HDI, a nie ma ich na Fakturze Sprzedaży:
  • numer dokumentu HDI
  • weterynaryjny numer identyfikacyjny zakładu
  • rynek, na który zakład został zakwalifikowany do prowadzenia sprzedaży. Po wyborze opcji inne państwa pojawia się dodatkowe pole, gdzie należy wprowadzić rynki sprzedaży innych państw
  • pochodzenie surowca
  • miejsce pozyskania, przetworzenia lub składowania
  • miejsce przeznaczenia
  • rodzaj transportu i jego numer identyfikacyjny
  • komentarz – dane dotyczące procesu technologicznego, norm jakościowych i produkcyjnych oraz stosowanych przez producenta systemów kontroli jakości
Wprowadzone dane są zapamiętywane i podpowiadają się podczas wykonywania kolejnego wydruku HDI.

Handlowy dokument identyfikacyjny – podłączenie wydruku do Comarch ERP Optima

W załączniku znajduje się przykładowy wydruk dokumentu HDI. Wydruk należy podpiąć na formularzu Faktury Sprzedaży (patrz Rysunek 1, poniżej). W konfiguracji wydruków Formularz Faktury Sprzedaży, zakładka [Ogólne] importujemy definicję z pliku HDI.xml.

Rysunek 1. Import wydruku HDI.

Pliki do pobrania

Księgowość

OPT039 Internetowa Wymiana Danych z Klientem Comarch ERP XT / Comarch Moje BR

Data aktualizacji: 19-09-2023

Jak uruchomić Internetową Wymianę Dokumentów?

Krok 1 – Zarejestruj biuro na portalu iksiegowosc24.pl i skonfiguruj program Comarch ERP Optima do internetowej wymiany dokumentów

Biuro Rachunkowe, które chce wymieniać dokumenty ze swoimi Klientami rejestruje się na stronie: https://www.iksiegowosc24.pl/rejestracja wybierając dowolny pakiet iKsięgowość24. Po rejestracji w Comarch ERP Optima w menu Start/Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów należy zaznaczyć parametr Aktywuj wymianę danych przez serwer Comarch i uzupełnić wymagane pola:
  • Numer Klienta (ID) – numer identyfikacyjny Comarch Biura Rachunkowego (widoczny na certyfikacie rejestracji oprogramowania),
  • PIN – numer PIN Biura Rachunkowego (widoczny na certyfikacie rejestracji oprogramowania),
  • Ustaw hasło – pole uzupełniamy dowolnym własnym hasłem. Hasło należy zapamiętać, ponieważ będzie wymagane przy jakiejkolwiek zmianie ustawień konta na serwerze Comarch,
  • Potwierdź hasło.
Zapisując wprowadzone dane, biuro aktywuje konto Internetowej Wymiany Danych.
Uwaga
Przed opuszczeniem formularza zwróć uwagę, czy ustawiony jest oddział. Oddział o symbolu Centrala ustawiany jest automatycznie. Zmiana oddziału możliwa jest po kliknięciu w Zarządzanie Oddziałami.
Wskazówka
W sytuacji gdy hasło zostanie utracone, jego reset możliwy jest po zalogowaniu do www.iksiegowosc24.pl w zakładce Konto.

Krok 2 – Poproś Klienta aby utworzył konto w aplikacji Comarch ERP XT lub Comarch Moje BR

Klient, jeśli chce wymieniać dokumenty z biurem to powinien utworzyć konto do prowadzenia swojej firmy w aplikacji Comarch ERP XT lub Comarch Moje BR. Do wykonania kolejnych kroków Biuro Rachunkowe będzie potrzebować adresu e-mail, na który utworzono konto oraz NIP Klienta.

Krok 3 – Dodaj Klienta w programie i rozpocznijcie elektroniczną wymianę dokumentów

W sekcji iKsięgowość24 po kliknięciu w ikonkę Klienci biura wypełnij formularz dodawania nowego Klienta, z którym będziesz prowadził wymianę dokumentów.
Uwaga
Dodawanie klientów biura jest możliwe przez operatora, który na karcie będzie miał zaznaczony parametr: Prawo do przeglądania i dodawania klientów.
Sekcja iksiegowość24 widoczna jest w menu: Rejestry VAT, w Kasa/Bank, jak również w Preliminarzu płatności i na liście dokumentów w rejestrze VAT. Zalogowany operator otrzyma listę Klientów biura rachunkowego – tą samą, która widoczna jest również na portalu iKsiegowosc24.pl na zakładce Moi Klienci. Na formularzu uzupełnij NIP i e-mail Klienta, na które założył konto w Comarch ERP XT lub Comarch Moje BR. Po zapisaniu formularza na adres mailowy osoby kontaktowej Biura Rachunkowego oraz Klienta wysyłana jest wiadomość informująca o zgłoszeniu do Internetowej Wymiany Dokumentów dla Klienta.
Uwaga
Po otrzymaniu potwierdzenia o realizacji zamówienia na konto Internetowej wymiany Danych z klientem odczekaj chwilę (do 15 minut) i rozpocznij wymianę.
Wymiana danych z klientem możliwa jest z poziomu programu Comarch ERP Optima po wejściu do firmy, do której będą importowane dokumenty Klienta. W menu: Rejestry VAT oraz Kasa/Bank, jak również w Preliminarzu płatności i na liście dokumentów w rejestrze VAT dostępna jest sekcja Wymiana danych. Sekcja zawiera trzy opcje: Wyślij dane, Odbierz dane i Historia wymiany. Wybór jednej z wymienionych opcji spowoduje automatyczną konfigurację Internetowej Wymiany Danych z Klientem oraz uruchomi procedurę wymiany Wysyłanie i odbieranie możliwe jest również z poziomu Narzędzia/ Praca rozproszona/ Eksport/Import. Biuro rachunkowe może zweryfikować konfigurację z Klientem w menu Start/Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów na zakładce Klienci.
Wskazówka
Gdy operator posiada nadane uprawnienia, a nie korzystał wcześniej z tej możliwości to po kliknięciu w ikonę Klienci biura pojawi się okno logowania do panelu biura na www.iksiegowosc24.pl. Po wprowadzeniu poprawnych danych logowania (tych samych, które używane są na stronie iksiegowość24.pl) wpisany e-mail zostanie zapamiętywany na karcie operatora na zakładce [Ogólne] w sekcji Comarch Cloud w polu e-mail.
Uwaga
W menu Start/Konfiguracja/ Stanowisko/ Praca rozproszona/ Parametry Biuro Rachunkowe wskazuje dowolny folder na dysku, w którym będą przechowywane pliki z wymienianymi dokumentami.

Jak wysyłać i odbierać dokumenty?

Wymiana dokumentów w Comarch ERP XT

Klient pracujący na Comarch ERP XT w dowolnym momencie (np. po zakończeniu miesiąca) przesyła dokumenty do Biura Rachunkowego przyciskiem Wyślij dane do księgowego, który znajduje się na pulpicie aplikacji. W oknie wysyłki Klient wskazuje okres, z którego zostaną przekazane dokumenty. Może również skorzystać z dodatkowej opcji ponownego wysłania wszystkich dokumentów, gdyby pojawiła się taka potrzeba. Szczegółowy opis dostępny Tutaj. Szczegółowy opis informacji o podatkach i opłatach, jakie Klient może odbierać z Biura Rachunkowego, znajduje się Tutaj .

Wymiana dokumentów w Comarch Moje BR

Klient pracujący na Comarch Moje BR na pulpicie swojej aplikacji przed wysyłką pierwszego dokumentu otrzyma komunikat o konieczności potwierdzenia współpracy z Biurem Rachunkowym. Więcej informacji o tym jak rozpocząć współpracę z biurem rachunkowym znajduje się Tutaj.

  Po zaakceptowaniu zostaje uruchomiona automatyczna wymiana danych. Do Biura Rachunkowego od tego momentu przesyłane są:
  • faktury sprzedaży, które zostały zatwierdzone przez Klienta,
  • dokumenty kosztowe, które zostały wprowadzone do aplikacji i wysłane przez Klienta.

Szczegółowy opis informacji o podatkach i opłatach, jakie Klient może odbierać z Biura Rachunkowego, znajduje się tutaj .

Wymiana dokumentów w Comarch ERP Optima

Wysyłanie i odbieranie dokumentów przez Klienta możliwe jest po aktywowaniu przez niego konta Internetowej Wymiany Dokumentów. Klient loguje się u siebie w programie Comarch ERP Optima i w menu Start/Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów na zakładce Konfiguracja zaznacza Aktywuj wymianę danych przez serwer Comarch. Następnie na oknie Podaj dane uzupełnia pola:
  • Numer Klienta (ID) – numer ewidencyjny Comarch (widoczny na certyfikacie rejestracji oprogramowania),
  • PIN – numer PIN klienta (widoczny na certyfikacie rejestracji oprogramowania),
  • Ustaw hasło – pole uzupełnia dowolnym własnym hasłem. Hasło należy zapamiętać, ponieważ będzie wymagane przy jakiejkolwiek zmianie ustawień konta do Internetowej Wymiany Dokumentów.
  • Potwierdź hasło.
  Oddział o symbolu Centrala ustawiany jest automatycznie. Zmiana oddziału możliwa jest po kliknięciu w Zarządzanie Oddziałami. Zapisując wprowadzone dane Klient aktywuje swoje konto do Internetowej Wymiany Dokumentów. Wymiana dokumentów będzie możliwa z poziomu bazy w menu: Rejestry VAT oraz Kasa/Bank, jak również w Preliminarzu płatności i na liście dokumentów w rejestrze VAT dostępna jest sekcja Wymiana danych. Sekcja zawiera trzy batony: Wyślij dane, Odbierz dane i Historia wymiany. Wybór jednej z wymienionych opcji spowoduje automatyczną konfigurację Internetowej Wymiany Dokumentów z Klientem oraz uruchomi procedurę wymiany. Wysyłanie i odbieranie możliwe jest również z poziomu Narzędzia/ Praca rozproszona/ Eksport/Import.

Wysyłka/ Odbiór dokumentów w Biurze rachunkowym

Wskazówka
Aby przesyłać informacje o podatkach i fakturach za usługi Biura, zaznacz na oknie eksportu pozycje: Faktury za usługi księgowe i Płatności do deklaracji.
  • Płatności do deklaracji będą zawierały informacje o podatku VAT, PIT i składkach ZUS.
  • Faktury za usługi księgowe będą eksportowały dokumenty z rejestru zakupu VAT, które mają przypisany atrybut FAKTURA ZA USŁUGI BR z wartością „Tak”.
Szczegółowy opis funkcjonalności znajduje się tutaj .
Biura Rachunkowe w module Comarch ERP Optima Biuro Rachunkowe mogą seryjnie odbierać dokumenty wysłane przez Klientów. W programie Comarch ERP Optima jest możliwość ustawienia automatycznego eksportu i importu danych. Zobacz tę funkcję na filmie  

FAQ - najczęściej zadawane pytania

Co to jest Internetowa Wymiana Dokumentów?

Internetowa Wymiana Dokumentów to model współpracy pomiędzy Biurem rachunkowym a jego Klientem. Klient Biura może pracować na programie Comarch ERP XT, Comarch Moje BR lub Comarch ERP Optima. Biuro Rachunkowe pracuje natomiast na rozwiązaniu Comarch ERP Optima w wersji dla Biur Rachunkowych. Współpraca polega na tym, że Klient wysyła zaszyfrowane i podpisane dokumenty. Wymiana odbywa się elektronicznie poprzez Internet. Dokumenty w postaci zaszyfrowanej paczki trafiają na serwery Comarch skąd Biuro rachunkowe również przez Internet odbiera je i wczytuje do bazy. Biuro może również przesyłać dane do bazy Klienta.

W jaki sposób zabezpieczone są przesyłane dane?

Główne cechy zastosowanego rozwiązania:
  • bezpieczeństwo danych – system został tak zaprojektowany, aby zapewnić jak największe bezpieczeństwo przesyłanych danych,
  • poufność danych – uzyskiwana jest dzięki podwójnemu systemowi szyfrowania (paczki danych są szyfrowane/deszyfrowane asymetrycznie parą kluczy RSA oraz przesyłane szyfrowanym kluczem symetrycznym protokołem opartym o TLS 1.2 / SSL 3.0),
  • integralność danych – jest zapewniona dzięki zastosowaniu podpisu elektronicznego (paczki są podpisywane kluczem prywatnym strony wysyłającej) i strona odbierająca ma pewność, że dane nie zostały zmodyfikowane,
  • zabezpieczenia serwera – (takie jak wymuszanie haseł, czy szyfrowanie całej transmisji uniemożliwiające przechwycenie hasła) uniemożliwiają nieautoryzowane usuwanie danych z serwera oraz wysyłanie na serwer.

Nie można dokonać autoryzacji na serwerze Comarch.

Nie można dokonać autoryzacji na serwerze Comarch
Komunikat pojawia się w sytuacji, gdy dane podane przy aktywacji konta Internetowej Wymiany Dokumentów w Start/Konfiguracja/ Program/ Ogólne/  Internetowa Wymiana Dokumentów są nieprawidłowe lub brak połączenia z serwerem. Biuro powinno sprawdzić wprowadzone dane: Numer Klienta (ID), PIN oraz połączenie z Internetem. Komunikat pojawia się także w przypadku, gdy przy zapisywaniu zmian w ustawieniach Internetowej Wymiany Dokumentów zostanie wprowadzone inne hasło, niż ustawione przy aktywacji konta. Biura Rachunkowe mogą dokonać resetu hasła po zalogowaniu na www.iksiegowosc24.pl w zakładce Konto.  

Konto o ID [ID Klienta] nie istnieje.

Konto o ID [ID Klienta] nie istnieje.
Ostrzeżenie pojawia się w sytuacji gdy Biuro Rachunkowe w Start/Konfiguracja/ Program/ Ogólne/Internetowa Wymiana Dokumentów w kolumnie Numer Klienta (ID), z którym wymieniam dane wpisuje numer Klienta, który:
  • nie ma konta lub nie został zgłoszony do Internetowej Wymiany Dokumentów
  • nie aktywował konta IWD na swojej instalacji programu (dotyczy klientów pracujących w programie Comarch ERP Optima)

Błąd przy imporcie paczki. Wiadomość została zaszyfrowana innym kluczem niż aktualnie posiadany. Usuń oczekujące paczki i wyślij je ponownie.

Błąd przy imporcie paczki. Wiadomość została zaszyfrowana innym kluczem niż aktualnie posiadany. Usuń oczekujące paczki i wyślij je ponownie.
Komunikat pojawia się w Narzędzia/ Praca rozproszona/ Import w sytuacji, gdy obecnie posiadany przez Biuro certyfikat jest inny od tego, obowiązującego w momencie wysyłki dokumentów przez Klienta. Wysłanej na inny certyfikat paczki z dokumentami nie będzie można już odebrać i należy ją usunąć z Narzędzia/ Skrzynka IWD. Klient powinien wysłać paczkę ponownie. Jeśli podczas importu nowej paczki z dokumentami pojawi się ten sam komunikat, należy odświeżyć certyfikat w Start/Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów za pomocą przycisku Odnowienie certyfikatu.  

Konto Klienta Comarch ERP XT pracuje w trybie testowym

Sprawdź, co może być powodem na stronie https://pomoc.erpxt.pl/dokumentacja/komunikat-o-koncie-testowym-dla-uzytkownika-iwd/

Konfiguracja wymiany z Klientem jest niekompletna. Wymagane jest uzupełnienie zgłoszenia Klienta do Internetowej Wymiany Dokumentów. Czy chcesz to zrobić teraz?

Pytanie pojawi się, gdy Klient biura nie będzie miał konta Internetowej Wymiany Dokumentów. Wybierając Tak operator zostanie przekierowany do listy Klientów biura w celu złożenia zamówienia na konto dla Klienta. Wybierając Nie – okno zostanie zamknięte.

OPT043 Zaawansowane schematy księgowe

Data aktualizacji: 16-11-2023

Spis treści

1. Jak można odwoływać się do danych w bazie na poszczególnych elementach schematu?

W polach w nagłówku/pozycjach schematu oprócz standardowo dostępnych makr można odwoływać się do danych w bazie w następujący sposób: Data księgowania - bezpośrednie odwołania do pola w bazie danych, skalarne funkcje serwerowe, Konto Wn/Ma - bezpośrednie odwołania do pola w bazie danych, skalarne funkcje serwerowe, Kwota - bezpośrednie odwołania do pola w bazie danych, wyrażenia SQL (np. CASE), skalarne funkcje serwerowe, Opis - bezpośrednie odwołania do pola w bazie danych, wyrażenia SQL (np. CASE), skalarne funkcje serwerowe, Warunek - bezpośrednie odwołania do pola w bazie danych, zapytania SQL, skalarne funkcje serwerowe.

1. Jakich operatorów logicznych mogę używać w warunku w schemacie księgowym?

Warunek wpisany w schemacie księgowym jest „tłumaczony” na zapytanie SQL poprzez zastąpienie makr (symboli zaczynających się od znaku @) na odwołanie do kolumn bądź funkcji serwerowych. Poszczególne odwołania można łączyć zgodnie z syntaktyką T-SQL – dotyczy to zarówno operatorów porównania (=, >, <, <>, LIKE) jak i operatorów łączących wyrażenia (AND, OR). Dodatkowo możliwe jest używanie funkcji serwerowych. Przykładowo poprawny jest warunek @KategoriaElem LIKE 'POZOST%' OR @KategoriaNag = 'SPR' AND SUBSTRING(@KategoriaElem, 5, 3)= 'TOW'

2. Jak sobie poradzić gdy długi warunek, zawierający wiele kategorii, nie mieści się w schemacie?

W warunku zamiast wersji dłuższej np. @KodPodmiotu='ALA' AND ( @KategoriaElem='MATERIAŁY' OR @KategoriaElem='TOWARY' OR @KategoriaElem='INNE') można użyć operatora serwerowego IN: @KodPodmiotu='ALA' AND @KategoriaElem IN ('MATERIAŁY', 'TOWARY', 'INNE')

3. Czy księgując Fakturę Sprzedaży, można na konto pozabilansowe zaksięgować ilość sprzedanego towaru?

Ilość towaru jest zapisana w tabeli TraElem, żeby zaksięgować liczbę, która znajduje się w tabeli, ale nie istnieje odpowiadające jej makro (tzn. nie można wybrać np. @Ilosc), trzeba w schemacie księgowym odwołać się bezpośrednio do nazwy pola w tabeli. Żeby na jakimś koncie pozabilansowym wyksięgować z faktury ilość sprzedanego towaru, w polu Kwota należy odwołać się do pola TrE_Ilosc. Ze względu jednak na optymalizację parsera analizującego schemat księgowy i "tłumaczącego" go na zapytanie SQL konieczne jest użycie w definicji kwoty przynajmniej jednego makra (tzn. pola zaczynającego się od '@') lub definicja musi rozpoczynać się od znaku apostrofu (‘). Dodatkowo trzeba „zmusić” automat księgujący, żeby użył tabeli TraElem (automat księgujący nie wie, że TrE_Ilosc jest kolumną w tabeli TraElem, więc nie użyje jej automatycznie). W tym celu w definicji kwoty można wpisać np. @PozNetto - @PozNetto + TrE_Ilosc @PozNetto - @PozNetto i tak dadzą w wyniku 0. Makro @PozNetto odwołuje się do pozycji faktury (a więc do tabeli TraElem), więc mamy pewność, że zapytanie zostanie zbudowane poprawnie. Drugą możliwością jest wpisanie: '0' + TrE_Ilosc ’0’ zostanie automatycznie przekonwertowane na liczbę 0 i nie zaburzy wyniku. W tym przypadku trzeba jeszcze „zmusić” automat księgujący, żeby użył tabeli TraElem. W tym celu w pozycji schematu księgowego należy użyć jakiegokolwiek parametru bądź makra odwołującego się do pozycji faktury, np.:
  • zaznaczyć Podział na kategorie
  • lub Podział na słowniki – Towary
  • lub w opisie (bądź w warunku) odwołać się do kategorii pozycji (@KategoriaElem lub @KategoriaOgolnaElem) lub do towaru (@NazwaTowaru)

4. Czy księgując Fakturę Sprzedaży w opisie pozycji dekretu mogę umieścić informację o stawce VAT, jakiej dotyczyła dana pozycja?

Tak, w przypadku opisu jest podobnie jak w przypadku kwoty - można odwołać się do pola (pól) z tabeli, z zastrzeżeniem, co do użycia co najmniej jednego makra i wymuszenia użycia tabeli TraElem. W definicji kwoty używamy np. makra @PozNetto (ponieważ @PozNetto jest to wartość netto, pozycji faktury, to automatycznie mamy zapewnione, że zostanie użyta tabela TraElem) Informacja o stawce Vat jest zapisywana w polach:
  • TrE_Flaga – mówi o tym, czy jest to stawka zwykła (2), zaniżona (3), zwolniona (1), czy nie podlega (4)
  • TrE_Stawka – zawiera wysokość stawki Vat
W definicji opisu pozycji można by więc użyć wyrażenia: @NumerPelny + ': stawka Vat ' + Case TrE_Flaga When 1 Then 'ZW' When 4 Then 'NP' Else STR(TrE_Stawka,5,2) End Spowoduje to wstawienie w dekrecie w polu Opis numeru dokumentu uzupełnionego o stawkę Vat - oczywiście zostanie wygenerowanych tyle pozycji, ile różnych stawek Vat jest na dokumencie.

5. Czy w schemacie księgowym Faktury Sprzedaży mogę w warunku użyć grupy, do której należy sprzedany towar?

Grupa towarowa znajduje się w tabeli Towary (pole Twr_Grupa) – przy czym nie możemy odwołać się do pola Twr_Grupa w taki sposób jak to opisywano poprzednio, ponieważ obecnie żadne makro nie odwołuje się do tabeli Towary (a więc nie ma możliwości w schemacie księgowym połączenia się z tą tabelą). Możemy to natomiast zrobić za pomocą funkcji serwerowej. W tym celu tworzymy funkcję MojaFunkcja_GrupaTowaru – należy poniższy skrypt wykonać za pomocą Query Analyzera lub OSQL-a. Jeżeli teraz chcemy zaksięgować warunkowo sprzedaż towarów z grupy 'AKCESORIA', w warunku wpisujemy wyrażenie: 'AKCESORIA' = dbo.MojaFunkcja_GrupaTowaru (TrE_TwrId)

Oczywiście funkcje mogą być znacznie bardziej skomplikowane, można ich używać zarówno w definicjach warunków, opisów jak i kwot (w ostatnim przypadku funkcja powinna zwracać typ NUMERIC). Podobnie jak w przypadku używania pól z tabel, używając funkcji należy pamiętać o tym, żeby wyrażenie zawierało co najmniej jedno makro, lub zaczynało się od znaku ' (apostrof).

Uwaga
Aby zaksięgować towar w zależności od grupy domyślnej, do której należy (na pierwszej zakładce karty cennika) należy funkcję skonstruować w poniższy sposób: If Exists ( Select * From sysobjects Where name = 'MojaFunkcja_GrupaTowaru' And xtype='FN') Drop Function dbo.MojaFunkcja_GrupaTowaru GO create Function dbo.MojaFunkcja_GrupaTowaru (@TwrId INT) Returns VarChar(20) As Begin Declare @Grupa VarChar(20) select @grupa = twg_kod from cdn.twrgrupy join cdn.towary on twr_twggidnumer = twg_gidnumer AND twg_gidtyp = -16 where twr_twrid = @twrid Return @Grupa End
Uwaga
Aby zaksięgować towar pod warunkiem, że towar należy do grupy podrzędnej należy nieco inaczej zbudować funkcję. If Exists ( Select * From sysobjects Where name = 'MojaFunkcja_GrupaTowaru' And xtype='FN' ) Drop Function dbo.MojaFunkcja_GrupaTowaru GO create Function dbo.MojaFunkcja_GrupaTowaru (@TwrId INT) Returns VarChar(20) As Begin Declare @Grupa VarChar(20) select @grupa = A.twg_kod from cdn.twrgrupy  A join cdn.twrgrupy B on A.twg_gidnumer = B.twg_gronumer join cdn.towary C on C.twr_twggidnumer = B.twg_gidnumer AND C.twr_twggidnumer <> A.twg_gidnumer where B.twg_gidtyp = -16 and A.twg_gidtyp <> 16 and c. twr_twrid = @twrid Return @Grupa End

6. Czy w schemacie księgowym mogę ustawić warunek na sprawdzanie istnienia lub nie kwot dodatkowych na dokumencie?

Można w warunku sprawdzić, czy istnieją kwoty dodatkowe, z tym, że korzystamy tu z pewnych funkcji pozastandardowych. Niestety już w kilku przypadkach okazało się, że korzystanie z tego typu funkcji po zmianie wersji Comarch ERP Optima wymagało drobnych korekt w schematach księgowych. Raporty kasowe/bankowe Jeśli chcemy zaksięgować dokument, na którym NIE ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać: '1'='1' AND NOT EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=14 And KDD_DokumentId=BZp_BZpId) Jeśli chcemy zaksięgować dokument, na którym ISTNIEJĄ podpięte kwoty dodatkowe (przy czym chodzi o księgowanie kwot przychód/rozchód, a nie kwot dodatkowych), w warunku należy wpisać: '1'='1' AND EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=14 And KDD_DokumentId=BZp_BZpId) Rejestry VAT Jeśli chcemy zaksięgować dokument, na którym NIE ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać: '1'='1' AND NOT EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=2 And KDD_DokumentId=van_vanId) Jeśli chcemy zaksięgować dokument, na którym ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać: '1'='1' AND EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=2 And KDD_DokumentId=van_vanId)

7. Czy w schemacie do zaksięgowania listy płac można zastosować warunek do zaksięgowania wszystkich zasiłków w jednej kwocie (zasiłku rodzinnego, pielęgnacyjny, chorobowy...)?

Przy tworzeniu warunku można skorzystać z makra: @TypWyplaty LIKE 'zas%'

8. W poniższym schemacie księgowania dokumentu PZ z ewidencji dodatkowej występuję błąd księgowania: dokument niezbilansowany. Różnica 0,01 zł wynika z zaokrągleń. Jak sobie z nimi poradzić?

Schemat pierwotny:
Konto WnKonto MaKwotaOpis
zwykłe1(@RazemKwota+@RazemKwota*0.32)*1.23cena brutto z marżą i VAT
zwykłe2@RazemKwotacena netto
zwykłe3@RazemKwota*0.32marża
zwykłe4(@RazemKwota+@RazemKwota*0.32)*0.23VAT

Kwota na dokumencie: 1669,06 zł. (@RazemKwota)

Rozwiązania są dwa: 1.Zastosować w schemacie podwójne dekrety:
Konto WnKonto MaKwotaOpis
zwykłe1zwykłe2@RazemKwotacena netto
zwykłe1zwykłe3@RazemKwota*0.32marża
zwykłe1zwykłe4(@RazemKwota+@RazemKwota*0.32)*0.23VAT

2. Zastosować następujące makra w schematach:

Konto WnKonto MaKwotaOpis
zwykłe1ROUND(@RazemKwota*1.32,2)*1.23cena bto z marżą i VAT
zwykłe2@RazemKwotacena netto
zwykłe3@RazemKwota*0.32marża
zwykłe4ROUND(@RazemKwota*1.32,2)*0.23VAT

9. Jak można zaksięgować wartość zakupu z rej. VAT przeniesioną za pomocą pliku COMMA?

Należy w pozycji Kwota wpisać: '0'+VaN_WartoscZak

10. Jak można podczas księgowania faktury sprzedaży odwołać się do wartości zakupu dla całego dokumentu?

Należy na pozycji schematu księgowego w polu Kwota wpisać: '0'+TrN_WartoscZakupu

11. Jak uzależnić księgowanie dokumentów z ewidencji dodatkowej na poszczególne konta od symbolu użytego w schemacie numeracji?

W przypadku Ewidencji dodatkowej przychodów można użyć w warunku wyrażenia: @Dokument LIKE '%EDP%'  co oznacza, że na konto zostanie zaksięgowany dokument, który ma w schemacie numeracji ciąg znaków EDP (np. EDP/000001/2003). W przypadku Ewidencji dodatkowej kosztów można użyć w warunku wyrażenia: '1'='1' AND EDN_NumerPelny LIKE 'EDK%' Różnica wynika z faktu, że w Ewidencji dodatkowej kosztów, na formatce zapisu są dwa numery: numer nadawany przez program i numer obcy. Makro @Dokument w tym przypadku pobiera numer nadawany przez program jeżeli numer obcy nie jest wypełniony. Jeżeli w warunku jest użyte jakieś makro to wystarczy dodać: AND EDN_NumerPelny LIKE 'EDK%' Patrz też pytania nr:
    1. Jak zaksięgować fakturę zakupu, żeby w schemacie księgowania w warunku zastosować fragment numeru dokumentu np MAGAZYN i SERIA z numeru FZ/99/MAGAZYN/SERIA? 
    1. Jak w warunku schematu dla WZ odwołać się do symbolu/serii w numerze faktury do której zostało wystawione WZ?

12. Jak uzależnić księgowanie poszczególnych KP/KW w raporcie kasowym od rodzaju podmiotu (dostawca, odbiorca, konkurencja, partner)?

W warunku schematu należy użyć wyrażenia: '1'='1' AND EXISTS (Select * FROM CDN.Kontrahenci Where Knt_KntId=BZp_PodmiotID AND Knt_Rodzaj_Odbiorca='1') Wówczas program zaksięguje na podane konta określoną kwotę, jeżeli kontrahent wybrany na KP/KW będzie odbiorcą. Dla dostawcy należy zmienić w powyższym wyrażeniu nazwę pola na Knt_Rodzaj_Dostawca, dla konkurencji na Knt_Rodzaj_Konkurencja, dla partnera na Knt_Rodzaj_Partner, natomiast dla klienta potencjalnego na Knt_Rodzaj_Potencjalny.

13. Jak stworzyć warunek dla zaksięgowania na osobne konta kwot netto: towarów i usług?

Taki warunek można stworzyć w schematach dla Faktur sprzedaży i Faktur zakupu (księgowań z modułu Faktury – ewentualnie księgowań innych dokumentów z modułu Faktury lub Magazyn). Trzeba wybrać księgowanie kwoty @PozNetto (lub @PozBrutto) i w warunku dopisać:
      • Dla usługi (prostej lub złożonej):
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0)
      • Dla usługi prostej:
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0 And Twr_Produkt=0)
      • Dla usługi złożonej:
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0 And Twr_Produkt=1)
      • Dla towaru (prostego lub złożonego):
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1)
      • Dla towaru prostego:
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1 And Twr_Produkt=0)
      • Dla towaru złożonego:
'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1 And Twr_Produkt=1)

14. Jakiego wyrażenia należy użyć w warunku pozycji schematu księgowego aby uzależnić księgowanie od grupy, do której należy kontrahent wybrany na fakturze w rejestrze VAT?

'1'='1' AND EXISTS (SELECT* FROM CDN.Kontrahenci where Knt_KntId=VaN_PodID AND VaN_PodmiotTyp = 1 AND Knt_Grupa='DOST') Podana w schemacie kwota, zostanie zaksięgowana na zadane konta jeżeli kontrahent wybrany na fakturze należy do grupy 'DOST'. W schematach księgowych dla księgowania faktur z modułu Faktury warunek powinien być następujący: '1'='1' AND EXISTS (SELECT* FROM CDN.Kontrahenci where Knt_KntId=TrN_PodID AND TrN_PodmiotTyp = 1 AND Knt_Grupa='DOST')

15. Jak uzależnić księgowanie VAT-u z Rejestru VAT na dane konto od tego czy dokument jest rozliczony w danym miesiącu?

Warunek czy dokument jest w ogóle nierozliczony: '1'='1' AND EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND BZd_Rozliczono<2) Poniżej warunek sprawdzający przy założeniu, że dla dokumentu jest tylko jedna płatność, czyli płatność na dokumencie nie została podzielona na raty (ale mogła być rozliczana "na raty"). Dokument jest nierozliczony lub został rozliczony w innym miesiącu niż data dokumentu: '1'='1' AND EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND (BZd_Rozliczono<2 OR 100 * YEAR(BZd_DataRoz) + MONTH(BZd_DataRoz) <> VaN_RokMies)) Dokument został rozliczony w tym miesiącu, co data dokumentu: '1'='1' AND NOT EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND (BZd_Rozliczono<2 OR 100 * YEAR(BZd_DataRoz) + MONTH(BZd_DataRoz) <> VaN_RokMies))

16. Jak uzależnić księgowanie VAT-u z Rejestru VAT na dane konto od tego, w którym miesiącu dokument trafi na deklarację VAT-7?

Aby zaksięgować VAT na zadane konto, jeżeli data deklaracji VAT-7 to 10.2018 należy w warunku użyć wyrażenia: '1'='1' AND VaN_DeklRokMies='201810' Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty rejestru. Czyli mając wyświetloną na ekranie listę faktur za miesiąc 10.2018, program zaksięguje te, które mają datę deklaracji inną niż 10.2018 np. 11.2018. '1'='1' AND Van_RokMies<>Van_DeklRokMies I dla równowagi, warunek gdy data deklaracji jest równa dacie rejestru: '1'='1' AND Van_RokMies=Van_DeklRokMies Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty zakupu faktury zakupu: '1'='1' AND (100 * YEAR(VaN_DataOpe) + MONTH(VaN_DataOpe)) <> Van_DeklRokMies Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty wystawienia faktury zakupu: '1'='1' AND (100 * YEAR(VaN_DataWys) + MONTH(VaN_DataWys)) <> Van_DeklRokMies Dla metody kasowej: '1'='1' AND Exists (Select * From CDN.VatTab7 Where Va7_VaNID=VaN_VaNID And (VAN_RokMies <> Va7_RokMiesiac or (100*Year (VaN_DataOpe) + month (VaN_DataOpe)) <> Va7_RokMiesiac))

17. Jak zaksięgować dokument RWS na konta analityczne w oparciu o grupy towarów?

Kwota netto ma zostać zaksięgowana na konto 311 (niesłownikowe) z podziałem na analityki w oparciu o grupy towarowe, np.: 311-01 - AKCESORIA 311-02 - ROŚLINY 311-03 – SPRZĘT W schemacie księgowym należy utworzyć trzy pozycje z poniższymi odpowiednio warunkami: Pozycja 1: '1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16 Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'AKCESORIA') Pozycja 2: '1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16 Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'ROŚLINY') Pozycja 3: '1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16 Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'SPRZĘT') Można jeszcze skorzystać z innej, prostszej możliwości zaksięgowania. Gdyby 311 było kontem słownikowym (z podpiętym słownikiem Towary i podziałem na grupy), to takiego księgowania można dokonać automatem, zaznaczając w poszczególnych pozycjach schematu - Podział na słowniki: Towary. W takiej sytuacji do analityki konta 311-01 - AKCESORIA będą podpięte subanalityki dla poszczególnych towarów.

18. Jak zaksięgować dokument RWS na konta analityczne w zależności od tego do jakiej grupy towarowej należy towar złożony wybrany na dokumencie PWS?

Sytuacja wygląda następująco:
Dokument: Kompletacja – Przyjęcia produktówDokument: Kompletacja – Rozchody składników
Towar złożony należący do GRUPA1Towar1 – należy do GRUPA2
Towar2 – należy do GRUPA3
Księgujemy dokument: Kompletacja – Rozchody składników: chodzi o to aby zaksięgować kwotę np. @PozNetto, na wybrane konto jeżeli grupa, do której należy towar złożony wybrany na dokumencie: Kompletacja – Przyjęcia produktów, należy do GRUPA1. Takiej operacji można dokonać schematami warunkowymi. W warunku należy wpisać: '1'='1' AND EXISTS ( SELECT * FROM CDN.TraElem B JOIN CDN.Towary C ON B.TrE_TwrId = C.Twr_TwrId JOIN  CDN.TwRGrupy D on C.TwR_TwGGIDNumer=D.TwG_GIDNumer and D.TwG_GIDTyp=-16 WHERE B.TrE_TrEId = CDN.TraElem.TrE_TrEIdProd AND D.TwG_Kod = 'GRUPA1' ) Jeżeli grup jest więcej i każda księgowana jest na inne konto analityczne – należy stworzyć osobną pozycję w schemacie dla każdej z nich. Jeżeli na podane konto chcemy księgować określoną kwotę w sytuacji gdy grupa do jakiej należy towar złożony wybrany na PWP to GRUPA1 i jednocześnie towar na dokumencie RWS należy do grupy GRUPA2 to warunek powinien wyglądać następująco: '1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16 Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'GRUPA2') AND EXISTS ( SELECT * FROM CDN.TraElem B JOIN CDN.Towary C ON B.TrE_TwrId = C.Twr_TwrId JOIN  CDN.TwRGrupy D on C.TwR_TwGGIDNumer=D.TwG_GIDNumer and D.TwG_GIDTyp=-16 WHERE B.TrE_TrEId = CDN.TraElem.TrE_TrEIdProd AND D.TwG_Kod = 'GRUPA1' )

19. Jak w opisie dekretu, dla księgowania Rejestru VAT, uzyskać liczbę porządkową faktury oraz rejestr, w którym jest zapisana?

W pozycji schematu dla rejestru VAT, w polu Opis, należy wpisać: @Dokument + ' ' + LTRIM(STR(VaN_Lp)) + ' '+ @Rejestr Makro @Dokument może zostać zastąpione innym istniejącym makrem – chodzi o to, aby program wiedział do jakiej tabeli ma się odwołać. Ponieważ Liczba porządkowa jest liczbą, SQL nie radzi sobie z dodaniem jej do tekstu. Należy wykonać jawną konwersję danych, np: @Dokument + ' ' + STR(VaN_Lp) Ponieważ jednak funkcja STR dodaje spacje na początku liczby, więc żeby się ich pozbyć, można zapisać wyrażenie następująco:

@Dokument + ' ' + LTRIM(STR(VaN_Lp))20. Jak zaksięgować Fakturę Zakupu, żeby w schemacie  księgowania w warunku zastosować fragment numeru dokumentu np MAGAZYN  i SERIA z numeru FZ/99/MAGAZYN/SERIA?

@NumerPelny LIKE '%MAGAZYN/SERIA%' Wówczas podana kwota, zostanie zaksięgowana na wskazane konta jeżeli numer faktury będzie zawierał ciąg znaków: ‘MAGAZYN/SERIA’. Warunek może być zastosowany dla faktury sprzedaży i zakupu księgowanych z modułu Faktury. Czy takiego warunku można też użyć przy księgowaniu faktur zakupu z poziomu rejestru VAT? Tak, warunek księgowania powinien wyglądać tak: '1'='1' AND exists (select * from CDN.TraNag where VaN_VaNID=TrN_VaNId AND TrN_NumerPelny LIKE '%MAGAZYN/SERIA%') Patrz też pytania nr:
    1. Jak uzależnić księgowanie dokumentów z ewidencji dodatkowej na poszczególne konta od symbolu użytego w schemacie numeracji?
    1. Jak w warunku schematu dla WZ odwołać się do symbolu/serii w numerze faktury do której zostało wystawione WZ?
 

21. W jaki sposób, w schemacie księgowania faktury zakupu z rejestrów VAT (pochodzącej z modułu Faktury), umieścić w opisie jej numer pełny (własny)?

Należy zdefiniować funkcję serwerową. Poniżej przykład takiej funkcji: Create Function CDN.MojeFunkcje_Podaj_TrN_NumerPelny (@VaNId Int) Returns VarChar(31) As  Begin Declare @Numer VarChar(31) Set @Numer = IsNull((Select Top 1 TrN_NumerPelny From CDN.TraNag Where TrN_VaNId = @VaNId), '') Return @Numer End Jeżeli chcemy to umieścić w opisie, to musi się znaleźć w "towarzystwie" co najmniej jednego makra, np.: @Dokument + ' ' + CDN.MojeFunkcje_Podaj_TrN_NumerPelny (VaN_VaNId)

22. Jakiego użyć warunku aby zaksięgować fakturę w zależności od terminu płatności?

Dla księgowania faktur z modułu Faktury: '1'='1' AND TrN_Termin BETWEEN Convert(DateTime, '2018-01-01', 120) AND Convert(DateTime, '2018-01-31', 120) Podana w elemencie schematu kwota, zostanie zaksięgowana na zadane konta jeżeli termin płatności faktury będzie zawierał się między 2018-01-01 a 2018-01-31. Dla księgowania faktur z Rejestrów VAT:

'1'='1' AND VaN_Termin BETWEEN Convert(DateTime, '2018-01-01', 120) AND Convert(DateTime, '2018-01-31', 120)23. Jak w schemacie księgowania podzielić wynagrodzenia wg wydziałów przy czym na jedną listę wchodzą pracownicy z kilku wydziałów?

W warunku należy wpisać: '1'='1' and Exists (Select * From CDN.PracEtaty Where WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo And CDN.DzialSciezka(PRE_DZLId) = 'FIRMA\WYDZIAŁ1\PODWYDZIAŁ1') WYDZIAŁ1 to nazwa wydziału w którego skład wchodzi PODWYDZIAŁ1. Pracownik ma podpięty na karcie PODWYDZIAŁ1.

24. Jak w schemacie do księgowania listy płac rozksięgować składkę na FP i FGŚP z podziałem na wydziały (składkę wyliczoną i zsumowaną dla każdego z pracowników danego wydziału)?

Wartości FP i FGŚP obliczone dla składników wynagrodzeń poszczególnych pracowników, są umieszczone w tabeli CDN.WypElementy w polach: WPE_SklFP i WPE_SklFGSP. Do ww. tabeli odwołuje się np. makro kwoty @Brutto. Aby zaksięgować kwotę FP i FGŚP obliczoną dla poszczególnych pracowników przypisanych do konkretnego wydziału, należy w elemencie schematu, w polu Kwota, użyć wyrażenia: Dla księgowania FP: @Brutto - @Brutto + WPE_SklFP Dla księgowania FGŚP: @Brutto - @Brutto + WPE_SklFGSP W warunku należy użyć wyrażenia dotyczącego Wydziału (@Wydzial) lub opisanego w pytaniu 30. Jak w schemacie księgowania podzielić wynagrodzenia wg wydziałów przy czym na jedną listę wchodzą pracownicy z kilku wydziałów?

25. Jak zaksięgować KP/KW w zależności od tego czy termin płatności, na fakturze, która jest rozliczona z płatnością, jest różny od daty wystawienia dokumentu i forma płatności to gotówka?

W warunku można użyć następującego wyrażenia: '1'='1' AND exists ( select * from CDN.BnkRozRelacje join CDN.BnkZdarzenia on BRR_DDokID = BZd_BZdID AND BRR_DDokTyp=1 join CDN.FormyPlatnosci on BZd_FPlId = FPl_FPlId where BZp_BZpID=BRR_ZDokID AND BRR_ZDokTyp=2 AND BZd_Termin<>BZd_DataDok AND BZd_DokumentTyp IN (1,2) AND FPl_Typ=1) Warunek sprawdza daty i formę płatności zdarzenia w Preliminarzu. Uwzględnia więc sytuację, w której płatność do faktury została podzielona na raty. Natomiast w sytuacji gdy jest jedna płatność, która rozlicza kilka faktur i co najmniej jedna z nich spełnia powyższy warunek - KP/KW zostanie zaksięgowane. Pole FPl_Typ=1 oznacza, że typ formy płatności to "gotówka" (takich form zdefiniowanych w programie może być wiele i wszystkie zostaną wzięte pod uwagę). Jeżeli warunek ma dotyczyć tylko konkretnej formy płatności, która ma identyfikator np. 1 to zamiast powyższego należy wpisać: FPl_FPlId=1.

26. Jak w schemacie księgowym dla Rejestru VAT połączyć kwotę dodatkową z kwotą brutto i VAT faktury tak aby schemat nie wykazywał błędu użycia makr różnych typów?

W jednej z firm, program fakturujący oblicza wartości detaliczne danej faktury. Wartość ta jest przenoszona do kwot dodatkowych na fakturze w Rejestrze VAT w Comarch ERP Optima. Z wartości detalicznej brutto należy obliczyć jaka kwota marży przypada na wartość netto i jaka na wartość VAT. Wzór na obliczenie tych kwot wygląda następująco: Kwota marży przypadająca na wartość netto: @KwotaDodat-(@VAT*(@KwotaDodat-@Brutto)/@Brutto)-@Brutto Kwota marży przypadająca na wartość VAT: @VAT+(@VAT*(@KwotaDodat-@Brutto)/@Brutto Schemat wygląda następująco: Wn 221 (kwota VAT-u z faktury) 3,06 332 (Kwota dodatkowa) 55,50 Ma 201 (kwota brutto z faktury - konto kontrahenta) 46,81 341 (Kwota marży przypadającej na wartość netto) 8,12 342 (kwota marży przypadającej na wartość VAT) 3,63 Po wprowadzeniu takiej formuły do pozycji schematu, pojawia się komunikat o błędzie połączenia makr z elementów i nagłówka. Problem ten można rozwiązać wykorzystując fakt, że "makra" (symbole kwot zaczynające się od @) są w procesie księgowania "tłumaczone" na nazwy pól w bazie danych. Odpowiednio @VAT odpowiada wartości pola VaN_RazemVAT @Brutto odpowiada wartości pola VaN_RazemBrutto Przy czym w konstrukcji schematu możliwe jest wykorzystanie obok "makr" również nazw pól w bazie. Użycie nazwy pola w bazie skutkuje przy okazji tym, że nie jest ono uwzględniane w sprawdzaniu typów użytych makr. Reasumując – można przygotować schemat:
Konto WnKonto MaKwota
221@Vat
332@KwotaDodat
201@Brutto (z podziałem na podmioty)
341@KwotaDodat - VaN_RazemBrutto - ROUND ( VaN_RazemVAT * ( @KwotaDodat - VaN_RazemBrutto ) / VaN_RazemBrutto, 2 )
342VaN_RazemVat + ROUND ( VaN_RazemVAT * ( @KwotaDodat - VaN_RazemBrutto ) / VaN_RazemBrutto, 2 )
Uwaga
Użycie funkcji ROUND jest tu wskazane - gdyby wynik podziału marży dał w końcówce równe 0.005 to efekcie oba księgowania (na konta 341 i 342) zostałyby zaokrąglone w górę i dostalibyśmy 1 grosz za dużo.
Patrz też pytanie: 28. Jak w schemacie dla Rejestrów VAT zdefiniować kwotę, która jest różnicą pomiędzy kwotą dodatkową i kwotą netto faktury?

27. Jak uzależnić księgowanie odpisów amortyzacyjnych od opisu na karcie danego środka trwałego?

Przypadek dotyczył sytuacji gdy klient księgował używając kategorii na konta zespołu „4” i chciał księgować na konta zespołu „5” w zależności od tego czy opis na karcie środka trwałego zawierał dany ciąg znaków. Na karcie środka trwałego są dwa pola opisowe, które można wykorzystać: Opis kategorii (czyli to pole po prawej stronie od Kategorii) i pole Opis. W schemacie można odwołać się do nich w następujący sposób: Dla opisu kategorii na karcie środka w warunku należy wpisać np.: '1'='1' AND EXISTS (Select * from CDN.Trwale where SrT_SrTID=SrH_SrTID and SrT_Kategoria LIKE '%550%') Dla Opisu na karcie w warunku należy wpisać np.: '1'='1' AND EXISTS (Select * From CDN.Trwale Where SrT_SrTID=SrH_SrTID And  SrT_Opis LIKE '%550%') Warunki oznaczają, że podana kwota zostanie zaksięgowana jeżeli opis zawiera wyrażenie '550'. Aby schemat zadziałał poprawnie w Opisie elementu schematu należy użyć makro, które odwołuje się do karty środka trwałego np. @ST_NrInwent (czyli Numer inwentarzowy).

28 Jak w schemacie dla Rejestrów VAT zdefiniować kwotę, która jest różnicą pomiędzy kwotą dodatkową i kwotą netto faktury?

Dodatkowo istnieje potrzeba wpisania warunku, że jeśli wynik będzie dodatni to kwota ma zostać zaksięgowana na określone konta. Taki warunek można zawrzeć w definicji kwoty:
LpKonto Wn Konto Ma Kwota
1760340CASE WHEN @KwotaDodat > VaN_RazemNetto THEN @KwotaDodat - VaN_RazemNetto ELSE 0 END
2340760CASE WHEN @KwotaDodat < VaN_RazemNetto THEN VaN_RazemNetto - @KwotaDodat ELSE 0 END
Uwaga
Jeśli na liście kwot dodatkowych będzie wpisane więcej niż jedna kwota, to każda z nich będzie porównywana z wartością netto oddzielnie – w szczególności, jeśli jedna z tych kwot będzie większa od netto, a druga mniejsza, to powstaną dwa zapisy.
Patrz też pytanie nr:  26. Jak w schemacie księgowym dla Rejestru VAT połączyć kwotę dodatkową z kwotą brutto i VAT faktury tak aby schemat nie wykazywał błędu użycia makr różnych typów? Jeżeli istnieje konieczność porównania sumy kwot dodatkowych z wartością netto, to można posłużyć się odpowiednią funkcją serwerową. Przykład funkcji dla sumy kwot dodatkowych większej od netto: create function cdn.KwotyDW (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2) select @wynik = Sum(Kdd_Kwota) - VaN_RazemNetto from CDN.KwotyDodatkowe join cdn.vatnag on Kdd_DokumentID=VaN_VaNID where Kdd_DokumentID = @VaNId AND KDD_DokumentTyp=2 group by VaN_RazemNetto having Sum(Kdd_Kwota) > VaN_RazemNetto return IsNull(@wynik,0) end W schemacie, w polu Kwota należy wpisać: '0' + cdn.KwotyDW(VaN_VaNID) Dla sumy kwot dodatkowych mniejszych: create function cdn.KwotyDM (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2) select @wynik = VaN_RazemNetto - Sum(Kdd_Kwota) from CDN.KwotyDodatkowe join cdn.vatnag on Kdd_DokumentID=VaN_VaNID  where  Kdd_DokumentID = @VaNId AND KDD_DokumentTyp=2 group by VaN_RazemNetto having  Sum(Kdd_Kwota) < VaN_RazemNetto return IsNull(@wynik,0) end W schemacie, w polu Kwota należy wpisać: '0' + cdn.KwotyDM(VaN_VaNID) Warunku w ww. funkcjach nie uwzględniają sytuacji gdy suma kwot dodatkowych jest równa razem netto. Patrz też pytanie nr: 29. Jak w schemacie księgowym uzyskać kwotę, która jest różnicą pomiędzy sumą kwot dodatkowych Wn minus suma kwot dodatkowych Ma, a wartością netto faktury?

29 Jak w schemacie księgowym uzyskać kwotę, która jest różnicą pomiędzy sumą kwot dodatkowych Wn minus suma kwot dodatkowych Ma, a wartością netto faktury?

W celu uzyskania sumy kwot dodatkowych Wn i Ma należy stworzyć funkcję serwerową. Poniżej przykład funkcji: a) dla sumy kwot dodatkowych Wn create function cdn.SumaKwotyDodWn (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2) select @wynik = Sum(Kdd_Kwota) from CDN.KwotyDodatkowe where Kdd_DokumentID=@VaNId AND KDD_DokumentTyp=2 AND Kdd_Segment1<>'' return IsNull(@wynik,0) end Kwotę w schemacie należałoby zapisać jako: '0' + cdn.SumaKwotyDodWn(VaN_VaNID) b) dla sumy kwot dodatkowych Ma create function cdn.SumaKwotyDodMa (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2) select @wynik = Sum(Kdd_Kwota) from CDN.KwotyDodatkowe where Kdd_DokumentID=@VaNId AND KDD_DokumentTyp=2 AND Kdd_Segment2<>'' return IsNull(@wynik,0) end Kwotę w schemacie należałoby zapisać jako: '0' + cdn.SumaKwotyDodMa(VaN_VaNID) Aby uzyskać następującą kwotę: suma kwot dodatkowych Wn minus suma kwot dodatkowych Ma minus razem netto, jako kwotę w schemacie można wpisać: '0' + (cdn.SumaKwotyDodWn(VaN_VaNID) - cdn.SumaKwotyDodMa(VaN_VaNID)) - VaN_RazemNetto Patrz też pytanie nr: 28. Jak w schemacie dla Rejestrów VAT zdefiniować kwotę, która jest różnicą pomiędzy kwotą dodatkową i kwotą netto faktury?

30 Jak zaksięgować fakturę (z rejestru VAT lub z modułu FA) w zależności od form płatności przypisanych na zakładce Kontrahent faktury w Rejestrze VAT lub zakładce Płatności na fakturze w module FA)?

Chodzi o przypadek, gdy kwota płatności jest rozbijana na kilka rat lub będzie płacona kilkoma formami płatności np. część gotówką, a pozostała część przelewem. Należy zdefiniować funkcję serwerową. Przykład takiej funkcji (w przypadku księgowania z poziomu rejestrów VAT) poniżej: if exists (select * from sysobjects where name = 'userKwotaFormyPlatnosci' and xtype = 'FN') drop function CDN.userKwotaFormyPlatnosci GO create function CDN.userKwotaFormyPlatnosci (@vanid int, @nazwa varchar(20)) returns numeric (15,2) as begin declare @wynik numeric (15,2) if exists (select * from cdn.vatnag where van_vanid = @vanid and van_trnid is not null) --- to jest przypadek zapisu zaksięgowanego z listy faktur: select @wynik = isnull(sum(bzd_kwotasys),0) from cdn.bnkzdarzenia join cdn.formyplatnosci on bzd_fplid = fpl_fplid join cdn.tranag on bzd_dokumenttyp = 1 and bzd_dokumentid = trn_trnid where fpl_nazwa = @nazwa and trn_vanid = @vanid else --- to jest przypadek zapisu "ręcznego": select @wynik = isnull(sum(bzd_kwotasys),0) from cdn.bnkzdarzenia join cdn.formyplatnosci on bzd_fplid = fpl_fplid where fpl_nazwa = @nazwa and bzd_dokumenttyp = 2 and bzd_dokumentid = @vanid return @wynik end GO Schemat wyglądałby wówczas np. tak Konto Kwota 201 '0' + CDN.userKwotaFormyPlatnosci (VaN_VaNId, 'PRZELEW') 100 '0' + CDN.userKwotaFormyPlatnosci (VaN_VaNId, 'GOTÓWKA') W tym wypadku funkcji używamy w kwocie, a nie w warunku. W przypadku księgowania dokumentów z poziomu listy faktur w module Handel/Faktury funkcja wygląda następująco: create function CDN.userKwotaFormyPlatnosciFA (@trnid int, @nazwa varchar(20)) returns numeric (15,2) as begin declare @wynik numeric (15,2) select @wynik = isnull(sum(bzd_kwotasys),0) from cdn.bnkzdarzenia join cdn.formyplatnosci on bzd_fplid = fpl_fplid where fpl_nazwa = @nazwa and bzd_dokumenttyp = 1 and bzd_dokumentid = @trnid return @wynik end Przykładowe odwołanie do funkcji w polu Kwota schematu: '0' + CDN.userKwotaFormyPlatnosciFA (TrN_TrNId, 'PRZELEW')

31. W Rejestrze VAT wybieram na dokumencie kategorię szczegółową ale chciałbym rozksięgować dokument na konto przypisane do kategorii ogólnej, czy jest to możliwe?

Jest to możliwe. Należy stworzyć funkcję serwerową, która odczyta segment konta z kategorii ogólnej np. mamy kategorię ogólną ENERGIA, która ma jako segment Wn konta wybrane konto 402 i mamy kategorie szczegółowe do niej:
Kategoria ogólnaKategoria szczegółowaSegment Konto Wn
ENERGIA402
ENERGIA_PRODUKCJA501-02
ENERGIA_HANDEL505-02
ENERGIA_ZARZĄD510-02
Na dokumencie wybieramy kategorie szczegółowe pozycji, za pomocą których będziemy dokonywać księgowań na konta zespołu „5”, natomiast na kategorii ogólnej mamy informację o koncie zespołu „4”. Segment konta Wn z kategorii pozycji szczegółowej, można pobrać za pomocą standardowo dostępnego makra: @KatElemKontoWn. Segment konta z kategorii ogólnej pozycji można poprać za pomocą funkcji serwerowej. Poniżej przykład takiej funkcji: Create Function CDN.A (@VaNID INT) Returns VarChar(50) As Begin Declare @Wynik VarChar(50) Select @Wynik = KatOgol.Kat_KontoSegmentWN From CDN.VatTab Join CDN.VatNag On VaT_VaNID=VaN_VaNID Join CDN.Kategorie KatSzczeg On VaT_KatId = KatSzczeg.Kat_KatId Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol Where VaN_VaNId = @VaNId Set @Wynik = IsNull(@Wynik,'') Return @Wynik End W polu Konto Wn należy wpisać: SUBSTRING(@KatElemKontoWn,1,0) +CDN.A(VaN_VaNID) Przykład funkcji pobierającej konto segment Wn z kategorii ogólnej pobieranej na podstawie kategorii szczegółowej wybranej w nagłówku dokumentu: Create Function CDN.B (@VaNID INT) Returns VarChar(50) As Begin Declare @Wynik VarChar(50) Select @Wynik = KatOgol.Kat_KontoSegmentWN From CDN.VatNag Join CDN.Kategorie KatSzczeg On VaN_KatId = KatSzczeg.Kat_KatId Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol Where VaN_VaNId = @VaNId Set @Wynik = IsNull(@Wynik,'') Return @Wynik End W polu Konto Wn należy wpisać: SUBSTRING(@KatNagKontoWn,1,0) +CDN.B(VaN_VaNID) Konstrukcja poprzednich funkcji zakłada, że na dokumencie jest tylko jedna pozycja, bądź w przypadku kilku pozycji – że wszystkie pozycje zawierają kategorie szczegółowe należące do jednej kategorii ogólnej. W przypadku kiedy na księgowanym dokumencie znajduje się więcej niż jedna pozycja z różnymi kategoriami ogólnymi, należy zastosować poniższą, bardziej rozbudowaną funkcję: Create Function CDN.AB (@VaNID INT, @KategoriaElem varchar(20)) Returns VarChar(50) As Begin Declare @Wynik VarChar(50) Select @Wynik = KatOgol.Kat_KontoSegmentWN From CDN.VatTab Join CDN.VatNag On VaT_VaNID=VaN_VaNID Join CDN.Kategorie KatSzczeg On VaT_KatId = KatSzczeg.Kat_KatId Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol Where VaN_VaNId = @VaNId and KatSzczeg.Kat_KodSzczegol = @KategoriaElem Set @Wynik = IsNull(@Wynik,'') Return @Wynik End Odwołanie do funkcji w pozycji Konto Wn schematu: SUBSTRING(@KatElemKontoWn,1,0) +CDN.AB(VaN_VaNID, Kat_KodSzczegol)

32. Przekształcam Paragon na kontrahenta “nieokreślonego” do Faktury na określonego kontrahenta. Jak zaksięgować KP do paragonu, na którym jest kontrahent nieokreślony, na kontrahenta, który jest na Fakturze?

W tym przypadku również można posłużyć się funkcją serwerową, która pobierze kod kontrahenta z Faktury i zbuduje na tej podstawie odpowiednią analitykę konta np. 201. Poniżej przykład funkcji, która pobierze kod kontrahenta z faktury: Create Function CDN.C (@BZpID INT) Returns VarChar(20) As Begin Declare @Kontr VarChar(20) Select @Kontr = Knt_Kod From cdn.BnkRozRelacje Join CDN.BnkZdarzenia on BRR_DDokID=BZd_BZdID Join CDN.BnkZapisy on BZp_BZpID=BRR_ZDokID Join cdn.tranag A on BZd_DokumentID=A.TrN_TrNID Join cdn.TraNagRelacje on A.TrN_TrNID=TrR_FaId Join cdn.tranag B on TrR_TrNId=B.TrN_TrNID Join cdn.kontrahenci on B.TrN_PodID=Knt_KntId Where BRR_ZDokTyp=2 AND BZd_DokumentTyp=1 AND BRR_DDokTyp=1 AND B.TrN_PodmiotTyp=1 AND TrR_TrNTyp=302 AND BZp_BZpID=@BZpID Return @Kontr End W schemacie księgowym dla raportu kasowo/bankowego, jako konto należy wpisać: SUBSTRING(@KontoRach,1,0) +'201-'+CDN.C(BZp_BZpID) Konto musi istnieć już w planie kont (czyli najpierw sugerujemy księgowanie faktury). Do warunku takiej pozycji schematu można wstawić wyrażenie, które sprawdzi czy dany dokument kasowy jest powiązany z fakturą, która została przekształcona z paragonu. '1'='1' AND EXISTS (select * From cdn.BnkRozRelacje join CDN.BnkZdarzenia on BRR_DDokID=BZd_BZdID join cdn.tranag on BZd_DokumentID=TrN_FaId where BRR_ZDokTyp=2 AND BZd_DokumentTyp=1 AND BRR_DDokTyp=1 AND TrN_PodmiotTyp=1 AND BZp_BZpID=BRR_ZDokID and TrN_TypDokumentu=302)

33. Jak zaksięgować fakturę na konto Odbiorcy, a nie Nabywcy (konta odbiorców tworzone są wg akronimu)?

W tym przypadku również można posłużyć się funkcją serwerową, która pobierze kod kontrahenta (Odbiorcy) z Faktury i zbuduje na tej podstawie odpowiednią analitykę konta np. 201. Dodatkowo funkcja zamienia w akronimie kontrahenta znaki spacji, kropki i myślnika na znak podkreślenia ponieważ konta w planie kont nie mogą zawierać takich znaków. Poniżej przykład funkcji, która pobierze kod Odbiorcy z faktury: Create Function CDN.G (@TrnId Int) Returns VarChar(20) As Begin Declare @Kontr VarChar(20) Select @Kontr = REPLACE(REPLACE(REPLACE(Knt_Kod, ' ', '_'), '.', '_'), '-', '_') FROM CDN.TraNag Join cdn.kontrahenci on TrN_OdbID=Knt_KntId AND TrN_OdbiorcaTyp=1 AND TrN_TrNID=@TrnId Return @Kontr End W schemacie dla księgowania Faktur z modułu Faktury należy wpisać np.: LEFT(@Opis,0)+'201-'+CDN.G(TrN_TrNID) Konto musi istnieć już w planie kont. Przykład dla przypadku gdy faktury są księgowane z Rejestru VAT: Create Function CDN.B (@VaNID INT) Returns VarChar(20) As Begin Declare @Kontr VarChar(20) Select @Kontr = REPLACE(REPLACE(REPLACE(Knt_Kod, ' ', '_'), '.', '_'), '-', '_') From cdn.TraNag Join CDN.VatNag on VaN_VaNID=TrN_VaNId Join cdn.kontrahenci on TrN_OdbID=Knt_KntId AND TrN_OdbiorcaTyp=1 AND VaN_VaNId=@VaNID Return @Kontr End W schemacie dla księgowania Faktur z Rejestru VAT należy wpisać np.: LEFT(@Opis,0)+'201-'+CDN.B(VaN_VaNId)

34. Jak automatycznie zaksięgować dokument na konto kontrahenta gdzie pierwsza analityka to kod kontrahenta, a druga analityka to segment konta pobrany z kategorii dokumentu?

Klient chce rozksięgować dokument na konto 201 wg wzorca: 201-kontrahent-kategoria. Nie da się w takiej sytuacji zastosować podziału na słowniki kontrahentów ponieważ po analityce kontrahenta ma być jeszcze jedna analityka. W takiej sytuacji można posłużyć się makrem @KodPodmiotu, które jest obecne m.in. w schematach dla Rejestrów VAT i Ewidencji dodatkowych. Za pomocą ww. makra pobierzemy kod kontrahenta, natomiast za pomocą dostępnych standardowo makr dotyczących segmentów kont na kategoriach, pobierzemy analitykę przypisaną do kategorii. W polu Konto Wn lub Konto Ma wystarczy więc wpisać np. (dla ewidencji dodatkowej): '201-'+@KodPodmiotu+'-'+@KontoKatWn Konta w planie kont muszą istnieć przed księgowaniem. Ewentualnie musi istnieć konto syntetyczne – jeżeli będzie zaznaczony parametr o automatycznym zakładaniu kont niesłownikowych – konta się założą. Konta będą kontami zwykłymi – nie słownikowymi.

35. Jak skonstruować schemat księgowania deklaracji VAT-7 w rozbiciu na poszczególne stawki VAT?

W schemacie księgowym można posłużyć się istniejącą funkcją, która pobiera dane z poszczególnych pól deklaracji (z tabeli CDN.DeklElem): CDN.KwotaKsiegDekl (DkN_DkNId, DkE_Numer) W funkcji należy podać właściwą wartość dla pola DkE_Numer  i tak np. dla wzoru 18 deklaracji VAT-7 będzie to wartość: 10500 - Dostawa towarów oraz świadczenie usług na terytorium kraju, zwolnione od podatku (poz. 10 na VAT-7) 10550 - Dostawa towarów oraz świadczenie usług, poza terytorium kraju (poz. 11 na VAT-7) 10510 – w tym świadczenie usług, o których mowa w art.100 ust.1 pkt 4 ustawy (poz.12 na VAT-7) 10700 – Dost. towarów oraz świadczenie usług na terytorium kraju, opodatk. stawką 0% (poz. 13 na VAT-7) 10705 – w tym dostawa towarów, o której mowa w art.129 ustawy (poz.14 na VAT-7) 10710 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 3% albo 5% - netto 10720 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 3% albo 5% - VAT 11400 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 7% albo 8% - netto 11500 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 7% albo 8% - VAT 11600 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 22% albo 23% - netto 11700 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 22% albo 23% - VAT 11710 – Wewnątrzwspólnotowa dostawa towarów 10600 – Eksport towarów 11730 – Wewnątrzwspólnotowe nabycie towarów – netto 11740 – Wewnątrzwspólnotowe nabycie towarów – VAT 11742 – Import towarów, podlegający rozliczeniu zgodnie z art. 33a ustawy – netto 11744 - Import towarów, podlegający rozliczeniu zgodnie z art. 33a ustawy – VAT 11750 – Import usług – netto 11760 – Import usług – VAT 11762 – w tym nabycie od podatników podatku od wartości dodanej usług, do których stosuje się art. 28b ustawy – netto 11764 - w tym nabycie od podatników podatku od wartości dodanej usług, do których stosuje się art. 28b ustawy – VAT 11770 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 31 deklaracji) – kwota netto 11780 – Dostawa towarów, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 5 (pole 32 deklaracji) – kwota netto 11781 – Dostawa towarów, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 5 (pole 33 deklaracji) – kwota VAT 11791 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 34 deklaracji) – kwota netto 11792 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 35 deklaracji) – kwota VAT 12000 – Kwota podatku należnego od towarów i usług objętych spisem z natury, o którym mowa w art.14 ust.5 ustawy 12005 - Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących, o którym mowa w art.111 ust.6 ustawy 12010 – Kwota podatku należnego od wewnątrzwspólnotowego nabycia środków transportu 12011 - Kwota podatku od wewnątrzwspólnotowego nabycia paliw silnikowych Tak więc aby zaksięgować kwotę VAT w stawce 22% albo 23% (pole 20. na deklaracji VAT-7) należy wpisać w polu Kwota elementu schematu księgowego np. takie wyrażenie: @Vat7Nalezny - @Vat7Nalezny + CDN.KwotaKsiegDekl (DkN_DkNId, 11700)

36. Jak zaksięgować różnicę pomiędzy obrotami Ma konta VAT-u a VAT-em należnym z deklaracji VAT-7?

Można to zrobić definiując funkcję, która będzie pobierała obroty Ma odpowiedniego konta za okres, za który przeliczana jest deklaracja. Create Function CDN.ObrotyMa(@Konto VarChar(50), @RokMies Int) Returns Decimal(15,2) As Begin Declare @Wynik Decimal(15,2), @OObId Int, @AccId Int -- Określamy Id bieżacego okresu obarchunkowego Select @OObId = Case When IsNumeric(Fir_Wartosc)=1 Then Cast (Fir_Wartosc As Int) Else Null End From CDN.Firma Where Fir_Numer=244 -- Odczytujemy interesujące nas konto Select @AccId = Acc_AccId From CDN.Konta Where Acc_OObId = @OObId And Acc_Numer=@Konto -- Odczytujemy obroty Ma z uwzględnieniem bufora Select @Wynik = Obr_ObrotyMaBufor From CDN.Obroty Where Obr_AccId = @AccId And Obr_RokMies = @RokMies And Obr_Typ = 0 Return IsNull(@Wynik, 0) End i wykorzystanie w schemacie: CDN.ObrotyMa('221-2', DkN_RokMiesiac) - @Vat7Nalezny

37. Jak w warunku schematu dla WZ odwołać się do symbolu/serii w numerze faktury do której zostało wystawione WZ?

Zarówno dokument Wydania zewnętrznego (WZ) jak i faktura z tym dokumentem powiązana, są zapisane w tej samej tabeli CDN.TraNag. W tej sytuacji warunek można zbudować następująco: '1'='1' And Exists (Select * From CDN.TraNag FA Where CDN.TraNag.TrN_FaId = FA.TrN_TrNId And Fa.TrN_NumerPelny Like 'FA%SERIA') Patrz też pytania nr: 11. Jak uzależnić księgowanie dokumentów z ewidencji dodatkowej na poszczególne konta od symbolu użytego w schemacie numeracji? 20. Jak zaksięgować fakturę zakupu, żeby w schemacie księgowania w warunku zastosować fragment numeru dokumentu np MAGAZYN i SERIA z numeru FZ/99/MAGAZYN/SERIA?

38. Jak w opisie schematu do księgowania dokumentu WZ umieścić numer faktury, z którą powiązane jest WZ?

Należy w tym celu skonstruować funkcję serwerową, która odczyta numer faktury. Funkcja może wyglądać tak: Create Function CDN.NumerFa (@TrNId Int) Returns VarChar(30) As Begin Declare @Numer VarChar(30) Select Top 1 @Numer = TrN_NumerPelny From CDN.TraNag Where TrN_TrNId = @TrNId Return IsNull(@Numer, '') End W opisie schematu księgowań należy podać jakiekolwiek istniejące makro razem z odwołaniem do ww. funkcji, np. w ten sposób: @NumerPelny + ' ' + CDN.NumerFa (TrN_FaId)

39. Jak przenieść kwotę wpisaną w polu Opis na fakturze do pozycji schematu księgowego?

W Opisie faktury wprowadzonej na listę faktur sprzedaży w module Faktury wprowadzono kwotę, która powinna zostać zaksięgowana na konta. Ponieważ pole Opis nie jest polem numerycznym – należy je do takiego przekonwertować i dodatkowo księgować tylko wtedy gdy w polu Opis faktycznie występuje liczba. W pozycji schematu, w polu Kwota można wpisać następujące wyrażenie: @PlatRazem - @PlatRazem + CASE WHEN ISNUMERIC(TrN_Opis)=1 THEN CAST (TrN_Opis AS DECIMAL(15,2)) ELSE 0 END Dla faktur księgowanych z Rejestru VAT można użyć pola opisu kategorii: @PlatRazem - @PlatRazem + CASE WHEN ISNUMERIC(VaN_Kategoria )=1 THEN CAST (VaN_Kategoria AS DECIMAL(15,2)) ELSE 0 END Makra istniejące nie mogą odwoływać się do elementów faktury – muszą odwoływać się do nagłówka (tak jak np. makro @PlatRazem). Jeżeli zostanie użyte makro odwołujące się do elementów np. @PozNetto (dla modułu FA) lub @Netto (dla rejestru VAT) – to księgowana kwota będzie mnożona przez ilość pozycji na fakturze.

40. Jak zaksięgować kwotę „do wypłaty” z listy płac w zależności od rodzaju umowy zlecenia/dzieło i formy płatności?

Od wersji 8.0 systemu zmienił się sposób zapisywania form płatności dla pracowników. Są one zapisywane w osobnej tabeli: CDN.SchematPlatnosci. W związku z czym, o ile w poprzednich wersjach działał warunek: Exists (Select * From CDN.PracEtaty join CDN.FormyPlatnosci on PRE_FplId=FPl_FPlId Where WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo AND FPl_Typ=1) AND @TypWyplaty ='dzieło 20%' Od wersji 8.0 warunek powinien wyglądać następująco: Exists (Select * From CDN.PracEtaty join cdn.SchematPlatnosci on PRE_PreId = SPL_PodmiotId join CDN.FormyPlatnosci on SPL_FplId=FPl_FPlId Where SPL_PodmiotTyp = 3 and WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo AND FPl_Typ=1) AND @TypWyplaty ='dzieło 20%' FPl_Typ=1 oznacza formę płatności typu „gotówka”.

41. Jak wyksięgować kwotę dotychczasowych zaliczek z faktury finalnej księgowanej przez Rejestr sprzedaży VAT?

Najprościej księgować faktury zaliczkowe przez moduł Faktury ponieważ w schematach do Faktur sprzedaży są dodane odpowiednie makra. Jeżeli faktury zaliczkowe i faktura finalna są wystawiane w module Faktury, a następnie przenoszone do Rejestru VAT to kwotę dotychczasowych zaliczek z faktury finalnej można odczytać stosując istniejącą w programie funkcję i w polu Kwota pozycji schematu wpisać: Dla kwoty zaliczki netto: '0'+CDN.TraKwoty(VaN_TrNId,'ZN',Null,Null) Dla kwoty zaliczki brutto: '0'+CDN.TraKwoty(VaN_TrNId,'ZB',Null,Null) Aby sprawdzić czy faktura jest zaliczkowa można użyć następującego warunku: '1'='1' AND exists (select * from CDN.TraNag where TrN_VaNId = VaN_VaNID AND TrN_Rodzaj In (302200, 302202)) Warunek dla faktury finalnej: '1'='1' AND Exists (Select * From CDN.TraNag join CDN.TraVat on TrN_TrNID = TrV_TrNID Where TrN_VaNId = VaN_VaNID AND TrV_TrNId=TrN_TrNId And TrV_Typ=1) Warunek dla faktury zwykłej: '1'='1' AND Not Exists (Select * From CDN.TraNag join CDN.TraVat on TrN_TrNID = TrV_TrNID Where TrN_VaNId = VaN_VaNID AND TrV_TrNId=TrN_TrNId And TrV_Typ=1) AND Not Exists (select * from CDN.TraNag where TrN_VaNId = VaN_VaNID AND TrN_Rodzaj In (302200, 302202))

42. Jak przy księgowaniu raportu kasowego rozróżnić czy konto przeciwstawne jest walutowe (i księgować w walucie), a jak że jest złotówkowe (i księgować tylko w złotówkach)?

Warunek dla pozycji schematu wykorzystującej konto przeciwstawne gdy jest zaznaczone księgowanie walutowe: '1'='1' and exists (select * from CDN.Konta where Acc_Numer like @KontoPrzeciw + '%' and Acc_Waluta<>'' And Acc_OObID = (select OOb_OObID from CDN.OkresyObrach where OOb_DataOtw < Bzp_DataDok and OOb_DataKoncowa > Bzp_DataDok)) Warunek dla pozycji schematu wykorzystującej konto przeciwstawne gdy nie jest zaznaczone księgowanie walutowe: '1'='1' and not exists (select * from CDN.Konta where Acc_Numer like @KontoPrzeciw + '%' and Acc_Waluta<>'' And Acc_OObID = (select OOb_OObID from CDN.OkresyObrach where OOb_DataOtw < Bzp_DataDok and OOb_DataKoncowa > Bzp_DataDok))  Powyższe warunki sprawdzają walutę konta w okresie obrachunkowym w którym zawierają się daty otwarcia i zamknięcia księgowanego raportu kasowego/bankowego.

43. Jak automatycznie księgować na konta zespołu “4” na podstawie konta zespołu „5” wpisanego w kwotach dodatkowych?

Mamy w planie kont np. konta  501-1-1-401-01 i np. 501-1-1-402-01. Odpowiednikiem tych kont w zespole „4” są 400-401-01 i 400-402-01. W rejestrze VAT wprowadzamy na fakturze w Kwotach dodatkowych konta zespołu „5”. Chcemy żeby „4” podstawiała się automatycznie na podstawie „5”. W schemacie księgowym, jako definicję konta można wpisać: '400-'+SUBSTRING(@KontoDodatWn,9,6) Jeżeli w kwocie dodatkowej wybierzemy konto 501-1-1-401-01, to po zaksięgowaniu otrzymamy konto 400-401-01.

44. Jak w schemacie do księgowania faktur zakupu z Rejestrów VAT rozróżnić zaliczkobiorcę, który jest pracownikiem od zaliczkobiorcy, który jest wspólnikiem?

W warunku schematu dotyczącym księgowania na konto pracowników należy wpisać: '1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_TypPracownika=0) W warunku schematu dotyczącym księgowania na konto wspólnika należy wpisać: '1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_TypPracownika=1)

45. Jak należy wpisać warunek aby zaksięgować fakturę z rejestru VAT na wybrane konto pod warunkiem, że zaliczkobiorcą jest pracownik o akronimie ‘KOWALSKI’?

W warunku można wpisać: '1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_Kod='KOWALSKI')

46. Jak w opisie pozycji schematu dla rejestrów VAT wstawić kod pracownika, który jest zaliczkobiorcą?

Jeżeli pozycja schematu zawiera konto słownikowe pracownika i podział na słowniki: Zaliczkobiorcy to w opisie można wstawić następujące wyrażenie: ''+(select top 1 PRE_Kod from CDN.PracEtaty where Pre_PraID = VaN_PodZalId and VaN_PodmiotZalTyp=3) Jeżeli daną pozycją schematu księgujemy kwotę na konto kontrahenta (czyli jest podział na słowniki: Podmioty) a w opisie chcemy mieć informację o kodzie zaliczkobiorcy, należy użyć funkcji: Create Function CDN.MojeFunkcje_KodZaliczkobiorcy (@VaNId Int) Returns VarChar(31) As  Begin Declare @Kod VarChar(50) Set @Kod = IsNull((select top 1 PRE_Kod from CDN.PracEtaty join cdn.vatnag on Pre_PraID = VaN_PodZalId and VaN_PodmiotZalTyp=3 where Van_Vanid=@VaNId), '') Return @Kod End W definicji Opisu do danej pozycji schematu księgowego wpisujemy: @Dokument + ' ' + CDN.MojeFunkcje_KodZaliczkobiorcy (VaN_VaNId)

47. Jak opisie pozycji dekretu umieścić informację o Imieniu i nazwisku zaliczkobiorcy (pracownika) wybranego na fakturze zakupu w rejestrze VAT?

W schemacie księgowym typu Rejestr zakupów VAT w polu Opis należy wkleić: @TypZaliczkobiorcy + ' ' + CDN.ImieNazwisko (VaN_PodZalId,VaN_PodmiotZalTyp) Operator z uprawnieniami administratora może uruchomić skrypt w menu Narzędzia/ Serwer bazy danych/ Wykonywanie skryptów. Create Function CDN.ImieNazwisko (@VaN_PodZalId Int,@VaN_PodmiotZalTyp Int) Returns VarChar(30) As Begin Declare @ImieNazwisko VarChar(30) Select Top 1 @ImieNazwisko = Pre_Imie1+' '+Pre_Nazwisko From cdn.pracetaty Where @VaN_PodZalId =Pre_PraID AND @VaN_PodmiotZalTyp=3 AND PRE_TypPracownika=0 Return IsNull(@ImieNazwisko, '') End

48. Jak ułożyć warunek dla księgowania zaliczki na PIT-36 aby w miesiącu listopadzie zawsze księgowała się podwójna zaliczka?

Innymi słowy musimy w warunku „wyciągnąć” z pola DkN_RokMiesiac tylko miesiąc. Pole zapisuje rok i miesiąc w postaci 4 cyfr dla roku i 2 cyfr dla miesiąca np. ‘201811’. W warunku trzeba „wyciąć” pierwsze 4 znaki i użyć tylko dwóch ostatnich. Możemy to zrobić tak: SUBSTRING(DkN_RokMiesiac,5,2) Musimy jednak skonwertować liczbę do tekstu poprzez STR i dodatkowo usunąć zbędne spacje poprzez LTRIM. Cały warunek dla księgowania deklaracji, która pochodzi z miesiąca listopada będzie wyglądał tak: '1'='1' AND SUBSTRING(LTRIM(STR(DkN_RokMiesiac)),5,2)=11

49. Czy w schemacie do księgowania dokumentów przesunięć MM można wykorzystać symbol magazynu do identyfikacji konta magazynu źródłowego i docelowego?

Chodzi o to aby przy dużej ilości magazynów nie tworzyć kilkudziesięciu pozycji schematu odpowiadających wszystkim przesunięciom międzymagazynowym. Zakładamy więc, że analitykę magazynu pobieramy z symbolu magazynu. Na przykład, w polu Symbol, na formatce magazynu mamy MAG1, a konto ma postać 311-MAG1. Wtedy dla magazynu źródłowego definicja konta miałaby postać: '311-'+@Magazyn a dla magazynu docelowego: '311-'+@MagDocelowy.

50. Jak wykorzystać atrybuty do przypisania odpowiedniego konta zespołu „5” na karcie środka trwałego?

W Słownikach/ Atrybuty można zdefiniować atrybut o nazwie np. „KONTO_5”, typie „lista”, i pozycjach listy odpowiadających wszystkim kontom zespołu 5, na które jest księgowana amortyzacja np. 501-01, 502-01, 503-01 itp. Na karcie środka trwałego dodajemy atrybut „KONTO_5” i wybieramy wartość odpowiadającą „piątce” np. 501-01. W pozycji schematu księgowego odpowiadającej za księgowanie na konta zespołu „5”, w polu Konto Wn wprowadzamy definicję: @ST_Atrybut('KONTO_5')

W makrach dostępnych pod Kontem Wn i Kontem Ma nie ma pozycji „Wartość atrybutu” więc aby wkleić odpowiednie wyrażenie można skorzystać z pola „Opis” wybierając odpowiedni atrybut, kopiując i wklejając do „Konto Wn/Konto Ma”.

51. Jak można użyć, w schemacie księgowym, atrybutu przypiętego do pozycji faktury?

Od wersji Comarch ERP Optima 2019.5.1 atrybuty pozycji dokumentów z modułu Handel zapisywane są w tabeli CDN.TraElemAtr. Chcąc odwołać się w warunku schematu do kodu bądź wartości atrybutu pozycji dokumentu należy zastosować następujący warunek: '1'='1' AND exists (Select TrA_Kod From CDN.TraElemAtr Where TrA_TrEId = TrE_TrEID and TrA_Kod= 'ATR1' and TrA_Wartosc= 'WART1') W przypadku wersji wcześniejszych niż 2019.5.1 należy zastosować poniższe warunki. Księgując fakturę z modułu Handel są dwie możliwości: 1. Ponieważ atrybuty są zapisywane w tabeli CDN.TraElem w polach: TrE_Atr1_Kod, TrE_Atr2_Kod.... TrE_Atr5_Kod i wartości odpowiednio w polach TrE_Atr1_Wartosc do TrE_Atr5_Wartosc to można się odwołać bezpośrednio do tych pól. Założenie jednak będzie wtedy takie (aby nie komplikować warunku), że atrybut, który nas interesuje jest zawsze np. pierwszy czyli zapisywany w polach TrE_Atr1_Kod i TrE_Atr1_Wartosc. Aby zaksięgować kwotę netto pozycji, pod warunkiem, że pierwszy atrybut to ATR1 i jego wartość to WART1 można użyć kwoty @PozNetto a w warunku: '1'='1' AND TrE_Atr1_kod='ATR1' AND TrE_Atr1_Wartosc='WART1' 2. Jeżeli atrybut, który nas interesuje może być zapisany na różnych miejscach to aby nie tworzyć bardzo złożonego warunku można użyć funkcji, której jako parametry podamy kod atrybutu i wartość. Funkcja będzie użyta w kwocie schematu np. Create Function CDN.userKwotaElementuZAtrybutem (@Treid int, @KodAtrybutu varchar(255), @WartoscAtrybutu varchar(255), @Typ varchar(10)) Returns Decimal (15,2) As Begin Declare @Wynik Decimal(15,2) if exists ( select * from CDN.TraElem where TrE_TrEID = @TrEId and ( TrE_Atr1_Kod = @KodAtrybutu and TrE_Atr1_Wartosc=@WartoscAtrybutu or TrE_Atr2_Kod = @KodAtrybutu and TrE_Atr2_Wartosc=@WartoscAtrybutu or TrE_Atr3_Kod = @KodAtrybutu and TrE_Atr3_Wartosc=@WartoscAtrybutu or TrE_Atr4_Kod = @KodAtrybutu and TrE_Atr4_Wartosc=@WartoscAtrybutu or TrE_Atr5_Kod = @KodAtrybutu and TrE_Atr5_Wartosc=@WartoscAtrybutu ) ) begin set @Wynik = CDN.TraKwoty( @TrEId, @Typ, Null, Null) end Return IsNull( @Wynik, 0 ) End W definicji kwoty wpisujemy: @PozNetto - @PozNetto + CDN.userKwotaElementuZAtrybutem(TrE_TrEId, 'ATRYBUT', 'WARTOŚĆ', 'PN') 'PN' - oznacza kwotę netto. 'PB' oznaczałoby kwotę brutto pozycji.

52.Jak wykorzystać w schemacie księgowym, w definicji konta, wartość atrybutu przypiętego do karty kontrahenta?

Na karcie kontrahenta jest m.in. przypięty atrybut o nazwie KONTO, którego wartość odpowiada symbolowi konta, które ma być użyte do księgowania faktury z Rejestru VAT. Chcemy tak zdefiniować w pozycji schematu Konto Wn aby podstawiała się do niej wartość tego atrybutu przypięta do kontrahenta wybranego na fakturze. W takiej sytuacji trzeba skorzystać z funkcji serwerowej. Dla faktury księgowanej z Rejestru VAT funkcja może wyglądać następująco: Create Function CDN.A (@VaNId int, @AtrybutKod varchar(255)) Returns varchar(255) As Begin Declare @Wynik VarChar(255) Set @Wynik = '' select @Wynik = KnA_WartoscTxt from CDN.KntAtrybuty join CDN.DefAtrybuty on (KnA_DeAId = DeA_DeAId) join CDN.PodmiotyView on (KnA_PodmiotId = Pod_PodId) join CDN.VatNag on (VaN_PodID = Pod_PodId) where VaN_VaNID=@VaNId and DeA_Kod=@AtrybutKod AND KnA_PodmiotTyp = Pod_PodmiotTyp AND Pod_PodmiotTyp = VaN_PodmiotTyp Return IsNull(@Wynik, '') End W definicji Konta Wn wpisujemy: LEFT(@Opis,0)+CDN.A(Van_VaNID,'KONTO') Ponieważ w definicji konta w pozycji schematu jest ograniczona liczba znaków, jeżeli odwoływać się do atrybutów w ten sposób, należy nadawać im krótkie nazwy. Dla faktury księgowanej z modułu Handel: Create Function CDN.B (@TrNId int, @AtrybutKod varchar(255)) Returns varchar(255) As Begin Declare @Wynik VarChar(255) Set @Wynik = '' select @Wynik = KnA_WartoscTxt from CDN.KntAtrybuty join CDN.DefAtrybuty on (KnA_DeAId = DeA_DeAId ) join CDN.PodmiotyView on KnA_PodmiotId = Pod_PodId join CDN.TraNag on Pod_PodId = TrN_PodID where TrN_TrNID=@TrNId and DeA_Kod=@AtrybutKod AND KnA_PodmiotTyp = Pod_PodmiotTyp AND Pod_PodmiotTyp = TrN_PodmiotTyp Return IsNull(@Wynik, '') End W definicji konta: LEFT(@Opis,0)+CDN.B(Trn_TrNID,'KONTO')

53. Jak wykorzystać w schemacie księgowym z rej. VAT kwotę z ewidencji dodatkowej?

Schemat pozwala na wyksięgowanie kwoty z dokumentu ewidencji dodatkowej pod warunkiem, że numer dokumentu i Akronim kontrahenta jest identyczny na rej. VAT i ewidencji dodatkowej. W takiej sytuacji trzeba skorzystać z funkcji serwerowej. Dla faktury księgowanej z Rejestru VAT funkcja może wyglądać następująco: create function cdn.MojaFunkcja_ED (@ID int, @Typ int, @Dok varchar(30)) returns Decimal(15,2) as begin declare @wynik Decimal(15,2) select @wynik = EDN_KwotaRazemSys from CDN.EwiddodNag join cdn.vatnag on VaN_Dokument=EDN_NumerObcy and VaN_PodID=EDN_PodID and VaN_PodmiotTyp=EDN_PodmiotTyp where VaN_Dokument = @Dok AND VaN_PodID=@ID AND VaN_PodmiotTyp= @Typ return IsNull(@wynik,0) end W definicji Kwoty w schemacie rej. VAT wpisujemy: @Brutto-cdn.MojaFunkcja_ED(VaN_PodID,VaN_PodmiotTyp,VaN_Dokument)

54. Jak w schemacie księgowym dokumentów z rejestru VAT w polu Opis wykorzystać np. datę operacji z dokumentu?

@Opis+' '+convert (varchar(10), VaN_DataOpe , 120)

55. Jak w schemacie księgowym Listy płac wyszukać pola opisu analitycznego, które nie mają żadnej wartości czyli NULL?

Jeżeli jako kwota została użyta kwota, która odwołuje się do tabeli CDN.WypElementy to warunek może wyglądać tak: '1'='1' and not exists(select * from CDN.OpisPlace where OpP_WpEId= WpE_WpEId) Taka kwota to np. @WynagrodzenieBrutto, @ZUSEmerPrac, @ZUSEmerFirma itp. Gdyby kwota odwoływała się do innej tabeli np. CDN.Wyplaty to: '1'='1' and not exists(select * from CDN.Wyplaty JOIN CDN.WypElementy ON WPL_WplId = WPE_WplId JOIN CDN.OpisPlace ON OpP_WpEId= WpE_WpEId WHERE WPL_LplId = LPL_LplId) Taka kwota to np. @DoWyplaty.

56. Jak w schemacie do księgowania raportów K/B, w pozycji dekretu uzyskać opis składający się z numerów dokumentów rozliczających dany zapis K/B?

W takim przypadku można wykorzystać istniejącą funkcję CDN.NumeryRozliczonych wstawiając do opisu pozycji schematu następującą definicję: @KategoriaSzczegol + ' ' +CDN.NumeryRozliczonych(Bzp_BzpID,2,0) Zamiast @KategoriaSzczegol można użyć innego istniejącego makra. Jeżeli dany zapis k/b jest rozliczany kilkoma dokumentami - ich numery w opisie będą oddzielone znakiem średnika.

57. Jak w schemacie księgowym dokumentów z rejestru VAT rozróżnić księgowanie dokumentów wystawionych na kontrahentów krajowych i zagranicznych?

W przypadku kiedy korzystamy z informacji zapisanych na karcie kontrahenta: Warunek jaki należy wstawić przy kontrahentach krajowych: '1'='1' AND exists (select * from cdn.kontrahenci where Knt_KntId= VaN_PodID and VaN_PodmiotTyp=1 and Knt_Export=0) Warunek jaki należy wstawić przy kontrahentach zagranicznych: '1'='1' AND exists (select * from cdn.kontrahenci where Knt_KntId= VaN_PodID and VaN_PodmiotTyp=1 and Knt_Export<>0) W przypadku kiedy korzystamy z informacji zapisanych na dokumencie, czyli rodzaj transakcji, wtedy warunek może wyglądać następująco: '1'='1' AND VaN_Export=0 (dla transakcji krajowej) Rodzaj transakcji: 0 - krajowa 1 - eksport/import 2 - eksport - zwrot VAT 3 - dostawa/nabycie wewnątrzwspólnotowa 4 - dostawa/nabycie wewnątrzunijna trójstronna 5 - krajowa - podatnikiem jest nabywca 6 - dostawa poza terytorium kraju 7 - poza terytorium kraju (stawka NP) 8 - wewnątrzunijny - podatnikiem jest nabywca 9 - pozaunijny - podatnikiem jest nabywca

58. Jak z poziomu rejestru VAT zaksięgować dokumenty w zależności od formy płatności na nich wybranej?

Aby zaksięgować fakturę zapłaconą gotówką należy w warunku schematu księgowego wpisać: '1'='1' and exists (select * from CDN.FormyPlatnosci where VaN_FplID=FPl_FPlId and FPl_Nazwa = 'gotówka') A dla dokumentów z pozostałymi formami płatności: '1'='1' and exists (select * from CDN.FormyPlatnosci where VaN_FplID=FPl_FPlId and FPl_Nazwa <> 'gotówka')

59. W jaki sposób sprawdzić czy zapis kasowy został automatycznie wygenerowany przy tworzeniu faktury gotówkowej?

W schemacie księgowań dla zapisów automatycznych należy wpisać warunek: '1'='1' AND BZp_ZapisAutomatyczny=1 Dla pozostałych zapisów: '1'='1' AND BZp_ZapisAutomatyczny=0

60. Jak zaksięgować dokument Przyjęcia Zewnętrznego w zależności od statusu kontrahenta?

Dla kontrahenta krajowego należy w warunku schematu wpisać: '1'='1' AND TrN_Export=0 Dla kontrahenta unijnego: '1'='1' AND (TrN_Export=3 OR TrN_Export=4) Dla kontrahenta pozaunijnego: '1'='1' AND TrN_Export=1 Status: 0 - krajowy 1 - eksport/import 2 - eksport - zwrot VAT 3 - dostawa/nabycie wewnątrzwspólnotowa 4 - dostawa/nabycie wewnątrzunijna trójstronna 5 - krajowy - podatnikiem jest nabywca 6 - dostawa poza terytorium kraju 7 - poza terytorium kraju (stawka NP) 8 - wewnątrzunijny - podatnikiem jest nabywca 9 - pozaunijny - podatnikiem jest nabywca

61. Jak zaksięgować dokument PZ w zależności od fragmentu numeru faktury, do której został utworzony np. numer faktury zakupu zaczyna się od „FA” i kończy się na MG lub EU?”

W warunku schematu księgowego należy wpisać:  '1'='1' And Exists (Select * From CDN.TraNag FA Where CDN.TraNag.TrN_FaId = FA.TrN_TrNId And Fa.TrN_NumerPelny Like 'FA%SERIA') zastępując słowo SERIA na końcu warunku wybraną serią dokumentu np. MG lub EU.

62. Jak podczas księgowania listy płac w polu Konto odwołać się do kategorii na wypłacie pracownika (na zakładce [Ogólne])?

Przykład funkcji: Create Function CDN.A3 (@LplID int, @WPLID int) Returns varchar(255) As Begin Declare @Wynik VarChar(50) Set @Wynik = '' select @Wynik = Kat_KontoSegmentWN from CDN.Kategorie join CDN.Wyplaty on WPL_KatId = Kat_KatID join CDN.ListyPlac on WPL_LplId = LPL_LplId where LPL_LplId=@LplId AND WPL_WPLID=@WPLID Return IsNull(@Wynik, '') End W polu Konto Wn lub Konto Ma należy wstawić: LEFT(@Opis,0)+CDN.A3(Lpl_LplID,WPL_WPLID)

63. Jak zaksięgować kwotę netto z faktury w Rejestrze VAT z podziałem na magazyny?

Na Fakturze Sprzedaży w module Faktury są pozycje pochodzące z różnych magazynów. Chodzi o to aby zaksięgować kwotę netto na różne konta, w zależności od magazynu. Na fakturze w Rejestrze VAT nie ma takiej informacji – informacja jest tylko na fakturze w module Faktury. Najprościej więc księgować fakturę bezpośrednio z modułu Faktury i wykorzystać w schemacie, w warunku pozycji, makro @MagazynElem. Jeżeli natomiast istnieje potrzeba wykonania księgowania z Rejestru VAT można dodać odpowiednią funkcję serwerową i umieścić ją w definicji kwoty schematu: if exists (select * from sysobjects where name = 'userKwotaFaMagazyny' and xtype = 'FN') drop function CDN.userKwotaFaMagazyny GO create function CDN.userKwotaFaMagazyny (@vanid int, @nazwa varchar(20)) returns numeric (15,2) as begin declare @wynik numeric (15,2) select @wynik = isnull(sum(TrE_WartoscNetto),0) from cdn.tranag join cdn.TraElem on TrN_TrNID = TrE_TrNId join CDN.Magazyny ON Mag_MagId = TrE_MagId where Mag_Symbol = @nazwa and trn_vanid = @vanid return @wynik end W definicji kwoty wpisujemy: '0' + CDN.userKwotaFaMagazyny (VaN_VaNId, 'MAGAZYN')

64. Jak z poziomu listy płac zaksięgować na konkretne konto wypłatę pracownika, który jest niepełnosprawny?

W pozycji schematu dla listy płac w polu Warunek należy wpisać: '1'='1' AND EXISTS (select * from CDN.PracEtaty join CDN.PracKod on Pra_Praid = Pre_Praid where Pra_Praid = Wpl_Praid and Wpl_Lplid  = Lpl_Lplid and Pre_StNiepelnosp<>0)

65. Jak w schemacie do księgowania paragonów odwołać się do symbolu magazynu na pozycji paragonu?

W kwocie należy użyć makra odwołującego się do pozycji paragonu, np. @PozNetto. W warunku można użyć następującego zapytania: '1'='1' AND EXISTS(SELECT * FROM CDN.Magazyny WHERE Mag_MagId = TrE_MagId AND Mag_Symbol='MAGAZYN')

66.Jak umieścić funkcję serwerową w polu z datą księgowania? (na przykładzie księgowania faktur za usługi transportowe)

Księgujemy faktury z Rejestru VAT i zakładamy co następuje: 1. jeżeli dokument jest rozliczony całkowicie – pobieramy datę rozliczenia (jeżeli jest rozliczony kilkoma dokumentami, będzie to data ostatniego rozliczenia), 2. jeżeli jest nierozliczony całkowicie i data bieżąca minus data wystawienia jest większa od 30 dni, pobieramy datę o 30 dni późniejszą od daty wystawienia dokumentu, 3. jeżeli jest to inny przypadek niż powyższe warunki (np. całkowicie nierozliczony ale różnica między datą bieżącą i datą wystawienia jest mniejsza niż 30 dni lub dokument jest częściowo rozliczony) funkcja wstawi zero czyli przy księgowaniu pojawi się komunikat o księgowaniu poza bieżącym okresem obrachunkowym i dokument nie zostanie zaksięgowany. Funkcję można oczywiście rozbudować o kolejne warunki. if exists (select * from sysobjects where name = 'F1' and xtype = 'FN') drop function [CDN].[F1] GO CREATE function [CDN].[F1] (@VaNId Int) returns Datetime as begin declare @wynik Datetime select @wynik = case when exists(select * from CDN.BnkZdarzenia join CDN.VatNag on BZd_DokumentId = VaN_VaNId AND BZd_DokumentTyp = 2 WHERE BZd_Rozliczono=2 AND Van_Vanid=@VaNId) then BZd_DataRoz when exists (select * from CDN.BnkZdarzenia join CDN.VatNag on BZd_DokumentId = VaN_VaNId AND BZd_DokumentTyp = 2 WHERE BZd_Rozliczono2=1 AND (GetDate()- VaN_DataWys)>30 AND Van_Vanid=@VaNId) then DateADD(day,30,VaN_DataWys) else 0 end from CDN.BnkZdarzenia join CDN.VatNag on BZd_DokumentId = VaN_VaNId and BZd_DokumentTyp = 2 where Van_Vanid=@VaNId return @wynik end W schemacie, w polu Data ksieg. wpisujemy: @DataWyst-@DataWyst+cdn.F1(VaN_VaNID)

67. Jak w warunku schematu dla faktur zakupu odwołać się do opcji Odliczenia VAT: Tak, Nie, Warunkowo na karcie kategorii wybranej na pozycji dokumentu?

W schemacie księgowym typu Faktura zakupu w warunku wkleić następujące wyrażenie: Dla odliczeń na NIE '1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=0) Dla odliczeń na TAK '1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=1) Dla odliczeń WARUNKOWO '1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=2)

68. Jak uzależnić księgowanie z Rejestru VAT na dane konto od tego czy dokument wpłynął maksymalnie do 20 dnia kolejnego miesiąca?

Poniższy warunek zaksięguje dokumenty, które wpłynęły maksymalnie do 20 dnia kolejnego miesiąca po miesiącu wystawienia faktury. Data księgowania w schemacie musi być ustawiona na datę wystawienia: '1'='1' and VaN_DataZap <= dateadd(day,20,DATEADD(day,-1,DATEADD(month,DATEDIFF(month,-1,Van_DataWys),0))) Poniższy warunek zaksięguje dokumenty, które wpłynęły po 20 dniu kolejnego miesiąca po miesiącu wystawienia faktury. Data księgowania w schemacie musi być ustawiona na datę wpływu: '1'='1' and VaN_DataZap > dateadd(day,20,DATEADD(day,-1,DATEADD(month,DATEDIFF(month,-1,Van_DataWys),0))) Warunki powinny być wklejone w polu Warunek w nagłówku schematu księgowego.

69. Jak rozksięgować dokumenty środków trwałych na podstawie kodu i wartości liczbowej atrybutu?

Przykład: środki trwałe są dzielone na projekty procentowo w danym miesiącu. Czyli środek był wykorzystywany w 20% w projekcie 1, 30% w drugim i 50% w trzecim. Każdy z projektów ma odpowiednie konto księgowe. Na karcie środka trwałego atrybuty w kodzie mają zawarte konto księgowe a wartość to udział procentowy amortyzacji w danym miesiącu. Wygląda to tak: Atrybut Kod          Wartość 501-1-1                 0,30 502-1-1                 0,20 504-2                     0,50 W schemacie księgowym w polu Konto odwołujemy się do numeru konta z kodu atrybutu @ST_AtrybutKod a w Kwocie przeliczamy amortyzację x wartość atrybutu @ST_AtrybutWartosc*@Amortyzacja Ewentualne korekty groszowe można wyksięgować za pomocą wyrażenia: @ST_AtrybutWartosc * @Amortyzacja - convert(decimal(14,2), @ST_AtrybutWartosc * @Amortyzacja)

70. Jak zaksięgować z poziomu rejestrów VAT dokument Tax Free z datą potwierdzenia?

W schemacie księgowym typu Rejestr sprzedaży VAT w polu Data księg. należy wpisać: @DataWyst-@DataWyst+cdn.Data_TF(VaN_VaNID) Operator z uprawnieniami administratora może uruchomić w menu Narzędzia/ Serwer bazy danych/ Wykonywanie skryptów skrypt dodający funkcję serwerową, z której będzie korzystał schemat. CREATE function CDN.Data_TF (@VaNId Int) returns Datetime as begin declare @wynik Datetime select @wynik = (select TrN_DataPtwTaxFree from CDN.TraNag join CDN.VatNag on TrN_VaNId = VaN_VaNId AND TrN_TypDokumentu = 345 WHERE TrN_TaxFreePotwierdzony=1 AND Van_Vanid=@VaNId) return @wynik end Dodatkowo w polu Warunek można wpisać warunek czy zapis w rejestrze VAT ma powiązanie z potwierdzonym dokumentem Tax Free: '1'='1' AND exists(select * from CDN.TraNag join CDN.VatNag on TrN_VaNId = VaN_VaNId AND TrN_TypDokumentu = 345 WHERE TrN_TaxFreePotwierdzony=1)

71. Jak sprawdzić podczas księgowania dokumentu z rejestru VAT zakupu czy był on rozliczony z delegacją?

W schemacie księgowym typu Rejestr zakupów VAT w polu Warunek należy wpisać: '1'='1' AND EXISTS (SELECT * FROM CDN.BnkZdarzenia JOIN CDN.BnkRozRelacje on BRR_DDokID=BZd_BZdID AND BRR_DDokTyp=1 JOIN CDN.BnkZapisy ON BRR_ZDokID=BZp_BZpID AND BRR_ZDokTyp=2 WHERE BZd_DokumentTyp=2 AND BZp_NumerString LIKE '%DLG%' AND BZd_DokumentId=VaN_VaNId)

72. Jak sprawdzić podczas księgowania rozliczonego z delegacją dokumentu z rejestru VAT zakupu na jakiego pracownika została wystawiona delegacja?

W schemacie księgowym typu Rejestr zakupów VAT w polu Opis należy wpisać: @Dokument + ' ' + CDN.Pracownik_DLG(VaN_VaNID) Operator z uprawnieniami administratora może uruchomić w menu Narzędzia/ Serwer bazy danych/ Wykonywanie skryptów skrypt dodający funkcję serwerową, z której będzie korzystał schemat. Create Function CDN.Pracownik_DLG (@VanId Int) Returns VarChar(20) As Begin Declare @Kod VarChar(20) Select @Kod = PRE_Kod FROM CDN.PracEtaty JOIN CDN.BnkZapisy ON BZp_PodmiotID=PRE_PreId AND BZp_PodmiotTyp=3 JOIN CDN.BnkRozRelacje ON BRR_ZDokID = BZp_BZpID AND BRR_ZDokTyp=2 JOIN CDN.BnkZdarzenia ON BRR_DDokID=BZd_BZdID AND BRR_DDokTyp=1 WHERE BZd_DokumentId = @VanId Return @Kod End Do powyższej funkcji można również odwołać się w polu Warunek (podając na początku kod określonego pracownika): 'KOWALSKI'= CDN.Pracownik_DLG(VaN_VaNID)

73. Jak zaksięgować dokument RW na konto księgowe zawierające numer dokumentu powiązanego zlecenia serwisowego?

Załóżmy, że dokument RW chcemy zaksięgować na konto analityczne konta 501, którego numer jest numerem zlecenia serwisowego (np. 501-SRW_1_2016). W schemacie księgowym typu Rozchody wewnętrzne w polu Konto Wn należy wpisać: LEFT(@Opis,0)+'501-'+dbo.MojaFunkcja_Numer_SRW (TrN_TrNID) Operator z uprawnieniami administratora może uruchomić w menu Narzędzia Serwer bazy danych/ Wykonywanie skryptów skrypt dodający funkcję serwerową, z której będzie korzystał schemat. Create Function dbo.MojaFunkcja_Numer_SRW (@TrNID INT) Returns VarChar(20) As Begin Declare @numer VarChar(20) select @numer = REPLACE (SrZ_NumerPelny,'/','_') FROM CDN.SrsZlecenia JOIN CDN.DokRelacje ON DoR_ParentId=SrZ_SrZId AND DoR_ParentTyp=900 JOIN CDN.TraNag ON DoR_DokumentId=TrN_TrNID AND DoR_DokumentTyp=304 WHERE TrN_TrNID= @TrNID Return @numer End Konta w planie kont muszą istnieć przed księgowaniem. Ewentualnie musi istnieć konto syntetyczne – jeżeli będzie zaznaczony parametr Automatyczne zakładanie kont analitycznych niesłownikowych (w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa) – konta się założą.

74. Jak zaksięgować z listy płac kwotę wypłaty w gotówce dla pracownika?

Aby w dekrecie utworzonym z zaksięgowanej listy płac uzyskać kwotę wynagrodzenia wypłaconej w gotówce należy utworzyć odpowiednią funkcję serwerową, z której będzie korzystał schemat dla list płac. Operator z uprawnieniami administratora może uruchomić w menu Narzędzia/ Serwer bazy danych/ Wykonywanie skryptów skrypt dodający tę funkcję. Create Function CDN.MojaFunkcja_wyplaty_gotowka(@LplID int, @WPLID int) Returns Decimal(15,2) As Begin Declare @Kwota Decimal(15,2) Select @Kwota = Sum(BZd_KwotaSys) From CDN.BnkZdarzenia join CDN.Wyplaty on BZd_DokumentID=WPL_WplId join CDN.ListyPlac on WPL_LplId = LPL_LplId Where LPL_LplId=@LplId AND WPL_WPLID=@WPLID and BZd_DokumentTyp=8 and BZd_FPlId=1 Return IsNull(@Kwota, 0) End Wywołanie funkcji w elemencie schematu księgowego w polu Kwota: '0' + CDN.MojaFunkcja_wyplaty_gotowka(Lpl_LplID,WPL_WPLID)

75. Jak zaksięgować listę płac z wykorzystaniem atrybutów pracownika?

Dla poszczególnych pracowników przypisano atrybuty (np. 501, 502,…) z wartościami w formie współczynników określające udziały odpowiednich kosztów wydziałowych. Chcąc zaksięgować listę płac wykorzystując wartości odpowiednich atrybutów przypisanych do pracownika należy z poziomu Narzędzia/ Serwer bazy danych/ Wykonywanie zapytań SQL dodać następującą funkcję: Create Function CDN.Wartosc_Atr_Prac (@WPLId Int, @nazwa varchar(20)) returns decimal (15,2) As Begin Declare @wartosc decimal (15,2) Select @wartosc = REPLACE (ATH_Wartosc,',','.') From CDN.OAtrybutyHist Join CDN.OAtrybuty ON ATH_OatId=OAT_OatId Join CDN.WypElementy On OAT_PrcId = WPE_PraId Join CDN.Wyplaty on WPL_WplId=WPE_WplId Where WPL_WPLId = @WPLId AND OAT_NazwaKlasy = @nazwa And (ATH_DataDo >= WPL_DataDo And WPL_DataOd >= ATH_DataOd) Return CASE WHEN ISNUMERIC(@wartosc)=1 THEN CAST (@wartosc AS DECIMAL(15,2)) ELSE 0 END End Wywołanie funkcji w elemencie schematu księgowego w polu Kwota – przemnożenie kwoty wynagrodzenia brutto przez wartość odpowiedniego współczynnika: @WynagrodzenieBrutto * CDN.Wartosc_Atr_Prac (WPL_WPLId, '501')

76. Jak zaksięgować różnice kursowe od kwoty netto i VAT odpowiednio na konta KUP i NKUP?

Zakładamy, że dokument od kontrahenta krajowego w walucie obcej został wprowadzony z poziomu rejestru VAT i na zakładce [Waluta] dokumentu zaznaczony jest parametr Płatność VAT w PLN. W takim przypadku w Preliminarzu tworzone są 2 płatności z dokumentu – jedna na kwotę netto w walucie obcej, a druga na kwotę VAT w PLN. Jeżeli zapłata za fakturę nastąpiła w walucie obcej na kwotę brutto dokumentu, wówczas (po zmianie na płatności dotyczącej kwoty VAT waluty rozliczenia z PLN na walutę obcą) w Kasa/Bank / Różnice kursowe powstają 2 różnice kursowe. Chcąc zaksięgować je na 2 różne konta należy w schemacie o typie Różnice kursowe dodać osobne pozycje z odmiennymi kontami i warunkami:

a) Zaksięgowanie różnicy od kwoty netto na konta KUP – w polu Konto Wn / Konto Ma należy wskazać odpowiednie konta księgowe, jako kwotę wybrać @RoznicaMinus lub @RoznicaPlus, natomiast w polu Warunek wpisać:

'1'='1' AND (EXISTS (Select * FROM CDN.BnkZdarzenia Join CDN.VatNag On BZd_DokumentID=VaN_VaNID Where ((BRKV_LDokID=BZd_BZdID AND BRKV_LDokTyp=1) OR (BRKV_PDokID=BZd_BZdID AND BRKV_PDokTyp=1)) AND BZd_DokumentTyp=2 AND VaN_TrybNettoVAT=1 AND BZd_WalutaDok <> '' ))

b) Zaksięgowanie różnicy od kwoty VAT na konta NKUP – w polu Konto Wn / Konto Ma należy wskazać odpowiednie konta księgowe, jako kwotę wybrać @RoznicaMinus lub @RoznicaPlus, natomiast w polu Warunek wpisać:

'1'='1' AND (EXISTS (Select * FROM CDN.BnkZdarzenia Join CDN.VatNag On BZd_DokumentID=VaN_VaNID Where ((BRKV_LDokID=BZd_BZdID AND BRKV_LDokTyp=1) OR (BRKV_PDokID=BZd_BZdID AND BRKV_PDokTyp=1)) AND BZd_DokumentTyp=2 AND VaN_TrybNettoVAT=1 AND BZd_WalutaDok = '' ))

77. Jak zaksięgować sumę wypłat wynagrodzeń pracowników z raportu K/B jako pojedynczy zapis?

W raporcie kasowym/bankowym znajdują się zapisy z wypłatami wynagrodzeń poszczególnych pracowników (zawierających w opisie słowo „Wynagrodzenie”) które chcemy zaksięgować jedną zbiorczą kwotą. W tym celu należy z poziomu Narzędzia/ Serwer bazy danych/ Wykonywanie zapytań SQL dodać następującą funkcję: Create Function [CDN].[SumaWynagrodzen] (@BRPid int, @BZPid int) Returns Decimal (15,2) As Begin Declare @Wynik Decimal(15,2) Select @Wynik = CASE WHEN (SELECT min(BZp_BZpID) FROM CDN.BnkZapisy WHERE BZp_BRpID=@BRPid and BZp_PodmiotTyp=3 and BZp_Opis like 'Wynagrodzenie%') = @BZPid THEN isnull (sum(BZp_Kwota),0) Else 0 End From CDN.BnkZapisy Where BZp_BRpID=@BRPid and BZp_PodmiotTyp=3 and BZp_Opis like'Wynagrodzenie%' return IsNull(@wynik,0) End Wywołanie funkcji w elemencie schematu księgowego w polu Kwota: '0'+CDN.SumaWynagrodzen (BRp_BRpID, BZp_BZpID)

78. Jak zaksięgować kwotę VAT w podziale na stawki z dokumentów w procedurze OSS?

Dostępne na schematach księgowych makra dotyczące kwot dla stawek VAT odnoszą się do stawek obowiązujących w Polsce. W celu zaksięgowania z dokumentu w procedurze OSS kwoty VAT w podziale na stawki obowiązujące w innych krajach Unii Europejskiej należy odwołać się do tej stawki w warunku pozycji schematu. W przypadku księgowania Faktur sprzedaży z poziomu modułu Handel/Faktury należy na pozycji schematu wskazać odpowiednie konto księgowe dla VAT-u należnego w danej stawce, w polu Kwota wpisać: @PozBrutto - @PozNetto natomiast w polu Warunek: '1'='1' and TrE_Stawka='13.00' W przypadku księgowania dokumentów z poziomu Rejestru VAT sprzedaży, w polu Kwota pozycji schematu należy wpisać: @Vat natomiast w polu Warunek: '1'='1' and VaT_Stawka='13.00' Chcąc zaksięgować kwoty Netto lub Brutto dla określonej w warunku stawki, w polu Kwota pozycji schematu należy wpisać dla Faktur sprzedaży @PozNetto lub @PozBrutto, natomiast w przypadku księgowania z poziomu Rejestru VAT sprzedaży – odpowiednio @Netto lub @Brutto.

79. Jak zaksięgować z listy płac konkretną wartość kwotową podaną w schemacie księgowym?

Wpisując w schemacie księgowym dla list płac wartość kwotową bez warunku, będzie ona mnożona przez ilość elementów wypłat dla pracowników. Należy więc zastosować warunek: '1'='1' AND (SELECT min(WPE_WpeId) FROM CDN.WypElementy Join CDN.Wyplaty ON WPE_WplId=WPL_WplId WHERE WPL_LplId =LPL_LplId) = WPE_WpeId Kwotę można zdefiniować np. jako: @WynagrodzenieBrutto - @WynagrodzenieBrutto + 100.00

OPT022 - Przykłady schematów księgowych w Comarch ERP Optima

Data aktualizacji: 28-11-2018

Poniższe scenariusze postępowania oraz przykładowe schematy księgowe, można wprowadzić do bazy DEMO i sprawdzić w praktyce ich działanie. Jeżeli baza DEMO nie jest widoczna na liście firm, można ją odtworzyć podając podczas odtwarzania ścieżkę do katalogu, domyślnie jest to Program files/ Comarch ERP Optima.

Prosty schemat dla księgowania raportów kasowych/bankowych

Konto WnKonto MaSłownikKwotaWarunek
@KontoRach@KontoPrzeciwPodmioty@Przychod
@KontoPrzeciw@KontoRachPodmioty@Rozchod
@KontoDodatWn@KontoDodatMaPodmioty@KwotaDodat
@KontoRach – w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Konta -> Konto kasy (rachunku). Program będzie pobierał konto kasy lub rachunku bankowego z pola Konto księgowe na Rejestrze kasowo/bankowym (Kasa/Bank -> Rejestry kasowe/bankowe). @KontoPrzeciw - w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Konta _ Konto przeciwstawne. Program będzie pobierał konto przeciwstawne z pola Konto przeciwstawne, które znajduje się na formatce Zapisu kasowo/bankowego (Kasa/Bank -> Zapisy kasowe/bankowe). @KontoDodatWn/@KontoDodatMa - w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kwoty dodatkowe -> Konto Wn/Konto Ma. Program będzie pobierał konto z kwot dodatkowych, które znajdują się na formatce Zapisu kasowo/bankowego, pod ikonką Kwoty dodatkowe. Dodatkowo podział na słowniki Podmioty spowoduje, że w Kwotach dodatkowych będzie można użyć kont słownikowych dla podmiotów wybranych na dokumencie. Na Zapisie Kasowo/Bankowym, w polu Konto przeciwstawne, można wpisywać symbol konta słownikowego np. 201-2-1, 202-2-1, 231 bez podawania konkretnej analityki podmiotu np. 201-2-1-ALOZA. Gdy w polu Konto przeciwstawne podamy konto 201-2-1, program zaksięguje na właściwą analitykę 201-2-1-ALOZA jeżeli kontrahent ALOZA zostanie wybrany na zapisie K/B. Pozycja trzecia schematu, umożliwia zaksięgowanie Zapisu K/B na dodatkowe konta poza kontem kasy (rachunku) (100) i kontem do niego przeciwstawnym (461-3) np. na konta zespołu 5 gdy bezpośrednio z kasy księgujemy np. koszty proste. Jeżeli w kwotach dodatkowych Zapisu Kasowo/Bankowego będą wpisywane konta słownikowe, w pozycji schematu dotyczącej księgowań poprzez Kwoty dodatkowe (pozycja trzecia), musi być wybrany Podział na słowniki: Podmioty. Jeżeli na pozycji schematu, gdzie użyto konto rozrachunkowe, zostanie zaznaczony parametr Rozrachunek to po zaksięgowaniu dekret pojawi się w opcji Księgowość/ Rozrachunki, co pozwoli na parowanie ze sobą dekretów na kontach rozrachunkowych.

Prosty schemat dla księgowania walutowych raportów kasowych/bankowych uwzględniający księgowanie zapisów na konta walutowe i PLN

Lp.Konto WnKonto MaSłownikKwotaKsięg. walutWarunek
1@KontoRachbrak@Rozchodtak
2@KontoPrzeciwPodmioty@Rozchodtak@KontoPrzeciw <>'149'
3@KontoRachbrak@Przychodtak
4@KontoPrzeciwPodmioty@Przychodtak@KontoPrzeciw <>'149'
5@KontoPrzeciwbrak@Przychodnie@KontoPrzeciw ='149'
6@KontoPrzeciwbrak@Rozchodnie@KontoPrzeciw ='149'
Pozycja 1 – księguje rozchód w walucie na konto rachunku, które jest walutowe Pozycja 2 – sprawdza czy konto przeciwstawne jest różne od konta np. 149, które jest kontem w PLN i księguje rozchód w walucie Pozycja 3 – księguje przychód w walucie na konto rachunku, które jest walutowe Pozycja 4 – sprawdza czy konto przeciwstawne jest różne od konta np. 149, które jest kontem w PLN i księguje przychód w walucie Pozycja 5 – sprawdza czy konto przeciwstawne to konto np. 149, które jest kontem w PLN i księguje przychód w PLN Pozycja 6 – sprawdza czy konto przeciwstawne to konto np. 149, które jest kontem w PLN i księguje rozchód w PLN.

Schemat księgowy dla raportów kasowych/bankowych uwzględniający księgowanie zapisów w PLN i walucie obcej

Pozycja 1 – sprawdza czy waluta rozliczenia jest w PLN i księguje rozchód w PLN Pozycja 2 – jak wyżej tylko dla przychodu. Pozycja 3 – sprawdza czy waluta dokumentu to PLN, waluta rozliczenia inna od PLN a konto rachunku jest złotówkowe, jeśli tak, księguje rozchód w PLN. Pozycja 4 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w walucie, jeśli tak, księguje rozchód w walucie. Pozycja 5 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w PLN, jeśli tak, księguje rozchód w PLN. Pozycja 6 – sprawdza czy waluta rozliczenia jest różna od PLN i księguje rozchód w walucie Pozycje 7 – jak wyżej tylko dla przychodu. Pozycja 8 – sprawdza czy waluta dokumentu to PLN, waluta rozliczenia inna od PLN a konto rachunku jest złotówkowe, jeśli tak, księguje przychód w PLN. Pozycja 9 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w walucie, jeśli tak, księguje przychód w walucie. Pozycja 10 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w PLN, jeśli tak, księguje przychód w PLN.
Lp.Konto WnKonto MaSłownikKwotaKsięg. walutWarunek
1@KontoRach201-1-1Podmioty@Przychodnie@RozliczenieWaluta ='PLN'
2202-1-1@KontoRachPodmioty@Rozchodnie@RozliczenieWaluta ='PLN'
3@KontoRachbrak@Rozchodnie@RozliczenieWaluta <>'PLN' AND @Waluta ='PLN' AND @KontoRach ='131'
4@KontoRachbrak@Rozchodtak@RozliczenieWaluta <>'PLN' AND @Waluta <>'PLN' AND @KontoRach ='135'
5@KontoRachbrak@Rozchodnie@RozliczenieWaluta <>'PLN' AND @Waluta <>'PLN' AND @KontoRach ='131'
6203podmioty@Rozchodtak@RozliczenieWaluta <>'PLN'
7203podmioty@Przychodtak@RozliczenieWaluta <>'PLN'
8@KontoRachbrak@Przychodnie@RozliczenieWaluta <>'PLN' AND @Waluta ='PLN' AND @KontoRach ='131'
9@KontoRachbrak@Przychodtak@RozliczenieWaluta <>'PLN' AND @Waluta <>'PLN' AND @KontoRach ='135'
10@KontoRachbrak@Przychodnie@RozliczenieWaluta <>'PLN' AND @Waluta <>'PLN' AND @KontoRach ='131'
Uwaga
Jeśli w koncie przeciwstawnym zostanie wybrane konto słownikowe, a nie konkretna analityka, i podmiot wybrany na zapisie kasowym/bankowym nie ma założonego konta analitycznego, zostanie założone konto w walucie PLN, niezależnie od waluty dokumentu. Jeżeli istnieje konto walutowe i zapis jest walutowy – dokument zostanie zaksięgowany na to konto
 

Schemat dla księgowania faktur zakupu z Rejestru VAT - z wykorzystaniem segmentów kont na kategoriach

Scenariusz postępowania:
  1. W Ogólne/ Kategorie dodając Kategorię wpisujemy na zakładce Dodatkowe, w polach Konto-segment Wn i/lub Konto-segment Ma, konto księgowe odpowiadające tej kategorii np. kategoria MAT. BIUROWE, Konto-segment Wn: 401-01-03, kategoria: ENERGIA, Konto-segment Wn: 401-01-05
  2. W Rejestry VAT/Rejestry VAT/Rejestr zakupu dodajemy fakturę, na której dodajemy pozycje np. w kolumnie Kategoria: MAT. BIUROWE, odpowiednia stawka VAT, kwota netto itd. i w drugiej pozycji Kategoria: ENERGIA, odpowiednia stawka, kwota netto itd.
Schemat księgowy:
Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@Brutto
221-1brak@Vat
@KatElemKontoWnbrak@Netto
@KontoDodatWn@KontoDodatMaPodmioty@KwotaDodat
@KatElemKontoWn - w schemacie dla Rejestru zakupu VAT, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kategoria pozycji/Konto Wn kategorii. Konto księgowe zostanie pobrane z kategorii znajdującej się w pozycji faktury zakupu (kategoria pozycji przy stawkach VAT na fakturze). @KontoDodatWn/@KontoDodatMa - w schemacie Rejestru VAT, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kwoty dodatkowe -> Konto Wn/Konto Ma. Program będzie pobierał konto z kwot dodatkowych, które znajdują się na formatce Faktury zakupu, pod ikonką Kwoty dodatkowe. Dodatkowo podział na słowniki Podmioty spowoduje, że w Kwotach dodatkowych będzie można użyć kont słownikowych dla podmiotów wybranych na dokumencie. Pozycja wykorzystująca te makra, pozwala na dodatkowe rozksięgowanie dokumentu np. poza kontem zespołu „4”, które jest pobierane z odpowiedniej kategorii pozycji, równocześnie, na określone przez użytkownika konta zespołu „5”.

Schemat dla księgowania faktur zaliczkowych i zwykłych z modułu Faktury

Poniższe schematy umożliwiają księgowanie zarówno faktur zwykłych jak i faktur zaliczkowych oraz faktur finalnych do zaliczkowych. Ostatnia pozycja w schematach pozwala na automatyczne wyksięgowania dotychczasowych zaliczek netto w celu przeksięgowania ich na konto przychodów ze sprzedaży. Schemat księgowy:
Konto WnKonto MaSłownikKwotaWarunek
201-2-1Podmioty@Brutto
221-2brak@Vat
842-2brak@Netto@CzyZaliczkowa ='TAK'
731-2brak@Netto@CzyZaliczkowa ='FINALNA' OR @CzyZaliczkowa ='NIE'
842-2731-2brak@ZalNetto@CzyZaliczkowa ='FINALNA'
Gdy konto 731-2 jest kontem słownikowym towarów, schemat może wyglądać następująco:
Konto WnKonto MaSłownikKwotaWarunek
201-2-1Podmioty@Brutto
221-2brak@Vat
842-2brak@Netto@CzyZaliczkowa ='TAK'
731-2Towary@PozNetto@CzyZaliczkowa ='FINALNA' OR @CzyZaliczkowa ='NIE'
842-2brak@ZalNetto@CzyZaliczkowa ='FINALNA'

Zaliczki pracowników

Scenariusz postępowania 1: zaliczka jest na kwotę równą fakturze zakupu:
  • pracownik pobiera zaliczkę z kasy np. 150 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  • pracownik przynosi fakturę zakupu (FZ) np. na kwotę 150 zł, która została zapłacona ww. zaliczką 150 zł – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/ zakładka: Rejestr zakupu:
    • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
    • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
    • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł.
    • zapisujemy dokument.
Po zapisaniu, faktura zakupu oraz dokument KW zostaną całkowicie rozliczone. Scenariusz postępowania 2: zaliczka jest na kwotę wyższą od faktury zakupu:
  1. pracownik pobiera zaliczkę z kasy np. 250 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  2. pracownik przynosi fakturę zakupu (FZ) np. na kwotę 150 zł, która została zapłacona ww. zaliczką 150 zł, resztę zaliczki pracownik zwraca do kasy (100 zł) – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/ zakładka: Rejestr zakupu:
  • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
  • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
  • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł,
  • zapisujemy dokument.
FZ jest całkowicie rozliczona, natomiast KW jest częściowo rozliczone. Pracownik wpłaca do kasy pozostałą część zaliczki:
  • w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument przychodowy (KP) od pracownika, na kwotę 100 zł.
  • na zakładce Rozliczenia, dokumentu KP, klikamy w strzałkę obok ikony plusa i wybieramy Kompensata,
  • gdy pojawi się lista zapisów kasowych pracownika, wybieramy KW (zaliczkę) i kompensujemy z KP.
Zaliczka pracownika jest całkowicie rozliczona. Scenariusz postępowania 3: zaliczka jest na kwotę niższą od faktury zakupu:
  1. pracownik pobiera zaliczkę z kasy np. 150 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  2. pracownik przynosi fakturę zakupu (FZ) np. na kwotę 250 zł, która została zapłacona ww. zaliczką 150 zł, pozostała część płatności faktury pozostaje do rozliczenia (100 zł) – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/zakładka: Rejestr zakupu:
  • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
  • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
  • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł,
  • zapisujemy dokument.
FZ jest częściowo rozliczona: w Preliminarzu płatności 150 zł znajduje się na liście rozliczonych dokumentów, a pozostałe 100 zł na liście dokumentów nierozliczonych. Na zdarzeniu w Preliminarzu znajduje się kontrahent wprowadzony na fakturze. Dokument KW jest całkowicie rozliczony. Schemat księgowy: Przykładowy schemat księgowy pozwala na przeksięgowanie zaliczki z konta kontrahenta na konto pracownika, który pobrał zaliczkę na zakup.
Konto WnKonto MaSłownikKwotaWarunek
@KatElemKontoWn@Netto
221-1@VAT
202-2-1Podmioty@Brutto
202-2-1Podmioty@PlatZaliczka@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'
234Zaliczkobiorcy@PlatZaliczka@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'
Poniższy schemat pozwoli natomiast na zaksięgowanie kwoty brutto na konto kontrahenta lub na konto pracownika (z pominięciem przeksięgowywania z konta kontrahenta na konto pracownika).
Konto WnKonto MaSłownikKwotaWarunek
@KatElemKontoWn@Netto
221-1@VAT
202-2-1Podmioty@Brutto@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy <>'pracownik'
234Zaliczkobiorcy@Brutto@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'

Przykładowy schemat do księgowania różnic kursowych

Przykład schematu dla Comarch ERP Optima w wersji 8.5 lub wyższej.
Konto WnKonto MaSłownikKwotaKsięgowanie walutoweWarunek
204Podmioty@RoznicaPlusTAK@TypRozl ='FZK-KP' OR @TypRozl ='FZ-FZK' OR @TypRozl ='FZ-KW'
204Podmioty@RoznicaMinusTAK@TypRozl ='FZK-KP' OR @TypRozl ='FZ-FZK' OR @TypRozl ='FZ-KW'
752-5brak@RoznicaPlusNIE
751-4brak@RoznicaMinusNIE
203Podmioty@RoznicaPlusTAK@TypRozl ='FSK-FS' OR @TypRozl ='FSK-KW' OR @TypRozl ='FS-KP'
203Podmioty@RoznicaMinusTAK@TypRozl ='FSK-FS' OR @TypRozl ='FSK-KW' OR @TypRozl ='FS-KP'
Ten uniwersalny schemat pozwala na zaksięgowanie dodatnich lub ujemnych różnic kursowych wynikających z dokonywanych rozliczeń na dokumentach walutowych. Rozbudowany warunek pozwala na odróżnienie, czy różnica dotyczy rozrachunków z dostawcami (konto 204), czyli mamy do czynienia z rozliczeniem Faktury zakupu z dokumentem KW ('FZ-KW'), korekty faktury zakupu z dokumentem KP ('FZK-KP') lub faktury zakupu z korektą faktury zakupu ('FZ- FZK’), czy rozrachunków z odbiorcami (konto 203) czyli mamy do czynienia z rozliczeniem faktury sprzedaży ('FS-KP'), korekty faktury sprzedaży z dokumentem KW ('FSK-KW') lub fakturą sprzedaży i korekta faktury sprzedaży ('FSK-FS'). Konta rozrachunków z kontrahentami to konta walutowe, konta różnic kursowych to konta złotówkowe. Schemat dotyczy sytuacji gdy na dokumencie rozliczanym i rozliczającym jest ten sam podmiot. Jeżeli rozrachunki walutowe z dostawcami i odbiorcami są księgowane na jedno konto np. konto 203 – nie jest potrzebny warunek rozróżniający typy dokumentów biorących udział w rozliczeniu.

Przykładowy schemat do księgowania kompensat

Schemat obejmuje najbardziej standardową sytuację czyli księgowanie kompensaty (faktura zakupu z fakturą sprzedaży) dla tego samego lub różnych podmiotów i dla dokumentów wystawionych w PLN. Schemat ten dotyczy kompensat księgowanych z poziomu Kasa/Bank/Dokumenty rozliczone (Typ schematu: Rozliczenia). Dla przykładu, przed zaksięgowaniem kompensaty, mamy następującą sytuację na kontach:   Kompensujemy w module Kasa/Bank Fakturę zakupu od kontrahenta ALOZA z Fakturą sprzedaży wystawioną dla kontrahenta ALOZA na kwotę 1000 zł i księgujemy kompensatę schematem:
Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@KwotaRoz1
201-2-1Podmioty2@KwotaRoz1
  Po zaksięgowaniu mamy następującą sytuację na kontach: Tak prosty schemat jest możliwy ponieważ zawsze dokumentem rozliczanym (lewym) jest dokument rozchodowy, a dokumentem rozliczającym (prawym) dokument przychodowy. Gdybyśmy chcieli rozbudować schemat o księgowanie, poza kompensatą faktury zakupu z fakturą sprzedaży, jeszcze o dokument KW z dokumentem KP to schemat może wyglądać następująco:
Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@KwotaRoz1@TypRozl ='FZ-FS'
201-2-1Podmioty2@KwotaRoz1@TypRozl ='FZ-FS'
202-2-1Podmioty@KwotaRoz1@TypRozl ='KW-KP'
201-2-1Podmioty2@KwotaRoz1@TypRozl ='KW-KP'
Słownik: Podmioty pobiera kontrahenta z dokumentu rozliczanego (lewego). Słownik: Podmioty2 – z dokumentu rozliczającego (prawego). W warunku uwzględniamy odpowiedni typ kompensaty.
  • Kwota rozliczenia – może być pobrana z dowolnego dokumentu (rozliczanego lub rozliczającego) ponieważ dla rozliczeń dokumentów wystawionych w PLN kwota rozliczona dla obydwóch dokumentów będzie taka sama.
   

OPT077- Automatyczne rozliczenia i rozrachunki

Data aktualizacji: 28-11-2018

Spis treści

1 Informacje ogólne

W Konfiguracji Firmy/ Księgowość/Księgowość kontowa dostępny jest parametr Automatyczne rozliczenia i rozrachunki. Po jego zaznaczeniu oraz po odpowiednim skonfigurowaniu programu będą automatycznie łączone rozliczenia prowadzone w module Kasa/Bank z rozrachunkami dokonywanymi na kontach księgowych w module Księga Handlowa lub Księga Handlowa Plus.
Uwaga
Rozliczenie w module Kasa/Bank skutkować będzie rozrachunkiem w module Księga Handlowa lub Księga Handlowa Plus i analogicznie rozrachunek w module Księga Handlowa lub Księga Handlowa Plus skutkować będzie rozliczeniem w module Kasa/Bank.
Nie ma znaczenia z jakiego poziomu dokonywane są rozliczenia i rozrachunki. Dodanie rozliczenia na poziomie dokumentu, skutkuje tym samym co rozliczenie z Rozliczeń Podmiotu czy z poziomu Listy Dokumentów Nierozliczonych. Również dodanie rozrachunku z poziomu zapisu księgowego skutkuje tym samym, co dodanie rozrachunku z poziomu listy rozrachunków. Automatyczne rozliczenia i rozrachunki opierają się o następujące zasady:
  • Zasada 1: Jeżeli płatności są już rozliczone i następuje księgowanie dokumentów, to ich dekrety rozrachowują się automatycznie.
  • Zasada 2: Po rozliczeniu płatności/ zapisu kasowego/bankowego rozrachowują się związane z nimi dekrety.
  • Zasada 3: Nierozliczone płatności/zapisy K/B do zaksięgowanych dokumentów rozliczą się automatycznie w momencie rozrachowania odpowiadającym im dekretów.

2 Od czego zacząć?

Aby następowało automatyczne rozliczenie i rozrachowanie należy:
  • W Konfiguracji Firmy/Księgowość/Księgowość kontowa zaznaczyć parametr Automatyczne rozliczenia i rozrachunki
  • Odpowiednio zdefiniować schematy księgowe (na pozycji schematu księgowego zaznaczyć opcję Rozrachunek, w Kwocie odwołać się do makra @KwotaPlatnosci)
  • Zdecydować czy różnice kursowe i kompensaty mają być generowane w momencie rozrachowywania z poziomu rozrachunków, czy będą księgowane schematami księgowymi z poziomu modułu Kasa/Bank (w Konfiguracji Firmy/Księgowość/Księgowość kontowa dostępny jest parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków)
Uwaga
Przed zaznaczeniem parametru Automatyczne rozliczenia i rozrachunki niezbędne jest uporządkowanie bazy danych poprzez uzgodnienie stanu nierozliczonych dokumentów z nierozrachowanymi dekretami na kontach księgowych, w przeciwnym wypadku stan na kontach i w kasie/banku może nie być spójny. Jeżeli w bazie pozostaną nierozrachowane dekrety powstałe po zaksięgowaniu schematami, w których nie wykorzystano nowo wprowadzonych makr to nie nastąpi automatyczny rozrachunek tych dekretów nawet jeśli powstanie rozliczenie w module Kasa/Bank. Analogicznie jeżeli Użytkownik dokona rozrachunku tych dekretów to nie nastąpi rozliczenie w module Kasa/Bank.
Uwaga
Przy porządkowaniu bazy danych pomocny może być wydruk Rozliczenia/rozrachunki > Zestawienie rozliczeń i rozrachunków, dostępny z poziomu Kasa/Bank/Dokumenty nierozliczone, zakładka Na dzień, który pokazuje stan rozliczeń i rozrachunków danego podmiotu na wybrany dzień.
Uwaga
Przydatna może być również opcja seryjnego zaznaczenia parametru Rozrachunek na wybranych dekretach księgowych oraz pozycjach bilansu otwarcia. Funkcja dostępna jest z poziomu Księgowość/Dzienniki/ zakładka Konto oraz Księgowość/Inne/Dokumenty BO/formularz bilansu otwarcia poprzez wybór z menu kontekstowego opcji Zaznacz rozrachunek/Odznacz rozrachunek.

2.1 Definiowanie schematów księgowych

Automatyczne rozliczenia i rozrachunki dokonują się prawidłowo tylko w sytuacji gdy schematy księgowe użyte do zaksięgowania dokumentów są zbudowane we właściwy sposób. Niezbędne jest zdefiniowanie schematów, w których:
  • w elemencie schematu księgowego zaznaczony jest parametr Rozrachunek,
  • w Kwocie jest odwołanie do makra @KwotaPlatnosci (na pozycji schematu należy wybrać Kwota/ Płatności/ Kwota płatności). Wynika to z zasady, że dokonujemy rozrachunku dekretów odpowiadających rozliczanym płatnościom.
Podział na słowniki: Płatnicy  - odwołuje się do Płatnika wybranego na zdarzeniu w Preliminarzu płatności jeżeli w kwocie jest wybrane makro @KwotaPlatnosci. Jeżeli w pozycji schematu nie ma odwołania do makr związanych z płatnościami (ani w kwocie, ani w koncie) to podział na słowniki działa na płatnika z nagłówka dokumentu. Makro @KwotaPlatnosci można łączyć jedynie z makrami dotyczącymi nagłówka. Nie można łączyć go z makrami odwołującymi się do pozycji dokumentu. Makra dostępne dla Płatnika w polach Konto, Opis i Warunek (zarówno w nagłówku, jak i w elemencie schematu) pobierają wartości z konkretnych płatności, a nie z nagłówka dokumentu. Dodatkowo w schematach służących do księgowania dokumentów posiadających płatności, w pozycji Warunek (w elemencie schematu) dostępna jest opcja: Płatności/Waluta płatności (makro @WalutaPlatnosci), sprawdzająca walutę rozliczenia na zdarzeniu w Preliminarzu płatności.
Uwaga
Aby nastąpiło automatyczne rozliczenie i rozrachowanie waluta rozliczenia wybrana na zdarzeniu w Preliminarzu płatności musi zgadzać się z walutą konta, na które następuje księgowanie dokumentu. W przeciwnym wypadku pojawia się komunikat informujący o tym, że waluta rozliczenia nie zgadza się z walutą rozrachunku i nie następuje automatyczne połączenie rozliczeń z rozrachunkami

Przykład
Schemat księgowy pozwalający na zaksięgowanie dokumentów w Rejestrze VAT sprzedaży

W jaki sposób zostaną zaksięgowane dokumenty? 

  • Jeżeli w polu Konto i/lub Kwota następuje odwołanie do makr związanych z płatnościami oraz wybrany jest Podział na słowniki: Płatnicy to tworzy się tyle pozycji ile jest płatności na Podmiot wybrany na płatności. Jeżeli w polu Kwota następuje odwołanie do makra @Brutto to każdy dekret utworzony zostanie na kwotę brutto z dokumentu.
  • Jeżeli w polu Konto i/lub Kwota następuje odwołanie do makr związanych z płatnościami oraz wybrany jest Podział na słowniki: Podmioty to tworzy się tyle pozycji ile jest płatności na Podmiot wybrany na dokumencie w polu Kontrahent.
  • Jeżeli w polu Konto i/lub Kwota nie następuje odwołanie do makr związanych z płatnościami i wybrany jest Podział na słowniki: Płatnicy to tworzy się jeden dekret na Płatnika wybranego w nagłówku dokumentu w kwocie zależnej od liczby płatności (wartość jest zwielokrotniona gdy występuje więcej niż jedna płatność).
  • Jeżeli w polu Konto i/lub Kwota nie następuje odwołanie do makr związanych z płatnościami i wybrany jest Podział na słowniki: Podmioty to tworzy się jeden dekret na Podmiot wybrany na dokumencie w polu Kontrahent.
Uwaga
W związku z tym, że makro @KwotaPlatnosci odwołuje się do kwoty z preliminarza płatności, która nie może być ujemna a jedynie różni się kierunkiem przepływu pieniędzy (przychód, rozchód), dokumenty wprowadzone do Rejestru VAT księgowane są zawsze ze znakiem „+”. Aby zaksięgować dokumenty w kwocie ujemnej należy odpowiednio zmodyfikować schematy księgowe
Przykład
Schemat księgowy pozwalający na zaksięgowanie dokumentów w Rejestrze VAT sprzedaży z podziałem na kwoty dodatnie i ujemne
Przykład
Schemat księgowy pozwalający na zaksięgowanie dokumentów w Rejestrze VAT zakupu z podziałem na kwoty dodatnie i ujemne.   PREDEKRETACJA Funkcjonalność automatycznych rozliczeń i rozrachunków działa również w przypadku, gdy dokument jest księgowany nie schematem, a wg predekretacji. Warunkiem jest jednak, aby zakładka [Predekretacja] nie była uzupełniana ręcznie, a wygenerowana na podstawie schematu księgowego, który w kwocie ma odwołanie do makra @KwotaPlatnosci (wyjątkiem jest predekretacja raportów kasowych/bankowych, różnic kursowych oraz kompensat). SCHEMATY STOWARZYSZONE Podczas rozliczania dokumentów następuje automatyczne rozrachowanie tylko dekretu „głównego”, tzn. powstałego z księgowania schematem głównym, dekrety powstałe z księgowania schematem stowarzyszonym nie zostaną rozrachowane.

Przykład
Mamy wprowadzone dwa dokumenty: Dok1 i Dok2, nie są rozliczone. Dokument Dok1 jest już zaksięgowany (i widoczny z poziomu Księgowość/ Rozrachunki jako PK1). Dokument Dok2 również jest zaksięgowany, ale schematem z podpiętym schematem stowarzyszonym (z poziomu Księgowość/ Rozrachunki jest więc dekret PK2 powstały z księgowania schematem „głównym” i dekret PK3 powstały z księgowania schematem stowarzyszonym). Następnie z poziomu modułu Kasa/Bank rozliczamy oba dokumenty Dok1 i Dok2. Następuje wówczas automatyczne rozrachowanie dekretu PK1 z PK2. Dekret PK3, jako dekret powstały z księgowania schematem stowarzyszonym, nie zostanie automatycznie rozrachowany.

2.2 Bilans otwarcia i ręcznie wprowadzane zapisy księgowe

Funkcjonalność automatycznych rozliczeń i rozrachunków działa nie tylko dla dekretów powstałych z księgowania schematem księgowym, ale również dla pozycji bilansu otwarcia i dla dekretów ręcznie wprowadzanych z poziomu Księgowość/Dzienniki. Ważne jednak jest aby na pozycjach bilansu otwarcia i/lub ręcznie wprowadzanych dekretach, które mają podlegać funkcji automatycznych rozliczeń i rozrachunków, zaznaczone były parametry Rozrachunek i Generowanie płatności.

3 Automatyczne rozliczenia i rozrachunki – jak to działa?

Funkcjonalność automatycznych rozliczeń i rozrachunków polega na tym, że:
  • Zasada 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują
  • Zasada 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety
  • Zasada 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie 
Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują. Dwa dokumenty na tą samą kwotę, rozliczone, tylko jeden z nich zaksięgowany. Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Dokument Dok1 został już zaksięgowany na konto np. 201-ABC, schematem odwołującym się do makra @KwotaPlatnosci, z zaznaczonym parametrem Rozrachunek. Dokument Dok2 nie jest jeszcze zaksięgowany. Oba dokumenty są już ze sobą rozliczone w module Kasa/Bank. Następnie księgujemy dokument Dok2 (na to samo konto np. 201-ABC, z zaznaczonym parametrem Rozrachunek) – w tym momencie nastąpi automatyczne rozrachowanie dekretów Dek1 i Dek2.
Przykład
Działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety. Dwa dokumenty na tą samą kwotę, nierozliczone, zaksięgowane na to samo konto. Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Następnie oba księgujemy na to samo konto po przeciwnych stronach, np. 201-ABC, z zaznaczonym parametrem Rozrachunek, dokument  Dok1 (faktura sprzedaży) jest księgowany schematem odwołującym się do makra @KwotaPlatnosci. W tym momencie mamy więc sytuację, gdzie oba dokumenty są widoczne w module Kasa/Bank jako nierozliczone i w Księgowość/ Rozrachunki jako nierozrachowane. Następnie rozliczamy dokumenty z poziomu modułu Kasa/Bank (płatność P1 i P2), następuje wówczas automatyczne rozrachowanie dekretów (Dek1 i Dek2).
Przykład
Działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie. Dwa dokumenty na tą samą kwotę, zaksięgowane na to samo konto, nierozliczone i nierozrachowane. Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Następnie oba księgujemy na to samo konto po przeciwnych stronach, np. 201-ABC, z zaznaczonym parametrem Rozrachunek, dokument Dok1 (faktura sprzedaży) jest księgowany schematem odwołującym się do makra @KwotaPlatnosci. W tym momencie mamy więc sytuację, gdzie oba dokumenty są widoczne w module Kasa/Bank jako nierozliczone i w Księgowość/ Rozrachunki jako nierozrachowane. Następnie z poziomu z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki Rozrachunki rozrachowujemy dekrety (Dek1 i Dek2), następuje wówczas automatyczne rozliczenie dokumentów w module Kasa/Bank.
Uwaga
Jeżeli dokonujemy tylko częściowego rozliczenia to również dekrety zostaną rozrachowane na taką samą kwotę. Analogicznie w drugą stronę: częściowe rozrachowanie dekretów powoduje częściowe rozliczenie płatności.

4 Kompensaty i różnice kursowe

Możemy zdecydować, czy kompensaty i różnice kursowe mają być generowane w momencie rozrachowywania z poziomu rozrachunków czy będą księgowane schematami księgowymi z poziomu modułu Kasa/Bank – zależne jest to od parametru Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków dostępnego w Konfiguracji Firmy/Księgowość/Księgowość kontowa (pod uwagę brane są kompensaty z poziomu Kasa/Bank/Dokumenty rozliczone, a nie Dokumenty kompensat z poziomu Kasa/Bank/ Dokumenty kompensat).

4.1 Zaznaczony parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków

Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest zaznaczony, to na formularzu okresu obrachunkowego w Konfiguracji Firmy/Księgowość/Okresy obrachunkowe należy wskazać dzienniki księgowań oraz daty księgowania dla dekretu różnicy kursowej oraz dekretu kompensaty generowanych podczas rozliczania rozrachunków w „tle” lub podczas dokonywania rozrachunków z listy rozrachunków nierozrachowanych lub z pozycji dekretu z zakładki Rozrachunki.
Rys. 1. Formularz okresu obrachunkowego
Należy również uzupełnić Domyślne konta dla różnic kursowych poprzez wskazanie na formularzu waluty (Konfiguracja Programu/ Ogóle/ Waluty) konta istniejącego w planie kont w bieżącym okresie obrachunkowym.
Rys 2. Formularz waluty
Uwaga
W sytuacji gdy na planie kont istnieje więcej kont dla danej waluty należy odznaczyć w Konfiguracji parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków oraz księgować dokumenty różnic kursowych oraz dokumenty kompensat z poziomu modułu Kasa/Bank
Nieuzupełnienie wyżej wymienionych pól powoduje podczas księgowania dokumentów walutowych rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów dokonanie jedynie rozrachunku głównego na kontach księgowych. Nie generuje się natomiast dekret różnicy kursowej (pojawia się odpowiedni komunikat o braku kont i/lub dziennika). Analogicznie w przypadku dokumentów księgowanych na dwa różne konta nie generuje się dekret kompensaty. Jeżeli konto na formularzu waluty nie jest uzupełnione to pojawia się komunikat: Nie zdefiniowano kont dla różnic kursowych w ustawieniach waluty [Symbol waluty]. Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik RK lub Użytkownik posiada zakaz do dziennika to pojawia się komunikat: Nie zdefiniowano dziennika dla różnic kursowych w konfiguracji okresu obrachunkowego lub operator ma zakaz do tego dziennika. Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik KOMP lub Użytkownik posiada zakaz do dziennika to pojawia się komunikat: Nie zdefiniowano dziennika dla kompensat w konfiguracji okresu obrachunkowego lub operator ma zakaz do tego dziennika. Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik RK lub Dziennik KOMP to podczas rozrachowywania z listy rozrachunków (lub z pozycji dekretu z zakładki Rozrachunki) dekretów walutowych dla różnych kont księgowych dekret różnicy kursowej oraz dekret kompensaty generuje się do pierwszego dziennika dostępnego w bieżącym okresie obrachunkowym, do którego Użytkownik nie ma zakazu. Dodatkowo pojawia się komunikat: Nastąpiła zmiana domyślnego dziennika dla kompensaty. Czy ustawić nowy dziennik jako domyślny w konfiguracji? oraz Nastąpiła zmiana domyślnego dziennika dla różnicy kursowej. Czy ustawić nowy dziennik jako domyślny w konfiguracji? Zaakceptowanie komunikatów powoduje zapisanie dzienników na formularzu okresu obrachunkowego. Jeśli na formularzu okresu obrachunkowego uzupełniony został Dziennik RK i Dziennik KOMP i podczas rozrachowywania dekretów walutowych dla różnych kont księgowych Użytkownik wskazuje na dokumencie kompensaty i dokumencie różnicy kursowej inny dziennik to pojawia się komunikat: Nastąpiła zmiana domyślnego dziennika dla kompensaty. Czy ustawić nowy dziennik jako domyślny w konfiguracji? oraz Nastąpiła zmiana domyślnego dziennika dla różnicy kursowej. Czy ustawić nowy dziennik jako domyślny w konfiguracji? Zaakceptowanie komunikatu powoduje zapisanie dekretu dokumentu kompensaty oraz dekretu dokumentu różnicy kursowej do dzienników wskazanych na dokumencie oraz zmianę dzienników na formularzu okresu obrachunkowego. Wybór opcji Nie powoduje zapisanie dekretu kompensaty oraz dekretu różnicy kursowej do dzienników wskazanych na dokumencie, natomiast kolejne dekrety zapisywane będą do dzienników wskazanych na formularzu okresu obrachunkowego.
Uwaga
Przy zaznaczonym parametrze Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków w konfiguracji nie ma możliwości księgowania kompensat i różnic kursowych z poziomu Kasa/Bank. Podczas próby księgowania pojawi się komunikat „Nie można rozpocząć księgowania dokumentu. W Konfiguracji Firma/Księgowość/Księgowość kontowa jest ustawiony parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków.
Uwaga
Przy zaznaczonym parametrze Wymuszaj zatwierdzanie zapisów księgowych, dekrety różnic kursowych oraz kompensaty nie zostaną wygenerowane jeżeli zapis ten jest wcześniejszy od “najmłodszego” zapisu w buforze (lub jest późniejszy od “najstarszego” zapisu w buforze) o więcej niż 2 miesiące. W takim wypadku dodawanie dokumentu jest blokowane, w logu z operacji pojawia się komunikat: “Nie udało się wygenerować dekretu róźnicy kursowej/kompensaty z powodu błędu. Przekroczono okres dwóch miesięcy dla zapisów w buforze.
Rys 3. Ilustracja na potrzeby przykładów 7-9
Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Następnie rozliczamy płatności P1 z P2 (w module Kasa/Bank powstaje różnica kursowa RK i kompensata KOMP). Później księgujemy dokument Dok2 (powstaje dekret Dek2), w tym momencie następuje automatyczne rozrachowanie dekretów Dek1 z Dek2 oraz powstaje dekret różnicy kursowej Dek3 RK i dekret kompensaty Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową z modułu Kasa/Bank. Opis poszczególnych kroków:
  1. Rozliczenie pomiędzy P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  2. Księgowanie Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.
Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków - działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety) Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Opis kolejnych kroków:
  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Rozliczamy płatności P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  3. Powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.
Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków - działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie. Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Opis kolejnych kroków:
  • Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
    1. Z poziomu Księgowość/Rozrachunki lub z poziomu zapisu księgowego rozrachowujemy Dek1 z Dek2.
    2. W momencie rozrachowywania pojawia się formatka z propozycją zapisu polecenia księgowania dla powstałej różnicy kursowej i kompensaty.
    3. Po zatwierdzeniu formatki powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.
Rys 4. Automatyczne generowanie zapisu księgowego różnicy kursowej i kompensaty, zakładka [Różnica kursowa]

Uwaga
Każde rozliczenie powoduje identyczne rozrachowanie na dekretach i na odwrót, każdy rozrachunek spowoduje rozliczenie. Jeżeli więc w module Kasa/Bankdokonano kilku częściowych rozliczeń, do których w module Kasa/Bank wygenerowane zostały dokumenty różnicy kursowej i/lub dokumenty kompensaty to w księgowości kontowej podczas rozrachowania dekretów związanych z tymi płatnościami również powstanie tyle samo dokumentów różnicy kursowej i/lub dokumentów kompensaty.

4.2 Odznaczony parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków

Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest odznaczony, wówczas dekrety RK i KOMP nie powstają w momencie rozrachunku, różnice kursowe i kompensaty wygenerowane w module Kasa/Bank należy księgować schematem księgowym.
Rys 5. Ilustracja na potrzeby przykładów 10-12
Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują. Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Następnie rozliczamy płatności P1 z P2 (w module Kasa/Bank powstaje kompensata KOMP i różnica kursowa RK). Później księgujemy dokument Dok2 (powstaje dekret Dek2), w tym momencie następuje automatyczne rozrachowanie dekretów Dek1 z Dek2. Należy również z poziomu modułu Kasa/Bank zaksięgować powstałą kompensatę i różnicę kursową. Dekrety RK i KOMP zostaną automatycznie powiązane z rozrachunkami. Opis poszczególnych kroków:
  1. Rozliczenie pomiędzy P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  2. Księgowanie Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostanie automatycznie powiązany z rozrachunkami.
Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków - działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety. Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Opis kolejnych kroków:
  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Rozliczamy płatności P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostaje automatycznie powiązany z rozrachunkami.
Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków - działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie. Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2). Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1. Opis kolejnych kroków:
  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Z poziomu Księgowość/ Rozrachunki lub z poziomu zapisu księgowego rozrachowujemy Dek1 z Dek2.
  3. System automatycznie rozliczył dokumenty Dok1 i Dok2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostaje automatycznie powiązany z rozrachunkami.

4.3 Usuwanie od strony rozliczenia

Jeżeli rozliczenie jest połączone z rozrachunkiem to usunięcie rozliczenia z poziomu modułu Kasa/Bank nie jest możliwe, pojawia się komunikat: Nie można usunąć rozliczenia powiązanego z rozrachunkiem. Należy usunąć rozrachunek z poziomu Księgowość/Rozrachunki. Jeżeli na dekrecie zaznaczony jest parametr Rozrachunek bez rozliczenia w K/B to usunięcie rozliczenia jest możliwe ze względu na brak powiązania pomiędzy rozliczonymi płatnościami i rozrachowanymi dekretami. Usunięcie rozliczenia w takim przypadku nie powoduje usunięcia rozrachunku.

4.4 Usuwanie od strony rozrachunku

Możliwość usuwania automatycznie wygenerowanych rozliczeń i rozrachunków istnieje tylko od strony rozrachunków. Przy próbie usunięcia rozrachunku powiązanego z rozliczeniem (zarówno z listy rozrachunków rozrachowanych, jak i z pozycji dekretu z zakładki Rozrachunki) pojawia się komunikat: Rozrachunek połączony z rozliczeniem. Czy usunąć rozliczenie? Zaakceptowanie komunikatu powoduje usunięcie rozrachunku wraz z rozliczeniem. Wybór opcji Nie powoduje usunięcie tylko rozrachunku, rozliczenie w module Kasa/Bank pozostaje.
Uwaga
Jeżeli w Konfiguracji parametr o automatycznych rozliczeniach  i rozrachunkach jest zaznaczony to w przypadku seryjnego usuwania rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Rozrachowane] komunikat: Rozrachunek połączony z rozliczeniem. Czy usunąć rozliczenie? pojawia się tylko raz. Wybór opcji Tak lub Nie działa na wszystkie dekrety zaznaczone na liście.
Podczas usuwania rozrachunków walutowych automatycznie usunięty zostanie dekret różnicy kursowej, który jest powiązany z tym rozrachunkiem pod warunkiem, że dekret różnicy kursowej nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym, Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje dekret różnicy kursowej oraz dekret różnicy kursowej nie był wprowadzany ręcznie. Usuwany jest zarówno dekret powstały podczas generacji rozrachunków jak i dekret powstały po zaksięgowaniu dokumentu różnicy kursowej w module Kasa/Bank. Podczas usuwania rozrachunków dla dwóch różnych kont księgowych automatycznie usunięty zostanie dekret kompensaty, który jest powiązany z tym rozrachunkiem pod warunkiem, że dokument kompensaty nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym oraz Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje się dekret kompensaty. Usuwany jest zarówno dekret powstały podczas generacji rozrachunków jaki i dekret powstały po zaksięgowaniu dokumentu kompensaty w module Kasa/Bank. Jeżeli dokument różnicy kursowej i/lub dokument kompensaty został zaksięgowany na czysto, nie znajduje się w bieżącym okresie obrachunkowym lub Użytkownik usuwający rozrachunek ma zakaz usuwania dekretów z dziennika w którym znajduje się dekret różnicy kursowej i/lub dekret kompensaty to podczas usuwania rozrachunku pojawia się odpowiedni komunikat informujący o przyczynie błędu. Następuje usunięcie rozrachunku między dekretami, natomiast dekret różnicy kursowej i/lub kompensaty pozostaje. Pozostaje również powiązanie tego dekretu z dokumentem różnicy kursowej i/lub dokumentem kompensaty w module Kasa/Bank i rozliczenie w module Kasa/Bank nie zostaje usunięte. Poniższa tabelka pokazuje w jaki sposób następuje usuwanie rozrachunku i dekretów RK/ KOMP, w zależności od tego w jakim są okresie obrachunkowym oraz czy są w buforze czy już zatwierdzone. Z poziomu dekretu różnicy kursowej nie ma możliwości usunięcia rozrachunku. Podczas próby usunięcia pojawia się komunikat: Rozrachunek różnicy kursowej należy usunąć z listy rozrachunków.
Uwaga
Podczas generowania storna dekretów rozrachowanych następuje usunięcie rozrachunku między dekretami natomiast rozliczenie w module Kasa/Bank pozostaje.
W przypadku gdy rozrachunek dokonany został pomiędzy dekretem lub dekretami z zaznaczonym parametrem Rozrachunek bez rozliczenia w K/B to usunięcie rozrachunku nie powoduje usunięcia rozliczenia (więcej informacji na temat działania tego parametru znajduje się w rozdziale Rozrachunek bez rozliczenia w K/B). Podczas usuwania rozrachunku automatycznie usunięty zostanie dekret różnicy kursowej oraz dekret kompensaty pod warunkiem, że dokument nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym oraz Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje się dekret różnicy kursowej i/lub kompensaty.
Uwaga
Nie można usunąć zapisu księgowego posiadającego rozrachowany rozrachunek. Podczas próby usunięcia zapisu księgowego pojawia sią komunikat: Zapis księgowy [Nr dokumentu] posiada rozliczone dekrety. Rozrachunek należy usunąć z poziomu Księgowość/ Rozrachunki lub bezpośrednio z dekretu z zakładki Rozrachunki.

4.5 Ponowne rozrachowanie wcześniej usuniętych rozrachunków połączonych z automatycznymi rozliczeniami

Jeżeli rozrachunki były połączone z rozliczeniami i dokonano usunięcia rozrachunku, ale nie zostały usunięte rozliczenia (dekret różnicy kursowej i/lub dekret kompensaty jest zatwierdzony na czysto, Użytkownik ma zakaz usuwania dekretów z dziennika lub zakaz do konta lub zrezygnowano z usunięcia rozliczenia podczas usuwania rozrachunku) to podczas ponownego generowania rozrachunku na tę samą kwotę połączą się one z wcześniej wygenerowanymi rozliczeniami pod warunkiem, że nie dokonano modyfikacji dekretów. W przypadku braku zgodności pojawia się komunikat: Wystąpił błąd podczas rozliczania dokumentów kasowych/bankowych. Rozliczenie niemożliwe. Dokument [Nr dokumentu] jest już rozliczony. Podczas ponownego dokonywania rozrachunku należy zrezygnować z generowania dekretu różnicy kursowej i/lub dekretu kompensaty (lub odznaczyć w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków i wskazać podczas dokonywania rozrachunku dekret różnicy kursowej). Po wskazaniu dekret różnicy kursowej połączy się z rozrachunkiem. Nie ma możliwości wskazania dokumentu kompensaty. Użytkownik powinien go wcześniej usunąć.

5 Co jeszcze warto wiedzieć?

5.1 Dokumenty walutowe z VAT w PLN

Dokumenty walutowe z zaznaczonym parametrem Płatność VAT w PLN generują dwie płatności w dwóch różnych walutach (jedna płatność na kwotę netto w walucie obcej i druga na kwotę VAT w walucie PLN). Dlatego też, aby nastąpiło automatycznie rozliczenie i rozrachowanie po zaksięgowaniu takiego dokumentu muszą powstać dwa dekrety na kwotę i w walucie odpowiadającej tym płatnościom. Jeżeli dokument będzie zaksięgowany w kwocie brutto w walucie dokumentu podczas rozliczania nie nastąpi automatyczne rozrachowanie dekretów.
Uwaga
Aby prawidłowo zaksięgować dokument walutowy z zaznaczonym Płatność VAT w PLN, w pozycji schematu księgowego przy wyborze makra @KwotaPlatnosci w warunku należy się odwołać do waluty płatności, np. @WalutaPlatnosci ='PLN'.

5.2 Blokowanie pól na płatnościach/ dekretach

Jeżeli w Konfiguracji firmy jest włączony parametr Automatyczne rozliczenia i rozrachunki, to w celu uniknięcia niezgodności pomiędzy danymi na płatności, a danymi:
  • na dekretach powstałych po zaksięgowaniu makrem @KwotaPlatnosci,
  • na dekretach powstałych po zaksięgowaniu raportów kasowych/bankowych,
  • na dekretach powstałych po zaksięgowaniu dokumentu różnicy kursowej i/lub dokumentu kompensaty z poziomu modułu Kasa/Bank,
  • predekretacji dokumentów w wyżej wymienionych przypadkach,
zablokowane są  następujące pozycje: Kwota, Waluta, Termin rozrachunku oraz pola związane z określeniem notowania waluty. Analogicznie w drugą stronę: po zaksięgowaniu dokumentu makrem @KwotaPlatnosci na zdarzeniu w Preliminarzu płatności zablokowane zostaną następujące pola: Podmiot, Kwota, Termin płatności, Waluta rozliczenia oraz pola związane z określeniem notowania waluty. Dodatkowo taka płatność nie podlega podziałowi.
Uwaga
Makro @KwotaPlatnosci działa w ten sposób niezależnie od zaznaczonego/odznaczonego parametru Automatyczne rozliczenia i rozrachunki dostępnego w Konfiguracji Firmy/Księgowość/Parametry

5.3 Zakładka [Dokumenty]

Na pozycji zapisu księgowego dostępna jest zakładka [Dokumenty]. Na zakładce pokazywane są wszystkie dokumenty powiązane z danym rozrachunkiem. Można podglądnąć nagłówek drugiego dokumentu PK, RK i KOMP. Na pozycji dekretu różnicy kursowej i dekretu kompensaty pokazywane jest powiązanie z nagłówkami dekretów rozliczanych. Jeżeli zapis księgowy różnicy kursowej i/lub zapis księgowy kompensaty powstanie po zaksięgowaniu tych dokumentów z poziomu modułu Kasa/Bank i posiada kilka pozycji to każda z tych pozycji ma widoczne powiązanie z dekretami rozrachunku głównego.
Rys 6. Zakładka [Dokumenty] na pozycji rozliczanego dekretu

5.4 Powiązanie rozliczeń pomiędzy modułami – podgląd

W programie istnieje możliwość podglądu powiązań pomiędzy rozliczeniami prowadzonymi w module Kasa/Bank a rozrachunkami dokonywanymi na kontach księgowych. Jeżeli w Konfiguracji Firmy/ Księgowość/ Parametry wybrano Rodzaj księgowości: Księgowość kontowa oraz w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczono parametr Automatyczne rozliczenia i rozrachunki, po dokonaniu rozliczenia w module Kasa/Bank widoczna jest ikona ,  a po wykonaniu rozrachunku na kontach księgowych w module Księga Handlowa lub Księga Handlowa Plus dostępna jest ikona . Podgląd rozliczeń w module Księga Handlowa lub Księga Handlowa Plus jest dostępny z poziomu:
  • Księgowość/ Rozrachunki/ Rozrachunki, zakładka [Rozrachowane],
  • formularza Polecenia Księgowania oraz formularza BO,
  • formularza dekretu, z każdej zakładki oraz pozycji BO.
Po kliknięciu w ikonę Rozliczeń z poziomu formularza Polecenia Księgowania (dla dekretu podświetlonego) lub z poziomu formularza dekretu (zakładka [Ogólne] lub [Dokumenty]), otwierane jest okno Listy dokumentów rozliczających, na której wyświetlane są wszystkie rozliczenia dokonane w module Kasa/Bank związane z dekretem, z poziomu którego uruchamiamy ikonę Rozliczeń. Klikając w ikonę Rozliczenia z poziomu formularza dekretu, z zakładki Rozrachunki, na Liście dokumentów rozliczających domyślnie widoczne jest rozliczenie związane z podświetlonym dekretem rozrachowującym. Pod listą dostępny jest parametr Pokaż rozliczenia dla całego dekretu. Jego zaznaczenie powoduje wyświetlanie rozliczeń dla całego dekretu. Podglądu rozliczeń można również dokonać z poziomu Księgowość/ Rozrachunki/ Rozrachunki, poprzez kliknięcie w ikonę Rozliczenia w zakładce Rozrachowane co pozwoli na wyświetlenie rozliczeń związanych z podświetlonym rozrachunkiem. Jeżeli dekret nie posiada powiązanych rozliczeń w module Kasa/Bank to po kliknięciu w ikonę rozliczeń pojawia się komunikat: Dekret nie posiada skojarzonych rozliczeń. W przypadku dekretu różnicy kursowej po kliknięciu w ikonę rozliczeń z poziomu:
  • formularza zapisu księgowego różnicy kursowej,
  • Księgowość/ Rozrachunki/ Rozrachunki, zakładka [Rozrachowane], jeżeli na liście podświetlony jest dekret podrzędny różnicy kursowej,
  • formularza dekretu różnicy kursowej, z każdej zakładki,
pojawia się komunikat: Rozrachunek związany z różnicą kursową, nie można podglądnąć rozliczeń. Podgląd rozrachunków w module Kasa/Bank dostępny jest z poziomu:
  • Preliminarza płatności,
  • listy zapisów kasowych/bankowych,
  • formularza zdarzenia w Preliminarzu płatności lub formularza zapisu kasowego/bankowego, z każdej zakładki.
Uwaga
Kolumny na Liście rozrachunków związanych z rozliczeniami: Kwota dekretu wal [symbol waluty] oraz Kwota rozrachunku wal [symbol waluty] są widoczne jeżeli pobrano moduł Księga Handlowa Plus oraz w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczono parametr Obsługa kont walutowych.
Po kliknięciu w ikonę Rozrachunków z poziomu Preliminarza płatności, listy zapisów kasowych/bankowych, formularza zdarzenia w Preliminarzu płatności (za wyjątkiem zakładki Rozliczenia) lub formularza zapisu kasowego/bankowego (za wyjątkiem zakładki Rozliczenia dokumentów), na Liście rozrachunków związanych z rozliczeniami widoczne są wszystkie rozrachunki dokonane na kontach księgowych związane z dokumentem, z poziomu którego uruchamiamy ikonę Rozrachunków. Po kliknięciu w ikonę Rozrachunków z poziomu formularza zdarzenia w Preliminarzu płatności, z zakładki Rozliczenia lub formularza zapisu kasowego/bankowego, z zakładki Rozliczenia dokumentów domyślnie widoczny jest rozrachunek związany z podświetlonym rozliczeniem. Pod listą dostępny jest parametr Pokaż dla całego dokumentu. Jego zaznaczenie powoduje wyświetlanie rozrachunków dla całego dokumentu. Jeżeli dokument nie posiada powiązanych rozrachunków na kontach księgowych to po kliknięciu w ikonę Rozrachunków pojawia się komunikat: Dokument kasowy/bankowy nie posiada skojarzonych rozrachunków.

5.5 Zapisywanie dekretu w momencie dodawania rozrachunku

Aby można było dokonać rozrachunku z poziomu dekretu księgowego, to na moment generowania rozrachunku zapis księgowy musi się bilansować. W przeciwnym wypadku przy próbie dodania rozrachunku (po kliknięciu na ikonę plusa na zakładce Rozrachunki) pojawi się komunikat: Nie można dokonać rozrachunku. Nie można zapisać dokumentu niezbilansowanego. Kwota niezbilansowana XXXX. Jeżeli na dokument polecenia księgowania wprowadzamy zapis powodujący bilansowanie całego PK i od razu dokonujemy jego rozrachowania na zakładce Rozrachunki, to dekrety zostają zapisane do bazy danych już w momencie ich rozrachowania. Po dokonaniu rozrachunku dokument PK pozostaje otwarty i można wprowadzać na nim kolejne dekrety. Rozrachunek zapisuje się do bazy danych w czasie rzeczywistym stąd zamknięcie okna bez zapisywania zmian nie działa. Rozrachunek należy usunąć za pomocą ikony kosza. Jeżeli na dokumencie PK nie uzupełniono pola Numer dokumentu to w momencie próby dokonania rozrachunku po kliknięciu w ikonę plusa pojawia się komunikat: Nie można dokonać rozrachunku. Brak numeru dokumentu na zapisie księgowym.

5.6 Moduły operatora

W przypadku pracy na bazie danych z włączoną opcją automatycznych rozliczeń i rozrachunków podczas rozliczania dokumentów automatycznie dokonywane są rozrachunki, nawet jeśli zalogowany operator który dokonuje rozliczenia nie ma pobranego modułu Księga Handlowa lub Księga Handlowa Plus.
Przykład
Operator1 loguje się tylko na moduł Kasa/Bank, Operator2 loguje się na moduł Kasa/Bank i Księga Handlowa. Jeżeli Operator1 rozlicza płatności w module Kasa/Bank, wówczas automatycznie „w tle” rozrachowują się również odpowiednie dekrety. Operator2 po zalogowaniu na moduł Księga Handlowa i wejściu w Księgowość/ Rozrachunki widzi już te dekrety jako rozrachowane.
Uwaga
W przypadku, gdy firma posiada tylko moduł Księga Handlowa (bez modułu Księga Handlowa Plus) nie można generować automatycznych rozliczeń/rozrachunków walutowych. Automat działa tylko gdy waluta płatności zgadza się z walutą dekretu. Przy próbie rozliczenia dokumentów walutowych, które są zaksięgowane na konta złotówkowe (moduł Księga Handlowa, a nie Księga Handlowa Plus) pojawi się komunikat Wystąpił problem podczas rozrachowywania dokumentów [Dok1] z [Dok2]. Nie wygenerowano rozrachunku - różna waluta rozliczenia [XXX] i dekretu [PLN].

5.7 Data rozliczenia/ rozrachunku

Dokonanie rozrachunku z odpowiednią datą powoduje wygenerowanie rozliczenia w module Kasa/Bank z tą samą datą. Analogicznie dokonanie rozliczenia powoduje wygenerowanie rozrachunku na kontach księgowych z tą samą datą.
Uwaga
Potwierdzenie salda wygenerowane w module Kasa/Bank będzie zgodne z Potwierdzeniem wygenerowanym w module księgowym jeżeli data zdarzenia w Preliminarzu płatności będzie taka sama jak data księgowania dokumentu. W sytuacji, gdy w Konfiguracji Firmy/ Kasa/Bank/ Daty dokumentów wskazana zostanie data inna niż data wpływu lub wystawienia to mogą wystąpić różnice pomiędzy Potwierdzeniami sald generowanymi w obydwu modułach.
Jeżeli w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków to na formularzu okresu obrachunkowego (Konfiguracja Firmy/ Księgowość/ Okresy obrachunkowe) należy wskazać dzienniki księgowań oraz daty księgowania dla dekretu różnicy kursowej oraz dekretu kompensaty. Data księgowania domyślnie ustawiana jest jako data rozrachunku, która jest pobierana z Konfiguracji Firmy/ Księgowość/ Księgowość kontowa, parametr Data rozrachunku jako późniejsza z dat. Jeżeli na formularzu okresu obrachunkowego wskazana jest data rozrachunku to podczas księgowania dokumentów rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów rozrachunek oraz dekret różnicy kursowej i /lub kompensaty generowane są z datą rozliczenia powstałego w module Kasa/Bank. Jeżeli na formularzu okresu obrachunkowego wskazana jest data bieżąca to podczas księgowania dokumentów rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów rozrachunek generowany jest z datą rozliczenia powstałego w module Kasa/Bank natomiast dekret różnicy kursowej i /lub kompensaty generowany jest z datą bieżącą. Podczas generowania rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki [Rozrachunki] dekret różnicy kursowej i /lub kompensaty generowany jest z datą wskazaną na formularzu okresu obrachunkowego natomiast rozliczenie w module Kasa/Bank generowane jest z datą rozrachunku.
Uwaga
Jeżeli data rozrachunku/bieżąca jest spoza bieżącego okresu obrachunkowego wówczas dekret różnicy kursowej i/lub kompensaty zostanie wygenerowany na pierwszy dzień okresu ustawionego jako bieżący.
Poniższa tabelka pokazuje jaka data jest ustawiana jako data rozliczenia/ rozrachunku oraz jako data różnicy kursowej i kompensaty w zależności od ustawień w Konfiguracji Firmy/ Księgowość/ Okresy obrachunkowe na formularzu okresu obrachunkowego.
Uwaga
Jeżeli usuniemy rozrachunek, a nie usuniemy rozliczenia (na pytanie Zaznaczone rozrachunki są połączone z rozliczeniami. Czy usunąć rozliczenia? odpowiemy Nie), a następnie ponownie rozrachujemy dekrety, to rozrachunek utworzy się z datą ustawioną w Konfiguracji Firmy/ Księgowość/Księgowość kontowa, parametr Data rozrachunku jako późniejsza z dat, a nie z datą rozliczenia.
Księgowanie dokumentów rozliczonych wcześniej w module Kasa/Bank lub rozliczanie w module Kasa/Bank zaksięgowanych wcześniej dokumentówGenerowanie rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki [Rozrachunki]
Data księgowania RK/KOMP w Konfiguracji jako data ROZRACHUNKU
data rozrachunku = data rozliczenia
data dekretu RK/KOMP = data rozliczenia

data rozliczenia = data rozrachunku
data dekretu RK/KOMP = data rozrachunku
Data księgowania RK/KOMP w Konfiguracji jako data BIEŻĄCA
data rozrachunku = data rozliczenia
data dekretu RK/KOMP = data bieżąca

data rozliczenia = data rozrachunku
data dekretu RK/KOMP = data bieżąca

5.8 Praca rozproszona – import rozliczeń

Funkcjonalność automatycznych rozliczeń i rozrachunków działa również w przypadku importu dokumentów i rozliczeń przez pracę rozproszoną. W momencie importu rozliczeń do zaksięgowanych już dokumentów nastąpi automatyczne rozrachowanie dekretów.
  • Przypadek, gdy dokumenty w bazie docelowej są zaksięgowane i nierozliczone
Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, są już zaksięgowane ale jeszcze nierozliczone/ nierozrachowane. Następnie pracą rozproszoną importujemy rozliczenia. Po zaimportowaniu w module Kasa/Bank następuje rozliczenie zdarzeń z zapisami bankowymi, automatycznie nastąpi też rozrachowanie odpowiadających im dekretów. Dodatkowo, gdy importowane rozliczenie dotyczy zapisów walutowych z różnymi kursami lub gdy jest to kompensata, oprócz automatycznego rozrachowania wygenerowane zostaną też dekrety Różnicy kursowej i Kompensaty. Powstanie dekretu RK i/lub KOMP uzależnione jest od parametru Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków dostępnego w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa.
  • Przypadek, gdy dokumenty w bazie docelowej są zaksięgowane i rozliczone
Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, są już zaksięgowane i rozrachowane. Następnie pracą rozproszoną importujemy rozliczenia. Operacja nie powiedzie się, gdyż w bazie docelowej dokumenty są już rozliczone (w momencie rozrachowania dekretów nastąpiło automatyczne rozliczenie). W logu z przebiegu importu pojawi się komunikat Wystąpił błąd przy imporcie składnika. Rozliczenie niemożliwe. Dokument [Dok1] jest już rozliczony. Wyjątkiem jest sytuacja, gdy rozrachowane dekrety miały zaznaczony parametr Bez rozliczenia w K/B. W takim przypadku w momencie rozrachowywania dekretów nie nastąpiło automatyczne rozliczenie (więcej informacji na temat działania tego parametru znajduje się w rozdziale Rozrachunek bez rozliczenia w K/B). Wówczas w momencie importu rozliczeń pracą rozproszoną import się powiedzie.
  • Przypadek, gdy dokumenty w bazie docelowej nie są zaksięgowane
Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, które nie są jeszcze zaksięgowane.
Następnie pracą rozproszoną importujemy rozliczenia, dokumenty zostają więc rozliczone. Jeżeli później zaksięgujemy dokumenty, automatycznie nastąpi rozrachowanie dekretów.

5.9 Filtry i operacje seryjne

W celu dodatkowego ułatwienia i przyspieszenia pracy pewne operacje można wykonywać seryjnie.
  • Zaznacz/Odznacz rozrachunek
Z poziomu Księgowość/ Dzienniki/ zakładka [Konto] oraz na formularzu bilansu otwarcia (Księgowość/ Inne/ Dokumenty BO) jest możliwość seryjnego zaznaczenia/odznaczenia parametru Rozrachunek dla wybranych dekretów księgowych/ pozycji bilansu otwarcia poprzez wybór opcji z menu kontekstowego Zaznacz rozrachunek/Odznacz rozrachunek.
  • Ustaw/Odznacz rozrachunek bez rozliczenia w K/B
Z poziomu Księgowość/ Plan kont jest możliwość seryjnego zaznaczenia/odznaczenia parametru Rozrachunek bez rozliczenia w K/B dla zaznaczonych kont księgowych poprzez wybór opcji Ustaw/Odznacz rozrachunek bez rozliczenia w K/B dostępnej w menu kontekstowym oraz pod ikoną operacji seryjnych.
  • Kompensaty bez rozrachunku
Z poziomu Księgowość/ Dzienniki w filtrze pod listą dostępny jest parametr Kompensaty bez rozrachunku. Po jego zaznaczeniu wyświetlone zostaną dekrety kompensat, które nie zostały automatycznie usunięte przy usuwaniu rozrachunków, ze względu na to że były zatwierdzone na czysto i/lub znajdowały się w okresie obrachunkowym innym niż bieżący i/lub Użytkownik usuwający rozrachunek miał zakaz do usuwania dekretów z dziennika, w którym znajduje się dekret kompensaty.  

6. Nie działa automatyczne rozliczanie/rozrachowywanie – dlaczego?

Jeżeli rozliczamy dokumenty, a mimo to nie nastąpiło automatyczne rozrachowanie dekretów, a także odwrotnie: rozrachowanie nie spowodowało automatycznego rozliczenia, może to wynikać z kilku powodów (wynikających zarówno z zamierzonego działania funkcjonalności, jak i z błędnego skonfigurowania programu).
Na samym początku należy więc sprawdzić:
  • Parametr w konfiguracji
Należy sprawdzić, czy w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Automatyczne rozliczenia i rozrachunki. Parametr musi być zaznaczony, aby działało automatyczne rozliczanie i rozrachowywanie.
  • Schematy księgowe
Należy sprawdzić czy schemat wykorzystywany do księgowania dokumentu jest zdefiniowany prawidłowo. Aby zadziałał mechanizm automatycznych rozliczeń i rozrachunków:
  • w elemencie schematu księgowego musi być zaznaczony parametr Rozrachunek
  • w Kwocie ma być odwołanie do makra @KwotaPlatnosci (na pozycji schematu należy wybrać Kwota/ Płatności/ Kwota płatności).
Jeżeli powyższe opcje są poprawnie skonfigurowane, a mimo to nie działa funkcjonalność automatycznych rozliczeń i rozrachunków, należy jeszcze sprawdzić przypadki wymienione w kolejnych podrozdziałach.

6.1 Sytuacje, w których automat nie zadziała

W niżej wymienionych przypadkach funkcjonalność automatycznych rozliczeń i rozrachunków nie zadziała. Nie pojawią się dodatkowe komunikaty, gdyż funkcjonalność ta wynika z przyjętych w programie zasad działania automatycznych rozliczeń/rozrachunków.

6.1.1 Parametr Rozrachunek

Na dekretach powstałych z księgowania schematem musi być zaznaczony parametr Rozrachunek. Aby funkcjonalność zadziałała dla pozycji bilansu otwarcia i/lub dla dekretów ręcznie wprowadzanych z poziomu Księgowość/ Dzienniki ważne jest, aby były na nich zaznaczone parametry Rozrachunek i Generowanie płatności.

6.1.2 Rozrachunek bez rozliczenia w K/B

Mogą zdarzyć się sytuacje, w których nie chcemy aby rozliczenie dokumentów powodowało automatyczne rozrachowanie ich dekretów (i analogicznie w drugą stronę: aby rozrachowanie spowodowało automatyczne rozliczenie). Można w takich sytuacjach wykorzystać parametr Bez rozliczenia w K/B. Na pozycji zapisu księgowego można zaznaczyć parametr Bez rozliczenia w K/B. Jest on dostępny jeżeli w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Automatyczne rozliczenia i rozrachunki. Parametr na pozycji zapisu księgowego zostanie zaznaczony automatycznie w sytuacji, gdy konto wybrane na dekrecie ma na swoim formularzu w planie kont zaznaczony parametr Rozrachunek bez rozliczenia w K/B. Parametr podlega edycji. Parametr dostępny jest również na formularzu dokumentu BO. W przypadku pozycji BO należy najpierw zaznaczyć parametr Rozrachunek. Po jego zaznaczeniu przenoszą się ustawienia z formularza konta. Parametr podlega edycji. W przypadku dekretu z parametrem Bez rozliczenia w K/B przy rozrachowywaniu dekretów na kontach księgowych nie następuje automatyczne rozliczenie w module Kasa/Bank. Analogicznie po rozliczeniu dokumentów w module Kasa/Bank nie następuje automatyczne rozrachowanie odpowiadających im dekretów.
Rozrachunek dekretu z parametrem Rozrachunek bez rozliczenia w K/B
  • Rozrachowanie dekretów jeżeli płatności w module Kasa/Bank nie są rozliczone
Jeżeli jeden lub oba dekrety biorące udział w rozrachunku mają zaznaczony parametr Bez rozliczenia w K/B to podczas rozrachowania tych dekretów dokonuje się rozrachunek, powstaje ewentualny dekret różnicy kursowej i/lub dekret kompensaty (jeżeli w Konfiguracji jest zaznaczony parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków), ale nie następuje rozliczenie płatności w module Kasa/Bank.
  • Rozrachowanie dekretów jeżeli płatności module Kasa/Bank są rozliczone
Jeżeli jeden lub oba dekrety biorące udział w rozrachunku mają zaznaczony parametr Bez rozliczenia w K/B to podczas rozrachowania tych dekretów dokonuje się rozrachunek, powstaje ewentualny dekret różnicy kursowej i/lub kompensaty (jeżeli w Konfiguracji jest zaznaczony parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków), ale nie następuje powiązanie rozrachunku z wygenerowanym wcześniej rozliczeniem. Jeżeli płatności w module Kasa/Bank zostały rozliczone oraz w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest odznaczony lub Użytkownik rezygnuje z tych dokumentów podczas generowania rozrachunku to istnieje możliwość wskazania do rozrachunku dokumentu różnicy kursowej zaksięgowanego w module Kasa/Bank. Dekret kompensaty powstały w module Kasa/Bank nie zostanie podłączony do rozrachunku. Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest zaznaczony, a dokument różnicy kursowej i/lub dokument kompensaty wygenerowany w module Kasa/Bank nie jest zaksięgowany to nie będzie powiązania pomiędzy tymi dokumentami.
  • Rozrachowanie dekretów w momencie księgowania jeśli płatności w module Kasa/Bank są rozliczone
Jeżeli płatności w module Kasa/Bank zostały rozliczone i Użytkownik księguje drugi dokument, do którego tworzy się dekret z zaznaczonym parametrem Bez rozliczenia w K/B (lub parametr został zaznaczony na dekrecie powstałym do pierwszego dokumentu) to podczas księgowania nie tworzy się rozrachunek.

6.1.3 Storno zapisu księgowego

Podczas generowania storna dekretów rozliczonych i rozrachowanych następuje usunięcie rozrachunku, natomiast rozliczenie w module Kasa/Bank nie jest usuwane. Jeżeli ze stornowanym dekretem jest powiązany dekret różnicy kursowej i/lub kompensaty to rozrachunki również są usuwane, ale sam dekret RK i/lub KOMP pozostaje.
Przykład
Mamy dwa dokumenty, np. fakturę sprzedaży i fakturę zakupu, zaksięgowane (powstały dekrety Dek1 i Dek2), zarówno rozliczone jak i rozrachowane. Powstał do nich dekret kompensaty. Dekrety są już zatwierdzone. Następnie wykonujemy storno dekretu Dek1. Pojawia się komunikat „Zapis księgowy posiada rozliczone dekrety. Po wykonaniu storna rozrachunki zostaną usunięte. Czy wykonać storno dekretu księgowego?”. Po jego zaakceptowaniu pojawia się informacja „Rozliczenie nie zostało usunięte. Z rozrachunkiem związany jest dekret kompensaty [KOMPK/1/2015]. Dekrety należy usunąć ręcznie”. W efekcie rozrachunki między dekretami Dek1 i Dek2 zostały usunięte, natomiast w module Kasa/Bank dokumenty są ciągle rozliczone. Na liście zapisów księgowych ciągle jest widoczny zapis związany z kompensatą, który należy usunąć ręcznie jeżeli znajduje się w buforze lub dokonać storna jeżeli dekret kompensaty jest już zatwierdzony. Jeżeli ponownie zaksięgujemy odksięgowany dokument (tzn. fakturę, której dekret został wcześniej wystornowany) nastąpi automatyczne rozrachowanie nowego dekretu z dekretem Dek2. Powstanie również powiązanie rozrachunków z rozliczeniami. Utworzony zostanie dekret kompensaty, który będzie powiązany z kompensatą w module Kasa/Bank.

W przypadku stornowania dekretu powiązanego z różnicą kursową program działa analogicznie, jak w wyżej opisanym przykładzie dot. kompensaty.

Uwaga
Podczas generowania storna dekretów rozliczonych następuje usunięcie rozrachunku między dekretami, natomiast rozliczenie w module Kasa/Bank pozostaje

6.1.4 Dokument kompensaty

Funkcjonalność automatycznych rozliczeń i rozrachunków i automatyczne wiązanie dekretu kompensaty z dokumentem z modułu Kasa/Bank działa dla kompensat widocznych z poziomu Kasa/Bank/ Dokumenty rozliczone, a nie dla Dokumentów kompensat z poziomu Kasa/Bank/ Dokumenty kompensat.

6.1.5   Bilans otwarcia na podstawie preliminarza i kasy

Funkcjonalność automatycznych rozliczeń i rozrachunków nie działa dla pozycji bilansu otwarcia generowanych w oparciu o płatności w Preliminarzu płatności (tzn. w sytuacji, gdy w pierwszym okresie obrachunkowym najpierw wprowadzamy płatności do modułu Kasa/Bank, a następnie z poziomu Księgowość/ Inne/ Dokumenty BO na formularzu BO naciskamy na ikonę Inicjalizuj b.o. na podstawie preliminarza i kasy oraz na tak wygenerowanych pozycjach zaznaczamy parametr Rozrachunek to pomimo późniejszego rozrachowania takich pozycji bilansu nie nastąpi rozliczenie płatności – i analogicznie: rozliczenie płatności nie spowoduje rozrachowania dekretów).

6.2 Możliwe komunikaty

6.2.1 Różna waluta rozliczenia i dekretu

Komunikat Nie wygenerowano rozrachunku/rozliczenia - różna waluta rozliczenia [XXX] i dekretu [PLN] pojawia się w sytuacji, gdy dokumenty walutowe zostały zaksięgowane na konta złotówkowe. W takiej sytuacji nie ma możliwości automatycznego rozliczania i rozrachowywania.
Przykład
Mamy dwa dokumenty walutowe Dok1 i Dok2, oba zaksięgowane na konta złotówkowe. W module Kasa/Bank rozliczamy je ze sobą, pojawia się komunikat „Wystąpił problem podczas rozrachowywania dokumentów [Dok1] z [Dok2]. Nie wygenerowano rozrachunku - różna waluta rozliczenia [EUR] i dekretu [PLN].”. Rozliczenie dokumentów się udaje, natomiast dekrety Dek1 i Dek2 nie zostają automatycznie rozrachowane. Analogicznie w drugą stronę: Mamy dwa dokumenty walutowe Dok1 i Dok2, oba zaksięgowane na konta złotówkowe. Z poziomu Księgowość/ Rozrachunki lub z poziomu zapisu księgowego rozrachowujemy oba dekrety, pojawia się komunikat „Wystąpił błąd podczas rozliczania dokumentów kasowych/bankowych. Nie wygenerowano rozliczenia - różne waluty rozliczenia i dekretu.”. Dekrety zostają rozrachowane, natomiast płatności w Kasa/Bank nie są automatycznie rozliczane.

6.2.2 Dokument, który nie podlega rozliczeniu

Komunikat Rozliczenie niemożliwe. Dokument [NR DOKUMENTU] nie podlega rozliczeniu pojawia się w sytuacji, kiedy próbujemy rozrachować dekrety do dokumentów, z których przynajmniej jeden ma na płatności ustawiony status: nie podlega rozliczeniu.
Przykład
Mamy dwa dokumenty Dok1 i Dok2, oba zaksięgowane. W preliminarzu płatności zmieniamy płatności do dokumentu Dok1 na: nie podlega. Następnie rozrachowujemy dekrety Dek1 z Dek2, pojawia się komunikat „Wystąpił błąd podczas rozliczania dokumentów kasowych/bankowych. Rozliczenie niemożliwe. Dokument [Dok1] nie podlega rozliczeniu.”. W efekcie dekrety Dek1 i Dek2 zostają rozrachowane, ale nie ma powiązania z rozliczeniami w module Kasa/Bank (status płatności się nie zmienia)

6.2.3 Księgowanie po złej stronie konta

Komunikat Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta pojawia się w sytuacji, kiedy dokument jest księgowany po złej stronie konta, a w związku z tym nie można go automatycznie rozrachować z odpowiednimi dokumentami.
Przykład
Mamy np. fakturę sprzedaży, zaksięgowaną, wygenerowany został rozrachunek. Następnie rozliczamy ją z zapisem kasowym. Później księgujemy raport kasowy, ale schemat księgowy jest błędnie zdefiniowany i zapis KP trafia na właściwe konto rozrachunkowe, ale po złej stronie (a w związku z tym nie można go automatycznie rozrachować z dekretem do faktury). Samo księgowanie raportu się udaje, ale w logu z przebiegu księgowania, na końcu, mamy informację Wystąpił problem podczas rozrachowywania dokumentów [KP/1/2015/KASA] z [FS/1/2015]. Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta.
Przykład
Parametr „Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków” w Konfiguracji jest niezaznaczony. Mamy dwa dokumenty walutowe Dok1 i Dok2, z różnymi kursami. Oba są zaksięgowane. Następnie je rozliczamy, powstaje więc różnica kursowa widoczna w Kasa/Bank/ Różnice kursowe. Następnie księgujemy różnicę kursową, jednak schemat jest błędnie zdefiniowany i RK jest księgowana po złej stronie konta, a w związku z tym nie można jej automatycznie rozrachować z dekretami dokumentów Dok1 i Dok2. Samo księgowanie różnicy kursowej się udaje, ale w logu z przebiegu księgowania, na końcu, mamy informację BŁĄD ROZRACHOWYWANIA DOKUMENTU (RKUR/1/2015/EUR) Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta.

6.2.4 Rozrachunek na kwotę większą niż pozostająca do rozliczenia

Komunikat Nie można dokonać rozliczenia w module Kasa/Bank ponieważ kwota rozliczenia jest większa niż kwota pozostająca do rozliczenia. Rozrachunek został wygenerowany oznacza, że kwota jaką próbujemy rozrachować jest większa, niż kwota pozostała do rozliczenia na płatności powiązanej z rozrachowywanym dekretem. W takiej sytuacji dekrety zostaną rozrachowane, natomiast nie zmieni się stan rozliczeń w module Kasa/Bank.

Przykład
Mamy dwa dokumenty Dok1 i Dok2 na kwotę 100PLN. Dokument Dok1 jest nierozliczony (N), Dok2 jest częściowo rozliczony z innym dokumentem (C). Oba dokumenty zostały zaksięgowane, powstały dekrety Dek1 i Dek2. Następnie generujemy rozrachunek między Dek1 a Dek2. Pojawia się komunikat „Wystąpił błąd podczas rozliczania dokumentów kasowych/bankowych. Nie można dokonać rozliczenia w module Kasa/Bank ponieważ kwota rozliczenia jest większa niż kwota pozostająca do rozliczenia. Rozrachunek został wygenerowany.” W efekcie dekrety Dek1 i Dek2 zostają rozrachowane, natomiast stan rozliczeń w module Kasa/Bank się nie zmienia.
 
 

OPT070 - Formaty elektronicznej wymiany danych z bankiem (eksport/ import przelewów)

Data aktualizacji: 06-07-2022

O Elektronicznej Wymianie Danych

Program Comarch ERP Optima umożliwia zarówno import zrealizowanych przelewów bankowych do programu z pliku dostarczonego przez bank, jak i eksport poleceń przelewu do pliku, który następnie można zaczytać w aplikacji bankowej. Oprócz eksportu/importu przelewów poprzez pliki istnieje również możliwość wymiany danych bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową a Comarch ERP Optima.

Jak wykonać import poleceń przelewu?

W celu zaimportowania zapisów z pliku z banku należy wejść w Kasa/Bank/ Zapisy kasowe/bankowe, następnie w polu Rejestr wybrać odpowiedni rejestr bankowy i w polu Raport odpowiedni raport, do którego ma być wykonany import zapisów oraz nacisnąć na ikonę „Importuj polecenia przelewu. Po naciśnięciu na ikonę „Importuj polecenia przelewu” pojawi się okno „Import przelewów”, w którym należy uzupełnić następujące dane:
  1. Format wymiany – z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku uzyskanego z banku; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący.
  2. Plik źródłowy – należy wskazać właściwy plik do zaczytania. Służy do tego ikona  (pole pokazuje ścieżkę dostępu do pliku, z którego wykonywany jest import)
  3. Definicja KP – symbol numeracji dla dokumentów typu przychód
  4. Definicja KW – symbol numeracji dla dokumentów typu rozchód
Jeżeli jako format wymiany wybierzemy format MT940 pojawią się 2 dodatkowe parametry:
  • Dodawaj zapisy dotyczące innych rachunków – wyciąg w formacie MT-940 może zawierać dane dotyczące wielu rachunków, jednak jest on importowany do raportu dotyczącego jednego rejestru, czyli jednego rachunku bankowego. W związku z tym istnieje możliwość zaznaczenia parametru Dodawaj zapisy dotyczące innych rachunków. Jeżeli przed importem zaznaczymy parametr, zostaną wczytane wszystkie przelewy znajdujące się w importowanym pliku. Jeżeli parametr będzie odznaczony ‑ zaimportowane zostaną tylko przelewy powiązane z rachunkiem dotyczącym rejestru, do którego importowane są dane.
  • Strona kodowa – określenie strony kodowej – wybór spośród następujących możliwości: Windows (1250), Latin II, iso-8859-2, Mazovia, UTF8 (ustawienie właściwego kodowania ma wpływ na prawidłowe rozpoznawanie polskich znaków przy imporcie).
Po uzupełnieniu wszystkich pól należy nacisnąć na ikonę  aby wczytać plik. Po wczytaniu pliku, tabela tymczasowa wypełniana jest informacjami odczytanymi z pliku. Pozycje znajdujące się w tabeli nie podlegają edycji. Import zapisów do bazy następuje po naciśnięciu na ikonę Uruchom import.
Uwaga
Identyfikacja podmiotu odbywa się w pierwszej kolejności po Akronimie podmiotu oraz w drugiej kolejności po numerze rachunku bankowego (taki numer jaki jest w przelewie w pliku musi być wpisany na karcie kontrahenta, na zakładce [Płatności]). Jeżeli kontrahent nie zostanie rozpoznany zapis trafia na !Nieokreślonego!

Jak wykonać eksport poleceń przelewu do pliku?

W celu wyeksportowania poleceń przelewu do pliku, który następnie można zaczytać w aplikacji bankowej, należy wejść w Kasa/Bank/ Preliminarz płatności, w polu Rejestr wybrać odpowiedni rejestr bankowy, z którego ma być wykonany eksport i nacisnąć na ikonę  Eksportuj polecenia przelewu. Aby ikona Eksportuj polecenia przelewu była aktywna w polu Rejestr musi być wybrany rejestr bankowy i lista wyświetlanych zapisów musi być zawężona do pozycji nierozliczonych i/lub rozliczonych częściowo  (należy odznaczyć opcje Rozliczone: Całkowicie i Nie podlega). Dodatkowo można zaznaczyć parametr "Przelewy do wysłania", co spowoduje zawężenie listy tylko do tych zdarzeń, które mogą zostać wysłane do banku. Przelewy do wysłania muszą mieć:
  • status nierozliczone lub częściowo rozliczone,
  • stan zatwierdzone do realizacji,
  • kierunek przepływu – rozchód,
  • poprawnie wypełnione pola podmiot, bank oraz numer rachunku podmiotu.
Po naciśnięciu na ikonę  Eksportuj polecenia przelewu pojawia się okno Eksport przelewów do pliku, w którym należy uzupełnić następujące dane: 1. Eksport poleceń - do wyboru eksport tylko zaznaczonych lub wszystkich zatwierdzonych do realizacji 2. Format wymiany - z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku, jaki zaczytuje bank; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący. Domyślnie podpowiadany jest format, który jest przypisany jako domyślny dla banku związanego z rejestrem, z którego wykonywany jest eksport (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów zwykłych). 3. Format wymiany dla MPP – rozwijalna lista ze zdefiniowanymi w programie formatami eksportu przelewów. Program proponuje format, który został wskazany na formularzu banku, do którego przygotowujemy zlecenie przelewów. Wskazane formaty wymiany powinny mieć ten sam rodzaj. Nie wykonamy eksportu jeśli jeden z formatów będzie typu webservice a drugi nie. Rodzaje formatów wymiany muszą być z sobą zbieżne. Jeśli w danej organizacji nie stosujemy metody podzielonej płatności nie ma konieczności wskazywania formatu wymiany dla Mechanizmu podzielonej płatności. 
Uwaga
Mechanizm eksportu działa w taki sposób, że program próbuje wysyłać 3 rodzaje przelewów za każdym razem (przelewy zwykłe, do US i do ZUS), a do każdego z takich przelewów wymagana jest inna struktura plików, stąd inny format wymiany. W polu Format wymiany wybierany jest format dla przelewów zwykłych, natomiast format służący do eksportu przelewów do ZUS i US pobierany jest z karty banku związanego z rejestrem (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów do US/ ZUS).
4. Katalog docelowy – należy wskazać katalog, w którym ma być zapisany plik z przelewami 5. Nazwa pliku – nazwa pliku, do którego chcemy wyeksportować zdarzenia 6. Dopisz do pliku – możliwość dopisania przelewów do już istniejącego pliku. Aby dopisać przelewy do pliku należy zaznaczyć parametr, a następnie w polu Plik docelowy wskazać plik, do którego informacje powinny być dopisane. Jeśli podczas eksportu przelewów wskażemy istniejący plik i nie zaznaczymy parametru Dopisz do pliku ‑ spowoduje to wykasowanie dotychczasowej zawartości pliku i nadpisanie nowych informacji. 7. Data przelewu - domyślnie wybrana jest data realizacji, istnieje również możliwość wybrania terminu płatności, daty bieżącej lub innej - z możliwością wpisania daty. Data wybrana w polu Data przelewu zostanie zapisana w eksportowanym pliku, jeżeli w formacie wymiany znajduje się pozycja Data operacji. (Jeżeli w formacie jest wybrana „Data dokumentu” eksportowana jest zawsze data dokumentu ze zdarzenia w preliminarzu płatności.) 8. Aktualizuj przy eksporcie informacje na zdarzeniach - zaznaczenie tego parametru powoduje, iż informacje Opis do banku pobierane są bezpośrednio z deklaracji DRA i dodatkowo aktualizowane są również na zdarzeniu w Preliminarzu. Odznaczony parametr sprawia, iż informacje do pliku pobierane są ze zdarzenia w Preliminarzu. 9. Przelewy zbiorczo dla poszczególnych podmiotów - zaznaczenie parametru spowoduje, iż w momencie eksportu kilku zdarzeń dla tego samego podmiotu w pliku powstanie jeden zbiorczy przelew na tego kontrahenta, na łączną kwotę. Przelewy te zostaną pogrupowane według podmiotu, numeru rachunku bankowego oraz waluty.
  • Grupuj wg dat- po zaznaczeniu tej opcji utworzonych zostanie tyle zbiorczych przelewów, ile jest różnych dat (terminów płatności/ dat realizacji/ dat dokumentu).
  • Eksportuj wszystkie linie opisu do banku- zaznaczenie tego parametru spowoduje, że w zbiorczym przelewie będziemy starali się umieścić wszystkie uzupełnione linie opisu do banku odczytane z agregowanych przelewów.
  • Dziel przelewy wg długości opisu- zaznaczenie tego parametru spowoduje, że program utworzy dla danego podmiotu kilka przelewów zbiorczych, przy czym na każdym z nich będzie umieszczony pełny opis do banku z przelewów cząstkowych. Może on być stosowany razem z pozostałymi parametrami dotyczącymi przelewów zbiorczych.
10. Wysyłaj przelewy w jednym pliku – zaznaczenie tego parametru powoduje, że wysyłając kilka przelewów tworzymy jeden plik xml, w którym zapisujemy wszystkie pojedyncze przelewy. Jeśli parametr nie jest zaznaczony to każdy z tych przelewów zapisywany jest w osobnym pliku. Parametr dostępny do zaznaczenia przy eksporcie do plików XML oraz webservice.   Eksport przelewów do pliku następuje po naciśnięciu na ikonę  Uruchom eksport.

Tworzenie formatów przelewów

Formaty wykorzystywane przy imporcie/eksporcie przelewów dostępne są w menu Ogólne/ Inne/ Formaty przelewów. Z tego poziomu można zarówno dodawać nowe, jak i modyfikować istniejące formaty - Użytkownik może sam zdefiniować format w oparciu o informacje dostarczane przez bank. Aby skopiować format należy go zaznaczyć (podświetlić) na liście, a następnie wcisnąć <CTRL>+<INSERT> lub <CTRL> i ikona plusa, a następnie zapisać.
Uwaga
Program umożliwia import przelewów z plików MT940, jednak jest to mechanizm zaszyty w programie, nie ma możliwości jego edycji/ modyfikacji, stąd też te formaty nie są dostępne na liście formatów przelewów.

Tworzenie formatów – informacje ogólne

Dodanie nowego formatu otwiera okno Format elektronicznej wymiany danych z bankami, składające się z czterech zakładek: [Ogólne], [Nagłówek], [Pozycje], [Stopka].
Uwaga
Przy tworzeniu nowego/dostosowywaniu istniejącego formatu przelewów należy zwrócić uwagę na to, aby wszystkie ustawienia były zgodne z dokumentacją banku (ze strukturą plików wyeksportowanych z banku/ do zaimportowania do aplikacji bankowej).

Zakładka [Ogólne]

Zakładka ta zawiera parametry wspólne dla wszystkich pozycji definiowanego formatu. Poszczególne pola należy uzupełnić zgodnie z wymaganiami banku, np. w oparciu o przykładowe pliki z przelewami lub dokumentację banku opisującą strukturę takich plików.
  1. Nazwa formatu - nazwa, która będzie widoczna na liście dostępnych do wyboru formatów – zarówno na formatce banku, jak i na formatce eksportu/importu. Pole obowiązkowe.
  2. Format do - informacja o tym czy dany format będzie wykorzystywany przy eksporcie przelewów, imporcie wyciągów bankowych lub będzie służył do eksportu i importu. Jedno z pól musi być zaznaczone.
  3. Rozszerzenie pliku - należy podać rozszerzenie pliku udostępnianego/ wymaganego przez bank, np. csv, txt, pli.
  4. Kodowanie - określenie strony kodowej dokumentu; do wyboru są opcje: Windows (1250), Latin II, ISO 8859-2, Mazovia, UTF8 i Flat (bez polskich znaków)
  5. Oddzielaj pola - jeżeli parametr jest odznaczony oznacza to, że format nie posiada separatorów pól. Zazwyczaj jednak w plikach są separatory pól, a w taki przypadku parametr należy zaznaczyć.
  6. Separator pól - wybór znaku, którym są od siebie oddzielane poszczególne pola w pliku, np. przecinek (,), spacja, Tab, Enter. Oprócz wyboru z dostępnej listy istnieje również możliwość ręcznego wpisania np. średnika (;) czy pipe (|)
  7. Separator wierszy - wybór znaku końca wiersza, którym są od siebie oddzielane poszczególne wiersze w pliku. Najczęściej jest to „<Enter>”. Oprócz wyboru z dostępnej listy (spacja, przecinek (,), Tab, Enter) istnieje również możliwość ręcznego wpisania innego separatora. Obsługiwany jest również import z pliku ze znacznikiem końca wiersza w formacie Unix (LF). W przypadku wybrania w formacie, jako separator wiersza <ENTER>, program automatycznie rozpozna odpowiednią sekwencję CR+LF czy LF.
  8. Ograniczniki tekstu - pola tekstowe w pliku będą otaczane tym znakiem, najczęściej jest nim cudzysłów.
  9. Zamiana ograniczników w tekście na - pole aktywne po zaznaczeniu „Ograniczniki tekstu". Jeżeli pola tekstowe są otaczane znakiem ogranicznika tekstu np. cudzysłowem to cudzysłów wpisany w środku pola zostanie zamieniony na znak wpisany w tym polu.
  10. Zmienna szerokość pola - parametr należy zaznaczyć, jeżeli szerokość pól w pliku jest zmienna (poszczególne pola są różnej długości). Zazwyczaj parametr powinien być zaznaczony.
  11. Format daty - określenie formatu daty, w jakim jest ona zapisywana w pliku. Oprócz wyboru z dostępnej listy (DD-MM-RR, DD-MM-RRRR, RR-MM-DD, RRRR-MM-DD, RRRRMMDD, DD/MM/RR, MM/RR/DD) istnieje również możliwość ręcznego wpisania np. DD/MM/RRRR.
  12. Separator dziesiętny - znak jakim w pliku oddzielana jest część całkowita od części ułamkowej liczby, np. złoty od groszy. Do wyboru: kropka (.), przecinek (,) i puste (brak separatora).
  13. Separator dziesiętny dla kwoty VAT - znak jakim w pliku oddzielana jest część całkowita od części ułamkowej liczby w kwocie VAT. Do wyboru: kropka (.), przecinek (,) i puste (brak separatora). Domyślnie ustawiony jest przecinek.
  14. Separator tysięcy - separator grupujący. Dostępne opcje do wyboru to: puste (brak separatora), kropka (.), przecinek (,).
  15. Sekwencja podziału pola na części - to znak, który jest używany w celu oddzielenia poszczególnych części w ramach danego pola. Wykorzystywany głównie w formatach służących do eksportu, np. w polach z opisem do banku.
  16. Separator w opisie przelewów zbiorczych - parametr ma znaczenie przy zbiorczym eksporcie przelewów. Oprócz wyboru z dostępnej listy (spacja, średnik (;), przecinek (,)) istnieje również możliwość ręcznego wpisania innego separatora.

Zakładki [Nagłówek] i [Stopka]

W przypadku, gdy plik importowany przez Użytkownika posiada nagłówek niezbędne jest odpowiednie uzupełnienie zakładki. Jeżeli w pliku nie ma nagłówka, zakładka powinna pozostać pusta. Jako każdą z pozycji można wybrać „Stałą wartość”. Należy tylko zwrócić uwagę, aby ilość pozycji odpowiadała ilości pól w nagłówku w pliku oraz odpowiednio ustawić typ: Tekst (dla pól zapisanych w ograniczniku tekstu, np. w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu).
Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany, przed wykonaniem importu niezbędna jest modyfikacja pliku.
Uwaga
Format służący do importu nie może zawierać stopki. W przypadku gdy w pliku z banku jest stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku.

Zakładka [Pozycje]

Na tej zakładce definiujemy poszczególne pozycje formatu. Bardzo ważne jest, aby ilość pozycji zgadzała się z ilością pól przelewu w pliku z banku. Należy także zachować odpowiednią kolejność pozycji oraz ustawić prawidłowy Typ pozycji: Tekst (dla pól zapisanych w ograniczniku tekstu, np. w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu). Jeżeli liczba pozycji formatu, ich kolejność czy typ nie będą się zgadzać z tym co jest zapisane w pliku z banku, import przelewów do programu się nie powiedzie. Podobnie w przypadku eksportu przelewów z programu do pliku i próbie zaczytania ich w aplikacji bankowej. Kolejne pozycje formatu dodajemy ikoną .
  1. Nazwa pola - z rozwijalnej listy należy wybrać odpowiednią opcję, np. Data dokumentu, Kwota płatności, Nazwa podmiotu, Pełny numer rachunku podmiotu.
  2. Typ pola - opcje do wyboru: Tekst, Liczba <#, Liczba <#.##, Liczba <#.####. Konsekwencją wybrania typu pola Tekst, w formatach służących do eksportu, będzie otoczenie go w pliku ogranicznikiem tekstu (np. zapisanie w cudzysłowie). Podobnie w formatach służących do importu przelewów – jeżeli w pliku z banku pole jest zapisane w ograniczniku tekstu, jako typ należy wybrać: Tekst, w pozostałych przypadkach: Liczba.
  3. Wartość - pole ma znaczenie w formatach służących do eksportu przelewów; jest aktywne przy wyborze takich pól jak: „Inne informacje”, „Stała wartość”, „Zapytanie SQL”
  4. Szerokość - ilość znaków przewidziana na dane pole, pole wykorzystywane głównie w formatach do eksportu przelewów
  5. Opcje pola - określają, czy dane pole będzie nowym polem, czy ma zostać połączone z poprzednim na jeden z trzech sposobów. Najczęściej wybierane jest „nowe pole”. Opcja „łącz z poprzednim (…)” ma znaczenie w formatach służących do eksportu przelewów, przykładowo bank może wymagać, aby w pliku opis przelewu był zapisany jako jedno pole składające się z kilku podpól oddzielonych od siebie znakiem „|”.
  6. Usuwaj znaki rozdzielające w numerze rachunku - parametr jest aktywny tylko w przypadku wybrania pola związanego z numerem rachunku, np. numer rozliczeniowy banku, pełny numer rachunku podmiotu. Zaznaczenie parametru powoduje, iż numer rachunku będzie zapisany w pliku jako ciąg cyfr, bez znaków rozdzielających.
  7. Wymagane - parametr ma znaczenie przy formatach do eksportu przelewów. Zaznaczenie tego pola oznacza, iż brak danej wartości na przelewie będzie powodował błąd i w konsekwencji dany przelew nie zostanie wyeksportowany.

Przykład tworzenia formatu służącego do importu danych z pliku z banku

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia prawidłowego importu danych z pliku należy odpowiednio zmodyfikować istniejący format lub dodać nowy. Na podstawie pliku otrzymanego z banku (np. pliku w formacie *.csv, *.txt) lub dokumentu z opisem struktury takich plików Użytkownik może zdefiniować w programie własny format celem zaczytania w/w pliku.
Uwaga
Wyjątek stanowią pliki MT940 - program umożliwia import z takich plików, jednak jest to mechanizm zaszyty w programie i nie ma możliwości jego edycji/ modyfikacji.
Użytkownik może spotkać się z różnymi dokumentami o odmiennej strukturze, które mogą wymagać ręcznej modyfikacji. Spowodowane to jest faktem, iż każdy zapis jest zróżnicowany i żaden „uniwersalny” format nie jest w stanie wczytać wszystkich dokumentów. Ponadto zdarza się, że banki zmieniają strukturę generowanych plików, a w wielu przypadkach pliki nawet z tego samego banku potrafią się diametralnie od siebie różnić.
Uwaga
Każdy Bank posiada inny format wymiany danych. Przed próbą zaimportowania pliku zalecane jest dokładne sprawdzenie i porównanie go z danym formatem.
W poniższym ćwiczeniu na podstawie otrzymanego z banku pliku z przelewami zdefiniujemy format dla importu przelewów. Pliki w formatach *.csv, *.pli, *.txt Użytkownik może otworzyć za pomocą zwykłego edytora tekstowego (notatnik, WordPad) bądź poprzez MS Excel. Załóżmy, że nasz plik z przelewami z banku wygląda następująco (na zrzucie znajdują się dane testowe, np. numery rachunków bankowych): Analizując zamieszczony wyżej plik można wywnioskować, że:  
  • Format do: importu wyciągów bankowych
  • ,,Oddzielaj pola”: parametr zaznaczony
  • Separator pól: ; (średnik – bo widzimy, że w pliku poszczególne pola są od siebie oddzielone średnikiem)
  • Separator wierszy: <Enter>
  • Ograniczniki tekstu: ” (cudzysłów – bo widać, że w pliku część pól jest zapisana w cudzysłowie)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola: zaznaczone (widać, że poszczególne pola w pliku różnią się długością)
  • Format daty: RRRR-MM-DD (przykładowa data z pliku to: 2013-01-03)
  • Separator dziesiętny: , (przecinek – bo przykładowa kwota w pliku zapisana jest jako: 297,49)
  • Separator tysięcy: puste
  • Sekwencja podziału pola na części: zostawić puste
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne
Dodatkowo:
  • Rozszerzenie pliku to: txt
  • Kodowanie: Windows (1250)
  Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco: Dodatkowo w pliku jest Nagłówek, w związku z tym w formacie przelewów również trzeba zdefiniować pozycje nagłówka. Ważne jest, aby ilość pozycji na zakładce [Nagłówek] odpowiadała ilości pól w nagłówku w pliku (w tym przykładzie jest ich 7). Należy również zwrócić uwagę na to, że w pliku żadne z pól nagłówka nie jest zapisane w ograniczniku tekstu (w cudzysłowie), w związku z tym w formacie przelewów w każdym polu należy wybrać typ: Liczba. Jako każdą z pozycji można wybrać „Stałą wartość”. Liczba pozycji w formacie powinna zgadzać się z liczbą pól w przelewie w pliku - w naszym przykładzie jest ich 7, są to kolejno: data, inne informacje, nazwa podmiotu, numer rachunku podmiotu, opis do banku, kwota płatności, inne informacje. Należy również zwrócić uwagę, aby pola zapisane w pliku w cudzysłowie w formacie miały typ: Tekst (w naszym przykładzie są to pola 4) numer rachunku podmiotu i 5) Opis do banku), pozostałe mają mieć typ: Liczba. Zakładka [Pozycje] powinna więc wyglądać następująco: Tak zdefiniowanym formatem bez problemu uda się zaczytać przelewy z analizowanego pliku.
Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. Format służący do importu nie może również zawierać stopki. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany i/lub jest uzupełniona stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku
Załóżmy, że przykładowy plik z banku wygląda następująco (na zrzucie plik *.csv otworzony w MS Excel): Jak widać w pliku jest bardzo rozbudowany nagłówek, przed wykonaniem importu należy zatem odpowiednio zmodyfikować plik tak, aby zostały w nim tylko dane związane z przelewami i maksymalnie jedna linijka nagłówka. (Można np. zaznaczyć linijki z przelewami, skopiować je, otworzyć Notatnik, wkleić dane przelewów i zapisać plik. W momencie importu wskazywać już ten „nowy” plik txt.).

Przykład tworzenia formatu służącego do eksportu przelewów do pliku

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia eksportu do pliku, którego struktura jest zgodna z tym, co zaczytuje bank należy odpowiednio zmodyfikować istniejący format lub dodać nowy. Na podstawie przykładowego pliku z banku lub dokumentu z opisem struktury takich plików użytkownik może zdefiniować w programie własny format służący do eksportu przelewów. W poniższym ćwiczeniu na podstawie dokumentu z opisem struktury plików otrzymanego z banku zdefiniujemy przykładowy format do eksportu przelewów. Przykładowe informacje z banku: Opis formatów plików - Struktura pliku przesyłki płatności krajowych: Standard polskich liter - CP 852 ( LATIN II ). Polecenia płatnicze można podzielić wg typu operacji na trzy grupy. W zależności od tego, do której grupy należą polecenia umieszczane w przesyłce, program nadaje dla pliku przesyłki odpowiednie rozszerzenie: - przelewy, wypłaty gotówkowe i płatności ZUS: ".PLI" - specjalne i specjalne ZUS: ".PLE" - polecenia zapłaty: ".PLD" W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych. W jednym pliku mogą być zapisane dane kilku poleceń płatniczych; każdy wiersz zawiera dane innego polecenia. Każdy wiersz kończy się znakiem końca wiersza <CR><LF> (Hex 0D0A) i rozpoczyna się kodem oznaczającym typ operacji: 110 = Przelew, wypłata gotówkowa, płatność US, 120 = Płatność ZUS, 210 = Polecenie zapłaty. Pola alfanumeryczne (tekstowe) są zapisane w cudzysłowach (" ") (Hex 22). Długość pól podana w tabeli nie uwzględnia cudzysłowów. Poszczególne dane są oddzielone przecinkiem "," (Hex 2C). Pola: dane zleceniodawcy, dane kontrahenta, szczegóły płatności oraz informacje Klient-Bank składają się z kilku linii (podpól). W tych przypadkach znakiem oddzielającym poszczególne linie jest "|" (Hex 7C). Pola: dane zleceniodawcy, dane kontrahenta składają się z czterech podpól: pierwsze i drugie zawiera nazwę zleceniodawcy lub kontrahenta, trzecie – nazwę ulicy oraz nr domu/nr lokalu, czwarte – kod pocztowy i miejscowość. Wszystkie pola danych obowiązkowe powinny być wypełnione. Wyjątek stanowi pole „informacje Klient-Bank”, które nie jest obowiązkowe. Jeśli w poleceniu płatniczym nie są wypełnione szczegóły płatności to w pliku przesyłki pole „szczegółów płatności” będzie puste, rozpoczynające się znakiem ” (Hex 22) i kończące się znakiem ” (Hex 22). W polu numer banku zleceniodawcy należy umieścić 8 cyfrowy numer rozliczeniowy banku. W polu numer rachunku zleceniodawcy należy umieścić 26 cyfrowy numer rachunku zleceniodawcy Numer rachunku bankowego jest ciągiem o stałej liczbie znaków 26 cyfr. Opis formatu pliku płatności krajowych PLI (PLD,PLE,PLS) Struktura pliku przesyłki, Wykaz zastosowanych skrótów: O / F = Rodzaj pola: O = obowiązkowe F = fakultatywne D / F = Długość i format pola: a = alfanumeryczne n = numeryczne (0 – 9) d = data w formacie RRRRMMDD S = pole stałej długości Z = pole zmiennej długości Przykładowy plik przesyłki z danymi jednego polecenia przelewu: 110,20000121,555500,12401066,0,"27124010661111222233339999","79106000761234123412341234", "1_PODPOLE-NAZWA_ZLECENIODAWCY|2_PODPOLE-NAZWA_ZLECENIODAWCY|3_PODPOLE-ULICA_ZLECENIODAWCY|4_PODPOLE-MIEJSCOWOSC_ZLECENIODAWCY","1_PODPOLE-NAZWA KONTRAHENTA|2_PODPOLE-NAZWA_KONTRAHENTA|3_PODPOLE-ULICA KONTRAHENTA|4_PODPOLE-MIEJSCOWOSC_KONTRAHENTA",0,10600076,"1_PODPOLE-SZCZEGOLY PLATNOSCI|2_PODPOLE-SZCZEGOLY_PLATNOSCI|3_PODPOLE-SZCZEGOLY PLATNOSCI|4_PODPOLE-SZCZEGOLY_PLATNOSCI","","","51","1_PODPOLE-INFORMACJE_KLIENT-BANK|2_PODPOLE-INFORMACJE_KLIENT-BANK|3_PODPOLE-INFORMACJE_KLIENT-BANK|4_PODPOLEINFORMACJE_KLIENT-BANK|5_PODPOLE-INFORMACJE_KLIENT-BANK|6_PODPOLE-INFORMACJE_KLIENT-BANK"   Analizując zamieszczone wyżej informacje można wywnioskować, że:
  • Format do: eksportu przelewów
  • Rozszerzenie pliku to: pli
  • „Oddzielaj pola”: zaznaczone
  • Separator pól: , (przecinek – wynika to z informacji udostępnionych przez bank: „Poszczególne dane są oddzielone przecinkiem „,” (Hex 2C)”)
  • Separator wierszy: <Enter> (zgodnie z informacją „Każdy wiersz kończy się znakiem końca wiersza <CR><LF>”)
  • Ograniczniki tekstu: ” (cudzysłów – zgodnie z informacją „Pola alfanumeryczne (tekstowe) są zapisane w cudzysłowach (” „)”)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola”: zaznaczone (poszczególne pola są różnej długości)
  • Kodowanie: LATIN II
  • Format daty: RRRRMMDD (zgodnie z informacją podaną w tabelce, w polu 2)
  • Separator dziesiętny: brak (zgodnie z informacją podaną w tabelce, w polu 3)
  • Separator tysięcy: puste (zgodnie z informacją podaną w tabelce, w polu 3)
  • Sekwencja podziału pola na części: | (zgodnie z informacją „(…)znakiem oddzielającym poszczególne linie jest „|””)
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne
Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco: W pliku nie ma być żadnego nagłówka (zgodnie z informacją „W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych”), w związku z tym zakładka [Nagłówek] w naszym formacie ma pozostać nieuzupełniona. Następnie należy dokładnie przeanalizować informacje niezbędne do prawidłowego uzupełnienia zakładki [Pozycje]. Wszystkie pola, które w pliku mają być zapisane w cudzysłowie powinny mieć wybrany typ: Tekst, wszystkie pozostałe: Liczba.
NrNazwa polaO/FD/FPozycja w formacie przelewów w programie
1Typ operacji
110 = Polecenie przelewu, wypł. gotówk.
120 = Płatność ZUS
210 = Polecenie zapłaty
O3 n SPozycja „stała wartość”, w polu wartość: 110
2Data płatności RRRRMMDDO8 d SData operacji
3Kwota bez kropek tysięcznych i przecinka oddzielającego wartość groszyO15 n ZKwota płatności
4Numer banku zleceniodawcy (NRB)O8 n ZNumer rozliczeniowy banku własnego
5Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
6Numer rachunku zleceniodawcyO34 a ZPełny numer rachunku własnego
7Numer rachunku kontrahentaO34 a ZPełny numer rachunku podmiotu
8Dane zleceniodawcyO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa własna 1
2) Nazwa własna 2
3) Adres własny – ulica
4) Adres własny – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
9Dane kontrahentaO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa podmiotu 1
2) Nazwa podmiotu 2
3) Adres podmiotu – ulica
4) Adres podmiotu – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
10Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
11Numer banku kontrahenta.O8 n ZNumer rozliczeniowy banku podmiotu
12Szczegóły płatnościO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) opis do banku (pierwsza linijka)
2) opis do banku (druga linijka)
3) opis do banku (trzecia linijka)
4) opis do banku (czwarta linijka)
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
13Niewykorzystane : wartość pusteOS aStała wartość
14Niewykorzystane : wartość pusteOS aStała wartość
15Kod "51" dla przelewów i poleceń specjalnych, natomiast kod "01" dla poleceń zapłaty, ”71” dla płatności podatkowych USO1*2 a SPozycja „stała wartość”, w polu wartość: 51
16Informacje klient-BankF6*35 a Z6 pozycji w formacie – wszystkie pozycje to „stała warto