Mendapatkan permintaan tanggal dokumen. Fitur menerima rilis catatan terbaru dalam daftar informasi Dapatkan harga pada tanggal dokumen dalam permintaan

/
Menerapkan pemrosesan data

Resolusi hasil untuk register informasi berkala

Lingkup: aplikasi terkontrol, aplikasi seluler, aplikasi normal.

1.1. Untuk register informasi berkala, disarankan untuk menyelesaikan hasil jika semua kondisi berikut dipenuhi:

  • sejumlah besar data diharapkan dalam register (misalnya, dibenarkan untuk mendaftar dengan harga nomenklatur; tetapi tidak masuk akal untuk mendaftar dengan kursus mata uang);
  • konfigurasi memberikan permintaan frekuensi ke bagian terakhir kali dan / atau ke bagian pertama untuk mendapatkan data topikal (I.E., ketika periode tidak ditentukan dalam parameter tabel virtual Tidurdan Mengiris);
  • pada saat yang sama, kondisi yang tersisa untuk tabel virtual Tidur dan Mengiris hanya ditentukan pada nilai pengukuran (dan pemisah dalam mode Secara mandiri dan bersama-sama);
  • dalam batasan akses ke data, hanya pengukuran yang digunakan (dan divider dalam mode Secara mandiri dan bersama-sama).

Daftar lengkap semua kondisi ketika hasil register informasi terlibat dalam pertanyaan, lihatdokumentasi untuk Platform 1C: Perusahaan.

Misalnya, jika permintaan register yang sering berjalan disediakan dalam konfigurasi HargaNactore. Untuk mendapatkan harga nomenklatur saat ini:

Pilih nomenklatur. Artikel sebagai artikel, harga bunga. Harga seperti harga ,. . . Dari direktori. Nomenklatur sebagai koneksi nomenklatur dari register. HargaNet. Berputar-putar (, vidisi \u003d & Vidzena) sebagai harga Masalah harga. Nomenklatur \u003d nomenklatur. Tautan. . .

yang tunduk pada semua kondisi lain yang tercantum di atas, mengatur properti Izinkan hasilnya: Potong terakhir Secara signifikan mempercepat pelaksanaan permintaan tersebut, dihitung bahwa sampel akan dieksekusi langsung dari tabel tambahan di mana hanya nilai terakhir (untuk potongan baru-baru ini) disimpan dan nilai pertama (untuk bagian pertama ).

1.2. Selain itu, opsi alternatif harus dipertimbangkan untuk merevisi permintaan register sedemikian rupa sehingga kondisi ini dilakukan.

Misalnya, jika dalam beberapa kasus data dalam register HargaNactore. Direkam oleh tanggal mendatang, dan ketika pemilihan barang, selalu menjadi kueri untuk tanggal saat ini (Tanggal jelas diatur dalam parameter tabel virtual Mengiris) Hasilnya tidak akan mempercepat eksekusi permintaan tersebut. Karena hasilnya dibangun hanya untuk entri register pertama dan terakhir.

Namun, jika ketika Anda membuka bentuk pemilihan barang, menganalisis apakah ada pendaftar dengan tanggal mendatang, dan jika tidak ada - untuk melakukan permintaan lain ke potongan terakhir yang terakhir tanpa menginstal tanggal, maka permintaan tersebut akan bekerja lebih cepat.

2. Dalam semua kasus lain, seseorang tidak boleh diselesaikan untuk register informasi berkala. Pertama-tama, jika

  • paling sering (selalu) ke tabel virtual bagian dari register informasi periodik pertama / terakhir, kueri dijalankan untuk periode tertentu (misalnya, pada tanggal dokumen).
  • dalam kondisi untuk tabel virtual Tidur dan Mengiris Paling sering (selalu) menggunakan subqueries dan koneksi (sirkulasi "melalui titik" ke bidang tabel terkait). Misalnya, dalam hal ini:

3. Tidak perlu menyediakan dalam konfigurasi mekanisme yang terpisah untuk menghitung ulang hasil, karena aktualisasi tabel hasil dilakukan secara otomatis dengan setiap perekaman catatan dalam register.

