OPT039 Internetowa Wymiana Dokumentów z Klientem Comarch ERP XT / Comarch Moje BR

Data aktualizacji: 18-03-2021

Jak uruchomić Internetową Wymianę Dokumentów?



 

Krok 1 – utworzenie konta w aplikacji Comarch ERP XT lub Comarch Moje BR

Jeśli Klient nie posiada konta w aplikacji Comarch ERP XT lub Comarch Moje BR, powinien utworzyć je zgodnie z instrukcją:

Do wykonania kolejnych kroków Biuro Rachunkowe będzie potrzebować adresu e-mail, na który utworzono konto oraz NIP Klienta.

 

Krok 2 – rejestracja na portalu www.iksiegowosc24.pl

Biuro Rachunkowe, które chce wymieniać dokumenty ze swoimi Klientami rejestruje się na stronie: https://www.iksiegowosc24.pl/rejestracja wybierając dowolny pakiet iKsięgowość24.

 

Krok 3 – konfiguracja programu Comarch ERP Optima w Biurze Rachunkowym

W menu System/ Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów należy zaznaczyć parametr Aktywuj wymianę danych przez serwer Comarch, a następnie na oknie Podaj dane uzupełnić pola:

  • Numer Klienta (ID) – numer ewidencyjny Comarch Biura Rachunkowego (widoczny na certyfikacie rejestracji oprogramowania),
  • PIN – numer PIN Biura Rachunkowego (widoczny na certyfikacie rejestracji oprogramowania),
  • Ustaw hasło – pole uzupełniamy dowolnym własnym hasłem. Hasło należy zapamiętać, ponieważ będzie wymagane przy jakiejkolwiek zmianie ustawień konta na serwerze Comarch,
  • Potwierdź hasło.

Wskazówka
W sytuacji gdy hasło zostanie utracone, jego reset możliwy jest po zalogowaniu do www.iksiegowosc24.pl w zakładce Konto.

Po zapisaniu zmian konto Internetowej Wymiany Dokumentów jest aktywne.

Uwaga
Przed opuszczeniem formularza zwróć uwagę, czy ustawiony jest oddział. W razie konieczności kliknij w Zarządzanie oddziałami i wybierz oddział.

 

Krok 4 – dodanie Klienta Biura Rachunkowego w portalu www.iksiegowosc24.pl

Biuro Rachunkowe loguje się na portalu https://www.iksiegowosc24.pl/dla-biur-rachunkowych, przechodzi na zakładkę Moi Klienci i dodaje Klienta, wypełniając formularz. Po zapisaniu formularza na adres mailowy osoby kontaktowej Biura Rachunkowego wysyłana jest wiadomość informująca o dodaniu Klienta.

Uwaga
Po otrzymaniu tej wiadomości odczekaj około 10 minut i przejdź do kolejnego kroku.

Krok 5 – dodanie Klienta Biura Rachunkowego w programie Comarch ERP Optima

Biuro Rachunkowe loguje się do bazy Klienta i przechodzi do konfiguracji.

  • W menu System/ Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów Biuro Rachunkowe uzupełnia w tabeli dla Klienta (kolumna Nazwa bazy):
    • Wymieniam dane – wybrać opcję „z Klientem”
    • Numer Klienta (ID), z którym wymieniam dane – uzupełnić numerem Klienta Comarch, który Biuro Rachunkowe otrzymało w powiadomieniu mailowym po wykonaniu kroku 4.

Po uzupełnieniu danych w tabeli należy zapisać zmiany, potwierdzając hasłem ustawionym w kroku 3.

  • W menu System/ Konfiguracja/ Stanowisko/ Praca rozproszona/ Parametry Biuro Rachunkowe wskazuje dowolny folder na dysku, w którym będą przechowywane pliki z wymienianymi dokumentami.

Uwaga
Po wykonaniu powyższych czynności odczekaj około 10 minut, aby rozpocząć wymianę danych.

 

Jak wysyłać i odbierać dokumenty?

Wymiana dokumentów w Comarch ERP XT

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

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

Wymiana dokumentów w Comarch Moje BR

Klient pracujący na Comarch Moje BR na pulpicie swojej aplikacji przed wysyłką pierwszego dokumentu otrzyma komunikat o konieczności potwierdzenia współpracy z Biurem Rachunkowym.

 

Po zaakceptowaniu zostaje uruchomiona automatyczna wymiana danych. Do Biura Rachunkowego od tego momentu przesyłane są:

  • faktury sprzedaży, które zostały zatwierdzone przez Klienta,
  • dokumenty kosztowe, które zostały wprowadzone do aplikacji i wysłane przez Klienta.

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

Wymiana dokumentów w Comarch ERP Optima

Wysyłanie i odbieranie danych odbywa się poprzez opcję Narzędzia/ Praca rozproszona/ Eksport/Import.

Wskazówka

Aby przesyłać informacje o podatkach i fakturach za usługi Biura, zaznacz na oknie eksportu pozycje: Faktury za usługi księgowe i Płatności do deklaracji.

  • Płatności do deklaracji będą zawierały informacje o podatku VAT, PIT i składkach ZUS.
  • Faktury za usługi księgowe będą eksportowały dokumenty z rejestru zakupu VAT, które mają przypisany atrybut FAKTURA ZA USŁUGI BR z wartością „Tak”.

Szczegółowy opis funkcjonalności znajduje się tutaj .

Biuro Rachunkowe może odbierać dokumenty wysłane przez Klientów seryjnie poprzez moduł Comarch ERP Optima Biuro Rachunkowe.

W programie Comarch ERP Optima jest możliwość ustawienia automatycznego eksportu i importu danych. Zobacz tę funkcję na filmie


 

FAQ – najczęściej zadawane pytania

Co to jest Internetowa Wymiana Dokumentów?

Internetowa Wymiana Dokumentów to model współpracy pomiędzy Biurem rachunkowym a jego Klientem.

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

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

Główne cechy zastosowanego rozwiązania:

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

Nie można dokonać autoryzacji na serwerze Comarch.

Komunikat pojawia się w sytuacji, gdy dane podane przy aktywacji konta Internetowej Wymiany Dokumentów w System/ Konfiguracja/ Program/ Ogólne/  Internetowa Wymiana Dokumentów są nieprawidłowe lub brak połączenia z serwerem.

Biuro powinno sprawdzić wprowadzone dane: Numer Klienta (ID), PIN oraz połączenie z Internetem.

Komunikat pojawia się także w przypadku, gdy przy zapisywaniu zmian w ustawieniach Internetowej Wymiany Dokumentów zostanie wprowadzone inne hasło, niż ustawione przy aktywacji konta. Biura Rachunkowe mogą dokonać resetu hasła po zalogowaniu na www.iksiegowosc24.pl w zakładce Konto.

 

Konto o ID [ID Klienta] nie istnieje.

Komunikat pojawia się w sytuacji, gdy Biuro Rachunkowe w System/ Konfiguracja/ Program/ Ogólne/Internetowa Wymiana Dokumentów w kolumnie Numer Klienta (ID), z którym wymieniam dane wpisuje numer Klienta, który nie posiada konta Internetowej Wymiany Dokumentów lub gdy konto istnieje, ale nie doszło do synchronizacji.

Od dodania Klienta na www.iksiegowosc24.pl musi minąć około 10 minut, zanim możliwe będzie skonfigurowanie wymiany w programie Comarch ERP Optima.

 

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

Komunikat pojawia się w Narzędzia/ Praca rozproszona/ Import w sytuacji, gdy obecnie posiadany przez Biuro certyfikat jest inny od tego, obowiązującego w momencie wysyłki dokumentów przez Klienta.

Wysłanej na inny certyfikat paczki z dokumentami nie będzie można już odebrać i należy ją usunąć z Narzędzia/ Skrzynka IWD. Klient powinien wysłać paczkę ponownie. Jeśli podczas importu nowej paczki z dokumentami pojawi się ten sam komunikat, należy odświeżyć certyfikat w System/ Konfiguracja/ Program/ Ogólne/ Internetowa Wymiana Dokumentów za pomocą przycisku Odnowienie certyfikatu.

 

Konto Klienta Comarch ERP XT pracuje w trybie testowym

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




OPT043 Zaawansowane schematy księgowe

Data aktualizacji: 06-09-2021


Spis treści



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

Warunek wpisany w schemacie księgowym jest „tłumaczony” na zapytanie SQL poprzez zastąpienie makr (symboli zaczynających się od znaku @) na odwołanie do kolumn bądź funkcji serwerowych.

Poszczególne odwołania można łączyć zgodnie z syntaktyką T-SQL – dotyczy to zarówno operatorów porównania (=, >, <, <>, LIKE) jak i operatorów łączących wyrażenia (AND, OR). Dodatkowo możliwe jest używanie funkcji serwerowych.

Przykładowo poprawny jest warunek

@KategoriaElem LIKE 'POZOST%' OR @KategoriaNag = 'SPR' AND SUBSTRING(@KategoriaElem, 5, 3)= 'TOW'

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

W warunku zamiast wersji dłuższej np.

@KodPodmiotu='ALA' AND ( @KategoriaElem='MATERIAŁY' OR @KategoriaElem='TOWARY' OR @KategoriaElem='INNE')

można użyć operatora serwerowego IN:

@KodPodmiotu='ALA' AND @KategoriaElem IN ('MATERIAŁY', 'TOWARY', 'INNE')

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

Ilość towaru jest zapisana w tabeli TraElem, żeby zaksięgować liczbę, która znajduje się w tabeli, ale nie istnieje odpowiadające jej makro (tzn. nie można wybrać np. @Ilosc), trzeba w schemacie księgowym odwołać się bezpośrednio do nazwy pola w tabeli.

Żeby na jakimś koncie pozabilansowym wyksięgować z faktury ilość sprzedanego towaru, w polu Kwota należy odwołać się do pola TrE_Ilosc. Ze względu jednak na optymalizację parsera analizującego schemat księgowy i „tłumaczącego” go na zapytanie SQL konieczne jest użycie w definicji kwoty przynajmniej jednego makra (tzn. pola zaczynającego się od '@’) lub definicja musi rozpoczynać się od znaku apostrofu (‘). Dodatkowo trzeba „zmusić” automat księgujący, żeby użył tabeli TraElem (automat księgujący nie wie, że TrE_Ilosc jest kolumną w tabeli TraElem, więc nie użyje jej automatycznie).

W tym celu w definicji kwoty można wpisać np.
@PozNetto – @PozNetto + TrE_Ilosc
@PozNetto – @PozNetto i tak dadzą w wyniku 0. Makro @PozNetto odwołuje się do pozycji faktury (a więc do tabeli TraElem), więc mamy pewność, że zapytanie zostanie zbudowane poprawnie.
Drugą możliwością jest wpisanie:
'0' + TrE_Ilosc
’0’ zostanie automatycznie przekonwertowane na liczbę 0 i nie zaburzy wyniku. W tym przypadku trzeba jeszcze „zmusić” automat księgujący, żeby użył tabeli TraElem. W tym celu w pozycji schematu księgowego należy użyć jakiegokolwiek parametru bądź makra odwołującego się do pozycji faktury, np.:

  • zaznaczyć Podział na kategorie
  • lub Podział na słowniki – Towary
  • lub w opisie (bądź w warunku) odwołać się do kategorii pozycji (@KategoriaElem lub @KategoriaOgolnaElem) lub do towaru (@NazwaTowaru)

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

Tak, w przypadku opisu jest podobnie jak w przypadku kwoty - można odwołać się do pola (pól) z tabeli, z zastrzeżeniem, co do użycia co najmniej jednego makra i wymuszenia użycia tabeli TraElem.

W definicji kwoty używamy np. makra @PozNetto (ponieważ @PozNetto jest to wartość netto, pozycji faktury, to automatycznie mamy zapewnione, że zostanie użyta tabela TraElem)

Informacja o stawce Vat jest zapisywana w polach:

  • TrE_Flaga – mówi o tym, czy jest to stawka zwykła (2), zaniżona (3), zwolniona (1), czy nie podlega (4)
  • TrE_Stawka – zawiera wysokość stawki Vat

W definicji opisu pozycji można by więc użyć wyrażenia:

@NumerPelny + ': stawka Vat ' + Case TrE_Flaga When 1 Then 'ZW' When 4 Then 'NP' Else STR(TrE_Stawka,5,2) End

Spowoduje to wstawienie w dekrecie w polu Opis numeru dokumentu uzupełnionego o stawkę Vat - oczywiście zostanie wygenerowanych tyle pozycji, ile różnych stawek Vat jest na dokumencie.


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

Grupa towarowa znajduje się w tabeli Towary (pole Twr_Grupa) – przy czym nie możemy odwołać się do pola Twr_Grupa w taki sposób jak to opisywano poprzednio, ponieważ obecnie żadne makro nie odwołuje się do tabeli Towary (a więc nie ma możliwości w schemacie księgowym połączenia się z tą tabelą).

Możemy to natomiast zrobić za pomocą funkcji serwerowej. W tym celu tworzymy funkcję MojaFunkcja_GrupaTowaru – należy poniższy skrypt wykonać za pomocą Query Analyzera lub OSQL-a.

Jeżeli teraz chcemy zaksięgować warunkowo sprzedaż towarów z grupy 'AKCESORIA', w warunku wpisujemy wyrażenie:

'AKCESORIA' = dbo.MojaFunkcja_GrupaTowaru (TrE_TwrId)

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

Uwaga
Aby zaksięgować towar w zależności od grupy domyślnej, do której należy (na pierwszej zakładce karty cennika) należy funkcję skonstruować w poniższy sposób:

If Exists ( Select * From sysobjects Where name = 'MojaFunkcja_GrupaTowaru' And xtype='FN')
Drop Function dbo.MojaFunkcja_GrupaTowaru
GO
create Function dbo.MojaFunkcja_GrupaTowaru (@TwrId INT)
Returns VarChar(20)
As
Begin
Declare @Grupa VarChar(20)
select @grupa = twg_kod
from cdn.twrgrupy
join cdn.towary on twr_twggidnumer = twg_gidnumer AND twg_gidtyp = -16
where twr_twrid = @twrid
Return @Grupa
End

Uwaga
Aby zaksięgować towar pod warunkiem, że towar należy do grupy podrzędnej należy nieco inaczej zbudować funkcję.

If Exists (
Select * From sysobjects
Where name = 'MojaFunkcja_GrupaTowaru' And xtype='FN'
)
Drop Function dbo.MojaFunkcja_GrupaTowaru
GO
create Function dbo.MojaFunkcja_GrupaTowaru (@TwrId INT)
Returns VarChar(20)
As
Begin
Declare @Grupa VarChar(20)
select @grupa = A.twg_kod
from cdn.twrgrupy  A
join cdn.twrgrupy B on A.twg_gidnumer = B.twg_gronumer
join cdn.towary C on C.twr_gidnumer = B.twg_gidnumer AND C.twr_twggidnumer <> A.twg_gidnumer
where B.twg_gidtyp = 16 and A.twg_gidtyp <> 16 and c. twr_twrid = @twrid
Return @Grupa
End


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

Można w warunku sprawdzić, czy istnieją kwoty dodatkowe, z tym, że korzystamy tu z pewnych funkcji pozastandardowych.

Niestety już w kilku przypadkach okazało się, że korzystanie z tego typu funkcji po zmianie wersji Comarch ERP Optima wymagało drobnych korekt w schematach księgowych.

Raporty kasowe/bankowe

Jeśli chcemy zaksięgować dokument, na którym NIE ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać:

'1'='1' AND NOT EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=14 And KDD_DokumentId=BZp_BZpId)

Jeśli chcemy zaksięgować dokument, na którym ISTNIEJĄ podpięte kwoty dodatkowe (przy czym chodzi o księgowanie kwot przychód/rozchód, a nie kwot dodatkowych), w warunku należy wpisać:

'1'='1' AND EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=14 And KDD_DokumentId=BZp_BZpId)

Rejestry VAT

Jeśli chcemy zaksięgować dokument, na którym NIE ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać:

'1'='1' AND NOT EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=2 And KDD_DokumentId=van_vanId)

Jeśli chcemy zaksięgować dokument, na którym ISTNIEJĄ podpięte kwoty dodatkowe, w warunku należy wpisać:

'1'='1' AND EXISTS (Select * FROM CDN.KwotyDodatkowe Where KDD_DokumentTyp=2 And KDD_DokumentId=van_vanId)

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

Przy tworzeniu warunku można skorzystać z makra:

@TypWyplaty LIKE 'zas%'

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

Schemat pierwotny:

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

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

Rozwiązania są dwa:

1.Zastosować w schemacie podwójne dekrety:

Konto WnKonto MaKwotaOpis
zwykłe1zwykłe2@RazemKwotacena netto
zwykłe1zwykłe3@RazemKwota*0.32marża
zwykłe1zwykłe4(@RazemKwota+@RazemKwota*0.32)*0.23VAT

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

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

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

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

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

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

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

W przypadku Ewidencji dodatkowej przychodów można użyć w warunku wyrażenia:

@Dokument LIKE '%EDP%' 

co oznacza, że na konto zostanie zaksięgowany dokument, który ma w schemacie numeracji ciąg znaków EDP (np. EDP/000001/2003).

W przypadku Ewidencji dodatkowej kosztów można użyć w warunku wyrażenia:

'1'='1' AND EDN_NumerPelny LIKE 'EDK%'

Różnica wynika z faktu, że w Ewidencji dodatkowej kosztów, na formatce zapisu są dwa numery: numer nadawany przez program i numer obcy. Makro @Dokument w tym przypadku pobiera numer nadawany przez program jeżeli numer obcy nie jest wypełniony.

Jeżeli w warunku jest użyte jakieś makro to wystarczy dodać: AND EDN_NumerPelny LIKE 'EDK%'

Patrz też pytania nr:

    1. Jak zaksięgować fakturę zakupu, żeby w schemacie księgowania w warunku zastosować fragment numeru dokumentu np MAGAZYN i SERIA z numeru FZ/99/MAGAZYN/SERIA? 
    1. Jak w warunku schematu dla WZ odwołać się do symbolu/serii w numerze faktury do której zostało wystawione WZ?

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

W warunku schematu należy użyć wyrażenia:

'1'='1' AND EXISTS (Select * FROM CDN.Kontrahenci Where Knt_KntId=BZp_PodmiotID AND Knt_Rodzaj_Odbiorca='1')

Wówczas program zaksięguje na podane konta określoną kwotę, jeżeli kontrahent wybrany na KP/KW będzie odbiorcą.
Dla dostawcy należy zmienić w powyższym wyrażeniu nazwę pola na Knt_Rodzaj_Dostawca, dla konkurencji na Knt_Rodzaj_Konkurencja, dla partnera na Knt_Rodzaj_Partner, natomiast dla klienta potencjalnego na Knt_Rodzaj_Potencjalny.

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

Taki warunek można stworzyć w schematach dla Faktur sprzedaży i Faktur zakupu (księgowań z modułu Faktury – ewentualnie księgowań innych dokumentów z modułu Faktury lub Magazyn). Trzeba wybrać księgowanie kwoty @PozNetto (lub @PozBrutto) i w warunku dopisać:

      • Dla usługi (prostej lub złożonej):

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0)

      • Dla usługi prostej:

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0 And Twr_Produkt=0)

      • Dla usługi złożonej:

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=0 And Twr_Produkt=1)

      • Dla towaru (prostego lub złożonego):

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1)

      • Dla towaru prostego:

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1 And Twr_Produkt=0)

      • Dla towaru złożonego:

'1'='1' AND Exists (Select * From CDN.Towary Where Twr_TwrId=TrE_TwrId And Twr_Typ=1 And Twr_Produkt=1)

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

'1'='1' AND EXISTS (SELECT* FROM CDN.Kontrahenci where Knt_KntId=VaN_PodID AND VaN_PodmiotTyp = 1 AND Knt_Grupa='DOST')

Podana w schemacie kwota, zostanie zaksięgowana na zadane konta jeżeli kontrahent wybrany na fakturze należy do grupy 'DOST'.

W schematach księgowych dla księgowania faktur z modułu Faktury warunek powinien być następujący:

'1'='1' AND EXISTS (SELECT* FROM CDN.Kontrahenci where Knt_KntId=TrN_PodID AND TrN_PodmiotTyp = 1 AND Knt_Grupa='DOST')

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

Warunek czy dokument jest w ogóle nierozliczony:

'1'='1' AND EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND BZd_Rozliczono<2)

Poniżej warunek sprawdzający przy założeniu, że dla dokumentu jest tylko jedna płatność, czyli płatność na dokumencie nie została podzielona na raty (ale mogła być rozliczana "na raty").

Dokument jest nierozliczony lub został rozliczony w innym miesiącu niż data dokumentu:

'1'='1' AND EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND (BZd_Rozliczono<2 OR 100 * YEAR(BZd_DataRoz)
+ MONTH(BZd_DataRoz) <> VaN_RokMies))

Dokument został rozliczony w tym miesiącu, co data dokumentu:

'1'='1' AND NOT EXISTS (Select * FROM CDN.BnkZdarzenia WHERE BZd_DokumentTyp = 2 And BZd_DokumentId = VaN_VaNId AND (BZd_Rozliczono<2 OR 100 * YEAR(BZd_DataRoz)
+ MONTH(BZd_DataRoz) <> VaN_RokMies))

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

Aby zaksięgować VAT na zadane konto, jeżeli data deklaracji VAT-7 to 10.2018 należy w warunku użyć wyrażenia:

'1'='1' AND VaN_DeklRokMies='201810'

Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty rejestru. Czyli mając wyświetloną na ekranie listę faktur za miesiąc 10.2018, program zaksięguje te, które mają datę deklaracji inną niż 10.2018 np. 11.2018.

'1'='1' AND Van_RokMies<>Van_DeklRokMies

I dla równowagi, warunek gdy data deklaracji jest równa dacie rejestru:

'1'='1' AND Van_RokMies=Van_DeklRokMies

Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty zakupu faktury zakupu:

'1'='1' AND (100 * YEAR(VaN_DataOpe) + MONTH(VaN_DataOpe)) <> Van_DeklRokMies

Aby zaksięgować na zadane konto, podaną kwotę, jeżeli data deklaracji VAT-7 jest różna od daty wystawienia faktury zakupu:

'1'='1' AND (100 * YEAR(VaN_DataWys) + MONTH(VaN_DataWys)) <> Van_DeklRokMies

Dla metody kasowej:

'1'='1' AND Exists (Select * From CDN.VatTab7 Where Va7_VaNID=VaN_VaNID And (VAN_RokMies
<> Va7_RokMiesiac or (100*Year (VaN_DataOpe) + month (VaN_DataOpe)) <> Va7_RokMiesiac))

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

Kwota netto ma zostać zaksięgowana na konto 311 (niesłownikowe) z podziałem na analityki w oparciu o grupy towarowe, np.:

311-01 - AKCESORIA

311-02 - ROŚLINY

311-03 – SPRZĘT

W schemacie księgowym należy utworzyć trzy pozycje z poniższymi odpowiednio warunkami:

Pozycja 1:

'1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16 Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'AKCESORIA')

Pozycja 2:

'1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16
Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'ROŚLINY')

Pozycja 3:

'1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16
Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'SPRZĘT')

Można jeszcze skorzystać z innej, prostszej możliwości zaksięgowania. Gdyby 311 było kontem słownikowym (z podpiętym słownikiem Towary i podziałem na grupy), to takiego księgowania można dokonać automatem, zaznaczając w poszczególnych pozycjach schematu - Podział na słowniki: Towary.

W takiej sytuacji do analityki konta 311-01 - AKCESORIA będą podpięte subanalityki dla poszczególnych towarów.

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

Sytuacja wygląda następująco:

Dokument: Kompletacja – Przyjęcia produktówDokument: Kompletacja – Rozchody składników
Towar złożony należący do GRUPA1Towar1 – należy do GRUPA2
Towar2 – należy do GRUPA3

Księgujemy dokument: Kompletacja – Rozchody składników: chodzi o to aby zaksięgować kwotę np. @PozNetto, na wybrane konto jeżeli grupa, do której należy towar złożony wybrany na dokumencie: Kompletacja – Przyjęcia produktów, należy do GRUPA1.

Takiej operacji można dokonać schematami warunkowymi. W warunku należy wpisać:

'1'='1' AND EXISTS ( SELECT * FROM CDN.TraElem B JOIN CDN.Towary C
ON B.TrE_TwrId = C.Twr_TwrId JOIN  CDN.TwRGrupy D on C.TwR_TwGGIDNumer=D.TwG_GIDNumer and D.TwG_GIDTyp=-16
WHERE B.TrE_TrEId = CDN.TraElem.TrE_TrEIdProd AND D.TwG_Kod = 'GRUPA1' )

Jeżeli grup jest więcej i każda księgowana jest na inne konto analityczne – należy stworzyć osobną pozycję w schemacie dla każdej z nich.

Jeżeli na podane konto chcemy księgować określoną kwotę w sytuacji gdy grupa do jakiej należy towar złożony wybrany na PWP to GRUPA1 i jednocześnie towar na dokumencie RWS należy do grupy GRUPA2 to warunek powinien wyglądać następująco:

'1'='1' And Exists (Select * From CDN.Towary JOIN  CDN.TwRGrupy on TwR_TwGGIDNumer=TwG_GIDNumer and TwG_GIDTyp=-16
Where Twr_TwrId = TrE_TwrId And TwG_Kod  = 'GRUPA2') AND EXISTS ( SELECT * FROM CDN.TraElem B JOIN CDN.Towary C
ON B.TrE_TwrId = C.Twr_TwrId JOIN  CDN.TwRGrupy D on C.TwR_TwGGIDNumer=D.TwG_GIDNumer and D.TwG_GIDTyp=-16
WHERE B.TrE_TrEId = CDN.TraElem.TrE_TrEIdProd AND D.TwG_Kod = 'GRUPA1' )

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

W pozycji schematu dla rejestru VAT, w polu Opis, należy wpisać:

@Dokument + ' ' + LTRIM(STR(VaN_Lp)) + ' '+ @Rejestr

Makro @Dokument może zostać zastąpione innym istniejącym makrem – chodzi o to, aby program wiedział do jakiej tabeli ma się odwołać.

Ponieważ Liczba porządkowa jest liczbą, SQL nie radzi sobie z dodaniem jej do tekstu.

Należy wykonać jawną konwersję danych, np:

@Dokument + ' ' + STR(VaN_Lp)

Ponieważ jednak funkcja STR dodaje spacje na początku liczby, więc żeby się ich pozbyć, można zapisać wyrażenie następująco:

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

@NumerPelny LIKE '%MAGAZYN/SERIA%'

Wówczas podana kwota, zostanie zaksięgowana na wskazane konta jeżeli numer faktury będzie zawierał ciąg znaków: ‘MAGAZYN/SERIA’. Warunek może być zastosowany dla faktury sprzedaży i zakupu księgowanych
z modułu Faktury.

Czy takiego warunku można też użyć przy księgowaniu faktur zakupu z poziomu rejestru VAT?

Tak, warunek księgowania powinien wyglądać tak:

'1'='1' AND exists (select * from CDN.TraNag where VaN_VaNID=TrN_VaNId AND TrN_NumerPelny LIKE '%MAGAZYN/SERIA%')

Patrz też pytania nr:

    1. Jak uzależnić księgowanie dokumentów z ewidencji dodatkowej na poszczególne konta od symbolu użytego w schemacie numeracji?
    1. Jak w warunku schematu dla WZ odwołać się do symbolu/serii w numerze faktury do której zostało wystawione WZ?

 

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

Należy zdefiniować funkcję serwerową. Poniżej przykład takiej funkcji:

Create Function CDN.MojeFunkcje_Podaj_TrN_NumerPelny (@VaNId Int) Returns VarChar(31) As  Begin
Declare @Numer VarChar(31)
Set @Numer = IsNull((Select Top 1 TrN_NumerPelny From CDN.TraNag Where TrN_VaNId = @VaNId), '')
Return @Numer
End

Jeżeli chcemy to umieścić w opisie, to musi się znaleźć w "towarzystwie" co najmniej jednego makra, np.:

@Dokument + ' ' + CDN.MojeFunkcje_Podaj_TrN_NumerPelny (VaN_VaNId)

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

Dla księgowania faktur z modułu Faktury:

'1'='1' AND TrN_Termin BETWEEN Convert(DateTime, '2018-01-01', 120) AND Convert(DateTime, '2018-01-31', 120)

Podana w elemencie schematu kwota, zostanie zaksięgowana na zadane konta jeżeli termin płatności faktury będzie zawierał się między 2018-01-01 a 2018-01-31.

Dla księgowania faktur z Rejestrów VAT:

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

W warunku należy wpisać:

'1'='1' and Exists (Select * From CDN.PracEtaty Where WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo And CDN.DzialSciezka(PRE_DZLId) = 'FIRMA\WYDZIAŁ1\PODWYDZIAŁ1')

WYDZIAŁ1 to nazwa wydziału w którego skład wchodzi PODWYDZIAŁ1. Pracownik ma podpięty na karcie PODWYDZIAŁ1.

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

Wartości FP i FGŚP obliczone dla składników wynagrodzeń poszczególnych pracowników, są umieszczone
w tabeli CDN.WypElementy w polach: WPE_SklFP i WPE_SklFGSP. Do ww. tabeli odwołuje się np. makro kwoty @Brutto. Aby zaksięgować kwotę FP i FGŚP obliczoną dla poszczególnych pracowników przypisanych do konkretnego wydziału, należy w elemencie schematu, w polu Kwota, użyć wyrażenia:

Dla księgowania FP:

@Brutto - @Brutto + WPE_SklFP

Dla księgowania FGŚP:

@Brutto - @Brutto + WPE_SklFGSP

W warunku należy użyć wyrażenia dotyczącego Wydziału (@Wydzial) lub opisanego w pytaniu 30. Jak w schemacie księgowania podzielić wynagrodzenia wg wydziałów przy czym na jedną listę wchodzą pracownicy
z kilku wydziałów?

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

W warunku można użyć następującego wyrażenia:

'1'='1' AND exists ( select * from CDN.BnkRozRelacje join CDN.BnkZdarzenia on BRR_DDokID = BZd_BZdID AND BRR_DDokTyp=1 join CDN.FormyPlatnosci on BZd_FPlId = FPl_FPlId where BZp_BZpID=BRR_ZDokID AND BRR_ZDokTyp=2 AND BZd_Termin<>BZd_DataDok AND BZd_DokumentTyp IN (1,2) AND FPl_Typ=1)

Warunek sprawdza daty i formę płatności zdarzenia w Preliminarzu. Uwzględnia więc sytuację, w której płatność do faktury została podzielona na raty. Natomiast w sytuacji gdy jest jedna płatność, która rozlicza kilka faktur i co najmniej jedna z nich spełnia powyższy warunek - KP/KW zostanie zaksięgowane.

Pole FPl_Typ=1 oznacza, że typ formy płatności to "gotówka" (takich form zdefiniowanych w programie może być wiele i wszystkie zostaną wzięte pod uwagę). Jeżeli warunek ma dotyczyć tylko konkretnej formy płatności, która ma identyfikator np. 1 to zamiast powyższego należy wpisać: FPl_FPlId=1.

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

W jednej z firm, program fakturujący oblicza wartości detaliczne danej faktury. Wartość ta jest przenoszona do kwot dodatkowych na fakturze w Rejestrze VAT w Comarch ERP Optima. Z wartości detalicznej brutto należy obliczyć jaka kwota marży przypada na wartość netto i jaka na wartość VAT. Wzór na obliczenie tych kwot wygląda następująco:

Kwota marży przypadająca na wartość netto:

@KwotaDodat-(@VAT*(@KwotaDodat-@Brutto)/@Brutto)-@Brutto

Kwota marży przypadająca na wartość VAT:

@VAT+(@VAT*(@KwotaDodat-@Brutto)/@Brutto

Schemat wygląda następująco:

Wn

221 (kwota VAT-u z faktury) 3,06

332 (Kwota dodatkowa) 55,50

Ma

201 (kwota brutto z faktury - konto kontrahenta) 46,81

341 (Kwota marży przypadającej na wartość netto) 8,12

342 (kwota marży przypadającej na wartość VAT) 3,63

Po wprowadzeniu takiej formuły do pozycji schematu, pojawia się komunikat o błędzie połączenia makr z elementów i nagłówka.

Problem ten można rozwiązać wykorzystując fakt, że "makra" (symbole kwot zaczynające się od @) są w procesie księgowania "tłumaczone" na nazwy pól w bazie danych.

Odpowiednio

@VAT odpowiada wartości pola VaN_RazemVAT

@Brutto odpowiada wartości pola VaN_RazemBrutto

Przy czym w konstrukcji schematu możliwe jest wykorzystanie obok "makr" również nazw pól w bazie.

Użycie nazwy pola w bazie skutkuje przy okazji tym, że nie jest ono uwzględniane w sprawdzaniu typów użytych makr.

Reasumując – można przygotować schemat:

Konto WnKonto MaKwota
221@Vat
332@KwotaDodat
201@Brutto (z podziałem na podmioty)
341@KwotaDodat - VaN_RazemBrutto - ROUND ( VaN_RazemVAT * ( @KwotaDodat - VaN_RazemBrutto ) / VaN_RazemBrutto, 2 )
342VaN_RazemVat + ROUND ( VaN_RazemVAT * ( @KwotaDodat - VaN_RazemBrutto ) / VaN_RazemBrutto, 2 )

Uwaga
Użycie funkcji ROUND jest tu wskazane - gdyby wynik podziału marży dał w końcówce równe 0.005 to efekcie oba księgowania (na konta 341 i 342) zostałyby zaokrąglone w górę i dostalibyśmy 1 grosz za dużo.

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

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

Przypadek dotyczył sytuacji gdy klient księgował używając kategorii na konta zespołu „4” i chciał księgować na konta zespołu „5” w zależności od tego czy opis na karcie środka trwałego zawierał dany ciąg znaków. Na karcie środka trwałego są dwa pola opisowe, które można wykorzystać: Opis kategorii (czyli to pole po prawej stronie od Kategorii) i pole Opis. W schemacie można odwołać się do nich w następujący sposób:

Dla opisu kategorii na karcie środka w warunku należy wpisać np.:

'1'='1' AND EXISTS (Select * from CDN.Trwale where SrT_SrTID=SrH_SrTID and SrT_Kategoria LIKE '%550%')

Dla Opisu na karcie w warunku należy wpisać np.:

'1'='1' AND EXISTS (Select * From CDN.Trwale Where SrT_SrTID=SrH_SrTID And  SrT_Opis LIKE '%550%')

Warunki oznaczają, że podana kwota zostanie zaksięgowana jeżeli opis zawiera wyrażenie '550'.

Aby schemat zadziałał poprawnie w Opisie elementu schematu należy użyć makro, które odwołuje się do karty środka trwałego np. @ST_NrInwent (czyli Numer inwentarzowy).

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

Dodatkowo istnieje potrzeba wpisania warunku, że jeśli wynik będzie dodatni to kwota ma zostać zaksięgowana na określone konta.

Taki warunek można zawrzeć w definicji kwoty:

LpKonto Wn Konto Ma Kwota
1760340CASE WHEN @KwotaDodat > VaN_RazemNetto THEN @KwotaDodat - VaN_RazemNetto ELSE 0 END
2340760CASE WHEN @KwotaDodat < VaN_RazemNetto THEN VaN_RazemNetto - @KwotaDodat ELSE 0 END

Uwaga
Jeśli na liście kwot dodatkowych będzie wpisane więcej niż jedna kwota, to każda z nich będzie porównywana z wartością netto oddzielnie –
w szczególności, jeśli jedna z tych kwot będzie większa od netto, a druga mniejsza, to powstaną dwa zapisy.

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

Jeżeli istnieje konieczność porównania sumy kwot dodatkowych z wartością netto, to można posłużyć się odpowiednią funkcją serwerową.

Przykład funkcji dla sumy kwot dodatkowych większej od netto:

create function cdn.KwotyDW (@VaNId Int)
returns Decimal(15,2)
as
begin
declare @wynik Decimal(15,2)
select @wynik = Sum(Kdd_Kwota) - VaN_RazemNetto
from CDN.KwotyDodatkowe join cdn.vatnag on Kdd_DokumentID=VaN_VaNID
where Kdd_DokumentID = @VaNId AND KDD_DokumentTyp=2 group by VaN_RazemNetto having
Sum(Kdd_Kwota) > VaN_RazemNetto
return IsNull(@wynik,0)
end

W schemacie, w polu Kwota należy wpisać:

'0' + cdn.KwotyDW(VaN_VaNID)

Dla sumy kwot dodatkowych mniejszych:

create function cdn.KwotyDM (@VaNId Int)
returns Decimal(15,2)
as
begin
declare @wynik Decimal(15,2)
select @wynik = VaN_RazemNetto - Sum(Kdd_Kwota)
from CDN.KwotyDodatkowe join cdn.vatnag on Kdd_DokumentID=VaN_VaNID  where  Kdd_DokumentID = @VaNId AND KDD_DokumentTyp=2 group by VaN_RazemNetto having  Sum(Kdd_Kwota) < VaN_RazemNetto
return IsNull(@wynik,0)
end

W schemacie, w polu Kwota należy wpisać:

'0' + cdn.KwotyDM(VaN_VaNID)

Warunku w ww. funkcjach nie uwzględniają sytuacji gdy suma kwot dodatkowych jest równa razem netto.

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

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

W celu uzyskania sumy kwot dodatkowych Wn i Ma należy stworzyć funkcję serwerową. Poniżej przykład funkcji:

a) dla sumy kwot dodatkowych Wn

create function cdn.SumaKwotyDodWn (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2)
select @wynik = Sum(Kdd_Kwota)
from CDN.KwotyDodatkowe
where Kdd_DokumentID=@VaNId AND KDD_DokumentTyp=2 AND Kdd_Segment1<>''
return IsNull(@wynik,0) end

Kwotę w schemacie należałoby zapisać jako:
'0' + cdn.SumaKwotyDodWn(VaN_VaNID)
b) dla sumy kwot dodatkowych Ma
create function cdn.SumaKwotyDodMa (@VaNId Int) returns Decimal(15,2) as begin declare @wynik Decimal(15,2)
select @wynik = Sum(Kdd_Kwota)
from CDN.KwotyDodatkowe
where Kdd_DokumentID=@VaNId AND KDD_DokumentTyp=2 AND Kdd_Segment2<>''
return IsNull(@wynik,0) end

Kwotę w schemacie należałoby zapisać jako:
'0' + cdn.SumaKwotyDodMa(VaN_VaNID)
Aby uzyskać następującą kwotę: suma kwot dodatkowych Wn minus suma kwot dodatkowych Ma minus razem netto, jako kwotę w schemacie można wpisać:
'0' + (cdn.SumaKwotyDodWn(VaN_VaNID) - cdn.SumaKwotyDodMa(VaN_VaNID)) - VaN_RazemNetto
Patrz też pytanie nr: 28. Jak w schemacie dla Rejestrów VAT zdefiniować kwotę, która jest różnicą pomiędzy kwotą dodatkową i kwotą netto faktury?

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

Chodzi o przypadek, gdy kwota płatności jest rozbijana na kilka rat lub będzie płacona kilkoma formami płatności np. część gotówką, a pozostała część przelewem.

Należy zdefiniować funkcję serwerową. Przykład takiej funkcji (w przypadku księgowania z poziomu rejestrów VAT) poniżej:

if exists (select * from sysobjects where name = 'userKwotaFormyPlatnosci' and xtype = 'FN')
drop function CDN.userKwotaFormyPlatnosci
GO
create function CDN.userKwotaFormyPlatnosci (@vanid int, @nazwa varchar(20))
returns numeric (15,2)
as
begin
declare @wynik numeric (15,2)
if exists (select * from cdn.vatnag where van_vanid = @vanid and van_trnid is not null)
--- to jest przypadek zapisu zaksięgowanego z listy faktur:
select @wynik = isnull(sum(bzd_kwotasys),0)
from cdn.bnkzdarzenia
join cdn.formyplatnosci on bzd_fplid = fpl_fplid
join cdn.tranag on bzd_dokumenttyp = 1 and bzd_dokumentid = trn_trnid
where fpl_nazwa = @nazwa
and trn_vanid = @vanid
else
--- to jest przypadek zapisu "ręcznego":
select @wynik = isnull(sum(bzd_kwotasys),0)
from cdn.bnkzdarzenia
join cdn.formyplatnosci on bzd_fplid = fpl_fplid
where fpl_nazwa = @nazwa
and bzd_dokumenttyp = 2 and bzd_dokumentid = @vanid
return @wynik
end
GO

Schemat wyglądałby wówczas np. tak
Konto Kwota
201 '0' + CDN.userKwotaFormyPlatnosci (VaN_VaNId, 'PRZELEW')
100 '0' + CDN.userKwotaFormyPlatnosci (VaN_VaNId, 'GOTÓWKA')
W tym wypadku funkcji używamy w kwocie, a nie w warunku.
W przypadku księgowania dokumentów z poziomu listy faktur w module Handel/Faktury funkcja wygląda następująco:
create function CDN.userKwotaFormyPlatnosciFA (@trnid int, @nazwa varchar(20))
returns numeric (15,2)
as
begin
declare @wynik numeric (15,2)
select @wynik = isnull(sum(bzd_kwotasys),0)
from cdn.bnkzdarzenia
join cdn.formyplatnosci on bzd_fplid = fpl_fplid
where fpl_nazwa = @nazwa
and bzd_dokumenttyp = 1 and bzd_dokumentid = @trnid
return @wynik
end

Przykładowe odwołanie do funkcji w polu Kwota schematu:
'0' + CDN.userKwotaFormyPlatnosciFA (TrN_TrNId, 'PRZELEW')

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

Jest to możliwe. Należy stworzyć funkcję serwerową, która odczyta segment konta z kategorii ogólnej np. mamy kategorię ogólną ENERGIA, która ma jako segment Wn konta wybrane konto 402 i mamy kategorie szczegółowe do niej:

Kategoria ogólnaKategoria szczegółowaSegment Konto Wn
ENERGIA402
ENERGIA_PRODUKCJA501-02
ENERGIA_HANDEL505-02
ENERGIA_ZARZĄD510-02

Na dokumencie wybieramy kategorie szczegółowe pozycji, za pomocą których będziemy dokonywać księgowań na konta zespołu „5”, natomiast na kategorii ogólnej mamy informację o koncie zespołu „4”. Segment konta Wn z kategorii pozycji szczegółowej, można pobrać za pomocą standardowo dostępnego makra: @KatElemKontoWn. Segment konta z kategorii ogólnej pozycji można poprać za pomocą funkcji serwerowej. Poniżej przykład takiej funkcji:
Create Function CDN.A (@VaNID INT)
Returns VarChar(50)
As
Begin
Declare @Wynik VarChar(50)
Select @Wynik = KatOgol.Kat_KontoSegmentWN
From CDN.VatTab
Join CDN.VatNag On VaT_VaNID=VaN_VaNID
Join CDN.Kategorie KatSzczeg On VaT_KatId = KatSzczeg.Kat_KatId
Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol
Where VaN_VaNId = @VaNId
Set @Wynik = IsNull(@Wynik,'')
Return @Wynik
End

W polu Konto Wn należy wpisać:
SUBSTRING(@KatElemKontoWn,1,0) +CDN.A(VaN_VaNID)
Przykład funkcji pobierającej konto segment Wn z kategorii ogólnej pobieranej na podstawie kategorii szczegółowej wybranej w nagłówku dokumentu:
Create Function CDN.B (@VaNID INT)
Returns VarChar(50)
As
Begin
Declare @Wynik VarChar(50)
Select @Wynik = KatOgol.Kat_KontoSegmentWN
From CDN.VatNag
Join CDN.Kategorie KatSzczeg On VaN_KatId = KatSzczeg.Kat_KatId
Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol
Where VaN_VaNId = @VaNId
Set @Wynik = IsNull(@Wynik,'')
Return @Wynik
End

W polu Konto Wn należy wpisać:
SUBSTRING(@KatNagKontoWn,1,0) +CDN.B(VaN_VaNID)
Konstrukcja poprzednich funkcji zakłada, że na dokumencie jest tylko jedna pozycja, bądź w przypadku kilku pozycji – że wszystkie pozycje zawierają kategorie szczegółowe należące do jednej kategorii ogólnej. W przypadku kiedy na księgowanym dokumencie znajduje się więcej niż jedna pozycja z różnymi kategoriami ogólnymi, należy zastosować poniższą, bardziej rozbudowaną funkcję:
Create Function CDN.AB (@VaNID INT, @KategoriaElem varchar(20))
Returns VarChar(50)
As
Begin
Declare @Wynik VarChar(50)
Select @Wynik = KatOgol.Kat_KontoSegmentWN
From CDN.VatTab
Join CDN.VatNag On VaT_VaNID=VaN_VaNID
Join CDN.Kategorie KatSzczeg On VaT_KatId = KatSzczeg.Kat_KatId
Join CDN.Kategorie KatOgol On KatSzczeg.Kat_KodOgolny = KatOgol.Kat_KodSzczegol
Where VaN_VaNId = @VaNId and KatSzczeg.Kat_KodSzczegol = @KategoriaElem
Set @Wynik = IsNull(@Wynik,'')
Return @Wynik
End

Odwołanie do funkcji w pozycji Konto Wn schematu:
SUBSTRING(@KatElemKontoWn,1,0) +CDN.AB(VaN_VaNID, Kat_KodSzczegol)

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

W tym przypadku również można posłużyć się funkcją serwerową, która pobierze kod kontrahenta z Faktury i zbuduje na tej podstawie odpowiednią analitykę konta np. 201. Poniżej przykład funkcji, która pobierze kod kontrahenta z faktury:
Create Function CDN.C (@BZpID INT)
Returns VarChar(20)
As
Begin
Declare @Kontr VarChar(20)
Select @Kontr = Knt_Kod
From cdn.BnkRozRelacje
Join CDN.BnkZdarzenia on BRR_DDokID=BZd_BZdID
Join CDN.BnkZapisy on BZp_BZpID=BRR_ZDokID
Join cdn.tranag A on BZd_DokumentID=A.TrN_TrNID
Join cdn.TraNagRelacje on A.TrN_TrNID=TrR_FaId
Join cdn.tranag B on TrR_TrNId=B.TrN_TrNID
Join cdn.kontrahenci on B.TrN_PodID=Knt_KntId
Where BRR_ZDokTyp=2 AND BZd_DokumentTyp=1 AND BRR_DDokTyp=1 AND B.TrN_PodmiotTyp=1 AND TrR_TrNTyp=302 AND BZp_BZpID=@BZpID
Return @Kontr
End

W schemacie księgowym dla raportu kasowo/bankowego, jako konto należy wpisać:
SUBSTRING(@KontoRach,1,0) +'201-'+CDN.C(BZp_BZpID)
Konto musi istnieć już w planie kont (czyli najpierw sugerujemy księgowanie faktury).
Do warunku takiej pozycji schematu można wstawić wyrażenie, które sprawdzi czy dany dokument kasowy jest powiązany z fakturą, która została przekształcona z paragonu.
'1'='1' AND EXISTS (select * From cdn.BnkRozRelacje join CDN.BnkZdarzenia on BRR_DDokID=BZd_BZdID join cdn.tranag on BZd_DokumentID=TrN_FaId where BRR_ZDokTyp=2 AND BZd_DokumentTyp=1 AND BRR_DDokTyp=1 AND TrN_PodmiotTyp=1 AND BZp_BZpID=BRR_ZDokID and TrN_TypDokumentu=302)

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

W tym przypadku również można posłużyć się funkcją serwerową, która pobierze kod kontrahenta (Odbiorcy) z Faktury i zbuduje na tej podstawie odpowiednią analitykę konta np. 201. Dodatkowo funkcja zamienia w akronimie kontrahenta znaki spacji, kropki i myślnika na znak podkreślenia ponieważ konta w planie kont nie mogą zawierać takich znaków. Poniżej przykład funkcji, która pobierze kod Odbiorcy z faktury:

Create Function CDN.G (@TrnId Int)
Returns VarChar(20)
As
Begin
Declare @Kontr VarChar(20)
Select @Kontr = REPLACE(REPLACE(REPLACE(Knt_Kod, ' ', '_'), '.', '_'), '-', '_')
FROM CDN.TraNag
Join cdn.kontrahenci on TrN_OdbID=Knt_KntId
AND TrN_OdbiorcaTyp=1 AND TrN_TrNID=@TrnId
Return @Kontr
End

W schemacie dla księgowania Faktur z modułu Faktury należy wpisać np.:
LEFT(@Opis,0)+'201-'+CDN.G(TrN_TrNID)
Konto musi istnieć już w planie kont.
Przykład dla przypadku gdy faktury są księgowane z Rejestru VAT:
Create Function CDN.B (@VaNID INT)
Returns VarChar(20)
As
Begin
Declare @Kontr VarChar(20)
Select @Kontr = REPLACE(REPLACE(REPLACE(Knt_Kod, ' ', '_'), '.', '_'), '-', '_')
From cdn.TraNag
Join CDN.VatNag on VaN_VaNID=TrN_VaNId
Join cdn.kontrahenci on TrN_OdbID=Knt_KntId
AND TrN_OdbiorcaTyp=1 AND VaN_VaNId=@VaNID
Return @Kontr
End

W schemacie dla księgowania Faktur z Rejestru VAT należy wpisać np.:
LEFT(@Opis,0)+'201-'+CDN.B(VaN_VaNId)

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

Klient chce rozksięgować dokument na konto 201 wg wzorca: 201-kontrahent-kategoria. Nie da się w takiej sytuacji zastosować podziału na słowniki kontrahentów ponieważ po analityce kontrahenta ma być jeszcze jedna analityka. W takiej sytuacji można posłużyć się makrem @KodPodmiotu, które jest obecne m.in. w schematach dla Rejestrów VAT i Ewidencji dodatkowych. Za pomocą ww. makra pobierzemy kod kontrahenta, natomiast za pomocą dostępnych standardowo makr dotyczących segmentów kont na kategoriach, pobierzemy analitykę przypisaną do kategorii. W polu Konto Wn lub Konto Ma wystarczy więc wpisać np. (dla ewidencji dodatkowej):

'201-'+@KodPodmiotu+'-'+@KontoKatWn

Konta w planie kont muszą istnieć przed księgowaniem. Ewentualnie musi istnieć konto syntetyczne – jeżeli będzie zaznaczony parametr o automatycznym zakładaniu kont niesłownikowych – konta się założą. Konta będą kontami zwykłymi – nie słownikowymi.

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

W schemacie księgowym można posłużyć się istniejącą funkcją, która pobiera dane z poszczególnych pól deklaracji (z tabeli CDN.DeklElem):

CDN.KwotaKsiegDekl (DkN_DkNId, DkE_Numer)

W funkcji należy podać właściwą wartość dla pola DkE_Numer  i tak np. dla wzoru 18 deklaracji VAT-7 będzie to wartość:

10500 - Dostawa towarów oraz świadczenie usług na terytorium kraju, zwolnione od podatku (poz. 10 na VAT-7)

10550 - Dostawa towarów oraz świadczenie usług, poza terytorium kraju (poz. 11 na VAT-7)

10510 – w tym świadczenie usług, o których mowa w art.100 ust.1 pkt 4 ustawy (poz.12 na VAT-7)

10700 – Dost. towarów oraz świadczenie usług na terytorium kraju, opodatk. stawką 0% (poz. 13 na VAT-7)

10705 – w tym dostawa towarów, o której mowa w art.129 ustawy (poz.14 na VAT-7)

10710 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 3% albo 5% - netto

10720 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 3% albo 5% - VAT

11400 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 7% albo 8% - netto

11500 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 7% albo 8% - VAT

11600 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 22% albo 23% - netto

11700 - Dostawa towarów oraz świadczenie usług na terytorium kraju, opodatkowane stawką odpowiednio 22% albo 23% - VAT

11710 – Wewnątrzwspólnotowa dostawa towarów

10600 – Eksport towarów

11730 – Wewnątrzwspólnotowe nabycie towarów – netto

11740 – Wewnątrzwspólnotowe nabycie towarów – VAT

11742 – Import towarów, podlegający rozliczeniu zgodnie z art. 33a ustawy – netto

11744 - Import towarów, podlegający rozliczeniu zgodnie z art. 33a ustawy – VAT

11750 – Import usług – netto

11760 – Import usług – VAT

11762 – w tym nabycie od podatników podatku od wartości dodanej usług, do których stosuje się art. 28b ustawy
– netto

11764 - w tym nabycie od podatników podatku od wartości dodanej usług, do których stosuje się art. 28b ustawy
– VAT

11770 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 31 deklaracji) – kwota netto

11780 – Dostawa towarów, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 5 (pole 32 deklaracji) – kwota netto

11781 – Dostawa towarów, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 5 (pole 33 deklaracji) – kwota VAT

11791 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 34 deklaracji) – kwota netto

11792 – Dostawa towarów oraz świadczenie usług, dla których podatnikiem jest nabywca  - art. 17 ust. 1 pkt 7 lub 8 (pole 35 deklaracji) – kwota VAT

12000 – Kwota podatku należnego od towarów i usług objętych spisem z natury, o którym mowa w art.14 ust.5 ustawy

12005 - Zwrot odliczonej lub zwróconej kwoty wydatkowanej na zakup kas rejestrujących, o którym mowa w art.111 ust.6 ustawy

12010 – Kwota podatku należnego od wewnątrzwspólnotowego nabycia środków transportu

12011 - Kwota podatku od wewnątrzwspólnotowego nabycia paliw silnikowych

Tak więc aby zaksięgować kwotę VAT w stawce 22% albo 23% (pole 20. na deklaracji VAT-7) należy wpisać w polu Kwota elementu schematu księgowego np. takie wyrażenie:

@Vat7Nalezny - @Vat7Nalezny + CDN.KwotaKsiegDekl (DkN_DkNId, 11700)

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

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

i wykorzystanie w schemacie:
CDN.ObrotyMa('221-2', DkN_RokMiesiac) - @Vat7Nalezny

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

Zarówno dokument Wydania zewnętrznego (WZ) jak i faktura z tym dokumentem powiązana, są zapisane w tej samej tabeli CDN.TraNag. W tej sytuacji warunek można zbudować następująco:

'1'='1' And Exists (Select * From CDN.TraNag FA Where CDN.TraNag.TrN_FaId = FA.TrN_TrNId And Fa.TrN_NumerPelny Like 'FA%SERIA')

Patrz też pytania nr:

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

20. Jak zaksięgować fakturę zakupu, żeby w schemacie księgowania w warunku zastosować fragment numeru dokumentu np MAGAZYN i SERIA z numeru FZ/99/MAGAZYN/SERIA?

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

Należy w tym celu skonstruować funkcję serwerową, która odczyta numer faktury. Funkcja może wyglądać tak:
Create Function CDN.NumerFa (@TrNId Int)
Returns VarChar(30)
As
Begin
Declare @Numer VarChar(30)
Select Top 1 @Numer = TrN_NumerPelny From CDN.TraNag Where TrN_TrNId = @TrNId
Return IsNull(@Numer, '')
End

W opisie schematu księgowań należy podać jakiekolwiek istniejące makro razem z odwołaniem do ww. funkcji, np. w ten sposób:
@NumerPelny + ' ' + CDN.NumerFa (TrN_FaId)

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

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

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

Od wersji 8.0 systemu zmienił się sposób zapisywania form płatności dla pracowników. Są one zapisywane w osobnej tabeli: CDN.SchematPlatnosci. W związku z czym, o ile w poprzednich wersjach działał warunek:

Exists (Select * From CDN.PracEtaty join CDN.FormyPlatnosci on PRE_FplId=FPl_FPlId Where WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo AND FPl_Typ=1) AND @TypWyplaty ='dzieło 20%'
Od wersji 8.0 warunek powinien wyglądać następująco:
Exists (Select * From CDN.PracEtaty join cdn.SchematPlatnosci on PRE_PreId = SPL_PodmiotId join CDN.FormyPlatnosci on SPL_FplId=FPl_FPlId Where SPL_PodmiotTyp = 3 and WPL_PraId = PRE_PraId AND WPL_DataDok Between PRE_DataOd And PRE_DataDo AND FPl_Typ=1) AND @TypWyplaty ='dzieło 20%'
FPl_Typ=1 oznacza formę płatności typu „gotówka”.

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

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

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

Warunek dla pozycji schematu wykorzystującej konto przeciwstawne gdy jest zaznaczone księgowanie walutowe:
'1'='1' and exists (select * from CDN.Konta where Acc_Numer like @KontoPrzeciw + '%' and Acc_Waluta<>'')
Warunek dla pozycji schematu wykorzystującej konto przeciwstawne gdy nie jest zaznaczone księgowanie walutowe:
'1'='1' and not exists (select * from CDN.Konta where Acc_Numer like @KontoPrzeciw + '%' and Acc_Waluta<>'')
W Biuletynie technicznym nr 22 został przedstawiony przykład schematu księgowego wykorzystujący ww. warunki.

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

Mamy w planie kont np. konta  501-1-1-401-01 i np. 501-1-1-402-01. Odpowiednikiem tych kont w zespole „4” są 400-401-01 i 400-402-01. W rejestrze VAT wprowadzamy na fakturze w Kwotach dodatkowych konta zespołu „5”. Chcemy żeby „4” podstawiała się automatycznie na podstawie „5”.

W schemacie księgowym, jako definicję konta można wpisać:

'400-'+SUBSTRING(@KontoDodatWn,9,6)

Jeżeli w kwocie dodatkowej wybierzemy konto 501-1-1-401-01, to po zaksięgowaniu otrzymamy konto 400-401-01.

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

W warunku schematu dotyczącym księgowania na konto pracowników należy wpisać:

'1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_TypPracownika=0)

W warunku schematu dotyczącym księgowania na konto wspólnika należy wpisać:

'1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_TypPracownika=1)

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

W warunku można wpisać:

'1'='1' AND exists (select * from CDN.PracEtaty where VaN_PodZalId=Pre_PraID AND VaN_PodmiotZalTyp=3 AND PRE_Kod='KOWALSKI')

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

Jeżeli pozycja schematu zawiera konto słownikowe pracownika i podział na słowniki: Zaliczkobiorcy to w opisie można wstawić następujące wyrażenie:

''+(select top 1 PRE_Kod from CDN.PracEtaty where Pre_PraID = VaN_PodZalId and VaN_PodmiotZalTyp=3)

Jeżeli daną pozycją schematu księgujemy kwotę na konto kontrahenta (czyli jest podział na słowniki: Podmioty) a w opisie chcemy mieć informację o kodzie zaliczkobiorcy, należy użyć funkcji:

Create Function CDN.MojeFunkcje_KodZaliczkobiorcy (@VaNId Int) Returns VarChar(31) As  Begin
Declare @Kod VarChar(50)
Set @Kod = IsNull((select top 1 PRE_Kod from CDN.PracEtaty join cdn.vatnag on Pre_PraID = VaN_PodZalId and VaN_PodmiotZalTyp=3 where Van_Vanid=@VaNId), '')
Return @Kod
End

W definicji Opisu do danej pozycji schematu księgowego wpisujemy:

@Dokument + ' ' + CDN.MojeFunkcje_KodZaliczkobiorcy (VaN_VaNId)

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

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

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

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

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

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

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

W Słownikach/ Atrybuty można zdefiniować atrybut o nazwie np. „KONTO_5”, typie „lista”, i pozycjach listy odpowiadających wszystkim kontom zespołu 5, na które jest księgowana amortyzacja np. 501-01, 502-01, 503-01 itp. Na karcie środka trwałego dodajemy atrybut „KONTO_5” i wybieramy wartość odpowiadającą „piątce” np. 501-01.

W pozycji schematu księgowego odpowiadającej za księgowanie na konta zespołu „5”, w polu Konto Wn wprowadzamy definicję:

@ST_Atrybut('KONTO_5')

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

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

Od wersji Comarch ERP Optima 2019.5.1 atrybuty pozycji dokumentów z modułu Handel zapisywane są w tabeli CDN.TraElemAtr. Chcąc odwołać się w warunku schematu do kodu bądź wartości atrybutu pozycji dokumentu należy zastosować następujący warunek:

'1'='1' AND (Select TrA_Kod From CDN.TraElemAtr Where TrA_TrEId = TrE_TrEID) = 'ATR1' AND (Select TrA_Wartosc From CDN.TraElemAtr Where TrA_TrEId = TrE_TrEID) = 'WART1'

W przypadku wersji wcześniejszych niż 2019.5.1 należy zastosować poniższe warunki.

Księgując fakturę z modułu Handel są dwie możliwości:
1. Ponieważ atrybuty są zapisywane w tabeli CDN.TraElem w polach: TrE_Atr1_Kod, TrE_Atr2_Kod.... TrE_Atr5_Kod i wartości odpowiednio w polach TrE_Atr1_Wartosc do TrE_Atr5_Wartosc to można się odwołać bezpośrednio do tych pól. Założenie jednak będzie wtedy takie (aby nie komplikować warunku), że atrybut, który nas interesuje jest zawsze np. pierwszy czyli zapisywany w polach TrE_Atr1_Kod i TrE_Atr1_Wartosc.
Aby zaksięgować kwotę netto pozycji, pod warunkiem, że pierwszy atrybut to ATR1 i jego wartość to WART1 można użyć kwoty @PozNetto a w warunku:
'1'='1' AND TrE_Atr1_kod='ATR1' AND TrE_Atr1_Wartosc='WART1'
2. Jeżeli atrybut, który nas interesuje może być zapisany na różnych miejscach to aby nie tworzyć bardzo złożonego warunku można użyć funkcji, której jako parametry podamy kod atrybutu i wartość. Funkcja będzie użyta w kwocie schematu np.
Create Function CDN.userKwotaElementuZAtrybutem (@Treid int, @KodAtrybutu varchar(255), @WartoscAtrybutu varchar(255), @Typ varchar(10))
Returns Decimal (15,2)
As
Begin
Declare @Wynik Decimal(15,2)
if exists (
select * from CDN.TraElem
where TrE_TrEID = @TrEId
and ( TrE_Atr1_Kod = @KodAtrybutu and TrE_Atr1_Wartosc=@WartoscAtrybutu
or TrE_Atr2_Kod = @KodAtrybutu and TrE_Atr2_Wartosc=@WartoscAtrybutu
or TrE_Atr3_Kod = @KodAtrybutu and TrE_Atr3_Wartosc=@WartoscAtrybutu
or TrE_Atr4_Kod = @KodAtrybutu and TrE_Atr4_Wartosc=@WartoscAtrybutu
or TrE_Atr5_Kod = @KodAtrybutu and TrE_Atr5_Wartosc=@WartoscAtrybutu
) )
begin
set @Wynik = CDN.TraKwoty( @TrEId, @Typ, Null, Null)
end
Return IsNull( @Wynik, 0 )
End

W definicji kwoty wpisujemy:
@PozNetto - @PozNetto + CDN.userKwotaElementuZAtrybutem(TrE_TrEId, 'ATRYBUT', 'WARTOŚĆ', 'PN')
'PN' - oznacza kwotę netto. 'PB' oznaczałoby kwotę brutto pozycji.

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

Na karcie kontrahenta jest m.in. przypięty atrybut o nazwie KONTO, którego wartość odpowiada symbolowi konta, które ma być użyte do księgowania faktury z Rejestru VAT. Chcemy tak zdefiniować w pozycji schematu Konto Wn aby podstawiała się do niej wartość tego atrybutu przypięta do kontrahenta wybranego na fakturze.
W takiej sytuacji trzeba skorzystać z funkcji serwerowej. Dla faktury księgowanej z Rejestru VAT funkcja może wyglądać następująco:
Create Function CDN.A (@VaNId int, @AtrybutKod varchar(255))
Returns varchar(255)
As
Begin
Declare @Wynik VarChar(255)
Set @Wynik = ''
select @Wynik = KnA_WartoscTxt
from
CDN.KntAtrybuty
join CDN.DefAtrybuty on (KnA_DeAId = DeA_DeAId)
join CDN.PodmiotyView on (KnA_PodmiotId = Pod_PodId)
join CDN.VatNag on (VaN_PodID = Pod_PodId)
where
VaN_VaNID=@VaNId and DeA_Kod=@AtrybutKod AND KnA_PodmiotTyp = Pod_PodmiotTyp AND Pod_PodmiotTyp = VaN_PodmiotTyp
Return IsNull(@Wynik, '')
End

W definicji Konta Wn wpisujemy:
LEFT(@Opis,0)+CDN.A(Van_VaNID,'KONTO')
Ponieważ w definicji konta w pozycji schematu jest ograniczona liczba znaków, jeżeli odwoływać się do atrybutów w ten sposób, należy nadawać im krótkie nazwy.
Dla faktury księgowanej z modułu Handel:
Create Function CDN.B (@TrNId int, @AtrybutKod varchar(255))
Returns varchar(255)
As
Begin
Declare @Wynik VarChar(255)
Set @Wynik = ''
select @Wynik = KnA_WartoscTxt
from
CDN.KntAtrybuty
join CDN.DefAtrybuty on (KnA_DeAId = DeA_DeAId )
join CDN.PodmiotyView on KnA_PodmiotId = Pod_PodId
join CDN.TraNag on Pod_PodId = TrN_PodID
where
TrN_TrNID=@TrNId and DeA_Kod=@AtrybutKod AND KnA_PodmiotTyp = Pod_PodmiotTyp AND Pod_PodmiotTyp = TrN_PodmiotTyp
Return IsNull(@Wynik, '')
End

W definicji konta:
LEFT(@Opis,0)+CDN.B(Trn_TrNID,'KONTO')

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

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

W definicji Kwoty w schemacie rej. VAT wpisujemy:
@Brutto-cdn.MojaFunkcja_ED(VaN_PodID,VaN_PodmiotTyp,VaN_Dokument)

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

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

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

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

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

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

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

W przypadku kiedy korzystamy z informacji zapisanych na karcie kontrahenta:

Warunek jaki należy wstawić przy kontrahentach krajowych:

'1'='1' AND exists (select * from cdn.kontrahenci where Knt_KntId= VaN_PodID and VaN_PodmiotTyp=1 and Knt_Export=0)

