Pliki cookie pomagają nam udostępniać nasze usługi. Korzystając z tych usług, zgadzasz się na użycie plików cookie. Więcej informacji
Sz@rk GM 2012 kwiecień - aktualizacja

2012-04-25

I. Wstęp

Dokument zawiera opis ostatnich zmian w funkcji „Dekrety do FK” wraz z ogólnym omówieniem sposobu definiowania i tworzenia dekretów do systemu Sz@rk FK z systemów fakturujących Sz@rk.

II. Ogólny opis definiowania dekretów do Sz@rk FK

Funkcja uruchamiana z menu „Funkcje \ Dekrety do programu FK” służy do tworzenia dekretów księgowych dla programu Sz@rk FK ze sprzedaży (faktury/paragony) oraz z innych operacji zarejestrowanych dostępnymi dokumentami w programie (zakupy, dokumenty RW, dokumenty kasowe, itd.).

Dekrety do FK pozwalają w szybki sposób generować dekrety księgowe dla systemu Sz@rk FK w postaci pliku wymiany CSV. Ponieważ poprawne zdefiniowanie dekretów wymaga znajomości zasad ich tworzenia, w niniejszym dokumencie umieszczono minimalny zakres wiedzy konieczny do samodzielnego ich utworzenia wraz z odpowiednimi przykładami.

a) Jak utworzyć i dostosować do własnych potrzeb definicje dekretów ze sprzedaży

Bezpośrednio po instalacji programu Sz@rk GM / MEx / F1! Plus lub po utworzeniu nowej bazy danych brak jest definicji dekretów. W takiej sytuacji, przed utworzeniem jakichkolwiek definicji, konieczne będzie utworzenie grup dekretów. Realizuje się to przyciskiem „Dodaj Grupy”. Po utworzeniu grup można będzie utworzyć domyślne definicje dekretów dla sprzedaży, przyciskiem „Dekrety Sprzedaży”.

Uwaga, wyżej wymienione funkcje uaktywnią się po wciśnięciu przycisku „Edycja”, który odblokowuje definicje dekretów do modyfikacji.

Po włączeniu edycji, możliwe jest także zaimportowanie definicji dekretów z wcześniej utworzonego pliku wymiany *.DAT funkcją „Importuj”. Eksport i import dekretów, przydaje się głównie do przenoszenia definicji dekretów pomiędzy różnymi bazami danych, oraz do utworzenia kopii zapasowej przed wykonaniem modyfikacji definicji dekretów.

Poniższy rysunek zawiera utworzone grupy dekretów, jeszcze przed utworzeniem domyślnych definicji dekretów dla sprzedaży.

Rysunek 1. Definicje dekretów po utworzeniu brakujących grup

Domyślne dekrety dla sprzedaży można utworzyć przyciskiem „Dekrety sprzedaży”. Uwaga, jeśli dekrety dla sprzedaży są już utworzone i poprawnie zdefiniowane, nie należy używać tej funkcji ponieważ istniejące zapisy w grupie „1 - Sprzedaż” zostaną usunięte przed ponownym utworzeniem domyślnych wpisów!

Rysunek 2. Dekrety po utworzeniu domyślnych definicji dla sprzedaży

Domyślne definicje sprzedaży pozwalają na generowanie poprawnych dekretów dla większości firm. Wystarczy dostosować istniejące numery kont księgowanych na własne oraz dodać wpisy definiujące konta dla pozostałych grup kontrahentów (jeśli takie istnieją).

Rysunek 3. Przykład utworzonych dekretów sprzedaży z jednej faktury

Powyższy rysunek zwiera dekrety ze sprzedaży utworzone na podstawie definicji z rys. 2. Podstawą do utworzenia widocznych zapisów dekretu w paczce była jedna zarejestrowana faktura magazynie nr 1, zawierająca kilka pozycji na łączną kwotę brutto 999,99 . Zgodnie z wprowadzonymi definicjami utworzone zostały trzy zapisy;

  • kwota 999,99 - brutto faktury na konto Wn201-2-00002 (kontrahent P-2)
  • kwota 813,00 - netto faktury na konto Ma 703-1
  • kwota 186,99 - podatek VAT faktury na konto Ma 220-1

