Bidang kalkulasi SKD. Fungsi bahasa ekspresi sistem komposisi data. Bahasa Ekspresi Sistem Komposisi Data

Halo, pembaca yang budiman! Kita mempunyai pelajaran lain tentang dasar-dasar sistem tata letak. Di dalamnya Anda mengenal fungsi bahasa ekspresi SKD, melihat fitur sistem tata letak, dan juga memahami pengaturan dasar bidang tata letak. Sekarang kita akan melihat materi baru. Ayo pergi!

Pengaturan tambahan untuk bidang ACS.

Kolom "Jenis Nilai" Memungkinkan Anda menentukan tipe data untuk bidang tata letak. Mengapa menentukan jenis, misalnya, untuk bidang “Tata Nama”, jika Anda sudah mengetahui jenisnya? Hal ini diperlukan jika bidang tata letak bertipe komposit. Anda dapat memilih jenis tertentu, kemudian ketika memilih berdasarkan bidang ini, nilainya akan dipilih dari jenis ini.

Kolom "Nilai yang tersedia" memungkinkan Anda menentukan nilai yang tersedia untuk dipilih dan membatasi pilihan pengguna hingga batas tertentu.

Kolom "Desain" memungkinkan Anda menentukan desain bidang tata letak tanpa menggunakan tata letak. Anda dapat menentukan warna font, warna bingkai, orientasi teks, dll.

Kolom "Opsi Pengeditan" Memungkinkan Anda menentukan cara mengedit bidang tata letak. Misalnya, Anda dapat menentukan pilihan cepat elemen dari daftar dalam pilihan. Secara default, bidang tata letak mewarisi semua opsi pengeditan dari objek metadata.

Bidang terhitung

Pada tab “Bidang Terhitung” pada komposisi data, Anda dapat membuat bidang terhitung sendiri.

Mengapa Anda memerlukan bidang terhitung ketika Anda bisa membuatnya di tingkat kueri? Tidak semua bidang dapat dijelaskan menggunakan kueri. Jika Anda perlu membuat bidang kompleks dari kumpulan data yang berbeda, misalnya, kueri dan objek, maka Anda tidak dapat melakukannya tanpa bidang terhitung. Anda tidak dapat menambahkan bidang komposisi data jika sumber datanya adalah kueri dan isi otomatis diaktifkan, namun dengan menggunakan bidang terhitung, Anda dapat menambahkan bidang sebanyak yang Anda suka.

Di kolom “Ekspresi” pada bidang terhitung, Anda perlu menulis ekspresi arbitrer yang menggunakan bidang komposisi data, mengakses jalurnya (kolom “Jalur” pada tab “Kumpulan Data”). Anda dapat menggunakan fungsi transformasi matematika atau mengakses fungsi modul umum. Misalnya, tulis di kolom “Jalur Data” nama kolom kalkulasi “Penyimpangan”, dan di kolom “Ekspresi” berikut ini.

Mengingat rilis 8.2.14 yang akan datang, saya akan mencoba menjelaskan beberapa fungsi baru dari sistem komposisi data.

Buka diagram tata letak data, sebaiknya di laporan eksternal, untuk mempermudah pengeditan.

Kami menambahkan sekumpulan data dari tipe kueri dan menulis, baik secara manual atau menggunakan perancang kueri, kueri sederhana:

1. Siapkan permintaan di sistem kontrol akses.

2. Siapkan kolom kalkulasi di sistem kontrol akses

3. Konfigurasikan tata letak data pada tab pengaturan

4. Luncurkan 1C Enterprise 8.2.14. Buka laporannya. Kami membentuk, kami menerima.

Deskripsi fungsi baru itu sendiri:

1. Tanggal Saat Ini()

Mengembalikan tanggal sistem. Saat membuat tata letak tata letak, semua ekspresi yang ada dalam tata letak menggantikan fungsi CurrentDate() dengan nilai tanggal saat ini.

2. EKSPRESI KOMPUTASI()

Sintaksis:

HitungEkspresi(,)

Keterangan:

Fungsi ini dirancang untuk mengevaluasi ekspresi dalam konteks pengelompokan tertentu.

Fungsi ini memperhitungkan pemilihan pengelompokan, tetapi tidak memperhitungkan pemilihan hierarki.

Fungsi ini tidak dapat diterapkan pada pengelompokan dalam pemilihan grup pengelompokan tersebut. Misalnya, dalam memilih pengelompokan Nomenklatur, Anda tidak dapat menggunakan ekspresi tersebut HitungEkspresi("Jumlah(JumlahPerputaran)", "TotalTotal") > 1000. Namun ungkapan seperti itu dapat digunakan dalam seleksi hierarki.

Jika record akhir mendahului record awal, maka dianggap tidak ada record untuk menghitung data detail dan menghitung fungsi agregat.

Saat menghitung ekspresi interval untuk total keseluruhan (parameter Pengelompokan diatur ke GrandTotal), diasumsikan bahwa tidak ada catatan untuk menghitung data terperinci dan menghitung fungsi agregat.

Tautan tata letak saat membuat ekspresi fungsi Hitung Ekspresi, jika ekspresi pengurutan berisi bidang yang tidak dapat digunakan dalam pengelompokan, gantikan fungsinya Hitung Ekspresi pada BATAL.

Pilihan

Jenis: Garis. Ekspresi yang akan dievaluasi.

Jenis: Garis. Berisi nama pengelompokan dalam konteks ekspresi yang akan dievaluasi. Jika string kosong digunakan sebagai nama pengelompokan, penghitungan akan dilakukan dalam konteks pengelompokan saat ini. Jika string GeneralTotal digunakan sebagai nama pengelompokan, penghitungan akan dilakukan dalam konteks total keseluruhan. Jika tidak, penghitungan akan dilakukan dalam konteks pengelompokan induk dengan nama yang sama.

Misalnya:

Jumlah(Penjualan.JumlahPerputaran)/Hitung("Jumlah(Penjualan.JumlahPerputaran)", "Total")

DI DALAM dalam contoh ini hasilnya adalah rasio jumlah berdasarkan bidang Penjualan.JumlahPerputaran mengelompokkan catatan ke dalam jumlah bidang yang sama di seluruh tata letak;

Jenis: Garis. Parameternya dapat mengambil nilai berikut:

· Jumlah keseluruhan— ekspresi akan dihitung untuk semua rekaman pengelompokan.

· Hirarki— ekspresi akan dievaluasi untuk catatan hierarki induk, jika ada, dan untuk seluruh pengelompokan, jika tidak ada catatan hierarki induk.

· Pengelompokan— ekspresi akan dievaluasi untuk rekaman pengelompokan grup saat ini.

· PengelompokanNonResource— saat menghitung fungsi untuk rekaman grup berdasarkan sumber daya, ekspresi akan dihitung untuk rekaman grup pertama dari pengelompokan asli.

Saat menghitung suatu fungsi HitungEkspresi() dengan makna PengelompokanNonResource untuk rekaman grup yang tidak dikelompokkan berdasarkan sumber daya, fungsinya dihitung dengan cara yang sama seperti dihitung jika nilai parameter sama dengan nilai Pengelompokan.

Pembuat tata letak komposisi data, saat membuat tata letak komposisi data saat mengeluarkan bidang sumber daya yang digunakan untuk mengelompokkan tata letak, menempatkan ekspresi dalam tata letak yang dihitung menggunakan fungsi HitungEkspresi() , menunjukkan parameternya PengelompokanNonResource. Untuk sumber daya lainnya, ekspresi sumber daya biasa ditempatkan dalam pengelompokan sumber daya.

