Büyük isteklerin küçük numaraları. Önceden Tanımlanmış Veri Türleri

Büyük isteklerin küçük numaraları.  Önceden Tanımlanmış Veri Türleri
Büyük isteklerin küçük numaraları. Önceden Tanımlanmış Veri Türleri

1C platformunda veritabanı tablolarına sorgular oluşturmak ve yürütmek için özel bir programlama dili nesnesi kullanılır. Rica etmek. Bu nesne, yapı çağrılarak oluşturulur. Yeni istek. Gerekirse gruplandırılmış ve sıralanmış karmaşık bir veri seçimi almanız gerektiğinde bir sorgu kullanmak uygundur. Sorgu kullanmanın klasik bir örneği, üzerinde birikim kaydının durumunun bir özetini almaktır. belli bir an zaman. Ayrıca sorgulama mekanizması farklı zaman dilimlerinde bilgi almayı kolaylaştırmaktadır.

İstek metni, isteğin yürütülmesi gereken talimattır. İsteğin gövdesi şunları açıklar:

  • sorgu veri kaynakları olarak kullanılan bilgi tabanı tabloları;
  • sorguda işlenmesi gereken tablo alanları;
  • gruplama kuralları;
  • sıralama sonuçları;
  • vesaire.
Talimat özel bir dilde derlenmiştir - sorgulama dili ve ayrı bölümlerden oluşur - bölümler, cümleler, anahtar sözcükler, işlevler, aritmetik ve mantıksal operatörler, yorumlar, sabitler ve parametreler.

1C platformunun sorgulama dili, diğer SQL dillerinin sözdizimine çok benzer, ancak farklılıklar vardır. Yerleşik sorgulama dilinin başlıca avantajları şunlardır: alanların başvurularının kaldırılması, sanal tabloların varlığı, rahat çalışma sorgularda toplamlar, yazılmamış alanlar.

  • enum değerleri;
  • önceden tanımlanmış veriler:
  • dizinler;
  • özellik türlerinin planları;
  • hesap çizelgeleri;
  • hesaplama türleri için planlar;
  • boş bağlantılar;
  • iş süreçlerinin yol noktalarının değerleri.
Ayrıca, istek metni, veritabanı tablolarındaki alanlara atanabilecek sistem numaralandırma değerleri içerebilir: AccumulationMotionType, AccountType ve AccountingMovementType. İstekler, bir işlev türü hazır bilgisi kullanan önceden tanımlanmış yapılandırma verilerine ve sistem numaralandırma değerlerine atıfta bulunur ANLAM. Bu hazır bilgi, sorgunun okunabilirliğini artırır ve sorgu parametrelerinin sayısını azaltır.

Değişmez harf kullanımına bir örnek ANLAM:
WHERE Şehir = VALUE(Directory.Cities.Moscow)
WHERE Şehir = VALUE(Reference.City.EmptyReference)
WHEREItemType = VALUE(Enumeration.ProductTypes.Service)
WHEREMovementType = VALUE(MovementTypeAccumulation.Income)
WHERE RoutePoint = DEĞER(BusinessProcess.BusinessProcess1.RoutePoint.Action1

2) Kullanım talimatları OTO SİPARİŞ bir sorguda sorgu yürütme süresi çok yüksek olabilir, bu nedenle sıralama gerekmiyorsa hiç kullanmamak daha iyidir. Çoğu durumda, sıralamayı uygulamanın en iyi yolu deyimdir. GÖRE SIRALA.

Otomatik düzenleme aşağıdaki ilkelere göre çalışır:

  • Sorguda ORDER BY yan tümcesi belirtilmişse, bu yan tümcedeki tabloya yapılan her başvuru, tablonun varsayılan olarak sıralandığı alanlarla değiştirilecektir (dizinler için bu kod veya addır, belgeler için tarih belgenin). Sıralama alanı hiyerarşik bir dizine başvuruyorsa, bu dizine göre hiyerarşik sıralama uygulanacaktır.
  • Sorguda ORDER BY yan tümcesi yoksa, ancak bir TOTAL yan tümcesi varsa, sorgu sonucu TOTAL yan tümcesinde bulunan alanlara göre sıralanır. anahtar kelime Yazılım, aynı sırayla ve toplamlar alanlar - bağlantılar tarafından hesaplandıysa, o zaman başvurulan tabloların varsayılan sıralama alanları tarafından.
  • Sorguda ORDER BY ve TOTAL yan tümceleri yoksa ancak bir GROUP BY yan tümcesi varsa, o zaman sorgu sonucu tümcede aynı sırada bulunan alanlara göre sıralanır ve gruplama alanlara göre yapılmışsa - bağlantılar, ardından varsayılan olarak başvurulan alan tablolarını sıralar.
  • Sorgu yan tümceleri ve ORDER BY, TOTAL ve GROUP BY içermiyorsa, sonuç, sorguda göründükleri sırayla, verilerin seçildiği tablolar için varsayılan sıralama alanlarına göre sıralanır.

Sorgu TOTAL yan tümcesini içeriyorsa, her toplam düzeyi ayrı ayrı sıralanır.

3) Sorgu sonucunu kullanıcıya görüntülerken (örneğin, bir sorgu oluştururken veya kullanarak sorgu sonucunu görüntülerken) veritabanını yeniden sorgulamaktan kaçınmak elektronik tablo belgesi) talimatını kullanmakta fayda var SUNUMBAĞLANTILARI Bir referans değerinin temsilini almanızı sağlayan A.

Talimatı kullanmak da mümkündür VERİM- rasgele bir türdeki bir değerin dize temsilini elde etmek için tasarlanmıştır. Bu komutlar arasındaki fark, ilk durumda, eğer komutlar bir başvuru iletirse sonuç bir dizi olur, diğer durumlarda sonuç, iletilen parametrenin değeri olur. İkinci durumda, talimatın sonucu her zaman bir dizi olacaktır!

4) Sorgu bileşik tipte bir alan içeriyorsa, bu tür alanlar için talimatı kullanarak alan değerlerinin belirli bir tipe dönüştürülmesi gerekli hale gelir. İFADE ETMEK, gereksiz tabloları bileşik veri türündeki bir alanla sol bağlantıdan kaldırmanıza ve sorguyu hızlandırmanıza olanak tanır.

Örnek:
Mal Kalıntılarının biriktirilmesi için, Tescil Ettiren alanının sahip olduğu bir kayıt vardır. bileşik tip. Talepte Mal Fişi Evrak Tarih ve Numarası seçili iken Sicil alanından evrak detayına girildiğinde birikim sicil tablosunun sicil evrak tabloları ile bağlantısının çok fazla bırakılmasına neden olmamaktadır.

SEÇMEK
EXPRESS(Mal Kalıntıları.Kayıt Şirketi AS Belgesi.Mal Fişi).Numara AS Fiş Numarası,
EXPRESS(Malların Kalıntıları.Kayıt Şirketi AS Belgesi.Malların Alındısı).Tarih AS Alınma Tarihi
İTİBAREN
Biriktirme Kaydı. Mal Kalıntısı AS Mal Kalıntısı

Eğer type cast uygun görülmezse, type cast'in sonucu NULL olacaktır.

5) Talimatları unutmayın İZİN VERİLMİŞ, bu, sorgunun yalnızca ilgili kayıtları seçeceği anlamına gelir. şu anki kullanıcı hakları var. Bu kelime belirtilmezse, sorgunun kullanıcının haklarına sahip olmadığı kayıtları seçmesi durumunda, sorgu bir hatayla çalışacaktır.

6) Sorgu bir birleştirme kullanıyorsa ve birleştirmenin bazı bölümlerinde iç içe geçmiş tablolar varsa (belge ile tablo bölümü) ve bazıları bunu yapmazsa, seçim listesini alanlarla - boş iç içe geçmiş tablolar - tamamlamak gerekli hale gelir. Bu, anahtar kelime kullanılarak yapılır. BOŞ TABLO, bundan sonra iç içe tablonun oluşacağı alanların takma adları parantez içinde belirtilir.

Örnek:
// Sayı ve Kompozisyon alanlarını seçin
// Document.Invoice sanal tablosundan
KOMPOZİSYON OLARAK Reference.Number, EMPTYTABLE.(Nom, Tov, Adet) SEÇİN
Document.Invoice'dan
TÜMÜNÜ BİRLEŞTİRİN
SEÇ Bağlantı.Numarası, Kompozisyon.(SatırNumarası, Ürün, Miktar)
Document.Invoice Document.Invoice.Composition.* FROM
7) Sorgu sonucunda yinelenen satırlardan kaçınmak için talimatı kullanmalısınız. ÇEŞİTLİ, çünkü daha açık ve net ve talimat GRUPLANDIRMAYA GÖRE gruplama için kullanılır toplama işlevleri. Bu arada, toplama işlevleri kullanılırken cümle GRUPLANDIRMAYA GÖRE tüm sorgu sonuçları tek bir satırda gruplandırılırken hiç belirtilmeyebilir.

Örnek:
// Hangi karşı tarafları bulmak gerekiyor
// mallar dönem için sevk edildi.
Çeşitli Seç
Belge.Fatura.Yüklenici

8) Talimat GRUPLANDIRMAYA GÖRE alanlara erişmenizi sağlar Üst düzey, iç içe geçmiş tablo alanlarına toplama işlevleri uygulanmışsa, sonuçları bu alanlara göre gruplandırmadan. 1C yardımında yazılmasına rağmen, sorgu sonuçlarını gruplandırırken, seçim alanları listesinde toplama işlevleri belirtilmelidir ve toplama işlevlerine ek olarak, seçim listesinde yalnızca gruplandırmanın yapıldığı alanlar belirtilebilir. alanlar.

Örnek:
SEÇMEK
Mal ve Hizmet Girişi Mallar (SUM (Miktar), Sınıflandırma),
Mal ve Hizmetin Alınması Bağlantı,
Mal ve Hizmetlerin Alınması Karşı Taraf
İTİBAREN
Belge.Mal ve Hizmetlerin Alındığı Mal ve Hizmetlerin Alındığı OLARAK
GRUPLANDIRMAYA GÖRE
Mal ve Hizmetlerin Kabulü Mallar (Terminoloji)

9) Talimat BOŞ NULL değerini başka bir değerle değiştirmek amaçlanmıştır, ancak ilk parametrenin türü bir dize veya sayı ise ikinci parametrenin birincinin türüne dönüştürüleceğini unutmayın.

10) Ana tabloya atıfta bulunurken, koşuldaki alt tablonun verilerine başvurabilirsiniz. Bu özelliğe bir alt tablonun alanlarının başvurusunun kaldırılması denir.

Örnek (tablo bölümünde belirli bir ürünü içeren belgeleri arayın):
SEÇMEK
Giriş.Bağlantı
İTİBAREN
Document.Incoming Burada Incoming.Mallar.Nomenclature = &Nomenclature.

Bu sorgunun Incoming.Products alt tablosundaki sorguya göre avantajı, belgelerde yinelenenler varsa, sorgu sonucunun anahtar kelimeyi kullanmadan yalnızca benzersiz belgeleri döndürmesidir. ÇEŞİTLİ.

11) İlginç bir operatör seçeneği İÇİNDE(Alan1, Alan2, ... , AlanN) In (Alan1, Alan2, ... , AlanN) gibi kümelerin kümesinde sıralı bir kümenin oluşumunun kontrolüdür.

Örnek:
SEÇMEK
Müteahhitler.Link
NEREDE
(Yükleniciler.Link, Ürünler.Link)
(Satış.Müşteri, Satış.Ürün SEÇİN
Birikim Kaydı'ndan Satış AS Satış)
İTİBAREN
Dizin.Karşı taraflar,
Dizin.Ürünler

12) Mümkün olduğunda, kullanın sanal tablolar istekler. Bir sorgu oluştururken, sistem veri kaynakları olarak bir dizi sanal tablo sağlar - bunlar aynı zamanda ilgili kod bölümünün yürütülmesi sırasında sistemin oluşturduğu bir sorgunun sonucu olan tablolardır.

Geliştirici, sistemin kendisine sanal tablolar olarak sağladığı verileri bağımsız olarak elde edebilir, ancak bu verileri elde etmek için algoritma optimize edilmeyecektir, çünkü:

  • Tüm sanal tablolar parametrelendirilir, yani geliştiriciye, sanal tablo oluşturmak için bir istek oluştururken sistemin kullanacağı bazı parametreleri ayarlama fırsatı verilir. Geliştirici tarafından hangi sanal tablo parametrelerinin belirtildiğine bağlı olarak, sistem aynı sanal tabloyu elde etmek için FARKLI sorgular oluşturabilir ve bunlar, geçirilen parametreler açısından optimize edilir.
  • Bir geliştiricinin, sistemin erişebildiği verilere erişmesi her zaman mümkün değildir.
13) İstemci-sunucu çalışma modunda, işlev ALT DİZGİ() karşılık gelen SUBSTRING() işlevi kullanılarak uygulanır. SQL deyimi veritabanı sunucusuna geçti SQL verileri SUBSTRING() işlevinin sonuç türünü, parametrelerinin türüne ve değerlerine ve kullanıldığı bağlama bağlı olarak karmaşık kurallara göre hesaplayan sunucu. Çoğu durumda, bu kurallar bir sorgunun yürütülmesini etkilemez, ancak sonuç dizesinin maksimum uzunluğunun şu şekilde hesaplandığı durumlar vardır: SQL Server. Bazı bağlamlarda SUBSTRING() işlevini kullanırken, sonucunun maksimum uzunluğunun, SQL Server'da 4000 karakter olan sınırlı uzunlukta bir dizenin maksimum uzunluğuna eşit olabileceğini akılda tutmak önemlidir. Bu, sorgu yürütmede beklenmeyen bir çökmeye neden olabilir:
SQL Server için Microsoft OLE DB Sağlayıcısı: Uyarı: GROUP BY veya ORDER BY yan tümcesindeki tüm sütunların toplam uzunluğu 8000 baytı aştığı için, sorgu işlemcisi optimize ediciden bir sorgu planı üretemedi.
HRESULT=80040E14, SQLSTATE=42000, yerel=8618
Bu hatayı önlemek için, sınırsız uzunluktaki dizileri sınırlı uzunluktaki dizilere dönüştürmek için SUBSTRING() işlevinin kullanılması önerilmez. Bunun yerine, EXPRESS() atama operatörünü kullanmak daha iyidir.

14) Dikkatli kullanın VEYA WHERE yapısında, OR ile bir koşulun kullanılması sorguyu önemli ölçüde "ağırlaştırabilir". CONNECT ALL yapısı ile sorunu çözebilirsiniz.

Örnek:
SEÇMEK

İTİBAREN

NEREDE
_DemoContractors.Link = &Link1

TÜMÜNÜ BİRLEŞTİRİN

SEÇMEK
_Demo Karşı Taraflar.AdTam
İTİBAREN
Directory._DemoContractors NASIL _DemoContractors
NEREDE
_DemoContractors.Link = &Link2

15) Durum DEĞİL WHERE yapısında, bir tür NOT (OR1 OR2 ... ORn) olduğu için sorgunun yürütme süresini artırır, bu nedenle büyük tablolar için IS NULL koşuluyla bir LEFT JOIN kullanmayı deneyin.

Örnek:
SEÇMEK
_DemoContractors.Link
İTİBAREN
Directory._DemoContractors NASIL _DemoContractors
SOL KATIL Document._DemoBuyerOrder AS _DemoBuyerOrder
Yazılım _DemoContractors.Link = _BuyerDemoOrder.Contractor
NEREDE
_Alıcının DemoOrder.Karşı Tarafı BOŞ

15) Kullanırken Geçici tablolar koşulu indekslemeniz ve bu tablolardaki alanları birleştirmeniz gerekir, ANCAK indeksleri kullanırken sorgu daha da yavaş çalışabilir. Bu nedenle, indeksli ve indekssiz her sorguyu analiz etmek, sorgu yürütme hızını ölçmek ve nihai bir karar vermek gerekir.
Verileri başlangıçta bazı alanlarda indekslenen geçici bir tabloya yerleştirirseniz, geçici tabloda artık bu alanlarda bir indeks olmayacaktır.

16) Eğer kullanmıyorsanız Geçici tablo yöneticisi, o zaman geçici tabloyu açıkça silmeye gerek yoktur, toplu sorgu tamamlandıktan sonra silinecektir, aksi takdirde geçici tablo aşağıdaki yollardan biriyle silinmelidir: sorguda DELETE komutunu kullanarak, TemporaryTable'ı çağırın Manager.Close() yöntemi.

Sorgularla çalışmak için yerleşik dilin bir nesnesi kullanılır Rica etmek. Veritabanının alanlarında saklanan bilgileri, belirtilen kurallara göre oluşturulmuş bir seçim şeklinde almanızı sağlar..

Sorgu, bir dizi tablodan ilk bilgileri alır. Bu tablolar, gerçek veri tabanı tablolarının verilerini analize uygun bir biçimde temsil eder. İkiye ayrılabilirler büyük gruplar: gerçek Ve sanal.

Gerçek tablolar sırasıyla nesne (referans) veya nesne olmayan (referans olmayan) olabilir, şek. 97.

Pirinç. 97. Sorgu tabloları

Gerçek tabloların ayırt edici bir özelliği, veritabanında depolanan herhangi bir gerçek tablodan veri içermeleridir.. Örneğin, Müşteriler dizinine karşılık gelen Dizin.Müşteriler tablosu veya Malzeme Kalıntılarının birikim kaydına karşılık gelen Biriktirme Kaydı.Malzeme Kalıntıları tablosu gerçektir.

Sanal tablolar, öncelikle birden çok veritabanı tablosundaki verilerden oluşturulur. Örneğin, Biriktirme kaydı Malzeme Kalıntılarının birkaç tablosundan oluşturulan Biriktirme Kaydı.Malzeme Kalıntıları.Kalıntılar ve Cirolar tablosu sanaldır.

Bazen sanal tablolar tek bir gerçek tablodan da oluşturulabilir (örneğin, Fiyatlar sanal tablosu. Son Dilim, Fiyat bilgileri kaydı tablosu temelinde oluşturulur). Bununla birlikte, tüm sanal tabloların ortak noktası, bu sanal tablolara hangi verilerin dahil edileceğini belirleyen bir dizi parametre verilebilmesidir. Bu tür parametrelerin kümesi, farklı sanal tablolar için farklı olabilir ve kaynak veritabanı tablolarında depolanan veriler tarafından belirlenir.