Widać zatem, że ilość zapisów Wn i Ma utworzonych dekretów oraz przydzielone konta księgowe zgadzają się wprowadzonymi definicjami dekretów w sekcji „1-Sprzedaż” na rys. 2. Zgodne są także pobrane z faktury kwoty. Jeśli definicje zostaną zmodyfikowane, np. przez dodanie kolejnej pary Konto Wn i Ma (z innymi kontami księgowymi), to w wyniku tej zmiany powstanie 5 zapisów w paczce a nie 3 jak na rys. 3.

Wykonując modyfikacje definicji, należy zadbać aby suma kwot po stronie Wn była zgodna z sumą kwot po stronie Ma.

b) Jak utworzyć dekrety sprzedaży z kwotami rozdzielonymi wg towarów lub usług z faktury

W wielu firmach wymaga się generowania dekretów z podziałem na towary/usługi które wchodziły w skład dokumentów sprzedaży (faktur, paragonów). Program umożliwia tworzenie takich dekretów po zdefiniowaniu grup towarowych w systemie fakturującym oraz przypisaniu poszczególnych towarów i usług do tych grup.

W dalszej kolejności należy podać odpowiednie konta księgowe dla każdej pozycji w słowniku grup towarowych, tworząc w ten sposób skojarzenia; grupa towarowa -> konta księgowe.

Prezentuje to poniższy rysunek.

Rysunek 4. Definiowanie kont w grupach towarowych

Aby ułatwić zrozumienie definiowania dekretów z podziałem wg kartotek (grup towarowych) w dalszej części opisu przedstawione zostaną konkretne przykłady faktur, kont księgowych i grup towarowych.

Dla potrzeb niniejszej instrukcji towary (z magazynu nr 1) ujęte w poniższej fakturze zostały przypisane do odpowiednich grup towarowych, tj. BUTY –> Obuwie, KURTKA –> Odzież, CEGŁA –> Materiały budowlane oraz TRANSPORT -> Usługi. Następne wystawiono fakturę z widocznymi poniżej pozycjami na łączną kwotę brutto 999,99.

Rysunek 5. Szczegóły faktury, która była podstawą do utworzenia dekretu sprzedaży

Następnie zmodyfikowano definicje dekretów sprzedaży, wstawiając w miejsce bezpośrednio podanych kont księgowych dla wartości Netto i VAT faktury – znacznik {ZKARTOTEK} (patrz rys. 6).Znacznik ten zmienia sposób tworzenia dekretów wynikowych, wymuszając podział (grupowanie) wartości Netto, Brutto i podatku VAT wg grup towarowych przypisanych do pozycji ujętych w danej fakturze.

Rysunek 6. Definicje po włączeniu dekretowania wg grup towarowych

Po zastosowaniu znacznika {ZKARTOTEK}, podczas tworzenia zapisu dekretu dla konta Ma (lub Wn) z żądaną kwotą Netto lub VAT, program utworzy tyle zapisów dla bieżącego dekretu (na podstawie danej faktury) ile było użytych grup towarowych w pozycjach tej faktury. Numery kont dla tworzonych zapisów w dekrecie (dla każdej z grup towarowych) będą automatycznie pobrane z odpowiedniej grupy towarowej (ze słownika – patrz rys. 4) wg następujących zasad, zależnie od podanego typu konta w definicji:

  • Konto księgowe z kolumny „Magazyn [1]” (patrz rys. 4) Przypisywane do danego zapisu dekretu jeśli typ konta będzie podany jako:
    • Ewidencyjna (wartość ewidencyjna sprzedaży)
  • Konto księgowe z kolumny „Sprzedaż [2]” Przypisywane do danego zapisu dekretu jeśli typ konta będzie podany jako:
    • Netto sprzedaż towarów (tylko sprzedaż netto towarów, bez usług)
    • Usługi (tylko sprzedaż netto usług, bez towarów)
    • Netto sprzedaż towarów + usług
  • Konto księgowe z kolumny „Koszty [3]” Przypisywane do danego zapisu dekretu jeśli typ konta będzie podany jako:
    • VAT (podatek VAT ze sprzedaży)