Jenis: Garis. Menunjukkan rekaman fragmen mana yang harus dimulai penghitungannya fungsi agregat ekspresi dan dari catatan mana untuk mendapatkan nilai bidang di luar fungsi agregat. Nilainya dapat berupa salah satu dari berikut ini:

· Pertama

· Terakhir (Terakhir)

· Sebelumnya

· Berikutnya (Berikutnya)

· Saat ini

· MembatasiNilai(Nilai Batas) MembatasiNilai

Jenis: Garis. Menunjukkan rekaman fragmen mana yang harus dilanjutkan, di mana fungsi agregat dari ekspresi harus dihitung. Nilainya dapat berupa salah satu dari berikut ini:

· Pertama. Penting untuk mendapatkan catatan pengelompokan pertama. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari awal pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Pertama(3) - menerima rekaman ketiga dari awal pengelompokan.

Jika record pertama berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan First(4), maka dianggap tidak ada record.

· Terakhir (Terakhir). Anda perlu mendapatkan catatan pengelompokan terakhir. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari akhir pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Terakhir(3) - menerima rekaman ketiga dari akhir grup.

Jika record terakhir berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan Last(4), maka dianggap tidak ada record.

· Sebelumnya. Anda perlu mendapatkan catatan pengelompokan sebelumnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Sebelumnya(2) - mendapatkan yang sebelumnya dari rekaman sebelumnya.

Jika rekaman sebelumnya melampaui pengelompokan (misalnya, untuk rekaman pengelompokan kedua Anda perlu mendapatkan Sebelumnya(3)), maka rekaman pengelompokan pertama akan diperoleh.

Saat mengambil catatan sebelumnya untuk total pengelompokan, dianggap bahwa catatan pertama telah diperoleh.

· Berikutnya (Berikutnya). Anda perlu mendapatkan catatan pengelompokan berikutnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Berikutnya(2) - mendapatkan yang berikutnya dari rekaman berikutnya.

Jika record berikutnya melampaui pengelompokan, maka dianggap tidak ada record. Misalnya ada 3 entri dan entri ketiga menerima Next() , maka dianggap tidak ada entri.

Ketika record berikutnya diterima untuk total pengelompokan, dianggap tidak ada record.

· Saat ini. Anda perlu mendapatkan catatan saat ini.

Saat mengambil total pengelompokan, catatan pertama diperoleh.

· MembatasiNilai(Nilai Batas). Kebutuhan untuk mendapatkan catatan dengan nilai yang ditentukan. Setelah kata itu MembatasiNilai dalam tanda kurung Anda perlu menunjukkan ekspresi dengan nilai yang Anda inginkan untuk memulai fragmen, bidang pengurutan pertama.

Catatan pertama yang nilai bidang pengurutannya lebih besar atau sama dengan nilai yang ditentukan akan dikembalikan sebagai catatan. Misalnya, jika bidang Periode digunakan sebagai bidang pemesanan, dan memiliki nilai 01/01/2010, 01/02/2010, 01/03/2010, dan Anda ingin mendapatkan LimitingValue(DateTime(2010, 1, 15)), maka akan diterima record dengan tanggal 01/02/2010.

Jenis: Garis. Mencantumkan ekspresi, dipisahkan dengan koma, yang menjelaskan aturan pengurutan. Jika tidak ditentukan, maka pengurutan dilakukan dengan cara yang sama seperti pengelompokan yang ekspresinya dievaluasi. Setelah setiap ekspresi, Anda dapat menentukannya kata kunci Usia(untuk memesan dalam urutan menaik), Menurun(untuk memesan dalam urutan menurun) dan Pemesanan otomatis(untuk mengurutkan bidang referensi berdasarkan bidang yang ingin Anda gunakan untuk mengurutkan objek yang direferensikan). Kata Pemesanan otomatis dapat digunakan seperti kata Usia, begitu pula dengan kata Menurun.

Jenis: Garis. Sama seperti parameter Penyortiran. Digunakan untuk mengatur catatan hierarki. Jika tidak ditentukan, pembuat tata letak akan menghasilkan pengurutan sesuai dengan pengurutan yang ditentukan dalam parameter Penyortiran.

Jenis: Garis. Menentukan aturan untuk menentukan record sebelumnya atau berikutnya jika ada beberapa record nilai yang sama pemesanan:

· Terpisah menunjukkan bahwa urutan catatan yang diurutkan digunakan untuk menentukan catatan sebelumnya dan berikutnya. Nilai bawaan.

· Bersama menunjukkan bahwa catatan sebelumnya dan berikutnya ditentukan berdasarkan nilai ekspresi pemesanan.

Misalnya, jika urutan yang dihasilkan diurutkan berdasarkan tanggal:

Tanggal Nama lengkap Arti
1 01 Januari 2001

Ivanov M.

10
2 02 Januari 2001 Petrov S. 20
3 03 Januari 2001 Sidorov R. 30
4 04 Januari 2001 Petrov S. 40

Terpisah, Itu:

§ entri sebelumnya ke entri 3 akan menjadi entri 2.

Saat ini, Saat ini(dengan demikian, parameter Awal Dan Akhir), maka untuk record 2 fragmen ini akan terdiri dari satu record 2. Ekspresinya akan sama dengan 20.

Jika nilai parameternya adalah Bersama, Itu:

§ entri sebelumnya ke entri 3 akan menjadi entri 1.

§ jika fragmen perhitungan didefinisikan sebagai Saat ini, Saat ini(dengan demikian, parameter Awal Dan Akhir), maka untuk record 2 fragmen ini akan terdiri dari record 2 dan 3. Ekspresi HitungEkspresi("Jumlah(Nilai)", Saat Ini, Saat Ini) akan sama dengan 50.

Saat menentukan nilai parameter sama dengan Bersama, dalam parameter Awal Dan Akhir Anda tidak dapat menentukan offset untuk posisi Pertama, Terakhir, Sebelumnya, Berikutnya.

HitungEkspresi("Jumlah(JumlahPerputaran)", "Pertama", "Saat Ini")

Jika Anda ingin mendapatkan nilai pengelompokan pada baris sebelumnya, Anda bisa menggunakan ekspresi berikut:

HitungEkspresi("Nilai", "Sebelumnya")

Daftar baru fungsi:

HitungEkspresiDenganGroupArray(,) -

Fungsi ini mengembalikan array, yang setiap elemennya berisi hasil evaluasi ekspresi untuk dikelompokkan berdasarkan bidang yang ditentukan.

HitungEkspresiDenganGroupValueTable(,) -

Fungsi ini mengembalikan tabel nilai, yang setiap barisnya berisi hasil evaluasi ekspresi untuk dikelompokkan berdasarkan bidang yang ditentukan

Nilai Terisi() - Mengembalikan True jika nilainya selain nilai default tipe ini, selain NULL, selain referensi kosong, selain Undefinisi. Untuk nilai Boolean, dilakukan pengecekan nilai BATAL. String diperiksa untuk mengetahui tidak adanya karakter non-spasi

Format(, ) - Menerima string yang diformat dari nilai yang diteruskan. String format diatur sesuai dengan string format sistem 1C:Enterprise.

Substring(, , ) - Fungsi ini dirancang untuk mengekstrak substring dari string.

Panjang Garis() - Fungsi ini dirancang untuk menentukan panjang string. Parameter adalah ekspresi string

