Pekerjaan pembangun laporan dan pembangun permintaan dengan sumber data sewenang-wenang. Pekerjaan laporan laporan dan pembangun kueri dengan sumber data sewenang-wenang dari pemilihan kueri 1C 8.2

Versi kedelapan platform 1C menawarkan cukup banyak objek konfigurasi baru, yang masing-masing memiliki metode dan propertinya sendiri yang membuatnya mudah untuk menyederhanakan proses pengembangan aplikasi dan mengoptimalkan kinerja. Salah satunya adalah pembangun laporan.

Tentang apa itu pembangun laporan pada 1C, yang berfungsi melakukan, dan aplikasi apa yang telah ditemukan dalam pemrograman, dan saya ingin berbicara dalam artikel ini.

Laporkan Builder dalam 1C - Apa itu?

Ini adalah objek konfigurasi yang memungkinkan data untuk menampilkan data ke dalam dokumen atau bagan tabel. Sebagai sumber data dapat:

  1. Hasil dari kueri;
  2. Area sel dokumen tablet;
  3. Bagian tabular dari dokumen atau buku referensi;
  4. Set catatan register.

Selain itu, laporan laporan dalam 1C memiliki alat peraga "teks" di mana teks kueri dapat ditransmisikan, hasilnya harus dilihat.

Gambar 1 menunjukkan kode kode yang memungkinkan menggunakan "Laporkan Builder" untuk menampilkan tabel nilai yang sewenang-wenang

Dengan demikian, penggunaan yang jelas dari pembangun adalah desain laporan. Tidak begitu jelas penggunaan pembangun adalah penggunaannya untuk mengkonfigurasi pengguna berbagai elemen kueri (pengelompokan, pilihan, dll.).

By the way, hasil kode yang ditentukan pada Gambar 1 dapat dilihat pada Gambar 2

Gbr.2.

Mengkonfigurasi Builder.

Pembuat laporan dalam arti menyerupai sistem tata letak data dan dapat digunakan dalam kasus-kasus di mana CCD untuk satu atau alasan lain tidak tersedia atau ada kemungkinan itu akan bekerja dengan benar.

Seperti CCD Builder termasuk:

  • Pengelompokan (tingkat hierarki dalam output informasi);
  • Indikator (nilai yang diperlukan untuk mendapatkan hasil);
  • Bidang perhitungan tambahan (rincian elemen, hasil tindakan dengan nilai);
  • Filter (Pilihan);
  • Penyortiran.

Pengaturan tata letak desain builder menganggap level dan keakuratan detail yang berbeda.

Algoritma untuk menggunakan builder

Secara alami, tergantung pada situasinya, kode program pembangun laporan dapat sangat berbeda. Algoritma penggunaan utama tidak berubah:

  1. Kami mendeklarasikan penciptaan tipe objek baru Builder;
  2. Pada tahap ini, Anda dapat menggunakan sistem untuk membuat teks sampel, atau menggunakan deskripsi sumber deskripsi untuk menggunakan sampel yang ada;
  3. Pengaturan pembangun laporan dapat ditanyakan menggunakan metode pengisian objek pengisian ();
  4. Menolak untuk menggunakan tata letak standar dari desain yang dibuat oleh metode autogeneration, Anda dapat menentukan properti tata letak objek di Builder;
  5. Jika tidak digunakan dalam deskripsi sumber, pada tahap ini perlu untuk mengeksekusi permintaan, kami menggunakan metode eksekusi ();
  6. Langkah terakhir adalah menjalankan metode untuk keluaran (), output dapat dilakukan dalam dokumen tabel, atau ke elemen formulir yang sesuai.

Menggunakan dekripsi di Builder

Baris ketiga dalam Gambar. 1 Termasuk dekripsi hasil pembangun.

Untuk melakukan ini, kami menggunakan properti sendi. Jenis properti ini - kartu berbasis yang terlihat salah, dapat mengambil satu dari tiga nilai:

  1. Nilai - Saat mengaktifkan sel, nilai grup yang ditentukan dalamnya akan digunakan;
  2. Replenish - Nilai default yang berarti bahwa untuk hasil akhir, dekripsi tidak akan digunakan;
  3. Decoding - Struktur dekripsi akan diisi dengan nilai semua pengelompokan pengambilan sampel asli.

Selain itu, pengguna memiliki kemampuan untuk secara independen mengatur decoding menggunakan metode konfigurasi (). Kode kode yang menjalankan metode ini disajikan pada Gambar.3.

Gbr. 3.

Contoh menggunakan Builder untuk memungkinkan pilihan dalam laporan

Sedikit bagian praktis. Terkadang situasinya terjadi ketika diperlukan untuk membuat laporan dengan beberapa pilihan. Dimungkinkan untuk mengatasi masalah ini dengan penggunaan SCD, dan Anda dapat menggunakan Builder:

  1. Mari kita mulai dengan kreasi laporan eksternal dan menambahkan alat peraga untuk itu dengan nama yang sewenang-wenang dan mengetik pembangun (Gbr. 4);

Gbr.4.

  1. Buat formulir laporan dan letakkan objek antarmuka dengan bidang tabel di atasnya, mengetiknya sebagai pemilihan dan terkait dengan pemilihan yang dibuat dari Fig.5 dengan properti.

Gbr.5.

  1. Buat prosedur penghentian () terkait dengan peristiwa yang sesuai dari bentuk kami;

Gbr.6.

  1. Kode yang diresepkan di dalamnya harus berisi permintaan pembangun laporan, contoh kode ditunjukkan pada Gambar. 6, untuk membuat teks pembangun, Anda dapat menggunakan konstruktor kueri, di konstruktor pembangun, dan pengaturan tambahan ditentukan pada tab yang sesuai Gbr.7;

Gbr.7.

  1. Kondisi pemilihan yang ditentukan dalam kurung angka () dari teks kueri akan dijalankan hanya jika pemilihan yang sesuai diaktifkan dan digunakan oleh pengguna;

  2. Prosedur yang menampilkan hasil pembangun disajikan pada Gambar. 8 dan dikaitkan dengan pers pada tombol form;

Gbr.8.

  1. Kami menyimpan laporan kami.

Penampilan laporan yang dibuat oleh kami dan hasilnya ditunjukkan pada Gambar.9

Gbr.9.

Tentu saja, dalam satu artikel, agak sulit untuk menunjukkan semua kemungkinan objek baru, tetapi untuk mendapatkan presentasi tentang dia dan mulai menggunakannya dengan pengetahuan yang diperoleh, menurut kami.

1. Apa itu pembangun laporan?

Builder Laporan adalah objek yang memungkinkan Anda untuk mendapatkan hasil berdasarkan teks yang ditentukan dari kueri dan pengaturan dan menampilkannya dalam dokumen atau grafik tabel.

Pengaturan Builder Laporan meliputi:

  • pengelompokan (contoh: "nomenklatur", "counterparty" ...),
  • indikator (contoh: "angka", "jumlah" ...),
  • bidang tambahan (contoh: "nomenklatur. Layanan", "counterpart. Kode" ...),
  • filter (Contoh: pada nomenklatur tertentu, menurut grup counterparties ...) dan
  • menyortir (Contoh: "Nomenklatur. Kode", "Counterparty. Nama" ...)

Pengaturan Builder memiliki alat visualisasi, yang memungkinkan programmer dengan biaya tenaga kerja minimal untuk memberi pengguna antarmuka untuk menginstalnya.

Sebelum tata letak output dari pelapor dapat dikeluarkan menggunakan tata letak desain.

Menampilkan hasil eksekusi Permintaan Builder Laporan dilakukan oleh satu perintah.

2. Di mana saya dapat menggunakan pembangun laporan?

Menggunakan Builder Laporan, Anda dapat merancang sebagian besar laporan (contoh: "sisa-sisa barang", "penjualan untuk periode" ...). Pada saat yang sama, waktu untuk pengembangan dan kode program mereka akan berkurang secara signifikan, dan kualitas desain dan fungsi akan meningkat.

Selain itu, pembangun laporan dapat digunakan dalam kasus-kasus di mana hasilnya tidak diperlukan, tetapi konfigurasi pengguna diperlukan, misalnya, pengelompokan atau filter (contoh: bongkar nomenklatur ke file XML atau pemrosesan dokumen pada filter yang diberikan) .

Sejak Builder Laporan tidak tersedia di server 1C: perusahaan dan tidak digunakan dalam modul koneksi eksternal, maka dalam kasus ini perlu digunakan permintaan Builder., yang mirip dengan laporan kepada pembangun, tetapi tidak memiliki sifat dan metode visual ("tata letak", "pengumpulan output", "untuk menarik ()", "pengaturan ()" ...).

3. Sedikit tentang konsepnya

Dibandingkan dengan versi 7.7 dalam versi 8.0 ada perubahan kecil konsep, jadi harganya sedikit untuk berhenti di atasnya.

Konsep

Deskripsi

Pengukuran string. Daftar pengelompokan yang akan diselesaikan oleh garis (contoh: "nomenklatur", "counterpart" ...)
Pengukuran kolom Daftar grup tempat kolom akan dilaksanakan (contoh: "gudang", "bulan" ...).
Pilihan Satu set filter yang berbeda (contoh: Menurut kelompok rekanan, menurut organisasi tertentu ...).
Memesan Satu set bidang penyortiran (contoh: "nomenklatur. Kode", "Penjualan Dokumen. Asisten" ...).
Bidang Salah satu bidang sampel kueri (Contoh: "NomenLature", "Counterparty", "Jumlah", "SUM" ...).
Bidang yang dipilih Daftar bidang yang dipilih mencakup indikator (contoh: "angka", "jumlah" ...) dan bidang tambahan (detail pengelompokan) (Contoh: "Nomenklatur. Grup", "Counterpart" ...).
Bidang yang tersedia Daftar bidang yang tersedia untuk ditambahkan ke bidang pengelompokan, filter, sortir, dan yang dipilih. Isi, sebagai aturan, daftar bidang pengambilan sampel kueri, tetapi dapat diedit secara terprogram (Anda dapat menambahkan, mengubah, dan menghapus bidang yang tersedia).

Penting untuk dipahami bahwa bidang pengelompokan, filter, penyortiran dan bidang yang dipilih tidak langsung terkait dengan bidang yang tersedia, ini adalah objek yang berbeda.

