Veri kümelerinin bağlantıları sd. Veri düzeni şeması (1C SKD)

Bir veri kompozisyon sistemi birden fazla veri seti kullanabilir. Ve bu veri setlerinin bir şekilde birbiriyle bağlantılı olması da oldukça mantıklı. 1C sorgu diline benzer şekilde veri kümeleri veya olabilir. Bu yazıda bunun hakkında konuşacağız erişim kontrol sistemindeki veri setlerinin bağlantısı.

İlk bakışta, tabloları tek bir veri kümesinde birleştirebiliyorsanız, neden birkaç veri kümesi oluşturup sonra bunları birleştirmeniz gerektiği açık olmayabilir. Bunun en az bir nedeni var: harici bir veri seti kullanılması durumunda. Bildiğiniz gibi bir ACS veri seti için sorgu yazdığımızda içine geçiş yapamıyoruz örneğin . Normal bir istek için bu oldukça basit bir şekilde yapılır. Bir erişim kontrol sistemi kullanılması durumunda, bir değerler tablosunu ona . Bu nedenle veri kümelerini bağlama ihtiyacı. Veri kümelerinin yalnızca kullanılarak bağlanabileceğini hemen belirteyim. SOL BAĞLANTI. Bu nedenle, buradan farklı olarak tablo bağlantısı türünden sorumlu onay kutularını görmezsiniz.

Şimdi veri setlerini bir erişim kontrol sistemine bağlamayı düşünebileceğimiz bir örnek kullanarak bir durum ortaya koyalım. Diyelim ki bir dizinimiz var Mal Farklı tedarikçilerden alabileceğimiz ve en uygun fiyata sahip tedarikçiyi seçebilmek için tedarikçiye göre mal fiyatlarını içeren bir rapor oluşturmak istiyoruz. Ve şu anda güncel olan fiyatları, örneğin tedarikçilerin web sitelerindeki web hizmetleri aracılığıyla alacağız.

Buna göre mallar için talep kullanılarak elde edilen bir veri setine, fiyatlar için ise harici bir kaynaktan elde edilen bir veri setine sahip olacağız.


Şimdi yer imine gidelim Veri kümesi ilişkileri ve ayarları şekildeki gibi yapın.

Yer işaretinde AyarlarÖncelikle ayrıntılı kayıtların temel çıktısını oluşturalım


Rehberimizde yer alsın Mal aşağıdaki girişleri içerir

Raporu çalıştırıyoruz ve aşağıdaki resmi görüyoruz

Yani veri setlerinin tüm kurallara göre birbirine bağlandığını görüyoruz. SOL BAĞLANTI

Yer işaretinde Veri kümesi ilişkileri Uygun alanlarda bazı ek parametreler belirtmek mümkündür. Ancak oldukça nadiren kullanılırlar. Daha fazla ayrıntıyı teknik belgelerde ve ITS disklerinde bulabilirsiniz.

Bu durumda, Gerekli onay kutusu, kaynakta (YANLIŞ olarak ayarlı) veya hedefte (DOĞRU olarak ayarlı) kullanılan alanların etkinleştirilip etkinleştirilmediğini belirler ve buna göre ilişkiyi düzene ekler.

Veri kümelerinin her biri için bir hiyerarşi kontrolü oluşturabilirsiniz:

Bu seçenek, bir alanın seçim koşulunun standart olmayan bir şekilde işlenmesi gerekiyorsa kullanılır. Bir bağlantının belirli bir değerdeki hiyerarşiye ait olup olmadığını kontrol etmek için verilerin elde edildiği bir veri seti içeren bir alan belirtilebilir.

1C sınavının 11.33. Sorusu: Platform Profesyoneli. Birden fazla veri kümesinin kullanılması kabul edilebilir mi?

  1. Yalnızca veri kümelerini kullanırken – nesne
  2. Yalnızca veri kümelerini kullanırken - sorgu

Doğru cevap ilkidir, her halükarda kabul edilebilir.


