Apa yang bisa Anda dapatkan dari 54-FZ secara pribadi, Anda, nama pengguna, atau otomasi DIY dari akuntansi biaya

Mulai 1 Juli 2017, penggunaan mesin kasir (KKM), mengirimkan semua transaksi mereka langsung ke Layanan Pajak Federal, telah menjadi wajib di wilayah Federasi Rusia. Yang disebut box office online. Pengenalan inovasi ini telah dibahas di semua sisi, atau setidaknya di semua sisi yang serius. Apakah undang-undang federal dapat memiliki sisi yang tidak terlalu serius, dan ruang lingkup untuk kreativitas yang diberikannya kepada kita - ini berada di bawah batas


Semua KKM sekarang menginformasikan Layanan Pajak Federal tentang transaksi kami, dan Layanan Pajak Federal, yang ingin memastikan kejujuran setiap kasir online, telah merilis aplikasi seluler khusus ( Google Play , App Store ) yang memungkinkan pengguna untuk memeriksa setiap cek yang diberikan kepadanya dan memberi tahu otoritas yang kompeten jika memeriksa gagal


Ketika saya mendengar bahwa seseorang mulai mengumpulkan sejumlah besar informasi, saya pikir bukan tentang potensi keuntungan dari ini dan bukan tentang biaya implementasi. Dan bahkan si Kakak pun tidak melihatnya. Di kepala saya, tanda-tanda segera ditarik yang dapat disaring dan bergabung, kubus yang dapat diputar, diagram yang dapat dibangun, dll. Bisakah kita tetap berpegang pada aliran data kita sendiri dari penjual ke negara? Kita bisa. (Dalam bentuk busur kecil, aplikasi FTS juga memberikan kesempatan untuk mendapatkan versi elektronik dari cek ini sendiri.)

Ketika saya mengetahui tentang kesempatan ini, saya terbakar. Melihat lebih dekat pada kemampuan aplikasi tidak mengecewakan saya: cek dapat diperoleh tidak hanya dalam html atau png, tetapi juga di json.


Faktanya adalah saya mencoba melacak semua pengeluaran saya. Saya mencoba melakukannya secara teratur, tetapi, tentu saja, ternyata selama beberapa minggu saya lupa melakukannya. Dan memulai sesi hipnosis Ericksonian dengan pencelupan di masa lalu dan mengisi bintik-bintik putih.

Dari proses yang menyakitkan inilah Layanan Pajak Federal akan membantu kami menyingkirkannya.