Garis() - Jika array dilewatkan sebagai parameter, fungsi akan mengembalikan string yang berisi representasi string dari semua elemen array, dipisahkan dengan karakter "; ". Jika tabel nilai diteruskan sebagai parameter, fungsi akan mengembalikan string yang berisi representasi string dari semua baris tabel nilai, dengan representasi sel setiap baris dipisahkan oleh karakter ";" dan baris dengan baris baru karakter. Jika representasi string suatu elemen kosong, maka string yang ditampilkan, bukan representasinya.

1. Hitung (Eval)- dimaksudkan untuk mengevaluasi ekspresi dalam konteks pengelompokan tertentu. Fungsi ini digunakan untuk kompatibilitas dengan versi sebelumnya platform. Disarankan untuk menggunakan fungsi HitungEkspresi sebagai gantinya.

Sintaksis:
Hitung (Ekspresi, Pengelompokan, Tipe Perhitungan)

Parameter:

  • Ekspresi(Garis). Berisi ekspresi terhitung;
  • Pengelompokan(Garis). Berisi nama pengelompokan dalam konteks ekspresi yang akan dievaluasi. Jika string kosong digunakan sebagai nama pengelompokan, penghitungan akan dilakukan dalam konteks pengelompokan saat ini. Jika string GrandTotal digunakan sebagai nama grup, penghitungan akan dilakukan dalam konteks total keseluruhan. Jika tidak, penghitungan akan dilakukan dalam konteks pengelompokan induk dengan nama yang sama.
    Misalnya:
    Jumlah(Sales.SumTurnover) / Hitung("Jumlah(Sales.SumTurnover)", "Total").
    Dalam contoh ini, hasilnya adalah rasio jumlah bidang "Sales.AmountTurnover" pada rekaman pengelompokan dengan jumlah bidang yang sama di seluruh tata letak.
  • Jenis perhitungan(Garis). Jika parameter ini disetel ke "TotalTotal", ekspresi akan dihitung untuk semua rekaman pengelompokan. Jika nilai parameternya adalah "Pengelompokan", nilai akan dihitung untuk rekaman grup pengelompokan saat ini.
2. Evaluasi Ekspresi (EvalExpression) - dimaksudkan untuk mengevaluasi ekspresi dalam konteks pengelompokan tertentu. Fungsi ini memperhitungkan pemilihan pengelompokan, tetapi tidak memperhitungkan pemilihan hierarki. Fungsi ini tidak dapat diterapkan pada pengelompokan dalam pemilihan grup pengelompokan tersebut.

Sintaksis:
HitungEkspresi(Ekspresi, Pengelompokan, CalculationType, Mulai, Akhir, Sortir, HierarchicalSort, ProcessingIdenticalOrderValues)

Parameter:

  • Ekspresi(Garis). Berisi ekspresi terhitung;
  • Pengelompokan(Garis). Berisi nama pengelompokan dalam konteks ekspresi yang akan dievaluasi. Jika string kosong digunakan sebagai nama pengelompokan, penghitungan akan dilakukan dalam konteks pengelompokan saat ini. Jika string GrandTotal digunakan sebagai nama grup, penghitungan akan dilakukan dalam konteks total keseluruhan. Jika tidak, penghitungan akan dilakukan dalam konteks pengelompokan induk dengan nama tersebut;
  • Jenis perhitungan(Garis). Jika parameter ini diatur ke "TotalTotal", ekspresi akan dihitung untuk semua rekaman pengelompokan. Jika nilai parameternya adalah "Pengelompokan", nilai akan dihitung untuk rekaman grup pengelompokan saat ini. Jika parameter disetel ke "Pengelompokan Non-Sumber Daya", maka saat menghitung fungsi untuk rekaman grup berdasarkan sumber daya, ekspresi akan dievaluasi untuk rekaman grup pertama dari pengelompokan asli. Saat mengevaluasi fungsi HitungEkspresi dengan nilai "GroupingNonResource" untuk rekaman grup yang tidak dikelompokkan berdasarkan sumber daya, fungsi tersebut dievaluasi dengan cara yang sama seperti jika dievaluasi dengan nilai parameter "Pengelompokan". Pembuat tata letak komposisi data, saat membuat tata letak komposisi data saat mengeluarkan bidang - sumber daya yang digunakan untuk mengelompokkan, ke tata letak, mengeluarkan ekspresi yang dihitung menggunakan fungsi HitungEkspresi dengan parameter "GroupingNon-Resource" yang ditentukan ke tata letak. Untuk sumber daya lain yang dikelompokkan berdasarkan sumber daya, ekspresi sumber daya normal dikembalikan. Jika parameter disetel ke "Hierarki", maka ekspresi harus dievaluasi untuk catatan hierarki induk, jika ada, dan untuk seluruh pengelompokan, jika tidak ada catatan hierarki induk. Pembuat tata letak, saat membuat ekspresi untuk % di bidang Grup Hierarki, menghasilkan ekspresi yang berisi hubungan ekspresi sumber daya dengan fungsi HitungEkspresi untuk ekspresi sumber daya yang sedang dihitung untuk pengelompokan saat ini dengan tipe perhitungan Hierarki.
  • Awal. Menunjukkan dari rekaman mana fragmen harus dimulai, di mana fungsi ekspresi agregat harus dihitung, dan dari rekaman mana untuk memperoleh nilai bidang di luar fungsi agregat. Sebuah string yang berisi salah satu dari:
    • "Pertama" Penting untuk mendapatkan catatan pengelompokan pertama. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari awal pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Pertama(3) – menerima rekaman ketiga dari awal pengelompokan. Jika record pertama berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan First(4), maka dianggap tidak ada record.
    • "Terakhir" Anda perlu mendapatkan catatan pengelompokan terakhir. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari akhir pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Terakhir(3) – menerima rekor ketiga dari akhir grup. Jika record terakhir berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan Last(4), maka dianggap tidak ada record.
    • "Sebelumnya" Anda perlu mendapatkan catatan pengelompokan sebelumnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Sebelumnya(2) – mendapatkan yang sebelumnya dari rekaman sebelumnya. Jika record sebelumnya berada di luar pengelompokan (misalnya, record pengelompokan kedua memerlukan perolehan Sebelumnya(3)), maka record pengelompokan pertama akan diperoleh. Saat menerima rekor sebelumnya untuk total pengelompokan, rekor pertama diperoleh.
    • "Berikutnya" Anda perlu mendapatkan catatan pengelompokan berikutnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Berikutnya(2) – mendapatkan rekaman berikutnya dari rekaman berikutnya. Jika record berikutnya melampaui pengelompokan, maka dianggap tidak ada record. Misal ada 3 entri dan entri ketiga mendapat Next, maka dianggap tidak ada entri. Ketika record berikutnya diterima untuk total pengelompokan, dianggap tidak ada record.
    • "Saat ini". Anda perlu mendapatkan catatan saat ini. Saat mengambil total pengelompokan, catatan pertama diperoleh.
    • "Nilai Batas". Kebutuhan untuk mendapatkan catatan dengan nilai yang ditentukan. Setelah kata LimitingValue dalam tanda kurung, Anda perlu menunjukkan ekspresi dengan nilai yang ingin Anda mulai fragmennya, bidang pengurutan pertama. Catatan pertama yang nilai bidang pengurutannya lebih besar atau sama dengan nilai yang ditentukan akan dikembalikan sebagai catatan. Misalnya, jika bidang Periode digunakan sebagai bidang pengurutan, dan memiliki nilai 01/01/2010, 01/02/2010, 01/03/2010, dan Anda ingin mendapatkan LimitingValue(DateTime(2010 , 1, 15)), maka akan diperoleh record dengan tanggal 02/01 2010.
  • Akhir. Menunjukkan ke rekaman mana fragmen harus dilanjutkan, ke mana ekspresi agregat harus dihitung. Sebuah string yang berisi salah satu dari:
    • "Pertama"
    • "Terakhir"
    • "Sebelumnya"
    • "Berikutnya"
    • "Saat ini".
    • "Nilai Batas".
  • Penyortiran. Sebuah string yang mencantumkan ekspresi, dipisahkan dengan koma, ke arah mana urutannya harus diurutkan. Jika tidak ditentukan, maka pengurutan dilakukan dengan cara yang sama seperti pengelompokan yang ekspresinya dievaluasi. Setelah setiap ekspresi, Anda dapat menentukan kata kunci Ascending, untuk mengurutkan dalam urutan menaik, Descending, untuk mengurutkan dalam urutan menurun, Auto-Ordering, untuk mengurutkan bidang referensi berdasarkan bidang yang ingin Anda gunakan untuk mengurutkan objek yang direferensikan. Kata Auto Order dapat digunakan dengan kata Ascending dan kata Descending.
  • Penyortiran Hierarki. Mirip dengan penyortiran. Digunakan untuk mengatur catatan hierarki. Jika tidak ditentukan, kompositor tata letak akan menghasilkan pengurutan sesuai dengan pengurutan yang ditentukan dalam parameter Sortir.
  • Memproses Nilai Pesanan yang Sama. Sebuah string yang berisi salah satu dari:
    • "Bersama" berarti rangkaian record yang diurutkan digunakan untuk menentukan record sebelumnya dan berikutnya;
    • "Secara terpisah" berarti bahwa catatan sebelumnya dan berikutnya ditentukan berdasarkan nilai ekspresi pemesanan;
    Misalnya, jika urutan yang dihasilkan diurutkan berdasarkan tanggal:
    1. 01 Januari 2001 Ivanov M.10
    2. 02 Januari 2001 Petrov S.20
    3. 02 Januari 2001 Sidorov R.30
    4. 03 Januari 2001 Petrov S.40
    Saat menggunakan pemrosesan nilai identik dengan urutan "Separately", yang sebelumnya untuk record 3 akan menjadi record 2, dan saat menggunakan "Bersama" - record 1. Dan fragmen untuk record saat ini untuk record 2 untuk "Separately" akan menjadi catatan 2, dan untuk "Bersama" - catatan 2 dan 3. Jadi, total catatan saat ini untuk "Terpisah" akan menjadi 20, dan untuk "Bersama" - 50. Ketika "Bersama" ditentukan di Mulai dan Parameter akhir, Anda tidak dapat menentukan offset untuk posisi "Pertama", "Terakhir", "Sebelumnya", "Berikutnya". Nilai defaultnya adalah "Terpisah".
