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.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ącu3. 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)
- 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)
- 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)
- 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
- 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
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.
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.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.
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.- 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
- Faktury Sprzedaży,
- Faktury Zakupu,
- Paragony,
- Dowody Wewnętrzne Sprzedaży,
- Dowody Wewnętrzne Zakupu.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
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ę.- 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,
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,
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.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.
- 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
- 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
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.
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.
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ą.
- 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ą
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.- Uwzględniaj – dla stawek: 23%, 8%, 5%, 0%
- Tylko w mianowniku – dla stawki ZW
- Nie uwzględniaj – dla stawki NP
- 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.
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.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).-
-
- Jak przygotować JPK w Comarch ERP Optima, prowadzący do tego biuletynu
- Informacje o JPK na stronach Ministerstwa Finansów, prowadzący do strony MF ( https://www.podatki.gov.pl/jednolity-plik-kontrolny).
-
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).
-
- „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…„
-
-
- 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.
-
Dane te są wymagane przez wzór dokumentu elektronicznego i muszą być uzupełnione w programie przed wysyłką plików JPK.
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.
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)
-
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)
-
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)
-
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
-
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.
-
-
-
- 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
-
-
-
- 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.
-
-
-
- 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
-
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:-
-
- Dane nagłówka pliku JPK (opisane w Rozdziale 3.1)
-
-
-
- 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
- Dane wartości dokumentu uwzględniają:
-
-
-
- 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
- Dane wartości dokumentu uwzględniają:
-
-
-
- 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
- Dane wartości dokumentu uwzględniają:
-
-
-
- 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
- Dane wartości dokumentu uwzględniają:
-
10 Rejestry VAT – JPK_VAT
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.Na zaimportowanych dokumentach do rejestru zakupu VAT domyślnie ustawiane są odliczenia na TAK.
-
-
- Uwzględniaj – dla stawek: 23%, 8%, 5%, 0%
- Tylko w mianowniku – dla stawki ZW
- Nie uwzględniaj – dla stawki NP
-
-
-
- 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,
-
OPT074 - Dodawanie kolumn użytkownika na listach
Data aktualizacji: 25-01-2024
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.
- 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
- Standardowe formaty wyświetlania dla liczb.
Rodzaj formatu | Opis | Przykład formatu | Przykładowa wartość |
---|---|---|---|
c lub C | Liczba 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 N | Liczba 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. | n0 | 1.234 |
d lub D | Wartość 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. | D8 | 00004392 |
p lub P | Liczba 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. | P2 | 89,48 % |
- Standardowe formaty wyświetlania dla daty i czasu.
Format | Opis | Przykład |
---|---|---|
d | Wzorzec daty krótkiej. | 04-06-2014 |
D | Wzorzec daty długiej. | 4 czerwca 2014 |
t | Wzorzec czasu krótkiego. | 14:08 |
T | Wzorzec czasu długiego. | 14:08:00 |
f | Wzorzec daty długiej i czasu krótkiego. | 4 czerwca 2014 14:08 |
F | Wzorzec daty długiej i czasu długiego. | 4 czerwca 2014 14:08:00 |
g | Wzorzec daty krótkiej i czasu krótkiego. | 04-06-2014 14:08 |
G | Wzorzec daty krótkiej i czasu długiego. | 04-06-2014 14:08:00 |
m lub M | Wzorzec miesiąca i dnia. | 4 czerwca |
y lub Y | Wzorzec roku i miesiąca. | czerwiec 2014 |
s | Wzorzec sortowalny. | 2014-06-04T14:08:00 |
- Niestandardowe formaty dla liczb
Znak | Znaczenie |
---|---|
0 | Cyfra 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
Symbol | Znaczenie | Wynik formatownia przykładowej daty (22.06.2014) |
---|---|---|
yy | Ostatnie dwie cyfry roku. | 14 |
yyyy | Cztery cyfry roku. | 2014 |
MM | Numer miesiąca. | 06 |
MMM | Skrót nazwy miesiąca. | cze |
MMMM | Pełna nazwa miesiąca. | czerwiec |
dd | Numer dnia. | 22 |
ddd | Skrót dnia tygodnia. | N |
dddd | Pełna nazwa dnia tygodnia. | niedziela |
/ | Separator daty. Pobierany z ustawień regionalnych. |
- Symbole dotyczące czasu:
Symbol | Znaczenie |
---|---|
hh | Godziny. |
mm | Minuty. |
ss | Sekundy. |
: | Separator czasu. Pobierany z ustawień regionalnych. |
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.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.
(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.
(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.
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_Wartosc5. 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_SymbolKsię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' END
Opis - 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_MiejsceUzytkowania25. 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_KodSzczegol6. Lista not odsetkowych, ponagleń zapłaty, potwierdzeń sald. Kolumna kod podmiotu
Kod podmiotu - należy skorzystać z dostępnej na liście kolumny: Pod_Kod7. 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=52W 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
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. 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). 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. 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. 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.'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.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.
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:
@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:
@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:
Pozostałe przykłady
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 transakcjinot 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 transakcjinot 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.
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.
- 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.
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.
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.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.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.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.
- 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.- 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.
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.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.