Ternyata, secara teoretis, bahwa alih-alih menganalisis laporan bank dari beberapa bank dan setumpuk cek kertas pada akhir bulan (mencoba memahami di mana semua uang telah digabungkan lagi, Anda dapat menganalisis tumpukan surat dalam kotak json di lampiran. Prospek juga begitu-begitu, tetapi tidak seperti yang pertama, itu cocok untuk otomatisasi.

Jadi, melakukan pembelian, kami dapat menerima cek kami dalam format JSON melalui surat. Selain itu, secara teori, ketika membeli untuk ini, kita bahkan tidak memerlukan aplikasi dari Layanan Pajak Federal: kita dapat membuat kartu nama dengan kode qr surat kita dalam aplikasi dan memberikannya kepada kasir pada saat pembelian. Kemudian kita dapat meminta cek elektronik, bukan cek kertas, yang akan langsung jatuh ke surat. Seperti halnya belanja online.


Tetapi bahkan Layanan Pajak Federal langsung menulis tentang fungsi ini - "Jangan menyanjung diri sendiri." Tidak semua KKM mendukungnya. Dan bahkan di mana KKM mendukungnya, sama sekali bukan fakta bahwa itu didukung oleh kasir sendiri. Jadi untuk sekarang ini untuk yang kuat dalam roh.

Setelah menerima cek melalui pos, kami hanya perlu mengotomatiskan analisisnya dan menurunkannya di tempat penyimpanan yang nyaman bagi kami.

Anda harus memilih tempat untuk membongkar semua ini sehingga nyaman untuk bekerja dengannya lebih lanjut.

Saya tidak tahu bagaimana keadaan Anda, tetapi secara pribadi, menggunakan ini atau pegawai negeri itu, sebagai hasilnya, saya selalu mengekspor data dari mereka untuk dianalisis ke Excel lama yang baik. Terlepas dari grafik dan diagram mana yang dimasukkan pengembang dalam produk mereka sebelumnya, mereka tidak akan pernah dapat memprediksi semua yang ingin saya ekstrak dari data. Transaksi mana yang harus dipertimbangkan, mana yang harus diabaikan, bandingkan dengan fase bulan, grup, bagi dengan angka hari ini ... Excel dapat melakukan semua ini.

Selain itu, jika kita meletakkan Excel kita di OneDrive, maka itu akan dapat diakses dengan sempurna melalui web, termasuk dari OS seluler. Dan, tidak seperti GoogleDrive, formula akan bekerja dengan sempurna di sini, termasuk yang memungkinkan kami untuk mengatur daftar drop-down cascading untuk kategori dan subkategori dari setiap pembelian.


Yang kecil adalah berurusan dengan pengurai. Kami membutuhkan mekanisme yang menerima surat dengan lampiran dari kotak surat, mem-parsing lampiran json dan menulis hasilnya ke tablet Excel yang ada di OneDrive.

Di dunia yang ideal, saya melihat parser ini seperti langkah untuk IFTTT . Maka solusi kami akan hidup sepenuhnya di jaringan dan tidak memerlukan apa pun dari pengguna (karena kita berbicara tentang dunia yang ideal, maka "kartu nama" dari Layanan Pajak Federal bekerja dengan sempurna di dalamnya).

Namun, segera pahami bagaimana seseorang dari jalanan menulis langkahnya untuk IFTTT - dan juga memahami apakah ini mungkin. Saya telah gagal. Jika seseorang dapat menyarankan panduan penjelasan atau platform alternatif, saya akan sangat berterima kasih.

Karena solusi jaringan tidak berfungsi dengan baik, kami mengimplementasikan satu tautan pengurai di desktop. Di NORBIT, saya menerapkan Dynamics CRM, jadi tumpukan Microsoft adalah yang paling akrab bagi saya. Ya, dan kami sudah mulai menggunakannya dengan memilih Excel dan OneDrive. Kami menerapkan plugin untuk Outlook, tempat kami meletakkan semua logika yang kami butuhkan.

Di sini saya mengambil jalan perlawanan paling sedikit.

Untuk memulai, saya mengambil JSON yang diterima dari FTS dan memasukkannya ke json2csharp.com . Punya struktur kelas untuk deserialisasi:

public class Item {    public string name { get; set; }    public int nds18 { get; set; }    public int price { get; set; }    public double quantity { get; set; }    public int sum { get; set; }    public int? nds10 { get; set; } } public class Receipt {    public List<Item> items { get; set; }    public string retailPlaceAddress { get; set; }    public string userInn { get; set; }    public int requestNumber { get; set; }    public int nds18 { get; set; }    public string fiscalDriveNumber { get; set; }    public string user { get; set; }    public string @operator { get; set; }    public int fiscalDocumentNumber { get; set; }    public int taxationType { get; set; }    public int ecashTotalSum { get; set; }    public string kktRegId { get; set; }    public DateTime dateTime { get; set; }    public int operationType { get; set; }    public int cashTotalSum { get; set; }    public int receiptCode { get; set; }    public int nds10 { get; set; }    public int totalSum { get; set; }    public int shiftNumber { get; set; }    public int fiscalSign { get; set; } } 

Sekarang Anda perlu menerima surat, deserialize lampiran ke kelas yang diperoleh di atas dan mengubahnya menjadi XLSX.

Saya mengambil Newtonsoft.Json untuk deserialisasi, dan ClosedXML untuk menulis yang sangat baik. Selanjutnya, ternyata mungkin untuk tidak repot-repot menulis langsung ke XLSX, tetapi menulis dengan tenang di CSV - untuk beberapa alasan, ClosedXML lumpuh saat bekerja dengan file yang memiliki tabel pivot. Jadi statistik sejauh ini harus diambil dalam file-file yang terpisah, dan telusuri pembongkaran dari plug-in sebagai sumber data.

Plugin itu sendiri sangat sederhana. Agar dia tidak memproses semua surat masuk, saya telah membuka kotak surat terpisah khusus untuk cek dan memeriksa apakah surat itu sudah datang kepadanya. Selanjutnya, tentu saja, Anda harus meletakkan ini dalam pengaturan yang dapat dikonfigurasi, seperti semua alamat folder.

         void Items_ItemAdd(object Item)       {           Outlook.MailItem mail = (Outlook.MailItem)Item;           if (Item != null)           {               if (mail.Attachments.Count == 1 & mail.To.Equals("my@mail.address"))               {                                     Outlook.Attachment attach = mail.Attachments[1];                   string path = "C:\\_Data\\_tmp\\" + attach.FileName;                   attach.SaveAsFile(path);                   string text = System.IO.File.ReadAllText(path);                   System.IO.File.Delete(path);                   List<TableRow> objectList = GetBillsData(text);                   WriteBillsToXLSX(objectList);               }           }       }       private static void WriteBillsToXLSX(List<TableRow> objectList)       {           var workbook = new XLWorkbook(tablePath);           var ws = workbook.Worksheet("Products");           int startrow = ws.LastRowUsed().RowNumber();           if (ws.CellsUsed().Count() != 0)               startrow = ws.CellsUsed().Last().Address.RowNumber;            foreach (var item in objectList)           {               startrow++;               ws.Cell(startrow, 1).Value = item.dateTime;               ws.Cell(startrow, 2).Value = item.sum;               ws.Cell(startrow, 3).Value = item.quantity;               ws.Cell(startrow, "J").Value = item.user;               ws.Cell(startrow, "S").Value = item.name;           }           workbook.SaveAs(tablePath);       }       private static List<TableRow> GetBillsData(string bill)       {           Receipt doc = JsonConvert.DeserializeObject<Receipt>(bill);           List<TableRow> objectList = new List<TableRow>();           foreach (var item in doc.items)           {               objectList.Add(new TableRow(item, doc));           }           return objectList;       } 

Semua transformasi data dari JSON ke baris tabel telah dihapus ke konstruktor TableRow.

Sekarang, setelah melakukan pembelian, cukup bagi kami untuk memindai cek, dan semua jalurnya sendiri akan jatuh ke dalam file kami yang terletak di awan. Kita dapat melihat file ini di sana, tanpa meninggalkan meja kas. Tampilan tersedia bagi kami di OS apa pun yang mendukung pekerjaan browser modern.

Tetap hanya untuk meletakkan kategori dan subkategori untuk baris yang dimuat dan Anda dapat membangun analitik apa pun yang menyenangkan hati kita. Hanya beberapa baris kode lagi, dan plugin akan belajar cara menempatkan kategori / subkategori untuk baris, jika file sudah memiliki garis dengan deskripsi yang sama dan kategori yang diisi sebelumnya.


Berikut ini adalah siklus data semacam itu.

Source: https://habr.com/ru/post/id445182/


All Articles