W przypadku gdy automatyczne dopasowanie kont księgowych wg powyższych zasad nie będzie wystarczające, można podać znacznik {ZKARTOTEK} + {SKRYPT} który umożliwi użycie funkcji Delphi napisanej przez użytkownika (użycie funkcji wymusza znacznik {SKRYPT}). Przykład takiej funkcji, wraz z niezbędnymi opisami będzie umieszczony w dalszej części dokumentu.

Uwaga, podczas generowania dekretów dla FK z wykorzystaniem podziału dokumentów sprzedaży wg grup towarowych mogą pojawiać się różnice groszowe wynikające z zastosowanych zaokrągleń kwot, stosowanych podczas rozdzielania łącznej wartości netto i podatku VAT z faktury na poszczególne grupy towarowe.

Poniżej przykład utworzonych dekretów ze sprzedaży z podziałem na grupy towarowe.

Rysunek 7. Utworzone dekrety sprzedaży wg grup towarowych z kartotek

Powyższy rysunek zawiera przykład dekretów wynikowych utworzonych po użyciu znacznika {ZKARTOTEK}, gdzie podstawą do utworzenia zapisów dekretu była ta sama - pojedyncza faktura (na kwotę brutto 999,99) jak w przykładzie z rys. 3. Ponieważ tutaj zastosowano podział wg grup towarowych, dekret zawiera wiele pozycji - po dwie (kwota Netto i VAT) dla każdej grupy towarowej pobranej z poszczególnych pozycji faktury. Konta księgowe zostały tutaj przydzielone automatycznie – na podstawie skojarzeń podanych w słowniku grup towarowych (patrz rys. 4)

c) Tworzenie definicji dekretów dla innych typów dokumentów z systemu

Zaprezentowane przykłady obejmowały definiowanie dekretów dla sprzedaży, ponieważ są to najczęściej wykorzystywane dekrety dla programu Sz@rk FK. System umożliwia również tworzenie dekretów dla pozostałych typów dokumentów, np. dokumentów magazynowych, operacji kasowych, zakupów (dokumentów PZ) oraz not uznaniowych/obciążeniowych z kontrahentami.

Poniżej zamieszczono przykład tworzenia definicji dekretów dla wybranych dokumentów magazynowych. Dodatkowo, w przykładzie zamieszczono funkcję Delphi obliczającą dynamicznie wynikowe konto księgowe danej pozycji dekretu na podstawie danych ze źródłowego dokumentu magazynowego.

Wewnątrz skryptu Delphi można pobrać różne informacje o bieżącym dokumencie magazynowym (na podstawie którego tworzone są pozycje dekretu), może to być np. numer magazynu z którego wystawiono dokument, symbol lub numer tego dokumentu, itd. W tym celu należy użyć wewnętrznej funkcji _PoleBazy('WYNIK', 'nazwa_pola'). Przykład zastosowania tej funkcji został zaprezentowany na poniższym rysunku gdzie jest wykorzystany do ustalenia wynikowego konta księgowego na podstawie numeru magazynu i symbolu dokumentu (magazyny 1 do 4, dokumenty ‘WZ’ i ‘PW’).

Rysunek 8. Przykład definicji dekretów dla dokumentów magazynowych

Znacznik {SKRYPT} można użyć do zbudowania funkcji obliczającej symbol tworzonego dokumentu księgowego dla FK. W takiej sytuacji rezultatem funkcji musi być dwuznakowy ciąg znaków, czyli wynikowy symbol dowodu w systemie Sz@rk FK. Odpowiedni przykład poniżej.

Rysunek 9. Przykład obliczania symbolu dokumentu dla dokumentu w Sz@rk FK

Powyżej przykład dynamicznego ustalania symbolu dokumentu dla Sz@rk FK – dla dokumentów WZ będzie to „X1”, dla PZ – „X2”, dla RW – „X3”, a dla wszystkich pozostałych „PK”.

W analogiczny sposób można zdefiniować dekretowanie innych operacji zarejestrowanych w systemie fakturującym Sz@rk, np. obrotów kasowych, czy not księgowych. Jeśli definicje dla danego typu dekretów nie zostaną określone, próba ich utworzenia nie powiedzie się bez podawania komunikatów błędu.