Warunek jaki należy wstawić przy kontrahentach zagranicznych:

'1'='1' AND exists (select * from cdn.kontrahenci where Knt_KntId= VaN_PodID and VaN_PodmiotTyp=1 and Knt_Export<>0)

W przypadku kiedy korzystamy z informacji zapisanych na dokumencie, czyli rodzaj transakcji, wtedy warunek może wyglądać następująco:

'1'='1' AND VaN_Export=0 (dla transakcji krajowej)

Rodzaj transakcji:

0 - krajowa

1 - eksport/import

2 - eksport - zwrot VAT

3 - dostawa/nabycie wewnątrzwspólnotowa

4 - dostawa/nabycie wewnątrzunijna trójstronna

5 - krajowa - podatnikiem jest nabywca

6 - dostawa poza terytorium kraju

7 - poza terytorium kraju (stawka NP)

8 - wewnątrzunijny - podatnikiem jest nabywca

9 - pozaunijny - podatnikiem jest nabywca

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

Aby zaksięgować fakturę zapłaconą gotówką należy w warunku schematu księgowego wpisać:

'1'='1' and exists (select * from CDN.FormyPlatnosci where
VaN_FplID=FPl_FPlId and FPl_Nazwa = 'gotówka')

A dla dokumentów z pozostałymi formami płatności:

'1'='1' and exists (select * from CDN.FormyPlatnosci where
VaN_FplID=FPl_FPlId and FPl_Nazwa <> 'gotówka')

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

W schemacie księgowań dla zapisów automatycznych należy wpisać warunek:

'1'='1' AND BZp_ZapisAutomatyczny=1

Dla pozostałych zapisów:

'1'='1' AND BZp_ZapisAutomatyczny=0

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

Dla kontrahenta krajowego należy w warunku schematu wpisać:

'1'='1' AND TrN_Export=0

Dla kontrahenta unijnego:

'1'='1' AND (TrN_Export=3 OR TrN_Export=4)

Dla kontrahenta pozaunijnego:

'1'='1' AND TrN_Export=1

Status:

0 - krajowy

1 - eksport/import

2 - eksport - zwrot VAT

3 - dostawa/nabycie wewnątrzwspólnotowa

4 - dostawa/nabycie wewnątrzunijna trójstronna

5 - krajowy - podatnikiem jest nabywca

6 - dostawa poza terytorium kraju

7 - poza terytorium kraju (stawka NP)

8 - wewnątrzunijny - podatnikiem jest nabywca

9 - pozaunijny - podatnikiem jest nabywca

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

W warunku schematu księgowego należy wpisać:

 '1'='1' And Exists (Select * From CDN.TraNag FA Where CDN.TraNag.TrN_FaId = FA.TrN_TrNId And Fa.TrN_NumerPelny Like 'FA%SERIA')

zastępując słowo SERIA na końcu warunku wybraną serią dokumentu np. MG lub EU.

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

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

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

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

W definicji kwoty wpisujemy:
'0' + CDN.userKwotaFaMagazyny (VaN_VaNId, 'MAGAZYN')

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

W pozycji schematu dla listy płac w polu Warunek należy wpisać:

'1'='1' AND EXISTS (select * from CDN.PracEtaty join CDN.PracKod on Pra_Praid = Pre_Praid where Pra_Praid = Wpl_Praid and Wpl_Lplid  = Lpl_Lplid and Pre_StNiepelnosp<>0)

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

W kwocie należy użyć makra odwołującego się do pozycji paragonu, np. @PozNetto. W warunku można użyć następującego zapytania:

'1'='1' AND EXISTS(SELECT * FROM CDN.Magazyny WHERE Mag_MagId = TrE_MagId AND Mag_Symbol='MAGAZYN')

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

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

W schemacie, w polu Data ksieg. wpisujemy:
@DataWyst-@DataWyst+cdn.F1(VaN_VaNID)

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

W schemacie księgowym typu Faktura zakupu w warunku wkleić następujące wyrażenie:

Dla odliczeń na NIE

'1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=0)

Dla odliczeń na TAK

'1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=1)

Dla odliczeń WARUNKOWO

'1'='1' and exists (select * from CDN.Kategorie where Tre_Katid=Kat_Katid and Kat_Odliczenia=2)

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

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

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

Przykład: środki trwałe są dzielone na projekty procentowo w danym miesiącu. Czyli środek był wykorzystywany w 20% w projekcie 1, 30% w drugim i 50% w trzecim. Każdy z projektów ma odpowiednie konto księgowe. Na karcie środka trwałego atrybuty w kodzie mają zawarte konto księgowe a wartość to udział procentowy amortyzacji w danym miesiącu.

Wygląda to tak:

Atrybut Kod          Wartość

501-1-1                 0,30

502-1-1                 0,20

504-2                     0,50

W schemacie księgowym w polu Konto odwołujemy się do numeru konta z kodu atrybutu

@ST_AtrybutKod

a w Kwocie przeliczamy amortyzację x wartość atrybutu

@ST_AtrybutWartosc*@Amortyzacja

Ewentualne korekty groszowe można wyksięgować za pomocą wyrażenia:

@ST_AtrybutWartosc * @Amortyzacja - convert(decimal(14,2), @ST_AtrybutWartosc * @Amortyzacja)

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

W schemacie księgowym typu Rejestr sprzedaży VAT w polu Data księg. należy wpisać:

@DataWyst-@DataWyst+cdn.Data_TF(VaN_VaNID)

Operator z uprawnieniami administratora może uruchomić w menu Narzędzia/ Serwer bazy danych/ Wykonywanie skryptów skrypt dodający funkcję serwerową, z której będzie korzystał schemat.

CREATE function CDN.Data_TF (@VaNId Int)
returns Datetime
as
begin
declare @wynik Datetime
select @wynik = (select TrN_DataPtwTaxFree from CDN.TraNag join
CDN.VatNag on TrN_VaNId = VaN_VaNId AND TrN_TypDokumentu = 345 WHERE
TrN_TaxFreePotwierdzony=1 AND Van_Vanid=@VaNId)
return @wynik
end

Dodatkowo w polu Warunek można wpisać warunek czy zapis w rejestrze VAT ma powiązanie z potwierdzonym dokumentem Tax Free:

'1'='1' AND exists(select * from CDN.TraNag join CDN.VatNag on TrN_VaNId = VaN_VaNId AND TrN_TypDokumentu = 345 WHERE TrN_TaxFreePotwierdzony=1)

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

W schemacie księgowym typu Rejestr zakupów VAT w polu Warunek należy wpisać:

'1'='1' AND EXISTS (SELECT * FROM CDN.BnkZdarzenia JOIN CDN.BnkRozRelacje on BRR_DDokID=BZd_BZdID AND BRR_DDokTyp=1 JOIN CDN.BnkZapisy ON BRR_ZDokID=BZp_BZpID AND BRR_ZDokTyp=2 WHERE BZd_DokumentTyp=2 AND BZp_NumerString LIKE '%DLG%' AND BZd_DokumentId=VaN_VaNId)

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

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

Do powyższej funkcji można również odwołać się w polu Warunek (podając na początku kod określonego pracownika):
'KOWALSKI'= CDN.Pracownik_DLG(VaN_VaNID)

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

Załóżmy, że dokument RW chcemy zaksięgować na konto analityczne konta 501, którego numer jest numerem zlecenia serwisowego (np. 501-SRW_1_2016). W schemacie księgowym typu Rozchody wewnętrzne w polu Konto Wn należy wpisać:
LEFT(@Opis,0)+'501-'+dbo.MojaFunkcja_Numer_SRW (TrN_TrNID)
Operator z uprawnieniami administratora może uruchomić w menu Narzędzia Serwer bazy danych/ Wykonywanie skryptów skrypt dodający funkcję serwerową, z której będzie korzystał schemat.
Create Function dbo.MojaFunkcja_Numer_SRW (@TrNID INT)
Returns VarChar(20)
As
Begin
Declare @numer VarChar(20)
select @numer = REPLACE (SrZ_NumerPelny,'/','_')
FROM CDN.SrsZlecenia JOIN CDN.DokRelacje ON DoR_ParentId=SrZ_SrZId AND DoR_ParentTyp=900 JOIN CDN.TraNag ON DoR_DokumentId=TrN_TrNID AND DoR_DokumentTyp=304 WHERE TrN_TrNID= @TrNID
Return @numer
End

Konta w planie kont muszą istnieć przed księgowaniem. Ewentualnie musi istnieć konto syntetyczne – jeżeli będzie zaznaczony parametr Automatyczne zakładanie kont analitycznych niesłownikowych (w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa) – konta się założą.

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

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

Wywołanie funkcji w elemencie schematu księgowego w polu Kwota:
'0' + CDN.MojaFunkcja_wyplaty_gotowka(Lpl_LplID,WPL_WPLID)

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

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

Wywołanie funkcji w elemencie schematu księgowego w polu Kwota – przemnożenie kwoty wynagrodzenia brutto przez wartość odpowiedniego współczynnika:
@WynagrodzenieBrutto * CDN.Wartosc_Atr_Prac (WPL_WPLId, '501')

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

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

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

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

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

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

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

W raporcie kasowym/bankowym znajdują się zapisy z wypłatami wynagrodzeń poszczególnych pracowników (zawierających w opisie słowo „Wynagrodzenie”) które chcemy zaksięgować jedną zbiorczą kwotą. W tym celu należy z poziomu Narzędzia/ Serwer bazy danych/ Wykonywanie zapytań SQL dodać następującą funkcję:

Create Function [CDN].[SumaWynagrodzen] (@BRPid int, @BZPid int)
Returns Decimal (15,2)
As
Begin
Declare @Wynik Decimal(15,2)
Select @Wynik = CASE WHEN (SELECT min(BZp_BZpID) FROM CDN.BnkZapisy
WHERE BZp_BRpID=@BRPid and BZp_PodmiotTyp=3 and BZp_Opis like 'Wynagrodzenie%') = @BZPid
THEN isnull (sum(BZp_Kwota),0) Else 0
End
From CDN.BnkZapisy
Where BZp_BRpID=@BRPid and BZp_PodmiotTyp=3 and BZp_Opis like'Wynagrodzenie%'
return IsNull(@wynik,0)
End

Wywołanie funkcji w elemencie schematu księgowego w polu Kwota:

'0'+CDN.SumaWynagrodzen (BRp_BRpID, BZp_BZpID)

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

Dostępne na schematach księgowych makra dotyczące kwot dla stawek VAT odnoszą się do stawek obowiązujących w Polsce. W celu zaksięgowania z dokumentu w procedurze OSS kwoty VAT w podziale na stawki obowiązujące w innych krajach Unii Europejskiej należy odwołać się do tej stawki w warunku pozycji schematu.
W przypadku księgowania Faktur sprzedaży z poziomu modułu Handel/Faktury należy na pozycji schematu wskazać odpowiednie konto księgowe dla VAT-u należnego w danej stawce, w polu Kwota wpisać:

@PozBrutto - @PozNetto

natomiast w polu Warunek:

'1'='1' and TrE_Stawka='13.00'

W przypadku księgowania dokumentów z poziomu Rejestru VAT sprzedaży, w polu Kwota pozycji schematu należy wpisać:

@Vat

natomiast w polu Warunek:

'1'='1' and VaT_Stawka='13.00'

Chcąc zaksięgować kwoty Netto lub Brutto dla określonej w warunku stawki, w polu Kwota pozycji schematu należy wpisać dla Faktur sprzedaży @PozNetto lub @PozBrutto, natomiast w przypadku księgowania z poziomu Rejestru VAT sprzedaży – odpowiednio @Netto lub @Brutto.




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

Data aktualizacji: 28-11-2018

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

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

Konto WnKonto MaSłownikKwotaWarunek
@KontoRach@KontoPrzeciwPodmioty@Przychod
@KontoPrzeciw@KontoRachPodmioty@Rozchod
@KontoDodatWn@KontoDodatMaPodmioty@KwotaDodat

@KontoRach – w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Konta -> Konto kasy (rachunku). Program będzie pobierał konto kasy lub rachunku bankowego z pola Konto księgowe na Rejestrze kasowo/bankowym (Kasa/Bank -> Rejestry kasowe/bankowe).

@KontoPrzeciw – w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Konta _ Konto przeciwstawne. Program będzie pobierał konto przeciwstawne z pola Konto przeciwstawne, które znajduje się na formatce Zapisu kasowo/bankowego (Kasa/Bank -> Zapisy kasowe/bankowe).

@KontoDodatWn/@KontoDodatMa – w schemacie dla raportów K/B, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kwoty dodatkowe -> Konto Wn/Konto Ma. Program będzie pobierał konto z kwot dodatkowych, które znajdują się na formatce Zapisu kasowo/bankowego, pod ikonką Kwoty dodatkowe. Dodatkowo podział na słowniki Podmioty spowoduje, że w Kwotach dodatkowych będzie można użyć kont słownikowych dla podmiotów wybranych na dokumencie.

Na Zapisie Kasowo/Bankowym, w polu Konto przeciwstawne, można wpisywać symbol konta słownikowego np. 201-2-1, 202-2-1, 231 bez podawania konkretnej analityki podmiotu np. 201-2-1-ALOZA. Gdy w polu Konto przeciwstawne podamy konto 201-2-1, program zaksięguje na właściwą analitykę 201-2-1-ALOZA jeżeli kontrahent ALOZA zostanie wybrany na zapisie K/B.

Pozycja trzecia schematu, umożliwia zaksięgowanie Zapisu K/B na dodatkowe konta poza kontem kasy (rachunku) (100) i kontem do niego przeciwstawnym (461-3) np. na konta zespołu 5 gdy bezpośrednio z kasy księgujemy np. koszty proste.

Jeżeli w kwotach dodatkowych Zapisu Kasowo/Bankowego będą wpisywane konta słownikowe, w pozycji schematu dotyczącej księgowań poprzez Kwoty dodatkowe (pozycja trzecia), musi być wybrany Podział na słowniki: Podmioty.

Jeżeli na pozycji schematu, gdzie użyto konto rozrachunkowe, zostanie zaznaczony parametr Rozrachunek to po zaksięgowaniu dekret pojawi się w opcji Księgowość/ Rozrachunki, co pozwoli na parowanie ze sobą dekretów na kontach rozrachunkowych.

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

Lp.Konto WnKonto MaSłownikKwotaKsięg. walutWarunek
1@KontoRachbrak@Rozchodtak
2@KontoPrzeciwPodmioty@Rozchodtak@KontoPrzeciw '149'
3@KontoRachbrak@Przychodtak
4@KontoPrzeciwPodmioty@Przychodtak@KontoPrzeciw '149'
5@KontoPrzeciwbrak@Przychodnie@KontoPrzeciw ='149'
6@KontoPrzeciwbrak@Rozchodnie@KontoPrzeciw ='149'

Pozycja 1 – księguje rozchód w walucie na konto rachunku, które jest walutowe

Pozycja 2 – sprawdza czy konto przeciwstawne jest różne od konta np. 149, które jest kontem w PLN i księguje rozchód w walucie

Pozycja 3 – księguje przychód w walucie na konto rachunku, które jest walutowe

Pozycja 4 – sprawdza czy konto przeciwstawne jest różne od konta np. 149, które jest kontem w PLN i księguje przychód w walucie

Pozycja 5 – sprawdza czy konto przeciwstawne to konto np. 149, które jest kontem w PLN i księguje przychód
w PLN

Pozycja 6 – sprawdza czy konto przeciwstawne to konto np. 149, które jest kontem w PLN i księguje rozchód
w PLN.

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

Pozycja 1 – sprawdza czy waluta rozliczenia jest w PLN i księguje rozchód w PLN

Pozycja 2 – jak wyżej tylko dla przychodu.

Pozycja 3 – sprawdza czy waluta dokumentu to PLN, waluta rozliczenia inna od PLN a konto rachunku jest złotówkowe, jeśli tak, księguje rozchód w PLN.

Pozycja 4 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w walucie, jeśli tak, księguje rozchód w walucie.

Pozycja 5 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w PLN, jeśli tak, księguje rozchód w PLN.

Pozycja 6 – sprawdza czy waluta rozliczenia jest różna od PLN i księguje rozchód w walucie

Pozycje 7 – jak wyżej tylko dla przychodu.

Pozycja 8 – sprawdza czy waluta dokumentu to PLN, waluta rozliczenia inna od PLN a konto rachunku jest złotówkowe, jeśli tak, księguje przychód w PLN.

Pozycja 9 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w walucie, jeśli tak, księguje przychód w walucie.

Pozycja 10 – sprawdza czy waluta dokumentu oraz waluta rozliczenia jest różna od PLN a konto rachunku jest w PLN, jeśli tak, księguje przychód w PLN.

Lp.Konto WnKonto MaSłownikKwotaKsięg. walutWarunek
1@KontoRach201-1-1Podmioty@Przychodnie@RozliczenieWaluta ='PLN'
2202-1-1@KontoRachPodmioty@Rozchodnie@RozliczenieWaluta ='PLN'
3@KontoRachbrak@Rozchodnie@RozliczenieWaluta 'PLN' AND @Waluta ='PLN' AND @KontoRach ='131'
4@KontoRachbrak@Rozchodtak@RozliczenieWaluta 'PLN' AND @Waluta 'PLN' AND @KontoRach ='135'
5@KontoRachbrak@Rozchodnie@RozliczenieWaluta 'PLN' AND @Waluta 'PLN' AND @KontoRach ='131'
6203podmioty@Rozchodtak@RozliczenieWaluta 'PLN'
7203podmioty@Przychodtak@RozliczenieWaluta 'PLN'
8@KontoRachbrak@Przychodnie@RozliczenieWaluta 'PLN' AND @Waluta ='PLN' AND @KontoRach ='131'
9@KontoRachbrak@Przychodtak@RozliczenieWaluta 'PLN' AND @Waluta 'PLN' AND @KontoRach ='135'
10@KontoRachbrak@Przychodnie@RozliczenieWaluta 'PLN' AND @Waluta 'PLN' AND @KontoRach ='131'

Uwaga
Jeśli w koncie przeciwstawnym zostanie wybrane konto słownikowe, a nie konkretna analityka, i podmiot wybrany na zapisie kasowym/bankowym nie ma założonego konta analitycznego, zostanie założone konto w walucie PLN, niezależnie od waluty dokumentu. Jeżeli istnieje konto walutowe i zapis jest walutowy – dokument zostanie zaksięgowany na to konto

 

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

Scenariusz postępowania:

  1. W Ogólne/ Kategorie dodając Kategorię wpisujemy na zakładce Dodatkowe, w polach Konto-segment Wn i/lub Konto-segment Ma, konto księgowe odpowiadające tej kategorii np. kategoria MAT. BIUROWE, Konto-segment Wn: 401-01-03, kategoria: ENERGIA, Konto-segment Wn: 401-01-05
  2. W Rejestry VAT/Rejestry VAT/Rejestr zakupu dodajemy fakturę, na której dodajemy pozycje np.
    w kolumnie Kategoria: MAT. BIUROWE, odpowiednia stawka VAT, kwota netto itd. i w drugiej pozycji Kategoria: ENERGIA, odpowiednia stawka, kwota netto itd.

Schemat księgowy:

Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@Brutto
221-1brak@Vat
@KatElemKontoWnbrak@Netto
@KontoDodatWn@KontoDodatMaPodmioty@KwotaDodat

@KatElemKontoWn – w schemacie dla Rejestru zakupu VAT, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kategoria pozycji/Konto Wn kategorii. Konto księgowe zostanie pobrane z kategorii znajdującej się w pozycji faktury zakupu (kategoria pozycji przy stawkach VAT na fakturze).

@KontoDodatWn/@KontoDodatMa – w schemacie Rejestru VAT, można wybrać to makro klikając w strzałkę obok Konto Wn, Konto Ma: Kwoty dodatkowe -> Konto Wn/Konto Ma. Program będzie pobierał konto z kwot dodatkowych, które znajdują się na formatce Faktury zakupu, pod ikonką Kwoty dodatkowe. Dodatkowo podział na słowniki Podmioty spowoduje, że w Kwotach dodatkowych będzie można użyć kont słownikowych dla podmiotów wybranych na dokumencie. Pozycja wykorzystująca te makra, pozwala na dodatkowe rozksięgowanie dokumentu np. poza kontem zespołu „4”, które jest pobierane z odpowiedniej kategorii pozycji, równocześnie, na określone przez użytkownika konta zespołu „5”.

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

Poniższe schematy umożliwiają księgowanie zarówno faktur zwykłych jak i faktur zaliczkowych oraz faktur finalnych do zaliczkowych. Ostatnia pozycja w schematach pozwala na automatyczne wyksięgowania dotychczasowych zaliczek netto w celu przeksięgowania ich na konto przychodów ze sprzedaży.

Schemat księgowy:

Konto WnKonto MaSłownikKwotaWarunek
201-2-1Podmioty@Brutto
221-2brak@Vat
842-2brak@Netto@CzyZaliczkowa ='TAK'
731-2brak@Netto@CzyZaliczkowa ='FINALNA' OR @CzyZaliczkowa ='NIE'
842-2731-2brak@ZalNetto@CzyZaliczkowa ='FINALNA'

Gdy konto 731-2 jest kontem słownikowym towarów, schemat może wyglądać następująco:

Konto WnKonto MaSłownikKwotaWarunek
201-2-1Podmioty@Brutto
221-2brak@Vat
842-2brak@Netto@CzyZaliczkowa ='TAK'
731-2Towary@PozNetto@CzyZaliczkowa ='FINALNA' OR @CzyZaliczkowa ='NIE'
842-2brak@ZalNetto@CzyZaliczkowa ='FINALNA'

Zaliczki pracowników

Scenariusz postępowania 1: zaliczka jest na kwotę równą fakturze zakupu:

  • pracownik pobiera zaliczkę z kasy np. 150 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  • pracownik przynosi fakturę zakupu (FZ) np. na kwotę 150 zł, która została zapłacona ww. zaliczką 150 zł
    – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/ zakładka: Rejestr zakupu:

    • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
    • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
    • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł.
    • zapisujemy dokument.

Po zapisaniu, faktura zakupu oraz dokument KW zostaną całkowicie rozliczone.

Scenariusz postępowania 2: zaliczka jest na kwotę wyższą od faktury zakupu:

  1. pracownik pobiera zaliczkę z kasy np. 250 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  2. pracownik przynosi fakturę zakupu (FZ) np. na kwotę 150 zł, która została zapłacona ww. zaliczką 150 zł, resztę zaliczki pracownik zwraca do kasy (100 zł) – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/ zakładka: Rejestr zakupu:

  • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
  • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
  • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł,
  • zapisujemy dokument.

FZ jest całkowicie rozliczona, natomiast KW jest częściowo rozliczone. Pracownik wpłaca do kasy pozostałą część zaliczki:

  • w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument przychodowy (KP) od pracownika, na kwotę 100 zł.
  • na zakładce Rozliczenia, dokumentu KP, klikamy w strzałkę obok ikony plusa i wybieramy Kompensata,
  • gdy pojawi się lista zapisów kasowych pracownika, wybieramy KW (zaliczkę) i kompensujemy z KP.

Zaliczka pracownika jest całkowicie rozliczona.

Scenariusz postępowania 3: zaliczka jest na kwotę niższą od faktury zakupu:

  1. pracownik pobiera zaliczkę z kasy np. 150 zł – w menu Kasa/Bank -> Zapisy Kasowe/Bankowe dodajemy dokument rozchodowy (KW), wybierając jako podmiot Pracownika.
  2. pracownik przynosi fakturę zakupu (FZ) np. na kwotę 250 zł, która została zapłacona ww. zaliczką 150 zł, pozostała część płatności faktury pozostaje do rozliczenia (100 zł) – dodajemy zapis w menu Rejestry VAT/Rejestry VAT/zakładka: Rejestr zakupu:

  • na pierwszej zakładce wybieramy kontrahenta, który widnieje na FZ i uzupełniamy pozostałe dane,
  • na zakładce Kontrahent, klikamy na przycisk Pracownik i wybieramy naszego zaliczkobiorcę,
  • w tabelce powyżej pojawi się lista zaliczek, w naszym przykładzie jedno KW na kwotę 150 zł, klikamy dwukrotnie w kolumnę Użyj, wybieramy TAK, w kolumnie Kwota wpisujemy 150 zł,
  • zapisujemy dokument.

FZ jest częściowo rozliczona: w Preliminarzu płatności 150 zł znajduje się na liście rozliczonych dokumentów,
a pozostałe 100 zł na liście dokumentów nierozliczonych. Na zdarzeniu w Preliminarzu znajduje się kontrahent wprowadzony na fakturze.

Dokument KW jest całkowicie rozliczony.

Schemat księgowy:

Przykładowy schemat księgowy pozwala na przeksięgowanie zaliczki z konta kontrahenta na konto pracownika, który pobrał zaliczkę na zakup.

Konto WnKonto MaSłownikKwotaWarunek
@KatElemKontoWn@Netto
221-1@VAT
202-2-1Podmioty@Brutto
202-2-1Podmioty@PlatZaliczka@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'
234Zaliczkobiorcy@PlatZaliczka@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'

Poniższy schemat pozwoli natomiast na zaksięgowanie kwoty brutto na konto kontrahenta lub na konto pracownika (z pominięciem przeksięgowywania z konta kontrahenta na konto pracownika).

Konto WnKonto MaSłownikKwotaWarunek
@KatElemKontoWn@Netto
221-1@VAT
202-2-1Podmioty@Brutto@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy 'pracownik'
234Zaliczkobiorcy@Brutto@TypPodmiotu ='kontrahent' AND @TypZaliczkobiorcy ='pracownik'

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

Przykład schematu dla Comarch ERP Optima w wersji 8.5 lub wyższej.

Konto WnKonto MaSłownikKwotaKsięgowanie walutoweWarunek
204Podmioty@RoznicaPlusTAK@TypRozl ='FZK-KP' OR @TypRozl ='FZ-FZK' OR @TypRozl ='FZ-KW'
204Podmioty@RoznicaMinusTAK@TypRozl ='FZK-KP' OR @TypRozl ='FZ-FZK' OR @TypRozl ='FZ-KW'
752-5brak@RoznicaPlusNIE
751-4brak@RoznicaMinusNIE
203Podmioty@RoznicaPlusTAK@TypRozl ='FSK-FS' OR @TypRozl ='FSK-KW' OR @TypRozl ='FS-KP'
203Podmioty@RoznicaMinusTAK@TypRozl ='FSK-FS' OR @TypRozl ='FSK-KW' OR @TypRozl ='FS-KP'

Ten uniwersalny schemat pozwala na zaksięgowanie dodatnich lub ujemnych różnic kursowych wynikających
z dokonywanych rozliczeń na dokumentach walutowych. Rozbudowany warunek pozwala na odróżnienie, czy różnica dotyczy rozrachunków z dostawcami (konto 204), czyli mamy do czynienia z rozliczeniem Faktury zakupu
z dokumentem KW (’FZ-KW’), korekty faktury zakupu z dokumentem KP (’FZK-KP’) lub faktury zakupu z korektą faktury zakupu (’FZ- FZK’), czy rozrachunków z odbiorcami (konto 203) czyli mamy do czynienia z rozliczeniem faktury sprzedaży (’FS-KP’), korekty faktury sprzedaży z dokumentem KW (’FSK-KW’) lub fakturą sprzedaży i korekta faktury sprzedaży (’FSK-FS’). Konta rozrachunków z kontrahentami to konta walutowe, konta różnic kursowych to konta złotówkowe. Schemat dotyczy sytuacji gdy na dokumencie rozliczanym i rozliczającym jest ten sam podmiot.

Jeżeli rozrachunki walutowe z dostawcami i odbiorcami są księgowane na jedno konto np. konto 203 – nie jest potrzebny warunek rozróżniający typy dokumentów biorących udział w rozliczeniu.

Przykładowy schemat do księgowania kompensat

Schemat obejmuje najbardziej standardową sytuację czyli księgowanie kompensaty (faktura zakupu z fakturą sprzedaży) dla tego samego lub różnych podmiotów i dla dokumentów wystawionych w PLN. Schemat ten dotyczy kompensat księgowanych z poziomu Kasa/Bank/Dokumenty rozliczone (Typ schematu: Rozliczenia).

Dla przykładu, przed zaksięgowaniem kompensaty, mamy następującą sytuację na kontach:

 

Kompensujemy w module Kasa/Bank Fakturę zakupu od kontrahenta ALOZA z Fakturą sprzedaży wystawioną dla kontrahenta ALOZA na kwotę 1000 zł i księgujemy kompensatę schematem:

Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@KwotaRoz1
201-2-1Podmioty2@KwotaRoz1

 

Po zaksięgowaniu mamy następującą sytuację na kontach:

Tak prosty schemat jest możliwy ponieważ zawsze dokumentem rozliczanym (lewym) jest dokument rozchodowy, a dokumentem rozliczającym (prawym) dokument przychodowy. Gdybyśmy chcieli rozbudować schemat o księgowanie, poza kompensatą faktury zakupu z fakturą sprzedaży, jeszcze o dokument KW z dokumentem KP to schemat może wyglądać następująco:

Konto WnKonto MaSłownikKwotaWarunek
202-2-1Podmioty@KwotaRoz1@TypRozl ='FZ-FS'
201-2-1Podmioty2@KwotaRoz1@TypRozl ='FZ-FS'
202-2-1Podmioty@KwotaRoz1@TypRozl ='KW-KP'
201-2-1Podmioty2@KwotaRoz1@TypRozl ='KW-KP'

Słownik: Podmioty pobiera kontrahenta z dokumentu rozliczanego (lewego).

Słownik: Podmioty2 – z dokumentu rozliczającego (prawego). W warunku uwzględniamy odpowiedni typ kompensaty.

  • Kwota rozliczenia – może być pobrana z dowolnego dokumentu (rozliczanego lub rozliczającego) ponieważ dla rozliczeń dokumentów wystawionych w PLN kwota rozliczona dla obydwóch dokumentów będzie taka sama.

 

 




OPT077- Automatyczne rozliczenia i rozrachunki

Data aktualizacji: 28-11-2018


Spis treści


1 Informacje ogólne

W Konfiguracji Firmy/ Księgowość/Księgowość kontowa dostępny jest parametr Automatyczne rozliczenia i rozrachunki. Po jego zaznaczeniu oraz po odpowiednim skonfigurowaniu programu będą automatycznie łączone rozliczenia prowadzone w module Kasa/Bank z rozrachunkami dokonywanymi na kontach księgowych w module Księga Handlowa lub Księga Handlowa Plus.

Uwaga
Rozliczenie w module Kasa/Bank skutkować będzie rozrachunkiem w module Księga Handlowa lub Księga Handlowa Plus i analogicznie rozrachunek w module Księga Handlowa lub Księga Handlowa Plus skutkować będzie rozliczeniem w module Kasa/Bank.

Nie ma znaczenia z jakiego poziomu dokonywane są rozliczenia i rozrachunki. Dodanie rozliczenia na poziomie dokumentu, skutkuje tym samym co rozliczenie z Rozliczeń Podmiotu czy z poziomu Listy Dokumentów Nierozliczonych. Również dodanie rozrachunku z poziomu zapisu księgowego skutkuje tym samym, co dodanie rozrachunku z poziomu listy rozrachunków.

Automatyczne rozliczenia i rozrachunki opierają się o następujące zasady:

  • Zasada 1: Jeżeli płatności są już rozliczone i następuje księgowanie dokumentów, to ich dekrety rozrachowują się automatycznie.
  • Zasada 2: Po rozliczeniu płatności/ zapisu kasowego/bankowego rozrachowują się związane z nimi dekrety.
  • Zasada 3: Nierozliczone płatności/zapisy K/B do zaksięgowanych dokumentów rozliczą się automatycznie w momencie rozrachowania odpowiadającym im dekretów.

2 Od czego zacząć?

Aby następowało automatyczne rozliczenie i rozrachowanie należy:

  • W Konfiguracji Firmy/Księgowość/Księgowość kontowa zaznaczyć parametr Automatyczne rozliczenia i rozrachunki
  • Odpowiednio zdefiniować schematy księgowe (na pozycji schematu księgowego zaznaczyć opcję Rozrachunek, w Kwocie odwołać się do makra @KwotaPlatnosci)
  • Zdecydować czy różnice kursowe i kompensaty mają być generowane w momencie rozrachowywania z poziomu rozrachunków, czy będą księgowane schematami księgowymi z poziomu modułu Kasa/Bank (w Konfiguracji Firmy/Księgowość/Księgowość kontowa dostępny jest parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków)

Uwaga
Przed zaznaczeniem parametru Automatyczne rozliczenia i rozrachunki niezbędne jest uporządkowanie bazy danych poprzez uzgodnienie stanu nierozliczonych dokumentów z nierozrachowanymi dekretami na kontach księgowych, w przeciwnym wypadku stan na kontach i w kasie/banku może nie być spójny.
Jeżeli w bazie pozostaną nierozrachowane dekrety powstałe po zaksięgowaniu schematami, w których nie wykorzystano nowo wprowadzonych makr to nie nastąpi automatyczny rozrachunek tych dekretów nawet jeśli powstanie rozliczenie w module Kasa/Bank. Analogicznie jeżeli Użytkownik dokona rozrachunku tych dekretów to nie nastąpi rozliczenie w module Kasa/Bank.
Uwaga
Przy porządkowaniu bazy danych pomocny może być wydruk Rozliczenia/rozrachunki > Zestawienie rozliczeń i rozrachunków, dostępny z poziomu Kasa/Bank/Dokumenty nierozliczone, zakładka Na dzień, który pokazuje stan rozliczeń i rozrachunków danego podmiotu na wybrany dzień.

