Veritabanına harici bir rapor ekleme. Veritabanına harici rapor ekleme 8.3 eğitiminde harici rapor nasıl oluşturulur

1C isminin aslında “bir saniye” ifadesi anlamına geldiğini söylüyorlar, yani. programlar hızlı bir şekilde, “bir saniyede” rapor üretmelidir. Raporların hızı çok önemlidir, ancak raporların doğru bilgileri sağlaması daha da önemlidir - bunu, Trade Management 10.3 yapılandırmasını temel alan 1C 8.3'te basit bir rapor oluşturma örneğini kullanarak anlayacağız. Doğru raporlar oluşturmak için, 1C'yi yapılandırabilmek ve 1C'nin iç dilinde ve sorgu dilinde biraz programlayabilmek arzu edilir (hatta şiddetle tavsiye edilir), ancak diğer yandan rapor oluşturmak mükemmel bir fırsattır. Bu becerilerde uzmanlaşmaya başlamak için.

Bu açıklama, 1C raporları oluşturmanın temel ilkelerini anlamak için eğiticidir

1C 8.3'te rapor nasıl oluşturulur

Bir rapor oluşturmak için 1C'yi yapılandırıcı modunda açmanız gerekir; bunu yapmak için 1C başlatma penceresinde listeden istediğiniz veritabanını seçin ve Yapılandırıcı düğmesine tıklayın:

Yapılandırıcının kendisinde Dosya menüsüne gidin ve Yeni'yi seçin:


Görüntülenen menüde Harici rapor'u seçin ve Tamam'a tıklayın:


Bundan sonra yeni bir rapor penceresi açılacaktır. Ad alanına raporun adını girin; boşluk veya özel karakterler içermemelidir:


Düzen kullanarak rapor nasıl yapılır

Bu yöntem en çok 1C'de programlama becerileri gerektirir, ancak burada veri alma ve işleme mekanizmalarını analiz etmeyeceğiz, raporu başlatma ve rapor formunu ekranda görüntüleme mekanizmasını anlamak için basit bir rapor yapacağız:

Rapor penceresinde (rapor oluştururken açılır), alt listede imleci Düzenler öğesinin üzerine getirin ve sağ tıkladığınızda beliren menüde Ekle'yi tıklayın:


Açılan düzen tasarımcısında düzenin adını belirtebilirsiniz, düzen türü olarak Elektronik Tablo Belgesi seçilmeli ve ardından tasarımcıdaki Son düğmesine tıklanmalıdır:


Bu, bir Excel sayfasına benzeyen bir düzen penceresi açacaktır:


Bu düzende, programın şablon olarak kullanacağı alanlar - satır veya sütun grupları oluşturmanız, veritabanından alınan verileri bunlara eklemeniz ve bu şablonları ekranda görüntülemeniz, böylece bu parçalardan bir rapor oluşturmanız gerekir.

Öğelerin listesini görüntüleyen bir rapor oluşturalım. Bunu yapmak için iki düzen alanı oluşturacağız: rapor başlığı ve öğe satırı.

Bir başlık alanı oluşturmak için, satırı şu şekilde seçmek üzere satır başlığına (satır numarasının belirtildiği yerde) sol tıklayın (başlığa tek bir tıklamayla satırın tamamı seçilmelidir):


Bundan sonra, ana menünün Tablo menüsüne gidin, İsimler alt menüsüne gidin ve İsim ata öğesine tıklayın:


Program sizden Alan Adını belirtmenizi isteyecektir, ad ayrıca boşluk veya özel karakterler içermemelidir, ardından Tamam'a tıklayın, şu şekilde görünmelidir:


Artık oluşturulan alana raporda görüntülenecek metni girmeniz ve biçimlendirmeniz gerekiyor. Bunu yapmak için ilk hücreye metni girin; örneğin "Öğe listesi". Hücrelerle çalışmak Excel'e benzer.

Bir hücredeki metni biçimlendirmek için hücreye sağ tıklayın ve Özellikler'e tıklayın. Sağ tarafta hücre özellikleri penceresi açılacaktır. Pencerenin içeriğini aşağı kaydırarak Yazı Tipi alanını bulun ve “...” düğmesine tıklayın:


Açılan pencerede Stil bölümünde Kalın kutucuğunu işaretleyin ve Tamam'a tıklayın:


Düzen şu şekilde görünmelidir:


Aynı şekilde, madde satırı alanını da oluşturuyoruz ancak onu kalın harflerle vurgulamıyoruz:


Satır alanında Adın bir parametre olduğunu belirtmeniz gerekir; raporun çıktısı alınırken öğenin gerçek adının burada değiştirileceğini. Bunu yapmak için, adı taşıyan hücrenin özelliklerini açın ve Doldurma alanındaki özelliklerde Seçenek değerini seçin, bu, düzen kurulumunu tamamlar:


Ana rapor penceresine dönüyoruz ve alt listede Formlar öğesine sağ tıklayıp Ekle'ye tıklıyoruz:


Açılan rapor formu tasarımcısında Bitir butonuna tıklayın, rapor formu açılacaktır, Oluştur butonuna çift tıklayın:


Sonuç olarak, ekranın sağ tarafında düğme özellikleri penceresi açılacaktır; Eylem alanında büyütece tıklayın:


Bundan sonra, rapor oluşturulmasını programlamanız gereken bir form modülü açılacaktır:


Öncelikle seçilen metni aşağıdaki program koduyla değiştirin:

//raporun bölümleriyle doldurulacak ve ekranda görüntülenecek bir elektronik tablo belgesi oluşturun
TabDocument = Yeni TabularDocument;
//sonra rapor oluşturulurken oluşturulan düzeni alıyoruz
Düzen = GetLayout("Düzen");
//şimdi rapor başlığını görüntülememiz gerekiyor, bunun için başlık alanını düzenden alıyoruz ve bir elektronik tablo belgesinde gösteriyoruz
AreaHeader = Layout.GetArea("Başlık");
TabDocument.Output(AreaHeader);
//bir sorgu kullanarak raporda görüntülenmesi gereken öğe adlarının bir seçimini alıyoruz
Talep = Yeni Talep;
İstek.Text = "
|SEÇ
| İsim
|DAN
| Dizin.Adlandırma
|";
//düzenden öğe satırı alanını alın - her öğeyi görüntülemek için ona bir döngü içinde erişeceğiz
AreaString = Layout.GetArea("Dize");
//sonuçtaki seçimdeki her adı bir döngüde işliyoruz
Select = Query.Run().Select();
Select.Next() Döngüsü sırasında
//sonraki satırı görüntülemek için, alan parametresinde bir sonraki adı belirtmeniz gerekir (düzeni oluştururken parametrenin kendisini yapılandırdık)
AreaString.Parameters.Name = Selection.Name;
//parametre dolduruldu, artık diziyi görüntüleyebilirsiniz
TabDocument.Output(AreaString);
EndCycle;
//elektronik tablo belgesi oluşturuldu, şimdi ekranda görüntülüyoruz
TabDocument.Show("Öğelerin listesi");

Metin form modülüne kopyalandığında, çift eğik çizgi “//” ile başlayan satırlar yeşil renkle vurgulanacaktır; bunlar, her kod satırının ne yaptığını açıklayan yorumlardır:


Bir rapor oluşturmak için hangi program kodu satırlarının gerekli olduğunu özetleyelim:

  1. Raporun bölümleriyle doldurulacak ve ekranda görüntülenecek bir elektronik tablo belgesi oluşturmak gerekir; bu “TabDocument = New TabularDocument;” satırı ile yapılır;
  2. Rapor düzenini almamız gerekiyor, ondan rapor yapısını parçalar (bölgeler) halinde alacağız, bu “Layout = GetLayout(“Layout”)” satırıyla yapılır.
  3. Alanların her birini görüntülemek için, onu düzenden almanız ve bir elektronik tablo belgesine çıkarmanız gerekir; bu, "Header Area = Layout.GetArea("Header")" ve "TabDocument.Output(HeaderArea)" satırlarıyla yapılır. "
  4. Yalnızca program çalıştırıldığında bilinen parametreleri doldurmanız gerekiyorsa, bu tür parametreleri doldurmanız gereken alanı görüntülemeden önce bu, "AreaString.Parameters.Name = Selection.Name" satırıyla yapılır.
  5. Ve ancak elektronik tablo belgesi raporun gerekli tüm bölümleriyle doldurulduğunda ekranda görüntülenir, bu "TabDocument.Show("Öğelerin listesi")" satırıyla yapılır.

Artık raporun çalışmasını kontrol edebilirsiniz - 1C'yi kurumsal modda açın (1C düğmesi: 1C başlatma penceresindeki Enterprise). Ana menüde dosya menüsüne gidin ve Aç'a tıklayın:


Kaydedilen rapor dosyasını bulun ve açın. Açılan formda Oluştur düğmesine tıklayın:


ve bir isimlendirme listesi alıyoruz:


Bu, 1C'de rapor oluşturmanın yalnızca bir yoludur. Sonraki makalelerde diğerlerine bakacağız.

İlgili raporlama formlarında hızlı değişiklik yapılması durumunda, harici raporların özelleştirilmesi ihtiyacı doğabilir. Sonuçta ilgili formları onaylayan devlet kurumları, ticari kuruluşların raporlama formunu hazırlamak için zamana ihtiyaç duyduğu gerçeğini her zaman dikkate almamaktadır. Yazar - S.A. Kharitonov.

1C tarafından üretilen 1C:Enterprise 8 için standart konfigürasyonlarda, düzenlenmiş raporlama formları konfigürasyonlara dahil edilir ve konfigürasyon sürümleriyle birlikte yayınlanır. Bununla birlikte, ihtiyaç ortaya çıktığında - örneğin raporlama formunun yeni bir sürümü yürürlüğe girdiğinde - 1C şirketi bu tür raporlama formlarını "1C: Enterprise 8" harici raporları (*.erf uzantılı dosyalar) biçiminde yayınlar.

Harici raporların kullanılması, yalnızca gerekli değişikliklerin yerleşik olarak yer alacağı bir yapılandırma sürümü yayınlanıncaya kadar kullanılması gereken geçici bir çözümdür. Bu nedenle, harici raporların kullanımına bazı kısıtlamalar getirilmektedir:

  • harici bir rapor yayınlanırken hangi yapılandırma sürümüyle birlikte kullanılabileceği belirtilir;
  • harici raporun önceki yapılandırma sürümlerini destekleyeceği garanti edilmez;
  • kullanıcı bir konfigürasyonla çalışırken harici bir raporun birden fazla sürümü kullanılamaz;
  • bir rapor formunun açılması, bir konfigürasyon nesnesi olarak uygulanan bir rapora kıyasla daha uzun zaman alır;
  • Rapor verilerinin elektronik biçimde yüklenmesi çok daha yavaştır vb.

Belirli bir yapılandırma sürümü için yayınlanan harici raporların bir listesi, www.users.v8.1c.ru adresindeki 1C:Enterprise 8 kullanıcı destek sitesinin yapılandırma sayfasında görülebilir (bölümde) Ücretsiz bilgi sürüm numaralarını içeren sütunda veya formda ilgilenilen numaraya tıklamanız gerekir Bilgileri güncelle(düğmeyle çağrılır Bilgileri güncelleüst takım forması ), eğer bilgi tabanında düzenlenmiş raporlama uyarı hizmeti etkinleştirilmişse.