Contoh:
Memperoleh rasio jumlah bidang "Sales.AmountTurnover" dari catatan pengelompokan dengan jumlah bidang yang sama di seluruh tata letak:
Jumlah(Sales.SumTurnover) / HitungEkspresi("Jumlah(Sales.SumTurnover)", "Total").

Contoh ini menghitung nilai hierarki saat ini:
Pilihan
Ketika Level() > 0
Kemudian EvaluateExpression("Referensi", "Hierarki")
Kalau tidak, nihil
Akhir

Catatan:
Fungsi ini memperhitungkan pemilihan pengelompokan, tetapi tidak memperhitungkan pemilihan hierarki. Fungsi ini tidak dapat diterapkan pada pengelompokan dalam pemilihan grup pengelompokan tersebut. Misalnya, dalam memilih pengelompokan Nomenklatur, Anda tidak dapat menggunakan ekspresi CountExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Namun ungkapan seperti itu dapat digunakan dalam seleksi hierarki. Jika record akhir mendahului record awal, maka dianggap tidak ada record untuk menghitung data detail dan menghitung fungsi agregat. Saat menghitung ekspresi interval untuk total keseluruhan (parameter Pengelompokan diatur ke "Total Kotor"), diasumsikan bahwa tidak ada catatan untuk menghitung data terperinci dan menghitung fungsi agregat. Saat membuat ekspresi untuk fungsi HitungEkspresi, kompositor tata letak, jika ekspresi pengurutan berisi bidang yang tidak dapat digunakan dalam pengelompokan, akan mengganti fungsi HitungEkspresi dengan NULL.

3. Evaluasi Ekspresi Dengan Group Array (EvalExpression With Group Array) - fungsi mengembalikan array, yang setiap elemennya berisi hasil penghitungan ekspresi untuk pengelompokan berdasarkan bidang yang ditentukan.

Sintaksis:
HitungEkspresiDenganGroupArray (Ekspresi, GroupFieldExpressions, SelectRecords, SelectGroups)

Parameter:

  • Ekspresi(String) - ekspresi yang akan dievaluasi. Misalnya, "Jumlah(Jumlah Perputaran)";
  • Grup Ekspresi Bidang
  • Pemilihan Catatan
  • Pemilihan Pengelompokan- seleksi diterapkan pada catatan grup. Misalnya: "Jumlah(JumlahPerputaran) > &Parameter1".
Contoh:
Maksimum(CalculateExpressionWithGroupArray("Jumlah(JumlahPerputaran)", "Counterparty"));


Kompositor tata letak saat menghasilkan ekspresi untuk keluaran bidang khusus, dalam ekspresi yang hanya berisi fungsi HitungArrayWithGrouping, menghasilkan ekspresi keluaran sedemikian rupa sehingga data ditampilkan dan data diurutkan.
Misalnya, untuk bidang khusus dengan ekspresi:
HitungEkspresiDenganGroupArray("Jumlah(JumlahPerputaran)", "Counterparty")
Pembuat tata letak akan menghasilkan ekspresi berikut untuk keluaran:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("Lihat(Jumlah(DataSet.AmountTurnover)), Jumlah(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Hitung Ekspresi Dengan GroupValueTable (EvalExpressionWithGroupValueTable) - fungsi mengembalikan tabel nilai, yang setiap elemennya berisi hasil penghitungan ekspresi untuk dikelompokkan berdasarkan bidang yang ditentukan.

Sintaksis:
HitungExpressionWithGroupValueTable (Ekspresi, GroupField Expressions, Pilihan Rekaman, Pilihan Grup)

Parameter:

  • Ekspresi(String) - ekspresi yang akan dievaluasi. Sebuah baris dapat berisi beberapa ekspresi yang dipisahkan dengan koma. Setelah setiap ekspresi mungkin ada kata kunci opsional AS dan nama kolom tabel nilai. Misalnya: “Counterparty, Jumlah (Jumlah Perputaran) Sebagai Volume Penjualan.”
  • Grup Ekspresi Bidang- ekspresi bidang pengelompokan, dipisahkan dengan koma. Misalnya, "Rekanan, Pihak";
  • Pemilihan Catatan- ekspresi yang diterapkan pada catatan detail. Misalnya, "Bendera Penghapusan = Salah". Jika di parameter ini jika fungsi agregat digunakan, kesalahan akan terjadi saat menyusun data;
  • Pemilihan Pengelompokan- seleksi diterapkan pada catatan grup. Misalnya: "Jumlah(JumlahPerputaran) > &Parameter1".
Contoh:
HitungEkspresiDenganGroupValueTable("Akun SEBAGAI Rekanan, Jumlah(JumlahPerputaran) SEBAGAI Volume Penjualan", "Akun")

Hasil dari fungsi ini adalah tabel nilai dengan kolom Counterparty dan Volume Penjualan, yang berisi rekanan dengan volume penjualannya.
Pembuat tata letak, saat membuat tata letak, mengubah parameter fungsi menjadi bidang tata letak tata letak data. Misalnya, bidang Akun akan dikonversi menjadi DataSet.Akun.
Misalnya, bidang khusus dengan ekspresi:
HitungEkspresiDenganGroupValueTable("Akun, Jumlah(JumlahPerputaran)", "Akun")
Pembuat tata letak akan menghasilkan ekspresi berikut untuk keluaran:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), "2, 4"))

