Ekspresi bidang pengguna 1C 8.3. Bahasa ekspresi tata letak data (1CV8)

Setiap organisasi perdagangan untuk manajemen yang kompeten perlu segera memperoleh informasi tentang kondisi barang, penjualan, laba saat ini. Namun, jika kita menganggap bahwa organisasi sering bekerja dengan daftar barang terluas dan jumlah besar rekanan, instrumen mengkonfigurasi laporan analitik memainkan peran penting dalam memperoleh informasi yang perlu. Pertimbangkan lebih banyak operasi bekerja dengan bidang pengguna dalam laporan program tipikal (ed. 11).

Pengembangan Platform 1C: Enterprise 8 menawarkan pengguna semakin banyak peluang. Misalnya, dalam versi 8.2, laporan telah menjadi fleksibel, memungkinkan mereka untuk mengkonfigurasi mereka untuk berbagai persyaratan tanpa bantuan programmer yang berkualitas.

Ubah Pengaturan Laporan ..

Untuk melihat atau mengubah pengaturan laporan, Anda harus pergi ke menu "Semua Tindakan" dan pilih perintah "Ubah Opsi". Setelah itu, pengguna membuka jendela dengan pengaturan untuk laporan terbuka.

Di bagian jendela yang benar dengan pengaturan, Anda dapat melihat struktur laporan, yang tidak lebih dari refleksi visual dari kolom laporan dan pengelompokan garis-garisnya, yang pada dasarnya memungkinkan untuk menyajikan urutan laporan ini data analitik.

Di bagian bawah jendela pengaturan, pengaturan informasi dan bidang aktual yang terkait dengan laporan atau elemen strukturnya (kolom dan grup string) ditampilkan.

Bidang khusus

Dalam sebuah program 1c: Manajemen Perdagangan 8 Edisi 11 Pengaturan laporan memberi pengguna lebih banyak peluang dalam formasi mereka.

Dalam pengaturan pengeditan dan struktur laporan, saya ingin memberikan perhatian khusus pada tab "Field Custom", yang memungkinkan Anda membuat bidang Anda sendiri dan menambahkannya ke laporan. Harus dipanggil kembali bahwa sebelumnya pengguna hanya dapat menggunakan bidang-bidang yang diimplementasikan oleh pengembang.

Pertimbangkan untuk menggunakan fitur ini pada contoh.

Misalkan, kepala perusahaan perdagangan yang terlibat dalam penjualan barang di wilayah Moskow dan daerah, ingin menyesuaikan laporan "sejarah penjualan", yang ingin membawa data tentang penjualan nomenklatur di Moskow dan wilayah secara umum, serta untuk mitra. Buat menggunakan bidang khusus sangat mudah.

Dengan demikian, pada contoh visual, dapat dilihat bahwa pengaturan bidang khusus yang fleksibel dalam program tipikal 1c: Manajemen Perdagangan 8 Berikan pengguna yang cukup dalam pengaturan laporan, memungkinkan Anda untuk dengan cepat menerima informasi yang diperlukan dalam bentuk yang nyaman.

Bahasa ekspresi sistem tata letak data

Ekspresi tata letak data ekspresi dirancang untuk merekam ekspresi yang digunakan di berbagai bagian sistem.

Ekspresi digunakan dalam subsistem berikut:

  • diagram Tata Letak Data - Untuk menggambarkan bidang yang dihitung, hasil hasil, ekspresi komunikasi, dll.;
  • pengaturan Tata Letak Data - untuk menggambarkan ekspresi bidang pengguna;
  • tata letak tata letak data - untuk menggambarkan ekspresi yang ditetapkan komunikasi, menggambarkan parameter tata letak, dll.

Harfiah

Ekspresi mungkin memiliki literal. Jenis-jenis berikut dimungkinkan:

  • Garis;
  • Jumlah;
  • Tanggal;
  • Booleo.

Garis

String literal ditulis dalam karakter "", misalnya:

"Stroke literal"

Jika Anda perlu menggunakan di dalam string literal simbol "", dua karakter seperti itu harus digunakan.

Sebagai contoh:

"Literal" "dalam kutipan" ""

Jumlah

Jumlah ini ditulis tanpa spasi, dalam format desimal. Bagian fraksional Selesai menggunakan simbol "." Sebagai contoh:

10.5 200

tanggal

Tipe Tipe Literal ditulis menggunakan literal kuncinya. Setelah ini kata kunci., dalam kurung, setahun, bulan, hari, jam, menit, detik terdaftar melalui koma. Indikasi waktu tidak diperlukan.

Sebagai contoh:

Dateastern (1975, 1, 06) - Sixth Januari 1975 Dateastern (2006, 12, 2, 23, 56, 57) - Kedua Desember 2006, 23 jam 56 menit 57 detik 57 detik 57 detik 57 detik

Boolean.

Nilai Boolean dapat dicatat dengan menggunakan literal kebenaran (Benar), Lies (FALSE).

Nilai

Untuk menentukan literal jenis lain (enumerasi sistem, data yang telah ditentukan), kata kunci digunakan, setelah itu nama literal ditunjukkan dalam tanda kurung.

Artinya (vidcet. Aktif)

Operasi pada angka

Unary -

Operasi ini dirancang untuk mengubah tanda jumlah ke sebaliknya. Sebagai contoh:

Penjualan. Kebangsaan

Unary +.

Operasi ini tidak melakukan tindakan apa pun di atas angka. Sebagai contoh:

Penjualan. Kebangsaan

Biner -