Uwaga
Przydatna może być również opcja seryjnego zaznaczenia parametru Rozrachunek na wybranych dekretach księgowych oraz pozycjach bilansu otwarcia. Funkcja dostępna jest z poziomu Księgowość/Dzienniki/ zakładka Konto oraz Księgowość/Inne/Dokumenty BO/formularz bilansu otwarcia poprzez wybór z menu kontekstowego opcji Zaznacz rozrachunek/Odznacz rozrachunek.

2.1 Definiowanie schematów księgowych

Automatyczne rozliczenia i rozrachunki dokonują się prawidłowo tylko w sytuacji gdy schematy księgowe użyte do zaksięgowania dokumentów są zbudowane we właściwy sposób. Niezbędne jest zdefiniowanie schematów, w których:

  • w elemencie schematu księgowego zaznaczony jest parametr Rozrachunek,
  • w Kwocie jest odwołanie do makra @KwotaPlatnosci (na pozycji schematu należy wybrać Kwota/ Płatności/ Kwota płatności). Wynika to z zasady, że dokonujemy rozrachunku dekretów odpowiadających rozliczanym płatnościom.

Podział na słowniki: Płatnicy  – odwołuje się do Płatnika wybranego na zdarzeniu w Preliminarzu płatności jeżeli w kwocie jest wybrane makro @KwotaPlatnosci. Jeżeli w pozycji schematu nie ma odwołania do makr związanych z płatnościami (ani w kwocie, ani w koncie) to podział na słowniki działa na płatnika z nagłówka dokumentu.

Makro @KwotaPlatnosci można łączyć jedynie z makrami dotyczącymi nagłówka. Nie można łączyć go z makrami odwołującymi się do pozycji dokumentu.

Makra dostępne dla Płatnika w polach Konto, Opis i Warunek (zarówno w nagłówku, jak i w elemencie schematu) pobierają wartości z konkretnych płatności, a nie z nagłówka dokumentu.

Dodatkowo w schematach służących do księgowania dokumentów posiadających płatności, w pozycji Warunek (w elemencie schematu) dostępna jest opcja: Płatności/Waluta płatności (makro @WalutaPlatnosci), sprawdzająca walutę rozliczenia na zdarzeniu w Preliminarzu płatności.

Uwaga
Aby nastąpiło automatyczne rozliczenie i rozrachowanie waluta rozliczenia wybrana na zdarzeniu w Preliminarzu płatności musi zgadzać się z walutą konta, na które następuje księgowanie dokumentu. W przeciwnym wypadku pojawia się komunikat informujący o tym, że waluta rozliczenia nie zgadza się z walutą rozrachunku i nie następuje automatyczne połączenie rozliczeń z rozrachunkami

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

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

  • Jeżeli w polu Konto i/lub Kwota następuje odwołanie do makr związanych z płatnościami oraz wybrany jest Podział na słowniki: Płatnicy to tworzy się tyle pozycji ile jest płatności na Podmiot wybrany na płatności. Jeżeli w polu Kwota następuje odwołanie do makra @Brutto to każdy dekret utworzony zostanie na kwotę brutto z dokumentu.
  • Jeżeli w polu Konto i/lub Kwota następuje odwołanie do makr związanych z płatnościami oraz wybrany jest Podział na słowniki: Podmioty to tworzy się tyle pozycji ile jest płatności na Podmiot wybrany na dokumencie w polu Kontrahent.
  • Jeżeli w polu Konto i/lub Kwota nie następuje odwołanie do makr związanych z płatnościami i wybrany jest Podział na słowniki: Płatnicy to tworzy się jeden dekret na Płatnika wybranego w nagłówku dokumentu w kwocie zależnej od liczby płatności (wartość jest zwielokrotniona gdy występuje więcej niż jedna płatność).
  • Jeżeli w polu Konto i/lub Kwota nie następuje odwołanie do makr związanych z płatnościami i wybrany jest Podział na słowniki: Podmioty to tworzy się jeden dekret na Podmiot wybrany na dokumencie w polu Kontrahent.

Uwaga
W związku z tym, że makro @KwotaPlatnosci odwołuje się do kwoty z preliminarza płatności, która nie może być ujemna a jedynie różni się kierunkiem przepływu pieniędzy (przychód, rozchód), dokumenty wprowadzone do Rejestru VAT księgowane są zawsze ze znakiem „+”. Aby zaksięgować dokumenty w kwocie ujemnej należy odpowiednio zmodyfikować schematy księgowe

Przykład
Schemat księgowy pozwalający na zaksięgowanie dokumentów w Rejestrze VAT sprzedaży
z podziałem na kwoty dodatnie i ujemne

Przykład
Schemat księgowy pozwalający na zaksięgowanie dokumentów w Rejestrze VAT zakupu
z podziałem na kwoty dodatnie i ujemne.

 

PREDEKRETACJA
Funkcjonalność automatycznych rozliczeń i rozrachunków działa również w przypadku, gdy dokument jest księgowany nie schematem, a wg predekretacji. Warunkiem jest jednak, aby zakładka [Predekretacja] nie była uzupełniana ręcznie, a wygenerowana na podstawie schematu księgowego, który w kwocie ma odwołanie do makra @KwotaPlatnosci (wyjątkiem jest predekretacja raportów kasowych/bankowych, różnic kursowych oraz kompensat).
SCHEMATY STOWARZYSZONE
Podczas rozliczania dokumentów następuje automatyczne rozrachowanie tylko dekretu „głównego”, tzn. powstałego z księgowania schematem głównym, dekrety powstałe z księgowania schematem stowarzyszonym nie zostaną rozrachowane.

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

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

Funkcjonalność automatycznych rozliczeń i rozrachunków działa nie tylko dla dekretów powstałych z księgowania schematem księgowym, ale również dla pozycji bilansu otwarcia i dla dekretów ręcznie wprowadzanych z poziomu Księgowość/Dzienniki.

Ważne jednak jest aby na pozycjach bilansu otwarcia i/lub ręcznie wprowadzanych dekretach, które mają podlegać funkcji automatycznych rozliczeń i rozrachunków, zaznaczone były parametry Rozrachunek i Generowanie płatności.

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

Funkcjonalność automatycznych rozliczeń i rozrachunków polega na tym, że:

  • Zasada 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują
  • Zasada 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety
  • Zasada 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie 

Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują. Dwa dokumenty na tą samą kwotę, rozliczone, tylko jeden z nich zaksięgowany.
Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Dokument Dok1 został już zaksięgowany na konto np. 201-ABC, schematem odwołującym się do makra @KwotaPlatnosci, z zaznaczonym parametrem Rozrachunek. Dokument Dok2 nie jest jeszcze zaksięgowany.
Oba dokumenty są już ze sobą rozliczone w module Kasa/Bank.
Następnie księgujemy dokument Dok2 (na to samo konto np. 201-ABC, z zaznaczonym parametrem Rozrachunek) – w tym momencie nastąpi automatyczne rozrachowanie dekretów Dek1 i Dek2.

Przykład
Działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety. Dwa dokumenty na tą samą kwotę, nierozliczone, zaksięgowane na to samo konto.
Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Następnie oba księgujemy na to samo konto po przeciwnych stronach, np. 201-ABC, z zaznaczonym parametrem Rozrachunek, dokument  Dok1 (faktura sprzedaży) jest księgowany schematem odwołującym się do makra @KwotaPlatnosci.
W tym momencie mamy więc sytuację, gdzie oba dokumenty są widoczne w module Kasa/Bank jako nierozliczone i w Księgowość/ Rozrachunki jako nierozrachowane.
Następnie rozliczamy dokumenty z poziomu modułu Kasa/Bank (płatność P1 i P2), następuje wówczas automatyczne rozrachowanie dekretów (Dek1 i Dek2).

Przykład
Działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie. Dwa dokumenty na tą samą kwotę, zaksięgowane na to samo konto, nierozliczone i nierozrachowane.
Mamy wprowadzone dwa dokumenty: Dok1 i Dok2 (np. fakturę sprzedaży i wyciąg bankowy). Następnie oba księgujemy na to samo konto po przeciwnych stronach, np. 201-ABC, z zaznaczonym parametrem Rozrachunek, dokument Dok1 (faktura sprzedaży) jest księgowany schematem odwołującym się do makra @KwotaPlatnosci.
W tym momencie mamy więc sytuację, gdzie oba dokumenty są widoczne w module Kasa/Bank jako nierozliczone i w Księgowość/ Rozrachunki jako nierozrachowane.
Następnie z poziomu z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki Rozrachunki rozrachowujemy dekrety (Dek1 i Dek2), następuje wówczas automatyczne rozliczenie dokumentów w module Kasa/Bank.

Uwaga
Jeżeli dokonujemy tylko częściowego rozliczenia to również dekrety zostaną rozrachowane na taką samą kwotę. Analogicznie w drugą stronę: częściowe rozrachowanie dekretów powoduje częściowe rozliczenie płatności.

4 Kompensaty i różnice kursowe

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

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

Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest zaznaczony, to na formularzu okresu obrachunkowego w Konfiguracji Firmy/Księgowość/Okresy obrachunkowe należy wskazać dzienniki księgowań oraz daty księgowania dla dekretu różnicy kursowej oraz dekretu kompensaty generowanych podczas rozliczania rozrachunków w „tle” lub podczas dokonywania rozrachunków z listy rozrachunków nierozrachowanych lub z pozycji dekretu z zakładki Rozrachunki.

Rys. 1. Formularz okresu obrachunkowego

Należy również uzupełnić Domyślne konta dla różnic kursowych poprzez wskazanie na formularzu waluty (Konfiguracja Programu/ Ogóle/ Waluty) konta istniejącego w planie kont w bieżącym okresie obrachunkowym.

Rys 2. Formularz waluty

Uwaga
W sytuacji gdy na planie kont istnieje więcej kont dla danej waluty należy odznaczyć w Konfiguracji parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków oraz księgować dokumenty różnic kursowych oraz dokumenty kompensat z poziomu modułu Kasa/Bank

Nieuzupełnienie wyżej wymienionych pól powoduje podczas księgowania dokumentów walutowych rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów dokonanie jedynie rozrachunku głównego na kontach księgowych. Nie generuje się natomiast dekret różnicy kursowej (pojawia się odpowiedni komunikat o braku kont i/lub dziennika). Analogicznie w przypadku dokumentów księgowanych na dwa różne konta nie generuje się dekret kompensaty.

Jeżeli konto na formularzu waluty nie jest uzupełnione to pojawia się komunikat: Nie zdefiniowano kont dla różnic kursowych w ustawieniach waluty [Symbol waluty].

Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik RK lub Użytkownik posiada zakaz do dziennika to pojawia się komunikat: Nie zdefiniowano dziennika dla różnic kursowych w konfiguracji okresu obrachunkowego lub operator ma zakaz do tego dziennika.

Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik KOMP lub Użytkownik posiada zakaz do dziennika to pojawia się komunikat: Nie zdefiniowano dziennika dla kompensat w konfiguracji okresu obrachunkowego lub operator ma zakaz do tego dziennika.

Jeżeli na formularzu okresu obrachunkowego nie został uzupełniony Dziennik RK lub Dziennik KOMP to podczas rozrachowywania z listy rozrachunków (lub z pozycji dekretu z zakładki Rozrachunki) dekretów walutowych dla różnych kont księgowych dekret różnicy kursowej oraz dekret kompensaty generuje się do pierwszego dziennika dostępnego w bieżącym okresie obrachunkowym, do którego Użytkownik nie ma zakazu. Dodatkowo pojawia się komunikat: Nastąpiła zmiana domyślnego dziennika dla kompensaty. Czy ustawić nowy dziennik jako domyślny w konfiguracji? oraz Nastąpiła zmiana domyślnego dziennika dla różnicy kursowej. Czy ustawić nowy dziennik jako domyślny w konfiguracji? Zaakceptowanie komunikatów powoduje zapisanie dzienników na formularzu okresu obrachunkowego.

Jeśli na formularzu okresu obrachunkowego uzupełniony został Dziennik RK i Dziennik KOMP i podczas rozrachowywania dekretów walutowych dla różnych kont księgowych Użytkownik wskazuje na dokumencie kompensaty i dokumencie różnicy kursowej inny dziennik to pojawia się komunikat: Nastąpiła zmiana domyślnego dziennika dla kompensaty. Czy ustawić nowy dziennik jako domyślny w konfiguracji? oraz Nastąpiła zmiana domyślnego dziennika dla różnicy kursowej. Czy ustawić nowy dziennik jako domyślny w konfiguracji?

Zaakceptowanie komunikatu powoduje zapisanie dekretu dokumentu kompensaty oraz dekretu dokumentu różnicy kursowej do dzienników wskazanych na dokumencie oraz zmianę dzienników na formularzu okresu obrachunkowego. Wybór opcji Nie powoduje zapisanie dekretu kompensaty oraz dekretu różnicy kursowej do dzienników wskazanych na dokumencie, natomiast kolejne dekrety zapisywane będą do dzienników wskazanych na formularzu okresu obrachunkowego.

Uwaga
Przy zaznaczonym parametrze Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków w konfiguracji nie ma możliwości księgowania kompensat i różnic kursowych z poziomu Kasa/Bank. Podczas próby księgowania pojawi się komunikat „Nie można rozpocząć księgowania dokumentu. W Konfiguracji Firma/Księgowość/Księgowość kontowa jest ustawiony parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków.

Uwaga
Przy zaznaczonym parametrze Wymuszaj zatwierdzanie zapisów księgowych, dekrety różnic kursowych oraz kompensaty nie zostaną wygenerowane jeżeli zapis ten jest wcześniejszy od “najmłodszego” zapisu w buforze (lub jest późniejszy od “najstarszego” zapisu w buforze) o więcej niż 2 miesiące. W takim wypadku dodawanie dokumentu jest blokowane, w logu z operacji pojawia się komunikat: “Nie udało się wygenerować dekretu róźnicy kursowej/kompensaty z powodu błędu. Przekroczono okres dwóch miesięcy dla zapisów w buforze.

Rys 3. Ilustracja na potrzeby przykładów 7-9

Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Następnie rozliczamy płatności P1 z P2 (w module Kasa/Bank powstaje różnica kursowa RK i kompensata KOMP).
Później księgujemy dokument Dok2 (powstaje dekret Dek2), w tym momencie następuje automatyczne rozrachowanie dekretów Dek1 z Dek2 oraz powstaje dekret różnicy kursowej Dek3 RK i dekret kompensaty Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową z modułu Kasa/Bank.
Opis poszczególnych kroków:

  1. Rozliczenie pomiędzy P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  2. Księgowanie Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.

Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków – działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety)
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Opis kolejnych kroków:

  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Rozliczamy płatności P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  3. Powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.

Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków – działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie.
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Opis kolejnych kroków:

  • Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
    1. Z poziomu Księgowość/Rozrachunki lub z poziomu zapisu księgowego rozrachowujemy Dek1 z Dek2.
    2. W momencie rozrachowywania pojawia się formatka z propozycją zapisu polecenia księgowania dla powstałej różnicy kursowej i kompensaty.
    3. Po zatwierdzeniu formatki powstają dekrety Dek3 RK oraz Dek4 KOMP, które zostają automatycznie powiązane z kompensatą i różnicą kursową wygenerowanymi w module Kasa/Bank. Zarówno różnica kursowa, jak
      i kompensata na liście dokumentów w Kasa/Bank widnieją w kolorze niebieskim. Podgląd zapisu księgowego wskazuje dekret kompensaty lub dekret różnicy kursowej.

Rys 4. Automatyczne generowanie zapisu księgowego różnicy kursowej i kompensaty, zakładka [Różnica kursowa]

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

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

Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest odznaczony, wówczas dekrety RK i KOMP nie powstają w momencie rozrachunku, różnice kursowe i kompensaty wygenerowane w module Kasa/Bank należy księgować schematem księgowym.

Rys 5. Ilustracja na potrzeby przykładów 10-12

Przykład
Działanie zgodnie z zasadą 1: w momencie zaksięgowania dokumentów już ze sobą rozliczonych dekrety automatycznie się rozrachowują.
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Następnie rozliczamy płatności P1 z P2 (w module Kasa/Bank powstaje kompensata KOMP i różnica kursowa RK).
Później księgujemy dokument Dok2 (powstaje dekret Dek2), w tym momencie następuje automatyczne rozrachowanie dekretów Dek1 z Dek2. Należy również z poziomu modułu Kasa/Bank zaksięgować powstałą kompensatę i różnicę kursową. Dekrety RK i KOMP zostaną automatycznie powiązane z rozrachunkami.
Opis poszczególnych kroków:

  1. Rozliczenie pomiędzy P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  2. Księgowanie Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostanie automatycznie powiązany z rozrachunkami.

Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków – działanie zgodnie z zasadą 2: w momencie rozliczenia płatności/ zapisu K/B do zaksięgowanych dokumentów automatycznie rozrachowują się związane z nimi dekrety.
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Opis kolejnych kroków:

  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Rozliczamy płatności P1 i P2 -> w module Kasa/Bank powstaje dokument różnicy kursowej RK i kompensata KOMP.
  3. System automatycznie generuje rozrachunek pomiędzy Dek1 a Dek2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostaje automatycznie powiązany z rozrachunkami.

Przykład
Przykład jak powyżej, ale inna kolejność wykonywanych kroków – działanie zgodnie z zasadą 3: w momencie rozrachowania dekretów odpowiadające im nierozliczone płatności/ zapisy kasowe/bankowe rozliczają się automatycznie.
Mamy dwa dokumenty walutowe po różnych kursach, wprowadzone na różne podmioty: Dok1 i Dok2, do których są płatności w module Kasa/Bank: P1 (płatność do Dok1), P2 (płatność do Dok2).
Dokument Dok1 jest już zaksięgowany (schematem odwołującym się do makra @KwotaPlatnosci), powstał dekret Dek1.
Opis kolejnych kroków:

  1. Księgujemy Dok2 schematem odwołującym się do makra @KwotaPlatnosci -> tworzy się dekret Dek2.
  2. Z poziomu Księgowość/ Rozrachunki lub z poziomu zapisu księgowego rozrachowujemy Dek1 z Dek2.
  3. System automatycznie rozliczył dokumenty Dok1 i Dok2.
  4. Z poziomu Kasa/Bank/ Dokumenty rozliczone księgujemy kompensatę -> powstaje dekret Dek3 KOMP.
  5. Dekret kompensaty zostaje automatycznie powiązany z rozrachunkami.
  6. Z poziomu Kasa/Bank/ Różnice kursowe księgujemy różnicę kursową -> powstaje dekret Dek4 RK.
  7. Dekret różnicy kursowej zostaje automatycznie powiązany z rozrachunkami.

4.3 Usuwanie od strony rozliczenia

Jeżeli rozliczenie jest połączone z rozrachunkiem to usunięcie rozliczenia z poziomu modułu Kasa/Bank nie jest możliwe, pojawia się komunikat: Nie można usunąć rozliczenia powiązanego z rozrachunkiem. Należy usunąć rozrachunek z poziomu Księgowość/Rozrachunki.

Jeżeli na dekrecie zaznaczony jest parametr Rozrachunek bez rozliczenia w K/B to usunięcie rozliczenia jest możliwe ze względu na brak powiązania pomiędzy rozliczonymi płatnościami i rozrachowanymi dekretami. Usunięcie rozliczenia w takim przypadku nie powoduje usunięcia rozrachunku.

4.4 Usuwanie od strony rozrachunku

Możliwość usuwania automatycznie wygenerowanych rozliczeń i rozrachunków istnieje tylko od strony rozrachunków. Przy próbie usunięcia rozrachunku powiązanego z rozliczeniem (zarówno z listy rozrachunków rozrachowanych, jak i z pozycji dekretu z zakładki Rozrachunki) pojawia się komunikat: Rozrachunek połączony z rozliczeniem. Czy usunąć rozliczenie? Zaakceptowanie komunikatu powoduje usunięcie rozrachunku wraz z rozliczeniem. Wybór opcji Nie powoduje usunięcie tylko rozrachunku, rozliczenie w module Kasa/Bank pozostaje.

Uwaga
Jeżeli w Konfiguracji parametr o automatycznych rozliczeniach  i rozrachunkach jest zaznaczony to w przypadku seryjnego usuwania rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Rozrachowane] komunikat: Rozrachunek połączony z rozliczeniem. Czy usunąć rozliczenie? pojawia się tylko raz. Wybór opcji Tak lub Nie działa na wszystkie dekrety zaznaczone na liście.

Podczas usuwania rozrachunków walutowych automatycznie usunięty zostanie dekret różnicy kursowej, który jest powiązany z tym rozrachunkiem pod warunkiem, że dekret różnicy kursowej nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym, Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje dekret różnicy kursowej oraz dekret różnicy kursowej nie był wprowadzany ręcznie. Usuwany jest zarówno dekret powstały podczas generacji rozrachunków jak i dekret powstały po zaksięgowaniu dokumentu różnicy kursowej w module Kasa/Bank.

Podczas usuwania rozrachunków dla dwóch różnych kont księgowych automatycznie usunięty zostanie dekret kompensaty, który jest powiązany z tym rozrachunkiem pod warunkiem, że dokument kompensaty nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym oraz Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje się dekret kompensaty. Usuwany jest zarówno dekret powstały podczas generacji rozrachunków jaki i dekret powstały po zaksięgowaniu dokumentu kompensaty w module Kasa/Bank.

Jeżeli dokument różnicy kursowej i/lub dokument kompensaty został zaksięgowany na czysto, nie znajduje się w bieżącym okresie obrachunkowym lub Użytkownik usuwający rozrachunek ma zakaz usuwania dekretów z dziennika w którym znajduje się dekret różnicy kursowej i/lub dekret kompensaty to podczas usuwania rozrachunku pojawia się odpowiedni komunikat informujący o przyczynie błędu. Następuje usunięcie rozrachunku między dekretami, natomiast dekret różnicy kursowej i/lub kompensaty pozostaje. Pozostaje również powiązanie tego dekretu z dokumentem różnicy kursowej i/lub dokumentem kompensaty w module Kasa/Bank i rozliczenie w module Kasa/Bank nie zostaje usunięte.

Poniższa tabelka pokazuje w jaki sposób następuje usuwanie rozrachunku i dekretów RK/ KOMP, w zależności od tego w jakim są okresie obrachunkowym oraz czy są w buforze czy już zatwierdzone.

Z poziomu dekretu różnicy kursowej nie ma możliwości usunięcia rozrachunku. Podczas próby usunięcia pojawia się komunikat: Rozrachunek różnicy kursowej należy usunąć z listy rozrachunków.

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

W przypadku gdy rozrachunek dokonany został pomiędzy dekretem lub dekretami z zaznaczonym parametrem Rozrachunek bez rozliczenia w K/B to usunięcie rozrachunku nie powoduje usunięcia rozliczenia (więcej informacji na temat działania tego parametru znajduje się w rozdziale Rozrachunek bez rozliczenia w K/B). Podczas usuwania rozrachunku automatycznie usunięty zostanie dekret różnicy kursowej oraz dekret kompensaty pod warunkiem, że dokument nie jest zatwierdzony na czysto, znajduje się w bieżącym okresie obrachunkowym oraz Użytkownik usuwający rozrachunek nie ma zakazu usuwania dekretów z dziennika, w którym znajduje się dekret różnicy kursowej i/lub kompensaty.

Uwaga
Nie można usunąć zapisu księgowego posiadającego rozrachowany rozrachunek. Podczas próby usunięcia zapisu księgowego pojawia sią komunikat: Zapis księgowy [Nr dokumentu] posiada rozliczone dekrety. Rozrachunek należy usunąć z poziomu Księgowość/ Rozrachunki lub bezpośrednio z dekretu z zakładki Rozrachunki.

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

Jeżeli rozrachunki były połączone z rozliczeniami i dokonano usunięcia rozrachunku, ale nie zostały usunięte rozliczenia (dekret różnicy kursowej i/lub dekret kompensaty jest zatwierdzony na czysto, Użytkownik ma zakaz usuwania dekretów z dziennika lub zakaz do konta lub zrezygnowano z usunięcia rozliczenia podczas usuwania rozrachunku) to podczas ponownego generowania rozrachunku na tę samą kwotę połączą się one z wcześniej wygenerowanymi rozliczeniami pod warunkiem, że nie dokonano modyfikacji dekretów. W przypadku braku zgodności pojawia się komunikat: Wystąpił błąd podczas rozliczania dokumentów kasowych/bankowych. Rozliczenie niemożliwe. Dokument [Nr dokumentu] jest już rozliczony.

Podczas ponownego dokonywania rozrachunku należy zrezygnować z generowania dekretu różnicy kursowej i/lub dekretu kompensaty (lub odznaczyć w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków i wskazać podczas dokonywania rozrachunku dekret różnicy kursowej). Po wskazaniu dekret różnicy kursowej połączy się z rozrachunkiem. Nie ma możliwości wskazania dokumentu kompensaty. Użytkownik powinien go wcześniej usunąć.

5 Co jeszcze warto wiedzieć?

5.1 Dokumenty walutowe z VAT w PLN

Dokumenty walutowe z zaznaczonym parametrem Płatność VAT w PLN generują dwie płatności w dwóch różnych walutach (jedna płatność na kwotę netto w walucie obcej i druga na kwotę VAT w walucie PLN). Dlatego też, aby nastąpiło automatycznie rozliczenie i rozrachowanie po zaksięgowaniu takiego dokumentu muszą powstać dwa dekrety na kwotę i w walucie odpowiadającej tym płatnościom.

Jeżeli dokument będzie zaksięgowany w kwocie brutto w walucie dokumentu podczas rozliczania nie nastąpi automatyczne rozrachowanie dekretów.

Uwaga
Aby prawidłowo zaksięgować dokument walutowy z zaznaczonym Płatność VAT w PLN, w pozycji schematu księgowego przy wyborze makra @KwotaPlatnosci w warunku należy się odwołać do waluty płatności, np. @WalutaPlatnosci =’PLN’.

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

Jeżeli w Konfiguracji firmy jest włączony parametr Automatyczne rozliczenia i rozrachunki, to w celu uniknięcia niezgodności pomiędzy danymi na płatności, a danymi:

  • na dekretach powstałych po zaksięgowaniu makrem @KwotaPlatnosci,
  • na dekretach powstałych po zaksięgowaniu raportów kasowych/bankowych,
  • na dekretach powstałych po zaksięgowaniu dokumentu różnicy kursowej i/lub dokumentu kompensaty z poziomu modułu Kasa/Bank,
  • predekretacji dokumentów w wyżej wymienionych przypadkach,

zablokowane są  następujące pozycje: Kwota, Waluta, Termin rozrachunku oraz pola związane z określeniem notowania waluty.

Analogicznie w drugą stronę: po zaksięgowaniu dokumentu makrem @KwotaPlatnosci na zdarzeniu w Preliminarzu płatności zablokowane zostaną następujące pola: Podmiot, Kwota, Termin płatności, Waluta rozliczenia oraz pola związane z określeniem notowania waluty. Dodatkowo taka płatność nie podlega podziałowi.

Uwaga
Makro @KwotaPlatnosci działa w ten sposób niezależnie od zaznaczonego/odznaczonego parametru Automatyczne rozliczenia i rozrachunki dostępnego w Konfiguracji Firmy/Księgowość/Parametry

5.3 Zakładka [Dokumenty]

Na pozycji zapisu księgowego dostępna jest zakładka [Dokumenty].

Na zakładce pokazywane są wszystkie dokumenty powiązane z danym rozrachunkiem. Można podglądnąć nagłówek drugiego dokumentu PK, RK i KOMP.

Na pozycji dekretu różnicy kursowej i dekretu kompensaty pokazywane jest powiązanie z nagłówkami dekretów rozliczanych. Jeżeli zapis księgowy różnicy kursowej i/lub zapis księgowy kompensaty powstanie po zaksięgowaniu tych dokumentów z poziomu modułu Kasa/Bank i posiada kilka pozycji to każda z tych pozycji ma widoczne powiązanie z dekretami rozrachunku głównego.

Rys 6. Zakładka [Dokumenty] na pozycji rozliczanego dekretu

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

W programie istnieje możliwość podglądu powiązań pomiędzy rozliczeniami prowadzonymi w module Kasa/Bank a rozrachunkami dokonywanymi na kontach księgowych. Jeżeli w Konfiguracji Firmy/ Księgowość/ Parametry wybrano Rodzaj księgowości: Księgowość kontowa oraz w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczono parametr Automatyczne rozliczenia i rozrachunki, po dokonaniu rozliczenia w module Kasa/Bank widoczna jest ikona ,  a po wykonaniu rozrachunku na kontach księgowych w module Księga Handlowa lub Księga Handlowa Plus dostępna jest ikona .

Podgląd rozliczeń w module Księga Handlowa lub Księga Handlowa Plus jest dostępny z poziomu:

  • Księgowość/ Rozrachunki/ Rozrachunki, zakładka [Rozrachowane],
  • formularza Polecenia Księgowania oraz formularza BO,
  • formularza dekretu, z każdej zakładki oraz pozycji BO.

Po kliknięciu w ikonę Rozliczeń z poziomu formularza Polecenia Księgowania (dla dekretu podświetlonego) lub
z poziomu formularza dekretu (zakładka [Ogólne] lub [Dokumenty]), otwierane jest okno Listy dokumentów rozliczających, na której wyświetlane są wszystkie rozliczenia dokonane w module Kasa/Bank związane z dekretem, z poziomu którego uruchamiamy ikonę Rozliczeń. Klikając w ikonę Rozliczenia z poziomu formularza

dekretu, z zakładki Rozrachunki, na Liście dokumentów rozliczających domyślnie widoczne jest rozliczenie związane z podświetlonym dekretem rozrachowującym. Pod listą dostępny jest parametr Pokaż rozliczenia dla całego dekretu. Jego zaznaczenie powoduje wyświetlanie rozliczeń dla całego dekretu. Podglądu rozliczeń można również dokonać z poziomu Księgowość/ Rozrachunki/ Rozrachunki, poprzez kliknięcie w ikonę Rozliczenia w zakładce Rozrachowane co pozwoli na wyświetlenie rozliczeń związanych z podświetlonym rozrachunkiem.

Jeżeli dekret nie posiada powiązanych rozliczeń w module Kasa/Bank to po kliknięciu w ikonę rozliczeń pojawia się komunikat: Dekret nie posiada skojarzonych rozliczeń.

W przypadku dekretu różnicy kursowej po kliknięciu w ikonę rozliczeń z poziomu:

  • formularza zapisu księgowego różnicy kursowej,
  • Księgowość/ Rozrachunki/ Rozrachunki, zakładka [Rozrachowane], jeżeli na liście podświetlony jest dekret podrzędny różnicy kursowej,
  • formularza dekretu różnicy kursowej, z każdej zakładki,

pojawia się komunikat: Rozrachunek związany z różnicą kursową, nie można podglądnąć rozliczeń.

Podgląd rozrachunków w module Kasa/Bank dostępny jest z poziomu:

  • Preliminarza płatności,
  • listy zapisów kasowych/bankowych,
  • formularza zdarzenia w Preliminarzu płatności lub formularza zapisu kasowego/bankowego, z każdej zakładki.

Uwaga
Kolumny na Liście rozrachunków związanych z rozliczeniami: Kwota dekretu wal [symbol waluty] oraz Kwota rozrachunku wal [symbol waluty] są widoczne jeżeli pobrano moduł Księga Handlowa Plus oraz w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczono parametr Obsługa kont walutowych.

Po kliknięciu w ikonę Rozrachunków z poziomu Preliminarza płatności, listy zapisów kasowych/bankowych, formularza zdarzenia w Preliminarzu płatności (za wyjątkiem zakładki Rozliczenia) lub formularza zapisu kasowego/bankowego (za wyjątkiem zakładki Rozliczenia dokumentów), na Liście rozrachunków związanych
z rozliczeniami widoczne są wszystkie rozrachunki dokonane na kontach księgowych związane z dokumentem,
z poziomu którego uruchamiamy ikonę Rozrachunków. Po kliknięciu w ikonę Rozrachunków z poziomu formularza zdarzenia w Preliminarzu płatności, z zakładki Rozliczenia lub formularza zapisu kasowego/bankowego, z zakładki Rozliczenia dokumentów domyślnie widoczny jest rozrachunek związany z podświetlonym rozliczeniem. Pod listą dostępny jest parametr Pokaż dla całego dokumentu. Jego zaznaczenie powoduje wyświetlanie rozrachunków dla całego dokumentu.

