JPK_VAT, plik csv i znikające 0

Użytkowanie arkusza kalkulacyjnego
Rostov
Posty: 87
Rejestracja: sob mar 09, 2013 9:05 pm

JPK_VAT, plik csv i znikające 0

Post autor: Rostov »

Pobrany ze strony finanse.mf.gov.pl plik JPK_VAT_002.csv edytuję w programie OpenOffice Calc 4.1.4. Mój problem polega na tym, że gdy w pole KodUrzedu próbuję wpisać kod właściwego dla mnie urzędu skarbowego (0220), po wpisaniu tej liczby i przejściu do następnego pola z numeru urzędu znika zero, na skutek czego otrzymuję liczbę trzycyfrową. Poradzono mi, abym zmienił formatowanie tej komórki na 'Tekst', ale po zapisaniu pliku, zamknięciu go i ponownym otworzeniu zera w kodzie urzędu nadal nie ma.

Ponadto przy próbie zapisu ww. pliku otrzymuję taki oto komunikat:

Obrazek

Wybieram zawsze 'Zachowaj bieżący format', bo z pliku ODF aplikacja podatkowa nie wygeneruje pliku JPK_VAT.

Jak sobie poradzić z ww. problemem?
Apache OpenOffice 4.1.4 (portable) | Windows 7 Home Premium (x64)
Awatar użytkownika
Jermor
Posty: 2479
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jermor »

Plik CSV.
Plik CSV jest plikiem tekstowym niezawierającym żadnych informacji o formatowaniu zawartości. Dane rozdzielane są jakimś określonym znakiem (dla JPK jest to Tabulator) albo mają określoną długość.
Dlatego, gdy do komórki ma trafić jakiś ciąg cyfr, jest on traktowany jak liczba przedstawiona bez zer prowadzących. Gdy jako kod urzędu wpiszesz '0220 (apostrof i kolejne cyfry) to ten ciąg w komórce zostanie potraktowany jako tekst. Po wykonaniu "Zapisz" w pliku CSV kod urzędu będzie miał postać 0220. Możesz ten plik poddać obróbce procedurom MF. Ponowne wczytanie pliku w programie Calc automatycznie usunie to wczytane zero prowadzące.
Możesz przygotować swój plik JPK tak, że sformatujesz komórkę kodu urzędu jako "Tekst" oraz podasz inne podstawowe stałe dane a następnie zapiszesz plik w formacie Calca, czyli jako .ods. Teraz po otwarciu tego pliku, możesz wypełnić niezbędne pola sprawozdawcze a następnie zrealizować "Zapisz jako..." wybierając typ pliku CSV. W takim przypadku należy w nowym okienku wskazać kodowanie (w JPK jest to UTF-8) oraz separator pola, którym jest Tabulator.
Jeśli chodzi o komunikat to jest to standardowa procedura generowana wtedy, gdy docelowym formatem pliku nie jest format macierzysty.
AOO 4.1.16 (tylko Win 10), LO 25.8 (x64) na: Win 11, 10, Linux (Mint)
Ważne!
Jeśli twój problem został rozwiązany, edytuj swój pierwszy post, dopisując w temacie [SOLVED].
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Rostov
Posty: 87
Rejestracja: sob mar 09, 2013 9:05 pm

Re: JPK_VAT, plik csv i znikające 0

Post autor: Rostov »

