1c yerleşik olandan harici baskı formu. Veritabanına harici bir yazdırma formu ekleme

Bu yüzden! Bir yapılandırma var (örneğin, “Ticaret Yönetimi”, baskı 10.3) ve bunun için harici bir basılı form geliştirmek gerekiyor. Örneğin, "Alıcıya ödeme faturası" standart belgesini ele alalım (ancak harici basılı formlar yalnızca belgeler için değil, dizinler için de oluşturulabilir).

1C 8.3 örneği (Yönetilen formlar)

Yönetilen bir uygulama için harici bir basılı form geliştirme örneği görüntülenebilir.

Görev

“Alıcıya ödeme faturası” belgesinden alınabilecek ve kuruluşun adını, karşı tarafı ve fiyatı, tutarı ve miktarını içeren malların listesini içerecek harici bir basılı form geliştirin.

Hadi gidelim!

Yapmanız gereken ilk şey harici bir işlem dosyası oluşturmaktır. İşleme üç ana nokta içermelidir:
  1. "DocumentLink.Alıcıya Ödemeye İlişkin Fatura" türündeki "Nesne Bağlantısı" özelliği
  2. Yazdırılacak düzen
  3. Bir elektronik tablo belgesini döndüren Dışa Aktarma İşlevi "Print()"
Bu eylemler Şekil 1'de görülebilir

"Bir düzen çizmek"

Düzenimiz iki alan içerecektir:
  1. Belgenin başlığı (başlığı) (kuruluşun ve karşı tarafın adları bu alana yerleştirilecektir) ve tablo başlığı (sütunların adlarıyla birlikte)
  2. Malların bulunduğu tablo (isim, miktar ve tutarın bulunduğu sütunlar)
Şekil No. 2, harici yazdırma formunun düzenini göstermektedir. Tablo ve başlık hücrelerinin yalnızca metin değil parametreler de içerdiğini lütfen unutmayın.

İşlev "Yazdır()"

Form neredeyse hazır. Geriye kalan tek şey elektronik tablo belgesindeki alanların programlı doldurulmasını yazmaktır. Bu eylemler, işleme nesnesi modülünde, dışa aktarılabilir olması GEREKEN "Yazdır" adı verilen bir işlevde gerçekleştirilir.
Aşama No.1. Başlığa ilişkin verileri alma, başlık parametrelerini doldurma ve bunu bir elektronik tablo belgesine çıkarma TabularDocument = Yeni TabularDocument; Düzen = GetLayout("Bizim Düzenimiz");
Veri Talebi = Yeni Talep("SELECT | TEMSİL(Alıcıya Ödeme Faturası. Karşı Taraf) AS Karşı Taraf, | TEMSİL(Alıcıya Ödeme Faturası. Kuruluş) AS Kuruluş | FROM | Belge. Alıcıya Ödeme Faturası AS Fatura Alıcıya Ödeme için | NEREDE | Alıcıya Ödeme için Fatura = &Bağlantı"); Data request.SetParameter("Link", ObjectLink); Başlık = DataRequest.Execute().Select();

Cap.Next();

Alan = Layout.GetArea("Başlık");

Area.Options.Fill(Başlık);

  1. TabularDocument.Output(Area);
  2. Aşama No.2. Tablo verilerinin alınması ve ürünlerin satır satır çıktılarının alınması
  3. Data request.Text = "SELECT | _Products.LineNumber, | TEMSİL(_Products.Nomenclature) AS İsimlendirme, | _Products.Quantity, | _Products.Fiyat, | _Products.Tutar |FROM | Document.Alıcıya Ödeme Faturası.Ürünler AS _Ürünler |NEREDE | _Ürünler Bağlantı = &Bağlantı";

Getir = DataRequest.Execute().Select();

Alan = Layout.GetArea("Veri");


While Selection.Next() Döngü Area.Parameters.Fill(Selection); TabularDocument.Output(Area);

EndCycle;