Jeżeli dokument nie posiada powiązanych rozrachunków na kontach księgowych to po kliknięciu w ikonę Rozrachunków pojawia się komunikat: Dokument kasowy/bankowy nie posiada skojarzonych rozrachunków.

5.5 Zapisywanie dekretu w momencie dodawania rozrachunku

Aby można było dokonać rozrachunku z poziomu dekretu księgowego, to na moment generowania rozrachunku zapis księgowy musi się bilansować. W przeciwnym wypadku przy próbie dodania rozrachunku (po kliknięciu na ikonę plusa na zakładce Rozrachunki) pojawi się komunikat: Nie można dokonać rozrachunku. Nie można zapisać dokumentu niezbilansowanego. Kwota niezbilansowana XXXX.

Jeżeli na dokument polecenia księgowania wprowadzamy zapis powodujący bilansowanie całego PK i od razu dokonujemy jego rozrachowania na zakładce Rozrachunki, to dekrety zostają zapisane do bazy danych już w momencie ich rozrachowania. Po dokonaniu rozrachunku dokument PK pozostaje otwarty i można wprowadzać na nim kolejne dekrety.

Rozrachunek zapisuje się do bazy danych w czasie rzeczywistym stąd zamknięcie okna bez zapisywania zmian nie działa. Rozrachunek należy usunąć za pomocą ikony kosza.

Jeżeli na dokumencie PK nie uzupełniono pola Numer dokumentu to w momencie próby dokonania rozrachunku po kliknięciu w ikonę plusa pojawia się komunikat: Nie można dokonać rozrachunku. Brak numeru dokumentu na zapisie księgowym.

5.6 Moduły operatora

W przypadku pracy na bazie danych z włączoną opcją automatycznych rozliczeń i rozrachunków podczas rozliczania dokumentów automatycznie dokonywane są rozrachunki, nawet jeśli zalogowany operator który dokonuje rozliczenia nie ma pobranego modułu Księga Handlowa lub Księga Handlowa Plus.

Przykład
Operator1 loguje się tylko na moduł Kasa/Bank, Operator2 loguje się na moduł Kasa/Bank i Księga Handlowa.
Jeżeli Operator1 rozlicza płatności w module Kasa/Bank, wówczas automatycznie „w tle” rozrachowują się również odpowiednie dekrety. Operator2 po zalogowaniu na moduł Księga Handlowa i wejściu
w Księgowość/ Rozrachunki widzi już te dekrety jako rozrachowane.

Uwaga
W przypadku, gdy firma posiada tylko moduł Księga Handlowa (bez modułu Księga Handlowa Plus) nie można generować automatycznych rozliczeń/rozrachunków walutowych. Automat działa tylko gdy waluta płatności zgadza się z walutą dekretu.
Przy próbie rozliczenia dokumentów walutowych, które są zaksięgowane na konta złotówkowe (moduł Księga Handlowa, a nie Księga Handlowa Plus) pojawi się komunikat Wystąpił problem podczas rozrachowywania dokumentów [Dok1] z [Dok2]. Nie wygenerowano rozrachunku – różna waluta rozliczenia [XXX] i dekretu [PLN].

5.7 Data rozliczenia/ rozrachunku

Dokonanie rozrachunku z odpowiednią datą powoduje wygenerowanie rozliczenia w module Kasa/Bank z tą samą datą. Analogicznie dokonanie rozliczenia powoduje wygenerowanie rozrachunku na kontach księgowych z tą samą datą.

Uwaga
Potwierdzenie salda wygenerowane w module Kasa/Bank będzie zgodne z Potwierdzeniem wygenerowanym w module księgowym jeżeli data zdarzenia w Preliminarzu płatności będzie taka sama jak data księgowania dokumentu. W sytuacji, gdy w Konfiguracji Firmy/ Kasa/Bank/ Daty dokumentów wskazana zostanie data inna niż data wpływu lub wystawienia to mogą wystąpić różnice pomiędzy Potwierdzeniami sald generowanymi w obydwu modułach.

Jeżeli w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków to na formularzu okresu obrachunkowego (Konfiguracja Firmy/ Księgowość/ Okresy obrachunkowe) należy wskazać dzienniki księgowań oraz daty księgowania dla dekretu różnicy kursowej oraz dekretu kompensaty. Data księgowania domyślnie ustawiana jest

jako data rozrachunku, która jest pobierana z Konfiguracji Firmy/ Księgowość/ Księgowość kontowa, parametr Data rozrachunku jako późniejsza z dat.

Jeżeli na formularzu okresu obrachunkowego wskazana jest data rozrachunku to podczas księgowania dokumentów rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów rozrachunek oraz dekret różnicy kursowej i /lub kompensaty generowane są z datą rozliczenia powstałego w module Kasa/Bank.

Jeżeli na formularzu okresu obrachunkowego wskazana jest data bieżąca to podczas księgowania dokumentów rozliczonych wcześniej w module Kasa/Bank lub podczas rozliczania w module Kasa/Bank zaksięgowanych wcześniej dokumentów rozrachunek generowany jest z datą rozliczenia powstałego w module Kasa/Bank natomiast dekret różnicy kursowej i /lub kompensaty generowany jest z datą bieżącą.

Podczas generowania rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki [Rozrachunki] dekret różnicy kursowej i /lub kompensaty generowany jest z datą wskazaną na formularzu okresu obrachunkowego natomiast rozliczenie w module Kasa/Bank generowane jest z datą rozrachunku.

Uwaga
Jeżeli data rozrachunku/bieżąca jest spoza bieżącego okresu obrachunkowego wówczas dekret różnicy kursowej i/lub kompensaty zostanie wygenerowany na pierwszy dzień okresu ustawionego jako bieżący.

Poniższa tabelka pokazuje jaka data jest ustawiana jako data rozliczenia/ rozrachunku oraz jako data różnicy kursowej i kompensaty w zależności od ustawień w Konfiguracji Firmy/ Księgowość/ Okresy obrachunkowe na formularzu okresu obrachunkowego.

Uwaga
Jeżeli usuniemy rozrachunek, a nie usuniemy rozliczenia (na pytanie Zaznaczone rozrachunki są połączone z rozliczeniami. Czy usunąć rozliczenia? odpowiemy Nie), a następnie ponownie rozrachujemy dekrety, to rozrachunek utworzy się z datą ustawioną w Konfiguracji Firmy/ Księgowość/Księgowość kontowa, parametr Data rozrachunku jako późniejsza z dat, a nie z datą rozliczenia.

Księgowanie dokumentów rozliczonych wcześniej w module Kasa/Bank lub rozliczanie w module Kasa/Bank zaksięgowanych wcześniej dokumentówGenerowanie rozrachunków z poziomu Księgowość/ Rozrachunki/ Rozrachunki zakładka [Nierozrachowane] lub z pozycji dekretu z zakładki [Rozrachunki]
Data księgowania RK/KOMP w Konfiguracji jako data ROZRACHUNKU
data rozrachunku = data rozliczenia
data dekretu RK/KOMP = data rozliczenia

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

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

5.8 Praca rozproszona – import rozliczeń

Funkcjonalność automatycznych rozliczeń i rozrachunków działa również w przypadku importu dokumentów i rozliczeń przez pracę rozproszoną. W momencie importu rozliczeń do zaksięgowanych już dokumentów nastąpi automatyczne rozrachowanie dekretów.

  • Przypadek, gdy dokumenty w bazie docelowej są zaksięgowane i nierozliczone

Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, są już zaksięgowane ale jeszcze nierozliczone/ nierozrachowane.

Następnie pracą rozproszoną importujemy rozliczenia. Po zaimportowaniu w module Kasa/Bank następuje rozliczenie zdarzeń z zapisami bankowymi, automatycznie nastąpi też rozrachowanie odpowiadających im dekretów.

Dodatkowo, gdy importowane rozliczenie dotyczy zapisów walutowych z różnymi kursami lub gdy jest to kompensata, oprócz automatycznego rozrachowania wygenerowane zostaną też dekrety Różnicy kursowej i Kompensaty. Powstanie dekretu RK i/lub KOMP uzależnione jest od parametru Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków dostępnego w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa.

  • Przypadek, gdy dokumenty w bazie docelowej są zaksięgowane i rozliczone

Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, są już zaksięgowane i rozrachowane.

Następnie pracą rozproszoną importujemy rozliczenia. Operacja nie powiedzie się, gdyż w bazie docelowej dokumenty są już rozliczone (w momencie rozrachowania dekretów nastąpiło automatyczne rozliczenie). W logu z przebiegu importu pojawi się komunikat Wystąpił błąd przy imporcie składnika. Rozliczenie niemożliwe. Dokument [Dok1] jest już rozliczony.

Wyjątkiem jest sytuacja, gdy rozrachowane dekrety miały zaznaczony parametr Bez rozliczenia w K/B. W takim przypadku w momencie rozrachowywania dekretów nie nastąpiło automatyczne rozliczenie (więcej informacji na temat działania tego parametru znajduje się w rozdziale Rozrachunek bez rozliczenia w K/B). Wówczas w momencie importu rozliczeń pracą rozproszoną import się powiedzie.

  • Przypadek, gdy dokumenty w bazie docelowej nie są zaksięgowane

Do bazy docelowej mamy przeniesione dokumenty, np. FA i raport bankowy, które nie są jeszcze zaksięgowane.

Następnie pracą rozproszoną importujemy rozliczenia, dokumenty zostają więc rozliczone.

Jeżeli później zaksięgujemy dokumenty, automatycznie nastąpi rozrachowanie dekretów.

5.9 Filtry i operacje seryjne

W celu dodatkowego ułatwienia i przyspieszenia pracy pewne operacje można wykonywać seryjnie.

  • Zaznacz/Odznacz rozrachunek

Z poziomu Księgowość/ Dzienniki/ zakładka [Konto] oraz na formularzu bilansu otwarcia (Księgowość/ Inne/ Dokumenty BO) jest możliwość seryjnego zaznaczenia/odznaczenia parametru Rozrachunek dla wybranych dekretów księgowych/ pozycji bilansu otwarcia poprzez wybór opcji z menu kontekstowego Zaznacz rozrachunek/Odznacz rozrachunek.

  • Ustaw/Odznacz rozrachunek bez rozliczenia w K/B

Z poziomu Księgowość/ Plan kont jest możliwość seryjnego zaznaczenia/odznaczenia parametru Rozrachunek bez rozliczenia w K/B dla zaznaczonych kont księgowych poprzez wybór opcji Ustaw/Odznacz rozrachunek bez rozliczenia w K/B dostępnej w menu kontekstowym oraz pod ikoną operacji seryjnych.

  • Kompensaty bez rozrachunku

Z poziomu Księgowość/ Dzienniki w filtrze pod listą dostępny jest parametr Kompensaty bez rozrachunku. Po jego zaznaczeniu wyświetlone zostaną dekrety kompensat, które nie zostały automatycznie usunięte przy usuwaniu rozrachunków, ze względu na to że były zatwierdzone na czysto i/lub znajdowały się w okresie obrachunkowym innym niż bieżący i/lub Użytkownik usuwający rozrachunek miał zakaz do usuwania dekretów z dziennika, w którym znajduje się dekret kompensaty.  


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

Jeżeli rozliczamy dokumenty, a mimo to nie nastąpiło automatyczne rozrachowanie dekretów, a także odwrotnie: rozrachowanie nie spowodowało automatycznego rozliczenia, może to wynikać z kilku powodów (wynikających zarówno z zamierzonego działania funkcjonalności, jak i z błędnego skonfigurowania programu).

Na samym początku należy więc sprawdzić:

  • Parametr w konfiguracji

Należy sprawdzić, czy w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Automatyczne rozliczenia i rozrachunki. Parametr musi być zaznaczony, aby działało automatyczne rozliczanie i rozrachowywanie.

  • Schematy księgowe

Należy sprawdzić czy schemat wykorzystywany do księgowania dokumentu jest zdefiniowany prawidłowo. Aby zadziałał mechanizm automatycznych rozliczeń i rozrachunków:

  • w elemencie schematu księgowego musi być zaznaczony parametr Rozrachunek
  • w Kwocie ma być odwołanie do makra @KwotaPlatnosci (na pozycji schematu należy wybrać Kwota/ Płatności/ Kwota płatności).

Jeżeli powyższe opcje są poprawnie skonfigurowane, a mimo to nie działa funkcjonalność automatycznych rozliczeń i rozrachunków, należy jeszcze sprawdzić przypadki wymienione w kolejnych podrozdziałach.


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

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

6.1.1 Parametr Rozrachunek

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

6.1.2 Rozrachunek bez rozliczenia w K/B

Mogą zdarzyć się sytuacje, w których nie chcemy aby rozliczenie dokumentów powodowało automatyczne rozrachowanie ich dekretów (i analogicznie w drugą stronę: aby rozrachowanie spowodowało automatyczne rozliczenie). Można w takich sytuacjach wykorzystać parametr Bez rozliczenia w K/B.

Na pozycji zapisu księgowego można zaznaczyć parametr Bez rozliczenia w K/B. Jest on dostępny jeżeli w Konfiguracji Firmy/ Księgowość/ Księgowość kontowa zaznaczony jest parametr Automatyczne rozliczenia i rozrachunki. Parametr na pozycji zapisu księgowego zostanie zaznaczony automatycznie w sytuacji, gdy konto

wybrane na dekrecie ma na swoim formularzu w planie kont zaznaczony parametr Rozrachunek bez rozliczenia w K/B. Parametr podlega edycji.

Parametr dostępny jest również na formularzu dokumentu BO. W przypadku pozycji BO należy najpierw zaznaczyć parametr Rozrachunek. Po jego zaznaczeniu przenoszą się ustawienia z formularza konta. Parametr podlega edycji.

W przypadku dekretu z parametrem Bez rozliczenia w K/B przy rozrachowywaniu dekretów na kontach księgowych nie następuje automatyczne rozliczenie w module Kasa/Bank. Analogicznie po rozliczeniu dokumentów w module Kasa/Bank nie następuje automatyczne rozrachowanie odpowiadających im dekretów.

Rozrachunek dekretu z parametrem Rozrachunek bez rozliczenia w K/B

  • Rozrachowanie dekretów jeżeli płatności w module Kasa/Bank nie są rozliczone

Jeżeli jeden lub oba dekrety biorące udział w rozrachunku mają zaznaczony parametr Bez rozliczenia w K/B to podczas rozrachowania tych dekretów dokonuje się rozrachunek, powstaje ewentualny dekret różnicy kursowej i/lub dekret kompensaty (jeżeli w Konfiguracji jest zaznaczony parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków), ale nie następuje rozliczenie płatności w module Kasa/Bank.

  • Rozrachowanie dekretów jeżeli płatności module Kasa/Bank są rozliczone

Jeżeli jeden lub oba dekrety biorące udział w rozrachunku mają zaznaczony parametr Bez rozliczenia w K/B to podczas rozrachowania tych dekretów dokonuje się rozrachunek, powstaje ewentualny dekret różnicy kursowej i/lub kompensaty (jeżeli w Konfiguracji jest zaznaczony parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków), ale nie następuje powiązanie rozrachunku
z wygenerowanym wcześniej rozliczeniem.

Jeżeli płatności w module Kasa/Bank zostały rozliczone oraz w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest odznaczony lub Użytkownik rezygnuje
z tych dokumentów podczas generowania rozrachunku to istnieje możliwość wskazania do rozrachunku dokumentu różnicy kursowej zaksięgowanego w module Kasa/Bank. Dekret kompensaty powstały w module Kasa/Bank nie zostanie podłączony do rozrachunku.

Jeżeli w Konfiguracji parametr o generacji zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków jest zaznaczony, a dokument różnicy kursowej i/lub dokument kompensaty wygenerowany
w module Kasa/Bank nie jest zaksięgowany to nie będzie powiązania pomiędzy tymi dokumentami.

  • Rozrachowanie dekretów w momencie księgowania jeśli płatności w module Kasa/Bank są rozliczone

Jeżeli płatności w module Kasa/Bank zostały rozliczone i Użytkownik księguje drugi dokument, do którego tworzy się dekret z zaznaczonym parametrem Bez rozliczenia w K/B (lub parametr został zaznaczony na dekrecie powstałym do pierwszego dokumentu) to podczas księgowania nie tworzy się rozrachunek.


6.1.3 Storno zapisu księgowego

Podczas generowania storna dekretów rozliczonych i rozrachowanych następuje usunięcie rozrachunku, natomiast rozliczenie w module Kasa/Bank nie jest usuwane.

Jeżeli ze stornowanym dekretem jest powiązany dekret różnicy kursowej i/lub kompensaty to rozrachunki również są usuwane, ale sam dekret RK i/lub KOMP pozostaje.

Przykład
Mamy dwa dokumenty, np. fakturę sprzedaży i fakturę zakupu, zaksięgowane (powstały dekrety Dek1 i Dek2), zarówno rozliczone jak i rozrachowane. Powstał do nich dekret kompensaty.

Dekrety są już zatwierdzone.

Następnie wykonujemy storno dekretu Dek1. Pojawia się komunikat „Zapis księgowy posiada rozliczone dekrety. Po wykonaniu storna rozrachunki zostaną usunięte. Czy wykonać storno dekretu księgowego?”. Po jego zaakceptowaniu pojawia się informacja „Rozliczenie nie zostało usunięte. Z rozrachunkiem związany jest dekret kompensaty [KOMPK/1/2015]. Dekrety należy usunąć ręcznie”.

W efekcie rozrachunki między dekretami Dek1 i Dek2 zostały usunięte, natomiast w module Kasa/Bank dokumenty są ciągle rozliczone. Na liście zapisów księgowych ciągle jest widoczny zapis związany z kompensatą, który należy usunąć ręcznie jeżeli znajduje się w buforze lub dokonać storna jeżeli dekret kompensaty jest już zatwierdzony.

Jeżeli ponownie zaksięgujemy odksięgowany dokument (tzn. fakturę, której dekret został wcześniej wystornowany) nastąpi automatyczne rozrachowanie nowego dekretu z dekretem Dek2. Powstanie również powiązanie rozrachunków z rozliczeniami. Utworzony zostanie dekret kompensaty, który będzie powiązany z kompensatą w module Kasa/Bank.

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

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

6.1.4 Dokument kompensaty

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

6.1.5   Bilans otwarcia na podstawie preliminarza i kasy

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

6.2 Możliwe komunikaty

6.2.1 Różna waluta rozliczenia i dekretu

Komunikat Nie wygenerowano rozrachunku/rozliczenia – różna waluta rozliczenia [XXX] i dekretu [PLN] pojawia się w sytuacji, gdy dokumenty walutowe zostały zaksięgowane na konta złotówkowe. W takiej sytuacji nie ma możliwości automatycznego rozliczania i rozrachowywania.

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

6.2.2 Dokument, który nie podlega rozliczeniu

Komunikat Rozliczenie niemożliwe. Dokument [NR DOKUMENTU] nie podlega rozliczeniu pojawia się w sytuacji, kiedy próbujemy rozrachować dekrety do dokumentów, z których przynajmniej jeden ma na płatności ustawiony status: nie podlega rozliczeniu.

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

6.2.3 Księgowanie po złej stronie konta

Komunikat Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta pojawia się w sytuacji, kiedy dokument jest księgowany po złej stronie konta, a w związku z tym nie można go automatycznie rozrachować z odpowiednimi dokumentami.

Przykład
Mamy np. fakturę sprzedaży, zaksięgowaną, wygenerowany został rozrachunek.
Następnie rozliczamy ją z zapisem kasowym.
Później księgujemy raport kasowy, ale schemat księgowy jest błędnie zdefiniowany i zapis KP trafia na właściwe konto rozrachunkowe, ale po złej stronie (a w związku z tym nie można go automatycznie rozrachować z dekretem do faktury). Samo księgowanie raportu się udaje, ale w logu z przebiegu księgowania, na końcu, mamy informację Wystąpił problem podczas rozrachowywania dokumentów [KP/1/2015/KASA] z [FS/1/2015]. Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta.

Przykład
Parametr „Generowanie zapisu księgowego kompensaty i/lub różnicy kursowej z rozrachunków” w Konfiguracji jest niezaznaczony.
Mamy dwa dokumenty walutowe Dok1 i Dok2, z różnymi kursami. Oba są zaksięgowane. Następnie je rozliczamy, powstaje więc różnica kursowa widoczna w Kasa/Bank/ Różnice kursowe.
Następnie księgujemy różnicę kursową, jednak schemat jest błędnie zdefiniowany i RK jest księgowana po złej stronie konta, a w związku z tym nie można jej automatycznie rozrachować z dekretami dokumentów Dok1 i Dok2. Samo księgowanie różnicy kursowej się udaje, ale w logu z przebiegu księgowania, na końcu, mamy informację BŁĄD ROZRACHOWYWANIA DOKUMENTU (RKUR/1/2015/EUR) Nie udało się wykonać rozrachunku ponieważ rozrachunki są po tej samej stronie konta.

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

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

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

 

 




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

Data aktualizacji: 07-12-2020

O Elektronicznej Wymianie Danych

Program Comarch ERP Optima umożliwia zarówno import zrealizowanych przelewów bankowych do programu
z pliku dostarczonego przez bank, jak i eksport poleceń przelewu do pliku, który następnie można zaczytać
w aplikacji bankowej.

Oprócz eksportu/importu przelewów poprzez pliki istnieje również możliwość wymiany danych bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową a Comarch ERP Optima.

Jak wykonać import poleceń przelewu?

W celu zaimportowania zapisów z pliku z banku należy wejść w Kasa/Bank/ Zapisy kasowe/bankowe, następnie
w polu Rejestr wybrać odpowiedni rejestr bankowy i w polu Raport odpowiedni raport, do którego ma być wykonany import zapisów oraz nacisnąć na ikonę „Importuj polecenia przelewu.

Po naciśnięciu na ikonę „Importuj polecenia przelewu” pojawi się okno „Import przelewów”, w którym należy uzupełnić następujące dane:

  1. Format wymiany – z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku uzyskanego z banku; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący.
  2. Plik źródłowy – należy wskazać właściwy plik do zaczytania. Służy do tego ikona  (pole pokazuje ścieżkę dostępu do pliku, z którego wykonywany jest import)
  3. Definicja KP – symbol numeracji dla dokumentów typu przychód
  4. Definicja KW – symbol numeracji dla dokumentów typu rozchód

Jeżeli jako format wymiany wybierzemy format MT940 pojawią się 2 dodatkowe parametry:

  • Dodawaj zapisy dotyczące innych rachunków – wyciąg w formacie MT-940 może zawierać dane dotyczące wielu rachunków, jednak jest on importowany do raportu dotyczącego jednego rejestru, czyli jednego rachunku bankowego. W związku z tym istnieje możliwość zaznaczenia parametru Dodawaj zapisy dotyczące innych rachunków. Jeżeli przed importem zaznaczymy parametr, zostaną wczytane wszystkie przelewy znajdujące się w importowanym pliku. Jeżeli parametr będzie odznaczony ‑ zaimportowane zostaną tylko przelewy powiązane z rachunkiem dotyczącym rejestru, do którego importowane są dane.
  • Strona kodowa – określenie strony kodowej – wybór spośród następujących możliwości: Windows (1250), Latin II, iso-8859-2, Mazovia, UTF8 (ustawienie właściwego kodowania ma wpływ na prawidłowe rozpoznawanie polskich znaków przy imporcie).

Po uzupełnieniu wszystkich pól należy nacisnąć na ikonę  aby wczytać plik. Po wczytaniu pliku, tabela tymczasowa wypełniana jest informacjami odczytanymi z pliku. Pozycje znajdujące się w tabeli nie podlegają edycji.

Import zapisów do bazy następuje po naciśnięciu na ikonę Uruchom import.

Uwaga
Identyfikacja podmiotu odbywa się w pierwszej kolejności po Akronimie podmiotu oraz w drugiej kolejności po numerze rachunku bankowego (taki numer jaki jest w przelewie w pliku musi być wpisany na karcie kontrahenta, na zakładce [Płatności]). Jeżeli kontrahent nie zostanie rozpoznany zapis trafia na !Nieokreślonego!

Jak wykonać eksport poleceń przelewu do pliku?

W celu wyeksportowania poleceń przelewu do pliku, który następnie można zaczytać w aplikacji bankowej, należy wejść w Kasa/Bank/ Preliminarz płatności, w polu Rejestr wybrać odpowiedni rejestr bankowy, z którego ma być wykonany eksport i nacisnąć na ikonę  Eksportuj polecenia przelewu.

Aby ikona Eksportuj polecenia przelewu była aktywna w polu Rejestr musi być wybrany rejestr bankowy i lista wyświetlanych zapisów musi być zawężona do pozycji nierozliczonych i/lub rozliczonych częściowo  (należy odznaczyć opcje Rozliczone: Całkowicie i Nie podlega).

Dodatkowo można zaznaczyć parametr „Przelewy do wysłania”, co spowoduje zawężenie listy tylko do tych zdarzeń, które mogą zostać wysłane do banku.

Przelewy do wysłania muszą mieć:

  • status nierozliczone lub częściowo rozliczone,
  • stan zatwierdzone do realizacji,
  • kierunek przepływu – rozchód,
  • poprawnie wypełnione pola podmiot, bank oraz numer rachunku podmiotu.

Po naciśnięciu na ikonę  Eksportuj polecenia przelewu pojawia się okno Eksport przelewów do pliku,
w którym należy uzupełnić następujące dane:

1. Eksport poleceń – do wyboru eksport tylko zaznaczonych lub wszystkich zatwierdzonych do realizacji

2. Format wymiany – z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku, jaki zaczytuje bank; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący. Domyślnie podpowiadany jest format, który jest przypisany jako domyślny dla banku związanego z rejestrem, z którego wykonywany jest eksport (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów zwykłych).

3. Format wymiany dla MPP – rozwijalna lista ze zdefiniowanymi w programie formatami eksportu przelewów. Program proponuje format, który został wskazany na formularzu banku, do którego przygotowujemy zlecenie przelewów. Wskazane formaty wymiany powinny mieć ten sam rodzaj. Nie wykonamy eksportu jeśli jeden z formatów będzie typu webservice a drugi nie. Rodzaje formatów wymiany muszą być z sobą zbieżne. Jeśli w danej organizacji nie stosujemy metody podzielonej płatności nie ma konieczności wskazywania formatu wymiany dla Mechanizmu podzielonej płatności. 

Uwaga
Mechanizm eksportu działa w taki sposób, że program próbuje wysyłać 3 rodzaje przelewów za każdym razem (przelewy zwykłe, do US i do ZUS), a do każdego z takich przelewów wymagana jest inna struktura plików, stąd inny format wymiany. W polu Format wymiany wybierany jest format dla przelewów zwykłych, natomiast format służący do eksportu przelewów do ZUS i US pobierany jest z karty banku związanego z rejestrem (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów do US/ ZUS).

4. Katalog docelowy – należy wskazać katalog, w którym ma być zapisany plik z przelewami

5. Nazwa pliku – nazwa pliku, do którego chcemy wyeksportować zdarzenia

6. Dopisz do pliku – możliwość dopisania przelewów do już istniejącego pliku. Aby dopisać przelewy do pliku należy zaznaczyć parametr, a następnie w polu Plik docelowy wskazać plik, do którego informacje powinny być dopisane. Jeśli podczas eksportu przelewów wskażemy istniejący plik i nie zaznaczymy parametru Dopisz do pliku ‑ spowoduje to wykasowanie dotychczasowej zawartości pliku i nadpisanie nowych informacji.

7. Data przelewu – domyślnie wybrana jest data realizacji, istnieje również możliwość wybrania terminu płatności, daty bieżącej lub innej – z możliwością wpisania daty. Data wybrana w polu Data przelewu zostanie zapisana w eksportowanym pliku, jeżeli w formacie wymiany znajduje się pozycja Data operacji. (Jeżeli w formacie jest wybrana „Data dokumentu” eksportowana jest zawsze data dokumentu ze zdarzenia w preliminarzu płatności.)

8. Aktualizuj przy eksporcie informacje na zdarzeniach – zaznaczenie tego parametru powoduje, iż informacje Opis do banku pobierane są bezpośrednio z deklaracji DRA i dodatkowo aktualizowane są również na zdarzeniu w Preliminarzu. Odznaczony parametr sprawia, iż informacje do pliku pobierane są ze zdarzenia w Preliminarzu.

9. Przelewy zbiorczo dla poszczególnych podmiotów – zaznaczenie parametru spowoduje, iż w momencie eksportu kilku zdarzeń dla tego samego podmiotu w pliku powstanie jeden zbiorczy przelew na tego kontrahenta, na łączną kwotę. Przelewy te zostaną pogrupowane według podmiotu, numeru rachunku bankowego oraz waluty.

  • Grupuj wg dat– po zaznaczeniu tej opcji utworzonych zostanie tyle zbiorczych przelewów, ile jest różnych dat (terminów płatności/ dat realizacji/ dat dokumentu).
  • Eksportuj wszystkie linie opisu do banku– zaznaczenie tego parametru spowoduje, że w zbiorczym przelewie będziemy starali się umieścić wszystkie uzupełnione linie opisu do banku odczytane z agregowanych przelewów.
  • Dziel przelewy wg długości opisu– zaznaczenie tego parametru spowoduje, że program utworzy dla danego podmiotu kilka przelewów zbiorczych, przy czym na każdym z nich będzie umieszczony pełny opis do banku z przelewów cząstkowych. Może on być stosowany razem z pozostałymi parametrami dotyczącymi przelewów zbiorczych.

10. Wysyłaj przelewy w jednym pliku – zaznaczenie tego parametru powoduje, że wysyłając kilka przelewów tworzymy jeden plik xml, w którym zapisujemy wszystkie pojedyncze przelewy. Jeśli parametr nie jest zaznaczony to każdy z tych przelewów zapisywany jest w osobnym pliku. Parametr dostępny do zaznaczenia przy eksporcie do plików XML oraz webservice.

 

Eksport przelewów do pliku następuje po naciśnięciu na ikonę  Uruchom eksport.

Tworzenie formatów przelewów

Formaty wykorzystywane przy imporcie/eksporcie przelewów dostępne są w menu Ogólne/ Inne/ Formaty przelewów.

Z tego poziomu można zarówno dodawać nowe, jak i modyfikować istniejące formaty – Użytkownik może sam zdefiniować format w oparciu o informacje dostarczane przez bank.

Aby skopiować format należy go zaznaczyć (podświetlić) na liście, a następnie wcisnąć <CTRL>+<INSERT> lub <CTRL> i ikona plusa, a następnie zapisać.

Uwaga
Program umożliwia import przelewów z plików MT940, jednak jest to mechanizm zaszyty w programie, nie ma możliwości jego edycji/ modyfikacji, stąd też te formaty nie są dostępne na liście formatów przelewów.

Tworzenie formatów – informacje ogólne

Dodanie nowego formatu otwiera okno Format elektronicznej wymiany danych z bankami, składające się z czterech zakładek: [Ogólne], [Nagłówek], [Pozycje], [Stopka].

Uwaga
Przy tworzeniu nowego/dostosowywaniu istniejącego formatu przelewów należy zwrócić uwagę na to, aby wszystkie ustawienia były zgodne z dokumentacją banku (ze strukturą plików wyeksportowanych z banku/ do zaimportowania do aplikacji bankowej).

Zakładka [Ogólne]

Zakładka ta zawiera parametry wspólne dla wszystkich pozycji definiowanego formatu.

Poszczególne pola należy uzupełnić zgodnie z wymaganiami banku, np. w oparciu o przykładowe pliki z przelewami lub dokumentację banku opisującą strukturę takich plików.

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

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

W przypadku, gdy plik importowany przez Użytkownika posiada nagłówek niezbędne jest odpowiednie uzupełnienie zakładki. Jeżeli w pliku nie ma nagłówka, zakładka powinna pozostać pusta.

Jako każdą z pozycji można wybrać „Stałą wartość”. Należy tylko zwrócić uwagę, aby ilość pozycji odpowiadała ilości pól w nagłówku w pliku oraz odpowiednio ustawić typ: Tekst (dla pól zapisanych w ograniczniku tekstu, np.
w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu).

Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany, przed wykonaniem importu niezbędna jest modyfikacja pliku.

Uwaga
Format służący do importu nie może zawierać stopki. W przypadku gdy w pliku z banku jest stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku.

Zakładka [Pozycje]

Na tej zakładce definiujemy poszczególne pozycje formatu. Bardzo ważne jest, aby ilość pozycji zgadzała się
z ilością pól przelewu w pliku z banku. Należy także zachować odpowiednią kolejność pozycji oraz ustawić prawidłowy Typ pozycji: Tekst (dla pól zapisanych w ograniczniku tekstu, np. w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu).

Jeżeli liczba pozycji formatu, ich kolejność czy typ nie będą się zgadzać z tym co jest zapisane w pliku z banku, import przelewów do programu się nie powiedzie. Podobnie w przypadku eksportu przelewów z programu do pliku i próbie zaczytania ich w aplikacji bankowej.

Kolejne pozycje formatu dodajemy ikoną .

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

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

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia prawidłowego importu danych z pliku należy odpowiednio zmodyfikować istniejący format lub dodać nowy.