: Tidur dan Mengiris Pertimbangkan untuk bekerja dengan tabel virtual ini menggunakan 1C. Jauh lebih sering diterapkan Mengiris, begitu bersamanya dan mari kita mulai.

Salam terakhir memungkinkan Anda untuk mendapatkan catatan terbaru dari daftar informasi ke tanggal yang ditentukan dalam konteks pengukuran. Untuk tabel pemotongan terakhir (pertama) ada peluang dalam tanda kurung untuk menentukan dua parameter melalui koma. Pada parameter pertama, tanggal ditransmisikan ke mana potongan dibuat (jika parameter tidak menentukan slice dibuat ke tanggal saat ini). Parameter kedua mewakili kondisi dalam bahasa query 1c dan memungkinkan Anda untuk menginstal berbagai pilihan. Sebagai aturan, pengukuran digunakan di sekorar ini. Semua ini terdengar cukup berkabut, jadi tanpa contoh yang tidak bisa Anda lakukan.
Jadi marilah kami memiliki daftar informasi berkala Harga Di mana harga disimpan dalam konteks barang dan pemasok. Frekuensi register adalah hari.

Register memiliki entri berikut

Untuk memulainya, kami mendapatkan potongan yang terakhir tanpa menggunakan parameter, mengikuti permintaan ini.

Pilih harga penyerahan. Periode sebagai periode, pencahayaan. Sungwar sebagai produk, pricerextrighted. Daftar itu sebagai pemasok, harga penyerahan. Ringkasan sebagai jumlah pendaftaran

Karena parameter tidak ditentukan, pemotongan dilakukan pada tanggal saat ini - 01.02.2017. Akibatnya, kami mendapatkan tabel ini

Di sini kita melihat bahwa kombinasi barang pengukuran + pemasok unik, mis. Untuk setiap kombinasi pengukuran register, sebuah catatan diambil dengan tanggal maksimum, dan tanggal rekaman kurang atau sama dengan tanggal saat ini.

Misalkan kita perlu melakukan hal yang sama tetapi catatan yang ingin kita dapatkan dengan tanggal kurang atau sama dengan 15 Januari 2017. Untuk melakukan ini, Anda perlu mengubah string dalam kueri dengan tabel potong baru-baru ini sebagai berikut.

Dari mendaftar. Harga. Preventif (& Dancer,) sebagai harga transvest

Sebelum melakukan permintaan, tentu perlu untuk mentransfer parameter. & DataSeca.. Sekarang hasil kueri akan terlihat seperti

Dan akhirnya bayangkan bahwa kita perlu memotong potongan pada tanggal yang sama dengan kondisi kita memiliki barang Pensil, dan pemasok Alat tulis. Untuk melakukan ini, tentukan parameter kedua dalam kueri.

Dari mendaftar. Harga. Pencegahan (& penari, produk \u003d & barang dan pemasok \u003d & pemasok) sebagai pricerext

Akibatnya, kami hanya mendapatkan satu catatan

Agar tidak bingung dalam semua kurung dan koma ini, lebih baik menggunakan perancang permintaan. Saya akan menunjukkan kepada Anda tentang contoh kueri terakhir.

Setelah memilih pada desainer tabel kueri dengan potongan yang terakhir, Anda harus mengklik tombol Pengaturan Tabel Virtual dan di jendela yang terbuka untuk mendaftar

Tidak sulit untuk menebak bahwa untuk memotong prinsip tindakan pertama adalah sama kecuali bahwa catatan pertama dipilih setelah tanggal pemotongan.

Dua tabel virtual tersedia untuk register informasi berkala: Tidur dan Mengiris Pertimbangkan untuk bekerja dengan tabel virtual ini menggunakan permintaan 1C. Jauh lebih sering diterapkan Mengiris, begitu bersamanya dan mari kita mulai.

Salam terakhir memungkinkan Anda untuk mendapatkan catatan terbaru dari daftar informasi ke tanggal yang ditentukan dalam konteks pengukuran. Untuk tabel pemotongan terakhir (pertama) ada peluang dalam tanda kurung untuk menentukan dua parameter melalui koma. Pada parameter pertama, tanggal ditransmisikan ke mana potongan dibuat (jika parameter tidak menentukan slice dibuat ke tanggal saat ini). Parameter kedua mewakili kondisi dalam bahasa query 1c dan memungkinkan Anda untuk menginstal berbagai pilihan. Sebagai aturan, pengukuran digunakan di sekorar ini. Semua ini terdengar cukup berkabut, jadi tanpa contoh yang tidak bisa Anda lakukan.