Sınav 1C Soru 11.10: Platform Profesyoneli. Veri kompozisyonu diyagramında iki veri seti arasındaki ilişkiyi tanımlarken

  1. Bağlantı seçeneği (sol, dolu) geliştirici tarafından seçilir
  2. İlk setin ikinciye sol birleşimi her zaman kullanılır
  3. İkinci kümenin birinciyle sol birleşimi her zaman kullanılır
  4. İlk kümenin ikinciye sol birleşimi kullanılır, bazı durumlarda iç birleşim kurulur

Doğru cevap dördüncüdür. Veri kümeleri yalnızca sol veya iç birleştirmeyle bağlanır.

Sınav 1C Soru 11.13: Platform Profesyoneli. Hangi durumlarda düzen diyagramı tasarımcısı penceresindeki "Veri Kümeleri" sekmesinde hiyerarşi denetimini yapılandırmak gerekir?

  1. Standarttan farklı olan kendi hiyerarşinize göre toplamların alınmasını yasaklamanız gerekiyorsa
  2. Standarttan farklı olarak kendi hiyerarşinize göre toplamların elde edilmesine izin vermeniz gerekiyorsa
  3. Standart olandan farklı olarak kendi hiyerarşinizdeki bir gruba giriş için seçim kurulumunu yasaklamanız gerekiyorsa
  4. Seçimin standart hiyerarşiden farklı olarak kendi hiyerarşinizdeki bir gruba dahil edilmesine izin vermeniz gerekiyorsa

Doğru cevap dört numaradır, açıklama yazıdadır.

Sınav 1C Soru 11.16: Platform Profesyoneli. Bir kompozisyon sisteminde iki veri kümesi arasında ne tür bağlantılar uygulanabilir?

  1. Hepsi sorgu dilinde olduğu gibi: "Hepsiden Herkese", "Sol", "Sağ", "İç" ve "Tam"
  2. Yalnızca "Hepsinden Herkese", "Sol", "Sağ" ve "İç"
  3. Yalnızca "Sol" ve "İç"
  4. Yalnızca "Hepsiden Herkese", "Sol" ve "İç"
  5. Yalnızca "Sol", "Sağ", "İç" ve "Tam"

Test sonucuna göre doğru cevap dördüncüdür. Aslında üçüncüsü doğrudur.

Sınav 1C'nin 11.17. Sorusu: Platform Profesyoneli. İki veri seti arasında ilişki kurarken "Gerekli İlişki" bayrağı seçilir. Hangi durumda kullanıcının eylemleri bağlantının başarısız olmasına neden olur?

  1. Her iki gruptan gelen verilerin bağlantısı, kullanıcının yaptığı ayarlara bakılmaksızın uygulanacaktır.
  2. Seçilen alanların listesi yalnızca soldaki kümedeki alanları gösterir
  3. Seçilen alanlar listesinde yalnızca doğru kümedeki alanlar belirtilir
  4. Seçilen alanlar listesinde yalnızca sol kümenin alanları gösterilir, sağ kümenin alanı seçilir
  5. Seçilen alanlar listesinde yalnızca sağdaki kümenin alanları gösterilir; soldaki kümenin alanı seçilir;

Doğru cevap ikincisidir, eğer yalnızca bir set (ve kaynak) varsa, bağlanacak hiçbir şey yoktur.

1C sınavının 11.39. Sorusu: Platform Profesyoneli. Dış veriler bir kümeye (veri kompozisyon sistemindeki bir nesneye) nasıl aktarılır?

  1. Veri kompozisyon işlemcisi aracılığıyla yerleşik dil aracılığıyla
  2. Yerleşik dili düzen oluşturucu aracılığıyla kullanma
  3. Veri kompozisyon sisteminin çıktı işlemcisi aracılığıyla yerleşik dil aracılığıyla

Doğru cevap, işlemci yoluyla verilen ilk cevaptır.

Bazen belirli bir düzen sonucunu elde etmek için erişim kontrol sistemindeki veri setleri arasında bağlantılar oluşturmak gerekir. Buna ne zaman ihtiyaç duyulur ve nasıl yapılır, yazımızda bundan bahsetmeye çalışacağız.