Perbedaan utama terletak pada kenyataan bahwa bidang yang tersedia tidak memiliki sifat-sifat "bubur" (contoh: "nomenklatur. Kode", "angka"), karena itu hanya semacam deskripsi lapangan, yang dilakukan dibuat untuk menemukan kepatuhan di antara bidang sampel kueri pada saat itu tambahkan ke daftar grup, filter, sortir atau bidang yang dipilih.

Pada saat yang sama, tidak ada kemungkinan untuk secara terprogram untuk menambahkan salah satu bidang yang tersedia ke daftar di atas, karena, di satu sisi, tidak ada gunanya "add-down ()" A-LA atau "Tambahkan ) ", tetapi di sisi lain ketika menambahkan item baru di salah satu dari daftar di atas, Anda perlu menentukan properti" pulp ", yang tidak selalu bertepatan dengan nama bidang (contoh: bidang" nomenklatur "dan" Nomenclature.rodel. Produk "memiliki nama yang sama" induk ").

4. Pembentukan Khas Pembuat Laporan

Secara umum, urutan tindakan saat bekerja dengan pelapor Builder adalah sebagai berikut:

  1. Buat objek baru "Jenis Bangunan";
  2. Tetapkan teks dari properti "teks" kueri;
  3. Jika pengaturan pembangun laporan tidak ditentukan dalam teks kueri, maka jalankan metode "filling ()";
  4. Berikan kemampuan pengguna untuk mengubah pengaturan pembangun laporan;
  5. Jika perlu, Anda dapat meninggalkan autogenerasi tata letak oleh laporan oleh Builder Laporan dan menetapkan tata letak tetap ke properti "tata letak";
  6. Jika perlu, Anda dapat menetapkan salah satu standar atau tata letak ke properti "mock-forming", sedangkan jika tata letak pelapor yang dihasilkan secara otomatis telah diganti dengan tetap, kemudian jalankan metode "dirancang" () ";
  7. Hubungi "Run () Metode";
  8. Hubungi metode "Tampilkan ()".
Builder \u003d Baru "Jenis Bangunan"; Builder.text \u003d "Pilih diizinkan | pemantauan pemadangan. Strukturalatenitsa, | jumlah (pemantauan pakanspaniastake. Sumragaes) sebagai jumlah | regispion ; Builder. Persyaratan (); // di sini Anda dapat memberikan kesempatan kepada pengguna // mengubah pengaturan pembangun laporan Builder.maker \u003d resepsiqet ("net");
Builder.mackworkoforming \u003d rilisbackets (aplikasi standar. Klasik);
Builder. Demintmack ();
Builder.fill ();
Builder. Acara ();

5. Deskripsi beberapa properti Builder Laporan

Properti

Deskripsi

Teks Berisi teks dari Permintaan Builder Laporan. Jika teks permintaan Builder Laporan tidak mengandung item konfigurasi "(...)", Anda dapat secara otomatis mengisi pengaturan berdasarkan teks kueri menggunakan metode "Kegagalan ()".
Textagol. Teks yang akan ditampilkan dalam header laporan (contoh: "sisa-sisa barang pada 01.01.2004", "Penjualan pada Januari 2004" ...).
Menampilkan headlauding
Memperpanjang
Artinya
Cetakan pembuangan
Ditampilkan
Properti ini menentukan apakah header laporan akan ditampilkan, masing-masing, topi meja, hasil umum, tabel tableval dan ruang bawah tanah.
Kompetisi pembuangan Properti ini bertanggung jawab atas output paksa atau melarang catatan terperinci.
Rekaman otomotif Jika properti "Footage Otomotif" dipasang, masing-masing catatan terperinci akan ditampilkan hanya jika berbeda dari grup.
Tersedia Berisi daftar bidang yang tersedia untuk ditambahkan ke pengelompokan, filter, bidang dan penyortiran yang dipilih.
Pengukur
Measuret Kolonels.
Berisi daftar grup, masing-masing, pada garis dan kolom.
Pilihan Berisi daftar filter yang ditentukan oleh Pembuat Laporan.
Dipilih berisi daftar indikator yang dipilih dan detail pengelompokan.
Memesan berisi daftar bidang penyortiran.
Parameter Berisi daftar parameter penumpukan (dinyatakan dalam teks permintaan Builder menggunakan simbol "&").
Hasil Berisi hasil dari eksekusi kueri Builder Laporan (tipe objek).

6. Pemrosesan dekripsi menggunakan pelapor Builder

Properti "Filling Software" berisi salah satu dari tiga opsi untuk mengisi dekripsi saat menampilkan:

Opsi 1: Jangan mengisi (tidak menggunakan decoding).

Opsi ke-2: Nilai pengelompokan (ketika menguraikan sel, nilai pengelompokan yang diturunkan di dalamnya akan terbuka).

Opsi 3: Dekripsi (decoding akan diisi dengan struktur yang berisi nilai semua kelompok). Dalam hal ini, Anda perlu menangani peristiwa tab "pemrosesan dekripsi", di mana Anda perlu menganalisis struktur yang ditransmisikan dan melakukan tindakan tertentu.

Poin penting adalah bahwa dalam versi ketiga tidak mungkin untuk memperpanjang ke dokumen tabular yang dihasilkan, karena maka tidak mungkin untuk memproses decoding, pemrosesan peristiwa terjadi dalam modul bentuk di mana bidang dokumen tabel berada. .

Jika dekripsi ketiga digunakan, Anda dapat menggunakan metode "Ringkasan Khusus ()", yang dirancang untuk melakukan dan menampilkan laporan dengan eksekusi decoding yang dilakukan oleh pengguna.

Builder laporan dapat digunakan yang sama atau baru. Saat mengatur dekripsi, semua filter Builder Laporan Kustom akan dihapus dan ditambahkan filter yang diinstal Pembuat sumber dari kueri plus filter dengan nilai-nilai pengelompokan dari dekripsi.

7. Pendaftaran laporan

Properti "Tata Letak" berisi tata letak yang digunakan saat menampilkan hasil dalam dokumen tabel. Jika tidak jelas, maka tata letak dihasilkan secara otomatis.

Sifat-sifat "Mackaging Countdown", "MockaxhastaTtAltik", "Rekaman Magnettional", "Mapparer", "Mock-Mackerers" dan "Layouts" berisi nama area dalam tata letak pembangun laporan atau tata letak individu yang digunakan dalam output, Masing-masing, header laporan, judul meja, catatan terperinci, hasil umum, tabel basement dan laporan basement ke dokumen tabel. Jika nama-nama area sesuai dengan nama-nama dalam tata letak pembangun laporan, sifat-sifat tidak diperlukan untuk diisi.

Properti "mock -ification" berisi tata letak yang digunakan untuk merancang tata letak pembangun laporan. Desain sel dalam tata letak desain akan diterapkan pada tata letak pembangun laporan.

Untuk mendapatkan salah satu opsi desain standar, Anda dapat menggunakan metode konteks global "Mendapatkan bacquing ()".

Jika properti "tata letak" pembangun laporan telah ditugaskan tata letak tetap, untuk desainnya diperlukan untuk menjalankan metode "Options ()".

Properti "rata-rata penanaman menentukan salah satu dari tiga opsi untuk output grup dengan garis.
Opsi 1: Bersama (dalam satu kolom).
Contoh:

Opsi ke-2: Secara terpisah (dalam kolom yang berbeda).
Contoh:


Contoh:

Sifat-sifat "Penempatan Pengukuran" menentukan salah satu dari tiga opsi untuk output grup berdasarkan kolom.
Opsi 1: Bersama (dalam satu baris).
Contoh:

Opsi ke-2: Secara terpisah (dalam baris yang berbeda).
Contoh:

Opsi 3: Secara terpisah dan hanya dalam hasil.
Contoh:

Properti "penempatan" mendefinisikan satu dari empat cara untuk menghasilkan garis.
Opsi 1: Dalam judul (hanya di atas grup selanjutnya dan catatan terperinci).

Opsi ke-2: Dalam judul dan ruang bawah tanah (di atas dan di bawah grup selanjutnya dan catatan terperinci).

Opsi 3: Di ruang bawah tanah (di bawah grup selanjutnya dan rekaman terperinci, hanya deskripsi pengelompokan yang ditampilkan di atas).

Opsi ke-4: Hanya di ruang bawah tanah (hanya di bawah untuk grup selanjutnya dan catatan terperinci).

Properti " Penempatan Promiscories."Menentukan salah satu dari empat cara untuk menghasilkan kolom.

Opsi 1: Dalam judul (hanya di sebelah kiri grup selanjutnya dan catatan terperinci).

Opsi ke-2: Di judul dan ruang bawah tanah (kiri dan kanan dari grup selanjutnya dan catatan terperinci).

Opsi ke-3: Di ruang bawah tanah (kelompok selanjutnya yang relevan dan catatan terperinci, hanya pengelompokan yang ditampilkan ke kiri).

Opsi ke-4: Hanya di ruang bawah tanah (hanya ke kanan kelompok selanjutnya dan catatan terperinci).

Properti " Plotterekvizitimenimennikov."Menentukan salah satu dari tiga opsi untuk output alat peraga pengelompokan berdasarkan garis.

Opsi 1: Bersama (dalam satu kolom tambahan).
Contoh:

Opsi 2: Bersama dengan pengukuran (dalam kolom dengan grup).
Contoh:

Opsi 3: Secara terpisah (dalam kolom tambahan yang berbeda).
Contoh:

Properti " Plotterekvizitimnimeniyovtsonki."Menentukan salah satu dari tiga opsi untuk output dari kelompok kelompok berdasarkan kolom.

Opsi 1: Bersama (dalam satu baris tambahan).
Contoh:

Opsi ke-2: Bersama dengan pengukuran (dalam baris dengan kelompok).
Contoh:

Opsi 3: Secara terpisah (dalam baris tambahan yang berbeda).
Contoh:

8. LAPORAN BUILDER LAPORAN

Metode "Run ()" mengeksekusi Permintaan Builder Laporan dan mengisi properti "Hasil".
Menggunakan metode "Operasi" () ", Anda bisa mendapatkan permintaan pembuat laporan yang dilakukan saat memanggil metode" Run () ".