Aynı formda harici raporun ismine tıklayarak bilgisayarınıza indirebilirsiniz.

Kural olarak raporlar RAR arşivi biçiminde dağıtılır. Harici bir raporla çalışmak için arşivin paketinin açılması gerekir.

Arşiv, harici rapor dosyasıyla birlikte raporun amacını ve ona nasıl bağlanılacağını açıklayan bir metin dosyası içerir.

Harici bir raporun, konfigürasyonda zaten mevcut olan düzenlenmiş bir raporun yerini alması amaçlanıyorsa, raporu 1C:Enterprise modunda (menü) açarak bilgi tabanına bağlanabilir. Dosya - Aç).

Açıldığında size bir soru sorulacak Bilgi tabanına harici bir düzenlenmiş raporu kaydedin? Cevaptan sonra Evet harici rapor bilgi tabanına kaydedilecek ve yeni bir rapor oluşturmak için hemen açılacaktır.

Cevap verirsen HAYIR, rapor kaydedilmeyecek ancak yeni bir rapor oluşturmak için de açılacaktır. Böyle bir raporla tüm eylemleri (oluşturma, doldurma, yazdırma) gerçekleştirmek mümkün olacaktır, ancak oluşturulan rapor bilgi tabanına kaydedilemez.

Harici rapor, düzenlenmiş yeni bir rapor türüyse, rapor bilgi tabanına otomatik olarak kaydedilemeyecektir: bu modun manuel olarak etkinleştirilmesi gerekir. Bağlantı talimatları, 1C web sitesinden alınan arşivde bulunan metin dosyasında da mevcuttur.

Harici bir rapor kullanmak için kullanıcının, bu düzenlenmiş rapor için dahili bir konfigürasyon nesnesinin değil, harici bir raporun kullanılacağını belirtmesi gerekir.

Harici bir raporu, dizine yeni bir düzenlenmiş rapor türü olarak kaydetmek için Düzenlenmiş raporlar gerekli (bkz. Şekil 1):

1) yeni rapor türünün yer alacağı dizin grubuna gidin;
2) düğmeye tıklayarak yeni bir dizin öğesi oluşturun Eklemek dizin formunun üst komut panelinde;
3) bir dizin öğesi biçiminde dizinde verilecek adı girin Düzenlenmiş raporlar ve formun rapor türleri listesinde Düzenleyici ve finansal raporlama. Ayrıca rapor türüne ilişkin bir açıklamanın doldurulması da tavsiye edilir;
4) anahtar Kullanmak dosya olarak ayarlayın ve hangi dosyanın harici rapor olarak kullanılması gerektiğini belirtin. Düğmeye bastıktan sonra TAMAM dosya açma iletişim kutusunda, bu harici raporun tam adı sözlük öğesi formunun dosya alanında belirtilecektir.

Pirinç. 1. Harici bir rapor kaydedin

Düğmeye bastıktan sonra Yaz harici rapor bilgi tabanına kaydedilir, ardından harici dosyanın tam adı metinle değiştirilir Rapor IB'ye yüklendi.

Bir düğmeye bastığınızda da aynı şey olur TAMAM, dizin öğesinin biçimi ise Düzenlenmiş raporlar kapanır.

Harici raporların kullanıldığı dizin öğeleri için, rapor adından sonra dizin listesi biçiminde (harici) satırı eklenir.

Harici rapor bilgi tabanına yüklendikten sonra harici rapor dosyasına artık gerek kalmaz ve silinebilir.

Harici bir rapor kullanan düzenlenmiş bir raporla çalışmak, raporlama verilerini elektronik biçimde açarken ve indirirken "yavaş yanıt" dışında, bir yapılandırma nesnesiyle çalışmaktan farklı değildir.

Harici bir raporun işareti olarak üst kumanda panelinin sağ tarafında kırmızı bir bilgi yazısı görüntülenir Harici rapor.

İstediğiniz zaman "dahili" konfigürasyon nesnesini kullanmaya geri dönebilirsiniz. Bunu yapmak için, gerekli düzenlenmiş rapora yönelik bir dizin öğesi biçiminde anahtarı seçmelisiniz. Kullanmak yerleştirmek bir obje ve dizin öğesini kaydedin.

Harici raporun kendisi bilgi tabanından silinmez, dolayısıyla tam tersi işlem de mümkündür. Bir raporu bilgi tabanından silmek için aşağıdakileri yapmanız gerekir:

1) dizinde Düzenlenmiş raporlar harici bir raporun bağlı olduğu düzenlenmiş bir rapor bulun - böyle bir raporda, rapor adından sonra bir satır (harici) eklenir;
2) düğmeyle düzenleme için dizin öğesini açın Geçerli öğeyi değiştir;
3) harici rapor seçim alanında düğmeye tıklayın X (Temizle). Bastıktan sonra metin Rapor IB'ye yüklendi işareti kaldırılırsa bu, raporun bilgi tabanından silineceğinin işaretidir;
4) butonuna tıklayarak dizin öğesi formunu kapatın TAMAM.

Dizin öğesi kaydedilirken rapor silinir.

Gerektiğinde bilgi tabanına yüklenen rapor diskteki bir dosyaya kaydedilebilir. Bunu yapmak için bir dizin öğesi biçiminde Düzenlenmiş raporlar metnin bulunduğu bağlantıya tıklamanız gerekiyor Harici raporu dosyaya yükle. Standart bir dosya kaydetme iletişim kutusu açılacaktır. Varsayılan olarak dosyanın adı karşılık gelen yapılandırma nesnesinin adıdır.