Aşama No.3. Elektronik tablo belgesini döndürme ve yazdırma işlevi TabularDocument'ı döndür; Harici yazdırma formumuzu 1C'ye ekleme

"Servis - Harici yazdırma formları ve işleme - Harici yazdırma formları" menüsüne gidin

Her belgede birden fazla 1C basılı form bulunabilir. Örneğin, Mal ve hizmet satışı (yani satış) belgesi 1C basılı formlarda yazdırılır: TORG-12, Fatura, Konsinye notu, Verilen hizmet sertifikası vb.

1C basılı formun özü, değişkenlerin belirtildiği bir şablondur (bir Excel belgesi gibi). Yazdırma işlemi sırasında değişkenlerin yerine elektronik belgedeki metin kullanılır. Şablon genellikle konfigürasyonda saklanır.

Standart 1C basılı formunu değiştirmenin sorunu, genellikle standart konfigürasyonun değiştirilmesinin tavsiye edilmemesidir, aksi takdirde güncelleme daha zor olacaktır. Bu nedenle, harici 1C baskı formlarını kullanmanın çeşitli yöntemleri yeniden keşfedilmeye başlandı.

Harici bir 1C yazdırma formu, bir şekilde konfigürasyonun kendisinden ayrı olarak depolanan bir yazdırma şablonudur.

Ancak bunların hepsi teoridir. Kendi basılı formunuzu nasıl oluşturabilirsiniz? Daha da iyisi, mevcut olanda nasıl değişiklik yapılır?

1C belgesi nasıl yazdırılır

Herhangi bir 1C belgesini (yazdırılabilir) yazdırmak için, belgedeki Yazdır düğmesini tıklamanız gerekir. 1C, bu belge için listeden 1C basılı bir form seçmeyi önerecektir.

Yazdır düğmesinin solunda genellikle en son seçilen 1C yazdırma formuna hızlı erişim düğmesi bulunur.

Yazdırma sonucu şuna benzer. Bunu bir yazıcıya yazdırmak için imleci 1C yazdırma formuna yerleştirmeniz, Ctrl+P tuşlarına veya düğme panelindeki veya Dosya/Yazdır menüsündeki yazıcı düğmesine basmanız gerekir.

Yazdırma ayarları (kenar boşlukları, sayfa yönü vb.) Dosya/Sayfa Ayarları menüsünde bulunur. Doğrudan yazıcıya yazdırmak için kullanıcı ayarlarını da yapılandırabilirsiniz.

Bu yazdırılabilir belge nereden geliyor?

1C basılı formu nerede?

Yapılandırıcıya gidelim. Yapılandırma penceresinde bulun gerekli belge. Layouts şubesini genişletelim. Basıldığında 1C baskı formuna dönüşenler onlardır.

Ancak bu yeterli olmayacak - yazdırırken daha birçok seçeneği seçmemiz teklif edildi. Gerçek şu ki, birçok 1C basılı form düzeni başka bir yerde gizlidir.

1C yapılandırma penceresinin en üstüne dönelim. Genel şubesini ve ardından Genel Düzenler şubesini açalım. Düzenlerin çoğunun bulunduğu yer burasıdır. Bu özellikle devlet tarafından düzenlenen basılı formlar 1C - TORG 12, Fatura vb. için geçerlidir.

Bu arada TORG12 veya Invoice'un çeşitli düzenlerini göreceğinizi fark etmek zor değil. Neden? Açıklaması kolaydır. Kanunlar ve gereksinimler periyodik olarak değişir. Ancak aynı düzeni öylece değiştiremeyiz - ve eğer belgeyi değişiklik tarihinden önceki bir tarihten itibaren yazdırmak zorunda kalırsak. Bu nedenle birkaç düzen yapılır ve belgenin tarihine bağlı olarak doğru olanı kullanılır.

Ama hepsi bu değil! Ayrıca dış düzenler de vardır. Nerede saklanıyorlar?

1C Kurumsal moduna dönelim. Yönetici haklarına sahip olan Kullanıcı menüsünden İşlemler/Dizinler, Harici işleme dizinini seçin.