5. Tingkat - fungsi ini dirancang untuk mendapatkan level perekaman saat ini.

Sintaksis:
Tingkat()

Contoh:
Tingkat()

6. Nomor Urut - dapatkan nomor seri selanjutnya.

Sintaksis:
NomorBerdasarkanPesanan()

Contoh:
NomorBerdasarkanPesanan()

7. Nomor Urutan Dalam Pengelompokan - mengembalikan nomor urut berikutnya dalam pengelompokan saat ini.

Contoh:
NomorBerdasarkanPesananDalamGrup()

8. Formatnya - dapatkan string yang diformat dari nilai yang diteruskan.

Sintaksis:
Format(Nilai, FormatString)

Parameter:

  • Arti- ekspresi yang perlu diformat;
  • FormatString- format string diatur sesuai dengan string format 1C:Enterprise.
Contoh:
Format(Faktur Habis Pakai.Jumlah Dokumen, "NPV=2")

9. Periode Awal

Sintaksis:
Periode Mulai (Tanggal, Tipe Periode)

Parameter:

  • Tanggal(Tanggal). Tanggal yang ditentukan;
  • Tipe Periode
Contoh:
Periode Mulai(DateTime(2002, 10, 12, 10, 15, 34), "Bulan")
Hasil: 01.10.2002 0:00:00

10. Akhir Periode - fungsi ini dirancang untuk memilih tanggal tertentu dari tanggal tertentu.

Sintaksis:
Periode Akhir (Tanggal, Tipe Periode)

Parameter:

  • Tanggal(Tanggal). Tanggal yang ditentukan;
  • Tipe Periode(Garis). Berisi salah satu nilai berikut: Menit; Jam; Hari; Pekan; Bulan; Seperempat; Tahun; Dasawarsa; Setengah tahun.
Contoh:
Periode Akhir(DateTime(2002, 10, 12, 10, 15, 34), "Minggu")
Hasil: 13/10/2002 23:59:59

11. TambahkanKDate (TanggalTambah) - fungsi ini dirancang untuk menambahkan nilai tertentu pada tanggal.

Sintaksis:
AddToDate(Ekspresi, Tipe Inkremen, Besaran)

Parameter:

  • Ekspresi(Tanggal). Tanggal asli;
  • Jenis Pembesaran(Garis). Berisi salah satu nilai berikut: Menit; Jam; Hari; Pekan; Bulan; Seperempat; Tahun; Dasawarsa; Setengah tahun.
  • Besarnya(Nomor). Berapa banyak tanggal yang perlu ditambah, bagian pecahannya diabaikan.
Contoh:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Bulan", 1)
Hasil: 12/11/2002 10:15:34

12. Perbedaan Tanggal - Fungsi ini dirancang untuk mendapatkan perbedaan antara dua tanggal.

Sintaksis:
PerbedaanTanggal(Ekspresi1, Ekspresi2, Tipe Perbedaan)

Parameter:

  • Ekspresi1(Tanggal). Tanggal pengurangan;
  • Ekspresi2(Tanggal). Tanggal asli;
  • Perbedaan Jenis(Garis). Berisi salah satu nilai: Kedua; Menit; Jam; Hari; Bulan; Seperempat; Tahun.
Contoh:
PERBEDAAN TANGGAL(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "HARI")
Hasil: 2

13. Substring - fungsi ini dirancang untuk mengekstrak substring dari string.

Sintaksis:
Substring (String, Posisi, Panjang)

Parameter:

  • Garis(Garis). String dari mana substring diekstraksi;
  • Posisi(Nomor). Posisi karakter dari mana substring yang akan diekstraksi dari string dimulai;
  • Panjang(Nomor). Panjang substring yang dialokasikan.
Contoh:
SUBSTRING(Akun.Alamat, 1, 4)

14. Panjang Senar - Fungsi ini dirancang untuk menentukan panjang string.

Sintaksis:
Panjang String(String)

Parameter :

  • Garis(Garis). Sebuah string yang panjangnya ditentukan.
Contoh:
Jalur(Rekanan.Alamat)

15. Tahun- fungsi ini dirancang untuk mengekstrak tahun dari nilai tipe Tanggal.