Gerçek tablolar nesne (referans) ve nesne olmayan (referans olmayan) olarak ikiye ayrılır.

İÇİNDE nesne (referans) tabloları referans veri türlerinin bilgileri (dizinler, belgeler, özellik türlerinin planları vb.) sunulur. Ve objektif olmayan (referans olmayan)– diğer tüm veri türleri (sabitler, kayıtlar, vb.).

Ayırt edici özellik nesne (referans) tabloları geçerli girişe bir bağlantı içeren bir Bağlantı alanı içermeleridir.. Ayrıca, bu tür tablolar için mümkündür bir nesnenin özel bir temsilini alma. Bu tablolar hiyerarşik olabilir ve bu tür tabloların alanları iç içe tablolar (tablo bölümleri) içerebilir.

Sorgunun kaynak tablolarından verilerin seçileceği algoritma, sorgu metninde özel bir dilde açıklanmıştır - sorgu dili . İstek metni birkaç bölümden oluşur:

talebin açıklaması;

İsteklerin birleştirilmesi

sonuçların sıralanması;

· OTOMATİK SİPARİŞ;

sonuçların bir açıklaması.

İsteğin zorunlu kısmı yalnızca ilkidir - isteğin açıklaması. Diğerleri gerektiği gibi mevcuttur.

Sorgu açıklaması, veri kaynaklarını, seçim alanlarını, gruplandırmaları vb. tanımlar.

Sorgu toplama, birden çok sorgunun sonuçlarının nasıl birleştirileceğini belirler.

Sonuçların sıralanması, sorgu sonucu satırlarının sıralanması için koşulları tanımlar.

AUTOORDER, sorgu sonucu satırlarının otomatik olarak sıralanmasını etkinleştirmenizi sağlar.

Toplamların açıklaması, sorguda hangi toplamların hesaplanacağını ve sonucun nasıl gruplandırılacağını belirler.

Bir veri kompozisyon sisteminde veri kaynaklarını tanımlamak için bir sorgulama dili kullanıldığında, sorgulama dilinin özet bölümünün kullanılmadığına dikkat edilmelidir. Bunun nedeni, veri oluşturma sisteminin geliştirici veya kullanıcı tarafından yapılan ayarlara göre toplamları bağımsız olarak hesaplamasıdır.

Veri kompozisyon sistemi 1C:Enterprise 8.1 sisteminde özel raporlar oluşturmak için tasarlanmıştır ve birkaç ana bölümden oluşmaktadır.

Raporun düzeni için ilk veriler şunları içerir: veri kompozisyon şeması veri kümeleri ve bunlarla çalışma yöntemleri(Şek. 98).

Geliştirici, istek metnini, veri kümelerini, aralarındaki ilişkileri, kullanılabilir alanları, veri elde etmek için parametreleri ve kümeleri açıklayan bir veri oluşturma şeması oluşturur. başlangıç ​​ayarları düzenler - rapor yapısı, veri düzeni düzeni vb.

Örneğin, bir yerleşim şeması aşağıdaki veri setini içerebilir (Şekil 99).

Pirinç. 98. Genel şema veri kompozisyon sistemi ile çalışmak

Pirinç. 99. Yerleşim şeması örneği (bir veri kümesi ve onu kullanan bir sorgu)

Şek. Şekil 99, veri kaynağını, sorgu metnini ve sorgu tarafından seçilen alanları içeren veri oluşturma şema tasarımcısı penceresini göstermektedir.

Kullanıcının aldığı veri birleştirme sistemi raporu, yalnızca sorguyla eşleşen bir kayıt tablosu değildir. Karmaşık bir hiyerarşik yapıya sahiptir ve gruplamalar, tablolar ve çizelgeler gibi çeşitli öğelerden oluşabilir. Aynı zamanda, kullanıcı mevcut olanı değiştirebilir ve hatta tamamen yeni bir rapor yapısı oluşturabilir, ihtiyaç duyduğu seçimi ayarlayabilir, rapor yapısının öğelerini tasarlayabilir, her öğe için bir döküm alabilir vb.

Örneğin, aşağıdaki rapor yapısı ayarlanabilir (Şek. 100):

Pirinç. 100. Olası bir raporun yapısı

Oluşturulan raporda şunlar olabilir: sonraki görünüm(Şek. 101).

Sunulan raporda, tablo birikim kayıt girişlerinden oluşacaktır. Satış Ciroları müşteriler ve onlara sağlanan hizmetler hakkında. Bu kayıtlar siparişleri tamamlayan ustalara göre gruplandırılmıştır. Ve gruplandırmada, bir usta listesi görüntülenecektir.

İÇİNDE Genel görünüm bir veri kompozisyon sistemi, birkaç nesnenin bir koleksiyonudur. Bir rapor oluştururken ve yürütürken, nihai sonuç elde edilene kadar - kullanıcıya gösterilen bir belge olana kadar veriler, veri oluşturma sisteminin bir nesnesinden diğerine sırayla aktarılır.

Bu nesnelerin etkileşimi için algoritma aşağıdaki gibidir: geliştirici bir veri oluşturma şeması ve varsayılan ayarlar oluşturur. Genel durumda, bir veri birleştirme şemasına dayalı olarak, kişi oluşturulabilir çok sayıdaçeşitli raporlar. Geliştirici tarafından oluşturulan veya kullanıcı tarafından değiştirilen veri oluşturma ayarları, belirli bir durumda hangi raporun alınacağını belirler.

Pirinç. 101. Örnek rapor

Düzen şemasına ve mevcut ayarlara bağlı olarak, düzen oluşturucu bir veri düzeni düzeni oluşturur. Bu, raporun yürütülmesi için hazırlık aşamasıdır. Veri düzeni düzeni zaten hazır görev düzen işlemcisi tarafından yürütülecek. Düzen düzeni, gerekli sorguları, rapor alanı düzenlerini vb. içerir.

Veri birleştirme işlemcisi, oluşturma düzenine göre bilgi tabanından veri seçer, bu verileri toplar ve biçimlendirir.

Düzenin sonucu, çıktı işlemcisi tarafından işlenir ve sonuç olarak kullanıcı, sonuçtaki elektronik tablo belgesini alır.

Yerleşim sisteminin sırası aşağıdaki şemada gösterilebilir (Şek. 102):

Pirinç. 102. Yerleşim sisteminin şeması

3.12.1. "Belgelerin kaydı Hizmetlerin sağlanması" raporunun oluşturulması

Rapor Belgelerin kaydı Hizmetlerin sağlanması veri tabanındaki mevcut Servis belgelerinin bir listesini tarih ve numara sırasına göre görüntüler.

Rapor. Bir isim ver KayıtBelgelerProvisionServices. Yer imi Ana tıklamak " Hazır". Veri birleştirme şeması oluşturucusunda şunu ekleyin: Veri Kümesi - Sorgu Yapıcı iste".

Sorgu için veri kaynağı olarak nesne (referans) belge tablosunu seçin İşleme Hizmetleri. Bu tablodan aşağıdaki alanları seçin (Şek. 103):

Tarihi; Sayı; Stoklamak; Usta; Müşteri.

Pirinç. 103. Seçilen alanlar

Bundan sonra yer imine gidin Emir ve sorgu sonucunun önce alan değerine göre sıralanması gerektiğini belirtin tarih ve ardından alan değerine göre RenderingServices.Link(Şek. 104).

Pirinç. 104. Sorgu sonucu çıktısının sırası

Tıklamak " TAMAM" ve sorgu oluşturucunun hangi sorguyu oluşturduğunu görün.

yer imine git Ayarlar ve rapor yapısına yeni bir gruplama ekleyin (Şek. 105).

Pirinç. 105. Ayarlar sekmesinin komut paneli

Gruplandırma alanı seçim penceresinde " TAMAM" ve sekmesinde Seçili alanlar raporda görüntülenecek alanları ayarlayın:

Tarihi; Sayı; Stoklamak; Usta; Müşteri (Şek. 106).

Pirinç. 106. Raporun yapısını özelleştirme

Hizmetlerin sağlanması için belgelerin kaydı. Tıklamak " Biçim" ve raporun sonucuna bakın (Şek. 107).

Pirinç. 107. Rapor Hizmetleri sağlayan belgelerin kaydı

Rapor. Adını sen koy Hizmet Puanı. Yer imi Ana tıklamak " Açık Veri Kompozisyon Şeması". Açılan Düzen Tasarımcısı iletişim kutusunda " Hazır".

Veri birleştirme şeması oluşturucusunda şunu oluşturun: Veri Kümesi - Sorgu(DataSet1) ve " Yapıcı iste".

terminoloji Ve sanal masa biriktirme kaydı Satış Ciroları. Sorguda ad belirsizliğini önlemek için Adlandırma tablosunu şu şekilde yeniden adlandırın: Bahar Terminolojisi (bağlam menüsü sağ fare düğmesi - Tabloyu yeniden adlandır).

Ardından tablo alanlarından seçim yapın Spr Terminolojisi Bağlantı Ve Satış Ciro. Gelir Ciro(Şek. 108).

Pirinç. 108. Seçilen alanlar

yer imine git Bağlantılar ve yapıcının seçilen iki tablo arasında zaten bir ilişki oluşturduğuna dikkat edin - İsimlendirme kaydındaki değişikliğin değeri, İsimlendirme referans kitabındaki öğeye yapılan referansa eşit olmalıdır.

Yapılacak tek şey bayrağı sıfırlamak Tüm kayıt tablosunda ve referans tablosunda ayarlayın Bahar Terminolojisi(Şek. 109).

Bayrağın ayarlanması Tüm dizin tablosu için tüm öğelerin dizinden seçileceği ve bu öğelere kayıttan gelir devri değeri atanacağı anlamına gelir. Böylece talep sonucunda tüm hizmetler mevcut olacak ve bazıları için ciro cirosu belirtilecektir. Seçilen dönemde sağlanmayan hizmetler için hiçbir şey belirtilmeyecektir.

Pirinç. 109. Tablo ilişkilerini ayarlama

yer imine git Koşullar ve Terminoloji referans kitabından öğe seçme koşullarını ayarlayın (Şek. 110). Seçim koşullarını ayarlarken, sorgu parametrelerini kullanmanız gerekecektir. İlk koşul, seçilen öğenin bir grup olmaması olmalıdır (bunu yapmak için, keyfi koşul- bayrak ayarla Keyfi). Daha sonra sahada durum aşağıdaki metni girin:

SprNomenclature.ThisGroup = YANLIŞ

İkinci koşul, seçilen öğenin bir hizmet olması olmalıdır (bu, basit durum) (Şek. 110).

Pirinç. 110. Elemanları seçme koşulları

Gelecekte, isteği yürütmeden önce, parametrede Tip Terminolojisi karşılık gelen enum değerini geçmelisiniz.

yer imine git Sendikalar/Takma Adlar ve referans öğe görünümünün bir takma adı olacağını belirtin Hizmet ve kayıt alanının bir takma adı olacaktır Hasılat(Şek. 111).

Pirinç. 111. Sendikalar/Takma İsimler

yer imine git Emir ve sorgu sonucunun alan değerinin azalan düzeninde sıralanması gerektiğini belirtin Hasılat. İsteğin oluşturulması tamamlandı, " düğmesine tıklayın TAMAM". Yapıcı tarafından oluşturulan sorgu metnine bakın.

yer imine git Kaynaklar tıklayın ve " >> " böylece yapıcı, toplamları hesaplamak için mevcut tüm kaynakları seçer. Sizin durumunuzda, bu tek kaynaktır. Hasılat(Şek. 112).

Pirinç. 112. Veri kompozisyon şeması kaynakları

yer imine git Seçenekler(Şek. 113).

Pirinç. 113. Veri Bileşimi Seçenekleri

Bu sekmede üç seçenek göreceksiniz: dönemin başlangıcı, Bitiş Dönemi Ve Tip Terminolojisi. İlk parametre toplam hesaplama döneminin başlangıcı, ikincisi ise dönemin sonudur. Sonuç olarak, kaynak tablosu yalnızca aktarılan dönemde hesaplanan ciroları içerecektir.

parametre için dönemin başlangıcı kullanıcıya görüntülenecek başlığı ayarlayın − Başlangıç ​​tarihi.

Burada, bu parametreler olarak bir tarih iletirseniz, tarihin en yakın saniyeye kadar olan zamanı da içerdiğini her zaman hatırlamalısınız.

Kullanıcının belirtilen periyotlarda raporun sonuçlarıyla bir saniyeye kadar doğrulukla ilgilenmeyeceğinin önceden bilindiğini varsayalım. Bu durumda, iki özellik dikkate alınmalıdır.

Öncelikle kullanıcı, tarih girerken saati belirtme ihtiyacından kurtarılmalıdır. Bunu yapmak için, parametre için mevcut tip bildirimini değiştirin. dönemin başlangıcı. Bir hücreye çift tıklayın Mevcut tipler, parametreye karşılık gelen dönemin başlangıcı, seçim düğmesine basın " " ve veri tipi düzenleme penceresinin altında, Tarih Bileşimi anlam içine tarih(Şek. 114).

Tıklamak " TAMAM".

İkinci özellik, tarihteki varsayılan saatin 00:00:00 olmasıdır. Bu nedenle, kullanıcı rapor dönemini 10/01/2009'dan 31/10/2009'a ayarlarsa, kayıt toplamları 10/01/2009 00:00:00'dan günün başına kadar hesaplanacaktır. 31.10.2009 00:00:00. Böylece gün başlangıcı dışındaki 31. güne ait veriler hesaplamaya dahil edilmeyecek ve bu da kullanıcıyı oldukça şaşırtacaktır. Bu durumu ortadan kaldırmak için kullanıcının bitiş tarihini gireceği başka bir parametre ekleyin. Parametre değeri Bitiş Dönemi kullanıcı tarafından girilen tarihin gün sonunu gösterecek şekilde otomatik olarak hesaplanacaktır. Bu nedenle, parametre için Bitiş Dönemi bayrağı ayarla Kullanılabilirlik kısıtlaması.

Pirinç. 114. Tarihin kompozisyonunu düzenleme

eklemek için komut çubuğu düğmesini kullanın yeni parametre Bitiş Tarihi (Şek. 115) olarak adlandırılır.

Pirinç. 115. EndDate parametresi ekleme

Bu parametre için platform otomatik olarak bir başlık oluşturacaktır - Son kullanma tarihi. Değiştirmeden bırakın. Parametre değeri türünü ayarlayın − tarih. Bu durumda parametre olarak dönemin başlangıcı, tarihin bileşimini belirtin - tarih.

Lütfen eklediğiniz parametrenin varsayılan olarak kullanıcı tarafından kullanılabilir olduğunu unutmayın (son sütundaki erişilebilirlik kısıtlaması kaldırılmıştır).

parametreye git Bitiş Dönemi. Bunun için sistem kullanılabilirlik kısıtlama bayrağını ayarlamıştır. İşaretini kaldırmayın, çünkü bu parametrenin değeri değere göre hesaplanacaktır. kullanıcı tarafından ayarlandı parametre için Son kullanma tarihi.

Parametre değerinin hesaplanacağı formülü ayarlamak için Bitiş Dönemi, veri oluşturma sistemi ifade dilini kullanın. İşlevi içerir Dönem Sonu(), örneğin belirtilen gün gibi bir dönemin sonuna karşılık gelen tarihi almanıza olanak tanır.

bir hücrede İfade parametreyi ayarla Bitiş Dönemi aşağıdaki ifade:

Yukarıdaki işlemlerin bir sonucu olarak, düzen parametreleri şöyle görünecektir (Şek. 116):

Pirinç. 116. Düzen sistemi seçenekleri

Son olarak, parametreyi ayarlayın Tip Terminolojisi. Raporun yalnızca hizmet satışından elde edilen geliri göstermesi gerektiğinden, parametrenin değeri Tip Terminolojisi kullanıcı değişmemelidir. Doğrudan düzende şu şekilde ayarlanmalıdır: . Parametre kısıtlama bayrağı Tip Terminolojisi platform bunu varsayılan olarak ayarlamıştır, bu nedenle yalnızca istenen numaralandırma değerini belirtmeniz gerekir Türlerin İsimlendirilmesi bir hücrede Anlam, parametreye karşılık gelen Tip Terminolojisi(Şek. 117).

Pirinç. 117. Nomenclature Type parametresinin değerinin ayarlanması

Rapor yapısının oluşturulmasına devam edin. Yer imi Ayarlar bir gruplama ekleyin ve yine gruplandırma alanını belirtmeyin. Yer imi Seçili alanlar alanları belirtin Hizmet Ve Hasılat(Şek. 118).

Ardından yer işaretine gidin Diğer ayarlar ve raporun başlığını ayarlayın - Hizmet Puanı(Şek. 119).

Pirinç. 119. Raporun başlığını ayarlama

1C:Enterprise'ı hata ayıklama modunda çalıştırın.

raporu seç Hizmet derecelendirmesi, ancak " düğmesini tıklamadan önce Biçim", açık Ayarlar ve yer iminde veri seçenekleri rapor dönemini 03/01/2004'ten 04/30/2004'e ayarlayın (Şek. 120). Belgelerinizin oluşturulma tarihleri ​​örnekte verilenlerden farklı ise rapor dönemi farklı ayarlanmalıdır.

Pirinç. 120. Rapor ayarları

Tıklamak " TAMAM" ve bir rapor oluşturun. Sonuç şöyle görünecektir (Şek. 121):

Pirinç. 121. Raporun yürütülmesinin sonucu

Şimdi bitiş tarihini 31.03.2004 olarak değiştirin. Raporda 31 Mart verileri de yer almaktadır (Şek. 122).

Pirinç. 122. Raporun yürütülmesinin sonucu

3.12.3. "Ustaların geliri" raporunun oluşturulması

Rapor Master geliri seçilen dönemdeki tüm günlerin ayrıntıları ve her gün hizmet verilen müşterilerin dökümü ile birlikte, her bir ustanın çalışması nedeniyle Master LLC tarafından hangi gelirin alındığı hakkında bilgi içerecektir. Bu raporu örnek olarak kullanarak, bir sorguda çok düzeyli gruplamaların nasıl oluşturulacağını ve seçilen bir dönemdeki tüm tarihlerin nasıl atlanacağını öğreneceksiniz.