Operasi ini dirancang untuk menghitung perbedaan dalam dua angka. Sebagai contoh:

Perseteruan residu. Residu tahan eksklusif. Residual residual berkonsentrasi. Pelindung.

Biner +.

Operasi ini dimaksudkan untuk menghitung jumlah dua angka. Sebagai contoh:

Perseteruan Residual. Persekian PROPRIETARY + Residual. Residibles omset. Melindungi. + 100 400 + 357

Komposisi

Operasi ini dirancang untuk menghitung pekerjaan dua angka. Sebagai contoh:

Nomenklatur. Harga * 1.2 2 * 3.14

Divisi

Operasi ini dirancang untuk mendapatkan hasil membagi satu operan ke yang lain. Sebagai contoh:

Nomenklatur. Harga / 1.2 2 / 3.14

Sisa divisi

Operasi ini dirancang untuk mendapatkan keseimbangan dari membagi satu operan ke yang lain. Sebagai contoh:

Nomenklatur. Harga% 1.2 2% 3.14

Operasi pada string.

Gabungan (biner +)

Operasi ini dirancang untuk menggabungkan dua baris. Sebagai contoh:

Nomenklature.Article + ":" + Nomenklatur. Nama

Suka

Operasi ini memeriksa korespondensi pola string yang ditransmisikan.

Valid operator benar jika nilainya<Выражения> Memuaskan template, dan salah sebaliknya.

Karakter berikut B.<Строке_шаблона> masuk akal, berbeda dari simbol string lainnya:

  • % - Persentase: Urutan yang mengandung nol dan karakter yang lebih sewenang-wenang;
  • _ - garis bawah: satu simbol sewenang-wenang;
  • [...] - Satu atau lebih karakter dalam tanda kurung persegi: satu karakter, salah satu dari tanda kurung yang tercantum. Daftar dapat terjadi rentang, misalnya A-Z, yang berarti simbol sewenang-wenang termasuk dalam kisaran, termasuk ujung rentang;
  • [^ ...] - dalam kurung persegi, ikon penolakan, diikuti oleh satu atau lebih karakter: karakter apa pun, kecuali yang tercantum dalam ikon negatif;

Setiap karakter lain berarti dirinya sendiri dan tidak membawa beban tambahan. Jika salah satu karakter yang tercantum harus ditulis sebagai dirinya sendiri, maka ia harus mendahului<Спецсимвол>, Ditentukan setelah susu spesial kata kunci (melarikan diri).

Misalnya, template

"% ABB [ABBG] \\ _ ABV%" SpecialSimol "\\"

berarti substring yang terdiri dari urutan simbol: huruf a; huruf b; surat di; satu digit; salah satu huruf a, b, in atau g; Simbol stres; Huruf a; huruf b; surat di. Selain itu, urutan ini dapat ditemukan mulai dari posisi sewenang-wenang dalam string.

Operasi perbandingan

Sama

Operasi ini dimaksudkan untuk membandingkan dua operan per kesetaraan. Sebagai contoh:

Penjualan. PENJUALAN \u003d PENJUALAN. NOMELACLATURA-BINDING

Tidak sama

Operasi ini dirancang untuk membandingkan dua operan untuk ketidaksetaraan. Sebagai contoh:

Penjualan. Kontragent.<> Penjualan. Nomelaclatura-Binding

Kurang

Operasi ini dirancang untuk memverifikasi bahwa operan pertama kurang dari yang kedua. Sebagai contoh:

Surga< ПродажиПрошлые.Сумма

Lebih

Operasi ini dirancang untuk memverifikasi bahwa operan pertama lebih besar dari yang kedua. Sebagai contoh:

Bursa. Summum\u003e berkata. Summum

Kurang atau sama

Operasi ini dirancang untuk memverifikasi bahwa operan pertama kurang atau sama dengan yang kedua. Sebagai contoh:

Surga<= ПродажиПрошлые.Сумма

Lebih atau sama

Operasi ini dirancang untuk memverifikasi bahwa operan pertama lebih atau sama dengan yang kedua. Sebagai contoh:

Dijual. MASM: \u003d kata. Ringkasan

Operasi B.

Operasi ini memeriksa ketersediaan nilai dalam daftar nilai yang ditransmisikan. Hasil operasi akan benar, jika nilainya ditemukan, atau salah - jika tidak. Sebagai contoh:

Nomenklatur dalam (& Produk11, & Product2)

Periksa ketersediaan operasi di kumpulan data

Pengoperasian memeriksa ketersediaan nilai pada kumpulan data yang ditentukan. Data yang diatur untuk memeriksa harus berisi satu bidang. Sebagai contoh:

Penjualan. Bertentung di rekanan

Operasi pemeriksaan nilai pada nol

Operasi ini mengembalikan nilai kebenaran jika nilainya adalah nilai nol. Sebagai contoh:

Penjualan. Progengerant adalah nol

Nilai verifikasi operasi untuk ketidaksetaraan nol

Operasi ini mengembalikan nilai kebenaran jika nilainya bukan nilai nol. Sebagai contoh:

Menjual. Agen kontrol tidak nol

Operasi logis

Operasi logis diambil sebagai ekspresi operan memiliki jenis boolevo.

Operasi ne.

Operasi tidak mengembalikan nilai kebenaran jika operannya diatur ke false, dan nilainya salah jika operannya memiliki nilai kebenaran. Sebagai contoh:

Bukan dokumen. Fragmen program. Dokumen.

Operasi I.

Operasi dan mengembalikan nilai kebenaran jika kedua operan memiliki nilai kebenaran, dan nilainya salah jika salah satu operan menjadi bohong. Sebagai contoh:

Dokumen. Dokumen Framed \u003d Dokumen. Penjamin Emisi dan Dokumen. Kontraktor \u003d & Kontrak

Operasi atau

Operasi atau mengembalikan nilai kebenaran jika salah satu operan adalah nilai kebenaran, dan kebohongan dalam hal kedua operan valid. Sebagai contoh:

Dokumen. Dokumentasi \u003d Dokumen. Pemuat atau dokumen. Fragmentist \u003d & Mitra

Fungsi agregat.

Fungsi agregat melakukan beberapa tindakan di atas kumpulan data.

Jumlah

Jumlah fungsi agregat menghitung jumlah nilai ekspresi yang ditransmisikan sebagai argumen untuk semua catatan terperinci. Sebagai contoh:

Jumlah (penjualan. Ringkasan)

jumlah

Nomor fungsi menghitung jumlah nilai selain nilai nol. Sebagai contoh:

Kuantitas (Penjualan. Convegent)

Jumlah yang berbeda

Fitur ini menghitung jumlah nilai yang berbeda. Sebagai contoh:

Kuantitas (berbagai penjualan. Agen kontrol)

Maksimum

Fungsi mendapat nilai maksimum. Sebagai contoh:

Maksimum (residu. Kebersamaan)

Minimum

Fungsi mendapatkan nilai minimum. Sebagai contoh:

Minimum (residu. Kebersamaan)

Rata-rata

Fungsi ini mendapat nilai rata-rata untuk nilai selain NULL. Sebagai contoh:

Rata-rata (residu. Kebersamaan)

Operasi lain.

Pilihan operasi

Operasi Seleksi dimaksudkan untuk memilih salah satu dari beberapa nilai saat melakukan kondisi tertentu. Sebagai contoh:

Seleksi saat jumlah\u003e 1000 maka jumlah sebaliknya 0 end

Aturan untuk membandingkan dua nilai

Jika jenis nilai-nilai yang dapat dikonfung berbeda satu sama lain, hubungan antara nilai ditentukan berdasarkan prioritas jenis:

  • Null (yang terendah);
  • Boolean;
  • Jumlah;
  • Tanggal;
  • Garis;
  • Jenis Referensi

Hubungan antara berbagai jenis referensi ditentukan berdasarkan referensi nomor tabel yang sesuai dengan jenis ini atau jenis lainnya.

Jika tipe data sama, nilainya dibandingkan dengan aturan berikut:

  • pada tipe Boolean, nilai kebenaran lebih besar dari nilai false;
  • pada jumlah aturan perbandingan yang biasa untuk angka;
  • pada jenis tanggal sebelumnya kurang dari nanti;
  • pada tipe baris - perbandingan baris sesuai dengan fitur basis data nasional yang sudah mapan;
  • jenis referensi dibandingkan berdasarkan nilai-nilai mereka (nomor rekaman, dll.).

Bekerja dengan Null.

Setiap operasi di mana nilai salah satu operan null akan memberikan hasil nol.

Ada pengecualian:

  • operasi dan akan mengembalikan null hanya jika tidak ada operan yang penting;
  • operasi atau akan mengembalikan null hanya jika tidak ada operan yang tidak masalah kebenaran.

PRIORITAS OPERASI

Operasi memiliki prioritas berikut (baris pertama memiliki prioritas yang lebih rendah):

  • B, ada nol, tidak ada nol;
  • =, <>, <=, <, >=, >;
  • Biner +, biner -;
  • *, /, %;
  • Unary +, Unary -.

Fungsi bahasa ekspresi sistem tata letak data

Menghitung

Fungsi ini dimaksudkan untuk menghitung ekspresi dalam konteks beberapa pengelompokan. Fungsi ini memiliki parameter berikut:

  • Ekspresi. Tipe string. Berisi ekspresi yang dihitung;
  • Pengelompokan. Tipe string. Berisi nama grup, dalam konteks yang diperlukan untuk menghitung ekspresi. Jika string kosong digunakan sebagai nama grup, perhitungan akan dieksekusi dalam konteks pengelompokan saat ini. Dalam hal sejumlah kelompok umum akan digunakan sebagai kelompok pengelompokan, perhitungan akan dieksekusi dalam konteks total hasil. Dalam kasus lain, perhitungan akan dilakukan dalam konteks kelompok induk dengan nama yang sama. Sebagai contoh:
Jumlah (Penjualan. Masmoboto) / Hitung ("Jumlah (Penjualan. Ringkasan)", "Obnutogit")

Dalam contoh ini, hasilnya adalah rasio jumlah "penjualan. Ringkasan" entri pengelompokan ke jumlah bidang yang sama di seluruh tata letak.

Tingkat

Fungsi ini dirancang untuk mendapatkan level perekaman saat ini.

Tingkat()

Pemesanan pada diri sendiri

Dapatkan nomor urutan berikutnya.

Pemesanan mandiri ()

Jumlahnya sudah beres

Mengembalikan nomor urutan berikutnya dalam pengelompokan saat ini.

Callergling Group ()

Format

Dapatkan string yang diformat dari nilai yang ditransmisikan.

String format diatur sesuai dengan garis format 1c: perusahaan.

Parameter:

  • Nilai;
  • Format string.

Format (Nilai Terpengar. GUMBER, "CDC \u003d 2")

Awal periode

Parameter:

    • Menit;
    • Hari;
    • Seminggu;
    • Bulan;
    • Perempat;
    • Dasawarsa;
    • Setengah tahun.