Bu dizinin Yazdırma formu formuna sahip satırları, Yazdırma formunun sahipliği tablosunda belirtilen belge için yazdırma seçeneklerini ekler (resimde bu, Mal ve hizmet satışıdır).

Bunun çalışması için, yazdırma işlemini düzenleyen Export etiketli nesne modülünde Print() prosedürü olan harici bir işlem yapmanız gerekir.
Ama biz kendimizin önüne geçiyoruz. Öncelikle 1C baskı formunun düzeninin nasıl düzenlendiğine bakalım.

Basılı formun düzeni 1C

1C baskı formunun düzeni şuna benzer.

Gördüğünüz gibi bloklara bölünmüş durumda. Bloklar yatay (isim solda) veya dikey (isim üstte) olabilir.

Düzenin kendisi olduğu gibi yazdırılmaz. Bireysel bloklar yazdırılır. Yazdırma işleme prosedüründeki programcı, blokların sırasını ve her bloğun tekrar sayısını belirler. Sonuç, basılı bir formdur.

Bir alanı atamak için birkaç satır (veya birkaç sütun) seçin ve menüden Tablo/Adlar/Ad atay seçeneğini seçin. Kaldırmak için ayrıca Adı kaldır komutu da vardır.

Alana program kodundan erişilebilmesi için ad gereklidir. Ad yalnızca satırlara veya sütunlara değil aynı zamanda birkaç hücreye de atanabilir. Bunu yapmak için hücreleri seçin ve aynı menüyü seçin.

Ancak varsayılan olarak özel hücre adları görüntülenmez. Bunları görmek için Tablo/Adlar/Adlandırılmış hücreleri görüntüle menü öğesini seçin.

Böylece bugün 1C basılı formun düzen kullanılarak oluşturulduğunu öğrendik. Düzen, akıllıca alanlar olarak adlandırılan bloklardan oluşur.

Plakaları yazdırmak için tipik (yaygın olarak kullanılan) bloklar:

  • Başlık – belgenin başlığı görüntülenir
  • Satır – tablonun bir satırı görüntülenir, bu blok, satırların yazdırılması gereken sayıda tekrarlanır
  • Altbilgi – belgenin sonu görüntülenir.

Artık şu durumla ilgilenmemiz gerekiyor

Talimatlar

1C:Enterprise programının 8. sürümünü açın. “Servis” - “Harici işleme ve yazdırma formları” menü öğesine dikkat edin. Onun yardımıyla, harici raporları, işlemleri, basılı formları ve ayrıca tablo öğelerini doldurmak için işlemleri saklayabilirsiniz. Ayrıca bağlanabilirsiniz dış biçim program yapılandırmasına müdahale etmeyi gerektirecek mevcut olanı değiştirmek yerine.

1C:Enterprise programını yapılandırıcı modunda başlatın, ardından "Dosya" - "Yeni" komutunu çalıştırarak harici işleme oluşturun. Açılan pencerede "Harici İşleme" seçeneğini seçin. Ekranda yeni bir harici işleme formu görünecektir. Ona “Harici” adını verin. Daha sonra "Nesne referansı" adı verilen yeni bir özellik ekleyin ve bunun türünü belirtin - "Belge. Bağlantı. Mal ve hizmet satışı." Farklı türdeki bir belge için yazdırılabilir bir belge oluşturmak için uygun bağlantı türünü kullanın.

Penceredeki ilgili düğmeye tıklayarak yeni bir düzen ekleyin yeni biçim. Buna "Yerleşim" adını verin, "Başlık" adında bir alan oluşturun, ona "Başlık Metni" parametresini verin. Daha sonra “Eylemler” butonuna tıklayın, “Nesne modülünü aç” komutunu seçin. Daha sonra modül metnini ekleyin, http://www.uasoft.com.ua/content/articles/315/ web sitesinde yayınlanan örneği kullanabilirsiniz.

