Definiowanie formatów przelewów jest dostępne w menu Ogólne /Inne /Formaty przelewów. Po wybraniu tej opcji pojawia się okno: Formaty wymiany elektronicznej pomiędzy bankami, w którym użytkownik może dodawać nowe bądź skopiować standardowe. Ponadto, z tego poziomu można wyeksportować zdefiniowany format do pliku .xml bądź też, wcześniej wyeksportowany z innej bazy danych – zaimportować. Zaimportować można również aktualne standardowe formaty przelewów z serwera firmy Comarch. Import powoduje nadpisanie formatu standardowego zaktualizowanym formatem z serwera.

Uwaga
Import formatów przelewów z serwera COMARCH jest dostępny wyłącznie dla Klientów z aktualną gwarancją.

Istnieje również możliwość zaimportowania standardowych formatów tekstowych z serwera firmy Comarch. Import powoduje nadpisanie formatu standardowego zaktualizowanym formatem z serwera.

Na wersjach starszych niż 2017.5.1 Comarch ERP Optima nie uda się ich zaimportować standardowych formatów Elixir-0 BPH, Elixir-0 iBRE, US – Bank Śląski oraz ZUS – Bank Śląski.

Pod listą dostępne są dwa parametry Standardowe oraz Użytkownika. Domyślnie zaznaczone są obydwa parametry, dlatego po wejściu na listę za pierwszym razem pojawią się wszystkie formaty. Listę można zawęzić poprzez wybór jednej z opcji. Parametr Standardowe, filtruje nieedytowalne formaty przelewów. Zaznaczając parametr Użytkownika – otrzymamy listę formatów zdefiniowanych przez użytkowników.

Lista formatów wymiany danych

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


Zakładka [Ogólne]

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

Dodawanie nowego formatu

Zakładka Ogólne zawiera następujące pola:

Nazwa polaCharakterystyka pola
Nazwa formatuNazwa formatu, która będzie widoczna na liście dostępnych formatów na formatce banku oraz na formatce eksportu / importu. Maksymalnie 50 znaków alfanumerycznych. Pole to jest wymagalne.
Rozszerzenie plikuMaksymalnie 3 znaki alfanumeryczne.
KodowanieLista rozwijana z następującymi formatami: Flat (bez polskich znaków), Latin 2, Mazovia, Windows (1250), ISO 8859-2 oraz UTF-8
Oddzielaj pola znakiemJeżeli parametr jest odznaczony oznacza to, że format nie posiada separatorów pól.
Separator pólPole aktywne po zaznaczeniu parametru: Oddzielaj pola znakiem, lista separatorów do wyboru: (przecinek, SPACJA, TAB i ENTER) oraz możliwość wpisania dowolnego separatora np. „|”.
Format datyLista formatów do wyboru: DD-MM-RR, DD-MM-RRRR, RR-MM-DD, RRRR-MM-DD, RRRRMMDD, DD / MM / RR, Clarion z możliwością wpisania własnego formatu np. MM / RR / DD.
Separator dziesiętnyLista z wyborem: puste (brak), kropka, przecinek. Bez innych możliwości.
Separator dziesiętny dla kwoty VATLista z wyborem: puste (brak), kropka, przecinek. Bez innych możliwości. Domyślnie proponuje się przecinek.
Separator grup dziesiętnychLista z wyborem: puste (brak), kropka, przecinek. Bez innych możliwości.
Sekwencja podziału pola na częściMaksymalnie 3 znaki alfanumeryczne.
Znak końca wierszaLista znaków do wyboru: ENTER, SPACJA i pusty (brak) oraz możliwość wpisania dowolnego znaku.
Ograniczniki tekstuMaksymalnie 3 znaki alfanumeryczne. Pola tekstowe w pliku będą otaczane tym znakiem, najczęściej jest nim cudzysłów.
Zmiana ograniczników w tekście naMaksymalnie 3 znaki alfanumeryczne, pole aktywne po wypełnieniu pola Ograniczenie 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.
Zmienna szerokość polaParametr, jeżeli zaznaczony – zmienna szerokość pól.
Zamiana małych liter na wielkieParametr, jeżeli zaznaczony – zamiana małych liter na wielkie.
Separator w opisie przelewów zbiorczychLista z wyborem: SPACJA, średnik, przecinek oraz możliwość wpisania dowolnego znaku. Domyślnie inicjuje się średnik.

  
Zakładki [Nagłówek], [Pozycje], [Stopka]