StarTeriod (Dateastern (2002, 10, 12, 10, 15, 34), "Bulan")

Hasil:

01.10.2002 0:00:00

Ending End.

Fungsi ini dirancang untuk menyoroti tanggal tertentu dari tanggal tertentu.

Parameter:

  • Tanggal. Jenis Tanggal. Tanggal yang ditentukan;
  • Jenis periode. Tipe string. Berisi salah satu nilainya:
    • Menit;
    • Hari;
    • Seminggu;
    • Bulan;
    • Perempat;
    • Dasawarsa;
    • Setengah tahun.

Ending Extruder (Dateastern (2002, 10, 12, 10, 15, 34), "Minggu")

Hasil:

13.10.2002 23:59:59

Tambahkan ruang

Fungsi ini dirancang untuk ditambahkan ke tanggal beberapa ukuran.

Parameter:

  • Jenis zoom. Tipe string. Berisi salah satu nilainya:
    • Menit;
    • Hari;
    • Seminggu;
    • Bulan;
    • Perempat;
    • Dasawarsa;
    • Setengah tahun.
  • Nilainya berapa banyak yang Anda butuhkan untuk menambah tanggal. Jenis nomor. Bagian fraksional diabaikan.

Tambahkan Space (Dateastern (2002, 10, 12, 10, 15, 34), "Bulan", 1)

Hasil:

12.11.2002 10:15:34

Pembagian

Fungsi ini dirancang untuk mendapatkan perbedaan antara dua tanggal.

Parameter:

  • Ekspresi. Jenis Tanggal. Tanggal sumber;
  • Ekspresi. Jenis Tanggal. Tanggal yang diajukan;
  • Jenis perbedaan. Tipe string. Berisi salah satu nilainya:
    • Kedua;
    • Menit;
    • Hari;
    • Bulan;
    • Perempat;

Distribusi (Dateastern (2002, 10, 12, 10, 15, 34), Dateastern (2002, 10, 14, 9, 18, 06), "Hari")

Hasil:

Substring.

Fitur ini Dirancang untuk menyoroti substring dari string.

Parameter:

  • Garis. Tipe string. String dari mana dibedakan oleh substring;
  • Posisi. Jenis nomor. Posisi simbol dari mana substring yang dialokasikan dari garis dimulai;
  • Panjangnya. Jenis nomor. Panjang substring yang disekresikan.

Substring (counterparties. Tekan, 1, 4)

Stroke datar

Fungsi ini dirancang untuk menentukan panjang string.

Parameter:

  • Garis. Tipe string. Baris, panjangnya ditentukan.

String (counterparties. Tekan)

Tahun

Fitur ini dirancang untuk menyoroti tahun dari nilai tanggal.

Parameter:

  • Tanggal. Jenis Tanggal. Tanggal untuk tahun itu ditentukan.

Tahun (dat)

Perempat

Fitur ini dimaksudkan untuk menyoroti nomor seperempat dari nilai tipe tanggal. Nomor kuartal normal terletak di kisaran dari 1 hingga 4.

Parameter

  • Tanggal. Jenis Tanggal. Tanggal di mana kuartal ditentukan