1C'de uygulanan veri düzeni şeması üç tür veri kaynağını destekler (Şekil 1)

Veri kaynakları

Geliştiriciler tarafından en belirgin ve sık kullanılan veri kaynağı Sorgu'dur.

1C'nin 8. sürümünde uygulanan sorgu tasarımcısı çok kullanışlıdır ve çoğu durumda birkaç tabloyu birbirine bağlayabilir ve gerekli gruplamaları ve seçimleri doğrudan içinde yapabilirsiniz.

Karmaşık durumlarda, bazı kodların yürütülmesinin kullanılması gerektiğinde veya daha uygun olduğunda (örneğin, üçüncü taraf bir dosyadan veri yüklemek) veya bir sorgu kullanmak mümkün olmadığında, "Nesne" veri kaynağı devreye girer. kurtarma. Modülde çalıştırılan rastgele kodun, çıkışta erişim kontrol sisteminin erişebileceği belirli bir yapıya sahip olması gerekir.

Üçüncü veri kaynağı ise “Birlik”tir. Aslında bu kaynak da iletişim türlerinden biri olarak değerlendirilebilir. Eşleştirmeden, ancak belirli alanların çakışmasını birleştirir (birkaç tabloyu tek bir tabloya indirir). Yani, birleştirilen iki tablonun sırasıyla 3 ve 4 satırı varsa, ortaya çıkan veri kaynağının 7 satırı olacaktır.

Sorunun formülasyonu

Test alanı olarak normal uygulama modunda çalışan UPP tabanı sürüm 1.3.92.3'ü seçeceğiz.

Bize şu görev verildi: yalnızca erişim kontrol sistemini kullanarak, karşı taraf tarafından gönderilen dosyadan alınan fiyatlar ile birlikte, belgeden satın alınan öğelerin bir tablosunu görüntüleyecek bir rapor oluşturmak.

O halde şunları yapmalıyız:

  1. Makbuz belgesinin tablo kısmını alın;
  2. Dosyayı “Nesne” veri kaynağına yükleyin;
  3. Bu iki kaynağı belirli bir parametreye göre bağlayın (bizim durumumuzda bu kod olacaktır);
  4. Ortaya çıkan tabloyu görüntüleyin.

Yürütme Süreci

Listelenen tüm adımları gözden geçirelim:

  • Makbuz belgesinin tablo kısmı için bir sorgu oluşturuyoruz (Şekil 2)

İncir. 2

  • Bir veri seti nesnesi oluşturun (Şekil 3);

Şek. 3

Burada dikkat edilmesi gereken “Veriyi içeren nesnenin adı”dır; rapor modülünün kodunda belirtmemiz gereken isim budur.

  • Rapor modülüne gidiyoruz ve orada “Sonuç Oluştururken” prosedürünü oluşturuyoruz (Şekil 4);


Şekil 4

Harici bir dosyadan veri alma prosedürünü açıklamayacağız, "Veri Kümesi 2" için veri alabilmemiz için kodun düzende bulunması gereken kısmına dikkat edeceğiz (Şekil 5).

Şekil 5

Önemli! Bağlama sırasında prosedür kodunda bir “Nesne” oluştururken StandardProcessing parametresinin değeri False olmalıdır.

“Veri Kümesi Bağlantıları” sekmesine gidin.

Bağlantı setleri

Diyagramın ilgili sekmesine gidin (Şekil 6).

Bazı istisnalar dışında sorgu tasarımcısındaki tablo bölümüne çok benzeyen bir tablo bölümü görüyoruz. İletişim kaynağı seti ve iletişim hedefi seti için “Tümü” onay kutusu işaretlenemez ancak birkaç ek sütun eklenmiştir.

Veri kümesi ilişkilerinde yalnızca sorgu oluşturucunun sol dış birleşimine benzer bir ilişki kurabilirsiniz.