Jermor pisze:Dane rozdzielane są jakimś określonym znakiem (dla JPK jest to Tabulator) albo mają określoną długość.
Cytuję za 'Specyfikacja formatu CSV dokumentów JPK wersja 1.0' ( http://www.mf.gov.pl/documents/766655/6 ... ja+1.0.pdf ) :
2. Struktura pliku
2.1. Struktura dokumentu JPK w formacie CSV oparta jest na rozmieszczeniu poszczególnych sekcji
w oddzielnych liniach i uzupełnieniem linii pustymi polami dla pozostałych zarówno
poprzedzających jak i następujących sekcji.
2.2. Separatorem linii (wiersza/rekordu) jest znak końca linii. Ostatnia linia w pliku może nie
zawierać znaku końca linii.
2.3. Separatorem wartości pól w linii jest średnik (;).
2.4. Każda linia pliku powinna zawierać identyczną liczbę pól rozdzielonych średnikiem.
2.5. Separatorem liczb dziesiętnych jest kropka (.) natomiast ze względu na domyślne ustawienia
regionalne systemów operacyjnych wykorzystywane w oprogramowaniu do obsługi arkuszy
kalkulacyjnych dopuszczalne jest również stosowanie jako separator liczb dziesiętnych
przecinka (,).
2.6. Separator tysięcy jest niedozwolony.
2.7. Wartości pól tekstowych mogą być ujęte w znaki cudzysłowu (”). Wartości pól zawierające
znak separatora pól czyli zawierające średnik muszą być ujęte w cudzysłowy. Również treści
pól zawierające cudzysłów (”) muszą być ujęte w cudzysłowy, a występujące w treści
cudzysłowy należy zduplikować. Przykłady:

Treść oryginalna Zawartość pola w pliku CSV
tekst zawierający ; w polu tekstowym ”tekst zawierający ; w polu tekstowym”
tekst zawierający ” w polu tekstowym ”tekst zawierający ”” w polu tekstowym”
tekst zawierający ”cytat” innej treści ”tekst zawierający ””cytat”” innej treści”

2.8. Struktura rozmieszczenia danych dokumentu JPK_VAT w pliku CSV:
UWAGA: każda linia powinna zawierać puste pola (;;) dla poprzedzających oraz następujących
sekcji!
 linia pierwsza zawiera nazwy pól (nazwy kolumn w arkuszu kalkulacyjnym) i pokrywa się
z nazwami elementów oraz atrybutów zdefiniowanych w schemacie XSD np.
(KodFormularza, kodSystemowy, wersjaSchemy, WariantFormularza),
 linia druga identyfikuje rodzaj dokumentu JPK i jest równoważna z elementem
”Naglowek” pliku XML,
 linia trzecia zawiera dane identyfikacyjne podmiotu (w pliku XML element
”IdentyfikatorPodmiotu”),
 linia czwarta zawiera dane adresowe podmiotu (w pliku XML element ”AdresPodmiotu”),
 kolejne linie odpowiadają strukturze ”SprzedazWiersz” pliku XML,
 po sekwencji linii zawierających dane dotyczące sprzedaży następuje linia kontrolna
zawierająca liczbę wierszy sprzedaży oraz kwotę podatku należnego,
 kolejne linie odpowiadają strukturze ”ZakupWiersz” pliku XML,
 po sekwencji linii zawierających dane dotyczące zakupów następuje linia kontrolna
zawierająca liczbę wierszy zakupów oraz kwotę podatku naliczonego.
Jermor pisze:Możesz przygotować swój plik JPK tak, że sformatujesz komórkę kodu urzędu jako "Tekst" oraz podasz inne podstawowe stałe dane a następnie zapiszesz plik w formacie Calca, czyli jako .ods. Teraz po otwarciu tego pliku, możesz wypełnić niezbędne pola sprawozdawcze a następnie zrealizować "Zapisz jako..." wybierając typ pliku CSV. W takim przypadku należy w nowym okienku wskazać kodowanie (w JPK jest to UTF-8) oraz separator pola, którym jest Tabulator.
Kiedy robię w ten sposób, to po otwarciu tak sporządzonego pliku CSV otrzymuję kompletnie „nieforemną” jego zawartość. Natomiast użycie średnika (jak w instrukcji) powoduje znikanie zera.
Apache OpenOffice 4.1.4 (portable) | Windows 7 Home Premium (x64)
Awatar użytkownika
Jermor
Posty: 2479
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jermor »

Moja pomyłka wzięła się stąd, że kiedyś pobrałem plik ze stron MF ale tylko po to by go zobaczyć, nie jestem bowiem przedsiębiorcą. Potem zapisując ten plik pozostawiłem tabulator jako separator pola i przygotowując odpowiedź posiłkowałem się plikiem jaki już miałem. Pobrałem jeszcze raz plik z MF i rzeczywiście separatorami są średniki.
To co opisałem działa. Komórke kodu sformatowałem jako tekstową. Zapisałem plik jako .ods a następnie wstawiłem kod 0001 (takiego nie ma) i w pliku pojawia się 0001.
Rzecz w tym, o czym wspomniałem, że gdy wczytujesz plik CSV ponownie do Calca to te zera znikną. Podejrzyj plik CSV w jakimś edytorze znakowym (np w Notatniku Windows) i zobaczysz, że wpis jest poprawny.
AOO 4.1.16 (tylko Win 10), LO 25.8 (x64) na: Win 11, 10, Linux (Mint)
Ważne!
Jeśli twój problem został rozwiązany, edytuj swój pierwszy post, dopisując w temacie [SOLVED].
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jan_J »

A ja zauważyłem, o zgrozo, że jeśli ustalę niestandardowe separatory pól (np. przecinki , ) w eksporcie do csv, to ograniczniki tekstu (domyślnie cudzysłowy " ) są ignorowane...
LO 5.2.5 Portable W32
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Rostov
Posty: 87
Rejestracja: sob mar 09, 2013 9:05 pm

Re: JPK_VAT, plik csv i znikające 0

Post autor: Rostov »

A ja zauważyłem, że wcale nie trzeba zapisywać csv jako ods. Wystarczy faktycznie tylko sformatować komórkę jako Tekst i zapisać plik csv. Co prawda, po ponownym wczytaniu tego pliku do Calca 0 nie będzie widoczne, ale po wczytaniu np. do Notepad++ wartość KodUrzedu 0 zawiera. Da się jakoś sprawić, by Calc jednak to 0 wyświetlał w pliku csv?

No niestety, pliki z innymi separatorami są niezgodne ze specyfikacją JPK. :ucrazy:
Apache OpenOffice 4.1.4 (portable) | Windows 7 Home Premium (x64)
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jan_J »

Da się, ale tylko jeśli wczytamy zawartość do istniejących komórek o nadanym wcześniej formacie. Coś jakby import do skoroszytu, a nie jako skoroszyt. W Calcu możliwe, ale wymaga zarejestrowania pliku csv jako źródła danych.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Rostov
Posty: 87
Rejestracja: sob mar 09, 2013 9:05 pm

Re: JPK_VAT, plik csv i znikające 0

Post autor: Rostov »

@JanJ, jak to zrobić? I czy w rezultacie nie wyszedłby jednak plik niezgodny ze specyfikacją JPK?
Apache OpenOffice 4.1.4 (portable) | Windows 7 Home Premium (x64)
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jan_J »

No nie wiem.
Łączność ods<-->csv da się ustanowić do czytania poprzez Arkusz/Wstaw z pliku/[x] Łącze, do zapisu Plik/Zapisz jako. Ale wymaga skupienia uwagi przy każdym zapisie, nie przejmuje odpowiedzalności za zgodność oryginału i linku. Na dodatek wczytanie anuluje formaty komórek. W sumie nie polecam.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2479
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: JPK_VAT, plik csv i znikające 0

Post autor: Jermor »

Ja też to zauważyłem i napisałem już w pierwszej odpowiedzi, że wystarczy wstawić podczas wprowadzania tego kodu, bez formatowania komórki, zapis '0220, czyli cyfry poprzedzone apostrofem. Zapis w formacie odf ma za zadanie zapamiętanie formatu komórki z kodem. Kłopotliwe jest zapisywanie pliku jako CSV ze względu na konieczność podania kodowania i symbolu separatora. To jednak można zautomatyzować za pomocą makra.
Możesz użyć także programu Notepad++ (bo go masz) albo Notatnika (standardowo w Windows) i w nich zmieniać wartości, skoro wiadomo gdzie są wewnątrz pliku.
AOO 4.1.16 (tylko Win 10), LO 25.8 (x64) na: Win 11, 10, Linux (Mint)
Ważne!
Jeśli twój problem został rozwiązany, edytuj swój pierwszy post, dopisując w temacie [SOLVED].
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