Na podstawie pliku otrzymanego z banku (np. pliku w formacie *.csv, *.txt) lub dokumentu z opisem struktury takich plików Użytkownik może zdefiniować w programie własny format celem zaczytania w/w pliku.

Uwaga
Wyjątek stanowią pliki MT940 – program umożliwia import z takich plików, jednak jest to mechanizm zaszyty w programie i nie ma możliwości jego edycji/ modyfikacji.

Użytkownik może spotkać się z różnymi dokumentami o odmiennej strukturze, które mogą wymagać ręcznej modyfikacji. Spowodowane to jest faktem, iż każdy zapis jest zróżnicowany i żaden „uniwersalny” format nie jest w stanie wczytać wszystkich dokumentów. Ponadto zdarza się, że banki zmieniają strukturę generowanych plików,
a w wielu przypadkach pliki nawet z tego samego banku potrafią się diametralnie od siebie różnić.

Uwaga
Każdy Bank posiada inny format wymiany danych. Przed próbą zaimportowania pliku zalecane jest dokładne sprawdzenie i porównanie go z danym formatem.

W poniższym ćwiczeniu na podstawie otrzymanego z banku pliku z przelewami zdefiniujemy format dla importu przelewów.

Pliki w formatach *.csv, *.pli, *.txt Użytkownik może otworzyć za pomocą zwykłego edytora tekstowego (notatnik, WordPad) bądź poprzez MS Excel.

Załóżmy, że nasz plik z przelewami z banku wygląda następująco (na zrzucie znajdują się dane testowe, np. numery rachunków bankowych):

Analizując zamieszczony wyżej plik można wywnioskować, że:

 

  • Format do: importu wyciągów bankowych
  • ,,Oddzielaj pola”: parametr zaznaczony
  • Separator pól: ; (średnik – bo widzimy, że w pliku poszczególne pola są od siebie oddzielone średnikiem)
  • Separator wierszy: <Enter>
  • Ograniczniki tekstu: ” (cudzysłów – bo widać, że w pliku część pól jest zapisana w cudzysłowie)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola: zaznaczone (widać, że poszczególne pola w pliku różnią się długością)
  • Format daty: RRRR-MM-DD (przykładowa data z pliku to: 2013-01-03)
  • Separator dziesiętny: , (przecinek – bo przykładowa kwota w pliku zapisana jest jako: 297,49)
  • Separator tysięcy: puste
  • Sekwencja podziału pola na części: zostawić puste
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne

Dodatkowo:

  • Rozszerzenie pliku to: txt
  • Kodowanie: Windows (1250)

 

Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco:

Dodatkowo w pliku jest Nagłówek, w związku z tym w formacie przelewów również trzeba zdefiniować pozycje nagłówka.

Ważne jest, aby ilość pozycji na zakładce [Nagłówek] odpowiadała ilości pól w nagłówku w pliku (w tym przykładzie jest ich 7). Należy również zwrócić uwagę na to, że w pliku żadne z pól nagłówka nie jest zapisane w ograniczniku tekstu (w cudzysłowie), w związku z tym w formacie przelewów w każdym polu należy wybrać typ: Liczba.

Jako każdą z pozycji można wybrać „Stałą wartość”.

Liczba pozycji w formacie powinna zgadzać się z liczbą pól w przelewie w pliku – w naszym przykładzie jest ich 7, są to kolejno: data, inne informacje, nazwa podmiotu, numer rachunku podmiotu, opis do banku, kwota płatności, inne informacje.

Należy również zwrócić uwagę, aby pola zapisane w pliku w cudzysłowie w formacie miały typ: Tekst (w naszym przykładzie są to pola 4) numer rachunku podmiotu i 5) Opis do banku), pozostałe mają mieć typ: Liczba.

Zakładka [Pozycje] powinna więc wyglądać następująco:

Tak zdefiniowanym formatem bez problemu uda się zaczytać przelewy z analizowanego pliku.

Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. Format służący do importu nie może również zawierać stopki. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany i/lub jest uzupełniona stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku

Załóżmy, że przykładowy plik z banku wygląda następująco (na zrzucie plik *.csv otworzony w MS Excel):

Jak widać w pliku jest bardzo rozbudowany nagłówek, przed wykonaniem importu należy zatem odpowiednio zmodyfikować plik tak, aby zostały w nim tylko dane związane z przelewami i maksymalnie jedna linijka nagłówka. (Można np. zaznaczyć linijki z przelewami, skopiować je, otworzyć Notatnik, wkleić dane przelewów i zapisać plik. W momencie importu wskazywać już ten „nowy” plik txt.).

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

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia eksportu do pliku, którego struktura jest zgodna z tym, co zaczytuje bank należy odpowiednio zmodyfikować istniejący format lub dodać nowy.

Na podstawie przykładowego pliku z banku lub dokumentu z opisem struktury takich plików użytkownik może zdefiniować w programie własny format służący do eksportu przelewów.

W poniższym ćwiczeniu na podstawie dokumentu z opisem struktury plików otrzymanego z banku zdefiniujemy przykładowy format do eksportu przelewów.

Przykładowe informacje z banku:

Opis formatów plików – Struktura pliku przesyłki płatności krajowych:

Standard polskich liter – CP 852 ( LATIN II ).

Polecenia płatnicze można podzielić wg typu operacji na trzy grupy.

W zależności od tego, do której grupy należą polecenia umieszczane w przesyłce, program nadaje dla pliku przesyłki odpowiednie rozszerzenie:

– przelewy, wypłaty gotówkowe i płatności ZUS: „.PLI”

– specjalne i specjalne ZUS: „.PLE”

– polecenia zapłaty: „.PLD”

W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych.

W jednym pliku mogą być zapisane dane kilku poleceń płatniczych; każdy wiersz zawiera dane innego polecenia.

Każdy wiersz kończy się znakiem końca wiersza <CR><LF> (Hex 0D0A) i rozpoczyna się kodem oznaczającym typ operacji:

110 = Przelew, wypłata gotówkowa, płatność US,

120 = Płatność ZUS,

210 = Polecenie zapłaty.

Pola alfanumeryczne (tekstowe) są zapisane w cudzysłowach (” „) (Hex 22). Długość pól podana w tabeli nie uwzględnia cudzysłowów.

Poszczególne dane są oddzielone przecinkiem „,” (Hex 2C).

Pola: dane zleceniodawcy, dane kontrahenta, szczegóły płatności oraz informacje Klient-Bank składają się z kilku linii (podpól). W tych przypadkach znakiem oddzielającym poszczególne linie jest „|” (Hex 7C).

Pola: dane zleceniodawcy, dane kontrahenta składają się z czterech podpól: pierwsze i drugie zawiera nazwę zleceniodawcy lub kontrahenta, trzecie – nazwę ulicy oraz nr domu/nr lokalu, czwarte – kod pocztowy
i miejscowość.

Wszystkie pola danych obowiązkowe powinny być wypełnione. Wyjątek stanowi pole „informacje Klient-Bank”, które nie jest obowiązkowe.

Jeśli w poleceniu płatniczym nie są wypełnione szczegóły płatności to w pliku przesyłki pole „szczegółów płatności” będzie puste, rozpoczynające się znakiem ” (Hex 22) i kończące się znakiem ” (Hex 22).

W polu numer banku zleceniodawcy należy umieścić 8 cyfrowy numer rozliczeniowy banku.

W polu numer rachunku zleceniodawcy należy umieścić 26 cyfrowy numer rachunku zleceniodawcy

Numer rachunku bankowego jest ciągiem o stałej liczbie znaków 26 cyfr.

Opis formatu pliku płatności krajowych PLI (PLD,PLE,PLS)

Struktura pliku przesyłki, Wykaz zastosowanych skrótów:

O / F = Rodzaj pola:

O = obowiązkowe

F = fakultatywne

D / F = Długość i format pola:

a = alfanumeryczne

n = numeryczne (0 – 9)

d = data w formacie RRRRMMDD

S = pole stałej długości

Z = pole zmiennej długości

Przykładowy plik przesyłki z danymi jednego polecenia przelewu:

110,20000121,555500,12401066,0,”27124010661111222233339999″,”79106000761234123412341234″,
„1_PODPOLE-NAZWA_ZLECENIODAWCY|2_PODPOLE-NAZWA_ZLECENIODAWCY|3_PODPOLE-ULICA_ZLECENIODAWCY|4_PODPOLE-MIEJSCOWOSC_ZLECENIODAWCY”,”1_PODPOLE-NAZWA KONTRAHENTA|2_PODPOLE-NAZWA_KONTRAHENTA|3_PODPOLE-ULICA KONTRAHENTA|4_PODPOLE-MIEJSCOWOSC_KONTRAHENTA”,0,10600076,”1_PODPOLE-SZCZEGOLY PLATNOSCI|2_PODPOLE-SZCZEGOLY_PLATNOSCI|3_PODPOLE-SZCZEGOLY PLATNOSCI|4_PODPOLE-SZCZEGOLY_PLATNOSCI”,””,””,”51″,”1_PODPOLE-INFORMACJE_KLIENT-BANK|2_PODPOLE-INFORMACJE_KLIENT-BANK|3_PODPOLE-INFORMACJE_KLIENT-BANK|4_PODPOLEINFORMACJE_KLIENT-BANK|5_PODPOLE-INFORMACJE_KLIENT-BANK|6_PODPOLE-INFORMACJE_KLIENT-BANK”

 

Analizując zamieszczone wyżej informacje można wywnioskować, że:

  • Format do: eksportu przelewów
  • Rozszerzenie pliku to: pli
  • „Oddzielaj pola”: zaznaczone
  • Separator pól: , (przecinek – wynika to z informacji udostępnionych przez bank: „Poszczególne dane są oddzielone przecinkiem „,” (Hex 2C)”)
  • Separator wierszy: <Enter> (zgodnie z informacją „Każdy wiersz kończy się znakiem końca wiersza <CR><LF>”)
  • Ograniczniki tekstu: ” (cudzysłów – zgodnie z informacją „Pola alfanumeryczne (tekstowe) są zapisane
    w cudzysłowach (” „)
    ”)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola”: zaznaczone (poszczególne pola są różnej długości)
  • Kodowanie: LATIN II
  • Format daty: RRRRMMDD (zgodnie z informacją podaną w tabelce, w polu 2)
  • Separator dziesiętny: brak (zgodnie z informacją podaną w tabelce, w polu 3)
  • Separator tysięcy: puste (zgodnie z informacją podaną w tabelce, w polu 3)
  • Sekwencja podziału pola na części: | (zgodnie z informacją „(…)znakiem oddzielającym poszczególne linie jest „|””)
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne

Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco:

W pliku nie ma być żadnego nagłówka (zgodnie z informacją „W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych”), w związku z tym zakładka [Nagłówek] w naszym formacie ma pozostać nieuzupełniona.

Następnie należy dokładnie przeanalizować informacje niezbędne do prawidłowego uzupełnienia zakładki [Pozycje].

Wszystkie pola, które w pliku mają być zapisane w cudzysłowie powinny mieć wybrany typ: Tekst, wszystkie pozostałe: Liczba.

NrNazwa polaO/FD/FPozycja w formacie przelewów w programie
1Typ operacji
110 = Polecenie przelewu, wypł. gotówk.
120 = Płatność ZUS
210 = Polecenie zapłaty
O3 n SPozycja „stała wartość”, w polu wartość: 110
2Data płatności RRRRMMDDO8 d SData operacji
3Kwota bez kropek tysięcznych i przecinka oddzielającego wartość groszyO15 n ZKwota płatności
4Numer banku zleceniodawcy (NRB)O8 n ZNumer rozliczeniowy banku własnego
5Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
6Numer rachunku zleceniodawcyO34 a ZPełny numer rachunku własnego
7Numer rachunku kontrahentaO34 a ZPełny numer rachunku podmiotu
8Dane zleceniodawcyO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa własna 1
2) Nazwa własna 2
3) Adres własny – ulica
4) Adres własny – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
9Dane kontrahentaO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa podmiotu 1
2) Nazwa podmiotu 2
3) Adres podmiotu – ulica
4) Adres podmiotu – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
10Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
11Numer banku kontrahenta.O8 n ZNumer rozliczeniowy banku podmiotu
12Szczegóły płatnościO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) opis do banku (pierwsza linijka)
2) opis do banku (druga linijka)
3) opis do banku (trzecia linijka)
4) opis do banku (czwarta linijka)
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
13Niewykorzystane : wartość pusteOS aStała wartość
14Niewykorzystane : wartość pusteOS aStała wartość
15Kod "51" dla przelewów i poleceń specjalnych, natomiast kod "01" dla poleceń zapłaty, ”71” dla płatności podatkowych USO1*2 a SPozycja „stała wartość”, w polu wartość: 51
16Informacje klient-BankF6*35 a Z6 pozycji w formacie – wszystkie pozycje to „stała wartość”
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).Poz. 1 ustawiona jako „nowe pole”, poz. 2-6 jako „łącz z poprzednim (znak podziału pola na części)”

Zakładka [Pozycje] naszego formatu powinna więc wyglądać następująco:


Wskazówki praktyczne

  • Ilość pozycji w formacie, ich kolejność i typ muszą się zgadzać z danymi w pliku z banku.
  • W pozycjach formatu należy odpowiednio wybierać typ pola: Tekst/ Liczba. Konsekwencją wybrania typu pola Tekst, w formatach służących do eksportu, będzie otoczenie go w pliku ogranicznikiem tekstu (np. zapisanie w cudzysłowie). Podobnie w formatach służących do importu przelewów – jeżeli w pliku z banku pole jest zapisane w ograniczniku tekstu, jako typ należy wybrać: Tekst, w pozostałych przypadkach: Liczba (niezależnie od tego, czy w danej pozycji pliku wpisana jest data, kwota przelewu, numer rachunku czy np. dane adresowe kontrahenta).2013-01-03;przelew zewnętrzny; ABC sp. z o.o.;”02124011121111222233334444″;”za FV/02/01/2013″; „252,53”;370,39
  • w formacie przelewów pozycje 4, 5 i 6 muszą mieć ustawiony typ Tekst (ponieważ w pliku są one zapisane w cudzysłowie – „02124011121111222233334444”;”za FV/02/01/2013″;”252,53″); pozostałe pozycje
    w pliku nie są zapisane w ograniczniku tekstu, więc w formacie muszą mieć typ Liczba.
  • Przykładowo, dla pliku:
  • Program obsługuje tylko jedną linijkę nagłówka. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany, przed wykonaniem importu niezbędna jest modyfikacja pliku.
  • Format służący do importu nie może zawierać stopki.
  • Identyfikacja podmiotu odbywa się w pierwszej kolejności po Akronimie podmiotu oraz w drugiej kolejności po numerze rachunku bankowego (taki numer jaki jest w przelewie w pliku musi być wpisany na karcie kontrahenta, na zakładce Płatności). Jeżeli kontrahent nie zostanie rozpoznany zapis trafia na !Nieokreślonego!.
  • Jeżeli kwota w pliku zapisana jest w groszach (np. 18450 zamiast 184,50) w formacie przelewów należy zostawić puste pole z Separatorem dziesiętnym, a w pozycji z kwotą płatności wybrać typ: Liczba<#.##
  • W formatach służących do importu przelewów muszą znajdować się pozycje Data dokumentu oraz Kwota płatności.
  • W przypadku, gdy eksportujemy przelewy na pracowników i chcemy, aby w pliku oprócz nazwiska było również imię pracownika w formacie przelewów należy dodać pozycję „Nazwa podmiotu 2” (Nazwa podmiotu 2 odpowiada za eksport imienia, Nazwa podmiotu 1 za nazwisko pracownika).
  • Opis wszystkich pól możliwych do wyboru w pozycjach formatu przelewów można znaleźć w podręczniku do modułu Kasa/Bank (podręczniki są dostępne np. na Indywidualnych Stronach Klienta/Partnera)
  • W programie dostępnych jest 5 formatów MT940 (MT940 – standard, MT940 (BGŻ), MT940 (BRE), MT940 (PBS), Citi Handlowy – MT940 i MT942 (standardowy)), są one niedostępne do edycji. Formaty te obsługują import plików MT940 z większości banków. Jeżeli jednak okaże się, że żaden z nich nie importuje prawidłowo zapisów z pliku najlepiej skontaktować się z Asystą Comarch ERP Optima i przesłać dokument z opisem struktury takiego pliku (takie dokumenty są udostępniane przez banki).
  • W formatach służących do eksportu przelewów można używać bezpośrednich odwołań do pól zapisanych w bazie danych poprzez wykorzystanie składni SQL. W tym celu jako pozycję formatu należy wybrać „Zapytanie SQL”, a w polu Wartość wpisać odpowiednie zapytanie; Aby np. pobrać tylko miasto z adresu podmiotu i aby to miasto było pobierane dla podmiotu, który znajduje się na aktualnie wysyłanym zdarzeniu, w części WHERE zapytania należy umieścić odwołanie do wysyłanego zdarzenia: Bzd_BzdId={ZdarzenieID}
  • Przykładowo aby pobrać miasto z adresu kontrahenta, w wartości należy wkleić: Select Pod_Miasto FROM CDN.PodmiotyView JOIN CDN.BnkZdarzenia ON BZd_PodmiotID = Pod_PodId WHERE BZd_PodmiotTyp = Pod_PodmiotTyp AND Bzd_BzdId={ZdarzenieID}


Najczęstsze komunikaty błędów przy eksporcie/imporcie

Problemy przy eksporcie przelewów

  • Przelew [fz 10/2013] nie został wyeksportowany z powodu błędów.

W polu Nazwa pliku zastosowano niedozwolone znaki, np. \/:*?<>|

  • Przelew [fz 10/2013] nie został wyeksportowany z powodu błędów. Właściwość [Opis do banku (pierwsza linijka)] jest wymagana i musi zostać wypełniona.

Pewne pola oznaczone w formacie przelewów jako wymagane nie są uzupełnione (w powyższym komunikacie mowa dokładnie o polu: Opis do banku (pierwsza linijka)). Należy uzupełnić odpowiednie dane lub zmodyfikować format (Ogólne/ Inne/ Formaty przelewów/ na konkretnym formacie, zakładka [Pozycje] i tam pole „Wymagane”)

  • Brak domyślnego formatu eksportu dla US. Wybierz format na karcie banku.

Na karcie banku należy ustawić domyślny format eksportu dla przelewów do US. (Można wejść w Kasa/Bank/ Rejestry, na formularz rejestru z którego jest wykonywany eksport, nacisnąć na przycisk Bank, edytować formularz danego banku i przejść na zakładkę „Dodatkowe”.)

Mechanizm eksportu działa w taki sposób, że program próbuje wysyłać 3 rodzaje przelewów za każdym razem (przelewy zwykłe, do US i do ZUS), a do każdego z takich przelewów wymagana jest inna struktura plików, stąd inny format wymiany. Jeżeli na liście przelewów będą zarówno przelewy zwykłe, jak również do US i ZUS wówczas utworzone zostaną 3 oddzielne pliki.

  • Brak domyślnego formatu eksportu dla ZUS. Wybierz format na karcie banku.

Analogicznie jak w poprzednim komunikacie – na karcie banku należy ustawić domyślny format eksportu dla przelewów do ZUS.

Problemy przy imporcie przelewów

  • Błąd analizy struktury formatu: Format nie zawiera pozycji określającej datę dokumentu

W formacie służącym do importu przelewów musi być pozycja Data dokumentu.

  • Nie można odczytać wartości pola – niespodziewany koniec pliku

Np. niezaznaczony parametr „zmienna szerokość pola”.

  • Błąd analizy struktury formatu: Nie ustawiony ogranicznik tekstu przy zmiennej szerokości kolumn.

Jeżeli w formacie przelewów zaznaczone jest „Zmienna szerokość pola” należy również podać „Ogranicznik tekstu”.

  • Błąd analizy struktury formatu: Separator dziesiętny ma wartość identyczną jak separator pól przy zmiennej szerokości kolumn.

W formacie przelewów wybrano taki sam separator pól jak separator dziesiętny – muszą być różne.

  • Błąd w importowanym wierszu – brak separatora pól.

W formacie przelewów wybrano błędny separator pól, niezgodny z danymi w pliku; lub w formacie zdefiniowano za dużo pozycji (więcej niż rzeczywiście jest w pliku).

  • Błąd w importowanym wierszu – brak prawego ogranicznika tekstu.

W formacie przelewów ustawiono błędny typ pozycji (tekst/liczba), niezgodny z danymi w pliku.

  • Błąd analizy struktury formatu: Format zawiera stopkę.

Format do importu przelewów nie może zawierać stopki.

  • Przelew Lp [] nie został zaimportowany z powodu błędów. Brak notowania podanego kursu waluty [waluta] na [data].

W programie nie ma wprowadzonego kursu waluty na wybrany dzień. Należy sprawdzić jakie typy kursów są ustawione na formularzu rejestru, do którego wykonywany jest import – Kasa/Bank/ Rejestry k/b/ na formularzu rejestru pola „Typ kursu sprzedaży” i „Typ kursu zakupu”. (Przy imporcie sprawdzane jest, czy w programie jest wprowadzony kurs na dany dzień dla typu kursu wybranego na formularzu rejestru bankowego.)

  • Przelew Lp [] nie został zaimportowany z powodu błędów. Niepoprawna data zapisu. Zapis nie może być dodany po dacie zamknięcia raportu.

Data na importowanym zapisie jest późniejsza niż data zamknięcia raportu. Przed wykonaniem importu należy wybrać odpowiedni raport (za odpowiedni okres – data otwarcia/zamknięcia raportu), do którego ma być wykonany import.

  • Przelew Lp [] nie został zaimportowany z powodu błędów.Niepoprawna data zapisu. Zapis nie może być dodany przed datą otwarcia raportu.

Data na importowanym zapisie jest wcześniejsza niż data otwarcia raportu. Przed wykonaniem importu należy wybrać odpowiedni raport (za odpowiedni okres – data otwarcia/zamknięcia raportu), do którego ma być wykonany import.


Eksport/ Import za pomocą usługi sieciowej

System Comarch ERP Optima obsługuje również wymianę danych z bankiem (eksport i import przelewów) za pomocą usługi sieciowej opartej o standard Comarch Data Connect 2.0 z bankami:Alior Bank, BNP Paribas, ING Bank Śląski, Pekao S.A., Bankiem Millenium(dla Klientów korzystających z systemu Millenet dla przedsiębiorstw oraz usługi Millenet Link),Citi Handlowy oraz zmBankiem(dla Klientów korzystających z systemu mBank CompanyNet).

Ten sposób wymiany danych umożliwia pobieranie wyciągów bankowych oraz historii operacji, a także eksport przelewów bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową a programem. Możliwe jest również pobieranie dla każdego wysłanego przelewu jego aktualnego statusu w banku (przelew może oczekiwać na realizację, zostać zrealizowany, odrzucony, anulowany itp.).

Szczegółowe informacje na temat wymiany danych poprzez usługę sieciową można znaleźć w podręczniku do modułu Kasa/Bank oraz w biuletynie OPT066 – Szybki eksport i import przelewów przez bankowość internetową ING, OPT072 – Szybki import i eksport przelewów przez bankowość internetową BNP Paribas, OPT073 – Szybki import i eksport przelewów przez bankowość internetową PekaoOPT075 – Szybki import i eksport przelewów przez bankowość internetową banku Citi Handlowy, OPT084 – Szybki import i eksport przelewów przez bankowość internetową Banku Millennium oraz OPT085 – Szybki import i eksport przelewów przez bankowość internetową mBank CompanyNet. Dostępne są również filmy instruktażowe, w których przedstawiony został proces konfiguracji oraz obsługi wymiany danych z bankiem za pomocą usługi sieciowej.




OPT056-Eksport e-Deklaracji oraz import UPO


1 e-Deklaracje – informacje ogólne

Funkcjonalność Comarch ERP Optima umożliwiająca składanie deklaracji elektronicznych opiera się na modelu,
w którym w pierwszym etapie tworzony jest plik XML zgodny ze schematem XSD opublikowanym przez Ministerstwo Finansów. Następnie tak wygenerowany plik Użytkownik podpisuje podpisem elektronicznym
i przesyła na serwer Ministerstwa  Finansów.

W programie Comarch ERP Optima jest możliwy eksport do systemu e-Deklaracje:

  • deklaracji VAT-9M wraz z załącznikami: ORD-ZU
  • deklaracji VAT-UE
  • deklaracji rocznej PIT-28 wraz z załącznikami: PIT-28/B, PIT/O, PIT/D, PIT-2K, PIT/WZR, ORD-ZU
  • deklaracji rocznej PIT-36 wraz z załącznikami: PIT/BPIT/O, PIT/D, PIT-2K, PIT/ZG, PIT/Z, PIT/BR, PIT/IP, PIT/PM, PIT/MIT, PIT/WZ, ORD-ZU
  • deklaracji rocznej PIT-36L wraz z załącznikami: PIT/B, PIT/ZG, PIT/Z, PIT/BR, PIT/O, PIT/IP, PIT/PM, PIT/MIT, PIT/WZ, ORD-ZU
  • deklaracji rocznej PIT-37 wraz z załącznikami: PIT/O, PIT/D, PIT-2K, ORD-ZU
  • deklaracji rocznej CIT-8 wraz z załącznikami: CIT-8/O, CIT-D, CIT-ST, CIT-ST/A, CIT-BR, CIT/IP, CIT/PM, CIT/MIT, CIT/WZ, ORD-ZU
  • deklaracji rocznych PIT-11 wraz z załącznikiem PIT-R, IFT-1R, PIT-8C
  • deklaracji rocznych PIT-4R, PIT-8AR

oraz ich korekt.

Uwaga
W związku z likwidacją deklaracji VAT-7 i VAT-7K (od października 2020 r.), VAT-27 (od listopada 2019 r.) oraz VAT-7D (od stycznia 2017 r.), Użytkownik nadal ma możliwość wyliczenia oraz eksportu do systemu e-Deklaracji korekt deklaracji VAT-7, VAT-7K, VAT-27 i VAT-7D wraz z załącznikami za okres rozliczeniowy zgodnie z wzorem i datą ich obowiązywania.

Uwaga
W związku z likwidacją od stycznia 2018 r. deklaracji PIT-40, Użytkownik nadal ma możliwość wyliczenia oraz eksportu do systemu e-Deklaracji korekt deklaracji PIT-40 wraz z załącznikiem PIT-R za okres rozliczeniowy wcześniejszy niż styczeń 2017 r.

Aby wysłać e-Deklarację z programu Comarch ERP Optima należy:

  • Dysponować podpisem elektronicznym.

Uwaga
Podczas wysyłania e-Deklaracji w imieniu innego podatnika (płatnika) należy posiadać podpis z ważnym upoważnieniem. Wymagane jest zatem wcześniejsze złożenie, we właściwym urzędzie skarbowym w formie papierowej formularza UPL-1 (pełnomocnictwo do podpisywania deklaracji składanej za pomocą środków komunikacji elektronicznej).
Uwaga
W przypadku podatników będących osobami fizycznymi, deklaracje można również składać elektronicznie bez konieczności stosowania bezpiecznego podpisu elektronicznego weryfikowanego za pomocą ważnego kwalifikowanego certyfikatu. Podpis niekwalifikowany może być wykorzystywany przy następujących formularzach dokumentów: VAT-7, VAT‑7K, VAT-9M, VAT-27, VAT-UE, PIT-36, PIT-36L, PIT-37, PIT-28, PIT‑11, PIT-8C, IFT-1R, PIT-4R, PIT-8AR.

  • Wskazać katalog przechowywania plików xml. 

W menu System/ Konfiguracja/ Stanowisko/ Ogólne/ e-Deklaracje w polu: „Katalog przechowywania plików wymiany:” należy wskazać katalog, w którym mają być zapisane pliki xml. Podczas wysyłania e-Deklaracji tworzony jest katalog o nazwie takiej jak nazwa bazy danych, a następnie podkatalog o nazwie RokMiesiąc deklaracji i w nim są umieszczane pliki z deklaracją oraz odebrane UPO (Urzędowe Poświadczenie Odbioru).

Uwaga
Jeżeli informacja o katalogu nie była uzupełniona w Konfiguracji stanowiska, od wersji 2021.4.1 katalog przechowywania plików wymiany uzupełnia się automatycznie. W przypadku e-Deklaracji tworzona jest ścieżka %ProgramData%\Comarch ERP Optima\Deklaracje

  • Sprawdzić adres usługi Web Service e-Deklaracje.

Adres usługi serwisu jest zapisany z poziomu System/ Konfiguracja/ Program /Ogólne/ e-Deklaracje / JPK/ CUK, powinien być: https://bramka.e-deklaracje.mf.gov.pl/

  • Uzupełnić listę Urzędów Skarbowych wraz z kodami urzędów.

W menu Ogólne/ Inne/ Urzędy – znajduje się lista urzędów. Na formularzu urzędu skarbowego należy wpisać dane adresowe oraz niezbędny do wysyłania e-Deklaracji kod Urzędu Skarbowego.

Lista kodów Urzędów Skarbowych dostępna jest np. na stronie Ministerstwa Finansów pod  linkiem: http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/07/06/eD/KodyUrzedowSkarbowych/KodyUrzedowSkarbowych_v7-0E.xsd

  • Uzupełnić indywidualny rachunek podatkowy firmy i/lub właściciela

W menu System/ Konfiguracja/ Firma/ Dane firmy/ Deklaracje należy uzupełnić indywidualny rachunek podatkowy firmy, który dotyczy deklaracji: CIT-8, VAT-7, JPK_V7, VAT-8, VAT-9M i CUK-1. Na formularzu danych kadrowych uzupełnia się indywidualny rachunek podatkowy właściciela, który dotyczy deklaracji: PIT-36, PIT-36L i PIT-28.         

  • Poprawnie wypełnić wymagane dane adresowe i identyfikacyjne oraz wyliczyć i zablokować deklarację.

Obowiązkowe jest uzupełnienie poniższych pól:

  • dane i adres podatnika (System/ Konfiguracja/ Firma/ Dane firmy/ PIT-28; PIT-36, PIT-36L; PIT-4R, CIT-8, ZUS DRA; VAT, AKC-WW, CUK):

Jeśli podatnikiem jest osoba fizyczna:

  1. Numer NIP podatnika
  2. Pierwsze imię oraz nazwisko podatnika
  3. Data urodzenia
  4. Adres podatnika,  pola:  Województwo,  Powiat,  Gmina,  Numer  domu,  Miejscowość,  Kod pocztowy, Poczta (dane adresowe są wymagane tylko dla deklaracji wyliczanych na formularzach starszych niż VAT-7(14), VAT-7D(5), VAT-7K(8)).

Jeżeli podatnikiem jest osoba prawna:

  1. Numer NIP podatnika
  2. REGON (z poziomu System/ Konfiguracja/ Firma/ Dane firmy/ Pieczątka firmy)
  3. Pełna nazwa
  4. Adres siedziby: Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy, Poczta (dane adresowe są wymagane tylko dla deklaracji wyliczanych na formularzach starszych niż VAT-7(14), VAT-7D(5), VAT-7K(8)).

  • urzędy skarbowe z wypełnionymi kodami (z poziomu System/ Konfiguracja/ Firma/ Dane firmy/ Deklaracje)

Ponadto w przypadku:

Deklaracji VAT-7:

  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU można uzupełnić uzasadnienie przyczyny złożenia korekty

Uwaga
Od wersji 2016.1.1 Comarch ERP Optima na korektach deklaracji składanych od 01.01.2016 wyłączono konieczność składania załącznika ORD-ZU, jego uzupełnienie nie jest już konieczne do zatwierdzenia deklaracji i wysłania jej drogą elektroniczną

  • Jeżeli wysyłane jest zawiadomienie o skorygowaniu podstawy opodatkowania oraz kwoty podatku należnego – informacja o załączniku VAT-ZD zaznacza się automatycznie na podstawie wcześniej przygotowanego zawiadomienia VAT-ZD

Deklaracji PIT-11, PIT-8C:

  • Na formularzu danych kadrowych pracownika:
  1. PESEL, Data urodzenia
  2. Pełne dane adresowe pracownika (Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy , Poczta)
  3. Urząd skarbowy pracownika (z wypełnionym kodem urzędu)

  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU należy uzupełnić przyczynę złożenia korekty

Deklaracji IFT-1R/IFT-1:

  • Na formularzu danych kadrowych:
  1. NIP – numer NIP można wpisać na formularzu danych kadrowych na zakładce 1 Ogólne. Inny identyfikator można wpisać na zakładce 2 ident. /Podatki po wcześniejszym zaznaczeniu parametru Ograniczony obowiązek podatkowy (nierezydent) w sekcji Rodzaj numeru indentyfikacyjnego. Inny identyfikator można wpisać również bezpośrednio na formularzu deklaracji IFT
  2. Miejscowość
  3. Kod kraju
  4. Miejsce urodzenia

  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU należy uzupełnić przyczynę złożenia korekty

Uwaga
Od wersji 2015.0.1 Comarch ERP Optima konieczne jest przed naliczeniem deklaracji uzupełnienie pola Kod kraju w adresach tych pracowników, dla których będą liczone deklaracje IFT-1/IFT-1R i wysyłane elektronicznie do systemu e-Deklaracje.