Poniżej wykaz grup dla definicji dekretów:

  1. Sprzedaż
    Dekrety ze sprzedaży: faktury, paragony, faktury unijne, eksportowe, korekty sprzedaży.
  2. Zakupy
    Dekrety z zarejestrowanych dokumentów zakupowych PZ
  3. Dokumenty magazynowe
    Dekrety z zarejestrowanych (wybranych) dokumentów magazynowych:

Rysunek 10. Dokumenty magazynowe z których można wykonać dekrety do FK

Uwaga, podczas tworzenia dekretów z dokumentów magazynowych, można wybierać selektywnie magazyny z których pobierane będą dokumenty.

  1. Kasa
    Raporty kasowe – dekrety z zarejestrowanych dokumentów KP i KW. Uwaga, aby dokumenty kasowe zostały ujęte, dany raport kasowy musi być zamknięty.
  2. Bank
    Raporty bankowe – dekrety z zarejestrowanych dokumentów BP i BW. Uwaga, aby dokumenty bankowe zostały ujęte, dany raport bankowy musi być zamknięty.
  3. Noty Obciążeniowe
    Dekrety z zarejestrowanych not obciążeniowych dla kontrahentów
  4. Noty Uznaniowe
    Dekrety z zarejestrowanych not uznaniowych dla kontrahentów
  5. Noty Rozliczeniowe

III. Dodatkowe informacje o tworzeniu definicji dekretów

a) opis tworzenia definicji dekretów

Sposób w jaki program tworzy dekrety na podstawie ich definicji został już przybliżony we wcześniejszych przykładach niniejszego dokumentu. Tworząc nowy zapis definicji dekretów, należy pamiętać o ustawieniu bieżącego rekordu we właściwej grupie (Sprzedaż, Zakupy, itp.). Po dodaniu rekordu w polu „Rodzaj” należy podać czy tworzony zapis będzie definiował parametry dekretu (rodzaj = ”Defnicja”) czy ma tworzyć wynikowy zapis do paczki (rodzaj = ”Konto Wn” lub „Konto Ma”).

Definicja „Typ konta” pełni rolę parametru dla tworzonego dekretu, którego wartość jest podana w polu „Numer konta” lub jest wyliczana funkcją podaną w kolumnie „Skrypt”. W przykładzie z rys. 2, zapis „Definicja” wraz z typem „Symbol dokumentu FK” oraz podaną wartością „SP” w polu „Numer konta” oznacza, że każdy tworzony zapis dekretu dla systemu FK będzie miał nadany symbol dokumentu „SP”. Można łatwo zmienić symbol dokumentu dla dekretów sprzedaż zmieniając „SP” na np. „PK”.

Jeśli symbol dowodu ma się dynamicznie zmieniać np. w zależności od magazynu w którym został wystawiony dokument źródłowy, konieczne będzie zastosowanie skryptu Delphi. Odpowiedni przykład jest pokazany na rys. 9.

  • W typowych sytuacjach, dla definicji/parametru w polu „Typ konta” używa się wartości:
    • Symbol dokumentu FK
      Definiuje symbol tworzonego dokumentu księgowego (opisane powyżej)
    • Grupa kontrahentów
      Umożliwia zdefiniowanie odrębnego konta dla każdej grupy kontrahentów. Oznaczenie grupy kontrahentów podaje się w polu „Grupa” a konto księgowe przypisane do danej grupy w polu „Numer konta”. Jeśli definicje grup kontrahentów są wprowadzone, wynikowy numer konta będzie wstawiony do zapisu „Konto Wn” lub „Konto Ma” opisanego znacznikiem {GRUPA}-{KONTRAHENT} w polu „Numer konta”. Podczas tworzenia bieżącego dekretu w paczce, program wstawi podane konto księgowe z grupy kontrahenta dla którego został wystawiony bieżący dokument w systemie (faktura). Następnie do konta księgowego z grupy zostanie dopisana kolejna analityka zbudowana na podstawie kodu tego kontrahenta w danej grupie. Jeśli w programie używane są inne niż domyślne grupy kontrahentów („P” i „K”), należy uzupełnić listę definicji i wstawić poprawne konta.
    • Łączyć paragony wg dni
      Włącza tryb łączenia wszystkich paragonów z danego dnia do jednego zbiorczego dekretu sprzedaży.