Sintaksis:
Tahun (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana tahun ditentukan.
Contoh:
TAHUN(Beban.Tanggal)

16. Kuartal - fungsi ini dirancang untuk mengekstrak nomor kuartal dari nilai tipe Tanggal. Angka seperempat biasanya berkisar antara 1 hingga 4.

Sintaksis:
Kuartal (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal penentuan kuartal
Contoh:
TRIWULAN(Beban.Tanggal)

17. Bulan - fungsi ini dirancang untuk mengekstrak nomor bulan dari nilai tipe Tanggal. Nomor bulan biasanya berkisar antara 1 hingga 12.

Sintaksis:
Bulan (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana bulan ditentukan.
Contoh:
BULAN(Beban.Tanggal)

18. Hari dalam Setahun (DayOfYear) - fungsi ini dirancang untuk mendapatkan hari dalam setahun dari nilai tipe Tanggal. Hari dalam setahun biasanya berkisar antara 1 hingga 365 (366).

Sintaksis:
Hari dalam Setahun (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana hari dalam setahun ditentukan.
Contoh:
DAYYEAR(Rekening Pengeluaran.Tanggal)

19. Hari- fungsi ini dirancang untuk mendapatkan hari dalam sebulan dari nilai tipe Tanggal. Hari dalam sebulan biasanya berkisar antara 1 hingga 31.

Sintaksis:
Hari (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana hari dalam bulan ditentukan.
Contoh:
HARI(Beban.Tanggal)

20. Minggu - fungsi ini dirancang untuk mendapatkan nomor minggu dalam setahun dari nilai tipe Tanggal. Minggu dalam setahun diberi nomor mulai dari 1.

Sintaksis:
Minggu (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal penentuan nomor minggu.
Contoh:
MINGGU(Beban.Tanggal)

21. Hari Kerja - fungsi ini dirancang untuk mendapatkan hari dalam seminggu dari nilai tipe Tanggal. Hari normal dalam seminggu berkisar antara 1 (Senin) hingga 7 (Minggu).

Sintaksis:
Hari dalam Seminggu (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana hari dalam seminggu ditentukan.
Contoh:
HARI DALAM MINGGU (Tanggal Faktur Biaya)

22. Jam- fungsi ini dirancang untuk mendapatkan jam dari nilai tipe Tanggal. Jam dalam sehari berkisar antara 0 hingga 23.

Sintaksis:
Jam (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana jam dalam sehari ditentukan.
Contoh:
JAM(Beban.Tanggal)

23. Menit - fungsi ini dirancang untuk mendapatkan menit dari nilai tipe Tanggal. Menit dalam satu jam berkisar antara 0 hingga 59.

Sintaksis:
Menit (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana menit dalam satu jam ditentukan.
Contoh:
MENIT(Beban.Tanggal)

24. Kedua - fungsi ini dirancang untuk mendapatkan detik dalam satu menit dari nilai tipe Tanggal. Detik dalam satu menit berkisar antara 0 hingga 59.

Sintaksis:
Kedua (Tanggal)

Parameter :

  • Tanggal(Tanggal). Tanggal dimana detik-detik dalam menit ditentukan.
Contoh:
KEDUA (Tanggal Kedaluwarsa)

25. Pemeran - fungsi ini dirancang untuk mengekstrak tipe dari ekspresi yang mungkin berisi tipe gabungan. Jika ekspresi berisi tipe selain tipe yang diperlukan, NULL akan dikembalikan.

Sintaksis:
Ekspres (Ekspresi, Jenis Indikasi)

Parameter:

  • Ekspresi- ekspresi yang akan dikonversi;
  • Jenis Indikasi(Garis). Berisi string tipe. Misalnya, "Nomor", "String", dll. Selain tipe primitif garis yang diberikan mungkin berisi nama tabel. Dalam hal ini, upaya akan dilakukan untuk menyatakan referensi ke tabel yang ditentukan.
Contoh:
Ekspres(Data.Props1, "Nomor(10,3)")

26. IsNull (IsNull) - fungsi ini mengembalikan nilai parameter kedua jika nilai parameter pertama adalah NULL. Jika tidak, nilai parameter pertama akan dikembalikan.

Sintaksis:
IsNull(Ekspresi1, Ekspresi2)

Parameter:

  • Ekspresi1- nilai yang akan diperiksa;
  • Ekspresi2- nilai kembalian jika Expression1 adalah NULL.
Contoh:
YesNULL(Jumlah(Penjualan.JumlahPerputaran), 0)

27.ACos- Menghitung arc cosinus dalam radian.

Sintaksis:
ACos (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Nilai cosinus (dalam kisaran -1...1) yang digunakan untuk menentukan sudut.
28.ASin- menghitung arcsinus dalam radian.

Sintaksis:
ASin (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Nilai sinus (dalam kisaran -1...1) yang digunakan untuk menentukan sudut.
29. ATan- menghitung arctangen dalam radian.

Sintaksis:
ATan (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Nilai tangen yang menentukan sudut.
30.Cos- menghitung kosinus.

Sintaksis:
Karena (Ekspresi)

Parameter :

  • Ekspresi
31. Eks- menaikkan angka e menjadi pangkat.

Sintaksis:
Exp(Ekspresi)

Parameter :

  • Ekspresi(Nomor). Arti dari gelar.
32.Catatan- menghitung logaritma natural.

Sintaksis:
Log (Ekspresi)

Parameter :

  • Ekspresi
33.Log10- menghitung logaritma X ke basis 10.

Sintaksis:
Log10(Ekspresi)

Parameter :

  • Ekspresi(Nomor). Angka aslinya lebih besar dari 0.
34. Kekuatan- eksponensial.

Sintaksis:
Pow (Basis, Indikator)

Parameter:

  • Basis(Nomor). Dasar pengoperasian eksponensial.
  • Indikator(Nomor). Eksponen.
35. Dosa- menghitung sinus.

Sintaksis:
Dosa (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Ditentukan dalam radian.
36. Persegi- menghitung akar kuadrat.

Sintaksis:
Akar (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Angka non-negatif.
37. Tan- menghitung garis singgung.

Sintaksis:
Tan (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Nilai sinus yang digunakan untuk menentukan sudut.
38. Bulat- membulatkan angka asli ke kedalaman bit yang diperlukan. Mode pembulatan adalah standar (1,5 sebagai 2).

Sintaksis:
Env (Ekspresi, Kedalaman bit)

Parameter:

  • Ekspresi(Nomor). Nomor asli;
  • Kedalaman sedikit(Nomor). Jumlah tempat desimal yang ingin dibulatkan.
39. Int- memotong bagian pecahan suatu bilangan.

Sintaksis:
Objek (Ekspresi)

Parameter :

  • Ekspresi(Nomor). Nomor pecahan.
40. Fungsi modul umum

Ekspresi mesin komposisi data mungkin berisi panggilan ke fungsi modul konfigurasi umum global. Tidak diperlukan sintaks tambahan untuk memanggil fungsi tersebut.

Contoh:
Nama Singkatan(Dokumen.Link, Dokumen.Tanggal, Dokumen.Nomor)

Dalam contoh ini, fungsi "Nama Singkatan" akan dipanggil dari modul konfigurasi umum.
Perhatikan bahwa penggunaan fungsi modul umum hanya diperbolehkan jika parameter prosesor komposisi data yang sesuai ditentukan.
Selain itu, fungsi modul umum tidak dapat digunakan dalam ekspresi bidang khusus.

41. Kebencian - fungsi ini mengembalikan representasi string dari nilai yang diteruskan dari tipe non-primitif. Untuk nilai bertipe primitif, mengembalikan nilai itu sendiri.

<Пустое значение>".

Contoh:
Presentasi (Counterparty)

42. Tali - fungsi ini mengubah nilai yang diteruskan menjadi string.

Jika array atau tabel nilai digunakan sebagai parameter, fungsi mengembalikan string yang berisi representasi string dari semua elemen array, dipisahkan oleh karakter ";". Jika ada elemen yang memiliki representasi string kosong, maka string "<Пустое значение>".

Contoh:
Baris (Tanggal Penjualan)

43. Nilai Sudah Terisi

Untuk nilai NULL, Undefinisi selalu mengembalikan False.
Untuk nilai Boolean, selalu mengembalikan True.
Untuk tipe lainnya, mengembalikan True jika nilainya berbeda dari nilai default untuk tipe tertentu.

Contoh:
NilaiDiisi (Tanggal Pengiriman)

44. LevelDalam Grup - fungsi ini mendapatkan tingkat perekaman saat ini relatif terhadap pengelompokan.

Dapat digunakan untuk memperoleh tingkat bersarang suatu catatan dalam pengelompokan hierarki.

Contoh:
LevelDalamGrup()

45. Tipe Nilai

Sintaksis:
Tipe Nilai (Ekspresi)

Parameter :

  • Ekspresi(Garis). Tipe nilai string.
Mengembalikan nilai tipe Tipe yang berisi tipe nilai parameter fungsi.

Hitung Ekspresi- cukup fungsi yang kompleks ACS untuk pengertian, dan contoh penerapannya di informasi referensi cukup langka. Artikel ini membahas contoh-contoh yang pasti berguna bagi setiap pengembang:

  1. total kumulatif dalam pengelompokan;
  2. total kumulatif dalam tab silang;
  3. mendapatkan nilai sebelumnya;
  4. Keluaran PM dalam satu baris.

1. Memperoleh indikator secara akrual

Mari kita ambil jumlah barang sebagai total kumulatif pada tingkat pengelompokan. Untuk melakukan ini, buat bidang terhitung (lihat Gambar 1).
Pada tab "Sumber Daya", atur fungsi untuk bidang terhitung:
HitungEkspresi("Jumlah(Perputaran Kuantitas)", "Pertama", "Saat Ini")
yang akan menjumlahkan jumlah produk dari catatan pertama hingga catatan saat ini (lihat Gambar 2).

Jika jumlah total kumulatif suatu item perlu diperoleh pada tingkat catatan terperinci, maka kami mengatur fungsi HitungEkspresi untuk bidang terhitung pada tab “Bidang terhitung” (lihat Gambar 3).
Bergantung pada tingkat perolehan total kumulatif, kami membuat pengelompokan (lihat Gambar 4): pada tingkat sumber daya - pengelompokan berdasarkan barang, pada tingkat kendali jarak jauh - pengelompokan catatan terperinci.
Gambar 4. Pengelompokan laporan dengan total kumulatif

2. Mendapatkan nilai indikator dari baris sebelumnya

Mari kita dapatkan nilai tukar untuk tanggal tersebut dan tanggal sebelumnya. Untuk melakukannya, buat bidang terhitung dan tulis ekspresi berikut di bidang ekspresi (lihat Gambar 5):
HitungEkspresi("Nilai", "Sebelumnya", "Sebelumnya")
yang akan mengambil nilai nilai tukar sebelumnya garis saat ini, parameter terakhir dari fungsi membatasi data yang diterima.
Karena kami bekerja pada tingkat catatan terperinci, kami segera membuka tab "Pengaturan" dan membuat pengelompokan - catatan terperinci.

3. Memperoleh indikator sebagai total kumulatif dalam tab silang

Mari kita dapatkan jumlah barang berdasarkan akrual berdasarkan periode. Untuk melakukan ini, buat bidang terhitung (lihat Gambar 1). Pada tab “Sumber Daya”, kami menentukan ekspresi berikut untuk bidang terhitung (lihat Gambar 6):
HitungEkspresi("Jumlah(Perputaran Kuantitas)", "Periode", "Pertama", "Saat Ini")
yang pada tingkat pengelompokan akan menghitung jumlah barang pada interval dari baris pertama hingga baris saat ini dalam konteks periode untuk setiap item.
Pada tab “Pengaturan”, buat tabel dengan pengelompokan berdasarkan item dalam satu baris dan pengelompokan berdasarkan titik dalam kolom (lihat Gambar 7).

4. Mengeluarkan data tabular dalam satu baris

Metode untuk menampilkan data tabular dalam satu baris, termasuk metode menggunakan fungsi HitungEkspresi, dibahas dalam artikel

Mengingat rilis 8.2.14 yang akan datang, saya akan mencoba menjelaskan beberapa fungsi baru dari sistem komposisi data.

Buka diagram tata letak data, sebaiknya di laporan eksternal, untuk mempermudah pengeditan.

Kami menambahkan sekumpulan data dari tipe kueri dan menulis, baik secara manual atau menggunakan perancang kueri, kueri sederhana:

1. Siapkan permintaan di sistem kontrol akses.

2. Siapkan kolom kalkulasi di sistem kontrol akses

3. Konfigurasikan tata letak data pada tab pengaturan

4. Luncurkan 1C Enterprise 8.2.14. Buka laporannya. Kami membentuk, kami menerima.

Deskripsi fungsi baru itu sendiri:

1. Tanggal Saat Ini()

Mengembalikan tanggal sistem. Saat membuat tata letak tata letak, di semua ekspresi yang ada dalam tata letak, fungsi CurrentDate() diganti dengan nilai tanggal saat ini.

2. EKSPRESI KOMPUTASI()

Sintaksis:

HitungEkspresi(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Keterangan:

Fungsi ini dirancang untuk mengevaluasi ekspresi dalam konteks pengelompokan tertentu.

Fungsi ini memperhitungkan pemilihan pengelompokan, tetapi tidak memperhitungkan pemilihan hierarki.

Fungsi ini tidak dapat diterapkan pada pengelompokan dalam pemilihan grup pengelompokan tersebut. Misalnya, dalam pemilihan grup Nomenklatur, Anda tidak dapat menggunakan ekspresi HitungEkspresi("Jumlah(SumTurnover)", "TotalTotal") > 1000. Namun ekspresi seperti itu dapat digunakan dalam pemilihan hierarki.

Jika record akhir mendahului record awal, maka dianggap tidak ada record untuk menghitung data detail dan menghitung fungsi agregat.

Saat menghitung ekspresi interval untuk total keseluruhan (parameter Pengelompokan diatur ke GrandTotal), diasumsikan bahwa tidak ada catatan untuk menghitung data terperinci dan menghitung fungsi agregat.

Saat membuat ekspresi untuk fungsi HitungEkspresi, kompositor tata letak, jika ekspresi pengurutan berisi bidang yang tidak dapat digunakan dalam pengelompokan, akan mengganti fungsi HitungEkspresi dengan NULL.

Pilihan

<Выражение>

Jenis: Tali. Ekspresi yang akan dievaluasi.

<Группировка>

Jenis: Tali. Berisi nama pengelompokan dalam konteks ekspresi yang akan dievaluasi. Jika string kosong digunakan sebagai nama pengelompokan, penghitungan akan dilakukan dalam konteks pengelompokan saat ini. Jika string GrandTotal digunakan sebagai nama grup, penghitungan akan dilakukan dalam konteks total keseluruhan. Jika tidak, penghitungan akan dilakukan dalam konteks pengelompokan induk dengan nama yang sama.

Misalnya:

Jumlah(Penjualan.JumlahPerputaran)/Hitung(“Jumlah(Penjualan.JumlahPerputaran)”, “Total”)

Dalam contoh ini, hasilnya adalah rasio jumlah bidang Sales.SumTurnover dari rekaman pengelompokan dengan jumlah bidang yang sama di seluruh tata letak;

<ОбластьВычисления>

Jenis: Tali. Parameternya dapat mengambil nilai berikut:

  • GeneralTotal - ekspresi akan dihitung untuk semua catatan pengelompokan.
  • Hierarki - Ekspresi akan dievaluasi untuk catatan hierarki induk jika ada, dan untuk seluruh pengelompokan jika tidak ada catatan hierarki induk.
  • Pengelompokan - ekspresi akan dievaluasi untuk rekaman pengelompokan pengelompokan saat ini.
  • Pengelompokan Non-Sumber Daya - saat menghitung fungsi untuk rekaman grup berdasarkan sumber daya, ekspresi akan dievaluasi untuk rekaman grup pertama dari pengelompokan asli.

Saat menghitung suatu fungsi HitungEkspresi() dengan nilai Pengelompokan Non-Sumber Daya untuk catatan grup yang bukan pengelompokan sumber daya, fungsinya dihitung dengan cara yang sama seperti dihitung jika nilai parameter sama dengan nilai Pengelompokan.

Pembuat tata letak komposisi data, saat membuat tata letak komposisi data saat mengeluarkan bidang sumber daya yang digunakan untuk mengelompokkan tata letak, menempatkan ekspresi dalam tata letak yang dihitung menggunakan fungsi HitungEkspresi(), menunjukkan parameter Pengelompokan Non-Sumber Daya. Untuk sumber daya lainnya, ekspresi sumber daya biasa ditempatkan dalam pengelompokan sumber daya.

<Начало>

Jenis: Tali. Menunjukkan dari rekaman mana fragmen harus dimulai, di mana fungsi ekspresi agregat harus dihitung, dan dari rekaman mana untuk memperoleh nilai bidang di luar fungsi agregat. Nilainya dapat berupa salah satu dari berikut ini:

<Конец>

Jenis: Tali. Menunjukkan rekaman fragmen mana yang harus dilanjutkan, di mana fungsi agregat dari ekspresi harus dihitung. Nilainya dapat berupa salah satu dari berikut ini:

  • Pertama. Penting untuk mendapatkan catatan pengelompokan pertama. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari awal pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Pertama(3) – menerima rekaman ketiga dari awal pengelompokan.

Jika record pertama berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan First(4), maka dianggap tidak ada record.

  • Terakhir. Anda perlu mendapatkan catatan pengelompokan terakhir. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari akhir pengelompokan. Nilai yang dihasilkan harus berupa bilangan bulat yang lebih besar dari nol. Misalnya, Terakhir(3) – menerima rekor ketiga dari akhir grup.

Jika record terakhir berada di luar pengelompokan, maka dianggap tidak ada record. Misal ada 3 record, dan ingin mendapatkan Last(4), maka dianggap tidak ada record.

  • Sebelumnya. Anda perlu mendapatkan catatan pengelompokan sebelumnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Sebelumnya(2) – mendapatkan yang sebelumnya dari rekaman sebelumnya.

Jika rekaman sebelumnya melampaui pengelompokan (misalnya, untuk rekaman pengelompokan kedua Anda perlu mendapatkan Sebelumnya(3), maka rekaman pengelompokan pertama akan diperoleh.

Saat mengambil catatan sebelumnya untuk total pengelompokan, dianggap bahwa catatan pertama telah diperoleh.

  • Berikutnya. Anda perlu mendapatkan catatan pengelompokan berikutnya. Setelah kata dalam tanda kurung, Anda dapat menentukan ekspresi, yang hasilnya akan digunakan sebagai offset dari rekaman pengelompokan saat ini. Misalnya, Berikutnya(2) – mendapatkan rekaman berikutnya dari rekaman berikutnya.

Jika record berikutnya melampaui pengelompokan, maka dianggap tidak ada record. Misalnya ada 3 record dan Next() diterima untuk record ketiga, maka dianggap tidak ada record.

Ketika record berikutnya diterima untuk total pengelompokan, dianggap tidak ada record.

  • Saat ini. Anda perlu mendapatkan catatan saat ini.

Saat mengambil total pengelompokan, catatan pertama diperoleh.

  • Nilai Batas. Kebutuhan untuk mendapatkan catatan dengan nilai yang ditentukan. Setelah kata LimitingValues ​​​​dalam tanda kurung, Anda perlu menunjukkan ekspresi dengan nilai yang ingin Anda mulai fragmennya, bidang pengurutan pertama.

Catatan pertama yang nilai bidang pengurutannya lebih besar atau sama dengan nilai yang ditentukan akan dikembalikan sebagai catatan. Misalnya, jika bidang Periode digunakan sebagai bidang pengurutan, dan memiliki nilai 01/01/2010, 01/02/2010, 01/03/2010, dan Anda ingin mendapatkan LimitingValue(DateTime(2010 , 1, 15)), maka akan diperoleh record dengan tanggal 02/01 2010.

<Сортировка>

Jenis: Tali. Mencantumkan ekspresi, dipisahkan dengan koma, yang menjelaskan aturan pengurutan. Jika tidak ditentukan, maka pengurutan dilakukan dengan cara yang sama seperti pengelompokan yang ekspresinya dievaluasi. Setelah setiap ekspresi, Anda dapat menentukan kata kunci Ascending (untuk mengurutkan dalam urutan menaik), Descending (untuk mengurutkan dalam urutan menurun), dan AutoOrder (untuk mengurutkan bidang referensi berdasarkan bidang yang ingin Anda gunakan untuk mengurutkan objek yang direferensikan). Kata Auto Order dapat digunakan dengan kata Ascending dan kata Descending.

<ИерархическаяСортировка>

Jenis: Tali. Sama seperti opsi Sortir. Digunakan untuk mengatur catatan hierarki. Jika tidak ditentukan, kompositor tata letak akan menghasilkan pengurutan sesuai dengan pengurutan yang ditentukan dalam parameter Sortir.

<ОбработкаОдинаковыхЗначенийПорядка>

Jenis: Tali. Menentukan aturan untuk menentukan record sebelumnya atau berikutnya jika ada beberapa record dengan nilai pemesanan yang sama:

  • Terpisah berarti rangkaian record yang diurutkan digunakan untuk menentukan record sebelumnya dan selanjutnya. Nilai bawaan.
  • Bersama-sama berarti bahwa catatan sebelumnya dan berikutnya ditentukan berdasarkan nilai ekspresi pengurutan.

Misalnya, jika urutan yang dihasilkan diurutkan berdasarkan tanggal:

Tanggal Nama lengkap Arti
1 01 Januari 2001 Ivanov M. 10
2 02 Januari 2001 Petrov S. 20
3 03 Januari 2001 Sidorov R. 30
4 04 Januari 2001 Petrov S. 40

Jika nilai parameternya Terpisah, maka:

§ entri sebelumnya ke entri 3 akan menjadi entri 2.

§ jika fragmen perhitungan didefinisikan sebagai Saat Ini, Saat Ini (masing-masing, parameter Mulai dan Akhir), maka untuk rekaman 2 fragmen ini akan terdiri dari satu rekaman 2. Ekspresi HitungEkspresi("Jumlah (Nilai)", Saat Ini, Saat Ini) akan sama dengan 20.

Jika nilai parameternya adalah Bersama, maka:

§ entri sebelumnya ke entri 3 akan menjadi entri 1.

§ jika fragmen perhitungan didefinisikan sebagai Saat Ini, Saat Ini (masing-masing, parameter Awal dan Akhir), maka untuk rekaman 2 fragmen ini akan terdiri dari rekaman 2 dan 3. Ekspresi HitungEkspresi("Jumlah (Nilai)", Saat Ini, Saat Ini) akan sama dengan 50.

Saat menentukan nilai parameter sama dengan Bersama, pada parameter Awal dan Akhir Anda tidak dapat menentukan offset untuk posisi Pertama, Terakhir, Sebelumnya, Berikutnya.

HitungEkspresi("Jumlah(JumlahPerputaran)", "Pertama", "Saat Ini")

Jika Anda ingin mendapatkan nilai pengelompokan pada baris sebelumnya, Anda bisa menggunakan ekspresi berikut:

HitungEkspresi("Nilai", "Sebelumnya")

Daftar baru fungsi:

HitungEkspresiDenganGroupArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Fungsi ini mengembalikan array, yang setiap elemennya berisi hasil evaluasi ekspresi untuk dikelompokkan berdasarkan bidang yang ditentukan.

HitungEkspresiDenganGroupValueTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Fungsi ini mengembalikan tabel nilai, yang setiap barisnya berisi hasil evaluasi ekspresi untuk dikelompokkan berdasarkan bidang yang ditentukan

Nilai Terisi(<Выражение>) – Mengembalikan True jika nilainya selain nilai default tipe ini, selain NULL, selain referensi kosong, selain Undefinisi. Nilai Boolean diperiksa untuk NULL. String diperiksa untuk mengetahui tidak adanya karakter non-spasi

Format(<Выражение>, <Форматная строка>) – Menerima string yang diformat dari nilai yang diteruskan. String format diatur sesuai dengan string format sistem 1C:Enterprise.

Substring(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Fungsi ini dirancang untuk mengekstrak substring dari string.

Panjang Garis(<Выражение>) – Fungsi ini dirancang untuk menentukan panjang string. Parameternya adalah ekspresi string

Garis(<Выражение>) – Jika array dilewatkan sebagai parameter, fungsi akan mengembalikan string yang berisi representasi string dari semua elemen array, dipisahkan dengan karakter “; “. Jika tabel nilai dilewatkan sebagai parameter, fungsi akan mengembalikan string yang berisi representasi string dari semua baris tabel nilai, dengan representasi sel setiap baris dipisahkan oleh karakter “; “, dan garis-garis tersebut merupakan simbol line feed. Jika ada elemen yang memiliki representasi string kosong, maka string tersebut akan ditampilkan, bukan representasinya<Пустое значение>.