Metode "output ()" menampilkan hasil dalam dokumen atau diagram tabel. Jika Anda tidak menentukan objek yang diperlukan output, dokumen tabel baru akan dibuat.

Contoh output ke dokumen tabel baru:
Builder. Acara ();

Contoh output ke dokumen tabular yang ada:
Builder. Melengkapi (elementforms. Resulttttotka);

Contoh output dalam bagan:
Builder. Acara (elementforms. HidesDiagram, "angka");

Jika Anda ingin menampilkan hasil pembangun laporan ke dalam tabel ringkasan atau diagram ringkasan, maka Anda tidak perlu menggunakan metode "output ()", dan mengisi properti tabel ringkasan atau bagan "sumber" konsolidasi. Sebagai sumber, Anda dapat menentukan hasil Builder Laporan atau pembangun laporan itu sendiri. Hasil pembangun laporan tidak memerlukan permintaan pemenuhan berlebihan, tetapi pembangun laporan memungkinkan Anda mengubah komposisi pengelompokan.

9. Menyimpan dan memulihkan pengaturan penumpukan

Metode "Opsional ()" memungkinkan Anda untuk mendapatkan pengaturan saat ini dari pembangun laporan dengan kemampuan untuk menentukan yang mana (contoh: hanya filter, filter dan sortir ...).

Metode "Pengaturan ()" memungkinkan Anda untuk mengunduh pengaturan pembangun laporan dengan kemampuan untuk menunjukkan yang mana (contoh: hanya filter, filter dan sortir ...).

10. Pengelompokan dan bidang pembangun laporan

Pengukuran Builder Laporan adalah pengelompokan pada string atau kolom.

Rincian utama grup ini

  • "Nama" (Identifier syarat) (Contoh: "Nomenclature", "Counterparty" ...),
  • "Lihat" (representasi pada output) (Contoh: "Dokumen Penjualan", "Unit Pengukuran" ...),
  • "Bergesper" (PATH ke bidang sampel kueri) (Contoh: "NomenLature", "Penjualan Dokumen. Organisasi" ...)

dan jika grup dibangun sesuai dengan direktori, maka

  • "Ketik versi" (salah satu opsi filter dengan nilai bidang: hierarki (elemen dan grup), hanya hierarki (hanya kelompok) atau elemen (hanya elemen)).

Selain itu, ada beberapa properti yang memungkinkan Anda untuk menetapkan sekelompok tata letak yang akan digunakan saat menampilkan dokumen tabel.

  • "Tata Letak" - nama area dalam tata letak pembangun laporan atau tata letak terpisah yang digunakan dalam pengelompokan.
  • MakeTeerRoche - Nama area dalam tata letak pembangun laporan atau tata letak terpisah yang digunakan dalam output hierarki pengelompokan.
  • "Mock-up" - nama area dalam tata letak penumpukan atau tata letak terpisah yang digunakan dalam pembukaan ruang bawah tanah pengelompokan.
  • "Mock-up-Merarki" - Nama area dalam tata letak penumpukan atau tata letak terpisah yang digunakan dalam hasil basement hierarki pengelompokan.
  • "Mockupsvilovelnaya" adalah array tata letak basement untuk berbagai tingkat pengelompokan.
  • "MeChups" adalah array tata letak untuk berbagai tingkat pengelompokan.

Bidang Builder Laporan adalah salah satu bidang yang dipilih. Rincian utama bidang ini

  • "Nama" (Pengidentifikasi bidang) (Contoh: "Kuantitas", "CodeenEnenclature", "Periode" ...),
  • "Lihat" (presentasi pada output) (contoh: "angka", "kode", "periode" ...) dan
  • "Bagian" (path ke bidang pengambilan sampel kueri) (contoh: "angka", "nomenklatur. Kode", "periode" ...).

Sejumlah tindakan dapat dilakukan dengan daftar grup atau bidang.

  • "Paste ()" - tambahkan grup / bidang ke posisi yang ditentukan.
  • "Tambahkan ()" - tambahkan grup / bidang ke akhir daftar.
  • "Indeks ()" - dapatkan pengelompokan / bidang indeks dalam daftar.
  • "Kuantitas ()" - Dapatkan jumlah pengelompokan / bidang dalam daftar.
  • "Temukan ()" - Temukan pengelompokan / bidang dalam daftar berdasarkan nama.
  • "Hapus ()" - bersihkan daftar grup / bidang.
  • "Dapatkan ()" - Dapatkan pengelompokan / bidang dengan indeks.
  • "Shift ()" - Pindahkan pengelompokan / bidang ke jumlah posisi yang ditentukan.
  • "Hapus ()" - Hapus pengelompokan / bidang dari daftar.

11. Bahasa Builder.

Builder laporan memiliki bahasanya sendiri. Ini adalah bahasa kueri yang biasa, dilengkapi dengan konstruksi "(...). Dengan desain ini, Anda dapat menolak metode "filletters ()" dan mengkonfigurasi pembangun laporan dalam teks permintaan.
Dengan cara ini, Anda dapat mengkonfigurasi elemen "Pilih", "Di mana", "Urutkan dengan", "Hasil oleh", dan juga membuat beberapa hal yang lebih menarik. Dalam hal ini, teks utama permintaan Builder akan menjadi pengaturan default, sedangkan desain (...) akan menjelaskan pengaturan yang tersedia.

Jika bidang pengambilan sampel memungkinkan Anda untuk mendapatkan sesuatu melalui titik, Anda dapat menentukan ". *" Setelah bidang, maka pengguna dapat memilih detail bidang. Misalnya, "nomenklatur. *" Memungkinkan Anda untuk memilah "nomenklatur. Kode" atau seleksi untuk "nomenklatur. Layanan". Tetapi "kuantitas. *" Tidak memiliki arti, karena bidang "angka" tidak memiliki detail, tetapi itu berarti cukup untuk menentukan "kuantitas".

Kolom yang ditentukan dalam desain "Pilih" Batasi daftar bidang yang tersedia untuk pengguna.
Kolom yang ditentukan dalam desain "Di mana" membatasi daftar bidang yang dapat digunakan dalam filter.
Bidang yang ditentukan dalam konstruksi "Sort by" membatasi daftar bidang untuk menyortir.
Bidang yang ditentukan dalam konstruksi "Hasil" Batasi daftar bidang untuk pengelompokan hasil.

Dan sekarang hal-hal yang menarik.

pertamaDalam teks utama permintaan, Anda juga dapat menggunakan struktur (...) dalam sumber. Misalnya, jika sebaliknya
| Adalah
| Mendaftar. Pasta. Persediaan. Suplemen. Lostats (& data perilaku)
titik
| Adalah
| Regisrting. PemeliharaanCompani. Sostatsacks ((& data))
dalam hal ini, Anda dapat mengatur filter dengan bidang "data".

Pada saat yang sama, dalam kasus pertama, perlu untuk mengatur parameter "kode data" dari pembangun laporan, dalam kasus kedua, ini tidak diperlukan, selain itu, jika pilihan pada kode data tidak akan ditentukan, maka parameter tabel ini "Daftar. tidak akan diperhitungkan.

KeduaSumber dalam teks kueri dapat dilabeli sebagai opsional dengan menempatkannya dalam desain "(...)." Misalnya, jika Anda menyusun teks kueri seperti itu

| Pilih


| Partitovarovarovakiomosostakiytaki.golismostat sebagai kuantitas
| (Pilih
| RESPERTOVOY COMPOSISICHETAKE. NOMELACLATASI SEBAGAI NOMENSLATION,
| Respectorovarovyovyostakiytaki.golismosta, sebagai kuantitas,
| Partitovovarovarovykayostakiytaki.golismostat sebagai kuantitas jumlah)
| Adalah
| Regisrting. Para pembuat pemegang
| (Koneksi kiri regisrting. Partyitovarovaniyovaniy.ostatsuchi sebagai partisi
| Menurut residen mengakuiiyostaki.
| Jumlah hasil (kuantitas), jumlah (jumlah yang sesuai)
| UMUM,
| Tata nama

bahwa koneksi kiri pada pihak-pihak akan dieksekusi hanya jika bidang "Mass Power" akan hadir dalam daftar bidang yang dipilih.

KetigaDalam parameter sumber, Anda dapat menentukan bahwa jika Anda menentukan filter, jika memungkinkan, oleskannya untuk tidak menghasilkan permintaan menggunakan elemen "Di mana", dan ke sumber itu sendiri. Dengan demikian, sebagai gantinya
| Regisrting. PenawaranKompani. Lostats ()

masuk akal untuk menulis

| Regisrting. PemeliharaanCompani. Resors (, (nomenklatur), lipat. *, Pesanan. *, Harga), karakteristik. *))

Baik, keempat, menurut saya yang paling lezat. Dalam hal indikasi dalam sumber parameter "periodisitas" (untuk tabel yang memungkinkan revolusi), itu juga dapat ditetapkan sebagai "(...)", dan, sebagai hasil dari manipulasi kecil dengan teks permintaan Builder, kita dapat menggunakan pengelompokan berdasarkan periode.

