Register 1s untuk mengumpulkan putaran. Daftar akumulasi bergulir “Penjualan”

  • 16.11.2019

register akumulasi 1C ini adalah kumpulan data terstruktur yang berisi informasi tentang semua pergerakan (penerimaan/pengeluaran atau perputaran) dokumen yang dipilih.

Jenis register akumulasi

Di 1C hanya ada dua jenis register akumulasi:

  • Revolusi
    Jika Anda berencana hanya menerima putaran dari register, pastikan untuk menyetel jenisnya ke putaran.
    Misalnya, saat mendaftarkan penjualan, jumlah penjualan penting bagi kami dan saldo sama sekali tidak diperlukan di sini. Oleh karena itu, tipe register harus disetel ke “Revolutions”.
  • Sisa
    Jika Anda berencana menerima saldo dan omzet dari register, atur jenisnya menjadi saldo. Sebagai contoh, mari kita ambil register akumulasi “GoodsInWarehouses”; di dalamnya, informasi penting akan berupa saldo dan perputaran. Oleh karena itu, jenis register harus disetel ke “Saldo”.

Perhatian: tidak pilihan tepat jenis register akumulasi akan mengakibatkan rendahnya kinerja basis informasi.

Dimensi, Sumber Daya, Detail, dan Detail Standar

Setiap register akumulasi berisi dimensi, sumber daya, detail, dan detail standar.

Pengukuran diperlukan untuk menghasilkan data catatan kunci, yang di masa mendatang Anda dapat memperoleh saldo atau melihat perputaran pengukuran yang Anda minati.
Anda juga dapat mengatur properti pengukuran untuk memeriksa apakah pengukuran terisi (nilai kosong akan menyebabkan kesalahan)

Sumber daya diperlukan untuk menyimpan data ringkasan dalam register: kuantitas, jumlah, dll. Di masa depan, kami akan menerima sumber daya melalui pengukuran.

Persyaratan terutama diperlukan untuk menyimpan informasi terkait dan jarang digunakan.

Detail standar adalah sebagai berikut:

  • periode - tanggal perpindahan register dilakukan
  • registrar - dokumen yang digunakan untuk membuat entri dalam register
  • jenis pergerakan - pendapatan atau pengeluaran (pendatangan meningkatkan jumlah sumber daya, dan biaya berkurang)

Pendaftar

Pendaftar adalah dokumen yang dapat melakukan perpindahan dalam daftar akumulasi. Perpindahan ke register akumulasi 1C hanya dapat dilakukan dengan menggunakan dokumen (registrar). Sebagian besar algoritma untuk membuat pergerakan dalam register akumulasi dibentuk ketika dokumen diposting di modul objek, prosedur "Memproses Posting".


Dimensi pengindeksan

Pengindeksan diperlukan untuk meningkatkan kinerja basis informasi.
Properti "Indeks" harus ditentukan untuk dimensi yang Anda rencanakan untuk melakukan beberapa pilihan dan memiliki banyak elemen.

Misalnya: register akumulasi “Barang Banyak di Gudang”. Ada dimensi “Nomenklatur” dan “StatusParties”. Lebih bijaksana untuk mengatur atribut indeksasi untuk dimensi “Nomenklatur” daripada “Status Bagian”, karena jumlah opsi nomenklatur jauh lebih tinggi daripada status batch.

Keunikan catatan

1C Enterprise mengontrol keunikan entri dalam daftar akumulasi, dan oleh karena itu Anda tidak akan menemukan dua entri yang identik.

Kemampuan register akumulasi

  • pemilihan rekaman untuk jangka waktu tertentu menurut dimensi yang ditentukan
  • pemilihan catatan oleh registrar
  • memperoleh saldo dan omset untuk tanggal yang dipilih dengan pengukuran tertentu
  • menghitung total untuk tanggal tertentu

Contoh bekerja dengan register akumulasi

Contoh memperoleh saldo untuk tanggal sekarang

Prosedur GetBalanceOnDate()
Permintaan Baru = Permintaan Baru;
Kueri Baru.Teks =
"MEMILIH
| Komoditas Tersisa. Nomenklatur,
| Item Tersisa. Jumlah Tersisa
|DARI
| RegisterAccumulation.GoodsInWarehouses.Remains(&CurrentDate,) SEBAGAI ProductRemains";
NewQuery.SetParameter("Tanggal Saat Ini", Tanggal Saat Ini());

Siklus Akhir;
Akhir Prosedur

Contoh perolehan omset tahun berjalan

Permintaan Baru = Permintaan Baru;
Kueri Baru.Teks =
"MEMILIH
| Perputaran Komoditas.Nomenklatur,
| Perputaran Komoditas. Perputaran Kuantitas
|DARI
| Daftar Akumulasi.Barang Di Gudang.Perputaran(&Periode Awal, &Periode Akhir,) SEBAGAI Perputaran";

Query.SetParameter Baru("Periode Awal", Awal Tahun(Tanggal Saat Ini()));
NewQuery.SetParameter("ConPeriod", Tanggal Saat Ini());

SelectQuery = NewQuery.Execute().Select();

Sementara QuerySelect.Next() Loop
Siklus Akhir;

Contoh cara memilih pergerakan di register akumulasi