Bir bilgi tabanına sahip bir kullanıcı oturumunda harici bir raporun birden fazla sürümünü kullanamayacağınızı unutmamak önemlidir: örneğin, kullanıcı zaten harici bir rapor olan düzenlenmiş bir raporla çalışıyorsa ve onu harici bir rapora yüklemişse. Rehber Düzenlenmiş raporlar bu harici raporun başka bir sürümüne (örneğin otomatik tamamlama eklenmiş), raporun bu sürümünü kullanmak için oturumunu 1C:Enterprise modunda sonlandırması ve ardından hemen yeni bir oturum başlatması gerekir.

Örneğimizde rapor, ürün ve hizmetlerin çıktısını bölümlere, ürün gruplarına ve aya göre gösterir.

İşte raporun ana sayfası:

Bu sayfa, Dosya – Yeni – Harici rapor menüsündeki yapılandırıcıdan çağrılır.

Öncelikle bir veri seti (DataSet1) ekliyoruz. "Sorgu" penceresinde bunu kendiniz yazabilir, Sorgu Oluşturucu'yu kullanarak oluşturabilir veya bir dosyadan yükleyebilirsiniz. En uygun yol sorgu yapıcısını kullanmaktır. Yapıcının nasıl çalıştığını okuyun.

İhtiyacınız olan her şey otomatik olarak doldurulur, ancak bazı şeylerin ayarlanması gerekir.

Örneğin sütun başlıkları (yukarıdaki şekildeki “Miktar” onay kutusu bu alana herhangi bir başlık metni girmenizi sağlar), veri çıkış formatını ayarlayabilirsiniz (Miktar satırındaki Format bölümüne bakın). Format her türlü veriye (dizeler, tarihler, sayılar) göre düzenlenebilir.

Kaynaklar sekmesinde, kaynakların kendisini seçin ve sonuçların görünümünü onlar için yapılandırın:

Parametreler sekmesi, raporun içeriğini değiştiren her şeyi (örneğin, verilerin seçileceği dönem) içerir. İstek parametrelerine göre otomatik olarak doldurulur (ilk sayfaya bakın). Onay kutularını kullanarak bu parametrelerin görünürlüğünü ve kullanılabilirliğini ayarlayabilir, başlangıç ​​değerini vb. ayarlayabilirsiniz:

1C'de 267 video dersini ücretsiz alın:

Ve son olarak Ayarlar. Burada raporun görünümü çizilir - sütunlar, satırlar, birbirlerine göre konumları, gruplandırmalar vb. “Ayar Tasarımcısını Aç” düğmesi, satırları ve sütunları istediğiniz sırada düzenlemenize yardımcı olacaktır. “Özel Öğe Ayarları” düğmesi, parametreleri rapor başlığında görüntülemenize olanak tanır:

Period.PartsDate.NameMonth sütununa dikkat edin. Sütun başlığında ayın adı nasıl görüntülenir? İşte buradan çıkıyor.

Bu arada, birkaç döneme ait verileri bitişik rapor sütunlarında aynı anda görüntülemenize olanak tanıyan bu ayardır:

Bir diğer önemli sekme ise Seçili Alanlar'dır. Boş olması durumunda rapor oluşturulmayacaktır. Genellikle “Ayar Tasarımcısını Aç” düğmesine tıklanarak otomatik olarak doldurulur:

Aslında gereken minimumdan ihtiyacınız olan tek şey bu. Sonuç olarak şuna benzer bir rapor elde edeceğiz:

Veri kompozisyon sistemi kullanmadan 1C 8'de harici bir rapor oluşturmayı düşünelim. Harici bir rapor oluşturmak için, Muhasebe 2.0 yapılandırmasını, ilk verileri kullanacağız: “Belirtilen döneme ait cironun bağlamda görüntüleneceği muhasebe hesabı 62 hakkında bir rapor yazın Karşı taraflar Ve Karşı tarafların sözleşmeleri.

1. Bir rapor oluşturun

Öncelikle harici bir rapor dosyası oluşturalım; bunun için modda 1s 8'e gidelim Yapılandırıcı, hadi menüye gidelim Dosya -> Yeni veya simgeye tıklayın yeni belge.

Listeden öğeyi seçin Harici rapor. Harici raporu oluşturduktan sonra ona bir Ad verin (örneğin En Basit Rapor) ve diske kaydedin. Ayrıca iki ayrıntı ekleyeceğiz: Dönemin başlangıcı Ve Dönem sonu tip tarih, bir rapor oluştururken veri örneklemesi için zaman aralığını sınırlamalarına ihtiyacımız olacak.

2. Harici bir rapor düzeni oluşturun

1C 8'de bir rapor oluşturmak için bir düzene ihtiyacınız vardır; bu, gerekli tüm parametrelerin ayarlandığı, tabloların çizildiği vb. verileri görüntülemek için bir şablondur. Yeni bir düzen ekleyelim; bunu yapmak için rapor meta veri ağacındaki öğeyi seçin Düzenler ve düğmeye basın Eklemek, oluştururken düzenin türünü seçin elektronik tablo belgesi.

Düzenimiz 4 alana sahip olacak:

  • Başlık - bu alanda raporun adını, oluşturulduğu dönemi ve tablo başlığını görüntüleyeceğiz;
  • Karşı taraf verileri - bu alanda karşı tarafa ilişkin verileri bir tabloda görüntüleyeceğiz;
  • DataCounterparty Sözleşmesi - bu alanda karşı taraf sözleşmesine ilişkin verileri bir tabloda görüntüleyeceğiz;
  • Altbilgi - bu alanda Gelir ve Gider alanları için raporun tamamına ait toplam değerleri görüntüleyeceğiz.