Contoh: | Pilih diizinkan | PartisiCompaniesostrosts. Namerenclature, | Jumlah (PartitovovarovaMomparotipe. Kesesuaian) sebagai biaya, | Jumlah (partitovatovarcompany lainnya. | Dari |. Regisrting. Partitovarovatovariovyovaniya. Rotasi (, (& frekuensi), | (nomenklatur. *)) Sebagai partisiovarovarovarpacking | Grup | PartisiCompaniesostrics. Namerenclature | | SUM Hasil (Biaya), Jumlah (Biaya) Perangkat Lunak | Umum, | Nomenklatur | | (Pilih | partitovarovazpajaparotes. Namerenclature. *, | Pendaftar. *, | Periode Pemula (Periode, Hari) Sebagai periode, | Periode Pemula (Periode, Minggu) Sebagai periode canggih, Periode Pemula (Periode, Dekade) sebagai periode, | bulan) sebagai periode periode, | dari titik awal (periode, seperempat) sebagai periodikval, | dari titik awal (periode, setengah tahun) sebagai periode persepsi, | dari periode di atas (periode , tahun) sebagai periode, | jumlah (partitovarovaRovazpai). Biaya) sebagai biaya) | | (Urutkan oleh | partisisCompaniesCompaniotes. Namerenclature. *, | Panitera. *, | Biaya) | | (Di mana | Komposisi Partitovarovatovyovaya. | (Hasil oleh | nomenklatur. *, | Pendaftar. *, | Startparioda (Periode, Hari) Sebagai periode periode, | Periode Pemula (Periode, Minggu) Sebagai periode canggih, | Startpariod (periode, dekade) sebagai a Periode pidato, | Periode Pemula (Periode, Bulan) Sebagai periode periode, | Startpariod (Periode, Quarter) sebagai periode Sportal, | Startpariod (Periode, Setengah Tahun) sebagai Periode Peripal, | Periode Pemula (Periode, Tahun ) sebagai periode)

Ada satu nuansa, sehingga pengelompokan pada periode bekerja, Anda harus menambahkan filter dengan parameter "periodik". Agar tidak melakukan ini secara manual, dimungkinkan untuk menambahkannya ke kenyamanan sebelum eksekusi pembangun laporan, dan setelah eksekusi, tidak mungkin untuk memahaminya, karena dari sudut pandang akal sehat tidak mungkin untuk memahami demikian filter. Itu dilakukan tentang begitu

Jika pembangun tersedia. TersediaPole. Tinta ("periodisitas")<> Tidak pasti maka frekuensi \u003d tidak terdefinisi; Jika pembangun membidik. Dimensi. Inite ("Periody")<> Tidak terdefinisi atau build-up. Dimension Colonki.night ("periody")<> Ini frekuensi tanpa batas \u003d 9; Berakhir; Jika Builder membidik. Dimensi .night ("periodicodia")<> Tidak terdefinisi atau menumpuk. Koloni peredupan. Init ("periodenodia")<> Ini tanpa batas frekuensi \u003d 8; Berakhir; Jika pembangun membidik. Dimensi. Inite ("Periode Sekolah")<> Tidak terdefinisi atau menumpuk. Incecolonki.night ("Periode Sekolah")<> Itu tidak pasti maka periodisitas \u003d 7; Berakhir; Jika pembangun membidik. Dimensi. Init ("Periode")<> Tidak terdefinisi atau penumpukan. Koloni peredupan. Init ("Periode")<> Tidak pasti maka frekuensi \u003d 6; Berakhir; Jika pembangun membidik. Dimensi .night ("legendecad")<> Tipe yang tidak ditentukan atau bangunan. Negara-negara peredupan. Inite ("periodekada")<> Tidak pasti maka frekuensi \u003d 5; Berakhir; Jika pembangun membidik. Dimensi .night ("Pemimpin")<> Undefined atau build-up. Dimensionalcolonki.night ("pemimpin")<> Tidak pasti maka frekuensi \u003d 4; Berakhir; Jika pembangun membidik. Dimensi. Initi ("perioden")<> Tipe yang tidak ditentukan atau bangunan. Izmyolonki.night ("Periode")<> Tidak pasti maka frekuensi \u003d 3; Berakhir; Jika pembangun membidik. Dimensi .night ("Panitera")<> Tidak terdefinisi atau membangun negara. Negara dimensi. Init ("Panitera")<> Undefined atau build-up. Polandia yang dipekerjakan. Inite ("registrar")<> Tidak pasti maka frekuensi \u003d 2; Berakhir; Jika frekuensi<> Ini tanpa batas jika fieldotboperiodicity \u003d konstruksi. Jenis. Titik. Tambahkan ("frekuensi"); Fieldotabritiodicity. Hubungan \u003d frekuensi; Fieldotabritiodicity. Gunakan \u003d kebenaran; Berakhir; Berakhir; Builder.fill (); Jika fieldotabritiodicity.<> Tidak pasti maka pembangun. Tipe. Terkait (Builder. Extborp.intex (fieldotaburiod)); Berakhir;

12. Pengaturan Builder Kustom

Untuk memberi pengguna kemampuan untuk mengubah daftar grup, filter, bidang yang dipilih atau menyortir, cukup untuk membuat promiscor laporan "Builder" dan menempatkan pada bentuk laporan ke bidang tabel dan tentukan Ini sebagai sumber data "Builder. Pengukur", "Builder. Dimensi", "Builder. Pacbor", "Builder. Pabrik" atau "Builder.

Selain itu, Anda juga dapat menentukan "Builder. Accualpool" dan, dengan demikian, pertama untuk melihat daftar bidang yang tersedia, dan, kedua, menggunakan menu konteks, tambahkan bidang ke grup atau filter yang dipilih.

Bahasa kueri dalam 1C 8 adalah analog yang disederhanakan dari "bahasa pemrograman terstruktur" yang dikenal luas (seperti disebut, SQL). Tetapi dalam 1C digunakan hanya untuk membaca data, model data data digunakan untuk mengubah data.

Perbedaan lain yang menarik adalah sintaks Rusia. Meskipun sebenarnya Anda dapat menggunakan struktur berbahasa Inggris.

Permintaan Sampel:

MEMILIH
Bank. Nama,
Bank.corc.
DARI
Direktori. Bank seperti bank

Permintaan ini akan memungkinkan kami untuk melihat kami informasi tentang nama dan akun koresponden dari semua bank yang ada dalam database.

Bahasa kueri - yang paling sederhana dan metode yang efektif Memperoleh informasi. Seperti yang dapat dilihat dari contoh di atas, dalam bahasa kueri perlu untuk mengajukan banding nama metadata (ini adalah daftar objek sistem dari mana konfigurasi terdiri, yaitu, buku referensi, dokumen, dll.) .

Deskripsi desain bahasa kueri

Struktur kueri

Untuk mendapatkan data, itu cukup untuk menggunakan konstruksi "Pilih" dan "dari" (dari). Permintaan paling sederhana sebagai berikut:

Pilih * dari buku referensi. Namerenclature

Di mana "*" berarti pemilihan semua bidang tabel, dan direktori. Namerenclature - nama tabel dalam database.

Pertimbangkan contoh yang lebih kompleks dan umum:

MEMILIH
<ИмяПоля1> SEBAGAI<ПредставлениеПоля1>,
Jumlah (<ИмяПоля2>) SEBAGAI<ПредставлениеПоля2>
DARI
<ИмяТаблицы1> SEBAGAI<ПредставлениеТаблицы1>
<ТипСоединения> SENYAWA<ИмяТаблицы2> SEBAGAI<ПредставлениеТаблицы2>
OLEH<УсловиеСоединениеТаблиц>

DIMANA
<УсловиеОтбораДанных>

Dikelompokkan oleh
<ИмяПоля1>

SORTIR DENGAN
<ИмяПоля1>

HASIL
<ИмяПоля2>
OLEH
<ИмяПоля1>

DI permintaan ini Kami memilih data bidang "Namepong1" dan "nama" dari nama "nametablitsa1" dan "nametablitsa" tabel, kami menetapkan bidang sinonim dengan bantuan operator "Bagaimana", sambungkan untuk kondisi tertentu "distribusi".

Dari data yang diperoleh, kami memilih hanya data yang sesuai dengan kondisi dari "Di mana" "kondisi". Dealer. Kami mengelompokkan permintaan melalui "Namepol" Field1 ", sambil meringkas" Nameepoil2 ". Buat hasilnya di atas "Namepoil" dan namanya bidang poli "

Tindakan terakhir, kami mengurutkan permintaan menggunakan desain "Sort by".

Struktur umum.

Pertimbangkan desain umum dari kueri 1C 8.2.

Pertaman.

Melalui operator ini Anda bisa mendapatkan nomor catatan pertama. Prosedur entri ditentukan oleh urutan dalam permintaan.

Pilih 100 pertama
Bank. Nama,
Bank. Kode seperti bik
DARI
Direktori. Bank seperti bank
SORTIR DENGAN
Bank. Nama

Permintaan akan diterima oleh 100 catatan pertama direktori "bank" yang dipesan secara alfabet.

Diizinkan

Desain ini relevan untuk bekerja dengan mekanisme. Inti dari mekanisme ini adalah untuk membatasi pengguna baca (dan tindakan lain) untuk entri spesifik di tabel database, dan bukan tabel secara keseluruhan.

Jika pengguna mencoba menggunakan permintaan untuk membaca catatan yang tidak dapat diakses kepadanya, itu akan menerima pesan kesalahan. Untuk menghindari ini, Anda harus menggunakan desain "diizinkan", I.E, permintaan hanya akan membaca catatan yang diizinkan untuk itu.

Pilih yang diizinkan
Transformasi tanggul. Tautan
DARI
Buku Pegangan. Transformasi yang dipersonalisasi

BERBAGAI

Penggunaan "berbeda" akan menghilangkan duplikat baris dalam hasil permintaan 1C. Duplikasi berarti kebetulan semua bidang kueri.

Pilih 100 pertama
Bank. Nama,
Bank. Kode seperti bik
DARI
Direktori. Bank seperti bank

Polipable

Desain ini sangat jarang digunakan untuk menggabungkan permintaan. Saat menggabungkan, mungkin perlu untuk menentukan di salah satu tabel tabel bersarang kosong. Untuk ini, operator "Polystablik" cocok

Contoh dari Quests 1C 8:

Pilih tautan. Jumlah, PROPUNGAT. (Mr., Tov, hitung)
Dari dokumen.sraskn.
Menggabungkan segalanya
Pilih Link. Pembuat, Komposisi. (Hadiah, Produk, Kuantitas)
Dari dokumen. Balas. Dokumen. Keberangkatan. Sabuk. *

Naull.

Fitur yang sangat berguna yang memungkinkan Anda menghindari banyak kesalahan. Ada iSNULL () memungkinkan Anda untuk mengganti nilai null ke yang diinginkan. Sangat sering digunakan dalam pemeriksaan akan kehadiran nilai di tabel terlampir, misalnya:

MEMILIH
Nomenclampspr. Tautan,
Ada iSNULL (respadtovar.golismosta, 0) sebagai jumlah
DARI


Dapat digunakan secara berbeda. Misalnya, jika untuk setiap baris tidak diketahui, di mana tabel ada nilai:

ISNull (rotafacture. Data, diubah ulang. Tanggal)

Seperti halnya operator yang memungkinkan kami untuk menetapkan nama (sinonim) tabel atau bidang. Contoh penggunaan yang telah kita lihat lebih tinggi.

Desain-desain ini sangat mirip - mereka memungkinkan Anda untuk mendapatkan representasi string dari nilai yang diinginkan. Satu-satunya perbedaan adalah bahwa representasi mengubah nilai apa pun menjadi tipe string, dan mewakili representasi hanya referensi. Merupakan representasi direkomendasikan untuk digunakan dalam permintaan sistem tata letak data untuk mengoptimalkan, kecuali, tentu saja, bidang data referensi tidak direncanakan untuk digunakan dalam pilihan.

MEMILIH
Presentasi (tautan), // string, misalnya "Laporan Muka No. 123 dari 10.10.2015
Presentasi (pengemasan) sebagai tagingtext, // string, "ya" atau "tidak"
Mewakili praseviller (berpasangan) sebagai taggingbulevo // boolevo, kebenaran atau salah
DARI
Dokumen. Laporan Avanpse

Mengekspresikan

Eksplisit memungkinkan Anda untuk mengonversi nilai bidang ke tipe data yang diinginkan. Anda dapat mengkonversi nilai pada tipe primitif dan tipe referensi.

Express untuk jenis referensi digunakan untuk membatasi tipe data yang diminta di bidang komponen, sering digunakan untuk mengoptimalkan operasi sistem. Contoh:

Express (tablet. Subonto1 sebagai buku referensi. Lampau). Videotheldlaging

Untuk jenis primitif, fungsi ini sering digunakan untuk membatasi jumlah karakter di bidang panjang tanpa batas (Anda tidak dapat membandingkan dengan bidang tersebut). Untuk menghindari kesalahan " Parameter tidak valid dalam operasi perbandingan. Tidak mungkin membandingkan bidang
Panjang tak terbatas dan bidang yang tidak kompatibel
"Perlu untuk mengekspresikan bidang-bidang seperti berikut:

Express (komentar sebagai string (150))

Pembagian

Dapatkan 267 tutorial video untuk 1C secara gratis:

Contoh penggunaan adalah nol dalam permintaan 1C:

PILIH DARI
SPR.
Koneksi kiri dari daftar. Townsneskladakh. Lostats sebagai respector
Menurut Nomenclampspr.Link \u003d Diimplementasikan KomersialScitennews. Namerenclature
Di mana bukan sisa rolleriness

Tipe data dalam kueri dapat didefinisikan sebagai berikut: Menggunakan fungsi tipe () dan ketik () atau menggunakan operator logis, tautannya. Kedua fungsi ini serupa.

Nilai yang telah ditentukan sebelumnya

Selain menggunakan parameter yang ditransmisikan dalam permintaan permintaan 1C, Anda dapat menggunakan nilai yang telah ditentukan atau. Misalnya, transfer, buku referensi yang telah ditentukan, rencana akun, dan sebagainya. Desain "Nilai ()" digunakan.

Contoh penggunaan:

Di mana nomenklatur. Vidnomenclature \u003d nilai (buku referensi. VidenencLlasture. Turnovar)

Di mana rekanan. Videopontact informasi \u003d nilai (daftar. Informasi vidacontactin. Hefon)

Di mana sisa-sisa akun. Pertimbangkan \u003d nilai (planchetov. Sumber. Prioritas)

Koneksi.

Senyawa adalah 4 jenis: Kiri, Baik, Penuh, internal.

Senyawa kiri dan kanan

Koneksi digunakan untuk mengkomunikasikan dua tabel pada kondisi tertentu. Fitur untuk. Koneksi Kiri Dengan itu kami mengambil tabel pertama yang ditentukan sepenuhnya dan mengikat tabel kedua dengan syarat. Bidang tabel kedua yang gagal mengikat di bawah kondisi yang diisi dengan nilai BATAL.

Sebagai contoh:

Ini akan mengembalikan seluruh tabel rekanan dan mengisi bidang "Bank" hanya di tempat-tempat di mana kondisinya akan diamati. "Rekanan. Nama \u003d Nama." Jika kondisinya tidak dihormati, bank akan dipasang di lapangan BATAL.

Koneksi kanan dalam bahasa 1c Benar-benar serupa Ke koneksi kiri, dengan pengecualian satu perbedaan - di Koneksi yang tepat Tabel "rumah" adalah yang kedua, dan bukan yang pertama.

Koneksi penuh

Koneksi penuh Ini berbeda dari kiri dan kanan dalam apa yang menampilkan semua catatan dari dua tabel, hanya menghubungkan mereka yang dapat terhubung dengan syarat.

Sebagai contoh:

DARI

Koneksi penuh
Direktori. Bank seperti bank

OLEH

Bahasa kueri akan mengembalikan kedua tabel sepenuhnya pada kondisi yang dieksekusi untuk menghubungkan catatan. Berbeda dengan senyawa kiri / kanan, NULL muncul di dua bidang.

Koneksi internal

Koneksi internal Ini berbeda dari kenyataan penuh bahwa itu hanya menampilkan catatan-catatan yang dapat terhubung sesuai dengan kondisi tertentu.

Sebagai contoh:

DARI
Direktori. Kontruksi sebagai klien

Koneksi internal
Direktori. Bank seperti bank

OLEH
Pelanggan. Nama \u003d bank. Nama

Permintaan ini hanya akan mengembalikan baris di mana bank dan rekanan akan menjadi nama yang sama.

Asosiasi

Desainnya menggabungkan dan menggabungkan semuanya menggabungkan dua hasil menjadi satu. Itu. Hasil eksekusi dua akan "bergabung" menjadi satu, umum.

Artinya, sistem bekerja dengan cara yang sama seperti biasa, hanya untuk tabel sementara.

Cara Menggunakan Indeks

Namun, suatu saat harus diperhitungkan. Membangun Indeks Tabel Sementara juga membutuhkan waktu untuk eksekusi. Oleh karena itu, disarankan untuk menggunakan desain "", hanya jika hanya diketahui bahwa tidak akan ada 1-2 entri di tabel sementara. Jika tidak, efeknya mungkin terbalik - kecepatan bidang yang diindeks tidak mengkompensasi waktu untuk membangun indeks.

MEMILIH
Coarsevaluse-Last.
Karsyvalyusresheviliy.kurs.
Tempatkan Kursyvalyut.
DARI
Mendaftar. CursiveValut. Soreasi (& periode,) sebagai karsyvalusrev
Indeks oleh
Mata uang
;
MEMILIH
HargaNacTore.nankLatura,
Harga penjualan. Harga,
Harga Harga.
Kursivalyut.kors.
DARI
Mendaftar. PriceInenclamp. Preventif (& periode,
Nomenklatur dalam (& Nomenclature) dan Typotage \u003d & Typotage) sebagai harga
Koneksi Kiri Kasar
Harga Price. Ivaluta \u003d Krasovalyut.valuta

Pengelompokan

Bahasa kueri 1C memungkinkan Anda untuk menggunakan fungsi agregat khusus saat mengelompokkan hasil kueri. Pengelompokan juga dapat digunakan tanpa fungsi agregat, untuk "menghilangkan" ganda.

Fungsi-fungsi berikut ada:

Jumlah, jumlah, jumlah yang berbeda, maksimum, minimum, rata-rata.

Contoh nomor 1:

MEMILIH
Melaksanakan layanan service.
Jumlah (pelaksana pabrik. Nomor) sebagai kuantitas,
Jumlah (implementasiShudarovarsa.summ) sebagai jumlah
DARI

Dikelompokkan oleh
Realizerovariovariovariovari.nanklatura.

Permintaan menerima semua baris dengan barang dan merangkum mereka dalam hal jumlah dan jumlah nomenklatur.

Contoh nomor 2.

MEMILIH
Bank. Kode,
Kuantitas (berbagai bank. Tautan) sebagai angka
DARI
Direktori. Bank seperti bank
Dikelompokkan oleh
Bank. Kode.

Contoh ini akan menampilkan daftar bisko dari direktori "bank" dan akan menunjukkan berapa banyak ganda untuk masing-masing.

HASIL

Hasil - cara untuk mendapatkan data dari sistem dengan struktur hierarkis. Untuk bidang final, fungsi agregat dapat digunakan untuk pengelompokan.

Salah satu cara paling populer untuk menggunakan hasil dalam praktek adalah partai penghapusan barang.

MEMILIH




DARI
Dokumen. Upennicovarovarovyovyovyvu.thovarah sebagai menerapkan jalan-jalan layanan
SORTIR DENGAN

HASIL
Jumlah (angka),
Jumlah (jumlah)
OLEH
Tata nama

Sebagai hasil dari permintaan, hierarkis berikut akan diperoleh:

Hasil Umum

Jika Anda perlu mendapatkan hasilnya pada semua "Hasil", gunakan operator "Umum".

MEMILIH
Realizerovarovariovariovariovariovari. Nomelaclature sebagai nomenklatur,
Layanan implementasi. Tautan sebagai dokumen,
Realizerovarovariovariovari. Angka sebagai kuantitas,
Realizerovarovariovarsa.summa sebagai jumlah
DARI
Dokumen. Upennicovarovarovyovyovyvu.thovarah sebagai menerapkan jalan-jalan layanan
SORTIR DENGAN
Implementasi Layanan. Tautan. Data.
HASIL
Jumlah (angka),
Jumlah (jumlah)
OLEH
UMUM,
Tata nama

Sebagai hasil dari eksekusi permintaan, kami memperoleh hasil berikut:

Di mana tingkat pengelompokan 1 adalah agregasi dari semua bidang yang diperlukan.

Memerintah

Urutkan operator digunakan untuk mengurutkan hasil kueri.

Menyortir tipe primitif (string, nomor, boolean) terjadi sesuai dengan aturan yang biasa. Untuk bidang jenis referensi, penyortiran terjadi pada representasi internal referensi (pengidentifikasi unik), dan bukan dengan kode atau dengan mengirimkan referensi.

MEMILIH

DARI
Direktori. Namerenclature sebagai nomenklatur
SORTIR DENGAN
Nama

Permintaan akan menampilkan daftar nama direktori nomenklatures yang diurutkan berdasarkan alfabet.

Auto-Order.

Hasil dari kueri tanpa pengurutan adalah set baris yang disajikan kacau. Pengembang platform 1C tidak menjamin output baris dalam urutan yang sama saat melakukan permintaan yang sama.

Jika Anda perlu menampilkan entri tabel dengan cara yang konstan, Anda perlu menggunakan desain "Otomatis".

MEMILIH
Nomenklatur. Nama sebagai nama
DARI
Direktori. Namerenclature sebagai nomenklatur
Auto-Order.

Tabel virtual

Tabel virtual dalam 1C adalah fitur unik dari bahasa kueri 1c, yang tidak dalam sintaksis lainnya. Tabel virtual adalah cara cepat untuk mendapatkan informasi terbaru dari register.

Untuk masing-masing jenis register, satu set tabel virtual yang mungkin berbeda tergantung pada pengaturan register.

  • potong dulu;
  • potong terakhir.
  • residu;
  • pergantian;
  • sisa-sisa dan omset.
  • gerakan dengan subkonto;
  • pergantian;
  • rf ct;
  • residu;
  • sisa-sisa dan revs.
  • subkonto.
  • mendasarkan;
  • data grafis;
  • periode aksi aktual.

Untuk pengembang solusi, data diambil dari tabel satu (virtual), tetapi pada kenyataannya platform 1C mengambil dari berbagai tabel, mengubahnya dalam penampilan yang diinginkan.

MEMILIH
Persediaan. Nonsenclature,
Psikostak.
Produk peralatan penyimpanan lainnya. Nama.
Barang-stroke.
Barang adalah konsol. Hak.
CompleteClaudocostakers.
DARI
Mendaftar. Townsneskladakh. Outowersobores sebagai barang dan cerita

Permintaan seperti itu memungkinkan Anda untuk dengan cepat mendapatkannya sejumlah besar data.

Parameter tabel virtual

Sangat aspek Penting Bekerja dengan tabel virtual - menggunakan parameter. Pengaturan Tabel Virtual adalah parameter khusus untuk pemilihan dan konfigurasi.

Untuk tabel seperti itu, dianggap salah penggunaan pilihan dalam desain "Di mana". Selain fakta bahwa permintaan menjadi tidak optimal, dimungkinkan untuk mendapatkan data yang salah.

Contoh menggunakan parameter tersebut:

Regisrting. Townsneskladachi. Mangkuk (& StarTeriod, & Endovering, Bulan, Playereringer Motion, NomenClature \u003d & diperlukan)

Algoritma kerja meja virtual

Misalnya, jenis tabel virtual yang paling banyak digunakan "residu" menyimpan data dua tabel fisik - residu dan gerakan.

Saat menggunakan tabel virtual, sistem telah melakukan manipulasi berikut:

  1. Kami mendapatkan yang terdekat dalam tanggal dan pengukuran nilai yang dihitung dalam tabel hasil.
  2. "Sesuaikan" jumlah dari tabel gerakan ke jumlah dari tabel hasil.


Tindakan sederhana semacam itu dapat secara signifikan meningkatkan kinerja sistem secara keseluruhan.

Menggunakan perancang permintaan

Perancang permintaan - Alat yang dibangun ke dalam sistem perusahaan 1C yang secara substansial memfasilitasi pengembangan kueri database.

Desainer permintaan memiliki cukup sederhana, intuitif antarmuka yang dapat dimengerti.. Namun demikian, pertimbangkan penerapan perancang permintaan lebih.

Peluncuran desainer teks kueri dibuat oleh menu konteks (tombol kanan mouse) di lokasi yang diinginkan dari kode program.

Desainer Desainer Desain 1C

Pertimbangkan setiap tab konstruktor lebih lanjut. Pengecualian - Builder Tab, Ini adalah topik untuk percakapan terpisah.

Tab tabel dan bidang

Tab ini menunjukkan sumber data dan bidang yang perlu ditampilkan dalam laporan. Intinya, itu dijelaskan untuk memilih desain .. keluar.

Sumber dapat berfungsi sebagai tabel fisik basis data, tabel virtual register, tabel sementara, permintaan yang diinvestasikan, dll.

Dalam menu konteks tabel virtual, Anda dapat mengatur parameter dari tabel virtual:

Tab komunikasi.

Tab berfungsi untuk menggambarkan senyawa dari beberapa tabel, menciptakan struktur dengan koneksi kata.

Kelompokkan Tab.

Pada tab ini, sistem ini memungkinkan Anda untuk mengelompokkan dan merangkum bidang hasil bidang yang diinginkan. Penggunaan struktur untuk grup perangkat lunak, jumlah, minimum, rata-rata, maksimum, jumlah, jumlah yang berbeda dijelaskan.

Kondisi Tab.

Bertanggung jawab atas segala sesuatu yang masuk dalam teks kueri setelah desain di mana, yaitu, untuk semua kondisi yang dikenakan pada data yang diperoleh.

Tab opsional

Tab. Selain itu Lebih penuh dengan segala macam parameter yang sangat penting. Pertimbangkan masing-masing properti.

Pengelompokan Catatan sampling:

  • N pertama. - Parameter kembali ke permintaan hanya n catatan (operator pertama)
  • Tanpa berulang - Memastikan keunikan catatan yang diterima (berbagai operator)
  • Diizinkan - Memungkinkan Anda memilih hanya catatan yang memungkinkan Anda memilih sistem sehubungan dengan (desain yang diizinkan)

Pengelompokan Tipe Permintaanmenentukan mana yang akan menjadi jenis permintaan: pengambilan sampel data, membuat tabel sementara atau penghancuran tabel waktu.

Di bawah ini ada bendera Memblokir data yang diperoleh untuk perubahan selanjutnya. Ini memungkinkan Anda untuk mengaktifkan kemampuan untuk mengatur pemblokiran data, yang memastikan keamanan data dari saat membaca untuk berubah (hanya relevan untuk Mode otomatis kunci, desain untuk perubahan).

Tab Asosiasi / Pseudonyms

Tab konstruktor kueri ini menetapkan kemungkinan menggabungkan berbagai tabel dan alias (desain seperti). Di sisi kiri menunjukkan tabel. Jika Anda mengatur bendera di depan tabel, desain akan digunakan untuk menggabungkan, jika tidak menggabungkan semua (perbedaan dalam dua cara). Di bagian kanan, korespondensi bidang dalam berbagai tabel ditentukan jika korespondensi tidak ditentukan, permintaan akan mengembalikan nol.

Pesanan Tab.

Ini menunjukkan urutan nilai penyortiran (streamline perangkat lunak) - turun (turun) atau naik (ABO).

Ada juga bendera yang menarik - Auto-Order. (Dalam kueri - pesanan otomatis). Secara default, sistem 1C menampilkan data dalam urutan "kacau". Jika Anda mengatur bendera ini, sistem akan mengurutkan data pada data internal.

Tab Paket Kueri

Pada tab Kueri Constructor, Anda dapat membuat yang baru, dan menggunakannya sebagai navigasi. Dalam kueri teks, paket dibagi dengan simbol ";" (dot bekas).

Tombol "Kueri" di Desainer Permintaan

Di sudut kiri atas desainer kueri ada tombol permintaan yang dapat Anda lihat teks kueri kapan saja:

Di jendela ini, Anda dapat membuat penyesuaian pada permintaan dan menjalankannya.


Menggunakan konsol permintaan

Konsol permintaan adalah cara sederhana dan nyaman untuk men-debug kueri kompleks dan informasi cepat. Pada artikel ini, saya akan mencoba menggambarkan cara menggunakan konsol permintaan, dan memberikan tautan untuk mengunduh konsol permintaan.

Pertimbangkan alat ini lebih banyak.

Unduh permintaan konsol 1c

Pertama-tama untuk mulai bekerja dengan konsol permintaan, perlu mengunduhnya dari suatu tempat. Pemrosesan biasanya dibagi menjadi dua jenis - pada bentuk yang dikelola dan biasa (atau, kadang-kadang, mereka disebut 8.1 dan 8.2 / 8.3).

Saya mencoba menggabungkan kedua jenis ini dalam satu pemrosesan - dalam mode operasi yang diinginkan, formulir yang diinginkan terbuka (dalam mode terkontrol, konsol hanya berfungsi dalam mode tebal).

Deskripsi konsol permintaan 1C

Mari kita mulai mempertimbangkan konsol kueri dengan deskripsi panel pemrosesan utama:

Di tutup konsol kueri, Anda dapat melihat waktu eksekusi dari kueri terakhir dengan akurasi milidetik, memungkinkan Anda untuk membandingkan desain yang berbeda dalam hal kinerja.

Kelompok tombol pertama di panel perintah bertanggung jawab untuk menghemat permintaan saat ini dalam file eksternal. Ini sangat nyaman, Anda selalu dapat kembali untuk menulis permintaan yang kompleks. Atau, misalnya, simpan daftar contoh khas dari desain tertentu.

Di sebelah kiri, di bidang "Permintaan", Anda dapat membuat permintaan baru dan menyimpannya dalam struktur pohon. Grup kedua tombol hanya bertanggung jawab untuk mengelola daftar permintaan. Menggunakannya, Anda dapat membuat, menyalin, menghapus, memindahkan permintaan.

  • Melakukanpenyelidikan - Eksekusi dan hasil sederhana
  • Jalankan Paket - Memungkinkan Anda melihat semua permintaan menengah dalam paket kueri.
  • Melihat tabel sementara - Memungkinkan Anda melihat hasil yang mengembalikan permintaan sementara di tabel

Parameter permintaan:

Biarkan pengaturan saat ini untuk permintaan.

Jendela parameter kueri menarik sebagai berikut:

  • Tombol Dapatkan dari permintaan Secara otomatis menemukan semua parameter dalam kueri untuk kenyamanan pengembang.
  • Bendera Parameter seragam untuk semua permintaan - Saat menginstal, pemrosesannya tidak menghapus parameter saat bergerak dari permintaan ke permintaan daftar Total Permintaan.

Tetapkan daftar nilai Ini sangat sederhana, tepat ketika Anda memilih nilai parameter, klik pada tombol pembersih (silang), sistem akan mengusulkan untuk memilih tipe data di mana Anda perlu memilih "Daftar Nilai":

Juga dalam. panel atas Ada tombol untuk memanggil pengaturan konsol kueri:

Di sini Anda dapat menentukan parameter Autoscl dari permintaan dan parameter eksekusi.

Teks kueri dimasukkan dalam bidang kueri konsol. Anda dapat menjadikannya satu set tes kueri yang sederhana atau memanggil alat khusus - desainer kueri.

Konstruktor kueri 1C 8 disebut dari menu konteks (tombol kanan mouse) ketika Anda mengklik bidang input:

Juga di menu ini ada seperti itu fungsi yang bergunaSuka membersihkan atau menambahkan simbol transfer string ("|") atau menerima kode permintaan di sini dalam bentuk yang nyaman:

Permintaan \u003d permintaan baru;
Permintaan.text \u003d "
| Pilih
| Mata uang. Tautan
| Adalah
| Buku referensi sebagai mata uang ";
Pasokan hasil \u003d kueri. Isi ();

Di bidang bawah, bidang konsol kueri menampilkan bidang hasil kueri, yang diproses ini dibuat:



Juga, konsol kueri selain daftar dapat menampilkan data dalam bentuk pohon - untuk kueri yang berisi hasil.

Optimalisasi permintaan

Satu dari poin yang paling penting Dalam meningkatkan kinerja 1C Enterprise 8.3 adalah optimasipermintaan. Item ini juga sangat penting saat pengiriman Sertifikasi. . Di bawah ini akan dibahas tentang penyebab khas dari operasi permintaan dan metode yang tidak optimal dari optimasi.

Pilihan dalam tabel virtual menggunakan desain di mana

Filter pada detail tabel virtual hanya diperlukan melalui parameter WT. Dalam hal apa pun, untuk pemilihan dalam tabel virtual, tidak mungkin untuk menggunakan desain di mana, itu adalah kesalahan kotor dalam hal optimasi. Dalam hal pemilihan dengan bantuan di mana sebenarnya sistem akan menerima semua catatan dan hanya mengambil yang diperlukan.

BAIK:

MEMILIH

DARI
Regisrting. Visoimorachnyseponentamiorganizations. Lostats (
,
Organisasi \u003d & organisasi
Dan fisik \u003d & fisik) sebagai pemukiman timbal baliksependamatisasi

SALAH:

MEMILIH
CommanderTSSDeponeentmioganizationsopatki.summaotatik.
DARI
Regisrting. Visoroicetssefonentamiorganizations. Lostats (,) sebagai pemukiman timbal balikSefonoriorganisasi
DIMANA
CommultractersdeponoMorganizationsopatsika. Organisasi \u003d & Organisasi
Dan mutualss.fizliso \u003d & Physico

Memperoleh nilai bidang jenis komposit melalui titik

Setelah menerima data tipe integral dalam permintaan melalui titik, sistem menghubungkan koneksi kiri persis seperti banyak tabel karena banyak jenis dimungkinkan dalam komposisi tipe komposit.

Misalnya, sangat tidak diinginkan untuk mengoptimalkan bidang entri registri. Panitera memiliki tipe data komposit, di antaranya semua jenis dokumen yang mungkin dapat menulis data ke dalam register.

SALAH:

MEMILIH
Atur catatan. Reseksi. Data,
Set rekaman. Kebersamaan
DARI
Regisrting. Menujuorganisasi sebagai serangkaian rekaman

Mereka, pada kenyataannya, permintaan seperti itu tidak akan muncul pada tabel yang sama, tetapi ke 22 tabel basis data (tipe registrar ini memiliki 21).

BAIK:

MEMILIH
Pilihan
Ketika BarangSrg.Register Link Dokumen. AtasalisasiLayanan
Kemudian untuk mengungkapkan (produktivitas .Registrator sebagai dokumen. Realisasi layanan).
Ketika produk produkRegistrator Document. Tidak dumtive
Kemudian untuk mengungkapkan (produktivitas .Registrator sebagai dokumen. Tersedia. Data.
Akhiri sebagai tanggal
Pendingin produk.
DARI
Regisrting. Startsorganisasi sebagai barang produk

Entah opsi kedua adalah menambahkan informasi tersebut kepada alat peraga, misalnya, dalam kasus kami - tambah tanggal.

BAIK:

MEMILIH
Produk. Data,
Produk. Kebangsaan
DARI
Regisrementasi. Tyovarganizations tentang bagaimana produkorisasi

Subqueries dalam kondisi koneksi

Untuk mengoptimalkan, tidak dapat diterima untuk menggunakan subqueries di bawah kondisi koneksi, secara signifikan memperlambat operasi permintaan. Dianjurkan untuk menggunakan W dalam kasus-kasus seperti itu. Untuk terhubung, Anda hanya perlu menggunakan objek metadata dan W, pra-indeksnya melalui bidang koneksi.

SALAH:

Pilih ...

Koneksi kiri (
Pilih dari mendaftar. Batas
Di mana ...
Dikelompokkan oleh ...
) OLEH …

BAIK:

Pilih ...
Tempatkan batas
Dari mendaftar. Batas
Di mana ...
Dikelompokkan oleh ...
Indeks oleh ...;

Pilih ...
Dari dokumen. Upoalisasi
Batas koneksi kiri
OLEH …;

Koneksi catatan dengan tabel virtual

Ada situasi di mana ketika menghubungkan meja virtual dengan sistem lain tidak optimal. Dalam hal ini, untuk mengoptimalkan pengoperasian kueri, Anda dapat mencoba menempatkan tabel virtual secara sementara, tanpa lupa untuk mengindeks bidang yang dapat dihubungkan dalam permintaan tabel waktu. Hal ini disebabkan oleh fakta bahwa W sering kali terkandung dalam beberapa tabel DBMS fisik, sebagai hasilnya, subquery dikompilasi untuk sampel mereka, dan masalahnya diperoleh mirip dengan paragraf sebelumnya.

Penggunaan pilihan yang tidak diindeks

Salah satu kesalahan paling umum dalam menyusun permintaan adalah penggunaan kondisi untuk bidang yang tidak diindeks, ini bertentangan aturan untuk mengoptimalkan permintaan. DBMS tidak dapat menjalankan permintaan itu optimal jika permintaan ditumpangkan pada bidang yang tidak diindeks. Jika tabel sementara diambil - juga perlu untuk mengindeks bidang koneksi.

Pastikan untuk memiliki indeks yang cocok untuk setiap kondisi. Cocok adalah indeks yang memenuhi persyaratan berikut:

  1. Indeks berisi semua bidang yang tercantum dalam kondisi tersebut.
  2. Bidang-bidang ini berada di awal indeks.
  3. Pilihan-pilihan ini berturut-turut, yaitu nilai-nilai yang tidak berpartisipasi dalam kondisi permintaan tidak "terjepit" di antara mereka.

Jika DBMS tidak membuat indeks yang tepat, tabel akan dipindai sepenuhnya - itu akan sangat mempengaruhi kinerja dan dapat menyebabkan pemblokiran terus-menerus dari seluruh set catatan.

Menggunakan kondisi logis atau di bawah

Itu saja, dalam artikel ini, yayasan tersebut tertutupi aspek-aspek mengoptimalkan permintaan yang harus diketahui oleh masing-masing ahli 1C.

Pengembangan kursus video gratis yang sangat berguna dan optimasi permintaan, direkomendasikan secara kategoris Pemula dan tidak hanya!

Ketika mengembangkan laporan, kadang-kadang ada kebutuhan untuk menampilkan laporan bahwa data yang tidak dapat diperoleh dengan menggunakan bahasa kueri. Situasi seperti itu dapat terjadi, misalnya, jika algoritma kompleks tertentu digunakan untuk menghitung data, atau data, bukan dari basis informasi, misalnya dari file eksternal.. Builder laporan menyediakan kemampuan untuk menampilkan laporan dari sumber data yang sewenang-wenang.
Sebagai sumber data, untuk output laporan dapat digunakan:

  • Penilaian,
  • Rekaman hasil
  • Oblast Tribly,
  • Datar
  • Daftar Pemblokiran,
  • Mendaftar
  • DaftarkanBukelLinizable,
  • RegisterRechtanBorisy.
Agar Builder Laporan menampilkan laporan untuk sumber data sewenang-wenang, cukup untuk menetapkan deskripsi sumber data ke properti sumber sumber. Sumber pembangun laporan sumber dapat berisi jenis deskripsi gambar. Deskripsi deskripsi berisi sumber data itu sendiri, dan juga berisi deskripsi kolom sumber data. Setiap deskripsi kolom sumber data berisi:
  • Nama - berisi nama kolom di sumber data,
  • Palcane - berisi deskripsi ketergantungan speaker satu sama lain. Kolom yang jalurnya ke data diperoleh melalui titik dari jalur ke data bidang lain, dianggap perincian kolom lain. Jika bidang berisi kata melalui titik, bidang ini dianggap sebagai representasi untuk kolom, dari jalur yang diperoleh tampilan. Contoh. Jika kolom "nomenklatur" memiliki jalur ke data "NomenLature", dan kolom kode "kode" memiliki jalur ke data "nomenklatur", maka kolom ini akan dianggap sebagai profilque kolom "nomenclature". Kolom dengan jalur ke "nomenklatur" data akan dianggap sebagai representasi untuk kolom "nomenclature",
  • Bidang adalah tanda bahwa kolom ini dapat digunakan sebagai bidang laporan,
  • Pesanan adalah tanda bahwa dalam kolom ini dimungkinkan untuk memesan
  • Seleksi adalah tanda bahwa dimungkinkan untuk memaksakan pada kolom ini,
  • Pengukuran adalah tanda bahwa kolom ini dapat digunakan sebagai laporan pelaporan,
  • Hasilnya adalah string yang berisi ekspresi untuk menghitung hasilnya. Untuk pembangun laporan, ekspresi string ini sesuai dengan ekspresi untuk menghitung hasil yang digunakan dalam bahasa kueri,
Ketika sumber data diatur ke deskripsi, deskripsi kolom dibuat dan diisi secara otomatis.

Deskripsi deskripsi sumber memiliki konstruktor, karena parameter yang dapat ditransfer ke sumber data tempat deskripsi dibuat, sedangkan properti sumber akan diisi dengan sumber data yang ditransmisikan, deskripsi kolom akan diisi. dengan speaker dari sumber data.

Contoh menginstal sumber data untuk membangun laporan:

Build-ups.incumber \u003d deskripsi baru dari sumber (tabel konvensi);

Bekerja lebih lanjut dengan pembangun laporan tidak berbeda dari bekerja dengan pembangun laporan dalam mode kueri: Pembuat laporan menyediakan fungsionalitas penuh, dengan pengecualian penarikan hasil hierarkis. Selain itu, ketika bekerja dengan sumber data sewenang-wenang, pembangun laporan tidak dapat menerima permintaan yang akan digunakan untuk mendapatkan data dari basis informasi.

Pengoperasian pembangun kueri dengan sumber data sewenang-wenang identik dengan bekerja dengan sumber whitrer dari pembangun laporan.

Pemrograman 1C hanya terdiri dari program penulisan. 1C adalah ingot tindakan pengguna dan data yang berfungsi.

Data disimpan dalam database. Query 1C adalah cara untuk mendapatkan data dari database untuk menampilkan pengguna dalam formulir atau memprosesnya.

Bagian fundamental dari laporan adalah permintaan 1C. Dalam kasus laporan CC, ini adalah sebagian besar laporan.

Duduk Mendesah. Tenang. Sekarang saya akan memberi tahu Anda berita.

Untuk memprogram dalam 1C tidak cukup untuk mengetahui bahasa pemrograman 1C. Anda perlu tahu query 1c.

Bahasa kueri 1C adalah bahasa yang sepenuhnya terpisah yang memungkinkan Anda menentukan data mana yang perlu kita dapatkan dari database.

Ini juga bilingual - yaitu, Anda dapat menulis dalam bahasa Rusia atau dalam bahasa Inggris. Ini sangat mirip dengan bahasa sQL Queries. Dan mereka yang tahu ini - Anda dapat bersantai.

Bagaimana Permintaan 1C

Ketika pengguna memulai 1C dalam mode perusahaan - tidak ada data gram di klien yang sedang berjalan. Oleh karena itu, ketika Anda perlu membuka direktori - 1C meminta data dari database, yaitu, membuat permintaan 1C.

Pertanyaan 1C adalah:

  • Permintaan otomatis 1C.
    Formulir secara otomatis oleh sistem. Anda telah membuat formulir daftar dokumen. Menambahkan kolom. Ini berarti bahwa ketika Anda membuka formulir ini dalam mode perusahaan akan ada permintaan dan data pada kolom ini akan diminta.
  • Permintaan semi-otomatis 1C.
    Ada banyak metode (fungsi) dalam bahasa 1C saat mengakses dimana basis data diminta. Misalnya. Objek saraf ()
  • Permintaan manual 1C (ditulis oleh programmer khusus sebagai permintaan)
    Anda dapat menulis permintaan untuk 1C sendiri dalam kode dan menjalankannya.

Membuat dan mengeksekusi permintaan 1C

Kueri 1C adalah teks aktual permintaan untuk permintaan 1C.
Teks dapat ditulis dengan pegangan. Yaitu, mengambil dan menulis (jika Anda tahu bahasa ini).

Sejak 1C mempromosikan konsep pemrograman visual, di mana banyak atau hampir semuanya dapat dilakukan tanpa menulis kode dengan pegangan - ada objek desainer objek khusus yang memungkinkan Anda untuk menggambar teks kueri tanpa mengetahui bahasa kueri. Namun, mukjizat tidak terjadi - untuk ini Anda perlu tahu cara bekerja dengan desainer.

Setelah teks kueri 1C siap - itu harus dieksekusi. Untuk ini, ada objek dalam kueri kode 1C (). Berikut ini adalah contoh:

Permintaan \u003d kueri baru ();
Permintaan.text \u003d "Pilih
| Nomenklatur. Tautan
| Adalah
| Direktori. Namerenclature sebagai nomenklatur
| Di mana
| Nomenklatur. Layanan ";
Sampling \u003d kueri. Isi (). Pilih ();

Laporan (sampel. Tautan);
Endcycle;

Seperti yang Anda lihat dalam contoh - setelah menyelesaikan permintaan 1C, hasilnya datang kepada kami dan kami harus memprosesnya. Hasilnya adalah satu atau lebih garis tabel (dalam spesial).

Hasilnya dapat diturunkan ke tabel biasa:
Seleksi \u003d Kueri. Isi (). Bongkar (); // hasil - tabel nilai

Atau hanya berkeliling garis.
Sampling \u003d kueri. Isi (). Pilih ();
Sedangkan sampel. Berikut () siklus
// sesuatu yang kita lakukan dengan hasil permintaan
Endcycle;

Bekerja dengan permintaan 1C

Prinsip dasar kueri 1c

Prinsip dasar untuk membangun permintaan 1C -
Pilih poin daftar dari judul tempat kondisinya

Contoh membangun permintaan seperti itu 1C:

MEMILIH
// Daftar bidang yang perlu dipilih
Tautan,
Nama,
Kode
DARI
// nama tabel dari tempat Anda memilih data
// Daftar tabel - Ini adalah daftar objek di jendela Configurator
Direktori. Namerenclature.
DIMANA
// Tunjukkan seleksi
Viddovar \u003d & layanan // pilihan dengan nilai eksternal
Atau layanan // layanan "alat peraga tipe booleo, seleksi berdasarkan nilai kebenaran
SORTIR DENGAN
//Penyortiran
Nama

Daftar Tabel 1s

Nama tabel yang Anda lihat di jendela Konfigurator. Hanya perlu untuk menulis "buku pegangan" alih-alih "buku referensi", misalnya, "direktori. NamEnclature" atau "dokumen. Layanan realisasi" atau "Daftar". "

Untuk register ada tabel tambahan (virtual), yang memungkinkan Anda untuk mendapatkan tokoh-tokoh terakhir.

Mendaftar. Eyseregister. Preventif (& Tanggal) - Minta 1C dari Daftar Informasi, jika berkala, untuk tanggal tertentu

Daftar. Eyeregister. Lostats (& date) - Minta 1C dari register residual untuk tanggal tertentu

Mendaftar. Equaregistribution (& Data Point, & Data Data) - Minta 1C dari Revolusi Register untuk periode dari tanggal awal pada tanggal akhir.

Prinsip-prinsip tambahan

Ketika kami meminta daftar beberapa data - prinsip dasar bekerja. Tetapi kami juga dapat meminta angka dan permintaan kami dapat menghitungnya (dilipat misalnya).

MEMILIH
// Nomor (Nama) - Mempertimbangkan nomor
// bidang sebagai masalah - mengganti nama bidang
Kuantitas (referensi) sebagai jumlah
DARI

DIMANA
Dilakukan

Permintaan 1C ini akan mengembalikan jumlah total dokumen. Namun, di setiap dokumen ada bidang organisasi. Misalkan kami ingin menghitung jumlah dokumen untuk setiap organisasi dengan meminta 1C.

MEMILIH
// hanya bidang dokumen
Organisasi,
// Kami mempertimbangkan kuantitas
Kuantitas (referensi) seperti yang dikutipan-organisasi
DARI
Dokumen. Realisasi
DIMANA
Dilakukan
Dikelompokkan oleh

Organisasi

Permintaan ini akan mengembalikan kepada kami jumlah dokumen untuk setiap organisasi (juga mengatakan "dalam konteks organisasi").

Hitung tambahan menggunakan 1C Permintaan jumlah dokumen ini:

MEMILIH
// hanya bidang dokumen
Organisasi,
// Kami mempertimbangkan kuantitas

// Kami mempertimbangkan jumlahnya

DARI
Dokumen. Realisasi
DIMANA
Dilakukan
Dikelompokkan oleh
// Anda harus menggunakan jika ada fungsi penghitungan () dalam daftar bidang () dan pada saat yang sama satu atau beberapa bidang - maka Anda harus dikelompokkan sesuai dengan bidang ini
Organisasi

Permintaan ini 1C juga akan mengembalikan jumlah dokumen.

MEMILIH
// hanya bidang dokumen
Organisasi,
// Kami mempertimbangkan kuantitas
Kuantitas (referensi) sebagai kuantitas airbanisasi,
// Kami mempertimbangkan jumlahnya
Jumlah (summifumen) sebagai jumlah
DARI
Dokumen. Realisasi
DIMANA
Dilakukan
Dikelompokkan oleh
// Anda harus menggunakan jika ada fungsi penghitungan () dalam daftar bidang () dan pada saat yang sama satu atau beberapa bidang - maka Anda harus dikelompokkan sesuai dengan bidang ini
Organisasi
Hasil dengan umum.

Bahasa kueri 1C sangat luas dan rumit dan kami tidak akan mempertimbangkan dalam satu pelajaran semua kemampuannya - baca pelajaran kami berikutnya.

Singkatnya O. fitur tambahan Bahasa kueri 1c:

  • Koneksi data dari beberapa tabel
  • Permintaan yang diinvestasikan
  • Permintaan batch
  • Membuat tabel virtual Anda sendiri
  • Permintaan dari Daftar Nilai
  • Menggunakan fungsi bawaan untuk mendapatkan nilai dan memanipulasi nilai.

1C Permintaan Perancang

Agar tidak menulis teks kueri dengan tangan - ada perancang permintaan 1C. Klik kanan di mana saja di modul dan pilih konstruktor kueri 1C.

Pilih tabel yang diinginkan di sebelah kiri di konstruktor kueri ke kiri dan seret ke kanan.

Pilih bidang yang diinginkan di desainer kueri 1C dan seret kanan. Jika Anda ingin tidak memilih bidang, tetapi untuk menerapkan fungsi penjumlahan untuk itu - setelah menyeret, klik pada bidang dua kali dengan mouse. Pada tab pengelompokan, setelah itu Anda perlu memilih (seret) untuk mengelompokkan bidang yang diinginkan.

Pada tab Kondisi pada desainer permintaan 1C, Anda dapat memilih pilihan yang diinginkan dengan cara yang sama (menyeret bidang yang dengannya Anda akan membuat pilihan). Jangan lupa untuk memilih kondisi yang setia.

Pada tab Pesanan - menentukan penyortiran. Pada hasil tab - penjumlahan hasil.

Dengan desainer permintaan 1C, Anda dapat mengeksplorasi permintaan yang ada. Untuk melakukan ini, klik kanan pada teks dari kueri yang ada dan juga pilih konstruktor kueri 1C dan permintaan akan dibuka pada perancang permintaan 1C.