Permintaan Baru = Permintaan Baru;
Kueri Baru.Teks =
"MEMILIH
| ProdukDi Gudang.Periode,
| BarangDi Gudang.Registrar,
| Produk di Gudang Jenis Pergerakan,
| Produk di Gudang.
| ProdukDi Gudang.Jumlah
|DARI
| Daftar Akumulasi.Barang Di Gudang SEBAGAI Barang Di Gudang";

SelectQuery = NewQuery.Execute().Select();

Sementara QuerySelect.Next() Loop
Siklus Akhir;

Formulir daftar register akumulasi

Formulir digunakan untuk melihat secara visual semua pergerakan register yang dipilih. Di dalamnya Anda dapat melihat dokumen mana yang mencatat pengeluaran atau penerimaan, dan juga melihat pengukuran apa yang digunakan. Anda juga dapat mengurutkan gerakan atau membuat pilihan di sana.
Sistem akan secara otomatis menghasilkan formulir daftar atau Anda dapat menyesuaikannya sendiri.

Semua perubahan yang dilakukan pada database disimpan dalam tabel terkait. Untuk 1C, ini adalah tabel dokumen, jurnal dokumen, direktori dan register. Jenis register 1C, fitur dan seluk-beluk penggunaannya akan dibahas di artikel kami.

Pembentukan entri dalam register

Salah satu pertanyaan pertama tentang register adalah: untuk apa?

Mengapa Anda perlu membuat tabel terpisah, sering kali menduplikasi catatan yang sudah ada?

Jawabannya di sini cukup sederhana. Tentu saja, dimungkinkan untuk mengisolasi kueri yang kompleks dan memakan waktu ke tabel dokumen sumber dengan mencantumkan kondisi pemilihan, memeriksa tanda penghapusan dan penyelesaiannya, namun jauh lebih sederhana dan tidak memakan banyak tenaga untuk membuat potongan tertentu dari suatu kumpulan. catatan secara langsung saat menyimpan dokumen dan menyimpannya dalam tabel terpisah, mengaksesnya sesuai kebutuhan.

Jadi, kami menemukan bahwa salah satu cara untuk membuat entri register adalah dengan menulis menggunakan registrar (dokumen). Opsi ini ada di semua jenis register.

Proses pembuatan catatan register berdasarkan suatu dokumen biasa disebut posting dokumen. Dokumen dokumen yang belum diposkan tidak memiliki pergerakan dalam register; itu sebenarnya adalah draft atau blanko.

Opsi kedua untuk menghasilkan catatan adalah secara langsung, tanpa membuat dokumen pendaftaran. Anda dapat membuat catatan dengan cara ini hanya di register informasi; di properti register, atribut "Mode rekam" harus memiliki nilai yang sesuai (Gbr. 1).

Umum untuk semua register

Struktur internal register apa pun dapat ditunjukkan pada Gambar.2

Gambar.2

Mari kita lihat lebih detail:

  • Dimensi – mencatat properti yang menentukan di bagian mana informasi penting disimpan;
  • Sumber daya – berisi informasi yang perlu disistematisasikan;
  • Detail – mencatat bidang yang berisi informasi tambahan;
  • Formulir – properti yang berisi informasi grafis tentang tampilan daftar, elemen, dll. dan modul internalnya;
  • Tata letak – bentuk register yang dicetak.

Register informasi

Karena kita telah membicarakan tentang register informasi di atas, mari kita bahas tentangnya.

Ini mungkin jenis register yang paling sederhana dan mudah dipahami. Tabel biasa berisi kolom dan kolom tempat informasi disimpan.

Daftar properti penting dari register informasi kecil (Gbr. 3), mari kita bicara tentang yang utama:

Gambar.3

  1. Periodisitas, menunjukkan sejauh mana keunikan suatu rekaman dikendalikan (dalam satu menit, jam, hari, tahun, sesuai dengan nilai yang dipilih, tidak mungkin ada dua rekaman dengan ukuran yang sama), dapat juga mengambil nilai “ Berdasarkan perekam”, tetapi untuk ini Anda harus memilih mode perekaman yang sesuai;
  2. Mode perekaman sebenarnya merupakan pilihan dari dua nilai: “Independen” dan “Penyerahan ke perekam”.
    1. Penting untuk dipahami bahwa memilih mode independen tidak berarti bahwa suatu catatan tidak dapat dihasilkan oleh suatu dokumen; hanya pemilihan oleh registrar dan pengendalian keunikan suatu catatan oleh dokumen tersebut yang tidak mungkin dilakukan;
  3. Izinkan total untuk bagian pertama dan Izinkan total untuk bagian terakhir: (kami akan menggabungkan dua poin menjadi satu) – ketika kotak centang yang sesuai dicentang, permintaan ke register informasi dapat dibuat menggunakan tabel tambahan (Sepotong dari yang pertama dan Potongan yang terakhir), yang berisi kumpulan data yang sesuai, sebagai salah satu Parameter tabel ini adalah tanggal di mana perlu untuk membuat pilihan data.

Register akumulasi

Kita melihat struktur salah satunya pada Gambar 2. Properti utama yang sangat mempengaruhi penampilan mendaftar, serta di atasnya struktur internal adalah “Jenis registrasi” (Gbr. 4)