Seperempat (rask'dat)

Bulan

Fitur ini dimaksudkan untuk menyoroti jumlah bulan dari nilai tipe tanggal. Jumlah bulan biasanya terletak di zona band dari 1 hingga 12.

  • Tanggal. Jenis Tanggal. Tanggal di mana bulan ditentukan.
Bulan (dat)

Uang

Fitur ini dirancang untuk menerima hari dalam setahun dari jenis tanggal. Hari dalam setahun normal dalam kisaran 1 hingga 365 (366).

  • Tanggal. Jenis Tanggal. Tanggal dimana hari dalam setahun ditentukan.
Uang (data rask)

Hari

Fitur ini dirancang untuk menerima hari dalam sebulan dari jenis tanggal. Hari dari bulan ini biasanya dalam kisaran dari 1 hingga 31.

  • Tanggal. Jenis Tanggal. Tanggal yang ditentukan oleh hari dalam sebulan.
Hari (dat)

Seminggu

Fitur ini dirancang untuk menerima jumlah tahun tahun ini dari nilai tipe tanggal. Minggu-minggu tahun ini diberi nomor, mulai dari 1.

  • Tanggal. Jenis Tanggal. Tanggal di mana jumlah minggu ditentukan.
Minggu (Raskakl. Data)

Dua kali lipat

Fitur ini dirancang untuk menerima hari dalam seminggu dari jenis tanggal. Hari dalam seminggu biasanya dalam kisaran dari 1 (Senin) hingga 7 (Minggu).

  • Tanggal. Jenis Tanggal. Tanggal di mana hari dalam seminggu ditentukan.
Dua kali lipat (raskakl. Data)

Jam

Fitur ini dirancang untuk mendapatkan satu jam sehari dari jenis tanggal. Satu jam dalam kisaran dari 0 hingga 23.

  • Tanggal. Jenis Tanggal. Tanggal dimana jam sehari ditentukan.
Jam (rask tat)

Menit

Fitur ini dirancang untuk mendapatkan satu menit dari satu jam dari jenis tanggal. Satu jam dalam jangkauan dari 0 hingga 59.

  • Tanggal. Jenis Tanggal. Tanggal yang ditentukan oleh satu menit berjam-jam.
Menit (raskakl. Data)

Kedua

Fungsi ini dirancang untuk mendapatkan menit kedua dari nilai tipe tanggal. Menit kedua berada dalam kisaran dari 0 hingga 59.

  • Tanggal. Jenis Tanggal. Tanggal pada detik yang ditentukan beberapa menit.
Kedua (dat)

Mengekspresikan

Fungsi ini dirancang untuk menyorot jenis dari ekspresi yang dapat berisi tipe komposit. Jika ekspresi berisi tipe selain dari jenis yang diperlukan, nilai NULL akan dikembalikan.

Parameter:

  • Ekspresi yang ditransformasikan;
  • Jenis catatan. Tipe string. Mengandung string tipe. Misalnya, "angka", "string", dll. Selain tipe primitif garis ini Mungkin berisi nama tabel. Dalam hal ini, upaya akan dilakukan untuk merujuk pada tautan ke tabel yang ditentukan.

Express (Data. Wajib1, "Nomor (10.3)")

Naull.

Fungsi ini mengembalikan nilai parameter kedua dalam kasus jika nilai parameter nol pertama.

Jika tidak, nilai parameter pertama akan dikembalikan.

Ada iSNull (jumlah (penjualan. Ringkasan), 0)

Fungsi modul umum

Ekspresi mekanisme tata letak data dapat berisi panggilan untuk fungsi modul konfigurasi umum global. Tidak diperlukan sintaks lebih lanjut untuk memanggil fungsi-fungsi tersebut tidak diperlukan.

Contoh ini akan disebut fungsi "Singkatan" dari modul konfigurasi umum.

Perhatikan bahwa penggunaan fungsi modul umum hanya diperbolehkan ketika menentukan parameter prosesor data yang sesuai.

Selain itu, fungsi modul umum tidak dapat digunakan dalam ekspresi bidang pengguna.

Penambahan laporan siap pakai dengan kolom Anda.
Dalam laporan yang dibuat menggunakan "Sirkuit Tata Letak Data" dari mode pengguna, Anda dapat menambahkan bidang Anda untuk ditampilkan selama formasi.
Di bidang ini, tindakan aritmatika diperbolehkan.

Sudah lama yang lalu ditulis oleh laporan "penjualan barang untuk pengiriman" http://infostart.ru/public/16477/. Dalam publikasi ini, kami tidak akan menyimpulkan relevansinya dan martabat. Laporan ini akan diperlakukan sebagai template untuk eksperimen, modifikasi. Terutama dalam komentar yang ditanya bagaimana cara menambahkan bidang.

Buka "Pengaturan ..." dan buka tab "Pengaturan Kustom".

2. Tambahkan "ekspresi lapangan baru"

Menambahkan bidang yang dikenakan dengan meresepkan tindakan aritmatika antara bidang yang tersedia (ini ditandai dengan persegi hijau). Juga, fitur jika nama bidang seperti itu terdiri dari dua kata atau lebih, itu harus ditutup dalam tanda kurung persegi. Dapatkan seperti ini - [Jumlah Penjualan].

Setelah menabung, bidang ini akan tersedia untuk seleksi:

Dengan bantuan manipulasi sederhana, Anda mendapatkan nilai yang diperlukan. Fitur ini Izinkan menambahkan bidang yang diinginkan. Dalam opsi perhitungan seperti yang Anda butuhkan. Profitabilitas, efisiensi dan nilai-nilai lain akan dipertimbangkan dalam logika perhitungan aritmatika Anda.

Dalam hal ini, pekerjaan Anda tidak akan hilang dan lain kali Anda membuka laporan dapat digunakan.

Fungsi yang digunakan saat menulis bidang.

  • Aritmatika "+, -, *, /" Jelas untuk ini, saya pikir menjelaskan prinsip tindakan mereka tidak perlu.
  • Ekspresi logika. Digunakan untuk menentukan pilihan. "\u003e< , = , >= , <= , <>, Atau, atau tidak. " Ekspresi ini digunakan dengan operasi pemilihan.
  • Operasi pemilihan. Berlaku untuk mendapatkan salah satu nilai yang mungkin sesuai dengan kondisi yang ditentukan.

Pilihan
KAPAN< Операция выбора > KEMUDIAN<Выражение>
Jika tidak<Выражение>
AKHIR
Contoh:
Pilihan
Ketika kuantitas\u003e 0 dan jumlah\u003e 0 lalu "benar"
Kalau tidak, "Kesalahan"
AKHIR

Ini didekripsi: asalkan jumlahnya lebih besar dari nol dan jumlah lebih nol, teks "dengan benar" akan ditampilkan, dan jika setidaknya satu dari kondisi tidak diperbolehkan untuk menampilkan "kesalahan".

  • Fungsi bawaan, memungkinkan Anda menghasilkan konversi tertentu dengan bidang.

Substro ("ekspresi", "posisi awal", "posisi akhir") - pisahkan bagian dari "ekspresi", dibatasi oleh kerangka "awal ..." dan "Ultimate ...".
Seperti yang terlihat dengan nilai nomenklatur - "pasta cokelat" formula substring (nomenklatur, 1.5) akan menarik nilai "Tempel"

Fungsi digunakan untuk bekerja dengan tanggal

TAHUN(<Дата>), Perempat (<Дата>), Bulan (<Дата>), Putri (<Дата>), HARI(<Дата>), Seminggu (<Дата>), Orang-orang petani (<Дата>),JAM(<Дата>), Menit (<Дата>), Kedua (<Дата>)

Nilai yang sesuai dengan nilai nama akan ditampilkan.

Tingkat di atas ("tanggal", "periode shift"), akhir ("tanggal", "periode shift"). Untuk fitur-fitur ini, nilai ekspresi tanggal di awal atau akhir tanggal yang ditentukan.

Tambahkan Space ("Tanggal", "Periode Shift", "Nilai yang ingin Anda tambahkan Tanggal") - Fungsi ini memungkinkan Anda untuk menambah atau mengurangi tanggal untuk nilai tertentu.

Distribusi ("Date1", "Date2", "Periode Rekam") - Fungsi ini dimaksudkan untuk memperoleh perbedaan antara dua tanggal.

"Periode Shift" adalah salah satu "menit, jam, jam, minggu, bulan, kuartal, tahun, dekade, setengah tahun."

5. Fungsi bahasa kueri yang cerdas digunakan saat mengelompokkan hasil hitungan hasil

Jumlah (<>) Jumlah aritmatika dari semua nilai dalam sampel.
Rata-rata (<>) Menghitung nilai rata-rata semua dalam sampel
Minimum (<>) Menghitung nilai minimum dari semua nilai dalam sampel
Maksimum (<>) Menghitung nilai maksimum dari semua nilai dalam sampel
Kuantitas (<>) Menghitung jumlah nilai parameter dalam sampel. Fitur ini memungkinkan kami untuk menggunakan opsi. Kuantitas (*) - Memungkinkan Anda menghitung jumlah baris sebagai hasilnya. Nomor (berbagai "ekspresi") - memungkinkan Anda untuk menghitung jumlah nilai yang berbeda dari bidang yang ditentukan.

Jumlah (pilihan
Ketika substring (nomenklatur, 1, 5) \u003d "tempel"
Lalu kuantitas * 0.2
Khorit Jumlah * 0,35
Tamat)

Ternyata jumlah nilai pada saat yang sama ketika nomenklatur hadir di awal nama "tempel" dalam hal ini, jumlahnya meningkat sebesar 0,2 jika tidak terjadi sebesar 0,35.

Tahun ([dokumen. Data])

Umumkan setahun ketika dokumen direkam / dipegang.

Contoh yang lebih kompleks, tanpa menguraikan.

Pilihan
Ketika seperempat ([dokumen. Data]) \u003d 1 dan substring (nomenklatur, 1, 5) \u003d "Tempel"
Lalu kuantitas * 0.2
Kalau tidak, pilihannya
Ketika seperempat ([dokumen. Data]) \u003d 2
Lalu kuantitas * 0.3
Kalau tidak, pilihannya
Ketika seperempat ([dokumen. Data]) \u003d 3
Lalu kuantitas * 0.4
Kalau tidak, pilihannya
Ketika seperempat ([dokumen. Data]) \u003d 4
Lalu kuantitas * 0,5
tamat
tamat
tamat
tamat

Kami melihat pengaturan laporan yang diimplementasikan berdasarkan SCD. Sekarang kami akan menganalisis pengaturan yang lebih halus dan terperinci untuk opsi laporan. Jendela "canggih" dari pengaturan opsi laporan disebut oleh perintah "lebih banyak" - "Lainnya" - "Ganti opsi laporan".

Jendela ganti opsi laporan dibagi menjadi dua bagian:

1. Struktur laporan.

2. Pengaturan laporan.


Bagian struktur versi laporan mirip dengan tab struktur pengaturan laporan standar. Penugasan dan konfigurasi grup dipertimbangkan secara rinci sebagian dari artikel.

Tabel status opsi laporan, kecuali secara langsung kolom dengan grup, berisi beberapa kolom tambahan:

Bagian Pengaturan Opsi Laporan memberikan peluang bagi pengguna untuk mengkonfigurasi laporan dengan kebutuhan mereka. Hampir sepenuhnya bertepatan dengan pengaturan standar Laporan dibahas sebagian 1. Pertimbangkan semua tab bagian dan perhatikan perbedaannya.

Bagian Pengaturan terdiri dari tab berikut:

1. Parameter. Berisi parameter CCD yang dapat diakses oleh pengguna.

Parameter CCC adalah sedikit nilai yang digunakan untuk mendapatkan data laporan. Ini bisa menjadi nilai dari kondisi untuk memilih atau memeriksa data, serta nilai bantu.


Tabel parameter disajikan dalam "Parameter" Format - "Nilai". Jika perlu, Anda dapat mengubah nilai parameter. Menekan tombol "Properti Item Pengaturan Kustom" membuka pengaturan elemen pengguna.


Di jendela ini, Anda dapat memilih apakah item tersebut akan diaktifkan di Pengaturan Pengguna (I.E., pengguna terlihat saat mengatur laporan), atur representasi elemen dan mode pengeditan ( akses cepat Dalam header laporan, laporan yang biasa dan pengaturan yang tidak dapat diakses).

Sifat-sifat elemen pengaturan pengguna juga telah dikelompokkan bidang, bidang, pilihan dan elemen desain bersyarat.

2. Bidang khusus. Berisi bidang-bidang yang digunakan pengguna sendiri berdasarkan data yang dipilih oleh laporan.


Pengguna dapat menambahkan dua jenis bidang:

  • Pilihan lapangan baru ...
  • Ekspresi lapangan baru ...

Bidang seleksi memungkinkan Anda untuk menghitung nilai pada kondisi tertentu. Jendela pengeditan bidang pemilihan berisi bidang header dan tabel di mana pemilihan, nilai, dan representasi bidang ditentukan. Seleksi adalah suatu kondisi, tergantung pada nilai yang diinginkan akan diganti.


Misalnya, kami menghitung penilaian jumlah penjualan. Kami akan berasumsi bahwa jika kurang dari 10 unit barang terjual, mereka menjual sedikit, dan jika lebih dari 10 unit banyak. Untuk melakukan ini, atur 2 nilai bidang yang dihitung: yang pertama akan dengan seleksi "jumlah barang kurang dari atau sama dengan" 10 "", yang kedua dengan seleksi "jumlah barang lebih besar dari "10".

Bidang ekspresi memungkinkan menghitung nilai menggunakan algoritma arbitrer. Mereka dapat menggunakan fungsi-fungsi bahasa kueri dan bahasa pemrograman bawaan 1C. Jendela pengeditan bidang ekspresi berisi dua bidang untuk ekspresi entri terperinci dan terakhir. Entri akhir adalah pengelompokan yang dikonfigurasi dalam area "Struktur Laporan", mereka perlu menggunakan fungsi agregat ("jumlah", "minimum", "maksimum", "kuantitas").

Misalnya, kami menghitung persentase rata-rata diskon. Persentase rata-rata diskon dihitung dengan rumus: [Jumlah penjualan tanpa diskon] - [Jumlah penjualan dengan diskon] / [Jumlah penjualan tanpa diskon]. Harus diingat bahwa jumlah penjualan tanpa diskon bisa nol, jadi kami menggunakan operator pemilihan untuk memeriksa. Kami memperoleh ekspresi berikut:

· Untuk catatan terperinci:

Pilihan

Saat [Jumlah Penjualan Tanpa Diskon] \u003d 0

Lalu 0.

Kalau tidak [Jumlah Penjualan Tanpa Diskon] - [Jumlah Penjualan dengan Diskon] / [Jumlah Penjualan Tanpa Diskon]

tamat

· Untuk entri akhir:

Pilihan

Ketika jumlah ([jumlah penjualan tanpa diskon]) \u003d 0

Lalu 0.

Jika tidak, jumlah (jumlah penjualan tanpa diskon]) - jumlah ([jumlah penjualan dengan diskon]) / jumlah ([jumlah penjualan tanpa diskon])