Grupa
Symbol grupy kontrahentów dla definicji - „Typ konta” => „Grupa kontrahentów”, patrz opis powyżej.Numer konta Pole zawiera numer konta księgowego skojarzonego z daną definicją, lub inny parametr np. symbol tworzonego dokumentu księgowego w paczce. SkryptSkrypt dla definicji parametru (Rodzaj = ”Definicja”) jest przewidziany tylko dla wyliczania wynikowego symbolu dokumentu księgowego w paczce dla FK. Odpowiedni przykład można znaleźć na rys. 9.

Tworzenie pozycji dekretu -> Rodzaj = ”Konto Wn” lub „Konto Ma”

Tak oznaczona pozycja definicji będzie tworzyła pojedynczy zapis dekretu po stronie Wn lub Ma w tworzonej paczce dla Sz@rk FK. Kwota dekretu Wn będzie ustalona w zależności od podanej wartości w polu „Typ konta”. Tworzony zapis zawsze dotyczy bieżącego dokumentu (faktury, paragonu, korekty) lub operacji kasowej/bankowej.

Najczęściej, dla pozycji „Konta Wn” lub „Konta Ma” definiuje się następujące ustawienia:

  • W polu „Typ konta” podaje się jaka kwota z bieżącego dokumentu/operacji w systemie ma być pobrana i wstawiona do danej pozycji wynikowego dekretu. Możliwe do wykorzystania wartości, to:
  • EwidencyjnaZwraca wartość ewidencyjną bieżącego dokumentu magazynowego.
  • BruttoZwraca kwotę brutto bieżącej faktury, paragonu, korekty itd.
  • Netto sprzedaż towarów + usług Zwraca kwotę netto bieżącej faktury, paragonu lub korekty.
  • VATKwota VAT bieżącego dokumentu sprzedaży (faktury)
  • Netto sprzedaż towarów Kwota netto bieżącej faktury, paragonu lub korekty – tylko towary, bez usług.
  • Usługi Kwota netto bieżącej faktury, paragonu lub korekty - tylko usługi.
Numer konta Pole zawiera bezpośrednio podane numery kont księgowych dla strony Wn lub Ma tworzonego zapisu, lub jeden z wymienionych poniżej znaczników. Znaczniki pozwalają na dynamiczne obliczanie wynikowego numeru konta, lub podział kwot wg grup towarowych. Poniżej lista dozwolonych znaczników:
  • {GRUPA}-{KONTRAHENT}Znacznik ten oznacza, że wynikowy numer konta dla danej pozycji dekretu z kwotą obliczony będzie na podstawie zdefiniowanych dla danego typu dekretów grup kontrahentów.
  • {SKRYPT}Numer konta księgowego będzie wyliczony na podstawie skryptu Delphi, zdefiniowanego w kolumnie „Skrypt”.
  • {ZKARTOTEK}Jeśli definicja pozycji dekretu będzie opisana tym znacznikiem, program podzieli wskazaną kwotę (podaną w polu „Typ konta”) na grupy towarowe powiązane z towarami i usługami ujętymi w danym dokumencie z systemu (np. na fakturze). Następnie dla każdej grupy towarowej utworzony zostanie odrębny zapis w paczce dla każdej grupy towarowej osobno. Konta księgowe dla tych zapisów będą pobrane ze słownika grup towarowych. Patrz przykłady w punkcie II b).
  • {ZKARTOTEK} + {SKRYPT}Działanie znacznika jak powyżej, z tą różnicą, że wynikowe konto księgowe będzie obliczane na podstawie skryptu Delphi, napisanego przez użytkownika.
  • {USLUGI-GRUPY}Działanie znacznika ma podobne działanie jak {ZKARTOTEK}. Różnica polega na tym że kwoty w tworzonych zapisach dekretu będą dotyczyć wyłącznie usług i będą podzielone wg grup towarowych.
  • {USLUGI-GRUPY} + {SKRYPT} Znacznik działa jak opisany powyżej, ale konto księgowe będzie wyliczane na podstawie skryptu Delphi.
  • {TOWARY-GRUPY} Działanie znacznika ma podobne działanie jak {ZKARTOTEK}. Jednak tworzone zapisy dekretu (kwoty) będą dotyczyć wyłącznie towarów i będą podzielone wg grup towarowych.
  • {TOWARY-GRUPY} + {SKRYPT} Działanie jak powyżej, ale konto księgowe wyliczane ze skryptu a nie pobierane ze słownika grup towarowych.