Yerleşim alanları oluşturmaya başlayalım. Paftada bir alan oluşturmak için gerekli sayıda satırı seçin ve tıklayın. Menü Tablosu -> İsimler -> İsim ata(Veya Ctrl + Üst Karakter + N). Bölgeye Bir kep Raporun adını yazalım: Ciro 62 sayım, aracı kullanarak çizim yapın Kenarlıklar rapor başlığını seçin ve ayrıca parametreleri ayarlayın Dönemin başlangıcı Ve Dönem sonu. Parametreleri kullanarak raporda gerekli verileri görüntüleyebilirsiniz; bunu geliştirmenin bir sonraki aşamasında, yani rapor kodunu yazarken ele alacağız. Düzende bir parametre oluşturmak için istediğiniz hücreyi seçin, parametrenin adını içine yazın (boşluksuz), üzerine sağ tıklayın, açılan menüdeki öğeyi seçin Özellikler. Sekmedeki hücre özelliklerinde Düzen dolguyu seç Parametre.

Bundan sonra hücredeki parametre adı köşeli parantezlerin içine alınacaktır("<>“). Sonuç olarak bölge Bir kepşöyle görünmeli:

Bölgede Veri Karşı Tarafı aracı kullanarak karşı tarafın adının yanı sıra hesap 62'nin gelir ve giderlerini görüntülemek için parametreler oluşturacağız Kenarlıklar Alanı masa sırası şeklinde tasarlayalım.

Bölgede Veri Karşı Taraf Sözleşmesi Sözleşme adının görüntülenmesinin yanı sıra hesap 62'nin gelir ve giderlerinin görüntülenmesi için parametreler oluşturalım, Kenarlıklar aracını kullanarak alanı bir tablo satırı olarak tasarlayacağız. Parametrenin önüne küçük bir girinti yapalım Karşı Taraf Anlaşması(bu, hücreleri bölerek ve birleştirerek yapılabilir. Hücreye sağ tıklayın -> Birleştirmek veya Hücreyi böl), raporun sözleşme satırının hiyerarşide karşı taraf satırından daha aşağıda olduğunu görebilmesi için bu gereklidir.

Bölgede Bodrum Gelir ve gider toplamları için parametreler oluşturalım.

Sonuç olarak şöyle bir düzen elde etmeliyiz:

3. Bir rapor formu oluşturun

Verileri görüntülemek için oluşum periyodunu ve düğmesini ayarlayın Biçim Raporumuz bir form gerektirecektir. Form oluşturmak için öğeyi harici rapor meta veri ağacında bulun Formlar ve düğmeye basın Eklemek. Form tasarımcısının ilk sayfasında herhangi bir değişiklik yapmanıza gerek yoktur, sadece butona tıklamanız yeterlidir. Daha öte.

Tasarımcının bir sonraki sayfasında mevcut her iki ayrıntıyı da seçin ( Dönemin başlangıcı, Dönem sonu) forma yerleştirmek için.

Sonuç olarak şu formu elde edeceğiz:

Ama biz bu haliyle yetinmedik, biraz değişiklik yapalım:

  • Düğmeyi sürükleyelim Biçim raporun alt panelinden üstüne doğru (bu kullanıcı için daha uygun olacaktır);
  • Şekli dikey ve yatay olarak uzatın;
  • Alanları düzenleyelim Dönemin başlangıcı Ve Dönem sonu yatay olarak;
  • Forma Elektronik Tablo Belge Alanı kontrol elemanı ekleyelim (raporumuz onun içinde görüntülenecektir), ona bir isim verelim SekmeDoc;
  • Bir dönem seçim düğmesi oluşturalım (tıklandığında, istenen dönemin uygun bir şekilde seçildiği bir iletişim kutusu görünecektir). Henüz program kodunu yazmayacağız, bu yüzden düğmeyi nokta alanlarının yanına yerleştireceğiz.

Sonuç olarak formumuz şöyle görünecek:

4. Programlama

Rapor formunu oluşturduktan sonra programlamaya başlayalım. Öncelikle dönem seçimi iletişim kutusunu görüntülemek için bir prosedür oluşturalım (bunun için önceki aşamada zaten bir düğme oluşturmuştuk). Düğmeye sağ tıklayın ve menü öğesini seçin Özellikler, düğme özelliklerinde sekmeye gidin Olaylar, burada büyüteç simgesi olan düğmeyi kullanarak bir prosedür oluşturacağız Düğme1Basın form modülünde.

Formun alt kısmındaki sekmeleri kullanarak form ile modülü arasında geçiş yapabilirsiniz.

Dönem seçim formunu çağırmak için standart prosedürü kullanacağız Muhasebe 2.0 ortak bir modülden İletişim Kutularıyla Çalışmak - HandlerPeriodSettingPress, rapor ayrıntılarını ona parametre olarak aktarmanız gerekir Dönemin başlangıcı Ve Dönem sonu.

Prosedür Button1Press(Öğe) Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); ile çalışma; Prosedürün Sonu

Şimdi raporumuzu oluşturacak ve görüntüleyecek kodu yazmaya geçelim. Form modülünün zaten bir prosedürü var DüğmeOluşturBasın düğmeye basıldığında yürütülecek olan Biçim, kodumuzu buraya yazacağız. Gerekli değişkenleri başlatarak başlayalım. Öncelikle şunun için bir değişken oluşturalım: elektronik tablo belge alanları içine veri çıkışı yapacağımız için bu gerekli değil, sadece ona yapılan çağrıların kaydı kısalacak, bu da program kodunun okunması daha anlaşılır olacağı anlamına geliyor.

