Bir elektronik tablo belgesinin etkileşimli yetenekleri. Yönetilen formlar: birleştirilmiş hücrelerle düzenleri okumak (özellikle Excel'den) Verileri bir elektronik tablo belgesine çıkarmak 1C 8.3

Bir elektronik tablo belgesi, satırlar ve sütunlar halinde düzenlenmiş hücrelerden oluşan birincil belgeler ve raporlar oluşturmak için kullanılır. Her satır ve sütunun kendine özgü bir numarası vardır. Bu durumda “Tablo - Adlar” bölümü kullanılarak istenilen alan seçilerek tek tek hücrelere, aralıklara ve grafik nesnelerine bir ad atanabilir. Daha sonra giriş alanına adı girin ve “Ata”ya tıklayın.

Bir ismi silmek için listeden seçin ve “Sil” butonuna tıklayın. Kullanıcının isim vermediği alanlara program tarafından otomatik olarak isim verilecektir. Bu adlar Özellikler paletinde görülebilir. Tablo düzenleyici, yeni bir belge oluşturmak, önceki raporların sonuçlarını görüntülemek ve tablo biçimindeki belgeleri düzenlemek için kullanılabilir.

1C'de elektronik tablo belgesi nasıl oluşturulur

Yeni bir belge oluşturmak için “Dosya” - “Yeni” bölümüne tıklayın, ardından “Tablo belgesi” satırını seçin ve “Tamam” butonu ile onaylayın. Önceden oluşturulmuş bir belgeyi açmanız gerekiyorsa, "Dosya" - "Aç" bölümünde listeden gerekli belgenin dosya adını seçin. Bu durumda “Dosya türü” alanına tıklayarak açılacak belgenin herhangi bir formatını seçebilirsiniz.

Tablo oluştururken bir hücre seçin ve verileri (metin, formül, sayısal veriler) girin. Hücrelerin boyutunu değiştirmeniz gerekiyorsa, Menüde “Biçim - Satır - Yüksekliği otomatik sığdır - Sütun - Genişliği otomatik sığdır” seçeneğini seçin. Bunu yapmak için fareyi satır veya sütun başlığının kenarlığı üzerine getirin, sol fare düğmesini basılı tutun ve boyutu değiştirmek için sürükleyin. 1C'de elektronik tablo belgesinin satır yüksekliği ve sütun genişliği değişecektir. Otomatik seçim komutu başlık kenarına çift tıklanarak açılır.


Veritabanınızdaki tüm adımları güvenle tekrarlayabilir veya 1C: Hazır çözümler - 1C lisanslı programın bulut sürümünde kolayca bir elektronik tablo belgesi oluşturabilirsiniz. Hizmeti 1C Online'da 14 gün boyunca ücretsiz olarak test edin.

1C'de satır yüksekliği ve sütun genişliği nasıl değiştirilir?

Bir elektronik tablo belgesinin satırlarını ve sütunlarını manuel veya otomatik olarak yeniden boyutlandırabilirsiniz.

1C programında bir elektronik tablo belgesinin satır yüksekliği değişecek manuel olarak, fareyi satır başlığının alt kenarının üzerine getirirseniz ve fare imleci çatallı dikey oka dönüşene kadar beklerseniz. Bundan sonra başlığın kenarlıklarını hareket ettirerek ihtiyacımız olan satır yüksekliğini ayarlıyoruz.

Fare işaretçisini başlığın sağ kenarına yerleştirip fare imlecinin çatallı yatay oka dönüşmesini bekleyerek sütun genişliğini değiştirebilirsiniz. Gerekli genişliği ayarlamak için başlık kenarlığını fareyle hareket ettirin.

Gerekli minimum sütun genişliği, başlık sınırına iki tıklamayla ayarlanabilir. Editör, metnin tamamının sığacağı genişliği bağımsız olarak ayarlayacaktır.

Manuel olarak değiştirmenin başka bir yolu var. “Ctrl” tuşuna basın ve fareyi istediğiniz hücre sınırının üzerine getirin. İmlecin şekli değiştikten sonra istediğiniz boyutu ayarlayın.

1C'de bir elektronik tablo belgesinin sütun genişliği değişecektir otomatik olarak, gerekli sütunu seçip “Tablo” - “Hücreler” - “Sütun Genişliği” bölümünü seçerseniz. Açılan pencerede genişliği belirtin ve “Tamam”a tıklayın.

Yeni bir elektronik tablo belgesi oluştururken tüm sütunların genişliği varsayılan olarak ayarlanır. Ama aynı zamanda değiştirilebilir. Bunu yapmak için "Tablo" da "Hücre" - "Sütun Genişliği" seçeneğini seçin. Açılan pencerede sütun boyutunu ayarlayın ve “Tamam”a tıklayın. “Otomatik” seçeneğini seçerseniz boyut belgenin tamamına ayarlanır.

“Otomatik satır yüksekliği” onay kutusunu işaretlerseniz satır yüksekliği otomatik olarak değişecektir. Onay kutusu işaretlenmemişse “Satır Yüksekliği” alanında sabit bir çizgi boyutu ayarlanır.

Farklı satırlara farklı sütun genişlikleri ayarlamak için belgenin bir veya daha fazla satırını seçmeniz gerekir.

Fareyi sütun ayırıcının üzerine getirin ve sol fare düğmesine basın. Düğmeyi bırakmadan sütunu istediğiniz yöne (örneğin sola) çekin ve düğmeyi bırakın. Görünen pencerede “Tamam”a tıklayın.

Ayrıca metnin, arka planın ve çerçevelerin rengini de kontrol edebilirsiniz.


Kural olarak, basılı bir form oluşturmak için bir şablon olan düzen temelinde bir elektronik tablo belgesi oluşturulur. Düzenin kendisi resimler, diyagramlar ve pivot tabloları içerebilir. Örnek, bir sarf malzemesi faturasının yazdırılmasına ilişkin düzeni göstermektedir:


Bazı hücreler yalnızca metin içerir, diğerleri ise program modülünde “Elektronik Tablo Belgesi” nesnelerinin “Parametreler” aracılığıyla belirtilmesi gereken parametrelerin adlarını içerir.

Bir elektronik tablo belgesindeki satırları gruplandırma

Bir elektronik tablo belgesinde, raporlardaki verileri kategorilere ayırmak için satırları ve sütunları gruplandırabilirsiniz. Sağda veya solda yer alabilecek yatay gruplamalar, üstte veya altta yer alan dikey gruplamalar mevcuttur.

Gruplandırma düzeylerini de görüntüleyebilirsiniz. Başlıktaki sayılara tıkladığınızda tüm gruplar aynı anda genişletilir. Gruplandırma uygulanırken seviye girintisi otomatik olarak oluşturulur:


1C elektronik tablo belgesinin kodunun çözülmesi

Ayrıntılı veya ek bir rapor almak için şifre çözme mekanizmasını kullanacağız. Bunu yapmak için belgedeki bir satıra veya hücreye tıklayın.

Bir belgenin şifresini çözerken iki eylem vardır:

  • Standart - bir belgeye veya dizin öğesine tıklayın, ardından sistem bu nesneyi görüntülemek için açacaktır.
  • Standart dışı - ayrıntılı bir rapor elde etmek için bir algoritma belirleyeceğiz. Bunu yapmak için, ek seçim koşullarını ("yalnızca bu karşı taraf için satışları göster") kullanarak mevcut olanı yeniden biçimlendirmeniz gerekir. Veya,

Şifre çözmeyi kullanırken tamamen yeni bir rapor alabilirsiniz (örneğin, "bu karşı tarafın satış hacmine katkıda bulunan faturaları göster").

Belirli bir uygulama çözümünde yer alan raporlar otomatik olarak çağrıldığından bu durum kullanıcının işini zorlaştırır. İşi kolaylaştırmak için bir şifre çözme mekanizmasına ihtiyaç vardır.

1C'de bir elektronik tablo belgesi nasıl kaydedilir

Elektronik tablo belgesini gelecekte kullanabilmek için (açmak, görüntülemek, yazdırmak) kaydetmeniz gerekir. “Dosya” bölümünü seçin ve “Kaydet”e tıklayın. Bundan sonra ekranda dizini ve dosya adını belirttiğimiz bir pencere açılacaktır. Belgeyi yeniden adlandırmanız veya farklı bir biçimde kaydetmeniz gerekiyorsa “Dosya” ve “Farklı Kaydet” bölümünü seçin.

Kural olarak, belge 1C:Enterprise sistemi tarafından kullanılan formatta (*.mxl) kaydedilir. Ancak elektronik tablo belgesi, ODF elektronik tablo formatı (*.ods), Word belgesi (*.docx), HTML belgesi (*.htm) veya UNICODE metin dosyası (*.txt) dahil olmak üzere diğer veri depolama formatlarına aktarılabilir. txt). Ek olarak, bir elektronik tablo belgesini 1C'de excel veya pdf olarak kaydetmek mümkündür.