Kolejne zakładki służą do definiowania poszczególnych pozycji formatu. W tym celu użytkownik wykorzystuje predefiniowane parametry, których zestawienie i opis zawiera poniższa tabela. W oknie znajdują się ponadto następujące pola:  

 

  • Typ pola – pole to może przyjmować następujące wartości: Tekst, Liczba <#, Liczba <#.##, Liczba <#.####. Konsekwencją wybrania typu pola jako tekst będzie otaczanie go ogranicznikiem tekstu.
  • Wartość – możliwa wartość danego pola w zależności od wyboru Typu pola.
  • Szerokość – ilość znaków przewidziana na dane pole.
  • Opcje pola – określają, czy dane pole będzie nowym polem, czy ma zostać połączone z poprzednim na jeden z trzech sposobów.
  • Usuwaj znaki rozdzielające w numerze rachunku – zaznaczenie tego parametru powoduje, iż numer rachunku zapisywany jest jako ciąg cyfr bez znaków rozdzielających.
  • Wymagane – zaznaczenie tego pola powoduje, iż brak danej pozycji na przelewie będzie powodował błąd i w konsekwencji dany przelew nie zostanie wyeksportowany.

Okno dodawania kolejnych pozycji formatu

Nazwa polaDziałanie, zwracane dane
Adres banku podmiotu – kod i miastoPobierane z listy banków - bank przypisany do kontrahenta, urzędu, pracownika, banku.
Adres banku podmiotu - ulicaPobierane z listy banków - bank przypisany do kontrahenta, urzędu, pracownika, banku.
Adres banku własnego – kod i miastoPobierane z karty banku przypisanego do rejestru, z którego wysyłane są przelewy.
Adres banku własnego - ulicaPobierane z karty banku przypisanego do rejestru, z którego wysyłane są przelewy.
Adres podmiotu – kod i miastoPobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu
z karty banku.
Adres podmiotu – ulicaPobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu
z karty banku.
Adres własny – kod i miastoPobierane z Pieczątki firmy (Konfiguracja firmy / Dane firmy / Pieczątka firmy).
Adres własny – ulicaPobierane z Pieczątki firmy.
Akronim podmiotuPobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu
z karty banku.
Data operacjiData wybrana w oknie Eksport przelewów, otwieranym przyciskiem na liście płatności, domyślnie data realizacji.
Data dokumentuPrzy eksporcie: Data dokumentu ze zdarzenia.
Identyfikator operacjiW momencie eksportu przelewów, dla każdej płatności może zostać nadany unikalny Identyfikator operacji. Jeżeli taki sam Identyfikator pojawi się w pliku z wyciągiem bankowym, to w momencie importu wyciągu odpowiednie płatności zostaną automatycznie rozliczone. Identyfikator tworzony jest jako ciąg 13 znaków, wg kryterium YYMDDhmmssmmm. Unikalność identyfikatora zapewniona jest także w przypadku, gdy w formacie zadeklarowano 10 znakowy identyfikator operacji.
Ilość pozycjiIlość rekordów/przelewów w eksportowanym pliku.
Inne informacjeInformacje pobierane są za pomocą predefiniowanych skrótów
Kierunek przepływuPole wykorzystywane do importu – określa, czy dokument jest wpłatą czy wypłatą. Dla wartości: 1, 3, 5, 7, 9, 110, 111, 120, C, CR, M, Ma – KP, dla: -1, 0, 2, 4, 6, 8, 10, 210, 222, D, DB, W, Wn – KW. Przy eksporcie dla zdarzenia rozchodowego przyjmuje wartość -1.
Kod kraju podmiotuKodu kraju pobrany z formularzu banku, który występuje na danej płatności.
Kod SWIFT banku podmiotuKod SWIFT pobrany z karty banku podmiotu.
Kod SWIFT banku własnegoKod SWIFT pobrany z karty banku przypisanego do rejestru, z którego wysyłane są przelewy.
Kwota płatnościWyliczana, jako kwota płatności pozostająca do rozliczenia lub kwota wynikająca z ich grupowania po kontrahencie – przelew zbiorczy, w walucie dokumentu.
Kwota płatności w walucie systemowejW przypadku wybrania tego pola w formacie eksportu dla przelewów walutowych wyeksportowana zostanie wartość w walucie systemowej
Kwota przychoduPrzy eksporcie to tego pola nie trafia żadna wartość, ponieważ nie można eksportować zdarzeń przychodowych. Przy imporcie kwota ta traktowana jest jak KP.
Kwota rozchoduPrzy eksporcie kwota ta wyliczana jest na takich samych zasadach jak Kwota płatności, natomiast przy imporcie kwota ta traktowana jest jak KW.
Nazwa banku podmiotuPobierana z listy banków, bank przypisany do kontrahenta, pracownika, urzędu.
Nazwa banku własnegoPobierana z listy banków, bank przypisany do rejestru.
Nazwa podmiotu 1Pobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu.
Nazwa podmiotu 2Pobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu.
Przy długiej nazwie podmiotu, jeżeli nie cała pierwsza linia nazwy podmiotu została wyeksportowana do pliku (bo w pierwszej linii nazwy podmiotu jest więcej znaków niż wynosi szerokość pozycji Nazwa podmiotu 1), wówczas eksportowane jest tyle znaków ile zmieści się w danym polu, pozostała część z pierwszej linii nazwy jest zapisywana w kolejnym polu z Nazwą 2 podmiotu. Dopiero po niej do pliku zapisywana jest treść z drugiej linii nazwy podmiotu.
Nazwa podmiotu 3Pobierane:
z karty kontrahenta
z karty pracownika
z karty urzędu - puste.
Nazwa plikuRazem z rozszerzeniem np. 06010301.pli.
Nazwa własna 1Pierwsza linijka nazwy pobrana z Pieczątki firmy.
Nazwa własna 2Druga linijka nazwy pobrana z Pieczątki firmy.
Numer dokumentuNumer dokumentu pobrany ze zdarzenia.
Numer linii w zestawieKolejny numer przelewu w pliku.
Numer rachunku podmiotuDla 26 znakowego numeru w standardzie IBAN – ostatnie 16 znaków.
Numer rachunku własnegoDla 26 znakowego numeru w standardzie IBAN – ostatnie 16 znaków.
Numer rozliczeniowy banku podmiotuPobierany z numeru rachunku bankowego ze zdarzenia w Preliminarzu.
Numer rozliczeniowy banku własnegoPobierany z karty banku przypisanego do rejestru bankowego, z którego wysyłane są przelewy.
Opis do banku (pierwsza linijka)Pobierany z pierwszej linijki Opisu do banku na wysyłanym zdarzeniu.
Opis do banku (druga linijka)Pobierany z drugiej linijki Opisu do banku na wysyłanym zdarzeniu.
Opis do banku (trzecia linijka)Pobierany z trzeciej linijki Opisu do banku na wysyłanym zdarzeniu.
Opis do banku (czwarta linijka)Pobierany z czwartej linijki Opisu do banku na wysyłanym zdarzeniu.
Opis księgowyPobierany ze zdarzenia w Preliminarzu z pola Opis księgowy. Jeżeli w polu tym znajduje się znak , to przy eksporcie jest on zamieniany na znak .
Opis US - IdentyfikatorPobierany z pierwszej linijki opisu do banku na wysyłanym zdarzeniu np. dla NIP-u N9441112345.
Opis US - okresPobierany z pierwszej linijki opisu do banku na wysyłanym zdarzeniu np. rok 2005 miesiąc 01 05K01.
Opis US – symbol formularzaPobierany z drugiej linijki opisu do banku na wysyłanym zdarzeniu np. VAT7.
Pełny numer rachunku podmiotuPobierany ze zdarzenia w Preliminarzu z pola Numer rachunku.
Pełny numer rachunku własnegoPobierany z rejestru bankowego, z którego wysyłane są przelewy.
MPP - NIPPobierany ze zdarzenia w Preliminarzu z sekcji MPP z pola NIP.
MPP – Numer dokumentuPobierany ze zdarzenia w Preliminarzu z sekcji MPP, pole Numer dokumentu.
MPP - VATWartość pobierana ze zdarzenia w Preliminarzu, z sekcji MPP, pole Kwota podatku.
Stała wartośćDowolny ciąg znaków.
Suma kontrolna -rachunek podmiotuPobierana ze zdarzenia w Preliminarzu – pierwsze dwie cyfry pobrane z pełnego numeru rachunku podmiotu w standardzie IBAN.
Suma kontrolna -rachunek własnyPobierana z rejestru bankowego – pierwsze dwie cyfry pobrane z pełnego numeru rachunku własnego w standardzie IBAN.
Suma wartościSuma kwot z wszystkich linii, niezależnie od waluty.
Waluta płatnościSymbol waluty pobrany ze zdarzenia.
Zapytanie SQLW polu tym można używać bezpośrednich odwołań do pól zapisanych w bazie danych poprzez wykorzystanie składni SQL. 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}. Można również odwołać się do identyfikatora formatu poprzez {FormatID}. (Przykłady zapytań pod tabelą).