TabDoc = FormElements.TabDoc;

Fonksiyonu kullanarak harici raporun düzenini alalım GetLayout(<ИмяМакета>) , düzenin adını parametre olarak ileteceğiz ve eğer böyle bir düzen varsa fonksiyon onu bulacaktır.

Düzen = GetLayout("Düzen");

Düzen alındıktan sonra her alanı için değişkenler oluşturalım, bunun için yerleşim yöntemini kullanalım GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Başlık"); AreaDataAccount = Layout.GetArea( "Yüklenici Verileri"); AreaDataContract = Layout.GetArea("DataContract"); AreaFooter = Layout.GetArea("Altbilgi");

Elektronik tablo belgesinin alanını temizleyelim. Bu, her yeni rapor oluşturulduğunda eski verilerin silinmesi için gereklidir.

TabDoc.Clear();

Artık değişkenlerin başlatılması tamamlandığına göre yerleşim alanlarını tek tek doldurup görüntülemeye geçelim. Başlıkla başlayalım. Hatırlarsanız bu alanda iki parametre oluşturmuştuk. Dönemin başlangıcı Ve Dönem sonu, rapor oluşturma döneminin değerlerini oraya aktaracağız, bunun için özelliği kullanacağız Seçenekler yerleşim alanları.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Bölgeyle ilgili başka işlem yok Bir kepÜreticiye gerek yoktur, bu nedenle alanını bir e-tablo belgesinde görüntüleyeceğiz.

TabDoc.Output(AreaHead);

Daha sonra veritabanına hesap cirosunu alacağımız bir sorgu yazacağız. 62 muhasebe defterinden Kendini destekleyen. İsteğimizin yer alacağı bir değişken tanımlayalım.

İstek = yeni İstek;

İstek metnini yazmaya başlamadan önce gerekli parametreleri kendisine aktaralım. Fatura talebi yazdığımız için 62 muhasebe, sonra öncelikle bunun için bir parametre oluşturacağız

request.SetParameter("Account62", Charts of Accounts. Self-supporting. Find By Code("62" ));

Ayrıca rapor oluşturma süresinin de talebe geçirilmesi gerekmektedir. Unutmayın, üretim dönemine özel rapor detaylarımız var ve bunları parametre olarak aktarıyoruz.

request.SetParameter("Dönem Başlangıcı", Dönem Başlangıcı); request.SetParameter("Dönem Sonu", Dönem Sonu);

Sorgu metnini yazmaya başlayalım, bunu sorgu tasarımcısını kullanarak yapacağız. Pek çok derste hem manuel olarak hem de bir kurucu kullanarak sorgu yazabilmeniz gerektiğini yazıyorlar, ancak pratikte durum böyle değil. Bir 1C programcısının sürekli karşılaştığı görevlerde öncelik, hızlı ve verimli bir şekilde kod yazmaktır ve veritabanına manuel olarak bir sorgu yazarken bunu başarmak neredeyse imkansızdır; tüm sorgu yapılarını doğru bir şekilde yeniden oluşturmak için çok değerli zaman harcayacaksınız. ve yazarken yaptığınız yazım hatalarını bulma vb. Bu nedenle, sorguları manuel olarak yazmaya çalışarak zaman kaybetmeyin, sorgu oluşturucuyu kullanın. Zamandan tasarruf etmenizi sağlayacak ve karmaşık sorguları fazla çaba harcamadan yazmanıza olanak tanıyacaktır. İstek metnini yazmaya başlamak için kod olarak yazalım:

request.Text = "" ;

Bundan sonra imleci tırnakların arasına yerleştirin, sağ tıklayın ve seçin Oluşturucu rica etmek. Sorgu tasarımcısı penceresi açılacaktır.

Şimdi ihtiyacımız olan 1C 8 veritabanı tablosunu seçmemiz gerekiyor.Sanal bir tabloya ihtiyacımız var Devrimler muhasebe kaydı Kendini destekleyen. Bunu tasarımcı penceresinin sol tarafında bulalım

Bölgeye taşıyalım Tablolar ve parametreleri doldurmaya başlayalım. Tüm sanal sorgu tabloları için, gerekli verileri ana tablodan seçmenize olanak tanıyan özel bir parametre kümesi vardır (bizim durumumuzda, Muhasebe Kaydı ana tablosu). Kendini destekleyen). Sanal tablo parametreleri penceresini açalım.

İsteğe geçtiğimiz döneme ait parametreleri dolduralım. İstek metninde parametre kullanmak için adından önce sembolü yazmalısınız. ve işareti(&)

Muhasebe hesabının koşulunu doldurmaya devam ediyor. muhasebe. Bunu yapmak için sanal tablonun parametrelerindeki satırı bulun Hesap Durumu ve oraya yazacağız

HİYERARŞİDE Hesap (&Hesap62)

Koşul yapıcıyı üç noktalı butona tıklayarak da kullanabilirsiniz.

Sanal masaya daha fazla koşul koymanıza gerek yok, o yüzden butona tıklayalım TAMAM sanal tablo parametreleri penceresinde. Daha sonra tablodan ihtiyacımız olan alanları seçmemiz gerekiyor. Kendi kendini destekleyen. Ciro(yani: Karşı Taraf, Karşı Taraf Sözleşmesi, Gelir ve Gider). Seçtiğimiz tabloda yer alan alanların listesini görüntülemek için adının yanındaki “+” sembolüne tıklayın. Bundan sonra, gerekli alanları sorgu tasarımcısının en sağındaki alana sürükleyin: Alanlar. Hesap planını açarsak hesap için şunu görürüz 62 analitik Karşı taraf için bu Subconto1'dir ve tarafından Karşı Taraf Sözleşmesi - Subconto2.