Skrypt
Zwiera treść funkcji Delphi wyliczającej numer konta księgowego dla danego zapisu dekretu. Patrz przykład z rys. 8.

b) inne przydatne informacje

Jeśli zapis dekretu dla strony Wn lub Ma, będzie miał numer konta księgowego wyliczanego skryptem (obecny znacznik {SKRYPT} w definicji), możliwe będzie pominięcie zapisu (rezygnacja z dekretu) w przypadku gdy funkcja wyliczająca numer konta księgowego zwróci wartość NULL.

Opisany mechanizm jest przydatny jeśli potrzebne jest generowanie dekretu z dodatkową parą kont Wn i Ma, które mają się pojawić w dekretach po spełnieniu określonych warunków spełnionych w dokumencie źródłowym. W tej sytuacji należy zadbać, aby funkcja Delphi zawsze zwracała NULL jeśli dokument źródłowy nie spełnia określonych warunków, w przeciwnym wypadku funkcja ma zwrócić właściwy numer konta księgowego.

Przykład pomijania wszystkich zapisów dla dokumentów niepochodzących z magazynu 12.

Function MyFunc : String; Begin if _PoleBazy('WYNIK', 'mag') = 12 then result := '431-02' else result := 'NULL' End;

Aby umożliwić dostęp z poziomu skryptu (funkcji Delphi) do danych bieżącego dokumentu źródłowego (faktury, dokumentu, itd.) udostępniono wewnętrzną funkcję zwracającą podstawowe informacje o tym dokumencie. Funkcja ta, ma postać _PoleBazy(tabela, pole). Jej pierwszym parametrem może być ciąg „WYNIK” lub „GRUPY-TOWAROWE” a drugim nazwa pola z którego chcemy pobrać wartość.

Podając parametr „WYNIK” uzyskuje się dostęp do elementarnych danych aktualnego dokumentu lub operacji z której program będzie tworzyć zapisy dekretu. Dokumentem tym może być faktura, zapis kasowy (bankowy) lub dokument magazynowy. Poniżej, dozwolone pola z których można skorzystać w funkcji (pobrać z nich wartości):

  • ‘mag’ numer magazynu z którego wystawiono dokument.
  • ‘sd’ symbol dokumentu, np. „WZ”, „PZ”, „R+’, itp. dla faktur i dokumentów oraz „KP”, „KW”, „BP” i „BW” dla operacji kasa/bank.
  • ‘frarek’ typ dokumentu (tylko dla sprzedaży).
  • ‘grupa’ grupa kontrahenta.
  • ‘kod’ kod kontrahenta.
  • ‘data’ data dokumentu.

Przykład:

 mag := _PoleBazy('WYNIK ', 'mag'); 

Parametr „GRUPY-TOWAROWE” pozwala uzyskać dostęp do bieżącej grupy towarowej dla tworzonego zapisu dekretu skojarzonego z daną grupą towarową. Parametr ma zastosowanie tylko ze znacznikami {ZKARTOTEK}, {USLUGI-GRUPY} i {TOWARY-GRUPY}. Dozwolone nazwy pola (drugi parametr):

  • ‘konto1’ numer konta podany w słowniku grup towarowych, w kolumnie „Magazyn [1]”.
  • ‘konto2’ numer konta podany w kolumnie „Sprzedaż [2]”.
  • ‘konto3’ numer konta podany w kolumnie „Koszty [3]”.
  • ‘konto4’ numer konta podany w kolumnie „Inne [4]”.

Przykład

 konto := _PoleBazy('GRUPY-TOWAROWE ', 'konto2');