Yaratmak yeni nesne konfigürasyon Rapor. Adını sen koy Gelir Uzmanları ve ana veri birleştirme şeması oluşturucusunu çalıştırın.

Eklemek Veri Kümesi - Sorgu(DataSet1) ve " Yapıcı iste". Biriktirme kaydının sanal tablosunu seçin Satış Ciroları.

Bu sanal tablonun seçeneklerinden birini ayarlayın − periyodiklik. Bunu yapmak için sahaya gidin masalar ve "" düğmesine basın (Şek. 123).

Pirinç. 123. Sanal bir tablonun parametrelerini değiştirme

Açılan parametreler penceresinde parametre değerini ayarlayın Periyodiklik - Gün(Şek. 124). Düğmesine basın " TAMAM".

Pirinç. 124. Sanal Masa Seçenekleri

Ardından tablodan aşağıdaki alanları seçin:

· Satış Ciroları Master;

· Satış Ciroları.Dönem;

· Satış Ciroları Müşteri;

· Satış Ciro Ciro Ciro (Şek. 125).

Pirinç. 125. Seçilen alanlar

Şimdi yer işaretine git Sendikalar/Takma Adlar ve bir takma ad belirleyin Hasılat alan için Satış Ciro. Gelir Ciro(Şek. 126).

Pirinç. 126. Sendikalar/Takma İsimler

Yer imi gruplama gruplandırmanın alanlara göre yapılacağını tanımlayın Usta, Dönem Ve Müşteri, ve alan değerleri Gelir Ciroözetlenecektir (Şek. 127).

Pirinç. 127. Gruplandırma alanları

Yer imi Emir sorgu sonucunun alan değerinin artan düzeninde sıralanacağını belirtin Dönem. Tıklamak " TAMAM". Yapıcı tarafından oluşturulan sorgu metnini düşünün.

Şimdi veri birleştirme şemasını düzenlemeye geçin. Yer imi Kaynaklar tıklamak " >> " ve yapıcının mevcut tek kaynağı seçtiğinden emin olun - Hasılat.

Yer imi Seçeneklerönceki raporu oluştururken kullandığınız adımların aynısını izleyin.

parametre için dönemin başlangıcı bir başlık ayarla Başlangıç ​​tarihi. sahada Mevcut tipler tarihin kompozisyonunu ayarlayın - tarih.

parametre için Bitiş Dönemi bir ifade ayarlayın:

BitişDönemi(&BitişTarihi, "Gün")

sahada sınırlama kullanılabilirlik, kullanılabilirlik kısıtlama bayrağını ayarlar.

Son olarak bir parametre daha ekleyin - Son kullanma tarihi, türünü şu şekilde ayarlayın: tarih, tarihin bileşimi tarih.

Yukarıdaki işlemlerin bir sonucu olarak, veri oluşturma parametreleri şöyle görünecektir (Şek. 128):

Pirinç. 128. Veri Bileşimi Seçenekleri

Şimdi rapor yapısını oluşturmamız gerekiyor. Yer imi Ayarlar sırayla iki iç içe gruplama oluşturun: üst düzey - alana göre Usta, içine yerleştirilmiş - alana göre Dönem. Ardından, alana göre gruplama içinde iç içe başka bir gruplama ekleyin Dönem, – Detay kayıtları(gruplama alanını belirtmeden) (Şek. 129).

Pirinç. 129. Raporun yapısı

Şimdi, genel rapor düzeyinde olmak, sekmeye gidin. Seçili alanlar ve listeye alanlar ekleyin Müşteri Ve Hasılat.

Son olarak, genel rapor seviyesinden sekmeye gidin Diğer ayarlar ve aşağıdaki ayarları değiştirin. parametre için set değeri Ayrı ayrı ve sadece sonuçlarda; parametre için değeri ayarla Başlangıç ve parametre için başlık değeri ayarla Master geliri(Şek. 130).

Pirinç. 130. Genel toplamların çıktısını başlangıca ayarlamak

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve 03/01/2004 ile 30/4/2004 arasındaki dönem için Master Revenue raporunun sonucuna bakın (Şekil 131).

Pirinç. 131. Raporun yürütülmesinin sonucu

Hatırlarsanız, bu rapor, seçilen dönemdeki tüm günlerin ayrıntılarını içeren verileri göstermelidir. Artık yalnızca birikim kaydı tablosunda sıfır olmayan girişlerin olduğu günler görüntülenir. Bu nedenle, artık rapor ayarlarını, raporun oluşturulduğu dönemden itibaren her tarih rapora denk gelecek şekilde değiştirmek gerekiyor.

Bunu yapmak için konfigüratör moduna dönün ve daha fazlasını yapın ince ayar rapor yapıları. Şimdiye kadar yaptığınız tüm yapı ayarları, raporun tamamına bir bütün olarak uygulandı. Ancak veri birleştirme sistemi, yapının her bir öğesini ayrı ayrı özelleştirmenize de olanak tanır.

Gruplandırma ayarını değiştirmeniz gerekecek Dönem. Bu belirli gruplandırmanın ayarlarına gitmek için yapı alanında imleci bu gruplandırmanın üzerine getirin ve ardından " Dönem" komut panelinde (Şek. 132).

Pirinç. 132. Gruplandırma ayarları Dönemi

Bu gruplama için kullanılabilen ayarlar formun alt kısmında görüntülenecektir.

yer imine git Gruplandırma alanları. alan için Dönem düzenlemek Eklenti Türü - Gün(Şek. 133).

Pirinç. 133. Dönemin tamamlayıcı türünü ayarlama

Bunu yaparak, bu gruplama için sıfır olmayan kaynak değerine sahip mevcut kayıtların her gün için kayıtlarla destekleneceğini belirtmiş oldunuz.

Bundan sonra böyle bir eklemenin hangi dönemde yapılacağını belirtmelisiniz. Aşağıdaki alanlara bu döneme ait başlangıç ​​ve bitiş tarihlerini girebilirsiniz. Ancak tarihlerin açıkça belirtilmesi uygun değildir, çünkü kullanıcı keyfi bir süre için bir rapor oluşturabilir. Tarihlerin eklenmesinin belirli bir sabit dönemde değil, kullanıcının raporun tamamı için seçtiği dönemde yapılması gerekir.

Raporun tam olarak bu şekilde çalışmasını sağlamak için, ilk alanın düzenleme moduna girin (örneğin, üzerine çift tıklayarak) ve "temizle" düğmesine tıklayın. X". Bundan sonra," düğmesine tıklayarak T", bu alanda görüntülenen veri türünü seçebileceksiniz. Veri oluşturma alanı(Şek. 134).

Pirinç. 134. Bir veri türü seçme

Tıklamak " TAMAM". Şimdi giriş alanındaki seçme düğmesine tıklayın " " ve açılan alan seçim penceresinde seçeneği işaretleyin dönemin başlangıcı(Şek. 135). Tıklamak " TAMAM".

Pirinç. 135. Alan seçimi

2.giriş alanı için ise parametreden dönem bitiş tarihi alınacak şekilde aynı şekilde belirtiniz. Son kullanma tarihi(Şek. 136).

Pirinç. 136. Gruplandırma ayarları Dönemi

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu çalıştırın Master geliri 20 Mart 2004 ile 20 Nisan 2004 arasındaki dönem için (Şekil 137).

Pirinç. 137. Raporun yürütülmesinin sonucu

3.12.4. Hizmet Envanter Raporu Oluşturma

Rapor hizmet listesi"Master" LLC'nin hangi hizmetleri ve hangi fiyata sağladığı hakkında bilgi içerecektir. Onun örneğinde, elde etme olasılığı ile tanışacaksınız. son değerler periyodik bilgi kaydından ve hiyerarşik dizinlerin çıktısından.

Yeni bir yapılandırma nesnesi oluştur Rapor. Adını sen koy hizmet listesi ve Veri Bileşimi Şeması Tasarımcısını çalıştırın. Yeni bir tane oluştur Veri Kümesi - Sorgu(DataSet1) ve sorgu yapıcısını çağırın.

Nesne (referans) arama tablosunu seçin terminoloji ve sanal bir bilgi kaydı tablosu Fiyatlar.Son Dilim. Sorgudaki adların belirsizliğini ortadan kaldırmak için Nomenclature tablosunu şu şekilde yeniden adlandırın: Bahar Terminolojisi.

Sanal tablonun parametrelerini girmek için iletişim kutusunu çağırın FiyatlarDilimSon ve parametrede sürenin geçeceğini belirtir. Rapor Tarihi(Şek. 138).

Pirinç. 138. Sanal Masa Seçenekleri

Ardından tablolardan aşağıdaki alanları seçin:

· SprNomenclature.Parent;

· FiyatlarDilimSon.Fiyat (Şek. 139).

Pirinç. 139. Seçilen alanlar

yer imine git Bağlantılar, bayrağı bırak Tüm kayıt tablosunda ve referans tablosunda ayarlayın.

Yer imi Koşullar sözlük öğelerini seçme koşulunu ayarlayın terminoloji– seçilecek öğeler, sorgu parametresinde iletilen öğe türüne karşılık gelmelidir Tip Terminolojisi(Şek. 140).

Pirinç. 140. Elemanları seçme koşulları

Yer imi Sendikalar/Takma Adlar alanı belirtmek ebeveyn takma adı olacak hizmet grubu ve alan Bağlantı - Hizmet(Şek. 141).

Pirinç. 141. Sendikalar/Takma İsimler

yer imine git gruplama ve gruplandırmanın alana göre yapılacağını belirtir. SprNomenclature.Parent. Özetlenen alanların değerlerini ayarlamak gerekli değildir (Şek. 142).

Şekil 142. Gruplandırma alanları

Tıklamak " TAMAM". Talep metnine bakın.

Veri birleştirme şemasını düzenlemeye devam edin. Yer imi Kaynaklar düğmesine basmak" >> " mevcut tek kaynağı seçin Fiyat.

Yer imi Seçenekler parametre değerini ayarla Tip Terminolojisi Nasıl Nomenclature.Service Enumeration.Types. Ek olarak, parametre için erişilebilirlik kısıtlamasını kaldırın. Rapor Tarihi ve ona bir başlık verin - Rapor tarihi. sahada Mevcut tipler tarihin kompozisyonunu ayarlayın - tarih. parametre için Dönem, aksine kullanılabilirlik kısıtlamasını ayarlayın (Şek. 143).

Pirinç. 143. Düzen şeması seçenekleri

Rapor yapısının oluşturulmasına devam edin. yer imine git Ayarlar ve alana göre bir grup oluşturun hizmet grubu, gruplama türünü belirterek hiyerarşi. Bu gruplandırma içerisinde grup alanı belirtmeden başka bir gruplandırma oluşturun. Ayrıntılı rapor kayıtları içerecektir (Şek. 144).

Pirinç. 144. Raporun yapısı ve vurgulanan alanları

yer imine git Seçili alanlar ve Hizmet ve Fiyat alanlarının raporda görüntüleneceğini belirtin (Şek. 145).

Pirinç. 145. Raporun yapısı

Ve sonunda kurdum dış görünüş yer imi raporu Diğer ayarlar. Rapor, belirli hizmetlerin fiyatlarının ilgi çekici olduğu sağlanan hizmetlerin bir listesi olacağından, kaynak değerlerini görüntüleyin Fiyat gruplamaların her biri ve bir bütün olarak raporun tamamı için bir anlam ifade etmemektedir.

Raporda toplamların görüntülenmesini devre dışı bırakmak için parametreyi ayarlayın. Genel Toplamları Dikey Olarak Konumlandırma anlam içine HAYIR.

Ardından belirli gruplama ayarlarına gidin − hizmet grubu. parametre için Toplamların konumu bu gruplama, değeri belirtin HAYIR. Bir bütün olarak tüm raporun ayarlarına dönün.

parametre için Gruplandırma alanlarının konumu bir değer girin Ayrı ayrı ve sadece sonuçlarda(böylece rapor daha iyi "okunacaktır"). Son olarak, raporun başlığını belirleyin - hizmet listesi.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve her şeyden önce periyodik kaydı açın Fiyat:% s.

Hizmet için ona başka bir değer ekleyin Teşhis: hizmetin 01.04.2004 tarihi itibariyle yeni fiyatı 350'dir (Şek. 146). Bu, raporu test edecektir.

Pirinç. 146. "Fiyatlar" kaydının girişleri

Şimdi raporu çalıştırın hizmet listesi 31 Mart 2004 itibariyle (Şek. 147).

Pirinç. 147. Raporun yürütülmesinin sonucu

Raporunuz, Teşhis hizmetinin 31.03.2004 tarihi itibariyle - 200 ruble fiyatını doğru bir şekilde yansıtıyor.

Raporu yeniden çalıştırın, ancak şimdi farklı bir tarih için - 04/01/2004 (Şek. 148).

Pirinç. 148. Raporun yürütülmesinin sonucu

Gördüğünüz gibi, Teşhis hizmetinin yeni fiyatı gösteriliyor - 350 ruble.

Rapor Müşteri Değerlendirmesi Master LLC'nin tüm faaliyet süresi boyunca her bir müşteriye hizmet sağlanmasından elde edilen gelirin ne olduğunu gösterecektir. Örneği üzerinde, bir sorgunun sonucunu görüntülemek için bir grafik kullanma olasılığı gösterilecektir.

Diyagram 1C:Enterprise sisteminin çeşitli türlerindeki tablo ve çizelge ve grafik formlarına yerleştirme amaçlı bir kontrol öğesidir.

mantıksal olarak diyagram noktasındaki noktaların, serilerin ve seri değerlerin toplamıdır.(Şek. 149).

Kural olarak, özelliklerin değerlerini aldığınız anlar veya nesneler nokta olarak kullanılır ve değerleri ile ilgilendiğiniz özellikler seri olarak kullanılır.

Örneğin, aylara göre ürün türlerinin satış tablosu, puanlar - aylar, seriler - ürün türleri ve değerlerden - satış cirolarından oluşacaktır.

Yerleşik dilin bir nesnesi olarak diyagram, diyagramın tasarımını kontrol etmenize izin veren üç alana sahiptir: yapım alanı, başlık alanı ve gösterge alanı (Şek. 150).

Grafik, rapor yapısına ayrı bir öğe olarak eklenebilir. Rapor oluştururken Müşteri Değerlendirmesi grafik, veri oluşturma şeması ayarları yapısında kullanılacaktır.

Pirinç. 149. Grafik örneği

Pirinç. 150. Harita alanları

Konfigüratörde yeni bir konfigürasyon nesnesi oluşturun Rapor. Adını sen koy DerecelendirmeMüşteriler, ana veri düzeni şemasını açın.

Yaratmak veri seti - sorgu(DataSet1) ve sorgu yapıcısını çağırın. Sanal birikim kayıt tablosunu seçin Satış Ciroları ve ondan bir alan - Satış Ciro. Müşteri.

Ardından yeni bir alan ekleyin (simge Eklemek alanlar listesinin üzerindeki komut çubuğunda) ve ifade oluşturucuyu kullanarak bunu gelir ve maliyet arasındaki fark olarak tanımlayın (Şekil 151).

Pirinç. 151. Özel alan ifadesi düzenleyicisi

Sonuç olarak, seçilen alanların listesi şöyle görünecektir (Şek. 152):

Pirinç. 152. Seçilen alanlar

Yer imi Sendikalar/Takma Adlar hesaplanan alanın bir takma adı olacağını belirtin Gelir(Şek. 153).

Pirinç. 153. Sendikalar/Takma İsimler

Yer imi Emir sonuç satırlarının alan değerinin azalan düzeninde sıralanması gerektiğini belirtir Gelir. Tıklamak " TAMAM" ve sorgu oluşturucunun hangi metni oluşturduğunu görün.

yer imine git Kaynaklar ve bir alan ekleyin Gelir düzen kaynaklarına. Ardından yer işaretine gidin Ayarlar Raporun yapısını oluşturmak için.

Yapısı gruplamalar içeren önceki tüm raporların aksine, bu sefer rapor yapısına bir diyagram ekleyin (Şekil 154).

Pirinç. 154. Raporun yapısı

Grafik noktalarına alana göre gruplandırma ekleyin Müşteri. Grafik serisini değiştirmeden bırakın.

Şimdi yer işaretine git Seçili alanlar ve alanı seçin Gelir raporun çıktısı için. Rapor yapısı aşağıdaki formu almalıdır (Şekil 155):

Pirinç. 155. Rapor yapısı ve grafik ayarları

Yer imi Diğer ayarlar raporun başlığını belirleyin - Müşteri Değerlendirmesi ve ayrıca grafik türünü seçin − Dairesel hacimsel.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu açın Müşteri Değerlendirmesi(Şek. 156).

Pirinç. 156. Rapordaki pasta hacim tablosu

Grafiğin bir bölümünün üzerine geldiğinizde bir araç ipucunun göründüğünü lütfen unutmayın.

Rapor ayarlarını açın ve grafik türünü şu şekilde değiştirin: Ölçme. Raporu yeniden oluşturun (Şek. 157).

Pirinç. 157. Rapordaki ölçü tablosu

3.12.6. Genel Rapor Oluşturma

Evrensel bir rapor oluşturma örneğini kullanarak, veri birleştirme sisteminin bir pivot tablo ile nasıl etkileşime girebileceğini öğreneceksiniz.

Konfigüratörde yeni bir konfigürasyon nesnesi oluşturun Rapor. Bir isim ver Evrensel. Ana veri oluşturma şemasını açın ve yeni bir tane oluşturun veri seti - sorgu(Veri Kümesi1).

Sorgu oluşturucuyu çağırın ve birikim kaydı sanal tablosunu seçin Satış Ciroları. Bu tablodan tüm alanları seçin (Şek. 158).

Pirinç. 158. Seçilen alanlar

Gruplandırma sekmesinde " >> " gruplama için mevcut tüm alanları seçin ve tüm kaynakları Özetlenmiş alanlara ekleyin (Şek. 159).

Pirinç. 159. Alanları ve kaynakları gruplama