Bu nedenle sanal tablonun alanlarından seçiyoruz Alt bağlam1 Ve Alt bağlam2. Gelir ve giderlere miktar bazında ihtiyacımız olduğundan alanları da seçiyoruz TutarCiroDt Ve TutarCiroKt

Seçtiğimiz alanların takma adlarını dolduralım; bunun için sekmeye gidin Birlikler/Takma Adlar ve gerekli alan adlarını ayarlayın.

Raporumuzda veriler hiyerarşik olarak görüntüleneceği için (Karşı Taraf birinci seviyede ve tüm sözleşmeleri ikinci seviyededir), hiyerarşideki verilerin görüntülenmesini Toplamlar kullanarak yapılandıracağız. Tasarımcıdaki sekmeye gidelim Sonuçlar. Alanları sırayla gruplandırmaya sürükleyin Karşı taraf Ve Karşı Taraf Anlaşması ve finalde Gelen Ve Tüketim.

Bu, sorgu yapıcısındaki çalışmayı tamamlar, düğmeye tıklayın TAMAM ve isteğimizin metninin program kodunda göründüğünü görüyoruz.

Query.Text = "SEÇ | Kendi kendini destekleyenTurnover.Subconto1 AS Karşı Taraf, | Self-supportingTurnover.Subconto2 AS Karşı Taraf Sözleşmesi, | Kendinden Destekli Ciro.AmountTurnoverDt AS Fişi, | Kendini Destekleyen Ciro. Tutar Ciro Kt AS Gider|DAN | Muhasebe Kaydı, Öz Muhasebe, Cirolar (&Dönem Başı, &Dönem Sonu, HİYERARŞİDEKİ Hesap (&Hesap 62),) Kendi Kendine Muhasebe Ciro Olarak|SONUÇLAR | AMOUNT(Gelir), | AMOUNT(Gider) |PO | Karşı taraf, | Karşı Taraf Anlaşması";

İsteği yazmayı bitirdikten sonra alanları doldurmaya başlayalım Veri Karşı Tarafı, VeriSözleşmesiKarşı Taraf Ve Bodrum. Tüm bu alanları, isteği gerçekleştirirken alınan verilerle dolduracağız. Sorgumuz gruplamalar içerdiğinden( Karşı taraf Ve Karşı Taraf Anlaşması) buradan verileri aşağıdaki gibi seçin:

SelectionCounterpart = request.Execute().Select(BypassQueryResult.ByGrouping);

Bu şekilde tüm karşı tarafların toplamlarını içeren kayıtları alacağız.

Örnek verileri bir döngü kullanarak geçmeden önce, raporun genel sonuçlarını hesaplamak için amaçlanan değişkenleri başlatırız:

ToplamGelen = 0; ToplamTüketim = 0;

Rapor verilerinin bir hiyerarşiyle (ve "+" boyunca dönüşlerle) görüntülenmesi için, elektronik tablo belgesinin satırlarının otomatik gruplandırılmasının başlangıcını ayarlayalım:

TabDoc.StartAutoGroupingRows();

Tüm hazırlıklar tamamlandı, şimdi sorgu sonuçlarını taramaya başlayalım. Geçişi bir döngü kullanarak gerçekleştireceğiz Hoşçakal

Account.Next() Cycle EndCycle seçilirken;

Döngünün başında parametreleri sıfırlayın Gelen Ve Tüketim bölge Veri Karşı Tarafı. Bu ne için? Karşı tarafın olduğu bir durumu hayal edelim. Vasya Amca, gelir 10, gider 5 ve bir sonraki karşı taraf için Petya Amca bu durumda parametreleri sıfırlamazsak herhangi bir gelir veya gider olmaz Gelen Ve Tüketim, ardından karşı tarafa göre sıraya girin Petya Amca 5 gelir, 10 gider olacak.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Daha sonra alanı dolduruyoruz. Veri Karşı Tarafıörnek eleman verileri

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Verileri doldurduktan sonra alanı görüntüleyebilirsiniz. elektronik tablo belgesi, Satırların otomatik gruplandırılmasını kullandığımız için, gruplandırmada satırın düzeyini belirtmemiz gerekir (raporumuz iki düzeye sahip olacaktır; karşı taraflar için ilki sözleşmeler için).

TabDoc.Output(AreaDataAccount,1);

Şimdi bu karşı taraf için sözleşmelerine göre bir seçim yapacağız.

SelectionCounterparty Anlaşması = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Geçişi bir döngü kullanarak gerçekleştireceğiz Hoşçakal.

SelectionCounterparty Contract.Next() Loop EndCycle iken;

Karşı taraf anlaşmaları döngüsünde parametreleri sıfırlayalım Gelen Ve Tüketim, alanı doldurun Veri Sözleşmesiörnekten alın ve bunu ikinci kayıt düzeyindeki bir elektronik tablo belgesinde görüntüleyin.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement) alanını doldurun; TabDoc.Output(AreaDataContract,2);

Ayrıca bu döngüde gelir ve giderin toplam değerlerini hesaplamak için mevcut değerleri değişkenlere ekleyeceğiz.

Toplam Makbuz = Toplam Makbuz + Seçim Karşı Taraf Sözleşmesi. Makbuz; ToplamGider = ToplamGider + ÖrnekKarşı Taraf Sözleşmesi.Gider;

Bu, bölgedeki verilerin çıktısını sonuçlandırıyor Veri Karşı Tarafı, VeriSözleşmesiKarşı Taraf tamamlandıktan sonra geriye kalan tek şey elektronik tablo belgesinin satırlarının otomatik gruplandırılmasını tamamlamaktır.