1C'de bir elektronik tablo belgesini yazdırma

Belgeyi yazdırmadan önce görüntülemek için “Dosya - Önizleme” bölümünü seçin. Önizlemeden çıkmak için “Kapat” düğmesini tıklayın.

Sayfa ayarlarında, bir elektronik tablo belgesini 1C'de yazdırmak için parametreleri (ölçek, boyut, kenarlıklar vb.) ayarlayacağız. Tablo düzenleyicide satır ve sütunların yerleştirilmesine ilişkin parametreleri ayarlayın. “Sayfa Konumu” sayfalandırmayı, satırları ve sütunları tekrarlamayı vb. zorlar.

“Dosya” - “Yazdır” bölümüne tıklayarak belgeyi yazıcıya çıkaracağız. Sayfada, yazdırma parametrelerini ayarlamanız gereken - bir yazıcı, sayfa aralığı ve kopya sayısı seçin - ve "Tamam" ı tıklatmanız gereken ayarların bulunduğu bir pencere görünecektir.

Sormak istediğiniz bir şey var mı? Yorumlarda onlara sorun, biz de
Bunların cevabını mutlaka vereceğiz.

Para ve malların muhasebeleştirilmesi için iş dünyasında çeşitli tablolar yaygın olarak kullanılmaktadır. Hemen hemen her belge bir tablodur.