tamat

Seperti disebutkan sebelumnya, dalam ekspresi entri akhir, kami menggunakan fungsi agregat "jumlah".

3. Bidang digiling. Berisi bidang-bidang dimana hasil opsi laporan akan ditanam. Bidang gerinda dikonfigurasikan secara terpisah untuk masing-masing grup, tetapi Anda dapat mengatur bidang pengelompokan umum untuk opsi laporan, jika Anda memilih root "Laporan" dalam struktur. Anda dapat menambahkan bidang dari hasil laporan, bidang pengguna atau memilih bidang Otomatis, maka sistem akan memilih bidang secara otomatis. Juga, tab ini memungkinkan Anda untuk mengubah prosedur untuk mengelompokkan bidang.


4. Bidang. Berisi bidang yang akan ditampilkan dalam hasil opsi laporan. Bidang dikonfigurasikan secara terpisah untuk masing-masing kelompok, tetapi Anda dapat mengatur bidang umum untuk opsi laporan jika Anda memilih struktur root "Laporkan" dalam struktur. Anda dapat menambahkan bidang dari hasil laporan, bidang pengguna atau memilih bidang Otomatis, maka sistem akan memilih bidang secara otomatis. Juga, tab ini memungkinkan Anda untuk mengubah urutan bidang.