Uwaga
W przypadku predefiniowanych pól Pełny numer własny, Pełny numer podmiotu, Numer rachunku podmiotu i Numer rachunku własnego do pliku zapisywane jest N ostatnich znaków, przy czym N = szerokość pola.

Uwaga

Aby program prawidłowo wysyłał część dotyczącą numeru rachunku czyli 3333333333333333 dla rachunku w standardzie IBAN, numer rachunku musi być zapisany na jeden z trzech poniższych sposobów:

22-88888888-3333333333333333

22888888883333333333333333

22 8888 8888 3333 3333 3333 3333

Dla numeru klasycznego, jeżeli w numerze nie ma separatorów, program traktuje cały numer jako numer rachunku (numer rozliczeniowy zwróci pustą wartość). Jeżeli w numerze są separatory, to do pierwszego separatora jest numer rozliczeniowy, a następnie numer rachunku.

W polu Inne informacje można wpisywać predefiniowane wyrażenie pobierające różne informacje z bazy danych. Może być kilka takich pól w jednym formacie i mogą one przyjmować różne wartości. Informacje do tego pola pobierane są za pomocą predefiniowanych skrótów. Wpisanie w polu Wartość dla tego pola następujących symboli będzie oznaczało pobranie odpowiednich informacji (wszystkie dotyczą opisu przelewu do US):

  • US.TYP_ID – typ identyfikatora np. N dla NIP, P dla PESEL z pierwszej linijki opisu do banku na zdarzeniu (z członu /TI/N665556666 będzie to N),
  • US.IDENTYFIKATOR – identyfikator (np. NIP, REGON, PESEL pobrane z pierwszej linijki opisu do banku na zdarzeniu np. 6675556666),
  • US.DEKL_ROK – rok deklaracji (pobrany z członu /OKR/06M04 czyli 06),
  • US.DEKL_OKRES – okres deklaracji (pobrany z członu /OKR/06M04 czyli 04),
  • US.DEKL_TYP_OKRESU – typ okresu np. miesiąc, kwartał (pobrany z członu /OKR/06M04 czyli M),
  • US.SYMBOL_FORM – symbol formularza (pobrany z drugiej linii opisu do banku, z członu /SFP/VAT7 czyli VAT7),
  • US.NAZWA_PEŁNA – nazwa pełna z Konfiguracji firmy/ Dane firmy/ PIT4R, CIT-8 – z pola Nazwa pełna na deklaracjach PIT-4R, PIT-8A, CIT-8.