TabDoc.FinishAutoGroupingRows();

Verilerin alana çıkışından sorumlu tam döngüler Veri Karşı Tarafı Ve VeriSözleşmesiKarşı Taraf Bunun gibi:

TabDoc.StartAutoGroupingRows(); SelectionAccount.Next() Döngüsü AreaDataAccount.Parameters.Receipt = 0 iken; AreaDataAccount.Parameters.Expense = 0; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Anlaşması = SelectionCounterparty.Select(BypassQueryResult.ByGroups); SelectionCounterparty Convention.Next() Döngüsü AreaDataAgreement.Parameters.Receipt = 0 iken; AreaDataContract.Parameters.Expense = 0; PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement) alanını doldurun; TabDoc.Output(AreaDataContract,2); Toplam Makbuz = Toplam Makbuz + Seçim Karşı Taraf Sözleşmesi. Makbuz; ToplamGider = ToplamGider + ÖrnekKarşı Taraf Sözleşmesi.Gider; EndCycle; EndCycle; TabDoc.FinishAutoGroupingRows();

Bölgedeki son verileri göstermeye devam ediyor Bodrum ve alanın kendisinin çıktısını alın elektronik tablo belgesi.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = ToplamTüketim; TabDoc.Output(AreaFooter);

Bu, erişim kontrol sistemi kullanmadan 1C 8 için harici bir rapor yazma işlemini tamamlar. Artık 1C:Enterprise 8 modunda oluşturulabilir ve dizine eklenebilir Harici İşleme Makalede ele alınan rapor dosyasını adresinden indirebilirsiniz.

Yönetilen bir uygulama için harici yazdırılabilir dosya oluşturmaya ilişkin videoyu izleyin:

1C 8.3 raporları, 1C veritabanı tablolarından kullanıcı dostu bir veri sunumu oluşturmak için tasarlanmış özel bir meta veri nesnesidir.

Hadi çözelim raporların nasıl ayarlanacağı, ne için gerekli oldukları, harici raporların yerleşik raporlardan ne kadar farklı olduğu ve raporların işlemeden ne kadar farklı olduğu.

Bir rapor oluşturmak veya özelleştirmek için yerleşik ve . Ne derse desin, hemen hemen her raporun oluşturulmasının temeli, verileri alan ilk sorgudur. Bu verileri işliyoruz ve kullanıcı dostu bir biçimde gösteriyoruz.

Raporlar herhangi bir bilgi sistemindeki ana şeydir, bu nedenle 1C raporların geliştirilmesine çok dikkat etti ve bunları oluşturmak için çok sayıda tasarımcı ve mekanizma oluşturdu.

Rapor oluşturmanın temel yöntemlerine bakalım

Bir düzen kullanarak 1C'de rapor nasıl yapılır

Bir düzen kullanarak oluşturmak en rutin yoldur. Ancak çoğu zaman çaresizlikten buna başvuruyorlar çünkü... Bu yöntemde geliştirici her eylemi tamamen koda yazar, bu da her şeyi yapabileceğimiz anlamına gelir. Diğer mekanizmalar bununla övünemez.

Ancak bu durumda, tüm öğelerin, menülerin ve diğer "yayların" manuel olarak girilmesi gerekecektir ki bu da çok emek yoğundur.

1C'de 267 video dersini ücretsiz alın:

Çıktı formu tasarımcısını kullanarak rapor oluşturma

Çıktı formu tasarımcısı, rapor geliştirmeyi kolaylaştıran, platforma yerleşik bir mekanizmadır. Tasarımcı yalnızca normal formlar için kullanılabilir.

Tasarımcıya gelecekteki rapor için istek ve gerekli tüm parametreler verilir ve tasarımcı da buna karşılık modüller ve rapor formları oluşturur. Mekanizma yerleşik dil 1C 8.2'nin bir nesnesine dayanmaktadır - Rapor Oluşturucu.

Genel Raporu kullanarak rapor oluşturma

Evrensel rapor harika bir işlevselliğe ve kullanıcının aşina olduğu kullanışlı bir ayarlar arayüzüne sahiptir:

Veri Kompozisyon Sistemine Dayalı Raporlar

Bu, 1C'nin kendisi tarafından önerilen, 1C'de rapor oluşturmanın en ilerici yöntemidir. 1C platformunda 8.1 sürümünde göründü.

SKD, bir veri kompozisyon şeması oluşturmak için çok esnek ve işlevsel bir kurucuya sahip olduğundan, herhangi bir programlama satırı olmadan basit raporlar oluşturmanıza olanak tanır:

Tüm yeni konfigürasyonlarda, tüm raporlar bir veri kompozisyon sistemi kullanılarak yazılmaktadır.

Harici raporlar ile yerleşik raporlar arasındaki fark nedir?

Belgelerde yazıldığı gibi - hiçbir şey. Raporların geliştirme aşamasında hata ayıklaması amacıyla harici raporlama mekanizması oluşturuldu.

Çözüm geliştirirken tek fark, yerleşik rapordan farklı olarak harici bir rapora “ismiyle” erişememenizdir.

Bir raporun işlemekten farkı nedir?

Aslında pratikte hiçbir şey yok. Temel fark, nesneyi kullanma amacıdır: bilgileri görüntülemek için raporlara ihtiyaç vardır ve bilgileri değiştirmek için raporlara ihtiyaç vardır.

Özelliklerdeki ana farklar: Raporlarda Temel Veri Bileşimi Şemasını (DCS) belirtebilir ve rapor parametrelerini kaydetmeye yönelik ayarları belirleyebilirsiniz.