Bidang dapat dikelompokkan untuk secara logis memilih bagian dari laporan atau menetapkan pengaturan kolom khusus. Saat menambahkan grup, kolom "lokasi" menjadi aktif dan memungkinkan Anda memilih salah satu opsi lokasi:

  • Otomatis - sistem memiliki bidang secara otomatis;
  • Horizontal - bidang secara horizontal;
  • Vertikal - bidang terletak secara vertikal;
  • Dalam kolom terpisah - bidang terletak di kolom yang berbeda;
  • Bersama - bidang terletak di satu kolom.


5. Seleksi. Berisi pilihan yang digunakan dalam versi laporan. Menyiapkan pilihan dipertimbangkan secara rinci pada bagian 1 dari artikel ini. Memilih dikonfigurasikan secara terpisah untuk masing-masing kelompok, tetapi Anda dapat mengatur pemilihan umum untuk opsi laporan, jika Anda memilih struktur root "Laporkan" dalam struktur.


6. Urutkan. Berisi bidang penyortiran yang digunakan dalam versi laporan. Menyiapkan bidang penyortiran dipertimbangkan secara rinci dalam hal artikel ini. Penyortiran dikonfigurasikan secara terpisah untuk masing-masing kelompok, tetapi Anda dapat mengatur bidang penyortiran umum untuk opsi laporan, jika Anda memilih struktur root "Laporkan" dalam struktur.


7. Desain Bersyarat. Berisi elemen desain bersyarat yang digunakan dalam versi laporan. Pendaftaran Bersyarat dipertimbangkan secara rinci dalam hal artikel ini. Desain bersyarat dikonfigurasikan secara terpisah untuk masing-masing kelompok, tetapi Anda dapat menentukan elemen desain kondisional umum untuk opsi laporan, jika Anda memilih root "Laporan" dalam struktur.


8. Pengaturan lanjutan. Mengandung pengaturan tambahan Laporkan dekorasi. Memungkinkan Anda untuk memilih yang umum penampilan Laporan, lokasi bidang, grup, perincian, sumber daya, hasil, atur pengaturan grafik, mengontrol output header, parameter, dan seleksi, tentukan posisi sumber daya dan perbaiki header dan kolom pengelompokan versi laporan.