Jadi marilah kami memiliki daftar informasi berkala Harga Di mana harga disimpan dalam konteks barang dan pemasok. Frekuensi register adalah hari.

Register memiliki entri berikut

Untuk memulainya, kami mendapatkan potongan yang terakhir tanpa menggunakan parameter, mengikuti permintaan ini.

Pilih harga penyerahan. Periode ini adalah saat periode, harga yang terakhir. Produk sebagai barang, pricerere - tahan lama. Pemasok sebagai pemasok, harga kebangkitan. Jumlahnya sebagai jumlah pendaftaran. Harga. Berputar-putar sebagai harga diterjemahkan

Karena parameter tidak ditentukan, pemotongan dilakukan pada tanggal saat ini - 01.02.2017. Akibatnya, kami mendapatkan tabel ini

Periode | Produk | Pemasok | Jumlah

01/25/2017 | Pensil | Ltd. Lesprot "| limabelas

02/01/2017 | Pensil | PJSC "Alat Tulis" | 31.

02/01/2017 | Tangani | PJSC "Alat Tulis" | .

Di sini kita melihat bahwa kombinasi barang pengukuran + pemasok unik, mis. Untuk setiap kombinasi pengukuran register, sebuah catatan diambil dengan tanggal maksimum, dan tanggal rekaman kurang atau sama dengan tanggal saat ini.

Misalkan kita perlu melakukan hal yang sama tetapi catatan yang ingin kita dapatkan dengan tanggal kurang atau sama dengan 15 Januari 2017. Untuk melakukan ini, Anda perlu mengubah string dalam kueri dengan tabel potong baru-baru ini sebagai berikut.

Dari mendaftar. Harga. Circus-abadi (& amp; penari,) sebagai harga yang diawetkan

Sebelum melakukan permintaan, tentu perlu untuk mentransfer parameter. & DataSeca.. Sekarang hasil kueri akan terlihat seperti

Periode | Produk | Pemasok | Jumlah

01.01.2017 | Pensil | Ltd. Lesprot "| 10.

01.01.2017 | Pensil | PJSC "Alat Tulis" | 27.

01/03/2017 | Tangani | PJSC "Alat Tulis" | 137.

Dan akhirnya bayangkan bahwa kita perlu memotong potongan pada tanggal yang sama dengan kondisi kita memiliki barang Pensil, dan pemasok Alat tulis. Untuk melakukan ini, tentukan parameter kedua dalam kueri.

Dari mendaftar. Harga. Circling-lesu (& amp; penari, produk \u003d & amp; produk dan pemasok \u003d & amp; pemasok) sebagai harga yang diterjemahkan

Akibatnya, kami hanya mendapatkan satu catatan

Periode | Produk | Pemasok | Jumlah

01.01.2017 | Pensil | PJSC "Alat Tulis" | 27.

Agar tidak bingung dalam semua kurung dan koma ini, lebih baik menggunakan perancang permintaan. Saya akan menunjukkan kepada Anda tentang contoh kueri terakhir.
Setelah memilih pada desainer tabel kueri dengan potongan yang terakhir, Anda harus mengklik tombol Pengaturan Tabel Virtual dan di jendela yang terbuka untuk mendaftar

Tidak sulit untuk menebak bahwa untuk memotong prinsip tindakan pertama adalah sama kecuali bahwa catatan pertama dipilih setelah tanggal pemotongan.

43
NULL - nilai-nilai yang hilang. Jangan bingung dengan nilai nol! NULL bukan nomor yang tidak sama dengan ruang, link kosong, tidak terdefinisi. NULL - Tipe-Forming Nilai, I.E. Ada jenis NULL dan satu-satunya arti dari jenis ini. NULL ... 26
Untuk membentuk dan melaksanakan query ke tabel database dalam platform 1C, objek khusus objek bahasa pemrograman yang digunakan. Objek ini dibuat dengan menelepon permintaan baru. Permintaan nyaman ... 18
Artikel ini menyajikan teknik yang berguna saat bekerja dengan permintaan 1C V.8.2, serta informasi yang tidak terlalu terkenal dengan bahasa kueri. Saya tidak berusaha untuk memberikan deskripsi lengkap dari bahasa permintaan, tapi saya ingin berhenti hanya pada ... 13
Suka - operator memeriksa string pada pola seperti. Seperti analog di SQL. Operator seperti yang memungkinkan Anda untuk membandingkan nilai dari ekspresi yang ditentukan di sebelah kiri itu, dengan string dari template yang ditetapkan di sebelah kanan. Nilai ekspresi ...