Uwaga
W przypadku pracowników, którzy mają kilka zapisów historycznych związanych z aktualizacją danych – po zaznaczeniu pracownika na liście w Kadrach należy kliknąć w menu górnym w ikonę ‘Zapisy historyczne’, otworzyć/wyedytować zapis/formularz aktualny na koniec roku za który generowana jest deklaracja i uzupełnić wymagane dane a następnie ponownie przeliczyć deklarację.

Uwaga
Numer NIP nie jest już obowiązkowym identyfikatorem w przypadku pracowników. Na formularzu pracownika na zakładce ‘Nr ident./podatki’ został dodany parametr NIP zamiast PESEL na deklaracji PIT (domyślnie nie zaznaczony) – co oznacza, że program wykazuje obecnie na deklaracji numer PESEL, jeżeli jednak (w przypadku  osób prowadzących działalność) na deklaracji powinien się pojawić numer NIP – należy ten parametr zaznaczyć.

Uwaga
Na deklaracji może być wykazany adres zamieszkania lub adres zameldowania danego pracownika. Odpowiada za to parametr na formularzu pracownika na zakładce ‘Nr ident./podatki’ Adres zamieszkania zamiast adresu zameldowania na deklaracji PIT – zaznaczenie parametru powoduje wstawienie na deklaracjach PIT adresu zamieszkania pracownika. W przeciwnym przypadku (domyślne ustawienie) na deklaracjach pojawia się adres zameldowania.

Deklaracji PIT-36, PIT-36L:

  • Na formularzu danych kadrowych właściciela/wspólnika
  1. NIP
  2. Data urodzenia
  3. Adres zamieszkania podatnika: Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy (dane adresowe wymagane są tylko dla PIT-36)
  4. Indywidualny rachunek podatkowy

  • Pola liczbowe powiązane z opisem wymagają łącznego uzupełnienia, aby deklaracja została wysłana do systemu e-Deklaracje (np. Straty z lat ubiegłych – uwzględniając kwotę straty na PIT-36/PIT-36L należy uzupełnić również jej źródło).
  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU można uzupełnić przyczyny złożenia korekty (załącznik ORD-ZU jest wymagany dla rodzaju korekty: korekta zeznania składana w toku postępowania podatkowego w sprawie unikania opodatkowania, o której mowa w art. 81b § 1a Ordynacji podatkowej).
  • Jeżeli jest składany załącznik PIT/B, gdzie podatnik posiada udział w spółce – należy uzupełnić: Nazwa spółki, Udział (w %) oraz NIP
  • W przypadku rozliczenia PIT-36 wspólnie z małżonkiem istnieje możliwość wskazania na formularzu właściciela (podatnika) Współwłaściciela – wówczas dane małżonka podstawią się automatycznie na deklaracji PIT-36. Wymagane dane to:
  1. NIP/ PESEL małżonka
  2. Imię i nazwisko małżonka
  3. Data urodzeniaAdres zamieszkania małżonka nie jest wymagany, jeśli taki sam jak w części B.1. dotyczącej podatnika. W innym przypadku należy uzupełnić: Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy.

Deklaracji PIT-37:

  • Dane podatnika oraz małżonka w przypadku wspólnego rozliczenia na PIT-37:
  1. NIP/ PESEL
  2. Imię i nazwisko
  3. Data urodzenia
  4. Adres zamieszkania: Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy. Adres zamieszkania małżonka nie jest wymagany, jeśli taki sam jak w części B.1. dotyczącej podatnika.

  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU można uzupełnić przyczyny złożenia korekty (załącznik ORD-ZU jest wymagany dla rodzaju korekty: korekta zeznania składana w toku postępowania podatkowego w sprawie unikania opodatkowania, o której mowa w art. 81b § 1a Ordynacji podatkowej).

Uwaga
Deklaracja PIT-37 dostępna jest w programie od wersji 2016.1.1, jeżeli w Konfiguracji/ Firma/ Dane firmy/ Deklaracje zaznaczono parametr PIT-37 oraz pobrano moduł Księga Handlowa lub Księga Handlowa Plus lub Księga Podatkowa. Typ deklaracji dostępny jest dla wszystkich rodzajów księgowości. Kwoty na deklaracji PIT-37 Użytkownik powinien uzupełnić ręcznie, nie są one pobierane z żadnego miejsca w programie. Dla deklaracji PIT-37 nie są generowane płatności w Preliminarzu płatności.

Deklaracji PIT-28:

  • Na formularzu danych kadrowych właściciela/wspólnika
  1. NIP
  2. Data urodzenia
  3. Adres zamieszkania podatnika: Województwo, Powiat, Gmina, Numer domu, Miejscowość, Kod pocztowy
  4. Indywidualny rachunek podatkowy

  • Jeżeli wysyłana jest korekta deklaracji – na zakładce ORD-ZU można uzupełnić przyczyny złożenia korekty (załącznik ORD-ZU jest wymagany dla rodzaju korekty: korekta zeznania składana w toku postępowania podatkowego w sprawie unikania opodatkowania, o której mowa w art. 81b § 1a Ordynacji podatkowej).
  • W przypadku PIT-28/B wymaganymi polami są: Nazwa pełna spółki oraz Identyfikator podatkowy NIP spółki

Uwaga
W celu sprawdzenia, które pola są wymagane do uzupełnienia na generowanej deklaracji PIT lub VAT należy wejść na stronę Ministerstwa Finansów, gdzie są dostępne zarówno formularze interaktywne jak i struktura dokumentów XML:

https://www.podatki.gov.pl/ oraz https://www.podatki.gov.pl/e-deklaracje/dokumentacja-it/struktury-dokumentow-xml/

Uwaga

Od wersji 2016.0.1 Comarch ERP Optima udostępniono możliwość walidacji  poprawności wysyłanych e-Deklaracji. Działanie funkcji zależne jest od parametru dostępnego w menu System/ Konfiguracja/ Program/ Ogólne/ e‑Deklaracje / JPK/ CUK Sprawdzaj poprawność e-Deklaracji przed wysłaniem (domyślnie zaznaczony).

Podczas wysyłki deklaracji drogą elektroniczną następuje porównanie wysyłanego dokumentu ze schematem dokumentu elektronicznego, który udostępnia Ministerstwo Finansów. Weryfikacja odbywa się po kliknięciu na ikonę Wyślij deklarację do systemu e-Deklaracje. Deklaracja zweryfikowana jako niezgodna ze schematem nie będzie wysłana. Weryfikowana jest kompletność zarówno danych automatycznie pobieranych na deklarację (np. danych adresowych firmy bądź właściciela/pracownika), jak i wprowadzanych bezpośrednio na formularzu deklaracji.

2 Eksport e-Deklaracji

Do systemu e-Deklaracji można wysłać deklaracje, które zostały wcześniej zablokowane przed zmianami i widnieją na liście w kolorze czarnym (w tym celu należy otworzyć formularz deklaracji i zaznaczyć Zablokuj deklarację przed zmianami’). Aby wysłać zatwierdzoną deklarację należy kliknąć na ikonę Wyślij deklarację do systemu
e-Deklaracje
.

Uwaga
W przypadku deklaracji VAT-7, VAT-7K, VAT-27, VAT-9M, VAT-8, VAT-UE, PIT-36, PIT-36L, PIT-37, PIT-28, PIT-11, PIT-8C, IFT-1R, PIT-4R, PIT-8AR Użytkownik może dokonać wyboru z menu przy ikonie  jednego z następujących rodzajów podpisu

Po wciśnięciu ikony   pojawia się log z przebiegu eksportu, który kolejno będzie wskazywał jakie czynności są wykonywane:

  1. Przygotowanie deklaracji
  2. Walidacja e-Deklaracji (porównanie wysyłanej deklaracji ze schematem dokumentu elektronicznego, który udostępnia Ministerstwo Finansów. Podczas pierwszej wysyłki deklaracji po każdorazowym uruchomieniu programu następuje sprawdzenie i pobranie aktualizacji schem e-Deklaracji z serwera COMARCH)
    Uwaga
    Jeżeli weryfikacja nie powiedzie się z powodu błędów istniejących na deklaracji należy: odblokować deklarację, uzupełnić/poprawić dane, a następnie przeliczyć i wyeksportować ją ponownie.
  3. Podpisanie deklaracji – w przypadku podpisu kwalifikowanego pojawi się okno z listą dostępnych i jednocześnie ważnych certyfikatów (certyfikat musi być zarejestrowany w systemie, aby pojawił się w oknie wyboru), następnie pojawi się okno komponentu do podpisywania, w którym będzie należało podać PIN
  4. Wysłanie deklaracji
  5. Odebranie statusu deklaracji – zwykle będzie to komunikat „Dokument w trakcie przetwarzania, sprawdź wynik następnej weryfikacji dokumentu”

Po poprawnym zakończeniu eksportu, w logu z przebiegu eksportu będą następujące informacje:

Rys.1 Log z przebiegu operacji – wysyłanie deklaracji

Na liście deklaracji, w kolumnie e-Deklaracje, pojawi się status „Wysłano/Nie odebrano UPO”, a w kolumnie Data wysłania pojawi się data wysłania deklaracji.

Na formularzu deklaracji dostępna jest zakładka e-Deklaracje, w której znajdują się szczegółowe informacje (do odczytu) o statusie deklaracji, dacie i godzinie wysłania/odebrania oraz dane osoby, która te zmiany wykonała.

Uwaga
Jeżeli podczas wysyłki najnowszych wersji formularzy deklaracji do systemu e‑Deklaracje pojawi się podczas weryfikacji komunikat o treści: Nie udało się zwalidować e-deklaracji z powodu błędów. Brak schematu dokumentu elektronicznego na stronach e-PUAP. Poprawność deklaracji zostanie sprawdzona podczas odbioru UPO. [-2146232832], to świadczyć o przejściowych problemach z dostępem do serwera e-Deklaracji. Należy w takim wypadku wstrzymać się z wysyłką deklaracji i ponowić próbę za jakiś czas. Jeżeli Użytkownik zdecyduje się na wysyłkę, powinien od razu spróbować pobrać UPO, aby mieć pewność poprawności wysłanej deklaracji.

Uwaga
W sytuacji, gdy weryfikacja e-Deklaracji nie nastąpi podczas wysyłki, wówczas po wysłaniu deklaracji należy odebrać UPO. Jeżeli serwer Ministerstwa Finansów  podczas odbierania UPO zgłosi błąd w deklaracji, wówczas można cofnąć deklarację do  bufora (prawy przycisk myszy ‑ „Odblokuj deklarację”) i po wprowadzeniu zmian ponowne ją wysłać.

Uwaga
Od wersji 2015.1.1 dostępny jest mechanizm automatycznego pobierania aktualizacji umożliwiających wysyłanie deklaracji drogą elektroniczną w przypadku, gdy w czasie udostępnienia wersji nie był znany schemat dokumentu elektronicznego. Przy pierwszej wysyłce w danej sesji pracy następuje łączenie się z serwerem Comarch i sprawdzanie, czy aktualizacja jest dostępna. Jeżeli tak, zostanie ona pobrana. Funkcja jest dostępna tylko dla programów na gwarancji.

Uwaga
W związku ze zmianą na serwerze Ministerstwa Finansów stosowanego do uwierzytelniania protokołu TLS (Transport Layer Security) do wersji 1.2, od wersji 2017.2.1 umożliwiono obsługę tego protokołu podczas wysyłki deklaracji drogą elektroniczną z programu Comarch ERP Optima. Wiąże się to z koniecznością zainstalowania na stanowisku komponentu .NET Framework w wersji co najmniej 4.5.

Deklaracja PIT-36

Naciśnięcie ikony  Wyślij deklarację do systemu e-Deklaracje, aktywnej na zatwierdzonym formularzu PIT‑36, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Do systemu e-Deklaracje można wysłać deklarację PIT-36 wraz z załącznikami: PIT/B, PIT/O, PIT/D, PIT-2K, PIT/ZG, PIT/Z, PIT/BR, PIT/IP, PIT/PM, PIT/MIT, PIT/WZ, ORD‑ZU. Nie są przesyłane pozostałe załączniki wymienione w sekcji „Informacje o załącznikach”. Jeżeli istnieje potrzeba wypełnienia któregoś z tych załączników należy złożyć deklarację poprzez stronę systemu e‑Deklaracje lub w formie papierowej.

Uwaga
Od wersji 2018.6.1 Comarch ERP Optima udostępniono możliwość seryjnego naliczania/zatwierdzania uproszczonych zaliczek na podatek dochodowy od osób fizycznych PIT-36.

W zależności jaki typ zaliczki zostanie wybrany dla podatnika na liście zaliczek PIT-36 (menu spod ikony plusa), w programie wyliczone zostaną zaliczki uproszczone bądź zwykłe i obowiązywać będą do końca roku kalendarzowego.

Od wersji 2020.5.1, w ramach tzw. tarczy antykryzysowej związanej z pandemią COVID-19, w okresie od marca 2020 umożliwiono rezygnację ze stosowania zaliczek uproszczonych w trakcie roku podatkowego. Podatnik pomimo wyboru formy uproszczonej ma możliwość naliczenia zaliczek zwykłych (wg zasad ogólnych).

Deklaracja PIT-36L

Naciśnięcie ikony  Wyślij deklarację do systemu e-Deklaracje, aktywnej na zatwierdzonym formularzu
PIT-36L, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Do systemu e-Deklaracje można wysłać deklarację PIT-36L wraz z załącznikami: PIT/B, PIT/ZG, PIT/Z, PIT/BR, PIT/O, PIT/IP, PIT/PM, PIT/MIT, PIT/WZ, ORD-ZU. Nie są przesyłane pozostałe załączniki wymienione w sekcji „Informacje o załącznikach”. Jeżeli istnieje potrzeba wypełnienia któregoś z tych załączników należy złożyć deklarację poprzez stronę systemu e‑Deklaracje lub w formie papierowej.

Uwaga
Od wersji 2018.6.1 Comarch ERP Optima udostępniono możliwość seryjnego naliczania/zatwierdzania uproszczonych zaliczek na podatek dochodowy od osób fizycznych PIT-36L.

W zależności jaki typ zaliczki zostanie wybrany dla podatnika na liście zaliczek PIT-36L (menu spod ikony plusa), w programie wyliczone zostaną zaliczki uproszczone bądź zwykłe i obowiązywać będą do końca roku kalendarzowego.

Od wersji 2020.5.1, w ramach tzw. tarczy antykryzysowej związanej z pandemią COVID-19, w okresie od marca 2020 umożliwiono rezygnację ze stosowania zaliczek uproszczonych w trakcie roku podatkowego. Podatnik pomimo wyboru formy uproszczonej ma możliwość naliczenia zaliczek zwykłych (podatek liniowy).

Deklaracja PIT-37

Naciśnięcie ikony   Wyślij deklarację do systemu e-Deklaracje, aktywnej na zatwierdzonym formularzu PIT-37, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Do systemu e-Deklaracje można wysłać deklarację PIT-37 wraz z załącznikami: PIT/O, PIT/D, PIT-2K, ORD-ZU. Jeżeli  istnieje potrzeba wypełnienia Certyfikatu rezydencji należy złożyć deklarację poprzez stronę systemu e‑Deklaracje lub w formie papierowej.

Deklaracja PIT-28

Naciśnięcie ikony  Wyślij deklarację do systemu e-Deklaracje, aktywnej na zatwierdzonym formularzu PIT‑28, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Do systemu e-Deklaracje można wysłać deklarację PIT-28 wraz z załącznikami: PIT-28/B, PIT/O, PIT/D, PIT-2K, PIT/WZR, ORD-ZU.

Deklaracja CIT-8

Naciśnięcie ikony   Wyślij deklarację do systemu e-Deklaracje, aktywnej na zatwierdzonym formularzu
CIT-8, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Do systemu e-Deklaracje można wysłać deklarację CIT-8 wraz z załącznikami
CIT-8/O, CIT-D, CIT-ST, CIT-ST/A, CIT-BR, CIT/IP, CIT/PM, CIT/MIT, CIT/WZ, ORD-ZU. Jeżeli istnieje potrzeba dołączenia innych załączników należy przesłać deklarację ze strony systemu e‑Deklaracje.

Uwaga
Od wersji 2018.1.1 Comarch ERP Optima udostępniono możliwość seryjnego naliczania/zatwierdzania uproszczonych zaliczek na podatek dochodowy od osób prawnych CIT-8.

W zależności czy na formularzu okresu obrachunkowego w Konfiguracji/ Firma/ Księgowość/ Okresy obrachunkowe zaznaczony zostanie parametr Zaliczki uproszczone na CIT, w programie wyliczone zostaną zaliczki uproszczone bądź zwykłe.

Od wersji 2020.5.1, w ramach tzw. tarczy antykryzysowej związanej z pandemią COVID-19, w okresie od marca 2020 umożliwiono rezygnację ze stosowania zaliczek uproszczonych w trakcie roku podatkowego. Podatnik pomimo wyboru formy uproszczonej ma możliwość naliczenia zaliczek zwykłych.

Deklaracja PIT-4R

Naciśnięcie ikony  Wyślij deklarację do systemu e-Deklaracje, aktywnej na zablokowanym formularzu
PIT-4R, rozpoczyna eksport deklaracji do systemu e-Deklaracje.

Uwaga
Od  2007  roku  Płatnik  nie  składa  deklaracji  PIT -4,  ale zobowiązany jest do comiesięcznej wpłaty zaliczki na podatek dochodowy. W celu ustalenia kwoty zaliczki podatku do odprowadzenia do Urzędu Skarbowego należy naliczać co miesiąc deklarację PIT-4 (wersja 18). Na podstawie tych miesięcznych zaliczek można przygotować deklarację roczną PIT -4R.

Deklaracja PIT-8AR

Z  poziomu Płace i Kadry / Podatek na PIT-8AR dostępna jest ‘Lista podatku na PIT-8AR’ z  naliczonymi zaliczkami za każdy miesiąc, na podstawie których można przygotować deklarację roczną PIT-8AR (wybierając z menu dostępnych opcji przy przycisku ‘plusa’). Naciśnięcie przycisku  Wyślij deklarację do systemu e‑Deklaracje, aktywnego na zablokowanym formularzu PIT-8AR, rozpoczyna eksport  deklaracji do systemu e‑Deklaracje.

Seryjne e-Deklaracje PIT-11/PIT-8C/ IFT-1/IFT-R

Z poziomu Płace i Kadry / Deklaracje PIT pracowników otwiera się okno z listą pracowników, dla których obliczono PIT. Domyślnie wyświetlana jest lista deklaracji PIT-11, z możliwością zmiany w filtrze (pole Lista deklaracji) na PIT-8C/IFT-1R/IFT-1. Zaznaczenie pracowników i naciśnięcie przycisku   powoduje seryjne zablokowanie deklaracji, niezbędne w celu wysłania deklaracji. Zaznaczając pracowników, dla których deklaracje mają być wysłane i naciśnięcie  przycisku   Wyślij  deklarację  do  systemu  e-Deklaracje  (dla zablokowanych formularzy), rozpoczyna eksport deklaracji.

Uwaga
W zależności od ustawień komponentu do obsługi podpisu elektronicznego program poprosi o podanie PIN’u tylko raz i podpisze wszystkie deklaracje lub będzie prosił o podanie PIN’u dla każdej deklaracji osobno. Komponent UNIZETO domyślnie wymaga wybrania certyfikatu i podpisania PIN’u tylko jeden raz w danej sesji. Komponent KiR’u i Sigillum wymaga ustawienia opcji „Trwały PIN” i podania np. na jaki czas ma być zapamiętany PIN.

Uwaga
W przypadku Comarch ERP Optima w modelu usługowym (iComarch24) program zapyta o certyfikat i poprosi o potwierdzenie każdej kolejnej wysyłanej deklaracji (ze względu na bezpieczeństwo – każda eksportowane deklaracja jest przesyłana jako plik xml zarówno na komputer Użytkownika, jak i na serwer Ministerstwa Finansów).

Uwaga
Możliwość ponownego przesłania deklaracji, do której już odebrano UPO dostępne jest tylko z formularza konkretnej deklaracji. Wysyłka e‑Deklaracji jest wykonywana tylko dla tych deklaracji, które są zablokowane. Nie można wyeksportować deklaracji ze statusem „Wysłano/Nie odebrano UPO”.

W przypadku deklaracji PIT, CIT oraz VAT posiadających status „Wysłano/obebrano UPO” – przed powtórną ich wysyłką Użytkownik otrzyma komunikat “Deklaracja została już wysłana i zostało odebrane Urzędowe Poświadczenie Odbioru. Ponowna wysyłka spowoduje rozbieżność między nr referencyjnym na deklaracji a wydrukiem UPO. Czy chcesz kontynuować?” z możliwością wyboru: TAK/NIE.

3 Odbieranie UPO

Po wysłaniu deklaracji należy odebrać UPO (Urzędowe Poświadczenie Odbioru). UPO powinno być dostępne do odbioru do 24 godzin od wysłania.

Aby odebrać UPO należy otworzyć formularz deklaracji i za pomocą ikony  Pobierz UPO  zainicjować pobranie UPO. Poprawne pobranie UPO zakończy się komunikatem:

Rys 2. Log z przebiegu operacji – pobieranie UPO

Urzędowe Poświadczenie Odbioru można wydrukować z poziomu formularza deklaracji.

4 Korekta deklaracji

W przypadku konieczności złożenia korekty deklaracji należy dodać nowy formularz deklaracji i zaznaczyć na nim cel złożenia – korekta, bądź dla wskazanego okresu uruchomić ikonę Korekta deklaracji .  Kolejnym krokiem jest jej przeliczenie (przycisk Przelicz ) wraz z możliwością wypełnienia zakładki ORD-ZU. Stanowi ona załącznik z uzasadnieniem przyczyny korekty. Na korektach deklaracji składanych od 01.01.2016 wyłączono konieczność uzupełniania załącznika ORD-ZU. Podczas wykonywania korekt wybranych deklaracji, zakładka ORD-ZU jest widoczna, ale jej uzupełnienie nie jest już konieczne do zatwierdzenia deklaracji i wysłania jej drogą elektroniczną.

Mechanizm wysyłki i odbierania UPO jest identyczny jak przy składaniu deklaracji pierwotnej. Z poziomu formularza deklaracji można wydrukować samą deklarację, jak również formularz UPO czy pozostałe załączniki, tj. ORD-ZU, VAT-ZZ czy VAT-ZT.

Uwaga
Korektę deklaracji można naliczyć i zapisać w sytuacji, gdy deklaracja korygowana zostanie wcześniej zablokowana przed zmianami (na liście nie może ona widnieć w kolorze zielonym).

Uwaga
Zanim zostanie wysłana korekta danej deklaracji należy wcześniej odebrać UPO do deklaracji pierwotnej (czyli upewnić się, że pierwotna deklaracja została złożona poprawnie).

Uwaga
Korekty wybranych deklaracji, tj. VAT-UE czy PIT-37 można wyliczyć wyłącznie za pomocą ikony Korekta deklaracji .

5 Comarch ERP Optima Biuro Rachunkowe ‑ eksport e-Deklaracji oraz import UPO

W  module Comarch ERP Optima Biuro Rachunkowe istnieje możliwość eksportu e-Deklaracji oraz importu  Urzędowego Poświadczenia Odbioru (UPO). Funkcja ta usprawnia pracę doradców podatkowych oraz biur rachunkowych poprzez umożliwienie seryjnego wykonywania wspomnianych wcześniej operacji dla wybranych baz firmowych.

Obecnie można dokonać eksportu następujących deklaracji: VAT-7, VAT-7K, VAT-UE, VAT-9M, VAT-8,VAT‑27, PIT-36, PIT-36L, PIT-28, CIT-8, PIT-4R, PIT-8AR, PIT-11.

Funkcja widoczna jest na liście operacji seryjnych w menu pod nazwą e-Deklaracje / Wyślij JPK i składa się z dwóch pozycji: Wyślij deklaracje, Odbierz UPO. W gałęzi tej dostępne są również opcje związane z seryjną wysyłką plików JPK_VAT/ JPK_V7: Wyślij JPK_VAT oraz Odbierz UPO dla JPK_VAT, więcej informacji opisane zostało w biuletynie OPT088 – Pliki JPK_V7 – przygotowanie dokumentów i generacja plików.

Rys 3. Widok funkcji w dostępnym menu e-Deklaracje / JPK

Po wyborze funkcji Wyślij deklaracje pojawi się okno dialogowe zawierające rozwijalną listę, za pomocą której Użytkownik ma możliwość dokonania szybkiego wyboru rodzaju deklaracji, którą chce wysłać.

Rys 4. Okno dialogowe z rozwijalną listą deklaracji, podczas wywoływania funkcji „Wyślij deklaracje”

Po wybraniu rodzaju deklaracji pojawi się okno z wyborem certyfikatu i podaniem PIN’u. W zależności od ustawień komponentu do obsługi podpisu elektronicznego program poprosi o podanie PIN’u tylko raz i podpisze wszystkie deklaracje lub będzie prosił o podanie PIN’u dla  każdej deklaracji osobno. Komponent UNIZETO domyślnie wymaga wybrania certyfikatu i podpisania PIN’u tylko jeden raz w danej sesji. Komponent KiR’u i Sigillum wymaga ustawienia opcji „Trwały PIN” i podania np. na jaki czas ma być zapamiętany PIN. Po podpisaniu deklaracji  następuje jej wysłanie do systemu e-Deklaracje. Jeżeli Użytkownik dokonał eksportu wybranych deklaracji np. VAT-7 lub VAT-UE, wówczas w bazie danych klienta wyświetlana jest informacja o wysyłce elektronicznej, która znajduje się w atrybucie „Deklaracja VAT-7” lub „Deklaracja VAT-UE”, w  zależności od tego jaki rodzaj deklaracji został wysłany.

Uwaga
Należy pamiętać, aby wysyłane deklaracje zostały wcześniej zatwierdzone. W przeciwnym razie program nie pozwoli na ich wyeksportowanie i pojawi się odpowiedni komunikat: „W bazie [nazwa bazy] deklaracja nie została zatwierdzona. Deklaracja [formularz] nie została wysłana.” W takiej sytuacji należy zatwierdzić daną deklarację i ponownie wysłać.

Podczas seryjnej wysyłki e-Deklaracji z poziomu Biura Rachunkowego w przypadku wystąpienia nieprawidłowości wynik walidacji zwróci dla każdej z deklaracji informację o pierwszym znalezionym błędzie. Mechanizm ten różni się od tego, który istnieje z poziomu programu Comarch ERP Optima, gdzie w treści walidacji otrzymujemy pełną listę napotkanych niezgodności.

Po wysłaniu deklaracji i odebraniu UPO zablokowana jest możliwość ponownej wysyłki deklaracji z poziomu Biura Rachunkowego.

Chcąc dokonać importu Urzędowego Poświadczenia Odbioru należy wybrać z menu funkcję Odbierz UPO. Następnie, podobnie jak przy eksporcie deklaracji, pojawi się okno dialogowe z rozwijalnym menu pozwalające na  wybór rodzaju deklaracji dla której Użytkownik chce dokonać importu. Po wybraniu rodzaju  deklaracji rozpocznie się proces pobierania UPO. Analogicznie jak przy eksporcie deklaracji  VAT-7 oraz VAT-UE, po zakończeniu operacji importu UPO pojawia się informacja o odbiorze UPO w atrybucie „Deklaracja VAT-7” lub „Deklaracja VAT-UE”.

Rys 5. Okno dialogowe z rozwijalną listą deklaracji, podczas wywoływania funkcji „Odbierz UPO”

Przy eksporcie e-Deklaracji oraz imporcie UPO w Panelu Wyników będą wyświetlane odpowiednie komunikaty informujące o przebiegu danych operacji.

Uwaga
Aby funkcja eksportu deklaracji oraz importu UPO w module Comarch ERP Optima Biuro Rachunkowe mogła poprawnie działać, należy pamiętać o ustawieniu odpowiednich parametrów w konfiguracji programu Comarch ERP Optima (pkt 1).

W przypadku wysłanych deklaracji, dla których pobrano Urzędowe Poświadczenie Odbioru program umożliwia

seryjny wydruk UPO.

Rys 6. Widok funkcji w dostępnym menu Wydruki

6 Najczęstsze komunikaty przy wysyłaniu e-Deklaracji

Komunikat przy wysyłaniuPrzyczyna
Błąd wysyłania e-Deklaracji: nie został nadany numer referencyjny (Połączenie podstawowe zostało zakończone: Nie można ustanowić relacji zaufania dla bezpiecznego kanału SSL/TLS.|).Brak certyfikatu Ministerstwa Finansów “ROOT MINFIN SERVERS CA” – należy go dodać do „Zaufane główne urzędy certyfikacji” – z poziomu Windows Internet Explorer / Narzędzia / Opcje internetowe / zakładka Zawartość / Certyfikaty.
Błąd wysyłania e-Deklaracji: nie został nadany numer referencyjny (Nie można rozpoznać nazwy zdalnej: 'bramka.edeklaracje.gov.pl').Błędny adres usługi serwisu e-Deklaracji wpisany z poziomu: System / Konfiguracja / Program / Ogólne / e-Deklaracje - prawidłowa ścieżka to:
https://bramka.e-deklaracje.mf.gov.pl/

PIT-11

Komunikat przy wysyłaniuPrzyczyna
Deklaracja nie została wyeksportowana z powodu błędów. Nieznany błąd czasu wykonywania. wiersz = 130, kolumna = 4 (wiersz jest przesunięciem od początku bloku skryptu). Zwrócono błąd z wywołania właściwości lub metody. [-2147352567]”Typ wypłaty będący potrąceniem w Konfiguracji / Firma / Płace / Typy wypłat ma uzupełnioną ‘Pozycję na deklaracji PIT’ – PIT-11 1a. Wynagrodzenia ze stosunku… - wówczas pojawia się na deklaracji z MINUSEM w pozycji ‘Dochód zwolniony od podatku’. Należy zmienić tą pozycję na ‘Nie dotyczy’ i przeliczyć deklarację PIT-11.

7 Najczęstsze komunikaty błędów podczas walidacji i/lub przy odbiorze UPO

Komunikat podczasPrzyczyna
Walidacji Comarch ERP OptimaOdbioru UPO z systemu e-Deklaracje
Niepoprawna wartość '0001' w polu KodUrzedu (TKodUS: dopuszczalne wartości [0202, 0203, 0204, 0205, 0206, 0207, 0208, 0209, 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217, 0218, 0219, 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227, 0228, 0229, 0230, 0231, 0232, 0233, 0234, 0271, 0402, 0403, 0404, 0405, 0406, 0407, 0408, 0409, 0410, 0411, 0412, 0413, 0414, 0415, 0416, 0417, 0418, 0419, 0420, (…)])Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value '0001' is not facet-valid with respect to enumeration '[0202, 0203, 0204, 0205, 0206, 0207, 0208, 0209, 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217, 0218, 0219, 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227, 0228, 0229, 0230, 0231, 0232, 0233, 0234, 0271, 0402, (…)]'. It must be a value from the enumeration.]Błędny kod urzędu skarbowego przypisanego do deklaracji w Konfiguracji Firmy/ Dane Firmy/ Deklaracje.

Należy poprawić Kod na karcie urzędu (Ogólne/ Inne/ Urzędy), następnie ponownie przeliczyć, zablokować i wysłać deklarację.
Nieprawidłowa wiadomość UPO. The filename, directory name, or volume label syntax in correct.
Nieprawidłowa wiadomość UPO. Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest niepoprawna.
Próba pobrania UPO nieaktualną wersją programu Comarch ERP Optima np. 17.3
Zamknięcie programu Comarch ERP Optima - Runtime errorW przypadku seryjnego pobierania UPO, gdy brak sieci lub serwer Ministerstwa Finansów jest niedostępny.
Błąd wysyłania e-Deklaracji: nie został nadany numer referencyjny (Połączenie podstawowe zostało zakończone: Nie można ustanowić relacji zaufania dla bezpiecznego kanału SSL/TLS.|).Brak aktualnego pełnomocnictwa/upoważnienia do podpisywania deklaracjiJeżeli wygasł certyfikat – należy sprawdzić UPL-1 (upoważnienie do składania deklaracji) jaka jest na nim data obowiązywania.
Nie udało się zwalidować e-deklaracji z powodu błędów. Brak schematu dokumentu elektronicznego na stronach e-PUAP. Poprawność deklaracji zostanie sprawdzona podczas odbioru UPO. [-2146232832]Błąd odbierania UPO. Informacje dodatkowe: Błąd komunikacji z serwerem e-Deklaracji:
Connector:Connection time out. HRESULT=0x800A1527 - Connector:Unspecified HTTP error. HRESULT=0x800A1518 lub
Błąd wysyłania e-Deklaracji: nie został nadany numer referencyjny (Żądanie nie powiodło się. Odpowiedź jest pusta.|)
Problem z serwerem e-Deklaracji występujący np. w okresie wzmożonej wysyłki deklaracji. Utrudnienia w dostępie do usługi systemu e-Deklaracje niezależne i niezwiązane z programem Comarch ERP Optima. Komunikaty świadczyć mogą o przejściowych problemach z dostępem do serwera e-Deklaracji. Należy w takim wypadku wstrzymać się z wysyłką deklaracji i ponowić próbę za jakiś czas. Jeżeli Użytkownik zdecyduje się na wysyłkę, powinien od razu spróbować pobrać UPO, aby mieć pewność poprawności wysłanej deklaracji.