Uwaga
Wartości pól: Opis US – Identyfikator, Opis US – Okres, Opis US – Symbol formularza są odczytywane z pierwszej i drugiej linijki opisu na przelewie do US. Aby zostały odczytane prawidłowo, opis na przelewie nie może być zmodyfikowany przez użytkownika. Ponadto program przy eksporcie sprawdza, czy w formacie jest jedno z tych pól i jeżeli tak, to nie pozwoli wysłać zdarzenia, które nie pochodzi z deklaracji.

Przykłady wykorzystania pola Zapytanie SQL:

  • Pobranie miasta z adresu kontrahenta:

Select Pod_Miasto FROM CDN.PodmiotyView JOIN CDN.BnkZdarzenia ON  BZd_PodmiotID = Pod_PodId WHERE BZd_PodmiotTyp = Pod_PodmiotTyp AND Bzd_BzdId={ZdarzenieID}

  • Pobranie kodu pocztowego z adresu kontrahenta, jeżeli kod nie jest wypełniony, pole powinno zostać puste:

SELECT CASE WHEN Pod_KodPocztowy=’00-000′ THEN ”  ELSE Pod_KodPocztowy END FROM CDN.PodmiotyView JOIN CDN.BnkZdarzenia ON  BZd_PodmiotID = Pod_PodId where BZd_PodmiotTyp = Pod_PodmiotTyp AND Bzd_BzdId={ZdarzenieID}

  • 20 i 21 znak numeru rachunku np. symbole 51, 53, 53 pobrane z numeru rachunków bankowych ZUS:

SELECT SUBSTRING(BZd_RachunekNr,20,2) FROM CDN.BnkZdarzenia WHERE Bzd_BzdId={ZdarzenieID}

  • 20 i 21 znak numeru rachunku np. symbole 51, 53, 53 pobrane z numeru rachunków bankowych ZUS z tym, że przed wycięciem, z numeru rachunku są usuwane spacje i myślniki:

SELECT SUBSTRING(REPLACE(REPLACE(BZd_RachunekNr, ’ ’, ”), ’-’, ”),20,2) FROM CDN.BnkZdarzenia WHERE Bzd_BzdId={ZdarzenieID}.