Bağlantı oluşturmadan önce sütunların amacına karar verelim:

  1. Bağlantı kaynağı, mevcut tüm değerlerin alınacağı ilk veri kümesidir;
  2. İletişim alıcısı – durumumuza karşılık gelen değerlerin seçileceği bir veri kümesi;
  3. Kaynak ifadesi – karşılaştırmanın yapılacağı ilk veri kümesinin alanı veya ifadesi;
  4. Hedef ifadesi, bağımlı kümenin bir alanı veya ifadesidir;
  5. Parametre – bu alanda parametre adını belirtirseniz, alıcı seti ile iletişim yalnızca parametrede belirtilen değere göre gerçekleştirilecektir;
  6. Parametre listesi – bir değer listesinin parametre olarak kullanılma olasılığını belirler;
  7. Bağlantı koşulu – kaynak alanlarını kullanarak burada bir ifade belirterek, yerine getirilmesi bağlantı kurmak için bir sinyal görevi görecek bir koşul oluşturabilirsiniz;
  8. Başlangıç ​​değeri – bağlantının başlangıç ​​değerini gösterir;
  9. Zorunlu İlişki - Kaynakta (YANLIŞ olarak ayarlı) veya hedefte (DOĞRU olarak ayarlı) kullanılan alanların etkinleştirilip etkinleştirilmediğini belirler ve buna göre düzeni düzene ekler.

Böylece:

  • İletişimin kaynağı talebimiz sonucunda;
  • Nesne bir alıcı görevi görecek;
  • Kaynak ifadesi “NomenclatureCode” olacaktır;
  • Alıcı ifadesi “Adlandırma”;
  • İletişim zorunlu olacaktır (Şekil 7).

Bağlantı koşulu olarak herhangi bir terminolojinin adını, çoğaltılma türünü veya başka bir şeyi belirtmiş olsaydık, görevimiz için daha doğru bir örnek elde edebilirdik. Eylemlerimizin sonucu Şekil 8'de görülebilir.

Şekil 8

Fiyatlandırma dosyasında raporun alt iki satırında eşleşme bulunamadı.

Veri düzeni şeması (1C SKD)- oluşturmak için uygun kurucu yazılım ürünleri 1C: Üretim otomasyonunun geliştirilmesine ve izlenmesine katkıda bulunan, minimum sürede mümkün olduğunca esnek ve güzel hale getirilmesine olanak tanıyan kurumsal karmaşık raporlar. Veri Kompozisyon Şemasının (1C SKD) ek bir avantajı, kontrollü bir rapor formunun otomatik olarak oluşturulması ve daha da geliştirilmesidir. bu yönde, rapor geliştirme yöntemini seçerken önemli bir faktördür. Ancak Veri Bileşim Şemasının (1C SKD) yapısının karmaşıklığı ve çok sayıda ayar nedeniyle, genellikle raporun "çıktı formu tasarımcısı" aracılığıyla geliştirilmesinden daha uzun süre geliştirilmesine yol açar. Bu nedenle, bir 1C programcısının, rapor oluşturmaya yönelik geliştirme süresini daha da hızlandırmak için Veri Bileşim Şemasının (1C DCS) tüm inceliklerini anlaması gerekir.

Veri Bileşim Şemasının (1C SKD) ilk üç sekmesine bakalım - veri seti, veri seti bağlantıları ve hesaplanan alanlar.

1C SKD'de veri seti

Veri seti üç nesne (bir sorgu, bir nesne ve bir birleşim) oluşturma yeteneğini içerir; hadi bunların her birine daha yakından bakalım:

Bu, Sorgu Oluşturucu düğmesi kullanılarak oluşturulan normal bir sorgudur. Otomatik Doldurma bayrağı ayarlandıysa, seçilen tüm ayrıntılar otomatik olarak veri kümesinin alanlarına düşecektir. Üç sekmenin bulunduğu Veri Bileşimi sekmesindeki istekteki alanların doldurulmasını da özelleştirmek mümkündür:

Tablolar, burada raporun oluşturulmasına katılacak tablolar seçilir, genellikle varsayılan veriler seçilir, çünkü Tablolar ve Alanlar sekmesinde ihtiyacımız olan belgeleri, dizinleri, kayıtları zaten seçtik...