Deklaracja VAT-7, VAT-8, VAT-9M, VAT-27:

Komunikat podczasPrzyczyna
Walidacji Comarch ERP OptimaOdbioru UPO z systemu e-Deklaracje
Nieuzupełnione pole PelnaNazwaWeryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type
'#AnonType_PelnaNazwa TIdentyfikatorOsobyNiefizycznej'.]
Niewypełnione pole Nazwa pełna w Konfiguracji/ Firma/ Dane Firmy/ VAT, AKC-WW, CUK.
Nieuzupełnione pole ImiePierwsze (Imię: minimalna długość 1 znaków, maksymalna długość 30 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TImie'.]Niewypełnione pole Imię, jeżeli podatnik jest osobą fizyczną, w Konfiguracji/ Firma/ Dane Firmy/ VAT, AKC-WW, CUK.
Nieuzupełnione pole Nazwisko (Nazwisko: minimalna długość 1 znaków, maksymalna długość 81 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TNazwisko'.]Niewypełnione pole Miasto i/lub Poczta w Konfiguracji/ Firma/ Dane Firmy/ VAT, AKC-WW, CUK.
Nieuzupełnione pole DataUrodzenia (Data: wartość musi być większa lub równa: 1900-01-01)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-datatype-valid.1.2.1: '' is not a valid value for 'date'.]Niewypełnione pole Data urodzenia, jeżeli podatnik jest osobą fizyczną, w Konfiguracji/ Firma/ Dane Firmy/ VAT, AKC- WW, CUK.
Niepoprawna wartość '20' w polu 49 (Wartość: wartość musi być mniejsza lub równa: 0, ilość cyfr: 14)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-maxInclusive-valid: Value '20' is not facet-valid with respect to maxInclusive '0' for type '#AnonType_P_49PozycjeSzczegolowe'.]Błędna wartość w polu 49 deklaracji VAT-7 składanej od sierpnia/3 kwartału 2016. Pole 49 od wersji 17 formularza musi być wypełnione wartością ujemną.
Niepoprawna wartość '-20' w polu 50 (Wartość: wartość musi być większa lub równa: 0, ilość cyfr: 14)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minInclusive-valid: Value '-20' is not facet-valid with respect to minInclusive '0' for type 'TKwotaCNieujemna'.]Błędna wartość w polu 50 deklaracji VAT-7 składanej od sierpnia/3 kwartału 2016. Pole 50 od wersji 17 formularza musi być wypełnione wartością nieujemną.
Niepoprawna wartość '12345678' w polu NIP (NIP)
Nieuzupełnione pole P_BC w załączniku Wniosek_VAT-ZD (NIP)
Niepoprawna wartość ‘wartość’ w polu P_BC w załączniku Wniosek_VAT-ZD (NIP)
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value '12345678' is not facet-valid with respect to pattern '[1-9]((\d[1-9])|([1-9]\d))\d{7}' for type 'TNrNIP'Błędnie wpisany NIP w Konfiguracji/ Firma/ Dane Firmy/ VAT, AKC-WW , CUK (w komunikacie zamiast '12345678' jest podawany błędnie wpisany NIP)
i/lub wraz z deklaracją wysyłany jest załącznik VAT-ZD (dla sprzedaży), ale dokumenty w rejestrze VAT, które są uwzględniane na VAT-ZD mają błędny NIP (w komunikacie zamiast '12345678' jest podawany błędnie wpisany NIP).
Należy poprawić NIP na dokumencie w rejestrze VAT, następnie odblokować deklarację VAT-7, usunąć z rejestru VAT zapis korekcyjny wygenerowany do załącznika
VAT-ZD, odblokować i ponownie przeliczyć VAT-ZD. Następnie ponownie zablokować VAT-ZD i wygenerować zapis korekcyjny oraz przeliczyć i ponownie wysłać deklarację.

Deklaracja VAT-UE:

Komunikat podczasPrzyczyna
Walidacji Comarch ERP OptimaOdbioru UPO z systemu e-Deklaracje
Niepoprawna wartość '123.456.7890' w polu P_Db (NIP UE)
Niepoprawna wartość 'PL' w polu P_Da/P_Na (TKodKrajuUE: dopuszczalne wartości [AT, BE, BG, CY, CZ, DK, DE, EE, EL, ES, FI, FR, GB, HR, HU, IE, IT, LV, LT, LU, MT, NL, PT, RO, SE, SI, SK, XI])
Niepoprawna wartość 'PL' w polu P_Ua (TKodKrajuUEUslugi: dopuszczalne wartości [AT, BE, BG, CY, CZ, DK, DE, EE, EL, ES, FI, FR, GB, HR, HU, IE, IT, LV, LT, LU, MT, NL, PT, RO, SE, SI, SK])
Nieuzupełnione pole P_Db/P_Nb/P_Ub (NIP UE)
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value '123.456.7890' is not facet- valid with respect to pattern '(\d|[A-Z]|\+|\*){1,12}' for type'TNrVatUE'.]
Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value 'PL' is not facet-valid with respect to enumeration '[AT, BE, BG, CY, CZ, DK, DE, EE, EL, ES, FI, FR, GB, HR, HU, IE, IT, LV, LT, LU, MT, NL, PT, RO, SE, SI, SK, XI]'. It must be a value from the enumeration.]
Błędny NIP na dokumencie w rejestrze VAT (w komunikacie zamiast '123.456.7890' jest podawany błędnie wpisany NIP).
Błędny Kod Kraju UE na dokumencie w rejestrze VAT (w komunikacie zamiast 'PL' jest podawany błędny prefiks NIP).
Nieuzupełnione (puste) pole NIP.
Należy poprawić NIP na dokumencie, następnie odblokować, przeliczyć i ponownie wysłać deklarację.

Deklaracja PIT-36, PIT-36L, PIT-37, PIT-28, PIT-11, PIT-8C, IFT:

Komunikat podczas
Walidacji Comarch ERP OptimaOdbioru UPO z systemu e-DeklaracjePrzyczyna
Nieuzupełnione pole P_C11 w załączniku PIT_B
Nieuzupełnione pole element P_C7/P_C8 w załączniku PIT-28_B
Nieuzupełnione pole P_189_1/33
Nieuzupełnione pole 35/49 w załączniku PIT_O
Nieuzupełnione pole 17 w załączniku PIT_D
Nieuzupełnione pole P_B9 w załączniku PIT_MIT
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TZnakowy'.Na PIT/B niewypełniona pozycja Nazwa spółki.
Na PIT28/B niewypełniona pozycja Nazwa spółki i/lub identyfikator NIP.
Jeśli jest wpisana kwota Straty z lat ubiegłych należy uzupełnić również Źródła strat.
i/lub na PIT/O wpisana jest kwota Innych ulg, a nie jest uzupełniony Rodzaj ulgi
i/lub na PIT/D wpisana jest kwota odliczenia, a nie jest uzupełniony Rodzaj wydatków mieszkaniowych i/lub Nazwa środka trwałego na PIT/MIT
Nieuzupełnione pole Wojewodztwo/Powiat/Gmina (Nazwa województwa, nazwa powiatu lub nazwa gminy: minimalna długość 1 znaków, maksymalna długość 36 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respekt to minLength '1' for type 'TJednAdmin'.Niewypełnione pola Województwo i/lub Powiat i/lub Gmina na karcie właściciela/wspólnika/pracownika i/lub niewypełnione województwo/powiat/gmina w danych małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem).
Deklaracja nie została wyeksportowana z powodu błędów. Na karcie właściciela nie wpisano daty urodzenia. [-2147467259] lub
Nieuzupełnione pole DataUrodzenia (Data: wartość musi być większa lub równa: 1900-01-01, wartość musi być mniejsza lub równa: 2030-12-31)
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minInclusive-valid: Value '1899-12-30' is not facet- valid with respect to minInclusive '1900-01-01' for type 'TData'Niewypełnione pole Data urodzenia na formularzu właściciela/wspólnika/pracownika i/lub data urodzenia małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem).
Nieuzupełnione pole NrDomu (Nr budynku: minimalna długość 1 znaków, maksymalna długość 9 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respekt to minLength '1' for type 'TNrBudynku'.Niewypełnione pole Nr domu na formularzu właściciela/wspólnika/pracownika i/lub w danych małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem).
Nieuzupełnione pole Miejscowosc/MiejsceUrodzenia (Miejscowość: minimalna długość 1 znaków, maksymalna długość 56 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respekt to minLength '1' for type 'TMiejscowosc'.Niewypełnione pole Miejscowość na formularzu właściciela/wspólnika/pracownika i/lub w danych małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem) i/lub na PIT/O, w części D (informacja o przekazanych darowiznach i obdarowanych) niewypełniona Miejscowość przy uzupełnionych innych polach i/lub niewypełniona Miejscowość/Poczta w danych firmy w Konfiguracji/ Firma/ Dane firmy/ PIT-4R,CIT-8, ZUS DRA.
W przypadku deklaracji IFT niewypełnione pole Miejsce urodzenia na formularzu pracownika.
Nieuzupełnione pole KodPocztowy (Kod pocztowy: minimalna długość 1 znaków, maksymalna długość 8 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TKodPocztowy'.Niewypełnione pole Kod pocztowy na formularzu właściciela/wspólnika/pracownika i/lub w danych małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem)
Nieuzupełnione pole Nazwisko lub
Nieuzupełnione pole Nazwisko w załączniku PIT_O/PIT_D (Nazwisko: minimalna długość 1 znaków, maksymalna długość 81 znaków)
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respekt to minLength '1' for type 'TNazwisko'.Niewypełnione pole Nazwisko małżonka na deklaracji rocznej i/lub załączniku PIT/O/PIT/D (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem).
Nieuzupełnione pole ImiePierwsze (Imię: minimalna długość 1 znaków, maksymalna długość 30 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TImie'.Niewypełnione pole Pierwsze Imię małżonka (w przypadku rozliczania PIT-36 lub PIT-37 wspólnie z małżonkiem)
Zaznaczono w Konfiguracji/ Firma/ Dane firmy/ PIT-4R, CIT-8, ZUS DRA że podatnik jest osobą fizyczną ale nie zostały uzupełnione dane właściciela.
Nieuzupełnione pole P_D3 w załączniku PIT_O lub
Nieuzupełnione pole P_F64A w załączniku PIT_BR lub
Nieuzupełnione pole KodKraju/KodKrajuWydania (Kod kraju: dopuszczalne wartości [AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value '' is not facet-valid with respect to enumeration '[AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET, FK, (…)]'. It must be a value from the enumeration.]Niewypełnione pole Kod kraju na załączniku PIT/O, w części dot. informacji o przekazanych darowiznach i obdarowanych.
Niewypełnione pole Kod kraju na załączniku PIT/BR, w części dot. danych jednostki naukowej.
Niewypełnione pole Kod kraju na formularzu pracownika i/lub formularzu deklaracji.
Nieuzupełnione pole NrLokalu (Nr lokalu: minimalna długość 1 znaków, maksymalna długość 10 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TNrLokalu'.]W pliku xml jest pusta sekcja z numerem lokalu. Taki efekt powstaje po imporcie danych kadrowych z arkusza MS Excel, jeżeli w arkuszu w kolumnie ‘Nr Lokalu’ została wpisana spacja. Normalnie w przypadku nie wypełnionego pola z numerem lokalu na formularzu danych kadrowych ta sekcja się w ogóle nie generuje. W takiej sytuacji należy edytować formularz danych kadrowych pracownika/właściciela/wspólnika, wpisać w pole numer lokalu np. 1, zapisać zmianę/formularz, ponownie go edytować, usunąć całą zawartość pola z numerem lokalu i zapisać. Po tak wykonanych czynnościach plik z deklaracją jest wysyłany poprawnie.
Niepoprawna wartość '0' w polu RodzajNrId (TRodzajId: dopuszczalne wartości [1, 2, 3, 4, 8, 9])Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value '0' is not facet-valid with respect to enumeration '[1, 2, 3, 4, 8, 9]'. It must be a value from the enumeration.]Niewypełnione pole Rodzaj numeru identyfikacyjnego na formularzu pracownika na zakładce 2. Nr ident./podatki.
Nieuzupełnione pole NrId (Numer dokumentu stwierdzającego tożsamość: minimalna długość 1 znaków, maksymalna długość 50 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TNrDokumentu StwierdzajacegoTozsamosc'.Niewypełnione pole Zagraniczny numer identyfikacyjny podatnika na formularzu pracownika na zakładce 2. Nr ident./podatki.
Niepoprawna wartość '123456789' w polu 472/163/132/175 (KRS)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value '123456789' is not facet-valid with respect to pattern '\d{10}' for type 'TNrKRS'.]Błędny numer KRS, wpisany w sekcji „Wniosek o przekazanie 1% podatku” (w komunikacie zamiast '123456789' jest podawany błędnie wpisany numer KRS odpowiednio na deklaracji PIT-36/PIT-36L/PIT-37/PIT-28)
Niepoprawna wartość '0' w polu 23 w załączniku PIT_IP (Rok: wartość musi być większa lub równa: 2015, wartość musi być mniejsza lub równa: 2030)Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-datatype-valid.1.2.1: '0' is not a valid value for 'gYear'.]Należy uzupełnić rok w polu 23 w którym podatnik korzystał ze zwolnienia dochód wykazanych w polu 24 w załączniki PIT/IP
Niepoprawna wartość '0' w polu P_B10 w załączniku PIT_MIT (Wartość: wartość musi być większa lub równa: 0, wartość musi być większa niż: 0, ilość cyfr: 16, ilość cyfr po przecinku: 2)Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minExclusive-valid: Value '0' is not facet-valid with respect to minExclusive '0.0' for type '#AnonType_P_B10P_BPozycjeSzczegoloweZalacznik_PIT_MIT'.]Niewypełnione pole dotyczące liczby środków trwałych na PIT/MIT

Deklaracja CIT-8:

Komunikat podczasPrzyczyna
Walidacji Comarch ERP OptimaOdbioru UPO z systemu e-Deklaracje
Nieuzupełnione pole PelnaNazwaWeryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type
'#AnonType_PelnaNazwa TIdentyfikator OsobyNiefizycznej'.]
Niewypełnione pole Nazwa pełna w Konfiguracji/ Firma/ Dane Firmy/ PIT-4R, CIT-8, ZUS DRA
Niepoprawna wartość '12345' w polu NIP (NIP)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value '12345' is not facet-valid with respect to pattern '[1-9]((\d[1-9])|([1-9]\d))\d{7}' for type 'TNrNIP'Błędny numer NIP wpisany w Konfiguracji/ Firma/ Dane Firmy/ Pieczątka Firmy (w komunikacie zamiast '12345' jest podawany błędnie wpisany NIP).
Nieuzupełnione pole Wojewodztwo/Powiat/Gmina lub Nieuzupełnione pole P_A/P_B/P_C w załączniku CIT-ST (Nazwa województwa, nazwa powiatu lub nazwa gminy: minimalna długość 1 znaków, maksymalna długość 36 znaków) Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TJednAdmin'.Niewypełnione pola Województwo i/lub Powiat i/lub Gmina w Konfiguracji/ Firma/ Dane Firmy/ PIT-4R, CIT-8, ZUS DRA i/lub niewypełnione pola Województwo i/lub Powiat i/lub Gmina w części dot. zakładów/ oddziałów na załączniku CIT/ST.
Nieuzupełnione pole NrDomu (Nr budynku: minimalna długość 1 znaków, maksymalna długość 9 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TNrBudynku'.Niewypełnione pole Nr domu w Konfiguracji/ Firma/ Dane Firmy/ PIT-4R, CIT-8, ZUS DRA.
Nieuzupełnione pole Miejscowosc lub Nieuzupełnione pole 33 w załączniku CIT-D lub Nieuzupełnione pole 13 w załączniku CIT-ST_A - załącznik do załącznika CIT-ST (Miejscowość: minimalna długość 1 znaków, maksymalna długość 56 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TMiejscowosc'.Niewypełnione pole Miejscowość w Konfiguracji/ Firma/ Dane Firmy/ PIT-4R, CIT-8, ZUS DRA i/lub
niewypełnione pole Miejscowość w danych darczyńcy/ informacji o obdarowanym na CIT-D i/lub w danych Zakładu (oddziału) na CIT-ST/A.
Nieuzupełnione pole KodPocztowy (Kod pocztowy: minimalna długość 1 znaków, maksymalna długość 8 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TKodPocztowy'.Niewypełnione pole Kod pocztowy w Konfiguracji/ Firma/ Dane Firmy/ PIT-4R, CIT-8, ZUS DRA.
Nieuzupełnione pole 71/151/167/172/173 w załączniku CIT-8_O lub
Nieuzupełnione pole 25/75 w załączniku CIT-D lub
Nieuzupełnione pole P_E1 w załączniku CIT-ST lub
Nieuzupełnione pole P_1 w załączniku CIT-ST_A - załącznik do załącznika CIT-ST
Nieuzupełnione pole P_B8 w załączniku CIT_MIT
Nieuzupełnione pole P_G41 w załączniku CIT_IP
Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TZnakowy'.]Na CIT-8/O wpisana jest Kwota innych dochodów wolnych i/lub Kwota innych odliczeń, a nie jest uzupełnione pole Tytułem i/lub wpisana jest Kwota Zwolnienia, a nie jest uzupełniony Numer decyzji Ministra Finansów i/lub wpisana jest Kwota zaniechania poboru podatku i Data rozporządzenia, a nie jest uzupełniony Tytuł Rozporządzenia i/lub wpisana jest Kwota obniżki z innych tytułów, a nie jest uzupełniony Tytuł obniżki
i/lub na CIT/D w Danych darczyńcy/ Informacji o obdarowanym nie jest uzupełnione pole Nazwa Pełna
i/lub na CIT-ST nie jest uzupełnione pole Nazwa zakładu (oddziału)
i/lub na CIT-ST/A nie jest uzupełniona Nazwa pełna zakładu (oddziału) i/lub Nazwa środka trwałego na CIT/MIT i/lub Numeru wydania zezwolenia lub decyzji o wsparciu na CIT/IP.
Niepoprawna wartość '1899-12-30' w polu 169/170 w załączniku CIT-8_O (Data: wartość musi być większa lub równa: 1900-01-01)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-datatype-valid.1.2.1: '00:00:00' is not a valid value for 'date'.]Na CIT-8/O wpisany jest Numer decyzji Ministra Finansów i Kwota Zwolnienia, a nie jest uzupełniona Data decyzji Ministra Finansów i/lub wpisana jest Kwota zaniechania poboru podatku, a nie jest uzupełniona Data rozporządzenia.
Nieuzupełnione pole P_26A/74/P_76A w załączniku CIT-D lub Nieuzupełnione pole P_F63A w załączniku CIT-BR (Kod kraju: dopuszczalne wartości [AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, (…)])Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value '' is not facet-valid with respect to enumeration '[AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET, FK, FJ, PH, FI, FR, TF, GA, GM, GH, GI, GR, GD, GL, GE, GU, GG, GY, GF, GP, GT, (…)]'. It must be a value from the enumeration.]Na CIT-D w części dot. danych darczyńcy i/lub
w Informacji o obdarowanym nie jest wypełnione pole Kod kraju.
Na CIT-BR w części dot. danych jednostki naukowej nie jest wypełnione pole Kod kraju.
Nieuzupełnione pole 74 w załączniku CIT-D (Numer identyfikacji podatkowej: minimalna długość 1 znaków, maksymalna długość 30 znaków)Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TNrIdentyfikacjiPodatkowej'.]Niewypełnione pole Identyfikator podatkowy w części dot. Informacji o obdarowanym na załączniku CIT-D.
Niepoprawna wartość '1234567' w polu P_D w załączniku CIT-ST (Kod gminy: http://www.stat.gov.pl/broker/access/showSearch.jspa )Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-enumeration-valid: Value '1234567' is not facet-valid with respect to enumeration '[0201011, 0201022, 0201032, 0201043, 0201052, 0201062, 0202011, 0202021, 0202031, 0202041, 0202052, 0202062, 0202073, 0203011, 0203022, 0203032, 0203042, 0203052, 0203062, (…)]'. It must be a value from the enumeration.]Niepoprawny Kod gminy w części dot. zakładów/ oddziałów na załączniku CIT/ST (w komunikacie zamiast '1234567' jest podawany błędnie wpisany Kod).
Nieuzupełnione pole P_G42 w załączniku CIT_IP (Data: wartość musi być większa lub równa: 1900-01-01, wartość musi być mniejsza lub równa: 2030-12-31)
Niepoprawna wartość 'PL999' w polu P_G43 w załączniku CIT_IP (String)
Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '((\d{4})-(\d{2})-(\d{2}))' for type 'TData'.]
Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-pattern-valid: Value 'PL999' is not facet-valid with respect to pattern 'PL[24-9]{1}[1-4]{1}[1-9]{1}|PL[2]{2}[ABC]{1}|PL21A|PLZZZ' for type '#AnonType_P_G43P_GPozycjeSzczegoloweZalacznik_CIT_IP'.]
Niewypełnione pole dotyczące Daty wydania zezwolenia lub decyzji o wsparciu na CIT/IP.
Niepoprawny lub pusta jednostka terytorialna realizacji inwestycji w ‘PL’
Niepoprawna wartość '0' w polu P_B9 w załączniku CIT_MIT (Wartość: wartość musi być większa lub równa: 0, wartość musi być większa niż: 0, ilość cyfr: 16, ilość cyfr po przecinku: 2)Status deklaracji: Weryfikacja negatywna – dokument niezgodny ze schematem xsd [cvc-minExclusive-valid: Value '0' is not facet-valid with respect to minExclusive '0.0' for type '#AnonType_P_B9P_BPozycjeSzczegoloweZalacznik_CIT_MIT'.]Niewypełnione pole dotyczące liczby środków trwałych na CIT/MIT

 

Uwaga
Powyższe komunikaty zwracające numer pola podczas walidacji w programie Comarch ERP Optima odwołują się do najnowszych formularzy deklaracji składanych za rok 2020. W przypadku składania deklaracji bądź ich korekt za inny okres,numeracja pól w treści komunikatów dla poprzednich wzorów może nieznacznie się różnić.




OPT066 – Szybki import i eksport przelewów przez bankowość internetową ING

Data aktualizacji: 28-11-2018

Informacje ogólne

System Comarch ERP Optima obsługuje wymianę danych z bankiem (eksport i import przelewów) za pomocą usługi sieciowej opartej o standard Comarch Data Connect 2.0.

Ten sposób wymiany danych umożliwia pobieranie wyciągów bankowych oraz historii operacji, a także eksport przelewów bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową oraz Comarch ERP Optima. Możliwe jest również pobieranie dla każdego wysłanego przelewu jego aktualnego statusu w banku (przelew może oczekiwać na realizację, zostać zrealizowany, odrzucony, anulowany itp.).

Wymiana danych pomiędzy bankiem a klientem w usłudze sieciowej odbywa się przez wymianę komunikatów w formacie plików XML (standard ISO 20022) przy wykorzystaniu technologii web-services. Całość komunikacji jest zabezpieczona przez bezpieczny kanał HTTPS z wykorzystaniem dwustronnego SSL. Dzięki tym technologiom komunikacja pomiędzy Bankiem a klientem jest szyfrowana i nikt niepowołany nie ma dostępu do przesyłanych informacji. Dodatkowo dzięki dwustronnemu SSL Bank otrzymuje możliwość wstępnej weryfikacji klienta, a klient może zweryfikować, czy faktycznie podłączył się do serwera Banku.

Do zabezpieczenia wymiany informacji zastosowane zostały: certyfikat transportowy, który weryfikuje Klienta i pozwala zweryfikować jego prawo do danego rachunku (rachunków) oraz certyfikat autoryzacyjny (podpis elektroniczny), którym mogą być podpisywane wysyłane do banku przelewy. Gdy przelewy nie zostaną podpisane lub zostaną podpisane przez nieuprawnioną osobę – zlecenia będą oczekiwały w banku na akceptację uprawnionej osoby.

Na liście Ogólne/Inne/Formaty przelewów dostępny jest format ING WebService (standardowy) do wymiany danych z ING Bank Śląski. Na stronie http://www.ingbank.pl/ing-businessonline/webservice można dowiedzieć się więcej o tej usłudze oraz sposobie jej zamawiania.

W przypadku innych banków należy zweryfikować możliwość wymiany danych poprzez usługę sieciową kontaktując się z danym bankiem. Jeżeli bank wdrożył standard Comarch Data Connect 2.0, Użytkownik może samodzielnie dodać format przelewu, za pomocą którego będzie możliwa wymiana. Na formularzu formatu przelewu na zakładce [Ogólne] trzeba zaznaczyć parametr Bezpośrednia wymiana danych za pomocą usługi sieciowej oraz wpisać adres usługi sieciowej.

Uwaga
W związku z koniecznością obsługi protokołu TLS 1.2 w wymianie danych za pomocą usługi sieciowej, od wersji programu 2017.1.1 na stanowisku wymagana jest instalacja .NET Framework w wersji conajmniej 4.5.

Eksport za pomocą usługi sieciowej

Możliwy jest eksport przelewów krajowych (w tym do Urzędu Skarbowego i ZUS) oraz przelewów walutowych. Przelewy walutowe wysyłane są jako przelewy zagraniczne. Od wersji programu 2015.5.1 wprowadzona została również możliwość wysyłania przelewów euroregulowanych (SEPA). Jako przelewy euroregulowane wysyłane są zdarzenia rozchodowe w walucie EUR, na których zaznaczony został parametr Przelew SEPA

Na formularzu banku w polach Format eksportu dla przelewów zwykłych oraz Format importu wyciągów bankowych można wskazać format obsługujący wymianę za pomocą usługi sieciowej (ING WebService (standardowy)). Format ten będzie podpowiadał się jako domyślny podczas eksportu i importu przelewów.

Rys.1 – Formularz banku, zakładka „Dodatkowe”

Po wybraniu takiego formatu na formularzu banku pojawia się zakładka [Ustawienia usługi sieciowej]. Na zakładce tej Użytkownik wprowadza ustawienia dotyczące przelewów walutowych oraz podpina certyfikat do komunikacji.

Został przygotowany już dla Państwa prosty kreator do generowanie certyfikatu komunikacyjnego, który umożliwi wymianę danych za pomocą usługi sieciowej. Kreator jest pod tym linkiem.

Rys. 2 – Formularz banku, zakładka Ustawienia usługi sieciowej

W przypadku przelewów walutowych istotne jest uzupełnienie pól: Opłatę ponosi, Osoba kontaktowa oraz Kontakt. W przypadku pola Opłatę ponosi jest możliwość wyboru trzech opcji: Zleceniodawca, Zleceniobiorca, Po równo. W przypadku niektórych rachunków opcja Zleceniobiorca może być zablokowana. Pokaże się wtedy odpowiedni komunikat przy próbie eksportu z wybraną tą opcją. W przypadku Osoba kontaktowa oraz Kontakt należy wprowadzić imię i nazwisko oraz np. numer telefonu przedstawiciela Klienta, z którym można się kontaktować. Jest to pole wymagane gdy wysyłane są przelewy walutowe.

Eksport przelewów za pomocą usługi sieciowej jest możliwy z poziomu preliminarza płatności dla wybranego konkretnego rejestru. Jeżeli wybrany rejestr ma na formularzu banku przypisany format obsługujący wymianę danych za pomocą usługi sieciowej, wtedy ikona Eksportuj polecenia przelewu ma rozwijalne menu z dwoma opcjami: Eksportuj przelewy  oraz Aktualizuj stany przelewów  .

Domyślnie kliknięcie w ikonę powoduje wywołanie okna Eksport przelewów do pliku.

Rys.3 – Okno eksportu przelewu poprzez usługę sieciową

W konfiguracji Stanowiska/ Kasa/Bank/ Parametry znajduje się parametr Zapisuj przelewy importowane/eksportowane poprzez usługę sieciową. Zaznaczenie tego parametru powoduje uaktywnienie pola na wpisanie ścieżki do katalogu, w którym będą zapisywały się pliki z przelewami importowane oraz eksportowane za pomocą usługi sieciowej. Domyślnie parametr jest odznaczony. W przypadku odznaczonego parametru pliki nie są zapisywane.

Po wybraniu opcji Eksportuj przelewy pokazuje się okno, na którym można ustawić wybrane opcje eksportu. Po ustawieniu parametrów, eksport uruchamiamy ikoną pioruna. Eksportowane są zarówno przelewy w PLN jak również w walucie obcej. Jest możliwy również eksport przelewów zbiorczych. Jest również możliwość podpisania przelewów za pomocą podpisu kwalifikowanego. Pojawia się okno z możliwością wyboru właściwego certyfikatu. Jeżeli okno z wyborem certyfikatu zostanie anulowane – przelewy zostaną wysłane i będą oczekiwały na akceptację po stronie banku.

W preliminarzu płatności jeżeli wybrany zostanie rejestr, który obsługuje wymianę danych poprzez usługę sieciową wśród kolumn na liście dostępne są kolumny: Data wysłania WebService, Komunikat WebService, Data komunikatu WebService.

W kolumnach tych zapisywane są informacje przy eksporcie do usługi sieciowej oraz każdorazowym sprawdzeniu stanu przelewów w banku.

Jest również możliwość sprawdzenia aktualnego statusu przelewów w banku. Opcja Aktualizuj stany przelewów sprawdza stan przelewów w banku oraz aktualizuje informacje na liście w preliminarzu płatności oraz na formularzu zdarzenia.

Import za pomocą usługi sieciowej

W systemie jest również dostępny import przelewów za pomocą usługi sieciowej. Jest możliwość importu wyciągów bankowych bądź historii operacji, jeżeli za dany okres nie jest jeszcze dostępny wyciąg bankowy.

Zalecamy aby okres raportów kasowych/bankowych w systemie Comarch ERP Optima był taki sam jak okres raportów w systemie bankowym.

Jeżeli okres raportu się nie pokrywa to przy imporcie pojawi się odpowiedni komunikat wraz z pytaniem czy wykonać import historii operacji.

Jeżeli wykonany został import historii operacji i następnie potem wykonywany jest ponowny import historii bądź import wyciągu wtedy importowane są tylko te przelewy, które nie zostały jeszcze zaimportowane. Duplikaty są odrzucane.

Duplikaty sprawdzane są wg następujących kryteriów:

  • Data księgowania,
  • Numer rachunku kontrahenta,
  • Kwota,
  • Opis przelewu.

Podczas importu sprawdzany jest stan początkowy raportu i porównywany ze stanem początkowym wyciągu bankowego. Jeżeli stany będą niezgodne w logu pokaże się odpowiednie ostrzeżenie. Po zakończeniu importu aktualizowany jest stan końcowy raportu i porównywany ze stanem końcowym w wyciągu. W przypadku braku zgodności również pokazywane jest odpowiednie ostrzeżenie.

Na liście raportów kasowych/bankowych dla rejestru, który obsługuje import przelewów poprzez usługę sieciową, wśród kolumn (ukrytych) na liście jest kolumna [Wyciąg z banku], w której zapisywana jest informacja, czy wyciąg bankowy został pobrany.

Eksport i import przelewów za pomocą usługi sieciowej – najczęściej zadawane pytania

  • Co należy ustawić w programie Comarch ERP Optima, aby móc skorzystać z Eksport i import przelewów za pomocą usługi sieciowej?

Odpowiedź: Na formularzu banku (Ogólne/Inne/Banki) w polach Format eksportu dla przelewów zwykłych oraz [Format importu wyciągów bankowych] (druga zakładka) należy wskazać format obsługujący wymianę za pomocą usługi sieciowej (ING WebService (standardowy)). Następnie na 3 zakładce [Ustawienia usługi sieciowej] Użytkownik wprowadza ustawienia dotyczące przelewów walutowych oraz podpina certyfikat do komunikacji otrzymany z banku.

  • Czy taki sposób wymiany danych z bankiem dostępny jest także dla innych banków?      

Odpowiedź: Prosimy o przekierowanie pytania o to czy i kiedy Państwa bank wdroży standard Comarch Data Connect 2.0 (umożliwiający bezpośrednią wymianę danych z Comarch ERP Optima) bezpośrednio do Banku. W Comarch ERP Optima standard ten jest gotowy do współpracy z każdym bankiem, który go wdroży.

  • Jakie warunki powinny spełniać certyfikaty wykorzystywane podczas wysyłki aby odbyła się ona prawidłowo?

Odpowiedź: Certyfikat komunikacyjny i autoryzacyjny powinny znajdować się w sekcji osobiste, mieć aktualną datę ważności oraz posiadać informację o obsługujących je kluczach prywatnych. Ponadto w przypadku certyfikatu autoryzacyjnego należy poprawnie zainstalować sterowniki urządzenia obsługującego certyfikat po stronie systemu operacyjnego.
Jeśli bank wymaga dodatkowych certyfikatów należy upewnić się czy znajdują się one we właściwych magazynach certyfikatów oraz czy posiadają aktualną datę ważności.

Pliki do pobrania