1C:Enterprise programını başlatın, Araçlar menüsüne gidin, Harici Yazdırma Formları'nı seçin. Form listesine yeni bir giriş ekleyin. Bunu yapmak için oluşturulan işlem dosyasını seçin ve tablo bölümünde formun "Mal satışı" belgesine ait olduğunu belirtin. Yeni baskı plakasının düzgün çalışıp çalışmadığını kontrol edin. Bunu yapmak için, oluşturulan belgeyi açın, izleyin, ardından ekranın altındaki "Yazdır" düğmesine tıklayın, "Harici yazdırma formu" seçeneğini seçin.

Kaynaklar:

  • 1c'de basılı bir form nasıl değiştirilir

Nesne formları oluşturmak ve düzenlemek için 1C:Enterprise programı özel bir form düzenleyici (veya Form Tasarımcısı) sağlar. Uygulama çözümü nesnelerinin formları, programla çalışırken verileri görsel olarak temsil edecek şekilde tasarlanmıştır. Form düzenleyici, tüm form öğelerini düzenleme olanağı sağlayan birkaç sekme içerir.

İhtiyacın olacak

  • bilgisayar, 1C programı

Talimatlar

Form düzenleyiciyi kullanarak forma bir veya daha fazla “Grup – Sayfalar” öğesi ekleyebilirsiniz; bunun için “Elemanlar” sekmesinde düzenleyicinin sol üst köşesindeki yeşil artı işaretine tıklayın.
1C:Enterprise modunda, mevcut tüm grup öğelerinin her biri ayrı bir sekmede görüntülenecektir. Belirli bir grubun "Özellikler" penceresinde, "Ekran" öğesinde, çalışanın üstüne veya altına konumlandırmak için uygun komutu seçin.

Gerekli ayrıntıları öğe ağacına sürükleyerek de forma öğeler ekleyebilirsiniz. Verileri düzenlerken veya girerken form kontrollerinde gezinmeyi kolaylaştırmak için kendinize uygun sırayı ayarlayın, ağaçtaki öğeleri düzenleyin ve bunları diğer öğelere göre sıralayın ve grup öğelerinin özelliklerini ihtiyaçlarınıza uyacak şekilde ayarlayın.
Form ayrıntılarını düzenlemek - değiştirmek, yenilerini oluşturmak veya silmek için ilgili sekmedeki ayrıntılar ağacı alanındaki paneli kullanın.

Komut arayüzünü düzenlemek için uygun sekmeye gidin. Ana dalları “Gezinme Paneli” ve “Komut Paneli” olan bir komut ağacı göreceksiniz. Bazı komutlar komut arayüzü ağacına otomatik olarak eklenir, ancak ihtiyacınız olan komutları genel (genel) komutlar listesinden veya form komutları listesinden sürükleyerek bunları kendiniz de ekleyebilirsiniz.

Form komutları ilgili listede düzenlenir. Listenin komut satırındaki kalem simgesine tıklayarak çağırabileceğiniz özellikler paletini kullanarak bunları ekleyebilir, listeden kaldırabilir, her komutun özelliklerini ayarlayabilirsiniz.
Form parametrelerini düzenlemek için "Parametreler" sekmesine gidin; burada bunları ekleyebilir, silebilir ve istediğiniz özellikleri ayarlayabilirsiniz.

Konuyla ilgili video

Muhasebede bir işletmenin ekonomik faaliyetlerini görüntülemek için kullanılan hesap planı, çok düzeyli bir hiyerarşiyi destekler: hesap - alt hesaplar. Kullanıcının hesap planında yer alan verileri görüntüleyebilmesi ve düzeltebilmesi için 1C sistemi hesabın şeklini değiştirmenize olanak sağlar. Ek olarak, faturanın basılı şekli 1C'deki başka herhangi bir belgede değiştirilebilir.

İhtiyacın olacak

  • - 1C'li kişisel bilgisayar.

Talimatlar