Bir tablo depodan sevk edilecek malları listeler. Başka bir tablo bu mallar için ödeme yükümlülüklerini göstermektedir.

Bu nedenle 1C'de tablolarla çalışmak önemli bir yer tutuyor.

1C'deki tablolara "tablo parçaları" da denir. Dizinler, belgeler ve diğerleri bunlara sahiptir.

Sorgu yürütüldüğünde iki farklı şekilde erişilebilen bir tablo döndürür.

İlk - daha hızlı - seçim, ondan satır elde etmek yalnızca sırayla mümkündür. İkincisi, sorgu sonucunu bir değerler tablosuna yüklemek ve ardından ona rastgele erişim sağlamaktır.

//Seçenek 1 – sorgu sonuçlarına sıralı erişim

//tabloyu al
Select = Query.Run().Select();
// sorgu sonucunun tüm satırlarını sırayla inceliyoruz
Select.Next() Döngüsü sırasında
Rapor(Seçim.Ad);
EndCycle;

//Seçenek 2 – değerler tablosuna yükleme
İstek = Yeni İstek("Dizin.Nomenclature'dan Ad SEÇİN");
//tabloyu al
Tablo = Query.Run().Unload().
//ayrıca tüm satırları yineleyebiliriz
Tablo Döngüsünden Her Satır için
Rapor(Dize.Ad);
EndCycle;
//veya dizelere isteğe bağlı olarak erişim
Satır = Table.Find("Kürek", "Ad");

Önemli bir özellik, sorgu sonucundan elde edilen tabloda tüm sütunların kesin olarak yazılmasıdır. Bu, İsimlendirme dizininden Ad alanını talep ettiğinizde, izin verilen uzunluğu N karakterden fazla olmayan Dize türünde bir sütun alacağınız anlamına gelir.

Formdaki tablo (kalın istemci)

Kullanıcı tablo forma yerleştirildiğinde onunla çalışır.

Formlarla çalışmanın temel ilkelerini derste ve derste tartıştık.

O halde tabloyu formun üzerine yerleştirelim. Bunu yapmak için tabloyu Kontrol panelinden sürükleyebilirsiniz. Benzer şekilde menüden Form/Ekle Denetimi'ni seçebilirsiniz.

Veriler konfigürasyonda saklanabilir - daha sonra, formunu düzenlediğiniz konfigürasyon nesnesinin mevcut (önceden eklenmiş) tablo bölümünü seçmeniz gerekir.

Veri özelliğinde "..." düğmesini tıklayın. Tablosal parçaların listesini görmek için Nesne dalını genişletmeniz gerekir.

