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.
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.
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 ta zawiera parametry wspólne dla wszystkich pozycji definiowanego formatu.
Zakładka Ogólne zawiera następujące pola:
Nazwa pola | Charakterystyka pola |
---|---|
Nazwa formatu | Nazwa 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 pliku | Maksymalnie 3 znaki alfanumeryczne. |
Kodowanie | Lista rozwijana z następującymi formatami: Flat (bez polskich znaków), Latin 2, Mazovia, Windows (1250), ISO 8859-2 oraz UTF-8 |
Oddzielaj pola znakiem | Jeżeli parametr jest odznaczony oznacza to, że format nie posiada separatorów pól. |
Separator pól | Pole 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 daty | Lista 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ętny | Lista z wyborem: puste (brak), kropka, przecinek. Bez innych możliwości. |
Separator grup dziesiętnych | Lista z wyborem: puste (brak), kropka, przecinek. Bez innych możliwości. |
Sekwencja podziału pola na części | Maksymalnie 3 znaki alfanumeryczne. |
Znak końca wiersza | Lista znaków do wyboru: ENTER, SPACJA i pusty (brak) oraz możliwość wpisania dowolnego znaku. |
Ograniczniki tekstu | Maksymalnie 3 znaki alfanumeryczne. Pola tekstowe w pliku będą otaczane tym znakiem, najczęściej jest nim cudzysłów. |
Zmiana ograniczników w tekście na | Maksymalnie 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ść pola | Parametr, jeżeli zaznaczony – zmienna szerokość pól. |
Zamiana małych liter na wielkie | Parametr, jeżeli zaznaczony – zamiana małych liter na wielkie. |
Separator w opisie przelewów zbiorczych | Lista 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.
Nazwa pola | Działanie, zwracane dane |
---|---|
Adres banku podmiotu – kod i miasto | Pobierane z listy banków - bank przypisany do kontrahenta, urzędu, pracownika, banku. |
Adres banku podmiotu - ulica | Pobierane z listy banków - bank przypisany do kontrahenta, urzędu, pracownika, banku. |
Adres banku własnego – kod i miasto | Pobierane z karty banku przypisanego do rejestru, z którego wysyłane są przelewy. |
Adres banku własnego - ulica | Pobierane z karty banku przypisanego do rejestru, z którego wysyłane są przelewy. |
Adres podmiotu – kod i miasto | Pobierane: z karty kontrahenta z karty pracownika z karty urzędu z karty banku. |
Adres podmiotu – ulica | Pobierane: z karty kontrahenta z karty pracownika z karty urzędu z karty banku. |
Adres własny – kod i miasto | Pobierane z Pieczątki firmy (Konfiguracja firmy / Dane firmy / Pieczątka firmy). |
Adres własny – ulica | Pobierane z Pieczątki firmy. |
Akronim podmiotu | Pobierane: z karty kontrahenta z karty pracownika z karty urzędu z karty banku. |
Data operacji | Data wybrana w oknie Eksport przelewów, otwieranym przyciskiem na liście płatności, domyślnie data realizacji. |
Data dokumentu | Przy eksporcie: Data dokumentu ze zdarzenia. |
Identyfikator operacji | W 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. |
Ilość pozycji | Ilość rekordów/przelewów w eksportowanym pliku. |
Inne informacje | Informacje pobierane są za pomocą predefiniowanych skrótów |
Kierunek przepływu | Pole 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 SWIFT banku podmiotu | Kod SWIFT pobrany z karty banku podmiotu. |
Kod SWIFT banku własnego | Kod SWIFT pobrany z karty banku przypisanego do rejestru, z którego wysyłane są przelewy. |
Kwota płatności | Wyliczana, 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 systemowej | W przypadku wybrania tego pola w formacie eksportu dla przelewów walutowych wyeksportowana zostanie wartość w walucie systemowej |
Kwota przychodu | Przy eksporcie to tego pola nie trafia żadna wartość, ponieważ nie można eksportować zdarzeń przychodowych. Przy imporcie kwota ta traktowana jest jak KP. |
Kwota rozchodu | Przy 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 podmiotu | Pobierana z listy banków, bank przypisany do kontrahenta, pracownika, urzędu. |
Nazwa banku własnego | Pobierana z listy banków, bank przypisany do rejestru. |
Nazwa podmiotu 1 | Pobierane: z karty kontrahenta z karty pracownika z karty urzędu. |
Nazwa podmiotu 2 | Pobierane: 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 3 | Pobierane: z karty kontrahenta z karty pracownika z karty urzędu - puste. |
Nazwa pliku | Razem z rozszerzeniem np. 06010301.pli. |
Nazwa własna 1 | Pierwsza linijka nazwy pobrana z Pieczątki firmy. |
Nazwa własna 2 | Druga linijka nazwy pobrana z Pieczątki firmy. |
Numer dokumentu | Numer dokumentu pobrany ze zdarzenia. |
Numer linii w zestawie | Kolejny numer przelewu w pliku. |
Numer rachunku podmiotu | Dla 26 znakowego numeru w standardzie IBAN – ostatnie 16 znaków. |
Numer rachunku własnego | Dla 26 znakowego numeru w standardzie IBAN – ostatnie 16 znaków. |
Numer rozliczeniowy banku podmiotu | Pobierany z numeru rachunku bankowego ze zdarzenia w Preliminarzu. |
Numer rozliczeniowy banku własnego | Pobierany 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ęgowy | Pobierany ze zdarzenia w Preliminarzu z pola Opis księgowy. Jeżeli w polu tym znajduje się znak |
Opis US - Identyfikator | Pobierany z pierwszej linijki opisu do banku na wysyłanym zdarzeniu np. dla NIP-u N9441112345. |
Opis US - okres | Pobierany z pierwszej linijki opisu do banku na wysyłanym zdarzeniu np. rok 2005 miesiąc 01 05K01. |
Opis US – symbol formularza | Pobierany z drugiej linijki opisu do banku na wysyłanym zdarzeniu np. VAT7. |
Pełny numer rachunku podmiotu | Pobierany ze zdarzenia w Preliminarzu z pola Numer rachunku. |
Pełny numer rachunku własnego | Pobierany z rejestru bankowego, z którego wysyłane są przelewy. |
Split payment - NIP | Pobierany ze zdarzenia w Preliminarzu z sekcji Split payment, z pola NIP. |
Split payment – Numer dokumentu | Pobierany ze zdarzenia w Preliminarzu z sekcji Split payment, pole Numer dokumentu. |
Split payment - VAT | Wartość pobierana ze zdarzenia w Preliminarzu, z sekcji Split Payment, pole Kwota VAT. |
Stała wartość | Dowolny ciąg znaków. |
Suma kontrolna -rachunek podmiotu | Pobierana ze zdarzenia w Preliminarzu – pierwsze dwie cyfry pobrane z pełnego numeru rachunku podmiotu w standardzie IBAN. |
Suma kontrolna -rachunek własny | Pobierana z rejestru bankowego – pierwsze dwie cyfry pobrane z pełnego numeru rachunku własnego w standardzie IBAN. |
Suma wartości | Suma kwot z wszystkich linii, niezależnie od waluty. |
Waluta płatności | Symbol waluty pobrany ze zdarzenia. |
Zapytanie SQL | W 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ą). |
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):
- 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),
- IDENTYFIKATOR – identyfikator (np. NIP, REGON, PESEL pobrane z pierwszej linijki opisu do banku na zdarzeniu np. 6675556666),
- DEKL_ROK – rok deklaracji (pobrany z członu /OKR/06M04 czyli 06),
- DEKL_OKRES – okres deklaracji (pobrany z członu /OKR/06M04 czyli 04),
- DEKL_TYP_OKRESU – typ okresu np. miesiąc, kwartał (pobrany z członu /OKR/06M04 czyli M),
- SYMBOL_FORM – symbol formularza (pobrany z drugiej linii opisu do banku, z członu /SFP/VAT7 czyli VAT7),
- 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.
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}.