Her hesap veya alt hesap için analitik muhasebe sağlanır. Bu nedenle, 1C'de bir hesap planı oluştururken ve ardından düzenlerken, gerekli sayıda alt hesap, yani analitik muhasebe nesneleri sağlanabilir. Üstelik hesaplarda ve alt hesaplarda ayarlamalar hem çalışan kullanıcı tarafından yapılabilir otomatik sistem muhasebe ve yazılım geliştiricisi.

Düzenli bir uygulama için harici basılı formlar (Kurumsal Muhasebe 2.0, Maaş ve İnsan Kaynakları Yönetimi 2.5, Ticaret Yönetimi 10.3 vb. yapılandırması için), yönetilen bir uygulama için harici basılı formlarla karşılaştırıldığında oldukça basit bir şekilde oluşturulur.

Neden harici yazdırma formları oluşturmalısınız?

Harici basılı formun geleneksel forma göre avantajı, bilgi tabanının yapılandırmasını değiştirmekten kaçınmanıza olanak sağlamasıdır. Bu, sonraki yapılandırma güncellemeleri sürecinin karmaşık olmayacağı anlamına gelir. Ek olarak, harici basılı formlar, harici işlemeyle birlikte, 1C konfigürasyonlarının temel sürümlerinin işlevselliğini genişletmek için hiçbir şekilde değiştirilemeyen tek seçenektir.

Ve son bir şey: harici basılı formların kopyalanması daha kolaydır çünkü bunlar bilgi tabanına hızlı bir şekilde bağlanabilen ayrı bir dosyadır.

Harici bir yazdırma formu nasıl oluşturulur?

Adım adım harici bir 1C basılı form oluşturma sürecine bakalım:

  1. Harici işleme oluşturuyoruz. Bunu yapmak için yapılandırıcıdaki menü öğesini seçin Dosya - Yeni... Ve açılan iletişim kutusunda - Harici işleme.
  2. Adıyla harici bir işleme özelliği oluşturun Nesne Referansı. Öznitelik türü, harici bir basılı formun oluşturulduğu bir dizine veya belgeye bağlantıdır. Aynı form çeşitli nesne türleri için kullanılabilir; bu durumda öznitelik veri türü Nesne Referansı kompozit olmalıdır.
  3. Nesne modülünde şu adla bir dışa aktarma işlevi oluşturuyoruz: Fok, hazır basılı bir e-tablo belgesi döndürmesi gerekir.

Çoğu zaman mevcut bir basılı formun düzenini biraz ayarlamanız ve onu harici hale getirmeniz gerekir. Örneğin, düzene kuruluşun mührünü ve yöneticinin imzasını ekleyin.

Küçük değişikliklerle standart olana dayalı harici bir yazdırma formu oluşturma

Bir belge için evrensel bir transfer belgesinin harici bir basılı formunu oluşturma örneğini kullanarak bu prosedürü ele alalım. Mal ve hizmet satışı 1C: Muhasebe. Kuruluşun mührünün varlığı nedeniyle standart basılı formdan farklı olacaktır.

  1. Sahne donanımıyla harici işleme oluşturma Nesne Referansı, veri türü - DocumentLink Mal ve Hizmet Satışı.
  2. Standart UPD basılı formun düzenini buluruz (genel düzenlerde bulunur) ve onu harici işleme penceresine kopyalarız (sürükleriz). Diğer basılı formların düzenleri belgelerde veya referans kitaplarında bulunabilir.
  3. Basılı formun kopyalanan düzeninde gerekli değişiklikleri yapıyoruz.
  4. Basılı formun oluşturulmasından sorumlu işlevi buluyoruz. Bu işlev, oluşturulan elektronik tablo belgesini döndürmelidir. İçeriğini dışa aktarma işlevine kopyalayın Fok() harici işleme nesnesi modülünde.
    Bizim durumumuzda bu işlevdir PrintUniversalTransferDocument() Dışa Aktarma belge nesne modülünden Mal ve hizmet satışı.
    Düzen değişiklikleri önemliyse (alanlar ve/veya parametreler değiştiyse), yazdırma işlevinde uygun ayarlamaların yapılması gerekir.
  5. Harici işlemeyi kaydetmeye çalışıyoruz. Ancak muhtemelen yazdırma işlevi tarafından çağrılan bazı prosedür ve işlevlerin eksik olduğunu belirten hata mesajları alacaksınız. Bu işlevler ve prosedürler kaynak belgede bulunmalı ve ayrıca harici işleme nesnesi modülüne kopyalanmalıdır. Veya orijinal işlev veya prosedür dışa aktarılıyorsa bağlantıyı ayarlayın.
  6. (isteğe bağlı). Harici bir baskı formunu test etmek için üzerine aksesuarların yerleştirileceği bir form oluşturmak uygundur. Nesne Referansı. Düğme Uygulamak bir prosedür çağırmalı Fok() nesne modülünden. Bunu yapmak için düğme tıklama olayına bir prosedür verilir:

Tünaydın.

Bugün sizlere “Maaş ve Personel Yönetimi 3.0” konfigürasyonu için harici basılı formların nasıl oluşturulacağını anlatmak istiyorum. Bildiğiniz gibi ZUP 3.0 standart alt sistemlerden oluşan bir kütüphane kullanıyor, bu da işleme yapısının tamamen farklı görünmesi anlamına geliyor. Yönetilen formlarda BSP için ilk kez basılı bir form yapmam gerektiğinde (o zamanlar UT 11'di), yaptığım ilk şey, hangi dışa aktarma prosedürleri, hangi parametrelerin olması gerektiği hakkında ayrıntılı belgeler bulmak için ITS diskine gitmekti. işlendiğini ve her şeyin nasıl çalıştığını. İşte bu beni biraz hayal kırıklığına uğrattı çünkü... prosedürlerin belge modülünde nasıl görünmesi gerektiğine dair her şey anlatılıyor ve harici basılı formda "yazdırma" prosedürünün parametreleri yeniden düzenleniyor, bu yüzden diğer kaynaklarda bilgi aramak ve alt sistemi içeriden düzeltmek zorunda kaldım .

Peki başlayalım. Sonunda elde ettiğimiz şey şablon olarak kullanılabilir.

Birinci adım- bariz. Yeni bir işlem oluşturalım. Buna isteğe göre bir ad verelim: "Örneği Yazdır".

İkinci adım. Bir düzen oluşturalım. Bir test örneğimiz olduğundan, tek bir parametre olmadan en basit düzeni oluşturacağım.

Üçüncü adım- en ilginç olanı. Nesne modülünü açın ve programlamaya başlayın. BSP'ye göre, harici bir işlemi kaydederken, bunun (işlemenin) ne yapabileceğini, hangi nesnelere eklendiğini ve ne adlandırıldığını belirtmesi gerekir. Hangi işlemleri yapabileceği sorulduğunda, bir komut listesi döndürmelidir; bu bir değerler tablosudur. Bizim durumumuzda, işlem bir basılı form çıktısı alabilir, dolayısıyla yalnızca bir komut olacaktır. Bir değerler tablosu oluşturmak için tüm harici basılı formlarda her zaman aynı olacak birkaç prosedür tanımlayacağız:

//komut tablosu yapısını hazırlayan prosedür

GetTableCommand() işlevi

// Boş bir komut tablosu ve içinde sütunlar oluştur
Komutlar = Yeni Değer Tablosu;

// Basılı formun açıklaması kullanıcı için nasıl görünecek?
Commands.Columns.Add("Görünüm", NewTypeDescription("Satır"));

// Yazdırma işleminde çağrılan komutu ayırt edebilmemiz için düzenimizin adı
Commands.Columns.Add("Tanımlayıcı", New TypeDescription("Dize"));

// Bu, işleme komutunun nasıl çağrılması gerektiğini ayarlar
// Olası seçenekler:
// - OpeningForm - bu durumda tanımlayıcı sütun, sistemin açacağı formun adını belirtmelidir
// - CallClientMethod - işleme formu modülünden istemci dışa aktarma prosedürünü çağırın
// - ServerMethod'u çağırın - işleme nesnesi modülünden bir sunucu dışa aktarma prosedürünü çağırın
Commands.Columns.Add("Kullanım", New TypeDescription("Satır"));

// Sonraki parametre, bir işlem işi başladığında ve bittiğinde bir bildirim gösterilip gösterilmeyeceğini belirtir. Formu açarken bir anlam ifade etmiyor
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// Basılı bir form için PrintMXL dizesini içermelidir
Commands.Columns.Add("Değiştirici", New TypeDescription("Satır"));

Geri Dönüş Ekibi;

Son Fonksiyon

//Komut tablosunda yeni bir satır oluşturuyoruz

Function AddCommand(CommandTable, Görünüm, Tanımlayıcı, Kullanım, ShowAlert = False, Değiştirici = "")
NewCommand = CommandTable.Add();
Yeni Takım. Görünüm = Görünüm;
Yeni Takım. Tanımlayıcı= Tanımlayıcı;
Yeni Takım. Kullanım = Kullanım;
Yeni Takım. ShowAlert=Gösteri Uyarısı;
Yeni Takım. Değiştirici= Değiştirici;
Son Fonksiyon

İşlev InformationOnExternalProcessing() Dışa Aktarma
Kayıt Parametreleri = Yeni Yapı;
ArrayDestinations = Yeni Dizi;
Atama Dizisi.Add("Document.Hiring");
Kayıt Parametreleri.Insert("Görüntüle", "PrintForm"); //belki - Nesne Doldurma, Ek Rapor, İlgili Nesneleri Oluşturma...
Kayıt Parametreleri.Insert("Hedef", Hedef Dizisi);
Kayıt Parametreleri.Insert("Ad", "Merhaba Dünya"); //harici işleme dizininde işlemin kaydedileceği ad
Kayıt Parametreleri.Insert("Sürüm", "1.0");
Kayıt Parametreleri.Insert("SafeMode", TRUE);
Kayıt Parametreleri.Insert("Bilgi", "ÖRNEK");//yazdırılabilir formun açıklaması kullanıcı için bu şekilde görünecektir
CommandTable = GetCommandTable();
AddCommand(CommandTable, "Merhaba Dünya", "Yerleşim", "CallServerMethod", True, "MXL Print");
Kayıt Parametreleri.Insert("Komutlar", CommandTable);
İadeKayıtParametreleri;
Son Fonksiyon

Aslında, her yeni harici yazdırma formu oluşturduğunuzda onu düzeltmeniz gerekecek. Kod parçasından onu "İşe Alma" belgesine bağlayacağımız açıktır, buna göre siz de kendi belgenizi yazarsınız. Basılı formumuzun adı “Merhaba Dünya” olacak, yine kendi formumuza değiştireceğiz. Burada, daha sonra düzeltmeyi unutmamak için, göze çarpacak şekilde bariz bir reklam panosunu şablona yazmak uygun olacaktır; bence "Merhaba dünya" işe yarıyor. Sürüm kendiniz içindir, istediğinizi yazın, harici işleme dizininde bir öğe şeklinde görüntülenecektir. "ÖRNEK" sözcüğü yalnızca basılı formların dizini biçiminde de görünür. Daha sonra bir komut ekliyoruz, burada düğmenin adı ikinci parametreye aktarılıyor, kullanıcının belgede "yazdır" menü öğesinde göreceği şey bu.

Bu üç prosedür seti, işlemin harici işleme dizinine eklenmesi için yeterlidir; tüm bu kafa karıştırıcı kod, hizmet kodudur ve yazdırma algoritmasıyla hiçbir ilgisi yoktur. Aslında BSP'nin yazarları bizi o kadar zor bir şekilde programlamaya zorladı ki, daha önce hemen "Yazdır" işlevini yazmaya başladıysanız, şimdi işlemeyi bir örneğe göre değil sıfırdan yazdığınızda, üzerinde zaman kaybedersiniz. hizmet. Önceden, kayıt parametreleri isteğe bağlıydı ve işleme düzeninde belirtiliyordu, şimdi her şey çok daha ciddi görünüyor. Bunu gördüğümde ilk izlenimim çok hoştu, pek çok olasılık vardı, her şey birleşmişti... ama pratikte her zaman tek bir işlemde yalnızca bir komut oluşturuyorum ve onu tek bir belgeye bağlıyorum. Onlar. aslında kayıt için iki satıra ihtiyacım var: nesne adı, düğme adı. Ve burada her şey o kadar... yani, pekala, yargılamak bana düşmez.

Dördüncü adım- daha az ilginç değil.

YAZDIRMA işlevi?

Ama hayır, artık bu bir işlev değil, bir prosedür.

Düzeni nasıl geri alabilirim?

Bunu genel yazdırma alt sistemi modülü işlevine gönderin.

Tamam

İşte bu prosedürün metni:

Prosedür Yazdırma (Nesne Dizisi, Yazdırma Formlarının Toplanması, Yazdırma Nesneleri, Çıktı Parametreleri) Dışa Aktarma
If PrintManagement.NeedPrintLayout(CollectionPrintForms, "Layout") Sonra
Yazdırma Yönetimi.Output TabularDocumentIntoCollection(CollectionofPrintForms,
"Düzen", "Düzen",
GenerateTabDocumentSample(Nesneler Dizisi, Yazdırma Nesneleri));
endIf;
Prosedürün Sonu

Şimdi açıklama için. Prosedürün ilk satırı biraz belirsiz bir durum içeriyor. Gerçek şu ki, yazdırma prosedürünü çağırdığımızda sistem bize neyi yazdırmamız gerektiğini gösteren bir değerler tablosu iletir. Temelde, ManagePrint.NeedPrintLayout(...) işlevi, "NameURG" sütununda düzenin adını içeren bir satırın bulunduğu bir satırın değer tablosundaki varlığını kontrol eder. Pratikte çoğu durumda işe yaramaz çünkü... işlemimiz yalnızca bir basılı form oluşturabilecektir. Onlar. Bu koşul atlanabilir ve performansı etkilemez.

Sonraki, Yazdırma Yönetimi Output TabularDocumentIntoCollection(...) - bu, daha sonra ekranda görüntülenebilmesi için tablo düzenini ihtiyaç duyulan yere ekleyen şeydir. Elektronik tablo belgenizi kendi pencerenizde (standart pencerede değil) göstermeniz gerekiyorsa, bu prosedürü çağırmayın, yalnızca kodunuzu buraya yazın.

Ayrıca şunu da eklemek isterim ki Yazdırma işlemi client üzerinde gerçekleştirilmektedir ve gerekirse buradan açabilirsiniz. serbest biçim Kullanıcıdan yazdırma için gerekli ek bilgileri istemek amacıyla.

Daha sonra GenerateTabDocumentSample(...), işleme modülüne yazmamız gereken ve tablo halinde bir belge döndüren bir fonksiyondur. 100 vakanın 100'ünde sunucu tabanlı olacaktır çünkü... "Object Array" parametresinde listelenen nesnelerden detayların değerini almamız gerekiyor.

Beşinci adım- bir düzen oluşturma.

Yaşasın, sonunda düzen algoritmasına, veri alımına vb. geçeceğiz.

Ancak örneğimizde sıradan davranacağız ve burada yorum bile yapmayacağım)))

Function GenerateTabDocumentSample(Nesneler Dizisi, Nesneleri Yazdırma)
tabDoc = Yeni TabularDocument;
düzen = GetLayout("Düzen");

AreaHeader = Layout.GetArea("Başlık");
tabDoc.Output(areaHeader);

TabDoc'u döndür;
Son Fonksiyon

Hepsi bu, ilginiz için teşekkürler