Alanlar, burada rapora dahil edilmesi gereken nesneleri seçiyoruz, çocuk bayrağı nesne için erişilebilir alt öğelerin olup olmayacağını gösterir, dize, sayısal ve benzeri veriler için ayarlamanın mümkün olmayacağı mantıklıdır işareti True'ya getirin.

Koşullar, burada erişim kontrol sistemindeki koşullar altında kullanılabilecek nesneleri seçiyoruz.

İşin bir kısmı veri kompozisyon şemasında, bir kısmı ise programlı olarak yapılıyor; basit bir örneğe bakalım:

Öncelikle belgenin veri düzeni için bir düzen diyagramı oluşturacağız ve buna SKD adını vereceğiz (örneğin: 1C SKD), içinde bir veri kümesi nesnesi oluşturacağız, ardından alanları dolduracağız, örneğin bir belgemiz var ayrıntıları içeren malların tablo şeklinde bir kısmı ile - isimlendirme, miktar ve fiyat.

Üç alan ekleyelim ve her sütunu ayrıntıların adıyla dolduralım, kalan sütunlar otomatik olarak doldurulacaktır:

Belge formu üzerinde bir buton oluşturalım ve kontrollü formlarda işleyiş mekanizmasını anlatalım:

&İstemcide

Prosedür Yazdırma()

Raporumuz = PrintOnServer(); //sunucudaki fonksiyonu çağırıyoruz

Raporumuz.Show(); //oluşturulan raporu görüntüle

Prosedürü Sonlandır

&Sunucuda

İşlev PrintOnServer()

DocumentObject = FormAttributeValue(“Nesne”);

//Ürünler tablo kısmını, SKD'nin kendisinde verileri içeren nesnenin adını belirttiğimiz gibi ProductsSKD adlı bir yapıya yerleştiririz.

DataSet = yeni Yapı;

DataSet.Insert(“ÜrünlerSKD”, DocumentObject.Products);

//düzenimizi alıyoruz ve tüm rapor çıktısı ayarlarının düzenimizden alınmasını sağlayacak şekilde varsayılan ayarları belirliyoruz

OurLayout = DocumentObject.GetLayout(“SKD”);

Ayarlar = OurLayout.DefaultSettings;

//ayarlarımızla bir veri düzeni düzeni oluşturun

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Ayarlar);

//veri setimizle veri kompozisyonu gerçekleştirin

DataCompositionProcessor = yeniDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//biz oluştururuz elektronik tablo belgesi ve raporumuzu içinde görüntüleyin

ReportDocument = Yeni TabularDocument;

OutputProcessor = Yeni OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Belge Raporunu İade Et;

Son Fonksiyon

İsterseniz başka herhangi bir düzenin alanlarını alabilir ve bunları bu raporda görüntüleyebilirsiniz; örneğin, bir ödeme emri oluşturmak için standart bir düzenimiz var ve başlık bu düzende çok iyi oluşturulmuş, o halde, bunu yapmamak için gereksiz işler, önce düzeni alacağız, başlığı görüntüleyeceğiz, ardından erişim kontrol sistemi hakkındaki raporumuzu oluşturup göstereceğiz.

HAKKINDA birleşme

İçine sorgularımızı ve nesnelerimizi yerleştirebiliyoruz ama bağlantıdan farklı olarak sadece tabloları birbirine ekliyor, yani iki özdeş tabloyu bağlarsak bir tane elde ederiz, birleştirildiğinde iki katına çıkar, bakalım basit bir örnekle:

Tablolarımız var:

İletişim kurulduğunda şunları alacağız:

Ve birleştirildiğinde:

Şimdi veri kümelerindeki sütunları doldurmaya bakalım (diğer sekmelerle ilgili oldukları için bazılarını atlayacağız; bunlara gelecek makalelerde geri döneceğiz):

- alan, özelliğin genel adını belirtin;

­­- yol, erişim kontrol sisteminde kendisiyle iletişim kuracağımız ayrıntıların adını belirtin, örneğin Hesaplanan alanlar;