Tablo bölümünü seçtiğinizde, 1C'nin kendisi formdaki tabloya sütunlar ekleyecektir. Kullanıcı tarafından böyle bir tabloya girilen satırlar, referans kitabı/belgeyle birlikte otomatik olarak kaydedilecektir.

Aynı Veri özelliğinde isteğe bağlı bir ad girebilir ve Değer Tablosu türünü seçebilirsiniz.

Bu, keyfi bir değer tablosunun seçildiği anlamına gelir. Otomatik olarak sütun eklemez veya otomatik olarak kaydedilmez, ancak onunla istediğinizi yapabilirsiniz.

Tabloya sağ tıklayarak sütun ekleyebilirsiniz. Bir sütunun özelliklerinde, adını (1C kodunda referans için), formdaki sütun başlığını, tablo bölümünün niteliğiyle bağlantısını (ikincisi - rastgele bir tablo seçilmemişse, ancak bir sütun) belirtebilirsiniz. tablo kısmı).

Formdaki tablo özelliklerinde kullanıcının satır ekleyip silemeyeceğini belirtebilirsiniz. Daha gelişmiş bir form Salt Görüntüle onay kutusudur. Bu özellikler, bilgileri görüntülemeye yönelik, ancak düzenlemeye yönelik olmayan tabloları düzenlemek için kullanıma uygundur.

Tabloyu yönetmek için formda bir komut paneli görüntülemeniz gerekir. Form/Ekle Kontrol/Komut Çubuğu menü öğesini seçin.

Paneldeki düğmelerin otomatik olarak görünmesi için komut çubuğu özelliklerinde Otomatik Doldur onay kutusunu seçin.

Formdaki tablo (ince/yönetilen istemci)

Yönetilen formda bu eylemler biraz farklı görünür. Forma tablolu bir bölüm yerleştirmeniz gerekiyorsa Nesne dalını genişletin ve tablolu bölümlerden birini sola sürükleyin. Bu kadar!

Bir değerler tablosu yerleştirmeniz gerekiyorsa, yeni bir form özelliği ekleyin ve özelliklerinde türü - değerler tablosunu belirtin.

Sütun eklemek için bu form özelliğinde sağ tıklama menüsünü kullanın ve Özellik sütunu ekle'yi seçin.

Daha sonra tabloyu sola da sürükleyin.

Bir tablonun komut çubuğuna sahip olabilmesi için tablo özelliklerinde Kullanım – Komut çubuğu konumu bölümündeki değerleri seçin.

Excel'e tablo yükleme

Formda bulunan herhangi bir 1C tablosu yazdırılabilir veya Excel'e yüklenebilir.

Bunu yapmak için tablodaki boş bir alana sağ tıklayın ve Liste'yi seçin.

Yönetilen (ince) bir istemcide, Tüm eylemler/Görüntüleme listesi menü öğesi kullanılarak benzer eylemler gerçekleştirilebilir.

1C sisteminde programlamaya ilişkin çoğu eğitim materyali, bir nesneye dayalı basılı formların oluşumunu açıklar "Tablolu belge" tamamlanmış formun ekranda görüntülenmesiyle sınırlıdır. Kullanıcılar için çok daha önemli olan belgenin yazdırıldığında nasıl görüneceğidir. Burada iyi tasarlanmış bir düzenin yanı sıra yazdırma parametreleri de rol oynuyor.

Yazdırma ayarları iletişim kutularında bulunan hemen hemen tüm parametreler (yazıcı ayarları, sayfa özellikleri), bir elektronik tablo belgesi oluşturulurken doğrudan belirtilebilir.

Bir elektronik tablo belgesinin yazdırma ayarlarıyla ilgili özelliklerine ve yöntemlerine bakalım (verilen örneklerde “TabDoc”, “Elektronik Tablo Belgesi” türünde bir nesnedir).

Mülk "YazıcıAdı" Yazdırma için varsayılanın dışında bir yazıcı belirtmenize olanak sağlar. Ad, sistemde yapılandırılan yazıcı adıyla eşleşmelidir:

TabDoc. YazıcıAdı = "HP LaserJet 3050 Serisi PCL 6";

Toplu belge yazdırırken harmanlama seçeneğini ayarlayarak zamandan tasarruf edebilirsiniz:

TabDoc. AyrıştırmaByCopies = doğru;

Kopya sayısı şu şekilde belirtilebilir:

TabDoc. Örnek Sayısı= 5 ;

Elbette alanları ayarlayabilirsiniz:

TabDoc. AlanSol = 20; //Sol kenar boşluğu 20 mm, diğer kenar boşlukları 10 mm'dir (varsayılan)

Birkaç sayfa özelliği daha:

TabDoc. Oryantasyon Sayfası= Oryantasyon Sayfası. Manzara;
TabDoc. ÖrneklerOnPage= 2 ; //sayfada 2 sayfa olacak
TabDoc. Otomatik ölçeklendirme = doğru; //“sayfa genişliği” ölçek ayarlarına benzer

Gerekirse yüzde olarak belirli bir ölçeklendirme değeri belirtebilirsiniz (özellik "Baskı Ölçeği").

Mülk "Sayfa boyutu" standart sayfa formatlarını ayarlamanıza olanak tanır - “ bir 3”, “A4”, “Bir 5” (seçeneklerin tam listesi 1C yardımında mevcuttur).

TabDoc. Sayfa Boyutu = "A3"; // A harfi İngilizce olmalı

Standart olmayan bir kağıt boyutu (Özel) için sayfa yüksekliğini ve genişliğini (mm olarak) belirtebilirsiniz:

TabDoc. SayfaBoyutu = "Özel" ; //standart dışı boyut
TabDoc. Sayfa Yüksekliği = 350;
TabDoc. Sayfa Genişliği = 350;

Ayrıca bir elektronik tablo belgesinde üstbilgi ve altbilgilerin çıktısını ve içeriklerini denetleyebilirsiniz. Bu özellikler kullanılarak yapılır "Sayfa başlığı" Ve "Altbilgi".Örneğin:

TabDoc. Sayfa başlığı. Çıktı = doğru; //başlık yazdırılacak
TabDoc. BaşlıkBoyutuÜst= 7 ; //alt bilgi boyutu 7 mm (varsayılan 10 mm)
TabDoc. Sayfa başlığı. Dikey pozisyon= Dikey pozisyon. Tepe ;
TabDoc. Sayfa başlığı. Ana sayfa= 2 ; //altbilgi ikinci sayfadan itibaren görüntülenir
Yazı TipiAltbilgi=Yeni Yazı Tipi("Kurye Yeni", 8,Doğru);
TabDoc. Sayfa başlığı. Yazı tipi = Yazı TipiAltbilgisi; //eğik yazı tipi
TabDoc. Sayfa başlığı. TextInCenter = "Sayfa başlığı";
TabDoc. Sayfa başlığı. MetinSağ = "Sayfa[&SayfaNumber] / [&PagesTotal]"; //sayfalandırma
TabDoc. Sayfa başlığı. TextLeft = "[&Tarih]" ; //Geçerli tarih

Oluşturulan belge, yöntem kullanılarak yazdırılmak üzere gönderilir. "Tip()".İki olası arama seçeneği vardır.

1) Doğrudan yazıcıya:

TabDoc. Yazdır(.NotUse);
TabDoc. Yazdır(doğru);

2) Yazdırmadan önce bir yazdırma iletişim kutusu görüntülenecektir:

TabDoc. Yazdır ( İletişim KutusuKullanım ModuYazdır. Kullanmak );
TabDoc. Yazdır(yanlış);

Ayrıca belgenin sayfalara nasıl bölüneceğini de kontrol edebilirsiniz. Geçerli yazıcı ayarlarına göre bir belgedeki sayfa sayısını tahmin edebilirsiniz:

TabDoc. Sayfa sayısı();

Yöntemleri kullanma "Çıktıyı Kontrol Et()" Ve "KontrolAttach()" Geçerli yazıcı ayarlarında, bir elektronik tablo belgesinin mi yoksa bir dizi elektronik tablo belge alanının yükseklik ve genişlik açısından sayfaya sığıp sığmayacağını belirleyebilirsiniz.

Son üç yöntemin çalışmasının kurulu yazıcıya bağlı olduğu unutulmamalıdır. Yöntem onu ​​bulamazsa bir istisna atılır.

Yöntemler sayfa sonlarının eklenmesini zorlamanıza olanak tanır"ÇıktıDikeySayfa Ayırıcı()" Ve "ÇıktıYataySayfa Ayırıcı()".

Böylece sayfa sayfa yazdırmayı ve sayfa doldurmayı kontrol edebilirsiniz:

TabDoc Değilse. Çıkışı Kontrol Et ( OutputAreas Dizisi) Daha sonra
TabDoc. ÇıkışYataySayfa Ayırıcı();
endIf;

1C:Enterprise 8.2 platformunun önemli bir özelliği, özelliklerin ve yöntemlerin yürütme bağlamına göre katı bir şekilde ayrılmasıdır. Yukarıdaki özelliklerin tümü herhangi bir bağlamda mevcut olsa da, listelenen yöntemler ince istemcide mevcut değildir. Bunun istisnası, açık nedenlerden dolayı kullanılabilirliği istemci kısmıyla sınırlı olan "Print()" yöntemidir. Bu, sunucuda bir elektronik tablo belgesinin oluşturulması ve bunun bir istemci prosedüründe yazdırılmak üzere gönderilmesi gerektiği anlamına gelir.

Herkese iyi eğlenceler!

Analiz edeceğimiz görevin özü, "TabularDocument" nesnesini kullanarak bir elektronik tablo belgesinin birleştirilmiş hücrelerindeki verilerin nasıl okunacağıdır. Ayrıca seçilen verilerde nasıl geçiş yapılacağına da değineceğiz. Öyleyse başlayalım.

BİR TABLO BELGESİNİ OKUMAK

1C'de bir elektronik tablo belgesini okumak için, garip bir şekilde "TabularDocument" nesnesini kullanabilirsiniz. Sürüm 8.3.7'den bu yana (bellek mevcutsa), bu nesne yalnızca MXL dosyalarını değil, aynı zamanda XLS/XLSX/ODT ve diğer bazı tablo seçeneklerini de okuyabilir (ve bu arada, yazabilir).

Ancak her zaman olduğu gibi küçük bir sorun var; nesne yalnızca sunucuda yaratılıyor. Ancak 1C, bellekte akışlar oluşturarak ve programcıya nesne yapıcısında dosyanın yolu yerine bunları kullanma fırsatı vererek bu sorunu çözmeye çalıştı, ancak okunan dosyanın türünü belirtmek gerekiyor. Doğru, 1C 8.3.10.2466 ile Windows 7 pro x64 platformunda Excel'i bu şekilde okuyamadım, ancak MXL onu mükemmel bir şekilde okuyor, bu yüzden yine de Excel dosyaları için geçici bir dosya oluşturmam gerekiyor.

Yani, dosya okuma kodu:

&OnServer Prosedürü LoadFileOnServer(DD, Extension) Eğer Extension = "xml" ise BH = New DataRead(DD); Tab.Read(BH, TabularDocumentValueReadingMethod.Value, TabularDocumentFileType.MXL); Aksi takdirde DosyaAdı = GetTemporaryFileName(Uzantı); DD.Write(DosyaAdı); Tab.Read(DosyaAdı); SilDosyalar(DosyaAdı); endIf; Prosedürün Sonu &İstemcide Prosedür LoadFile(Command) Dlg = New FileSelectionDialog(FileSelectionDialogMode.Open); Long.Filter = "MXL dosyaları (*.mxl)|*.mxl|XLS dosyaları (*.xls)|*.xls|XLSX dosyaları (*.xlsx)|*.xlsx|ODS dosyaları (*. ods)|*.ods"; Duration.Show(New AlertDescription("WhenSelectingFile", ThisForm)); EndProcedure &OnClient Prosedürü WhenSelectingFile(Res, Add) Export If Res = Tanımsız Sonra Return EndIf; fl = Yeni Dosya(Res); LoadFileOnServer(New BinaryData(Res), HPreg(fl.Extension)); Prosedürün Sonu

Bir e-tablo belgesi ve "Dosya yükle" düğmesi içeren bir form oluşturalım ve MXL, XLS, XLSX ve ODS dosyalarını bir e-tablo belgesine okuyabilen bir fotoğraf formu elde edelim.

SEÇİLEN HÜCRELER

Kullanıcı tarafından seçilen hücrelerin nerede bulunduğunu bulalım. Platformun ilginç bir tuhaflığı da şu: seçilen bu hücreler yalnızca istemcide ilgili form öğesinde mevcut. Seçilen hücreleri inceleyelim ve sonucu mesaj satırına yazdıralım:

&İstemcide Prosedür RaporuSeçilmiş(Komut) Her Alan İçin FROM Elements.Tab.GetSelectedAreas() X için Döngü = Alan.Alana Göre Sol.Y İçin Sağ Döngü = Alan.Alana Göre Üst.Alt Döngü Raporu(Tab.Area(Y, X) .Metin); EndCycle; EndCycle; EndCycle; Prosedürün Sonu

Şimdi birleştirilmiş hücreler olmadan ilk satırı seçersek aşağıdaki sonucu elde ederiz:

Onlar. burada A, B ve C çıktısı var. İkinci satırı seçersek farklı bir resim elde ederiz:

Gördüğünüz gibi birleşimin varlığı, satırla birleştirdiğimiz satırdan veri almamıza hiçbir şekilde engel olmuyor. Üstelik bu satırların her ikisi de “A” değerini içerecek. Üçüncü satırı seçersek, "A A A" çıktısını alırız (nedenini zaten anladınız, değil mi?)

KOMBİNE HÜCRELER

Birleştirilmiş hücrelerle ilgili sorunu çözmek için yalnızca bir ayrıntıyı bilmeniz gerekir: her hücrenin "Sol", "Sağ", "Üst" ve "Alt" ayrıntıları vardır. Ve birleştirilmiş hücreler için eşit olmayacaklar. X ekseni boyunca basit bir birleştirme için birleştirmeyi dikkate alarak okumak oldukça basit olacaktır:

Her Alan İçin FROM Elements.Tab.GetSelectedAreas() Döngüsü X = Area.Left By Area.Right Döngüsü Y = Area.Top By Area.Bottom Loop Report(Tab.Area(Y,X).Text); X = X + Sekme.Alan(Y,X).Sağ - Sekme.Alan(Y,X).Sol; EndCycle; EndCycle; EndCycle;

Basitçe "X"e "sağ"ı ekleyip "sol"u çıkarıyoruz.

Ve “Y” eksenini (ev ödevi olarak) kendi başınıza çözmenizi öneririm.

1C sisteminde programlamaya ilişkin çoğu eğitim materyali, bir nesneye dayalı basılı formların oluşumunu açıklar "Tablolu belge" tamamlanmış formun ekranda görüntülenmesiyle sınırlıdır. Kullanıcılar için çok daha önemli olan belgenin yazdırıldığında nasıl görüneceğidir. Burada iyi tasarlanmış bir düzenin yanı sıra yazdırma parametreleri de rol oynuyor.

Yazdırma ayarları iletişim kutularında bulunan hemen hemen tüm parametreler (yazıcı ayarları, sayfa özellikleri), bir elektronik tablo belgesi oluşturulurken doğrudan belirtilebilir.

Bir elektronik tablo belgesinin yazdırma ayarlarıyla ilgili özelliklerine ve yöntemlerine bakalım (verilen örneklerde “TabDoc”, “Elektronik Tablo Belgesi” türünde bir nesnedir).

Mülk "YazıcıAdı" Yazdırma için varsayılanın dışında bir yazıcı belirtmenize olanak sağlar. Ad, sistemde yapılandırılan yazıcı adıyla eşleşmelidir:

TabDoc. YazıcıAdı = "HP LaserJet 3050 Serisi PCL 6";

Toplu belge yazdırırken harmanlama seçeneğini ayarlayarak zamandan tasarruf edebilirsiniz:

TabDoc. AyrıştırmaByCopies = doğru;

Kopya sayısı şu şekilde belirtilebilir:

TabDoc. Örnek Sayısı= 5 ;

Elbette alanları ayarlayabilirsiniz:

TabDoc. AlanSol = 20; //Sol kenar boşluğu 20 mm, diğer kenar boşlukları 10 mm'dir (varsayılan)

Birkaç sayfa özelliği daha:

TabDoc. Oryantasyon Sayfası= Oryantasyon Sayfası. Manzara;
TabDoc. ÖrneklerOnPage= 2 ; //sayfada 2 sayfa olacak
TabDoc. Otomatik ölçeklendirme = doğru; //“sayfa genişliği” ölçek ayarlarına benzer

Gerekirse yüzde olarak belirli bir ölçeklendirme değeri belirtebilirsiniz (özellik "Baskı Ölçeği").

Mülk "Sayfa boyutu" standart sayfa formatlarını ayarlamanıza olanak tanır - “ bir 3”, “A4”, “Bir 5” (seçeneklerin tam listesi 1C yardımında mevcuttur).