Kesimpulannya, saya ingin mencatat bahwa pengaturan laporan tidak hanya dapat disimpan sebagai versi laporan, tetapi juga untuk mengunggah ke file ("lebih" - "Simpan Pengaturan"). Untuk mengunduh, pilih "Muat Pengaturan" dan pilih file yang disimpan. Dengan demikian, kami dapat mengirimkan pengaturan opsi laporan antara basis yang berbeda yang memiliki konfigurasi yang sama.


Berdasarkan hal ini, kami dapat merangkum bahwa pengguna tidak hanya dapat mengkonfigurasi laporan dengan kebutuhannya, tetapi juga menyimpan pengaturannya dan menggunakannya nanti jika perlu.

Laporan tersebut menerima sisa-sisa barang di gudang dalam berbagai pemotongan (karakteristik, seri, unit pengukuran, dll.). Agar tidak memperumit contoh, kami hanya akan meninggalkan pengelompokan pada nomenklatur dan hanya menarik saldo akhir pada tanggal laporan. Tabel terakhir akan menunjukkan sisa-sisa nomenklatur di bagian gudang yang lebih dekat.

Tetapi kemudian pengguna mengatakan bahwa ia perlu menambahkan dua bidang tambahan:

  1. Peringatan kuantitas. Jika jumlahnya kurang dari atau sama dengan 5, maka peringatan "tidak cukup". Jika jumlahnya lebih besar dari 5, maka kurang dari atau sama dengan 10, maka peringatan "normal". Jika kuantitas lebih dari 10, maka "kelebihan pasokan".
  2. Rumus untuk menghitung residu akhir. Dalam kolom tambahan, pengguna ingin melihat tindakan apa yang dilakukan program untuk mendapatkan nilai saldo akhir. Artinya, rumus "residu awal + turnover \u003d ujung residu", di mana nilai-nilai yang sesuai akan diganti.

Tentu saja, programmer dapat melakukan intervensi, dan mengubah permintaan untuk skema tata letak data dan konfigurasi laporan, tetapi kami akan menjalankan tugas dalam mode pengguna tanpa mengubah laporan dalam mode konfigurator.

Bidang tambahan

Jadi, lanjutkan. Mari kita pergi ke pengaturan opsi laporan:

Kami akan membuka desainer pengaturan laporan SCD. Beralih ke tab "Bidang Kustom" akan mulai membuatnya.

Screenshot sudah menampilkan dua bidang pengguna yang dibuat, fungsionalitas yang dijelaskan di atas. Pertimbangkan pengaturan masing-masing. Mari kita mulai dengan bidang "Peringatan".

Untuk pengaturan, kita perlu mengatur header lapangan untuk ditampilkan dalam laporan, serta menentukan ekspresi untuk menghasilkan nilai dalam bidang catatan terperinci dan dalam hasil untuk bidang ini. Karena peringatan pertunjukan dalam hasil tidak diperlukan, kami menulis ekspresi hanya untuk catatan terperinci.

Sintaks ekspresi ini mirip dengan bahasa Permintaan 1C: Perusahaan. Ada beberapa perbedaan, tetapi kami tidak akan menyentuhnya secara rinci dalam artikel ini. Ekspresi menggunakan operator seleksi:

"Pilihan saat kemudian akhir ",

mirip dengan operator dalam bahasa kueri. Fields dalam ekspresi bidang pengguna diatur dengan representasi mereka. Agar platform menyadari bahwa representasi yang diperkenalkan menunjukkan bidang tertentu, nama tampilan dibingkai oleh kurung persegi "". Jika perwakilan bidang memiliki satu kata, maka tanda kurung tidak diperlukan. Dalam contoh di atas, kami memohon pada bidang "residu akhir".

Demikian pula, pengaturan diatur untuk rumus formula formula resid akhir:


Di sini Anda harus mengatakan tentang beberapa nuansa:

  1. Kami dapat menunjukkan formula di sel hanya sebagai string. Oleh karena itu, kami mengonversi semua nilai numerik ke string menggunakan metode ekspresi ekspresi SCD "string ()" mengubah nilai apa pun ke string. Setelah melaksanakan string concontine.
  2. Agar bidang akan ditampilkan dalam hasil laporan, tambahkan rumus serupa dengan ekspresi entri akhir. Anda hanya perlu menambahkan fungsi agregat "SUM ()" untuk setiap nilai sesuai dengan hasilnya.

Semuanya siap digunakan bidang dalam laporan!

Kustomisasi dan bentuk laporan

Formula "Formula perhitungan residu akhir" Tambahkan ke bidang Laporan yang ditampilkan:

Ekspresi "Peringatan" kami akan menambah catatan terperinci dari nomenklatur. Untuk melakukan ini, tambahkan bidang ekspresi "Peringatan" ke pengelompokan. Setelah itu, struktur laporan akan mengambil formulir berikut:

Pengaturan laporan tentang ini dibuat. Jika perlu, pengaturan tambahan dapat disimpan untuk penggunaan kembali. Kami membentuk laporan:

Seperti yang kita lihat, bidang ditambahkan ke laporan sesuai dengan ketentuan tugas. Dalam hal ini, perbaiki laporan dalam mode konfigurator tidak harus. Ini adalah keuntungan utama dari bidang khusus! Pengguna yang dilatih oleh mereka dapat menggunakannya untuk membuat laporan tentang kebutuhannya sendiri, tanpa partisipasi programmer.

Percayalah, adalah mungkin untuk mengajarkannya untuk menggunakan peluang ini, karena jauh lebih mudah daripada menulis formula di spreadsheets. Unggul.