Tıklamak " TAMAM" ve sorgu oluşturucu tarafından oluşturulan metne bakın.

Düzen tasarımı sekmesinde aşağıdakileri yaparak veri düzeni şemasını oluşturmayı bitirin Kaynaklar mevcut tüm kaynakları seçin (tıklayın " >> "). Bu, veri oluşturma şemasıyla çalışmayı tamamlar, kapatır ve yapılandırma nesnesini düzenlemek için pencereye geri döner Rapor Evrensel.

yer imine git Formlar ve tablo alanının yanındaki görüntüle düğmesine tıklayarak raporun ana formunu oluşturun Ana rapor formu. Henüz bir ana form olmadığı için sistem form tasarımcısını çağıracaktır. Sistemin varsayılan olarak önerdiğini kabul edin ve hemen " düğmesine basın. Hazır".

Raporun ana formu ekranda açılacaktır. Gördüğünüz gibi, sistem elektronik tablo belge alanını sizin için zaten eklemiş ve adlandırmıştır. Sonuç(Şek. 160).

Pirinç. 160. Rapor formunu düzenleme

Bu alana bir pivot tablo eklemeniz gerekir. Ancak elektronik tablo belge alanı hücreleri Sonuçşu anda içinde Sadece Görüntüle. Bir pivot tablo eklemek için bu modu kapatmanız gerekir, bu nedenle elektronik tablo belge alanına tıklayın ve yapın Tablo -> Görünüm -> Yalnızca Görüntüle. Artık tablo alanını düzenleyebilirsiniz.

İmleci elektronik tablo belge alanının sol üst hücresine getirin ve yürütün Tablo -> Katıştırılmış Tablolar -> PivotTable Ekle. Sistem, tablo alanına bir pivot tablo ekleyecek ve alanlar penceresini açacaktır. Pivot tablo(Şek. 161).

Pirinç. 161. Pivot tablo

Verileri bir pivot tabloda görüntülemek için form modülünde birkaç satır yazmanız gerekecektir. Rapor formu modülünü açın ve ihtiyacınız olan değişkeni metne ekleyin:

PivotTable'ın Değişken Kaynağı;

Bundan sonra rapor formu olay işleyicisini oluşturun açarken(Genel Rapor formunun özellikler penceresinde) ve buna aşağıdaki metni ekleyin:

Prosedür Açık()

PivotTableSource = NewDataCompositionPivotTableDataSource;

PivotTableSource.SetSchema(DataCompositionScheme);

FormElements.Result.EmbeddedTables.PivotTable1.DataSource =

Özet Tablo Kaynağı;

PivotTable Source.SetSettings(SettingsComposer.Settings);

Prosedürü Bitir

Bu metinle, pivot tablo için veri oluşturma şemasını bir veri kaynağı olarak ayarlarsınız ve bunun için ayar oluşturucunun ayarlarını yaparsınız.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu açın Evrensel. Ekranda bir rapor formu ve pivot tablonun alanlarını seçmek için bir pencere görünecektir (Şek. 162).

Pirinç. 162. Evrensel Rapor

kaynağın değerini koy Gelir Ciro Veri alanına, boyuta terminoloji– Satırlar alanına ve boyuta Usta– Hoparlör alanında. Rapor aşağıdaki formu alacaktır (Şek. 163):

Pirinç. 163. Raporun yürütülmesinin sonucu

Şimdi PivotTable Alan Seçimi penceresinde grubu genişletin terminoloji ve (Hiyerarşi Yok) değerini satırlara ekleyin ("Özet Tablo Alanları" penceresinin açılır listesinde, Çizgilere sığdır) ve ölçüm Müşteri sütunlara ekleyin ("Özet Tablo Alanları" penceresinin açılır listesinde Sütunlara yerleştirin). Raporun görünümü değişecektir (Şek. 164).

Pirinç. 164. Raporun yürütülmesinin sonucu

Böylece, veri birleştirme şemasının verilerini kullanarak, kullanıcıya kayıt defterinde bağımsız olarak bir rapor oluşturması için alternatif bir fırsat sağladınız. Render Hizmetleri.

3.12.7. Genel 2 Raporu Oluşturma

İkinci bir evrensel rapor oluşturma örneğini kullanarak, yerleşim düzeni ayarlarını nasıl doğrudan kontrol edeceğinizi ve standart tasarım seçeneklerine dayalı olarak yerleşimleri nasıl oluşturacağınızı öğreneceksiniz.

Yeni bir yapılandırma nesnesi oluştur Rapor isim ile evrensel2. Ana veri kompozisyon şemasını açın, yeni bir tane oluşturun veri seti - sorgu(DataSet1) ve sorgu oluşturucuyu çalıştırın. Birikim kaydı sanal tablosundan tüm alanları seçin Satış Ciroları tıklayın ve " TAMAM". sekmesinde Kaynaklar veri birleştirme şema tasarımcısı, " >> " ve sistemin üç kaynak aldığından emin olun: GelirCiro, MiktarCiro Ve Maliyet Ciro.

Yer imi Ayarlar yeni bir grup oluştur Detay kayıtları(gruplandırma alanını seçmeden).

Şimdi işaretlendi Formlar rapor düzenleme penceresi evrensel2 yapıcıyı kullanarak raporun ana formunu oluşturun ve düzenleyin.

Şekli uzatın ve içinde adlar bulunan iki etiket yerleştirin alanlar Ve Emir ve başlıklarla alanlar: Ve Emir: sırasıyla (Şek. 165).

yazıtın altında alanlar KomutPanel Alanları. yazıtın altında Emir adlı bir komut çubuğu yerleştirin CommandPanelSipariş. Komut panelleri altında, tablo alanlarını adlarla buna göre düzenleyin TabloAlanAlanları Ve TableFieldOrder.(Şek. 166). Komut paneli özellikleri penceresinde KomutPanel Alanları bayrağı ayarla Otomatik Tamamlama Ve ActionSource - TableFieldField. Komut paneli özellikleri penceresinde CommandPanelSipariş bayrağı ayarla Otomatik Tamamlama Ve ActionSource - TableFieldOrder.

Pirinç. 165. Rapor formunu düzenleme

Pirinç. 166. Universal2 rapor formu

Şimdi tablo alanı için TabloAlanAlanları veri kaynağını şu şekilde ayarla ReportObject.SettingsComposer.Settings.Selection(Şek. 167).

Pirinç. 167. Tablo alanı için veri kaynağını ayarlayın

Tablo alanıyla aynı TabloAlanıSipariş veri kaynağını belirtin ReportObject.SettingsComposer.Settings.Order.

Açıklanan eylemleri gerçekleştirdikten sonra, formda bulunan kontrolleri rapor düzeni sisteminin ayarlarıyla ilişkilendirdiniz, - Seçenek Ve Emir. Seçenek rapor sonucuna dahil edilecek alanların listesini yönetmenizi sağlar ve Emir sonuç satırlarının çıkış sırasını ayarlar. Bu alanların değerlerini ayarlamak için kullanıcı tarafından komut panellerine ihtiyaç duyulacaktır. Komut çubuğu özelliklerini kullanma otomatik tamamlama Ve Eylem Kaynağı, tablo alanlarının her birinde bulunan veri türüne göre otomatik komut üretimi elde edildi.

1C:Enterprise 8 sistemi, veri birleştirme sistemi tarafından kullanılmak üzere küçük bir dizi hazır tasarım düzenine sahiptir. Nesnede bulunurlar. Düzen KitaplığıTasarımlarDüzenVerileri.

İsimle başka bir yazıt koy Dekor ve başlık Dekor: ve sağına, adın bulunduğu bir seçim kutusu yerleştirin. SeçimAlanDekorasyon(Şek. 168) imzasız.

Pirinç. 168. Rapor formunu düzenleme

Seçim alanının özelliklerinde pencereyi açın Seçim Listesi Satırları ve veri düzeni tasarım düzeni kitaplığından yerleşim adlarıyla doldurun (bkz. Şekil 169).

Pirinç. 169. Seçim alanının değer listesinin doldurulması

Seçim kutusunun uygulanan düzen sistem düzenini değiştirmesini sağlamak için bir işleyici oluşturun Ne zaman değişir seçim alanları:

ProcessSelectionFieldDesignOnChange(Öğe)

OutputParameters = LinkerSettings.Settings.OutputParameters;

ParameterLayoutLayout = OutputParameters.FindParameterValue(Yeni

DataCompositionParameter("DesignLayout"));

ParameterDesignLayout.Use = true;

ParameterDesignLayout.Value = ChoiceFieldDesign;

Prosedürü Bitir

Veri kompozisyonu parametresi için bu metinle DüzenTasarım raporun biçimlendirilmesi gereken düzenin adını belirtir ve düzen düzenini kullanmak için bayrağı ayarlarsınız.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu açın evrensel2.

Aşağıdaki alanları seçili alanlara ekleyin:

· Usta;

· Adlandırma;

· Gelir Ciro.

Sıralama düzenini ayarlayın:

· Yükselen usta;

· Terminoloji.Azalan sırayla Terminolojinin türü;

· Adlandırma artan sırada.

Örneğin bir tasarım seçin Yeşil ve " Biçim". Sonuç şöyle görünecektir (Şek. 170):

Pirinç. 170. Raporun yürütülmesinin sonucu

Şimdi rapor oluşturma koşullarını değiştirin. Alanları seçin Müşteri, İsimlendirme Ve Gelir Ciro. Sıralama düzeni, alan değerinin artan düzeninde olacaktır. Müşteri ve tasarım seçeneği - Deniz. Raporu çalıştırın (Şek. 171).

Pirinç. 171. Raporun yürütülmesinin sonucu


3.13. "Hizmetlerin Sağlanması" belgesinin optimizasyonu

OOO "Master" yönetiminin, hizmet sağlama sürecinde kullanılan malzemelerin maliyetini hesaplama prosedürü hakkında nihai bir karar verdiğini varsayalım. Yani, malzemenin cari maliyeti, bu malzemenin bakiyesinin toplam maliyeti ile stokta kalan miktarının bir bölümü olarak belirlenecektir.

Ek olarak, 1C:Enterprise 8.1 araçları, sorgu mekanizmasını kullanarak belge gönderme prosedürünün hızını kontrol etmenize olanak tanır.

Böylece belge optimizasyonu İşleme Hizmetleri, iki amaca hizmet eder:

Bir belge yürütülürken sarf malzemelerinin maliyetinin belirlenmesi;

Belge işleme prosedürünün hızını artırmak.

Belgede Sil İşleme Hizmetleri tablo parçası sahne Fiyat, artık gerekli değil. Belge formunda bulunan tablo alanından ilgili sütunu da kaldırın. İşleme Hizmetleri.

Bundan sonra olay işleyicisinin içeriğini tamamen kaldırın. İşleme belge modülünde İşleme Hizmetleri ve içinde prosedürün bir boşluğunu oluşturun. Çevrimiçi yürütme modunda yürütülen isteğin metni (ör. Geçerli tarih ve zaman), gerçek zamanlı olmayan gönderide yürütülen sorgudan farklı olacaktır (yani, "geriye tarihleme"). Bu nedenle, istek metninin oluşumu If ... Aksi takdirde ... EndIf koşuluna dahil edilmelidir:

İstek = Yeni İstek;

Mod = Belge Gönderim Modu ise.O Zaman Çalışıyor

İstek.Metin =

Aksi takdirde

İstek.Metin =

EndIf;

İlk olarak, belge çevrimiçi yayınlandığında yürütülecek bir sorgu oluşturun. Request.Text değişkeninin değeri otomatik olarak üretilecektir. Bunu yapmak için, imleci noktalı virgülün önüne getirin, farenin sağ tuşuna basarak içerik menüsünü çağırın ve öğeyi seçin. Yapıcı iste. Yeni bir istek oluşturmayı kabul edin. Sorgu Oluşturucu iletişim kutusu ekranda görünecektir. tabloyu aç Liste Terminolojisi belgenin tablo kısmı İşleme Hizmetleri ve ondan alanları seçin:

· Adlandırma;

· Miktar;

· Terminoloji. Terminolojinin Türü;

Kayıtların ve kaynaklarının boyut değerlerini ayarlamak için bu alanlara ihtiyaç duyulacaktır. Ayrıca, alan Tip Terminolojisi belgede belirtilen terminolojinin ne olduğunu analiz etmeniz gerekecek: bir malzeme veya bir hizmet (Şek. 172).

Pirinç. 172. Seçilen alanlar

Kaynak değerlerini belirtmek için Fiyat kayıtlar malzeme maliyeti Ve Satışöğenin mevcut maliyetini, bu malzemenin kalan maliyetinin ve kalan miktarının bölümü olarak hesaplamanız gerekecektir.

Bu nedenle, seçilen tablolar listesine iki tablo daha ekleyin (Şek. 173).

Biriktirme Kaydı. Malzeme Kalıntıları. Kalıntılar.

Pirinç. 173. Seçilmiş tablolar

Bu sanal tablolar aynı ayarlara sahip olmalıdır. Önce sanal tabloyu seçin KalıntılarMalzemelerKalıntılar, farenin sağ tuşuna basarak içerik menüsünü çağırın ve öğeyi seçin Sanal Masa Seçenekleri. Parametreler, bu kayıtların geri kalanının alınması gereken zaman noktasını ve verileri alma koşulunu içerecektir.

Veri alma koşulu, bakiyelerin yalnızca deftere nakledilen belgede bulunan kalem kalemleri için alınması gerektiğini gösterir (talep gerçekleştirilmeden önce, kalemin deftere nakledilen belgede bulunan tüm kalemlerinin bir listesi göndericiye iletilmelidir. Belge Öğe Listesi parametresi) - şek. 174.

Pirinç. 174. Sanal Masa Seçenekleri

İkinci sanal tablo için aynı parametreleri ayarlayın Malzeme Maliyeti. Ardından, bu sanal tablolardan Kalan Maliyet ve Kalan Miktar alanlarını seçin (Şekil 175).

Pirinç. 175. Seçilen alanlar

Biriktirme kaydı sanal tablosunu yeniden seçin KalıntılarMalzemelerKalıntılar ve yeniden adlandır Depoda Kalan Malzemeler(Şek. 176).

Pirinç. 176. Seçilmiş tablolar

Bu sanal tablo için Moment of Time parametresini de belirtin ve koşulda malzemenin kalem listesinde olması gerektiğini ve deponun belgede belirtilen depoya eşit olması gerektiğini yazın (Şekil 177).

Pirinç. 177. Tablo parametreleri

Şimdi bu sanal tablodan QuantityRemainder alanını seçin (Şekil 178).

Pirinç. 178. Seçilen alanlar

Bu, seçilen alanların listesinin oluşturulmasını tamamlar ve seçilen tablolar arasındaki bağlantı koşullarını ayarlamaya devam edebilirsiniz. Bunu yapmak için yer imine gidin Bağlantılar. Sanal tabloların her biri, belge tablosunun tüm kayıtları için sanal tablonun mevcut kayıtlarının seçilmesi ve belge tablosundaki terminolojinin gelen malzemeye eşit olması gerektiği şekilde belge tablosuna bağlanmalıdır. sanal tablo (Şekil 179, a-b).

Pirinç. 179a. Seçili tablolar

Pirinç. 179b. Tablolar arasındaki ilişki koşulları

Şimdi yer işaretine git bunlara ek olarak ve bayrağı ayarla Degisim icin. bayrak Degisim icin yazarken kilitlenmeleri önlemek için, okuma sırasında belirtilen verilerin (başka bir bağlantının işlemi tarafından okunabilen) önceden okunmasını engellemenize olanak tanır. Bu yan tümce, sorguda okunan verileri değiştirilecek tabloları belirtmenize olanak tanır.

Çünkü birikim defterlerini yazmayı planlıyorsunuz. KalıntılarMalzemeler Ve malzeme maliyeti, bu kayıtların tablolarını değiştirilecek tablolar olarak belirtin (Şek. 180).

Pirinç. 180. Değiştirilecek tabloları belirtin

yer imine git Koşullar ve belge tablosundan yalnızca geçerli belgenin satırlarını seçme koşulunu ayarlayın (bağlantı sorgusu parametresine bir bağlantı iletilecektir) - şek. 181. Bunu yapmak için, alan üzerinde farenin sol düğmesine çift tıklayın. Bağlantı.

Pirinç. 181. Belge tablosundan seçim koşulu

yer imine git Sendikalar/Takma Adlar ve aşağıdaki alan takma adlarını ayarlayın: NomenclatureNomenclatureView –> NomenclatureView; QuantityRemaining1 –> QuantityInStock.

Tıklamak " TAMAM" ve yapıcının hangi sorgu metnini oluşturduğuna bakın (Request.Text değişkeninin değeri):

Hizmet Sunumu Tarife Listesi. Tarife No.

Malzeme Maliyeti Kalır Maliyet Kalır,

Stokta Kalan Malzemeler Kalan Miktar AS Stoktaki Miktar

SOL BİRLEŞTİR Biriktirme Kayıt.MalzemeMaliyet.Kalanlar(&Zamandaki Nokta, Malzeme (&Belge ÖğeListesi)) AS MalzemeMaliyetKalanlar

İçindeki Malzeme (&DocumentNomenclatureList)) AS KalıntılarıMalzemelerKalıntılar

Yazılım İşleme Hizmetleri Terminoloji Listesi Terminoloji =

SOL YÖNDEN KATILIM

(&DocumentItemList) İçindeki Malzeme VE Ambar = &AmbarDocument)

MALZEME KALANLARININ NASIL OLDUĞU

Yazılım İşleme Hizmetleri Terminoloji Listesi Terminoloji =

Depoda Kalan Malzeme Kalıntıları Malzeme

DEGİSİM İCİN

Birikim Kaydı, Malzeme Maliyeti, Bakiyeler,

Birikim Kaydı.KalanlarMalzemeler.Kalıntılar

Belgenin operasyonel olmayan bir şekilde kaydedilmesi durumunda talep metni, üçüncü sol birleştirmenin ve buna bağlı olarak alanın olmaması dışında hemen hemen aynı olacaktır. Stok adedi, Çünkü Bu durumda, bakiyeleri kontrol etmeye gerek yoktur. İmleci bölümde bulunan noktalı virgülden önce konumlandırın Aksi takdirde(bkz. sayfa 135) ve aşağıdaki sorgu metnini yapıştırın:

Hizmet Sunumu Terminoloji Listesi Terminoloji,

Hizmetlerin Sağlanması İsimlendirme Listesi Miktar,

Hizmetlerin Sağlanmasıİsim Listesi.Terminat.Terminat Tip AS

Tip Adlandırma,

Hizmet Sunumu Terim Listesi Tutar,

KalıntılarMalzemelerKalıntılar.MiktarKalan,

CostMaterialsRemainder.CostRemainder

Doküman.Hizmetlerin Sağlanması.Sınıflandırma Listesi AS Hizmet SunumuSınıflama Listesi

Sol yönden katılım

MALZEMELERİN MALİYETİ NASIL YAPILIR

Yazılım İşleme Hizmetleri Terminoloji Listesi Terminoloji =

Malzeme Kalıntılarının Maliyeti.Malzeme

SOL YÖNDEN KATILIM

İçindeki Malzeme (&DocumentNomenclatureList))

AS KalıntılarıMalzemelerKalanlar

Yazılım İşleme Hizmetleri Terminoloji Listesi Terminoloji =

KalıntılarMalzemelerKalıntılar.Malzeme

DEGİSİM İCİN

Biriktirme Kaydı. Malzeme Kalıntıları. Kalıntılar,

Birikim Kaydı.Malzeme Maliyeti.Kalanlar;

Şimdi istek parametrelerini işleyici metnine ekleyin (yalnızca kalın yazılmış komutları karşılık gelen satırlara ekleyin):

İstek = Yeni İstek;

Query.SetParameter("DepoInDocument", Depo);

Mod = Belge Gönderim Modu ise.O Zaman Çalışıyor

İstek.Metin =

| Birikim Kaydı. Malzeme Maliyeti. Bakiyeler";

EndIf;

Query.SetParameter("MomentTime", MomentTime());

Query.SetParameter("DocumentNomenclatureList",

ItemList.UnloadColumn("Adlandırma"));

"1C:Enterprise" yerleşik dilinin bazı nesneleri ile çalışmanın temel yöntemleri

1C:Enterprise sisteminin yerleşik dili

Yerleşik 1C:Enterprise dili, sistem nesnelerinin davranışını algoritmik olarak belirlemenizi sağlar. Bu, kullanıcının çeşitli getirme görevlerini çözmesine olanak tanır. yazılım işletmenin özel ihtiyaçları için.

Çalışmanın amacı: Yerleşik dil "sorgu", "tablo", "referans kitabı" nesneleri ile çalışmanın temel ilkelerini incelemek.

İsteklerle çalışmak için oluşturmanız gerekir fonksiyon değişkeni"Nesne Oluştur". Bir nesnenin öznitelikleri veya yöntemleri, değişken adından sonra bir nokta ile yazılır. Kullanılabilir yöntemlerin yanı sıra sorgu dili işleçlerinin listesi şu adreste bulunabilir: yardım sistemi"1C:Kuruluş". Bkz. 1.

Şekil.1 Yardım sistemi penceresi

"Request" türünde bir değişken oluşturduktan sonra, yönteme başvurmalısınız. Koşmak. Ardından, oluşturulan veri setinin döngüsel işlenmesi düzenlenir, bunun için yöntem kullanılır Gruplama.Örneğin, aşağıdaki örnekte (Belgelerin Kaydı Prosedürü), bir talep oluşturulur ve bunun sonucunda "Gelen kasa siparişi" belgelerinin aşağıdaki ayrıntılarını içeren bir veri seti oluşturulur: belge tarihi, belge numarası, belge tutarı , kimden peşin belirli bir süre için (StartDate, ConDate değişkenleri).

ProsedürDocumentRegister()

Değişken İstek, İstek Metni, Sekme, nom;

//Request türünde bir nesne yarat

İstek = CreateObject("İstek");

İstek Metni =

"//((TALEP(Oluştur)

|StartDate'den ConDate'e kadar olan süre;

|Numara = Document.IncomingOrder.DocNumber;

|Tarih1 = Document.IncomingOrder.DateDoc;

|Toplam = Belge.GelenSipariş.Miktar;

|Kimden = Document.IncomingOrder.AcceptedFrom;

|Fonksiyon Toplamı = Toplam(Toplam);

|Gruplama Numarası;

|"//)) TALEP

// İstekte bir hata varsa prosedürden çıkın

Request.Execute(QueryText) = 0 ise O zaman

Geri dönmek;

EndIf;

// Çıktı formlarını istek verileriyle doldurmaya hazırlanın

Sekme = CreateObject("Tablo");

Tab.SourceTable("Tablo");

// "Başlık" alanlarının doldurulması

Tab.OutputSection("Başlık");

State("Çıktı tablosu dolduruluyor...");

Tab.Options(0, 0, Tab.TableHeight(), 0);

// Doldurulan formun çıktısı

Nom=0;

Query.Group(1) = 1 Döngü iken

//alanları doldurun

Nom=Nom+1;

Tab.OutputSection("Belge");

Döngü Sonu;

Tab.DisplaySection("Toplam");

Tab.ViewOnly(1);

Tab.Show("Tablo", "");

Prosedürü Bitir

İstek verilerini görsel olarak görüntülemek için bir basılı form tablo nesnesini kullanarak. Bir elektronik tablo belgesini doldurmanın en tipik yolu, içine bölümler eklemektir. Bunun için, aynı formda bulunabilen orijinal elektronik tablo belgesi kullanılır. Ek olarak, kaynak tablo hem genel yapılandırma tablolarında hem de harici dosya. Kaynak elektronik tablo belgesinin atanması, "Tablo" nesne yöntemiyle gerçekleştirilir - SourceTable. Yöntem ÇıktıBölümü kaynak tablonun seçilen parçasını oluşturulan elektronik tablo belgesine dahil etmenize olanak tanır.

İncir. 2. Kaynak tablosu

Hesap tablosu düzenleyicisi hakkında daha fazla bilgiyi metodolojik kılavuzda bulabilirsiniz.

"Dizin", türdeş öğelerin listeleriyle çalışmak için bir araç olan toplu bir veri türüdür. Dizinler çok düzeyli olabilir. Dizin öğeleri periyodik olabilir, yani değeri belirli bir tarih için saklayın. Dizinler için, diğer dizinlere tabi olmayı belirtebilirsiniz, örn. birden çoğa ilişkiler oluşturur.

Özniteliklere erişme, dizin yöntemlerini çağırma yürütme bağlamına bağlıdır yazılım modülü. Aşağıdaki seçenekler olabilir:

1) örneğin, dizinin öğesini düzenleme biçimindeysek, dizinin geçerli öğesine doğrudan erişimimiz var. Burada dizinin özniteliklerine doğrudan erişebiliriz.

F_name = "Petrov"; burada F_name, yapılandırıcıda belirtilen dizin özniteliğidir.

2) öğenin değeri, örneğin bir belgenin özniteliği olarak başka kaynaklardan elde edilebilir. Bir özniteliğe erişmek için, böyle bir değişkenin yöntemini "Directory" türünde bir değerle çağırmanız gerekir.

Çocuk Sayısı=Dok.Çalışanlar.Çocuklar;

3) belirli bir öğenin yöntemi, "Directory" türündeki bir nesneye atıfta bulunan bir değişken kullanılarak çağrılır. Bir nesne, bir işlev tarafından oluşturulur "Nesne Oluştur».

Referans yöntemleri 1C:Enterprise yardım sisteminde de bulunabilir.

Seçenekler üzerinde laboratuvar çalışması için ödev

seçenek numarası Bir nesneyle çalışmak Egzersiz yapmak
sorgu, tablo Gelen ve giden faturalar için müşteriyle yapılan işlemlerle ilgili bilgileri görüntüleyin (iletişim modunda bir müşteri seçerek).
Dizin, tablo Çalışanlarla ilgili bilgileri görüntüleyin (isim, adres, çocuk sayısı)
Dizin, tablo Çalışanlarla ilgili bilgileri görüntüleyin (tam ad, adres, ülke, FIU'daki sertifika numarası)
Dizin, tablo Terminoloji referans kitabından bilgileri görüntüleyin (Ürün, fiyat, menşe ülke)
Dizin, tablo Terminoloji referans kitabından bilgileri görüntüleyin (Ürün, ölçü birimi, KDV oranı)
sorgu, tablo Dönem için deftere nakledilen tüm faturalarla ilgili bilgileri görüntüleyin.
sorgu, tablo Mallarla ilgili bilgileri görüntüleyin (alınmak için gelen faturaları ve tüketim için giden faturaları belirtin)

Edebiyat

1. 1C:Enterprise programı için belgeler

2. Stukalina E.F. - Alet çantası. "Temel kavramlar ve terimler yazılım ortamı"1C:Kuruluş". E-tablo düzenleyici»

| sonraki ders ==>

BU_KEYWORD
<Это конструкция языка>,
<Это конструкция языка>
BU_FONKSİYON(<Это конструкция языка>)

Sorgu dilini açıklayan kurallarda, dil yapıları köşeli parantez içinde belirtilmiştir. Anahtar sözcükler ve işlev adları büyük harflerle açıklanmıştır.

Dil yapıları isteğe bağlı öğeler içerebilir - anahtar sözcükler vb. Sorgu dilini açıklayan kurallarda, isteğe bağlı öğeler köşeli parantez "[" ve ​​"]" içine alınır:

[THIS_OPTIONAL_WORD] [<Это необязательная конструкция>]

Bazı durumlarda, bir dil yapısında birkaç alternatif öğeden biri kullanılabilir. Kurallardaki bu tür öğeler dikey çubuk "|" aracılığıyla listelenir:

OR_THIS_WORD | OR_THIS_WORD
<Либо эта конструкция> | <Либо эта конструкция>

Tüm yapıların açıklamalarına, bunların sorgu dilinde nasıl kullanıldığını açıklayan örnekler eşlik eder.

Sorgu dilinde yorumlar

İstek metni yorumlar içerebilir. Yorum, // karakter dizisiyle başlayan ve satırın sonuna kadar devam eden bir satırın parçasıdır:

// Bu bir yorumdur.

Sorgu yürütüldüğünde yorumlar dikkate alınmaz.

Anahtar kelimelerin iki dilli sunumu

1C:Enterprise sorgu dilinin temel özelliklerinden biri, yerleşik dilde olduğu gibi, tüm anahtar kelimelerin iki yazılışı olmasıdır: Rusça ve İngilizce. Bu bölümde ayrıca, anahtar kelimelerin Rusça yazımları belirtilmiştir. Aşağıda, Rusça ve İngilizce arasındaki yazışmaları ve sorgu dili anahtar kelimelerinin yazımlarını gösteren bir tablo bulunmaktadır...... (atlanmıştır)

İstek gövdesinin ana bölümleri

İstek metni aşağıdaki kuralla açıklanabilir:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[OTOMATİK SİPARİŞ]
[<Описание итогов>]

Bu kuraldan da görebileceğiniz gibi, istek metni birkaç bölümden veya bölümlerden oluşur:

Kısımda<Упорядочивание результатов>sorgu sonucunda satırları sıralamak için koşullar tanımlayabilirsiniz. Sorgu sonucu sıralaması 324. sayfada ele alınmıştır.

AUTOORDER, sorgu sonucunda satırların otomatik olarak sıralanmasını etkinleştirmenizi sağlar. Bu mod 331. sayfada açıklanmıştır.

Kısımda<Описание итогов>sorguda hangi toplamların hesaplanacağını belirleyebilirsiniz. Bu bölüm 332. sayfada açıklanmıştır.

Açıklama iste

Daha önce belirtildiği gibi, istek metni aşağıdakileri tanımlayan bir istek açıklama bölümü içermelidir:

Sorgu sonucunda yer alacak alanlar;

Veri kaynaklarını sorgula - kaynak tabloları;

Bir sorguda veri seçimini etkileyen koşullar;

Sorgu sonuçlarının gruplanma sırası.

İstek açıklaması bölümü, birbiriyle ilişkili birkaç cümleden oluşur:

[ÇEŞİTLİ] [İLK] SEÇİN<Количество>]
<Список полей выборки>
[İTİBAREN<Список источников>]
[NEREDE<Условие отбора>]
[GRUPA GÖRE<Поля группировки>]
[SAHİP OLMAK<Условие отбора>]
[DEGİSİM İCİN [<Список таблиц верхнего уровня>]]

Talep açıklaması gerekli bir anahtar kelime ile başlar SEÇMEK.

Teklif NEREDE<Условие отбора> sorgu sonucunu filtrelemenizi sağlar. Sonuç, yalnızca belirtilen koşulun doğru olduğu kayıtları içerir. Seçim koşullarını açıklayan kurallar 315. sayfada ele alınmıştır.

Teklif DEGİSİM İCİN işlemde okunan verilerin kilitlenmesi gerektiğini belirtmek için tasarlanmıştır.

Teklif GRUP sorgu sonuçlarının nasıl gruplandırıldığını açıklamanıza olanak tanır. Gruplama, 316. sayfada ayrıntılı olarak ele alınmıştır.

Teklif SAHİP OLMAK gruplama sonuçlarına koşullar empoze etmenize izin verir. 318. sayfada açıklanmıştır.

Bu bölümdeki tüm sorgu örnekleri, sorgu metnini ve sorgu sonucunu içerir. İstek metninin, İstek nesnesinin Execute yöntemine bir parametre olarak iletildiği varsayılır.

örnek ver yeter basit bir istek, tek bir SELECT deyiminden ve bir seçim alanları listesinden oluşur.

//İrsaliye listesinin raporda görüntülenmesi gerekmektedir.

Sorgu sonucu:

FARKLI kelimesinin kullanımı

Çoğu durumda, raporda aynı satırların tekrarlanmaması arzu edilir.

// Hangi karşı tarafları bulmak gerekiyor
// mallar dönem için sevk edildi.
Belge.Fatura.Yüklenici'yi seçin

Sorgu sonucu:

Görüldüğü gibi, sorgunun sonucu görünürlüğünü azaltan çok sayıda yinelenen satıra sahiptir. Tekrardan kaçınmak için, sorgu açıklamasında FARKLI anahtar kelimesi belirtilmelidir.

Çeşitli Belge.Fatura.Yüklenici Seçin

Sorgu sonucu:

İLK kelimesinin kullanımı

Bazı durumlarda, bir raporda sınırlı sayıda satırın görüntülenmesi gerekir. Bunu yapmak için, talebin açıklamasında İLK anahtar kelimesini ve ardından - gerekli satır sayısını belirtin.

// En pahalı beş ürünü seçmek gerekiyor.
// Numune alma, ürün fiyatına göre azalan sırada yapılmalıdır.
İlk 5'i Seçin
Dizin, Adlandırma, Ad,
Directory.Nomenclature.PurchasePrice
Göre sırala

Sorgu sonucu:

Seçim alanlarının açıklaması

Sorgu metnindeki zorunlu SELECT anahtar sözcüğünden (ve niteleyici DIFFERENT ve FIRST sözcüklerinden) sonra, bir seçim alanları listesi belirtilir. Bu alanlar, bir sorguda veri getirilirken işlenecektir. Sorgu sonucu ayrıca içinde tanımlanan alan kümesine sahip olacaktır. bu liste. Örnek alanlar aşağıdaki kurallara göre tanımlanır:

<Описание поля>[ [NASIL]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

Seçim alanlarının listesi, virgülle ayrılmış bir veya daha fazla öğeden oluşur. Her biri<Поле выборки>bir seçim alanı açıklamasından ve isteğe bağlı bir alan takma adından oluşur.

Seçim listesindeki alanları listelemek yerine yıldız işareti "*" belirtebilirsiniz. Bu, sorgu sonucunun kaynak tablolardaki tüm alanları içermesi gerektiği anlamına gelir - kaynaklar listesinde açıklanan sorgu verilerinin kaynakları.

Yorum! Seçim alanları listesinde bir yıldız "*" belirtilirken sonuç, kaynak tabloların sanal alanlarını içermez.

<Описание поля>alan değerlerinin nasıl oluşturulması gerektiğini belirler. En basit durumda, seçim alanı kaynak tablo alanına bir bağlantıdır. Bağlantı, bu alanı içeren tablonun belirtilmesiyle veya tablonun kendisinin belirtilmemesiyle belirtilebilir. Alan başvurusunun kaldırılması şu adreste ele alınmaktadır:

Genel durumda, seçim alanı yalnızca kaynak tablo alanına bir bağlantı değil, aynı zamanda bazı<Выражение>. İfadeler ayrıntılı olarak 344. sayfada ele alınmıştır.

Sorgu sonuçları, seçim alanlarında ifadeler olarak belirtilen toplama işlevleri kullanılarak gruplandırılabilir. Sorgu sonuçlarının gruplandırılması 316. sayfada ele alınmıştır. Toplu işlevler 345. sayfada açıklanmıştır.

Her seçim alanına bir takma ad atanabilir. Gelecekte, daha kolay erişim için kullanılabilir. Bu alan. Alan takma adlarının kullanımı aşağıda tartışılmaktadır.

<Группа полей>yalnızca seçim alanı iç içe geçmiş bir tabloyu işaret ettiğinde belirtilebilir. Bu durumda iç içe tablo seçiminde hangi alanların işlenmesi gerektiğini belirtebilirsiniz. Alan grubu belirtilmemişse seçimde iç içe geçmiş tablonun tüm alanları işlenir. İç içe geçmiş tablolara erişim bölümünde açıklanmıştır.

Seçim listesindeki alan takma adları

Bir seçim alanına bir takma ad atarsanız, gelecekte ORDER BY ve TOTAL yan tümcelerinde ve ayrıca sorgu sonucuyla çalışırken bu alana takma adını kullanarak başvurabilirsiniz. Böyle bir temyiz daha uygun ve görsel olabilir ve bazı durumlarda mümkün olan tek şey olabilir.

AS anahtar sözcüğü, alan takma adından önce gelebilir. Bu kelime hiç belirtilmeyebilir, ancak belirtilirse sorgu metninin görünürlüğü ve okunabilirliği artar.

Alan takma adları, değişken tanımlayıcıları atama kurallarına göre tanımlanır. İstekteki takma adlar eşleşemez.

Alanlara takma ad atamak, kendi başına bir sorgudaki veri seçimini etkilemez.

// Ürün dizininden seçilmelidir
// ürün adları ve grup adları.
Seçmek
dizin. Mal Olarak İsimlendirme,
dizin. Nomenclature.Parent.Name Grup Olarak
itibaren
Dizin.Adlandırma

Sorgu sonucu:

Alan sorgusu sonucundaki alanların "Öğe" ve "Grup" olarak adlandırıldığına dikkat edin. Alan takma adları belirtilmemiş olsaydı, sorgu sonucundaki alanlar "Ad" ve "Ad1" olarak adlandırılırdı (sorgu sonucundaki alanların adları aynı olamaz, bu nedenle alan adına otomatik olarak "1" eklenir. ikinci alan), ki bu çok daha az belirgindir.

Seçim alanları listesindeki iç içe geçmiş tablolar

Seçim listesindeki bir alan, sorgunun veri kaynağındaki iç içe geçmiş bir tabloya başvurabilir. Bu durumda, sorgu sonucu alanı QueryResult türünde olacaktır, yani iç içe geçmiş bir kaynak tabloya dayalı olarak oluşturulmuş iç içe bir sorgu sonucu içerecektir.

Varsayılan olarak, iç içe sonuç, iç içe tablonun tüm alanlarını içerir - veri kaynağı. İç içe geçmiş bir sorgu sonucunda bulunması gereken bir grup alanı açıkça tanımlamak mümkündür. Yuvalanmış sonuç alan grubu aşağıdaki kurala göre tanımlanır:

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>virgülle ayrılmış bir veya daha fazla öğeden oluşur. Liste tek bir öğeden oluşuyorsa parantez içine alınmasına gerek yoktur.

İç içe geçmiş alanları listelemek yerine yıldız işareti "*" belirtebilirsiniz; bu, iç içe sorgu sonucunun iç içe tablodaki tüm alanları içermesi gerektiği anlamına gelir.

<Выражение>[[NASIL]<Псевдоним поля>]

<Вложенное поле>bir ifadeyi temsil edebilir. En basit durumda<Выражение>iç içe tablo alanına bir başvurudur. İfadeler ayrıntılı olarak 344. sayfada ele alınmıştır.

İç içe geçmiş her alana bir takma ad atanabilir. Daha öte<Псевдоним поля>seçim listesi alan takma adlarına benzer şekilde bu alana daha uygun bir şekilde başvurmak için kullanılabilir - bkz. "Seçim listesindeki alan takma adları" bölümü

İç içe tablonun kendisine bir takma ad verilsin ya da verilmesin, iç içe alanlara takma adlar atanabilir.

//İrsaliyelerin özelliklerinin raporda gösterilmesi zorunludur,
// belgenin kendisi, terminolojisi ve miktarı.
Seçmek

Document.Fatura.Composition.(Mal Olarak Adlandırma, Miktar)

Sorgu sonucu:

Bağlantı Birleştirmek
Ürün Miktar
kadın için kot 4
kadın için kot 5
Gömlek "Kovboy Kız" 5
24 Şubat 2002 tarihli 00005 harcama faturası 0:00:00 kadın için kot 1
kadın için kot 1
Moidodyr "Akvaryum" 5
"Zambak" lavabosu 8
Mikser "Ultra" 10

Sorgu sonucunun "Bileşim" alanının, "Terminat" ve "Miktar" alanlarına sahip iç içe geçmiş bir tablo olduğunu lütfen unutmayın.

//Faturanın tablo kısmındaki tüm alanları raporda göster.
Seçmek
Belge.Fatura.Bağlantı,
Belge.Fatura.Bileşim.*

FROM yan tümcesinin amacı, bu SELECT ifadesinde kullanılan veri kaynakları olan kaynak tabloların bir listesini belirlemektir.

Sorgu dilindeki FROM yan tümcesinin isteğe bağlı olduğuna dikkat edilmelidir. SELECT yan tümcesinde yer alan seçim alanı listesinin açıklamasında veri kaynakları tam olarak belirtilmişse atlanabilir. Önceki bölümlerdeki bazı örneklerin bir FROM yan tümcesi içermediğine dikkat edin.

FROM anahtar sözcüğünü bir kaynak listesi izler. Genel olarak, kaynakların listesi aşağıdaki kurallarla tanımlanır:

<Источник>[, <Источник>[, ...]]

Sorgu veri kaynakları, virgülle ayrılmış kaynaklar listesinde listelenir. Her<Источник>kaynaklar listesi, kaynağın açıklamasını içermelidir; ek olarak, belirtilebilir<Перечень соединений>- bir kaynağı diğer kaynaklara bağlama kuralları. Bağlantı özellikleri açıklanmıştır.

<Описание источника> [ <Перечень соединений> ]

Bilgi bankası tablosu veri kaynağı ise,<Описание источника>içerir<Имя таблицы>.

<Таблица>[ [NASIL]<Псевдоним источника>]

Kaynak tablo sanal ise, belirtilebilir<Параметры>oluşumu. Sanal tabloların parametreleri "Veri Kaynaklarını Sorgula" bölümünde ayrıntılı olarak açıklanmıştır.

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

Bir alt sorgu, bir sorgu veri kaynağı olarak da işlev görebilir; bu durumda, kaynak açıklaması şunları içerir:<Описание запроса>. Yuvalanmış sorguların kullanımı adresinde açıklanmaktadır.

Veri kaynağının açıklamasında takma adı da atanabilir. Daha öte<Псевдоним источника>bu kaynağa daha rahat erişim için kullanılabilir. Veri kaynağı takma adlarının kullanımı .

Bağlantı özellikleri

Kaynak listesinde birden fazla kaynak tanımlandığında, birinci kaynak tablodaki her kayıt için ikinci kaynak tablodan bir seçim yapılır ve bu böyle devam eder. Böylece sorgulama sonucunda belirtilen tüm kaynaklardan gelen tüm kayıtların olası tüm kombinasyonları oluşturulur.

Sorgu sonucu:

karşı taraf Banka
Tedarikçiler JSCB Yatırım Bankası
Tedarikçiler JSCB PromStroyBank
Örgü fabrikası "Zarya" JSCB Yatırım Bankası
Örgü fabrikası "Zarya" JSCB PromStroyBank
Kot Fabrikası JSCB Yatırım Bankası
Kot Fabrikası JSCB PromStroyBank
Alıcılar JSCB Yatırım Bankası
Alıcılar JSCB PromStroyBank
Giyim Fuarı JSCB Yatırım Bankası
Giyim Fuarı JSCB PromStroyBank
Ticaret evi "Budenovsky" JSCB Yatırım Bankası
Ticaret evi "Budenovsky" JSCB PromStroyBank
Toptancı pazarında Pavilion 45 JSCB Yatırım Bankası
Toptancı pazarında Pavilion 45 JSCB PromStroyBank
Bavyera - porselen JSCB Yatırım Bankası
Bavyera - porselen JSCB PromStroyBank
Kot Fabrikası JSCB Yatırım Bankası
Kot Fabrikası JSCB PromStroyBank
JSCB PromStroyBank JSCB Yatırım Bankası
JSCB PromStroyBank JSCB PromStroyBank

Sorgu sonucu, tüm karşı tarafların tüm bankalarla kombinasyonlarını içerir. Kural olarak, böyle bir sonuç kendi başına bir anlam ifade etmez. Genellikle farklı kaynak tablolardan gelen kayıt kombinasyonlarının bazı koşullarla sınırlandırılması gerekir. Sorgu dilinde, kaynakların kendilerini belirterek ve bu kaynaklardan gelen kayıt kombinasyonlarının sorgu sonucuna dahil edilmesinin gerekli olduğu koşulları belirterek böyle bir kaynak kombinasyonunu tanımlamak mümkündür.

Bağlantılar birkaç türdendir, aşağıdaki kurallarla açıklanırlar:

<Соединение> [<Перечень соединений>]

Genel olarak<Перечень соединений>yalnızca bir bağlantıyı (iki kaynağın) değil, aynı anda birkaç kaynağın birkaç bağlantısını da içerebilir ve tanımlayabilir.

[DAHİLİ] BAĞLANTI<Описание источника>İLE<Условие отбора> |

SOL DIŞ KATILMA<Описание источника>İLE<Условие отбора> |

SAĞ [DIŞ] BİRLEŞTİR<Описание источника>İLE<Условие отбора> |

TAM (HARİCİ) BİRLEŞTİRME<Описание источника>İLE<Условие отбора>

<Условие отбора>kaynak tablolardan - seçimdeki kaynakları sorgula - verileri birleştirmenin gerekli olduğu koşulları içerir. Sorgu dilinde koşulları açıklama kuralları 357. sayfada ele alınmıştır.

LEFT, RIGHT ve FULL anahtar sözcükleri, birleştirmenin doğasını belirtir. DAHİLİ veya HARİCİ sözcükleri hiç kullanılmayabilir, bunlar sorgu metninin görünürlüğünü ve okunabilirliğini artırır.

Birleştirilmiş kaynaklar birbirine eşdeğer değildir ve bazı durumlarda sonuç, JOIN anahtar sözcüğünden önce (solunda) hangi tablonun ilk olarak listelendiğine ve ikinci olarak (sağda) hangi tablonun listelendiğine bağlıdır.

[INNER] JOIN, her iki kaynak tablodan - veri kaynaklarından, yalnızca belirtilen koşulla eşleşen kayıt kombinasyonlarının sorgu sonucuna dahil edilmesi gerektiği anlamına gelir. Girişlerin geri kalanı sonuca dahil edilmez.

// Aynı anda hangi bankaların olduğunu öğrenmemiz gerekiyor
// karşı taraflar (aynı isimler mevcut
//hem Karşı Taraflar dizininde hem de Bankalar dizininde).
Seçmek

Banks.Link Banka Gibi
İtibaren

Dahili Bağlantı
Handbook.Bankalar Banka Gibi
İle

Sorgu sonucu:

karşı taraf Banka
JSCB PromStroyBank JSCB PromStroyBank

LEFT [OUTER] JOIN, sorgu sonucunun, belirtilen koşulla eşleşen her iki kaynak tablodan kayıt kombinasyonlarını içermesi gerektiği anlamına gelir. Ancak, bir iç birleştirmeden farklı olarak, sorgu sonucu, koşulla eşleşen ikinci kaynaktan hiçbir kayıt bulunmayan birinci kaynaktan (JOIN kelimesinin solunda belirtilen) kayıtları da içermelidir.

Böylece, sorgunun sonucu ilk kaynaktaki tüm kayıtları içerecektir; belirtilen koşul karşılandığında ikinci kaynaktan alınan kayıtlarla birleştirilecektir. İkinci kaynaktan eşleşen kayıt bulunmayan sorgu sonucu satırları, bu kaynaktan alınan kayıtlara göre oluşturulan alanlarda NULL içerecektir.

//Rapordaki tüm karşı tarafları görüntülemek gereklidir ve bunlar için
// kim aynı zamanda bir banka - bankaya bir bağlantı belirtin.
Seçmek
Yükleniciler Link Yüklenici Olarak,
Banks.Link Banka Gibi
İtibaren
Karşı Taraf Olarak Karşı Taraflar
Sol dış katılma
Handbook.Bankalar Banka Gibi
İle
Karşı Taraflar.Adı = Bankalar.Adı

Sorgu sonucu:

RIGHT [OUTER] JOIN, sorgu sonucunun, belirtilen koşulla eşleşen her iki kaynak tablodan kayıt kombinasyonlarını içermesi gerektiği anlamına gelir. Ek olarak, sorgu sonucu, koşulla eşleşen birinci kaynaktan hiçbir kayıt bulunmayan ikinci kaynaktan (JOIN kelimesinin sağında belirtilen) kayıtları da içermelidir.

Böylece sorgu sonucu ikinci kaynaktan gelen tüm kayıtları içerecektir; belirtilen koşul karşılandığında ilk kaynaktan alınan kayıtlarla birleştirilecektir. İlk kaynaktan eşleşen kayıt bulunmayan sorgu sonucu satırları, o kaynaktan alınan kayıtlara göre oluşturulan alanlarda NULL içerecektir.

//Rapordaki tüm bankaları görüntülemek gerekiyor ve bunlar için
// kim aynı zamanda karşı taraftır - karşı tarafa bir bağlantı belirtin.
SEÇMEK
Yükleniciler Link Yüklenici Olarak,
Banks.Link Banka Gibi
İTİBAREN
Karşı Taraf Olarak Karşı Taraflar
Sağ Dış Birleştirme
Handbook.Bankalar Banka Gibi
İle
Karşı Taraflar.Adı = Bankalar.Adı

Sorgu sonucu:

karşı taraf Banka
HÜKÜMSÜZ JSCB Yatırım Bankası
JSCB PromStroyBank JSCB PromStroyBank

FULL [OUTER] JOIN, sorgu sonucunun, belirtilen koşulla eşleşen her iki kaynak tablodan kayıt kombinasyonlarını içermesi gerektiği anlamına gelir. Ek olarak, sorgu sonucu her iki kaynaktan da eşleşme bulunamayan kayıtları da içermelidir.

Böylece, sorgunun sonucu her iki kaynaktan gelen tüm kayıtları içerecektir; belirtilen koşul sağlandığında birbirlerine bağlanacaktır. Herhangi bir kaynaktan eşleşen kayıt bulunmayan sorgu sonucu satırları, o kaynaktan alınan kayıtlara göre oluşturulan alanlarda NULL içerecektir.

// Raporda tüm karşı tarafları ve tüm bankaları göstermek gerekiyor,
// a.her ikisi de olanlar - tek satırda çıktı alın.
Seçmek
Yükleniciler Link Yüklenici Olarak,
Banks.Link Banka Gibi
İtibaren
Karşı Taraf Olarak Karşı Taraflar
Tam Dış Birleştirme
Handbook.Bankalar Banka Gibi
İle
Karşı Taraflar.Adı = Bankalar.Adı

Sorgu sonucu:

Veri kaynağı takma adları

Bir veri kaynağına bir takma ad atanırsa, gelecekte bu kaynağa bu takma adı kullanarak erişmek mümkün olacaktır (ve artık tablo adını belirterek bu kaynağa erişmek mümkün olmayacaktır). Böyle bir temyiz daha uygun ve görsel olabilir ve bazı durumlarda mümkün olan tek şey olabilir.

Takma ad, değişken tanımlayıcıları atama kurallarına uygun olarak ayarlanır. İstekteki takma adlar eşleşemez.

AS anahtar sözcüğü, kaynak takma adından önce gelebilir. Bu kelime hiç belirtilmeyebilir, ancak belirtilirse sorgu metninin görünürlüğü ve okunabilirliği artar.

Kaynaklara takma ad atamak, kendi başına bir sorgudaki veri seçimini etkilemez.

// Bu örnek kullanımını gösteriyor
// Mal takma adının seçim alanları listesinde,
// Reference.Nomenclature kaynak tablosuna atanır
Seçmek
Ürün Açıklaması,
Öğe.Ebeveyn
İtibaren
Dizin.Adlandırma.Ürün

Kaynak listesindeki iç içe tablolar

Kaynak listesi, dizinlerin ve belgelerin tablo bölümleri olan iç içe tabloları da içerebilir.

//İrsaliyelerin özelliklerini raporda göstermek zorunludur -
// belgenin kendisini, terminolojisini ve miktarını göster.
//İç içe tablo "Bileşim", kaynaklar listesinde belirtilir -
// faturanın tablo kısmı.
// Örneği aşırı yüklememek için seçim sekiz kayıtla sınırlıdır.
İlk 8'i Seçin
Referans, Terminoloji, Miktar
İtibaren
Belge.Fatura.Bileşim

Sorgu sonucu:

Bağlantı terminoloji Miktar
25.02.2002 21:03:21 tarihli gider faturası 00007 kadın için kot 4
25 Şubat 2002 tarihli 00006 harcama faturası 0:00:00 kadın için kot 5
25 Şubat 2002 tarihli 00006 harcama faturası 0:00:00 Gömlek "Kovboy Kız" 5
03/01/2002 20:58:28 tarihli gider faturası 00005 kadın için kot 1
03/01/2002 20:50:40 tarihli gider faturası 00004 kadın için kot 1
23 Şubat 2002 tarihli 00003 harcama faturası 0:00:00 Moidodyr "Akvaryum" 5
23 Şubat 2002 tarihli 00003 harcama faturası 0:00:00 "Zambak" lavabosu 8
23 Şubat 2002 tarihli 00003 harcama faturası 0:00:00 Mikser "Ultra" 10

Lütfen kaynaklar listesinde iç içe geçmiş bir tablo belirtirken, hem iç içe geçmiş tablonun alanlarına hem de üst düzey tablonun alanlarına (iç içe geçmiş tabloyu içeren) erişime izin verildiğini unutmayın. Bu durumda, belgenin kendisinin "Bağlantı" alanına erişilir.

Kaynak listesindeki alt sorgular

Bir sorgu kaynak listesi, bir alt sorguyu kaynak tablo olarak kullanabilir. Bu durumda, kaynak açıklaması alt sorgu açıklamasını içerir. İç içe geçmiş bir sorgunun açıklaması, normal bir sorguyla aynı şekilde yapılır: bkz.

İç içe geçmiş bir sorguyu veri kaynağı olarak kullanmak, bilgi bankası tablosu kullanmaktan farklı değildir. Alt sorgu seçim alanları listesinde açıklanan tüm alanlar, böyle bir kaynağın alanları olarak mevcuttur.

Sonuç, önceki örnekteki ile tamamen aynı olacaktır.

Sorgularla çalışmak için yerleşik dilin bir nesnesi kullanılır Rica etmek. Veritabanının alanlarında saklanan bilgileri, belirtilen kurallara göre oluşturulmuş bir seçim şeklinde almanızı sağlar..

Sorgu, bir dizi tablodan ilk bilgileri alır. Bu tablolar, gerçek veri tabanı tablolarının verilerini analize uygun bir biçimde temsil eder. İki büyük gruba ayrılabilirler: gerçek Ve sanal.

Gerçek tablolar sırasıyla nesne (referans) veya nesne olmayan (referans olmayan) olabilir, şek. 97.

Pirinç. 97. Sorgu tabloları

Gerçek tabloların ayırt edici bir özelliği, veritabanında depolanan herhangi bir gerçek tablodan veri içermeleridir.. Örneğin, Müşteriler dizinine karşılık gelen Dizin.Müşteriler tablosu veya Malzeme Kalıntılarının birikim kaydına karşılık gelen Biriktirme Kaydı.Malzeme Kalıntıları tablosu gerçektir.

Sanal tablolar, öncelikle birden çok veritabanı tablosundaki verilerden oluşturulur. Örneğin, Biriktirme kaydı Malzeme Kalıntılarının birkaç tablosundan oluşturulan Biriktirme Kaydı.Malzeme Kalıntıları.Kalıntılar ve Cirolar tablosu sanaldır.

Bazen sanal tablolar tek bir gerçek tablodan da oluşturulabilir (örneğin, Fiyatlar sanal tablosu. Son Dilim, Fiyat bilgileri kaydı tablosu temelinde oluşturulur). Bununla birlikte, tüm sanal tabloların ortak noktası, bu sanal tablolara hangi verilerin dahil edileceğini belirleyen bir dizi parametre verilebilmesidir. Bu tür parametrelerin kümesi, farklı sanal tablolar için farklı olabilir ve kaynak veritabanı tablolarında depolanan veriler tarafından belirlenir.

Gerçek tablolar nesne (referans) ve nesne olmayan (referans olmayan) olarak ikiye ayrılır.

İÇİNDE nesne (referans) tabloları referans veri türlerinin bilgileri (dizinler, belgeler, özellik türlerinin planları vb.) sunulur. Ve objektif olmayan (referans olmayan)– diğer tüm veri türleri (sabitler, kayıtlar, vb.).

Ayırt edici özellik nesne (referans) tabloları geçerli girişe bir bağlantı içeren bir Bağlantı alanı içermeleridir.. Ayrıca, bu tür tablolar için mümkündür bir nesnenin özel bir temsilini alma. Bu tablolar hiyerarşik olabilir ve bu tür tabloların alanları iç içe tablolar (tablo bölümleri) içerebilir.

Sorgunun kaynak tablolarından verilerin seçileceği algoritma, sorgu metninde özel bir dilde açıklanmıştır - sorgu dili . İstek metni birkaç bölümden oluşur:

talebin açıklaması;

İsteklerin birleştirilmesi

sonuçların sıralanması;

· OTOMATİK SİPARİŞ;

sonuçların bir açıklaması.

İsteğin zorunlu kısmı yalnızca ilkidir - isteğin açıklaması. Diğerleri gerektiği gibi mevcuttur.

Sorgu açıklaması, veri kaynaklarını, seçim alanlarını, gruplandırmaları vb. tanımlar.

Sorgu toplama, birden çok sorgunun sonuçlarının nasıl birleştirileceğini belirler.

Sonuçların sıralanması, sorgu sonucu satırlarının sıralanması için koşulları tanımlar.

AUTOORDER, sorgu sonucu satırlarının otomatik olarak sıralanmasını etkinleştirmenizi sağlar.

Toplamların açıklaması, sorguda hangi toplamların hesaplanacağını ve sonucun nasıl gruplandırılacağını belirler.

Bir veri kompozisyon sisteminde veri kaynaklarını tanımlamak için bir sorgulama dili kullanıldığında, sorgulama dilinin özet bölümünün kullanılmadığına dikkat edilmelidir. Bunun nedeni, veri oluşturma sisteminin geliştirici veya kullanıcı tarafından yapılan ayarlara göre toplamları bağımsız olarak hesaplamasıdır.

Veri kompozisyon sistemi 1C:Enterprise 8.1 sisteminde özel raporlar oluşturmak için tasarlanmıştır ve birkaç ana bölümden oluşmaktadır.

Raporun düzeni için ilk veriler şunları içerir: veri kompozisyon şeması veri kümeleri ve bunlarla çalışma yöntemleri(Şek. 98).

Geliştirici, istek metnini, veri kümelerini, aralarındaki ilişkileri, kullanılabilir alanları, veri elde etmek için parametreleri tanımladığı ve ilk yapılandırma ayarlarını (rapor yapısı, veri tasarım düzeni vb.) belirlediği bir veri oluşturma şeması oluşturur.

Örneğin, bir yerleşim şeması aşağıdaki veri setini içerebilir (Şekil 99).

Pirinç. 98. Veri kompozisyon sistemi ile genel çalışma şeması

Pirinç. 99. Yerleşim şeması örneği (bir veri kümesi ve onu kullanan bir sorgu)

Şek. Şekil 99, veri kaynağını, sorgu metnini ve sorgu tarafından seçilen alanları içeren veri oluşturma şema tasarımcısı penceresini göstermektedir.

Kullanıcının aldığı veri birleştirme sistemi raporu, yalnızca sorguyla eşleşen bir kayıt tablosu değildir. Karmaşık bir hiyerarşik yapıya sahiptir ve gruplamalar, tablolar ve çizelgeler gibi çeşitli öğelerden oluşabilir. Aynı zamanda, kullanıcı mevcut olanı değiştirebilir ve hatta tamamen yeni bir rapor yapısı oluşturabilir, ihtiyaç duyduğu seçimi ayarlayabilir, rapor yapısının öğelerini tasarlayabilir, her öğe için bir döküm alabilir vb.

Örneğin, aşağıdaki rapor yapısı ayarlanabilir (Şek. 100):

Pirinç. 100. Olası bir raporun yapısı

Oluşturulan rapor şöyle görünebilir (Şek. 101).

Sunulan raporda, tablo birikim kayıt girişlerinden oluşacaktır. Satış Ciroları müşteriler ve onlara sağlanan hizmetler hakkında. Bu kayıtlar siparişleri tamamlayan ustalara göre gruplandırılmıştır. Ve gruplandırmada, bir usta listesi görüntülenecektir.

Genel olarak, veri birleştirme sistemi birkaç nesnenin bir koleksiyonudur. Bir rapor oluştururken ve yürütürken, nihai sonuç elde edilene kadar - kullanıcıya gösterilen bir belge olana kadar veriler, veri oluşturma sisteminin bir nesnesinden diğerine sırayla aktarılır.

Bu nesnelerin etkileşimi için algoritma aşağıdaki gibidir: geliştirici bir veri oluşturma şeması ve varsayılan ayarlar oluşturur. Genel olarak, bir veri kompozisyon şemasına dayalı olarak çok sayıda farklı rapor oluşturulabilir. Geliştirici tarafından oluşturulan veya kullanıcı tarafından değiştirilen veri oluşturma ayarları, belirli bir durumda hangi raporun alınacağını belirler.

Pirinç. 101. Örnek rapor

Düzen şemasına ve mevcut ayarlara bağlı olarak, düzen oluşturucu bir veri düzeni düzeni oluşturur. Bu, raporun yürütülmesi için hazırlık aşamasıdır. Bir veri kompozisyon şablonu, kompozisyon işlemcisi tarafından yürütülmek üzere önceden hazırlanmış bir iştir. Düzen düzeni, gerekli sorguları, rapor alanı düzenlerini vb. içerir.

Veri birleştirme işlemcisi, oluşturma düzenine göre bilgi tabanından veri seçer, bu verileri toplar ve biçimlendirir.

Düzenin sonucu, çıktı işlemcisi tarafından işlenir ve sonuç olarak kullanıcı, sonuçtaki elektronik tablo belgesini alır.

Yerleşim sisteminin sırası aşağıdaki şemada gösterilebilir (Şek. 102):

Pirinç. 102. Yerleşim sisteminin şeması

3.12.1. "Belgelerin kaydı Hizmetlerin sağlanması" raporunun oluşturulması

Rapor Belgelerin kaydı Hizmetlerin sağlanması veri tabanındaki mevcut Servis belgelerinin bir listesini tarih ve numara sırasına göre görüntüler.

Rapor. Bir isim ver KayıtBelgelerProvisionServices. Yer imi Ana tıklamak " Hazır". Veri birleştirme şeması oluşturucusunda şunu ekleyin: Veri Kümesi - Sorgu Yapıcı iste".

Sorgu için veri kaynağı olarak nesne (referans) belge tablosunu seçin İşleme Hizmetleri. Bu tablodan aşağıdaki alanları seçin (Şek. 103):

Tarihi; Sayı; Stoklamak; Usta; Müşteri.

Pirinç. 103. Seçilen alanlar

Bundan sonra yer imine gidin Emir ve sorgu sonucunun önce alan değerine göre sıralanması gerektiğini belirtin tarih ve ardından alan değerine göre RenderingServices.Link(Şek. 104).

Pirinç. 104. Sorgu sonucu çıktısının sırası

Tıklamak " TAMAM" ve sorgu oluşturucunun hangi sorguyu oluşturduğunu görün.

yer imine git Ayarlar ve rapor yapısına yeni bir gruplama ekleyin (Şek. 105).

Pirinç. 105. Ayarlar sekmesinin komut paneli

Gruplandırma alanı seçim penceresinde " TAMAM" ve sekmesinde Seçili alanlar raporda görüntülenecek alanları ayarlayın:

Tarihi; Sayı; Stoklamak; Usta; Müşteri (Şek. 106).

Pirinç. 106. Raporun yapısını özelleştirme

Hizmetlerin sağlanması için belgelerin kaydı. Tıklamak " Biçim" ve raporun sonucuna bakın (Şek. 107).

Pirinç. 107. Rapor Hizmetleri sağlayan belgelerin kaydı

Rapor. Adını sen koy Hizmet Puanı. Yer imi Ana tıklamak " Açık Veri Kompozisyon Şeması". Açılan Düzen Tasarımcısı iletişim kutusunda " Hazır".

Veri birleştirme şeması oluşturucusunda şunu oluşturun: Veri Kümesi - Sorgu(DataSet1) ve " Yapıcı iste".

terminoloji ve birikim kaydının sanal bir tablosu Satış Ciroları. Sorguda ad belirsizliğini önlemek için Adlandırma tablosunu şu şekilde yeniden adlandırın: Bahar Terminolojisi(bağlam menüsüne sağ tıklayın - Tabloyu yeniden adlandırın).

Ardından tablo alanlarından seçim yapın Spr Terminolojisi Bağlantı Ve Satış Ciro. Gelir Ciro(Şek. 108).

Pirinç. 108. Seçilen alanlar

yer imine git Bağlantılar ve yapıcının seçilen iki tablo arasında zaten bir ilişki oluşturduğuna dikkat edin - İsimlendirme kaydındaki değişikliğin değeri, İsimlendirme referans kitabındaki öğeye yapılan referansa eşit olmalıdır.

Yapılacak tek şey bayrağı sıfırlamak Tüm kayıt tablosunda ve referans tablosunda ayarlayın Bahar Terminolojisi(Şek. 109).

Bayrağın ayarlanması Tüm dizin tablosu için tüm öğelerin dizinden seçileceği ve bu öğelere kayıttan gelir devri değeri atanacağı anlamına gelir. Böylece talep sonucunda tüm hizmetler mevcut olacak ve bazıları için ciro cirosu belirtilecektir. Seçilen dönemde sağlanmayan hizmetler için hiçbir şey belirtilmeyecektir.

Pirinç. 109. Tablo ilişkilerini ayarlama

yer imine git Koşullar ve Terminoloji referans kitabından öğe seçme koşullarını ayarlayın (Şek. 110). Seçim koşullarını ayarlarken, sorgu parametrelerini kullanmanız gerekecektir. İlk koşul, seçilen öğenin bir grup olmaması olmalıdır (bunu yapmak için, keyfi koşul- bayrak ayarla Keyfi). Daha sonra sahada durum aşağıdaki metni girin:

SprNomenclature.ThisGroup = YANLIŞ

İkinci koşul, seçilen öğenin bir hizmet olması olmalıdır (bu, basit durum) (Şek. 110).

Pirinç. 110. Elemanları seçme koşulları

Gelecekte, isteği yürütmeden önce, parametrede Tip Terminolojisi karşılık gelen enum değerini geçmelisiniz.

yer imine git Sendikalar/Takma Adlar ve referans öğe görünümünün bir takma adı olacağını belirtin Hizmet ve kayıt alanının bir takma adı olacaktır Hasılat(Şek. 111).

Pirinç. 111. Sendikalar/Takma İsimler

yer imine git Emir ve sorgu sonucunun alan değerinin azalan düzeninde sıralanması gerektiğini belirtin Hasılat. İsteğin oluşturulması tamamlandı, " düğmesine tıklayın TAMAM". Yapıcı tarafından oluşturulan sorgu metnine bakın.

yer imine git Kaynaklar tıklayın ve " >> " böylece yapıcı, toplamları hesaplamak için mevcut tüm kaynakları seçer. Sizin durumunuzda, bu tek kaynaktır. Hasılat(Şek. 112).

Pirinç. 112. Veri kompozisyon şeması kaynakları

yer imine git Seçenekler(Şek. 113).

Pirinç. 113. Veri Bileşimi Seçenekleri

Bu sekmede üç seçenek göreceksiniz: dönemin başlangıcı, Bitiş Dönemi Ve Tip Terminolojisi. İlk parametre toplam hesaplama döneminin başlangıcı, ikincisi ise dönemin sonudur. Sonuç olarak, kaynak tablosu yalnızca aktarılan dönemde hesaplanan ciroları içerecektir.

parametre için dönemin başlangıcı kullanıcıya görüntülenecek başlığı ayarlayın − Başlangıç ​​tarihi.

Burada, bu parametreler olarak bir tarih iletirseniz, tarihin en yakın saniyeye kadar olan zamanı da içerdiğini her zaman hatırlamalısınız.

Kullanıcının belirtilen periyotlarda raporun sonuçlarıyla bir saniyeye kadar doğrulukla ilgilenmeyeceğinin önceden bilindiğini varsayalım. Bu durumda, iki özellik dikkate alınmalıdır.

Öncelikle kullanıcı, tarih girerken saati belirtme ihtiyacından kurtarılmalıdır. Bunu yapmak için, parametre için mevcut tip bildirimini değiştirin. dönemin başlangıcı. Bir hücreye çift tıklayın Mevcut tipler, parametreye karşılık gelen dönemin başlangıcı, seçim düğmesine basın " " ve veri tipi düzenleme penceresinin altında, Tarih Bileşimi anlam içine tarih(Şek. 114).

Tıklamak " TAMAM".

İkinci özellik, tarihteki varsayılan saatin 00:00:00 olmasıdır. Bu nedenle, kullanıcı rapor dönemini 10/01/2009'dan 31/10/2009'a ayarlarsa, kayıt toplamları 10/01/2009 00:00:00'dan günün başına kadar hesaplanacaktır. 31.10.2009 00:00:00. Böylece gün başlangıcı dışındaki 31. güne ait veriler hesaplamaya dahil edilmeyecek ve bu da kullanıcıyı oldukça şaşırtacaktır. Bu durumu ortadan kaldırmak için kullanıcının bitiş tarihini gireceği başka bir parametre ekleyin. Parametre değeri Bitiş Dönemi kullanıcı tarafından girilen tarihin gün sonunu gösterecek şekilde otomatik olarak hesaplanacaktır. Bu nedenle, parametre için Bitiş Dönemi bayrağı ayarla Kullanılabilirlik kısıtlaması.

Pirinç. 114. Tarihin kompozisyonunu düzenleme

Komut çubuğu düğmesini kullanarak EndDate adlı yeni bir parametre ekleyin (Şek. 115).

Pirinç. 115. EndDate parametresi ekleme

Bu parametre için platform otomatik olarak bir başlık oluşturacaktır - Son kullanma tarihi. Değiştirmeden bırakın. Parametre değeri türünü ayarlayın − tarih. Bu durumda parametre olarak dönemin başlangıcı, tarihin bileşimini belirtin - tarih.

Lütfen eklediğiniz parametrenin varsayılan olarak kullanıcı tarafından kullanılabilir olduğunu unutmayın (son sütundaki erişilebilirlik kısıtlaması kaldırılmıştır).

parametreye git Bitiş Dönemi. Bunun için sistem kullanılabilirlik kısıtlama bayrağını ayarlamıştır. Bu parametrenin değeri, kullanıcı tarafından parametre için ayarlanan değere göre hesaplanacağından işaretini kaldırmayın. Son kullanma tarihi.

Parametre değerinin hesaplanacağı formülü ayarlamak için Bitiş Dönemi, veri oluşturma sistemi ifade dilini kullanın. İşlevi içerir Dönem Sonu(), örneğin belirtilen gün gibi bir dönemin sonuna karşılık gelen tarihi almanıza olanak tanır.

bir hücrede İfade parametreyi ayarla Bitiş Dönemi aşağıdaki ifade:

Yukarıdaki işlemlerin bir sonucu olarak, düzen parametreleri şöyle görünecektir (Şek. 116):

Pirinç. 116. Düzen sistemi seçenekleri

Son olarak, parametreyi ayarlayın Tip Terminolojisi. Raporun yalnızca hizmet satışından elde edilen geliri göstermesi gerektiğinden, parametrenin değeri Tip Terminolojisi kullanıcı değişmemelidir. Doğrudan düzende şu şekilde ayarlanmalıdır: . Parametre kısıtlama bayrağı Tip Terminolojisi platform bunu varsayılan olarak ayarlamıştır, bu nedenle yalnızca istenen numaralandırma değerini belirtmeniz gerekir Türlerin İsimlendirilmesi bir hücrede Anlam, parametreye karşılık gelen Tip Terminolojisi(Şek. 117).

Pirinç. 117. Nomenclature Type parametresinin değerinin ayarlanması

Rapor yapısının oluşturulmasına devam edin. Yer imi Ayarlar bir gruplama ekleyin ve yine gruplandırma alanını belirtmeyin. Yer imi Seçili alanlar alanları belirtin Hizmet Ve Hasılat(Şek. 118).

Ardından yer işaretine gidin Diğer ayarlar ve raporun başlığını ayarlayın - Hizmet Puanı(Şek. 119).

Pirinç. 119. Raporun başlığını ayarlama

1C:Enterprise'ı hata ayıklama modunda çalıştırın.

raporu seç Hizmet derecelendirmesi, ancak " düğmesini tıklamadan önce Biçim", açık Ayarlar ve yer iminde veri seçenekleri rapor dönemini 03/01/2004'ten 04/30/2004'e ayarlayın (Şek. 120). Belgelerinizin oluşturulma tarihleri ​​örnekte verilenlerden farklı ise rapor dönemi farklı ayarlanmalıdır.

Pirinç. 120. Rapor ayarları

Tıklamak " TAMAM" ve bir rapor oluşturun. Sonuç şöyle görünecektir (Şek. 121):

Pirinç. 121. Raporun yürütülmesinin sonucu

Şimdi bitiş tarihini 31.03.2004 olarak değiştirin. Raporda 31 Mart verileri de yer almaktadır (Şek. 122).

Pirinç. 122. Raporun yürütülmesinin sonucu

3.12.3. "Ustaların geliri" raporunun oluşturulması

Rapor Master geliri seçilen dönemdeki tüm günlerin ayrıntıları ve her gün hizmet verilen müşterilerin dökümü ile birlikte, her bir ustanın çalışması nedeniyle Master LLC tarafından hangi gelirin alındığı hakkında bilgi içerecektir. Bu raporu örnek olarak kullanarak, bir sorguda çok düzeyli gruplamaların nasıl oluşturulacağını ve seçilen bir dönemdeki tüm tarihlerin nasıl atlanacağını öğreneceksiniz.

Yeni bir yapılandırma nesnesi oluştur Rapor. Adını sen koy Gelir Uzmanları ve ana veri birleştirme şeması oluşturucusunu çalıştırın.

Eklemek Veri Kümesi - Sorgu(DataSet1) ve " Yapıcı iste". Biriktirme kaydının sanal tablosunu seçin Satış Ciroları.

Bu sanal tablonun seçeneklerinden birini ayarlayın − periyodiklik. Bunu yapmak için sahaya gidin masalar tıklayın ve " Sanal Masa Seçenekleri"(Şek. 123).

Pirinç. 123. Sanal bir tablonun parametrelerini değiştirme

Açılan parametreler penceresinde parametre değerini ayarlayın Periyodiklik - Gün(Şek. 124). Düğmesine basın " TAMAM".

Pirinç. 124. Sanal Masa Seçenekleri

Ardından tablodan aşağıdaki alanları seçin:

· Satış Ciroları Master;

· Satış Ciroları.Dönem;

· Satış Ciroları Müşteri;

· Satış Ciro Ciro Ciro (Şek. 125).

Pirinç. 125. Seçilen alanlar

Şimdi yer işaretine git Sendikalar/Takma Adlar ve bir takma ad belirleyin Hasılat alan için Satış Ciro. Gelir Ciro(Şek. 126).

Pirinç. 126. Sendikalar/Takma İsimler

Yer imi gruplama gruplandırmanın alanlara göre yapılacağını tanımlayın Usta, Dönem Ve Müşteri, ve alan değerleri Gelir Ciroözetlenecektir (Şek. 127).

Pirinç. 127. Gruplandırma alanları

Yer imi Emir sorgu sonucunun alan değerinin artan düzeninde sıralanacağını belirtin Dönem. Tıklamak " TAMAM". Yapıcı tarafından oluşturulan sorgu metnini düşünün.

Şimdi veri birleştirme şemasını düzenlemeye geçin. Yer imi Kaynaklar tıklamak " >> " ve yapıcının mevcut tek kaynağı seçtiğinden emin olun - Hasılat.

Yer imi Seçeneklerönceki raporu oluştururken kullandığınız adımların aynısını izleyin.

parametre için dönemin başlangıcı bir başlık ayarla Başlangıç ​​tarihi. sahada Mevcut tipler tarihin kompozisyonunu ayarlayın - tarih.

parametre için Bitiş Dönemi bir ifade ayarlayın:

BitişDönemi(&BitişTarihi, "Gün")

sahada sınırlama kullanılabilirlik, kullanılabilirlik kısıtlama bayrağını ayarlar.

Son olarak bir parametre daha ekleyin - Son kullanma tarihi, türünü şu şekilde ayarlayın: tarih, tarihin bileşimi tarih.

Yukarıdaki işlemlerin bir sonucu olarak, veri oluşturma parametreleri şöyle görünecektir (Şek. 128):

Pirinç. 128. Veri Bileşimi Seçenekleri

Şimdi rapor yapısını oluşturmamız gerekiyor. Yer imi Ayarlar sırayla iki iç içe gruplama oluşturun: üst düzey - alana göre Usta, içine yerleştirilmiş - alana göre Dönem. Ardından, alana göre gruplama içinde iç içe başka bir gruplama ekleyin Dönem, – Detay kayıtları(gruplama alanını belirtmeden) (Şek. 129).

Pirinç. 129. Raporun yapısı

Şimdi, genel rapor düzeyinde olmak, sekmeye gidin. Seçili alanlar ve listeye alanlar ekleyin Müşteri Ve Hasılat.

Son olarak, genel rapor seviyesinden sekmeye gidin Diğer ayarlar ve aşağıdaki ayarları değiştirin. parametre için set değeri Ayrı ayrı ve sadece sonuçlarda; parametre için değeri ayarla Başlangıç ve parametre için başlık değeri ayarla Master geliri(Şek. 130).

Pirinç. 130. Genel toplamların çıktısını başlangıca ayarlamak

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve 03/01/2004 ile 30/4/2004 arasındaki dönem için Master Revenue raporunun sonucuna bakın (Şekil 131).

Pirinç. 131. Raporun yürütülmesinin sonucu

Hatırlarsanız, bu rapor, seçilen dönemdeki tüm günlerin ayrıntılarını içeren verileri göstermelidir. Artık yalnızca birikim kaydı tablosunda sıfır olmayan girişlerin olduğu günler görüntülenir. Bu nedenle, artık rapor ayarlarını, raporun oluşturulduğu dönemden itibaren her tarih rapora denk gelecek şekilde değiştirmek gerekiyor.

Bunu yapmak için konfigüratör moduna geri dönün ve rapor yapısında ince ayar yapın. Şimdiye kadar yaptığınız tüm yapı ayarları, raporun tamamına bir bütün olarak uygulandı. Ancak veri birleştirme sistemi, yapının her bir öğesini ayrı ayrı özelleştirmenize de olanak tanır.

Gruplandırma ayarını değiştirmeniz gerekecek Dönem. Bu belirli gruplandırmanın ayarlarına gitmek için yapı alanında imleci bu gruplandırmanın üzerine getirin ve ardından " Dönem" komut panelinde (Şek. 132).

Pirinç. 132. Gruplandırma ayarları Dönemi

Bu gruplama için kullanılabilen ayarlar formun alt kısmında görüntülenecektir.

yer imine git Gruplandırma alanları. alan için Dönem düzenlemek Eklenti Türü - Gün(Şek. 133).

Pirinç. 133. Dönemin tamamlayıcı türünü ayarlama

Bunu yaparak, bu gruplama için sıfır olmayan kaynak değerine sahip mevcut kayıtların her gün için kayıtlarla destekleneceğini belirtmiş oldunuz.

Bundan sonra böyle bir eklemenin hangi dönemde yapılacağını belirtmelisiniz. Aşağıdaki alanlara bu döneme ait başlangıç ​​ve bitiş tarihlerini girebilirsiniz. Ancak tarihlerin açıkça belirtilmesi uygun değildir, çünkü kullanıcı keyfi bir süre için bir rapor oluşturabilir. Tarihlerin eklenmesinin belirli bir sabit dönemde değil, kullanıcının raporun tamamı için seçtiği dönemde yapılması gerekir.

Raporun tam olarak bu şekilde çalışmasını sağlamak için, ilk alanın düzenleme moduna girin (örneğin, üzerine çift tıklayarak) ve "temizle" düğmesine tıklayın. X". Bundan sonra," düğmesine tıklayarak T", bu alanda görüntülenen veri türünü seçebileceksiniz. Veri oluşturma alanı(Şek. 134).

Pirinç. 134. Bir veri türü seçme

Tıklamak " TAMAM". Şimdi giriş alanındaki seçme düğmesine tıklayın " " ve açılan alan seçim penceresinde seçeneği işaretleyin dönemin başlangıcı(Şek. 135). Tıklamak " TAMAM".

Pirinç. 135. Alan seçimi

2.giriş alanı için ise parametreden dönem bitiş tarihi alınacak şekilde aynı şekilde belirtiniz. Son kullanma tarihi(Şek. 136).

Pirinç. 136. Gruplandırma ayarları Dönemi

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu çalıştırın Master geliri 20 Mart 2004 ile 20 Nisan 2004 arasındaki dönem için (Şekil 137).

Pirinç. 137. Raporun yürütülmesinin sonucu

3.12.4. Hizmet Envanter Raporu Oluşturma

Rapor hizmet listesi"Master" LLC'nin hangi hizmetleri ve hangi fiyata sağladığı hakkında bilgi içerecektir. Örneğinde, periyodik bilgi kaydından en son değerleri alma ve hiyerarşik dizinleri görüntüleme olasılığını öğreneceksiniz.

Yeni bir yapılandırma nesnesi oluştur Rapor. Adını sen koy hizmet listesi ve Veri Bileşimi Şeması Tasarımcısını çalıştırın. Yeni bir tane oluştur Veri Kümesi - Sorgu(DataSet1) ve sorgu yapıcısını çağırın.

Nesne (referans) arama tablosunu seçin terminoloji ve sanal bir bilgi kaydı tablosu Fiyatlar.Son Dilim. Sorgudaki adların belirsizliğini ortadan kaldırmak için Nomenclature tablosunu şu şekilde yeniden adlandırın: Bahar Terminolojisi.

Sanal tablonun parametrelerini girmek için iletişim kutusunu çağırın FiyatlarDilimSon ve parametrede sürenin geçeceğini belirtir. Rapor Tarihi(Şek. 138).

Pirinç. 138. Sanal Masa Seçenekleri

Ardından tablolardan aşağıdaki alanları seçin:

· SprNomenclature.Parent;

· FiyatlarDilimSon.Fiyat (Şek. 139).

Pirinç. 139. Seçilen alanlar

yer imine git Bağlantılar, bayrağı bırak Tüm kayıt tablosunda ve referans tablosunda ayarlayın.

Yer imi Koşullar sözlük öğelerini seçme koşulunu ayarlayın terminoloji– seçilecek öğeler, sorgu parametresinde iletilen öğe türüne karşılık gelmelidir Tip Terminolojisi(Şek. 140).

Pirinç. 140. Elemanları seçme koşulları

Yer imi Sendikalar/Takma Adlar alanı belirtmek ebeveyn takma adı olacak hizmet grubu ve alan Bağlantı - Hizmet(Şek. 141).

Pirinç. 141. Sendikalar/Takma İsimler

yer imine git gruplama ve gruplandırmanın alana göre yapılacağını belirtir. SprNomenclature.Parent. Özetlenen alanların değerlerini ayarlamak gerekli değildir (Şek. 142).

Şekil 142. Gruplandırma alanları

Tıklamak " TAMAM". Talep metnine bakın.

Veri birleştirme şemasını düzenlemeye devam edin. Yer imi Kaynaklar düğmesine basmak" >> " mevcut tek kaynağı seçin Fiyat.

Yer imi Seçenekler parametre değerini ayarla Tip Terminolojisi Nasıl Nomenclature.Service Enumeration.Types. Ek olarak, parametre için erişilebilirlik kısıtlamasını kaldırın. Rapor Tarihi ve ona bir başlık verin - Rapor tarihi. sahada Mevcut tipler tarihin kompozisyonunu ayarlayın - tarih. parametre için Dönem, aksine kullanılabilirlik kısıtlamasını ayarlayın (Şek. 143).

Pirinç. 143. Düzen şeması seçenekleri

Rapor yapısının oluşturulmasına devam edin. yer imine git Ayarlar ve alana göre bir grup oluşturun hizmet grubu, gruplama türünü belirterek hiyerarşi. Bu gruplandırma içerisinde grup alanı belirtmeden başka bir gruplandırma oluşturun. Ayrıntılı rapor kayıtları içerecektir (Şek. 144).

Pirinç. 144. Raporun yapısı ve vurgulanan alanları

yer imine git Seçili alanlar ve Hizmet ve Fiyat alanlarının raporda görüntüleneceğini belirtin (Şek. 145).

Pirinç. 145. Raporun yapısı

Ve son olarak, sekmedeki raporun görünümünü özelleştirin Diğer ayarlar. Rapor, belirli hizmetlerin fiyatlarının ilgi çekici olduğu sağlanan hizmetlerin bir listesi olacağından, kaynak değerlerini görüntüleyin Fiyat gruplamaların her biri ve bir bütün olarak raporun tamamı için bir anlam ifade etmemektedir.

Raporda toplamların görüntülenmesini devre dışı bırakmak için parametreyi ayarlayın. Genel Toplamları Dikey Olarak Konumlandırma anlam içine HAYIR.

Ardından belirli gruplama ayarlarına gidin − hizmet grubu. parametre için Toplamların konumu bu gruplama, değeri belirtin HAYIR. Bir bütün olarak tüm raporun ayarlarına dönün.

parametre için Gruplandırma alanlarının konumu bir değer girin Ayrı ayrı ve sadece sonuçlarda(böylece rapor daha iyi "okunacaktır"). Son olarak, raporun başlığını belirleyin - hizmet listesi.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve her şeyden önce periyodik kaydı açın Fiyat:% s.

Hizmet için ona başka bir değer ekleyin Teşhis: hizmetin 01.04.2004 tarihi itibariyle yeni fiyatı 350'dir (Şek. 146). Bu, raporu test edecektir.

Pirinç. 146. "Fiyatlar" kaydının girişleri

Şimdi raporu çalıştırın hizmet listesi 31 Mart 2004 itibariyle (Şek. 147).

Pirinç. 147. Raporun yürütülmesinin sonucu

Raporunuz, Teşhis hizmetinin 31.03.2004 tarihi itibariyle - 200 ruble fiyatını doğru bir şekilde yansıtıyor.

Raporu yeniden çalıştırın, ancak şimdi farklı bir tarih için - 04/01/2004 (Şek. 148).

Pirinç. 148. Raporun yürütülmesinin sonucu

Gördüğünüz gibi, Teşhis hizmetinin yeni fiyatı gösteriliyor - 350 ruble.

Rapor Müşteri Değerlendirmesi Master LLC'nin tüm faaliyet süresi boyunca her bir müşteriye hizmet sağlanmasından elde edilen gelirin ne olduğunu gösterecektir. Örneği üzerinde, bir sorgunun sonucunu görüntülemek için bir grafik kullanma olasılığı gösterilecektir.

Diyagram 1C:Enterprise sisteminin çeşitli türlerindeki tablo ve çizelge ve grafik formlarına yerleştirme amaçlı bir kontrol öğesidir.

mantıksal olarak diyagram noktasındaki noktaların, serilerin ve seri değerlerin toplamıdır.(Şek. 149).

Kural olarak, özelliklerin değerlerini aldığınız anlar veya nesneler nokta olarak kullanılır ve değerleri ile ilgilendiğiniz özellikler seri olarak kullanılır.

Örneğin, aylara göre ürün türlerinin satış tablosu, puanlar - aylar, seriler - ürün türleri ve değerlerden - satış cirolarından oluşacaktır.

Yerleşik dilin bir nesnesi olarak diyagram, diyagramın tasarımını kontrol etmenize izin veren üç alana sahiptir: yapım alanı, başlık alanı ve gösterge alanı (Şek. 150).

Grafik, rapor yapısına ayrı bir öğe olarak eklenebilir. Rapor oluştururken Müşteri Değerlendirmesi grafik, veri oluşturma şeması ayarları yapısında kullanılacaktır.

Pirinç. 149. Grafik örneği

Pirinç. 150. Harita alanları

Konfigüratörde yeni bir konfigürasyon nesnesi oluşturun Rapor. Adını sen koy DerecelendirmeMüşteriler, ana veri düzeni şemasını açın.

Yaratmak veri seti - sorgu(DataSet1) ve sorgu yapıcısını çağırın. Sanal birikim kayıt tablosunu seçin Satış Ciroları ve ondan bir alan - Satış Ciro. Müşteri.

Ardından yeni bir alan ekleyin (simge Eklemek alanlar listesinin üzerindeki komut çubuğunda) ve ifade oluşturucuyu kullanarak bunu gelir ve maliyet arasındaki fark olarak tanımlayın (Şekil 151).

Pirinç. 151. Özel alan ifadesi düzenleyicisi

Sonuç olarak, seçilen alanların listesi şöyle görünecektir (Şek. 152):

Pirinç. 152. Seçilen alanlar

Yer imi Sendikalar/Takma Adlar hesaplanan alanın bir takma adı olacağını belirtin Gelir(Şek. 153).

Pirinç. 153. Sendikalar/Takma İsimler

Yer imi Emir sonuç satırlarının alan değerinin azalan düzeninde sıralanması gerektiğini belirtir Gelir. Tıklamak " TAMAM" ve sorgu oluşturucunun hangi metni oluşturduğunu görün.

yer imine git Kaynaklar ve bir alan ekleyin Gelir düzen kaynaklarına. Ardından yer işaretine gidin Ayarlar Raporun yapısını oluşturmak için.

Yapısı gruplamalar içeren önceki tüm raporların aksine, bu sefer rapor yapısına bir diyagram ekleyin (Şekil 154).

Pirinç. 154. Raporun yapısı

Grafik noktalarına alana göre gruplandırma ekleyin Müşteri. Grafik serisini değiştirmeden bırakın.

Şimdi yer işaretine git Seçili alanlar ve alanı seçin Gelir raporun çıktısı için. Rapor yapısı aşağıdaki formu almalıdır (Şekil 155):

Pirinç. 155. Rapor yapısı ve grafik ayarları

Yer imi Diğer ayarlar raporun başlığını belirleyin - Müşteri Değerlendirmesi ve ayrıca grafik türünü seçin − Dairesel hacimsel.

1C:Enterprise'ı hata ayıklama modunda çalıştırın ve raporu açın Müşteri Değerlendirmesi(Şek. 156).

Pirinç. 156. Rapordaki pasta hacim tablosu

Grafiğin bir bölümünün üzerine geldiğinizde bir araç ipucunun göründüğünü lütfen unutmayın.

Rapor ayarlarını açın ve grafik türünü şu şekilde değiştirin: Ölçme. Raporu yeniden oluşturun (Şek. 157).