Kadang-kadang Anda perlu permintaan untuk mendapatkan dari data informasi informasi berkala selama beberapa tanggal segera. Contoh khas bekerja dengan kursus mata uang. Pertimbangkan algoritma untuk menyelesaikan tugas ini pada contoh.

Perumusan masalah

Dalam database, dokumen "implementasi layanan" dibuat, di header di antaranya ada alat peraga "mata uang". Permintaan diperlukan untuk setiap dokumen untuk menerima tingkat mata uang aktual dari header ke tanggal dokumen. Penyimpanan tukar mata uang dilakukan dalam daftar periodik "Carsivalyut".
Keputusan "di dahi" dari masalah ini bisa menjadi permintaan dalam siklus: menerima semua dokumen dengan tanggal dan mata uang mereka dan di banding sampel ke meja virtual rilis dari register terakhir "Kursivalyut". Tapi karena Permintaan dalam siklus adalah "buruk", mencoba untuk menerapkan tugas dengan satu permintaan.

Keputusan

Untuk mengatasi masalah tersebut, kita akan menggunakan fakta bahwa tabel dalam permintaan dapat dihubungkan tidak hanya untuk kesetaraan bidang.

MEMILIH RealizatsiyaTovarovUslug.Ssylka, RealizatsiyaTovarovUslug.Valyuta, MAX (KursyValyut.Period) sebagai periode VTPeriodyUstanovkiKursov PUT OUT CARA Dokument.RealizatsiyaTovarovUslug RealizatsiyaTovarovUslug kiri bergabung RegistrSvedeniy.KursyValyut CARA KursyValyut RealizatsiyaTovarovUslug.Valyuta \u003d KursyValyut.Valyuta Dan RealizatsiyaTovarovUslug.Data\u003e \u003d KursyValyut.Period dikelompokkan Menurut pelaksanaan layanan link, menerapkan jalan-jalan Svaluta..; ////////////////////////////////////////////// // // ////////////////////////////////////////////////// ///////////////////////////////////////////// pilih teriodoresostorekurs. Tautan, WTPeriodoresOstrovikurstovs.Valuta, Kursivalyut.KURS dari WTPeriodorestorecars sebagai establishers cluttering dari koneksi kiri registerings. Kashivalyuta sebagai meluncur pengaturan vaporiodine. Periode \u003d coarsevalyut.period dan clutterings MountingCurses.Valuta \u003d coarsevalyut.Valuta

Prosedur dalam query:

  1. Memperoleh nilai tukar mata uang untuk setiap dokumen. Dokumen terhubung ke tabel fisik "Kursivyut". Di sini Anda harus memperhatikan kondisi koneksi. Mata uang harus sama, dan tanggal dokumen\u003e \u003d periode informasi mendaftar.
    Sebagai hasil dari sambungan tersebut, satu set string kondisi memuaskan akan diperoleh untuk setiap dokumen: semua catatan mata uang set nilai tukar paling lambat tanggal dokumen.
    Tahap akhir akan menjadi pengelompokan string untuk mendapatkan jangka waktu kursus maksimal. Akibatnya, untuk setiap dokumen, periode yang diperlukan instalasi kursus untuk mata uang yang diinginkan akan diperoleh (tanggal maksimum pemasangan nilai tukar mata uang, tetapi tidak lebih dari tanggal dokumen). Hasilnya ditempatkan di tabel sementara sistem kekacauan.
  2. Mendapatkan kursus. Tabel sementara biaya terhubung ke tabel fisik "Krasvalyut". Sambungan terjadi sesuai dengan mata uang dokumen dan periode pengaturan saja didefinisikan dalam tabel sementara kedua.