Bergantung pada persyaratan untuk informasi yang disimpan, ini dapat mengambil nilai berikut:

  • Sisa;
  • Revolusi.

Dalam kasus pertama, database akan berisi informasi tidak hanya tentang pergerakan sumber daya dalam hal dimensi, tetapi juga tentang jenis operasi (penerimaan atau pengeluaran). Selain itu, saat membuat kueri, tabel tambahan yang berisi total akan tersedia.

Salah satu masalah utama yang dihadapi pengembang pemula saat menggunakan tabel Saldo dan Saldo dan Perputaran dalam kueri adalah ketika kueri menerima saldo untuk tanggal tertentu, data dalam tabel ini mungkin berbeda. Dan ada satu nuansa di sini: ketika menentukan nilai tertentu sebagai tanggal akhir suatu periode, platform mengambil data dari tabel Tersisa tanpa menyertakan nilai ini dalam periode pemilihan.

Jika Anda memerlukan data yang mencakup akhir periode, Anda dapat:

  • Gunakan tabel Saldo dan Perputaran;
  • Buat sampel untuk tanggal 1 detik lebih besar dari tanggal yang ditentukan (yaitu bukan 31/12/16 23:59:59, tetapi 01/01/17 00:00:00);
  • Gunakan metode Batas, yang membantu mengonfigurasi opsi untuk menyertakan suatu titik waktu dalam periode yang dipertimbangkan (kasus penggunaan: Batas(Tanggal Akhir,Termasuk).

Register akuntansi

Register yang cukup terspesialisasi, dalam desainnya, menyerupai register akumulasi. Perbedaan utama dari jenis register platform 1C lainnya adalah adanya parameter "Bagan Akun" dalam struktur properti (Gbr. 5).

Gambar.5

Bagan akun adalah objek metadata terpisah yang memerlukan pembahasan terpisah. Tergantung pada bagan akun, konfigurasi standar 1C modern berisi 4 register akuntansi utama:

  1. Penganggaran;
  2. Internasional;
  3. Pajak;
  4. Swadaya.

Parameter kedua, karakteristik register akuntansi- "Korespondensi".

Mencentang kotak ini memungkinkan Anda membuat entri ganda yang berisi akun kredit AccountKt dan akun debit AccountDt dan analitik (subkonto) yang terkait dengan akun ini. Jika kotak centang tidak dicentang, hanya satu akun yang akan dimasukkan dalam entri register.

Register perhitungan

Ini mungkin register yang paling sulit untuk dipahami. Sedangkan pada hakikatnya sangat mirip dengan register akumulasi tipe “Perputaran”.

Perbedaan utama antara register perhitungan dan register lainnya adalah adanya parameter "Rencana jenis perhitungan" di propertinya. Selain itu, register perhitungan dan register informasi bersifat periodik.

Setiap register perhitungan dapat mencakup kemampuan untuk menghubungkan catatan dengan jadwal waktu yang ditentukan dalam register informasi terkait. Ini memungkinkan Anda memperoleh data waktu kerja menggunakan kode.

Selain dimensi, sumber daya, dan formulir yang tersedia di jenis register lain, register perhitungan dapat diberi objek "Penghitungan Ulang", yang akan menyimpan informasi tentang catatan yang tidak relevan dan memerlukan revisi.

Kegunaan utama mereka dalam konfigurasi standar 1C adalah pendaftaran dan fasilitasi pekerjaan dengan akrual untuk karyawan organisasi.

Pada artikel ini saya ingin melihat mekanisme 1C:Enterprise 8 seperti register akumulasi. Mekanisme ini memungkinkan kami mengumpulkan indikator numerik tentang aktivitas perusahaan, dan memproses indikator-indikator ini, menghitung hasilnya, dan memungkinkan kami memperoleh saldo dan perputaran untuk indikator-indikator ini. Sebagai contoh, saya akan memberikan daftar akumulasi GoodsInWarehouses dari konfigurasi “Manajemen Perdagangan”.

Register ini digunakan untuk menyimpan sisa barang di gudang perusahaan dalam rangka jenis produk, karakteristik produk, seri dan kualitas produk. Itu. sewaktu-waktu kita bisa melihat berapa banyak di gudang tertentu, misalnya “Gudang Pusat” kita menyimpan barang “Sepatu Bot Pria”, dengan ciri “ukuran 43”, seri tanggal “20/08/2011” dan kualitas “baru” .


Dan agar hal ini memungkinkan, data harus ditulis ke dalam register. Platform 1C:Enterprise dirancang sedemikian rupa sehingga Anda hanya dapat mencatat data dalam register dengan mengacu pada dokumen. Itu. jika ada perubahan dalam register (kedatangan barang, atau penjualannya), dokumen yang melakukan hal ini harus dicantumkan. Biasanya, data dicatat dalam register ketika sebuah dokumen diposting. Dalam modul dokumen, terdapat prosedur Pemrosesan Pemrosesan yang telah ditentukan sebelumnya, di mana pengembang menjelaskan algoritme yang digunakan untuk membentuk catatan dalam register akumulasi.

Mari kita lihat proses pembuatan register dari awal. Seperti yang Anda ingat, kami membuat konfigurasi di mana kami sudah memiliki direktori dan dokumen. Sekarang kita akan menambahkan register akumulasi ke dalamnya. Kita tambahkan register akumulasi, nama “ProductsInWarehouses”, tipe register “Remaining”. Kita akan melihat jenis register “Perputaran” nanti. Pada tab data, tambahkan dimensi “Nomenklatur” dari tipe “Direktori.Nomenklatur” dan tambahkan sumber daya “Kuantitas” dari tipe angka (15,3).


Sekarang, kita perlu memastikan bahwa entri register dihasilkan saat memposting dokumen. Namun di antara dokumen-dokumen tersebut kami hanya memiliki “Pesanan Penerimaan Tunai” dan “Faktur Biaya”. Kami tidak memiliki dokumen yang dapat memasukkan pergerakan masuk ke dalam register kami. Mari kita ciptakan. Kami membuat dokumen, nama "Posisi barang", tambahkan data pada tab bagian tabel“Produk”, berisi rincian “Tata Nama” dan “Kuantitas”.


Agar dokumen kita dapat melakukan pergerakan sesuai dengan register akumulasi “ProductsInWarehouses” pada tab Movements, tandai (register) dengan tanda centang dan klik tombol “Movement Constructor”. Konstruktor ini membantu kita menulis algoritma untuk menghasilkan entri register, yang terletak di prosedur “Memproses Posting” yang telah disebutkan.

Di perancang, biarkan jenis pergerakan register sebagai "Tanda Terima", di bidang bagian Tabular pilih "Produk", klik tombol "Isi ekspresi" dan kemudian tombol OK.


Modul dokumen akan terbuka di mana prosedur Pasca Pemrosesan telah dibuat.
Prosedur Pemrosesan (Kegagalan, Mode)
//((__MOTION_REGISTER_CONSTRUCTOR
// Fragmen ini dibuat oleh konstruktor.
// Saat menggunakan kembali konstruktor, perubahan yang dilakukan secara manual akan hilang!!!

// daftarkan Kedatangan GoodsInWarehouses
Pergerakan.ProductsInWarehouses.Write = Benar;
Pergerakan.ProductsInWarehouses.Clear();
Untuk Setiap TechStringProduk Dari Siklus Produk
Pergerakan = Pergerakan.ProductsInWarehouses.Add();
Movement.MovementType = AccumulationMovementType.Masuk;
Pergerakan.Periode = Tanggal;


Siklus Akhir;

//))__CONSTRUCTOR_MOVEMENT_REGISTERS
Akhir Prosedur

Sekarang mari luncurkan mode Perusahaan dan buat beberapa dokumen. Dokumen sekarang memiliki submenu “Go” di panel atas, di mana Anda dapat melihat pergerakan register yang dibuat oleh dokumen.


Untuk melihat produk apa saja yang ada di gudang kami, kami akan membuat laporan yang menunjukkan saldo di register “ProductsInWarehouses”.
Masuk ke mode Configurator dan buat laporan. Tetapkan nama menjadi “Produk Tersisa”. Pada tab form yang kita buat seragam baru laporan, dan tetapkan sebagai yang utama. Kami menambahkan Bidang Dokumen Tabular ke formulir, ini dapat dilakukan melalui menu "Kontrol Sisipkan Formulir" dan pilih jenis elemen - bidang dokumen spreadsheet, beri nama TabDoc dan letakkan di seluruh formulir.


Lalu kita pergi ke pengendali tombol "Hasilkan", hapus komentar yang terletak di sana, tempatkan kursor di teks prosedur pengendali peristiwa, klik kanan dan pilih "Konstruktor kueri dengan pemrosesan hasil". Ini akan memungkinkan kita membuat kueri dan segera menampilkan hasilnya di laporan.
Pada tab Pemrosesan Hasil, pilih “Output ke dokumen spreadsheet” dan buka tab “Tabel dan Bidang”. Kita melihat tabel ProductsInWarehouses disajikan dalam bentuk empat tabel.

Tabel pertama adalah daftar record yang kita bentuk dalam pemrosesan dokumen, sisanya adalah tabel virtual yang dibuat sendiri oleh platform. Tabel-tabel ini memungkinkan kita memperoleh data register yang telah diproses - omzet untuk periode tersebut, saldo pada tanggal, atau saldo dan omzet dalam satu tabel. Kita ingin menampilkan saldo, jadi kita pilih tabel Sisa. Dari tabel ini, pilih semua bidang Tata Nama dan Jumlah Tersisa. Klik Oke.
Perancang telah menghasilkan algoritma yang akan memberi kita laporan saldo; kita hanya perlu menunjukkan di mana akan menampilkan laporan tersebut.
Mari tambahkan baris:
“TabDoc = FormElements.TabDoc;” sebelum teks dihasilkan oleh konstruktor.
TabDoc = FormElements.TabDoc;
//((QUERY_CONSTRUCTOR_WITH_RESULT_PROCESSING
// Fragmen ini dibuat oleh konstruktor.
// Saat menggunakan kembali konstruktor, perubahan yang dilakukan secara manual akan hilang!!!

Tata Letak = Laporan.SisaProduk.GetLayout("Tata Letak");
Permintaan = Permintaan Baru;
Permintaan.Teks =
"MEMILIH
| Produk di Gudang Tetap Ada.
| PRESENTASI(ProdukDiGudangSisa.Nomenklatur),
| ProdukDi GudangTersisa.JumlahTersisa
|DARI
| DaftarAkumulasi.BarangDiGudang.Sisa SEBAGAI BarangDiGudangSisa";

Hasil = Kueri.Jalankan();

HeaderArea = Tata Letak.GetArea("Header");
AreaFooter = Tata Letak.GetArea("Footer");
TableHeadArea = Tata Letak.GetArea("TableHeader");
TableFooterArea = Layout.GetArea("TableFooter");
DetailRecordsArea = Layout.GetArea("Detail");

TabDoc.Hapus();
TabDoc.Output(AreaHeader);
TabDoc.Output(TableHeadArea);
TabDoc.StartAutoGroupingRows();

SelectDetailRecords = Hasil.Pilih();
Sementara SelectDetailRecords.Next() Loop
AreaDetailRecords.Parameters.Fill(SelectionDetailRecords);
TabDoc.Output(DetailedRecordsArea, Pilihan DetailedRecords.Level());
Siklus Akhir;
TabDoc.FinishAutoGroupingRows();
TabDoc.Output(TableFooterArea);
TabDoc.Output(AreaFooter);

//))CONSTRUCTOR_QUERY_WITH_RESULT_PROCESSING
Mari luncurkan mode 1C:Enterprise dan lihat cara kerja laporannya.


Seperti yang bisa kita lihat, sang desainer telah menciptakan sesuatu yang kurang lebih dapat diterima oleh kita.
Kami juga memiliki “Penjualan barang”, yang seharusnya mengurangi saldo kami. Mari kita buat agar juga membentuk gerakan sesuai register.
Buka dokumen, pada tab Gerakan, centang kotak di sebelah register kami, dan klik tombol “Perancang Gerakan”.

Daftarkan jenis pergerakan, tetapkan biaya, pilih bagian tabel “Produk”, klik “Isi ekspresi” dan “OK”. Perancang telah menghasilkan algoritma untuk pemrosesan dokumen, mari kita periksa. Untuk melakukan ini, mari kita restart mode 1C:Enterprise dan masukkan kembali dokumen “Penjualan Produk” yang dibuat.
Kemudian kita akan membuat laporan saldo lagi.


Seperti yang Anda lihat, saldo mengalami penurunan, bahkan menjadi negatif untuk beberapa posisi. Hal ini terjadi karena kita tidak mengontrol ketersediaan saldo saat menjual barang.
Register “GoodsInWarehouses” kami adalah contoh umum dari register saldo; yang memiliki pergerakan masuk dan keluar. Namun sistem 1C masih memiliki register revolusi.
Sebagai contoh, saya akan memberikan register “Penjualan”. Setiap kali kami menjual produk ke klien, kami mencatat siapa yang membeli apa dan berapa banyak dari kami. Lalu di laporannya kita bisa melihat berapa banyak produk yang dibeli si fulan dari kita. Pergerakan masuk atau keluar secara terpisah tidak akan dicatat dalam register ini. Gerakannya akan setara. Dalam kasus ini, register revolusi digunakan.

Mari buat register seperti itu di konfigurasi kita. Mari tambahkan register akumulasi baru, beri nama “Penjualan”, jenis register “Perputaran”, pada tab data kita akan menambahkan dimensi “Klien” dan “Nomenklatur”, sumber daya “Kuantitas” dan “Jumlah”.


Mari kita kembali ke dokumen “Penjualan Produk”, pada tab pergerakan, centang kotak di sebelah register “Penjualan”, dan klik tombol “Perancang Gerakan”. Klik tombol (+) (tambah) dan pilih register “Penjualan”, lalu seperti biasa, pilih bagian tabel dan klik “Isi ekspresi”. "OKE".
// Daftar penjualan
Pergerakan.Penjualan.Catatan = Benar;
Pergerakan.Penjualan.Clear();
Untuk Setiap TechStringProduk Dari Siklus Produk
Pergerakan = Pergerakan.Penjualan.Tambah();
Pergerakan.Periode = Tanggal;
Gerakan.Klien = Klien;
Pergerakan.Nomenklatur = TechStringProducts.Nomenklatur;
Pergerakan.Kuantitas = TechStringProducts.Kuantitas;
Pergerakan.Jumlah = TechStringProducts.Jumlah;
Siklus Akhir;

Kami meluncurkan 1C ke mode Perusahaan, mentransfer dokumen "Penjualan Produk", memeriksa apakah pergerakan telah terbentuk. Anda dapat membuat laporan sendiri; ini semua dilakukan dengan prinsip yang sama seperti laporan sebelumnya; Anda harus memilih tabel “Penjualan.Perputaran”.

Sekarang mari kita tambahkan antarmuka ke konfigurasi kita sehingga kita tidak perlu membuka dokumen melalui menu “Operasi”. Buka cabang “Umum” di konfigurator, cari Antarmuka di dalamnya dan tambahkan yang baru. Perancang antarmuka akan terbuka, di dalamnya klik tombol "Bangun". Semua. Antarmuka yang disederhanakan sudah siap. Agar dapat dibuka secara default, Anda perlu mengatur antarmuka yang kami buat sebagai antarmuka utama di properti konfigurasi (klik kanan pada elemen paling atas dari pohon konfigurasi - Properti).
Dapatkan tampilan ini:

Itu saja yang ingin saya sampaikan kepada Anda hari ini tentang register akumulasi. Jika Anda memiliki pertanyaan, tulislah, saya akan dengan senang hati membantu.

Ditulis oleh: Roman Zabolotin
Email: eval(unescape("%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72% 65%66%3d%22%6d%61%69%6c%74%6f%3a%72%7a%61%62%6f%6c%6f%74%69%6e%40%67%6d%61% 69%6c%2e%63%6f%6d%22%3e%72%7a%61%62%6f%6c%6f%74%69%6e%40%67%6d%61%69%6c%2e% 63%6f%6d%3c%2f%61%3e%27%29%3b"))

Tugas sistem akuntansi apa pun adalah menyimpan dan segera menampilkan informasi kepada pengguna, mis. Tujuan dari setiap desain sistem adalah untuk segera memberikan laporan kepada pengguna. Dengan bantuan data yang diperoleh, sebagai suatu peraturan, keputusan manajemen dibuat di perusahaan.

Misalkan kita memiliki 1000 dokumen berbeda: penerimaan barang, penghapusan, pengembalian, penjualan, dll. Dan setiap dokumen mengubah jumlah produk tertentu di gudang. Untuk mendapatkan informasi tentang jumlah barang yang ada di gudang saat ini, Anda perlu melalui semuanya: ada yang menambah jumlah barang, ada yang berkurang, ada yang bisa bertambah atau berkurang. Dan jika perlu juga memperhitungkan gudang, organisasi?.. Sistem seperti itu sangat intensif sumber daya.

Untuk menyederhanakan proses ini, pengembang 1C datang dengan benda khusus konfigurasi. Mereka digunakan untuk kenyamanan menyimpan dan mengambil informasi; di 1C 8.3 dan 8.2 semua jenis register digunakan, dalam artikel ini kita akan bicara tepatnya tentang Register akumulasi.

Register akumulasi sendiri merupakan sebuah tabel berisi informasi yang mengumpulkan seluruh pergerakan (penerimaan/penghapusan atau perputaran) dokumen tertentu. Mari kita lihat seperti apa tabel pergerakan menggunakan contoh register akumulasi khas “Barang di gudang” dalam konfigurasi “Manajemen Perdagangan 10.3”:

Di sini kita melihat bahwa dokumen “Penjualan” 1C mengurangi jumlah produk tertentu di lokasi penyimpanan tertentu, dan dokumen penerimaan, sebaliknya, menambah kuantitas. Hasilnya, kita memperoleh gambaran keseluruhan dimana kita dapat melihat dengan jelas apa, kapan dan berapa jumlah yang diterima (dihapuskan) menurut akuntansi. Jauh lebih mudah untuk membuat laporan menggunakan tabel seperti itu.

Daftar akumulasi di konfigurator

Apa yang dimaksud dengan register akumulasi dari sudut pandang pengembangan konfigurasi? Mari kita mulai dengan melihat bidang register akumulasi di:

Dapatkan 267 pelajaran video di 1C gratis:

Register akumulasi memiliki Dimensi, Sumber Daya, Detail, dan detail Standar.

Pertama-tama mari kita pertimbangkan detail standar dari register akumulasi:

  • periode— tanggal perpindahan tidak harus bertepatan dengan tanggal dokumen;
  • pendaftar- dokumen yang membuat entri dalam register;
  • nomor baris— nomor seri baris dalam kumpulan catatan, unik dalam registrar;
  • aktivitas— bertanggung jawab untuk memasukkan catatan ke dalam tabel virtual (lebih lanjut tentangnya di bawah);
  • melihatpergerakan- pendapatan atau pengeluaran.

Pengukuran register akumulasi

Dimensi adalah bagian di mana catatan disimpan. Dalam contoh di atas, bagian akuntansi adalah: gudang, nomenklatur, karakteristik produk, seri produk, kualitas. Artinya, dengan menentukan pengukuran yang kita minati, kita dapat memperoleh kuantitas—sumber daya—setiap saat. Dalam konteks dimensi yang berbeda, di masa depan, misalnya, Anda bisa memperoleh saldo untuk tanggal tertentu.

Sumber daya register akumulasi

Sumber daya adalah bidang numerik tempat informasi disimpan dalam konteks dimensi yang dijelaskan di atas.

Jika tidak, interaksi dimensi/sumber daya dapat digambarkan secara skematis sebagai sistem koordinat:

Dua dimensi - absis dan ordinat dari sistem koordinat, mis. pada dalam contoh ini pengukurannya adalah gudang dan nomenklatur. Di perpotongan dimensi kita bisa mendapatkan kuantitas – sumber daya. Misal di gudang “utama” produk “pensil” stoknya ada 1 buah.

Rincian register akumulasi 1C

Rincian register akumulasi berfungsi sebagai “komentar” atau informasi tambahan; dalam hal pengukuran, tidak mungkin diperoleh saldo/perputaran. Jarang digunakan.

Jenis register akumulasi

Ada dua jenis register akumulasi - perputaran dan saldo.

Jika tujuan register akumulasi bukan untuk memperoleh saldo, maka perlu menggunakan jenis register akumulasi - rpm. Contoh umum penggunaan register perputaran adalah mencatat volume penjualan. DI DALAM pada kasus ini kita hanya perlu mengetahui berapa penjualan selama periode waktu tertentu; dalam hal ini, tidak ada artinya.

Apabila tujuan penggunaan register akumulasi adalah untuk memperoleh saldo pada jangka waktu tertentu, maka diperlukan register yang mempunyai formulir sisa. Tipe ini memungkinkan Anda menerima saldo dan omzet. Untuk register seperti itu, sistem secara otomatis menghitung saldo. Contoh register “sisa” adalah barang di gudang, uang di mesin kasir.

Menggunakan tipe register sisa di mana Anda bisa bertahan rpm, dianggap sebagai kesalahan besar dalam desain register akumulasi dari perspektif kinerja sistem.

Tergantung pada jenis register, sistem akan membuat tabel virtual berbeda untuk register akumulasi. Meja maya – cara cepat memperoleh informasi profil dari register.

Untuk register akumulasi adalah:

  • Sisa;
  • Revolusi;
  • Sisa dan omset.

Bagi pengembang solusi, data diambil dari satu tabel (virtual), namun nyatanya platform 1C mengambilnya dari banyak tabel, mengubahnya menjadi bentuk yang diperlukan.

Desain register akumulasi yang tepat

Register akumulasi harus dirancang dari laporan yang diperlukan. Hal tersulit dalam sistem 1C 8.3 adalah menyimpan informasi dengan benar sehingga dapat dengan mudah diambil kapan saja.

Di antara ciri-ciri desain register, perlu diperhatikan kebutuhan untuk mengatur dimensi dengan benar dalam register. Yang terpenting, Anda perlu memasukkan pengukuran yang paling sering diminta ke dalam sistem.

Dimensi register akumulasi pengindeksan

Pengukuran register akumulasi memiliki sifat "pengindeksan". Properti ini harus disetel ke pengukuran jika direncanakan untuk sering menerapkan pilihan pada pengukuran saat menerima data dan pengukuran ini dapat memiliki banyak pilihan nilai.

Misalnya, registernya adalah “ProductsInWarehouses”, dimensinya adalah “Gudang, Nomenklatur”, sumber dayanya adalah “Quantity”.

Lebih tepat mengindeks “Nomenklatur”, tetapi bidang “Gudang” tidak boleh diindeks, karena jumlah gudang dalam sistem, biasanya, tidak signifikan.

biaya bahan yang tersedia dalam organisasi, kita perlu mengakses dokumen, memeriksa masing-masing dokumen, menuliskan data yang diperlukan, dan kemudian meringkasnya, mendapatkan data yang diperlukan. Pendekatan ini tidak nyaman - terlalu lambat baik untuk kasus “manual” imajiner kita maupun untuk akuntansi otomatis.

Akan lebih logis, selain dokumen, untuk menyimpan tabel khusus di mana, ketika menerima bahan dan menghapusnya, masukkan informasi singkat tentang hal ini. Jika, katakanlah, setiap hari, Anda menjumlahkan tabel-tabel ini dan menampilkan sisa materi, maka, untuk mengetahui berapa banyak dan jenis materi apa yang dimiliki organisasi pada tanggal tertentu, cukup mengacu pada kolom yang sesuai. dari meja. Dalam sistem 1C:Enterprise, ada tabel seperti itu register akumulasi. Seperti namanya, mereka dirancang untuk mencerminkan, mengumpulkan, dan indikator tertentu. Dan refleksi dalam daftar penerimaan dan konsumsi bahan adalah salah satu contoh khas penggunaannya.

Organisasi kami menyimpan catatan materi sehubungan dengan orang yang bertanggung jawab yang menerimanya dan dari siapa materi tersebut dihapuskan ketika dilepaskan ke produksi. Kita perlu menyimpan informasi tentang jumlah bahan dan biayanya, dan juga, ketika dihapuskan untuk produksi, memiliki informasi tentang pengrajin mana bahan-bahan tersebut dipindahkan. Pertimbangan ini memungkinkan kita merancang struktur daftar akumulasi, yang sekarang akan kita buat.

Saat merencanakan pasukan daftar akumulasi kita perlu memahami dengan tepat data apa yang akan kita simpan di dalamnya, dan kemudian “menguraikan” data ini menjadi dimensi, sumber daya, dan detail register.

Jadi, kita perlu menyimpan data berikut:

  • Posisi tata nama
  • Karyawan yang bertanggung jawab untuk posisi ini
  • Jumlah barang
  • Biaya barang
  • Data tentang master kepada siapa materi ditransfer untuk digunakan.

Daftarkan pengukuran, atau potongan di mana data disimpan, memungkinkan kita menjawab pertanyaan tentang data apa yang disimpan di buku besar. Dalam kasus kita, kita perlu mengetahui dua karakteristik utama - inilah yang terjadi penanggung jawab diperbaiki dengan satu atau lain cara posisi nomenklatur. Jelasnya, dimensi dari daftar data kami adalah item item dan karyawan yang bertanggung jawab.

Sumber Daya Registri– ini selalu berupa nilai numerik yang menjadi ciri data yang disimpan. Nilai numerik adalah kuantitas dan jumlah, dan keduanya akan menjadi sumber daya register kita.

Daftarkan detailnya memainkan peran pendukung, dan, dalam kasus kami, akan logis untuk menyimpan informasi detail register tentang pengrajin yang menerima bahan untuk pekerjaan tersebut - jika kami perlu mencari tahu siapa sebenarnya yang menggunakan bahan-bahan tersebut.

Pertanyaan penting lainnya yang harus diputuskan ketika merancang sebuah register adalah apakah register tersebut akan mampu melakukan hal tersebut daftar saldo atau daftar revolusi. Kami tertarik pada informasi tentang sisa bahan dan informasi tentang omset, jadi saat menyiapkan register, kami harus menentukan jenis register - Sisa. Daftar dengan tampilan Sisa memungkinkan kita bekerja dengan saldo dan omset

Struktur yang diusulkan di sini daftar akumulasi– ini hanyalah salah satu opsi tentang cara mengatur penyimpanan data yang dijelaskan. Skema serupa akuntansi dapat diimplementasikan, katakanlah, dengan menggunakan sepasang register, salah satunya digunakan secara eksklusif untuk tujuan menyimpan total saldo bahan - yaitu, data yang diperlukan untuk laporan keuangan, yang lainnya adalah untuk menyimpan data oleh pusat pertanggungjawaban. Bagaimanapun, setiap skema akuntansi tertentu mungkin memerlukan struktur registernya sendiri, dan contoh kami hanyalah demonstrasi dari salah satu opsi yang memungkinkan.

Setelah membahas bagian teoritis dari masalah ini, mari kita beralih ke praktik. Ayo buat yang baru daftar akumulasi, sebut saja Bahan yang Tersisa, parameter Jenis pendaftaran biarkan saja pada nilai itu Sisa, beras. 6.12.


Beras. 6.12.

Ayo nyalakan daftar akumulasi ke dalam subsistem Akuntansi Bahan Operasional.

Di tab Data Mari buat dimensi, sumber daya, dan detail berikut:

Pengukuran:

Nama: Tata Nama, Ketik: DirectoryLink.Nomenklatur, Larangan nilai kosong – ditetapkan.

Nama: ResponsibleEmployee, Ketik: DirectoryLink.Employees, Larangan nilai kosong – set.

Sumber daya

Nama: Jumlah, Jenis: angka, panjang 10, presisi 3

Nama: Jumlah, Jenis: angka, panjang 10, presisi 2

Persyaratan:

Nama: Penerima Bahan, Ketik: DirectoryLink.Employees

Perhatikan nama detail ini, tipenya, serta detail register standar (Gbr. 6.13.) - data ini akan berguna bagi kami saat mengerjakan prosedur melaksanakan dokumen tersebut.

Mari kita kecualikan atribut umum dari rincian register Organisasi. Tidak perlu untuk itu sekarang. Untuk mengatur penyimpanan data dalam register di berbagai organisasi, kita memerlukan dimensi baru - Organisasi, berkat itu kita dapat bekerja dengan materi dari berbagai organisasi.

Ayo pergi ke tab Pendaftar jendela untuk mengedit objek dan memilih dokumen sebagai dokumen perekam - Penerimaan Bahan Dan Pelepasan Materi kepada Master.

Pada di panggung ini pengaturan daftar akumulasi selesai, mari beralih ke pengaturan dokumen. Mari kita mulai dengan dokumennya Penerimaan Bahan.

Buka jendela pengeditan objek untuk dokumen ini, buka tab Gerakan(Gbr. 6.14.) dan tekan tombol


Beras. 6.14.

Di konstruktor, pilih jenis pergerakan register - Yang akan datang, di lapangan Bagian tabel menunjukkan bagian tabel dokumen Bahan, klik tombolnya Ekspresi lengkap. Mekanisme otomatis untuk membuat korespondensi antara dokumen dan data register tidak selalu berfungsi dengan benar (jika tidak dapat menentukan korespondensi secara jelas, atau ketika korespondensi yang ditentukan menurut logikanya berbeda dari yang diinginkan), maka kami akan melakukannya periksa kebenaran korespondensi yang ditetapkan. Akibatnya, jendela Perancang mendaftarkan gerakan akan terlihat seperti yang ditunjukkan pada Gambar. 6.15.


Beras. 6.15.

Setelah mengklik tombol OK, prosedur pemrosesan eksekusi berikut akan dihasilkan di modul objek dokumen (inilah tampilannya setelah menghapus komentar bahwa kode tersebut dibuat oleh perancang gerak):

Prosedur Pemrosesan Pemrosesan (Kegagalan, Mode) // daftarkan Bahan Tersisa Kedatangan Pergerakan. Untuk Setiap TekStrowMaterials Dari Siklus Material Movement = Movements.RemainingMaterials.Add(); Movement.MovementType = AccumulationMovementType.Masuk; Pergerakan.Periode = Tanggal; Gerakan.Nomenklatur = TexStringMaterials.Nomenklatur; Pergerakan.Karyawan yang Bertanggung Jawab = Karyawan yang Bertanggung Jawab; Motion.Quantity = TechStringMaterials.Quantity; Gerakan.Jumlah = TexStringMaterial.Jumlah; Siklus Akhir; Akhir Prosedur

Prosedur ini dideklarasikan dalam modul objek, dan dijalankan