TabDoc. Sayfa Boyutu = "A3"; // A harfi İngilizce olmalı

Standart olmayan bir kağıt boyutu (Özel) için sayfa yüksekliğini ve genişliğini (mm olarak) belirtebilirsiniz:

TabDoc. SayfaBoyutu = "Özel" ; //standart dışı boyut
TabDoc. Sayfa Yüksekliği = 350;
TabDoc. Sayfa Genişliği = 350;

Ayrıca bir elektronik tablo belgesinde üstbilgi ve altbilgilerin çıktısını ve içeriklerini denetleyebilirsiniz. Bu özellikler kullanılarak yapılır "Sayfa başlığı" Ve "Altbilgi".Örneğin:

TabDoc. Sayfa başlığı. Çıktı = doğru; //başlık yazdırılacak
TabDoc. BaşlıkBoyutuÜst= 7 ; //alt bilgi boyutu 7 mm (varsayılan 10 mm)
TabDoc. Sayfa başlığı. Dikey pozisyon= Dikey pozisyon. Tepe ;
TabDoc. Sayfa başlığı. Ana sayfa= 2 ; //altbilgi ikinci sayfadan itibaren görüntülenir
Yazı TipiAltbilgi=Yeni Yazı Tipi("Kurye Yeni", 8,Doğru);
TabDoc. Sayfa başlığı. Yazı tipi = Yazı TipiAltbilgisi; //eğik yazı tipi
TabDoc. Sayfa başlığı. TextInCenter = "Sayfa başlığı";
TabDoc. Sayfa başlığı. MetinSağ = "Sayfa[&SayfaNumber] / [&PagesTotal]"; //sayfalandırma
TabDoc. Sayfa başlığı. TextLeft = "[&Tarih]" ; //Geçerli tarih

Oluşturulan belge, yöntem kullanılarak yazdırılmak üzere gönderilir. "Tip()".İki olası arama seçeneği vardır.

1) Doğrudan yazıcıya:

TabDoc. Yazdır(.NotUse);
TabDoc. Yazdır(doğru);

2) Yazdırmadan önce bir yazdırma iletişim kutusu görüntülenecektir:

TabDoc. Yazdır ( İletişim KutusuKullanım ModuYazdır. Kullanmak );
TabDoc. Yazdır(yanlış);

Ayrıca belgenin sayfalara nasıl bölüneceğini de kontrol edebilirsiniz. Geçerli yazıcı ayarlarına göre bir belgedeki sayfa sayısını tahmin edebilirsiniz:

TabDoc. Sayfa sayısı();

Yöntemleri kullanma "Çıktıyı Kontrol Et()" Ve "KontrolAttach()" Geçerli yazıcı ayarlarında, bir elektronik tablo belgesinin mi yoksa bir dizi elektronik tablo belge alanının yükseklik ve genişlik açısından sayfaya sığıp sığmayacağını belirleyebilirsiniz.

Son üç yöntemin çalışmasının kurulu yazıcıya bağlı olduğu unutulmamalıdır. Yöntem onu ​​bulamazsa bir istisna atılır.

Yöntemler sayfa sonlarının eklenmesini zorlamanıza olanak tanır"ÇıktıDikeySayfa Ayırıcı()" Ve "ÇıktıYataySayfa Ayırıcı()".

Böylece sayfa sayfa yazdırmayı ve sayfa doldurmayı kontrol edebilirsiniz:

TabDoc Değilse. Çıkışı Kontrol Et ( OutputAreas Dizisi) Daha sonra
TabDoc. ÇıkışYataySayfa Ayırıcı();
endIf;

1C:Enterprise 8.2 platformunun önemli bir özelliği, özelliklerin ve yöntemlerin yürütme bağlamına göre katı bir şekilde ayrılmasıdır. Yukarıdaki özelliklerin tümü herhangi bir bağlamda mevcut olsa da, listelenen yöntemler ince istemcide mevcut değildir. Bunun istisnası, açık nedenlerden dolayı kullanılabilirliği istemci kısmıyla sınırlı olan "Print()" yöntemidir. Bu, sunucuda bir elektronik tablo belgesinin oluşturulması ve bunun bir istemci prosedüründe yazdırılmak üzere gönderilmesi gerektiği anlamına gelir.