- başlık, raporda görüntülenecek özelliğin adını belirtin;

- alan sınırlaması, bu gereksinimin kullanılabilirliğini belirtin;

- ayrıntıların kısıtlanması, alt öğelerin kullanılabilirliğini belirtiyoruz, ayrıntıların kullanılabilirliği belirtilirse alanın kendisinin de kullanılabilir olması önemlidir, belki bu mekanizma gelecek sürümlerde değiştirilecektir;

- alan temsilinin hesaplandığı ifade, ayrıntıların çıktısını biraz değiştirmemiz gerektiğinde, örneğin addan sonra ihtiyacımız olduğunda kullanmak uygundur. isimlendirme görüntülendi stoklamak, bulunduğu yere gidin ve ardından aşağıdakileri doldurun: Öğe + “depoda” + Depo. Ayrıntılara erişimin sütunda belirtilen ad aracılığıyla gerçekleştirildiğini tekrar ediyorum yol;

- ifade sıralaması, önceki noktaya benzer şekilde koşulun manuel olarak ayarlanabildiği rapor sıralamasını ayarlamak için uygun bir mekanizma, ancak uygulamanın gösterdiği gibi, bu mekanizma genellikle istediğimiz gibi çalışmıyor ve standart sıralamayı kullanmanızı tavsiye ederim;

- değer türü, özelliğin değer türünü belirtir; aşağıdaki alanı kullanıyorsanız bunun doldurulması gerekir;

- mevcut değerler, yalnızca dolu olduğunda çalışır değer türü, doldurma formunu açın ve sütunda Anlam türüne göre değiştirilmesi gereken öğeyi belirtiriz, önceden tanımlanmış nesneler veya sayısal olabilir, örneğin ayrıntıların basit değerleri vardır, sunum Boolean tipine bir örnek olarak neyi değiştirmemiz gerektiğini belirtiyoruz:

- dekorstandart ayar Yönetilen formlardaki ayarlara benzer alan formatı, belirli ayrıntıların çıktısını daha doğru ve güzel bir şekilde özelleştirmenize olanak tanır.

1C SKD'deki veri seti bağlantıları

Sadece buraya kurulu sol yönden katılım, benzer bir prensipte bağlantılar isteklerde, içinde iletişim kaynağı bağlantı için ana tabloyu belirtin alıcı ek olarak. İÇİNDE ifade kaynağı Ve ifade alıcısıİletişimin hangi yöntemle gerçekleşeceğini ayrıntılarıyla belirtiyoruz. Sekmeye baktığımızda kalan sütunlara daha detaylı bakacağız. Seçenekler. Parametrelerle ek bağlantı yoksa istekte bağlantı yapılması tavsiye edilir, bu raporu hızlandıracaktır.

41
Geçenlerde belirsiz sayıda sütun içeren bir rapor hazırladım. Kodu kurcalamak istemedim, bu yüzden bunu erişim kontrol sisteminde yapmaya karar verdim. Bunda bir sorun yoktu, sonucu isteğe bağlı bir düzene (kendi başlığınız +...) genişletmek gerekiyordu. 27
CDS öğrencileri birinci veya ikinci günde bununla karşılaşsalar da SSS bölümünde olması gerekir. Varsayılan ayarları kullanarak bir düzen üzerinde programlı olarak rapor çıktısı almanın basit bir örneği. //Diyagramı şuradan al: 18
Erişim kontrol sistemi üzerinde raporlar oluştururken, varsayılan olarak tüm gruplamalar genişletilir, ancak bazen, oluşturulduktan hemen sonra daraltılmış gruplamalara sahip bir raporun gösterilmesi gerekebilir! Rapor modülündeki bu kod daraltmanıza olanak tanır... 9
Rapor geliştirirken gerekli olan, sınırlı haklara sahip bir kullanıcı için raporun tamamen haklar kontrol edilmeden oluşturulmasıdır! Özellikle RLS yapılandırılmışsa Bunu yapmanın birkaç yolu vardır: 1. Yükleyin...