1c 8.2 için ek raporlar ve işleme. Veritabanına harici işlem ekleme

Oldukça sık, bir danışma sırasında zor bir sorunu çözme ihtiyacı olduğunda, müşterilerime bunu 1C programında herhangi birini kullanarak uygulamalarını öneririm. harici işleme veya dış baskı plakası... Ve sık sık bir kişinin 1C Enterprise 8'deki bu program olasılığına aşina olmadığı gerçeğiyle karşılaşıyorum. Bazen, bu tür işlemlerin konfigürasyonlarında geliştirilmesinin ve uygulanmasının imkansızlığa yol açacağına inanarak bana yemin ediyorlar. programı otomatik olarak günceller. Programı güncellemek için çok para ödemeniz gerekiyor.

Bu tür soruları netleştirmek ve harici işleme ve harici baskı formlarının ne gibi yararlı fırsatlar sağladığı hakkında konuşmak için bu makaleyi yazmaya karar verdim. Bu yazıda, işleme oluşturma sürecinin teknik yönünü ele almayacağım. Bu büyük olasılıkla başka bir yayında tartışılacaktır. Burada mekanizmanın özünü açıklamaya çalışacağım ve harici işleme ve baskı formlarının kullanıcıya fayda sağlayabileceği durumlara özel örnekler vereceğim.

Makale, ek harici takılabilir nesneler için aşağıdaki seçenekleri tartışacaktır:

  • Tablo bölümlerinin ek harici işlenmesi;
  • Ek harici baskı plakaları;
  • Ek harici raporlar;
  • Ek dış tedaviler.

Ek harici işleme, raporlar ve yazdırılabilir formlar nelerdir?




Başlamak için, genel olarak hakkında konuşmak istiyorum. bu harici işleme, raporlar ve baskı formları nelerdir... Oldukça sık, 1C ZUP veya 1C Kurumsal Muhasebe veya başka bir yapılandırma gibi tipik bir yapılandırmayla çalışırken, 1C geliştiricileri tarafından sağlanmayan bazı işlevlere ihtiyaç vardır. Örneğin, ihtiyacınız olabilir basılı form Düzenlenmemiş, ancak kuruluşun iç ihtiyaçları için kullanılan . Veya belirli bir şekilde gerekli süreç (değiştir, düzelt) veritabanında mevcuttur. Örneğin, büyük miktarda bilgi ile manuel olarak yapılması uygun olmayan, gerekli süre için belgelerdeki belirli bir özelliği değiştirmek.

Bu durumda iki seçenek vardır. Öncelikle, konfigürasyonun kendisini, programın kendisini değiştirebiliriz. Bundan sonra, tipik olmaktan çıkacak ve hakkında yazdığım oldukça basit yollarla güncellemek işe yaramayacak. Atipik bir konfigürasyonun güncellenmesi daha uzun ve daha ciddi bir süreçtir, bu nedenle, bu yaklaşımla, programı güncellemek için büyük olasılıkla aylık 1C uzmanına ödeme yapmanız gerekecektir. İkinci bir seçenek, harici bir işleme veya basılı form (rapor) geliştirmek veya geliştirmesini istemektir. Bu, esasen, Configurator'da 1C programlama dilinde de geliştirilen, ancak tipik konfigürasyonda değişiklik yapmayan harici bir modüldür. Konfigürasyonun kendisinden bağımsız olarak var olur. Bunları saklamak için özel referans kitapları kullanılır: "Servis" -> "Ek raporlar ve işleme" ana menü öğesi.

Tablo bölümlerini doldurmak için ek harici işleme

Seminer "1C ZUP 3.1'de Yaşam Hileleri"
1s ZUP 3.1'de muhasebe için 15 hayat hackinin analizi:

1C ZUP 3.1'de bordroyu kontrol etmek için KONTROL LİSTESİ
VİDEO - muhasebenin aylık kendi kendine kontrolü:

1C ZUP 3.1'de Bordro
Yeni başlayanlar için adım adım talimatlar:

Şimdi mevcut dört harici modülün her birinin bize hangi yetenekleri sağlayacağına bir göz atalım. İle başlayalım tablo bölümlerinin harici işlenmesi... Bana öyle geliyor ki, belgelerin tablo bölümlerinin bu şekilde işlenmesi, tipik yapılandırmayı düzenlemeye başvurmadan, yalnızca harici işleme yaparken programı nasıl oldukça ciddi bir şekilde değiştirebileceğinizi en iyi şekilde gösteriyor.

Daha açık hale getirmek için, kullandığım uygulamamdan belirli bir örnek vereceğim. tablo bölümlerinin harici işlenmesi... "1C Maaş ve İnsan Kaynakları Yönetimi" sürüm 2.5 yapılandırmasında bir belge var "Tatiller ve hafta sonları için ödeme"(bu belge ayrıntılı olarak yazılmıştır). Tipik haliyle, bu belge, "Tatillerde Çalışan" çalışanların tablo bölümünü otomatik olarak doldurma olanağı sağlar.

Muhasebeci, çalışma günleri programa göre hafta sonlarına düşen çalışanlar tarafından bu belgeyi doldurma olasılığını uygulamasını istedi, yani. "Hafta sonu çalışmak".

Bu dosya dizine yüklendi "Tablo bölümlerinin harici işlenmesi"("Servis" menü öğesi -> "Ek raporlar ve işleme" -> "Tablo bölümlerinin ek harici işlenmesi"). Bu dizinin bir öğesini oluştururken, yüklenen işlemin hangi belgeye ait olduğu belirtildi - "Kuruluşun tatilleri ve hafta sonları için ödeme" ve ayrıca hangi tablo bölümü - "Çalışanlar". Örneğimizde, belgenin bir tablo bölümü vardır, ancak diğer belgelerde bunlardan birkaçı olabilir, bu nedenle, işlemenin hangisine uygulanacağını özellikle belirtmek gerekir.

Bu işlemin dizine eklenmesi sonucunda "Tablo bölümlerini doldurmak için ek harici işleme""Tatiller ve hafta sonları için ödeme" belgesinde, bu işleme başlamanın mümkün olacağı açılır listeli bir "Doldur" düğmesi olacaktır. Bizim durumumuzda, açılır listede "Pazar Günlerini Doldur" düğmesi mevcuttur. Basıldığında, işlenmekte olan algoritma başlatılır. Bu örnekte, tablo bölümü, çalışma günleri hafta sonuna denk gelen çalışanlarla doldurulacaktır. Lütfen bu düğmenin daha önce mevcut olmadığını unutmayın (yukarıdaki ekran görüntüsü).

Bu mekanizma, yapılandırmanın kendisini değiştirmek zorunda kalmadan çok çeşitli sorunları çözmenize olanak tanır. Bu nedenle, istemci görevlerini uygulamak için bu fırsatı oldukça sık kullanırım.

Ek harici baskı plakaları

Seminer "1C ZUP 3.1'de Yaşam Hileleri"
1s ZUP 3.1'de muhasebe için 15 hayat hackinin analizi:

1C ZUP 3.1'de bordroyu kontrol etmek için KONTROL LİSTESİ
VİDEO - muhasebenin aylık kendi kendine kontrolü:

1C ZUP 3.1'de Bordro
Yeni başlayanlar için adım adım talimatlar:

Bu seçenek öncekine çok benzer. Neredeyse her belgenin ve hatta bazı dizin öğelerinin yazdırılabilir formları olduğunu görmüş ve biliyorsunuzdur. Kural olarak, bir katalog öğesi veya belge formunun sağ alt köşesinde bulunurlar. Bazen standart basılı formlar yeterli değildir. Örneğin, bir kuruluşun kendi iş sözleşmesi biçimi olabilir. Standart basılı form "İş sözleşmesi"nin "Çalışanlar" dizininde yer aldığını hatırlatmama izin verin.

Referans kitabının bu basılı formlarına kendinizinkini ekleyebilirsiniz. Bunun için “.epf” uzantılı harici bir yazdırılabilir dosya oluşturulur. Daha sonra bunun için bir dizin öğesi oluşturulur. "Ek harici baskı plakaları"("Servis" menü öğesi -> "Ek raporlar ve işleme") ve referans kitabının bu öğesine ".epf" uzantılı bir dosya eklenir. Ayrıca işlemenin hangi belge veya referans için eklendiğini belirtmek gerekir.

Sonuç olarak, daha önce mevcut olmayan "Çalışanlar" dizini - "İş sözleşmesi (LLC Alpha)" öğelerinin basılı formlarında başka bir form görünecektir. Görünümü ve verilerle doldurulması “.epf” dosyasındaki programcı tarafından belirlenir.

Belgeler ve referans kitaplar için gerekli yazdırılabilir formları ekleme yeteneği de çok sık talep görüyor ve bence 1C Enterprise platformundaki programların oldukça uygun bir işlevi.

Ek harici raporlar

Bu durumda geliştirebilirsiniz. dış rapor... Bu bir “.erf” dosyasıdır. Raporun görünümünü, hangi yapılandırma verilerini kullanacağını ve kullanıcıdan hangi yapılandırma verilerini isteyeceğini (örneğin, dönem, çalışan veya departman tarafından seçim) bu dosya belirler. Dosya, 1C programlama dilinde 1C konfigüratöründe oluşturulur.

Harici bir rapor, "Ek harici raporlar" referansı ("Servis" -> "Ek raporlar ve işleme" menü öğesi) kullanılarak bir konfigürasyonun parçası olarak saklanabilir. Belirli bir belge veya referans kitabı ile ilgili değillerdir, bu bilgi gerekli değildir.

Bu depolama seçeneği ile rapor aynı dizinden (çift tıklanarak) başlatılır.

"Dosya" -> "Aç" menü öğesini kullanarak da harici bir rapor başlatabilirsiniz. Bu seçenek, harici raporları program içinde değil, yalnızca bilgisayar klasörlerinde saklamanız daha uygunsa kullanılabilir.

Ek harici tedaviler

Dış tedaviler harici raporlarla hemen hemen aynı anlama sahiptir. Ancak bilgi tabanı verilerini kullanıcı dostu bir biçimde görüntülemek için kullanılan raporların aksine, işleme, bilgi tabanı verilerini değiştirmek, düzenlemek veya dönüştürmek için tasarlanmıştır. Harici işleme kullanılarak çözülebilecek görev yelpazesi oldukça geniştir.

Örneğin, bordro tablolarını boşaltmak için işleme. ZUP'ta standart işlemenin varlığına rağmen (bu konuda okuyun), bazen belirli bir banka için uygun olmayabilir ve bilgileri gerekli formatta dönüştüren ve boşaltan harici bir işlem geliştirilmiştir.

vereceğim bir örnek daha tamamen iddiasız, ancak oldukça talep edilen işleme. Yıl boyunca 1C ZUP'ta “Kişisel gelir vergisinin bütçeye aktarılması” belgesini tutmazsanız, yıl için 2 kişisel gelir vergisi oluştururken, her çalışan için “Sayılandırılan” alanı sıfır olacaktır, bu genellikle aslında yanlış. Belgenin özellikleri göz önüne alındığında, tüm yıl için "Kişisel gelir vergisinin bütçeye aktarılması" belgesine girmek oldukça sıkıcı olabilir. Ancak, oluşturulan 2-NDFL'de "Hesaplanan" alanındaki değerlere göre her çalışan için "Sayılandırılmış" alanını dolduracak olan harici işleme yapabilirsiniz. Genellikle muhasebeciler bu seçeneği gerçekten sever.

Harici işleme, depolama ve başlatma için tam olarak aynı iki seçeneğe sahiptir: ya referansı kullanın "Ek harici tedaviler"("Araçlar" menü öğesi -> "Ek raporlar ve işleme") veya "Dosya" -> "Aç" ana menü öğesi.

Hepsi bugün için!

Yeni yayınlardan ilk siz haberdar olmak için blog güncellemelerime abone olun:

Bir veri kompozisyon sistemi kullanmadan 1c 8'de harici bir rapor oluşturmayı düşünün. Harici bir rapor oluşturmak için, Muhasebe 2.0 yapılandırmasını kullanacağız, ilk veriler: “Belirtilen dönem için ciroların bağlamda görüntüleneceği 62 muhasebe hesabı hakkında bir rapor yazın. karşı taraflar ve Yüklenici anlaşmaları.

1. Bir rapor oluşturun

Öncelikle harici bir rapor dosyası oluşturacağız, bunun için modda 1c 8'e gidiyoruz yapılandırıcı, menüye git Dosya -> Yeni veya simgesine tıklayın yeni belge.

Listede, öğ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 sahne 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 için bir düzen oluşturma

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. verilerin çıktısını almak için bir şablondur. Yeni bir düzen ekleyelim, bunun için rapor meta veri ağacında öğeyi seçin Düzenler ve düğmeye basın Ekle, oluştururken mizanpaj için türü seçiyoruz E-tablo belgesi.

Düzenimiz 4 alana sahip olacak:

  • Başlık - bu alanda raporun adını, oluşturulduğu dönemi ve tablonun başlığını görüntüleyeceğiz;
  • DataContractor - bu alanda karşı taraf hakkındaki verileri tabloda göstereceğiz;
  • Yüklenici Sözleşme Verileri - bu alanda karşı taraf sözleşmesine ilişkin verileri tabloda görüntüleyeceğiz;
  • Bodrum - bu alanda Gelir ve Gider alanları için tüm raporun toplamlarını görüntüleyeceğiz.

Düzen alanlarını oluşturmaya başlayalım. Düzende bir alan oluşturmak için gerekli sayıda satırı seçin ve tuşuna basın. Tablo Menüsü -> İsimler -> İsim Ata(Veya Ctrl + Üst Karakter + N). Bölgeye Bir kep raporun adını yazın: ciro 62 hesap, hadi araçla çizelim Sınırlar parametreleri ayarlamanın yanı sıra rapor başlığı Dönemin başlangıcı ve Dönem sonu... Parametreleri kullanarak, gerekli verileri raporda görüntüleyebilirsiniz, bununla geliştirmenin bir sonraki aşamasında, yani raporun program kodunu yazarken ilgileneceğiz. Düzende bir parametre oluşturmak için istediğiniz hücreyi seçin, içine parametrenin adını yazın (boşluksuz), üzerine sağ tıklayın, açılan menüde öğeyi seçin Özellikler... Bir yer imindeki hücre özelliklerinde Düzen doldurmayı seç Parametre.

Bundan sonra, hücredeki parametre adı köşeli parantezler (”<>"). Sonuç olarak, alan Bir kepşöyle görünmeli:

Alanında Veri Yüklenicisi aracı kullanarak karşı tarafın adını ve 62 hesabın gelir ve giderlerini görüntülemek için parametreler oluşturacağız. Sınırlar Alanı tablo satırı şeklinde düzenleyelim.

Alanında Veri Yüklenicisi Sözleşmesi Sınırlar aracını kullanarak sözleşmenin adını ve ayrıca hesap 62'deki makbuz ve harcamaları görüntülemek için parametreler oluşturacağız, alanı bir tablo satırı şeklinde düzenleyeceğiz. Parametrenin önüne küçük bir girinti yapalım Yüklenici Sözleşmesi(Bu, hücreleri bölerek ve birleştirerek yapılabilir. Bir hücreye sağ tıklayarak -> Birleştirmek veya Hücreyi kır), sözleşme kapsamındaki satırın hiyerarşide karşı taraf satırından daha düşük olduğunun raporda görülebilmesi için gereklidir.

Alanında Bodrum Makbuz ve harcama toplamları için parametreler oluşturalım.

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

3. Bir rapor formu oluşturma

Veri çıkışı için, oluşum periyodunun ve butonların ayarlanması Şekil vermek raporumuzun bir forma ihtiyacı olacak. Bir form oluşturmak için, harici raporun meta veri ağacında öğeyi bulun Formlar ve düğmeye basın Ekle... Form tasarımcısının ilk sayfasında herhangi bir değişiklik yapmanıza gerek yok, butona tıklamanız yeterli. Daha öte.

Yapıcının bir sonraki sayfasında, mevcut her iki aksesuarı da seçeceğiz ( Dönemin başlangıcı, Dönem sonu) forma yerleştirmek için.

Sonuç olarak, aşağıdaki formu elde ederiz:

Ancak bu formda bize uymuyor, üzerinde bazı değişiklikler yapacağız:

  • Düğmeyi sürükleyin Şekil vermek raporun alt bölmesinden en üstüne (bu, kullanıcı için daha uygun olacaktır);
  • Şekli dikey ve yatay olarak uzatın;
  • alanları düzenleyin Dönemin başlangıcı ve Dönem sonu yatay olarak;
  • Forma bir kontrol öğesi ekleyin Bir elektronik tablo belgesinin alanı (raporumuz içinde görüntülenecektir), ona bir ad verin TabDoc;
  • Bir dönem seçmek için bir düğme oluşturalım (bu düğmeye bastığınızda, gerekli dönemin uygun bir seçimini içeren bir iletişim kutusu görüntülenecektir). Bunun için henüz program kodunu yazmayacağız, bu yüzden sadece dönemin alanlarının yanına buton koyacağız.

Sonuç olarak formumuz aşağıdaki gibi olacaktır.

4. Programlama

Rapor formunu oluşturduktan sonra programlamaya başlayalım. Başlangıç ​​olarak, dönem seçimi iletişim kutusunu görüntülemek için bir prosedür oluşturacağız (önceki adımda bunun için bir düğme oluşturduk). Düğmeye sağ tıklayın ve menü öğesini seçin Özellikler, düğmenin özelliklerinde sekmeye gidin Gelişmeler, burada, büyüteç simgesi olan düğmeyi kullanarak bir prosedür oluşturun Düğme 1 Basın form modülünde.

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

Dönem seçim formunu çağırmak için standart prosedürü kullanacağız. muhasebe 2.0 genel modülden Diyaloglarla Çalışmak - HandlerSettingPeriodPressing, rapor ayrıntılarını buna parametre olarak iletmeniz gerekir. Dönemin başlangıcı ve Dönem sonu.

prosedür Düğme 1 Basın (Eleman) Dialogues ile Çalışma.İşlemciPeriyotAyarıBasma (PeriodBeginning, PeriodEnd); Prosedürün Sonu

Şimdi raporumuzu oluşturacak ve görüntüleyecek kodu yazmaya geçelim. Form modülünde zaten bir prosedür var DüğmeŞekilBasın düğmeye basıldığında yürütülecek olan Şekil vermek, kodumuzu buraya yazacağız. Gerekli değişkenleri başlatarak başlayalım. Öncelikle bir değişken oluşturalım. elektronik tablo belge alanları içine verileri çıkaracağımız, bu gerekli değildir, sadece ona yapılan çağrıların kaydı kısalır, bu da program kodunun okunması için daha anlaşılır olacağı anlamına gelir.

TabDoc = Form Elements.TabDoc;

İşlevi kullanarak harici raporun düzenini alın Düzeni Al (<ИмяМакета>) , düzenin adını parametreye ileteceğiz ve eğer böyle bir düzen varsa, fonksiyon onu bulacaktır.

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

Pafta alındıktan sonra her bir alanı için değişkenler oluşturacağız, bunun için layout yöntemini kullanacağız. GetArea (<ИмяОбласти>) .

AreaHeat = Layout.GetArea ("Başlık"); ScopeDataContractor = Layout.GetScope ( "Veri Yüklenicisi"); ScopeDataContract = Layout.GetScope ("ContractData"); AreaFooter = Layout.GetArea ("Altbilgi");

Elektronik tablo belgesinin alanını temizleyelim. Bu, raporun her yeni neslinde eski verilerin silinmesi için gereklidir.

TabDoc.Clear ();

Değişkenlerin başlatılması tamamlandığına göre, düzenin alanlarını dönüşümlü olarak doldurma ve görüntülemeye geçelim. Kapakla başlayalım. Hatırlarsanız bu alanda iki parametre oluşturduk. Dönemin başlangıcı ve Dönem sonu, rapor oluşturma döneminin değerlerini oraya aktaracağız, bunun için mülkü kullanacağız Seçenekler düzenin alanı.

AreaHead.Parameters.PeriodStart = PeriodStart; AreaHead.Parameters.EndPeriod = EndPeriod;

Bölgede daha fazla eylem yok Bir kepüretici gerekli değildir, bu nedenle alanını elektronik tablo belgesinde görüntüleriz.

TabDok.Display (AreaHap);

Ardından, hesaptaki ciroları alacağımız veritabanına bir sorgu yazacağız. 62 muhasebe kaydından kendi kendine yeten... İsteğimizin yer alacağı bir değişken tanımlayalım.

İstek = yeni İstek;

İstek metnini yazmaya başlamadan önce gerekli parametreleri ona geçelim. Fatura talebi yazdığımız için 62 muhasebe, sonra her şeyden önce bunun için bir parametre oluşturacağız

Request.SetParameter ("Account62", Hesap Planları. Self-supporting.FindByCode ("62"));

Rapor oluşturma süresinin de talebe aktarılması gerekir. Formasyon dönemi için raporun özel detaylarına sahip olduğumuzu ve bunları parametre olarak ilettiğimizi unutmayın.

Request.SetParameter ("PeriodBeginning", PeriodBeginning); Request.SetParameter ("EndPeriod", EndPeriod);

İstek metnini yazmaya başlayalım, bunu sorgu yapıcısını kullanarak yapacağız. Birçok öğretici, hem manuel olarak hem de bir kurucu kullanarak bir sorgu yazabilmeniz gerektiğini yazıyor, ancak pratikte durum böyle değil. 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 istek yazarken bunu başarmak neredeyse imkansızdır, doğru bir şekilde çalışmak için çok değerli zaman harcarsınız. tüm sorgu yapılarını yeniden üretin, yazarken yaptığınız yazım hatalarını bulun vb. Bu nedenle, manuel olarak sorgu yazmaya çalışarak zaman kaybetmeyin, sorgu yapıcısını kullanın. Size zaman kazandıracak ve zahmetsizce karmaşık sorgular yazmanıza olanak sağlayacaktır. İstek metnini yazmaya başlamak için kodu yazın:

İstek.Text = "";

Bundan sonra, imleci tırnak işaretleri arasına getirin, farenin sağ tuşuna basın ve öğeyi seçin yapıcı rica etmek. Sorgu tasarımcısı penceresi açılacaktır.

Şimdi ihtiyacımız olan 1C 8 veritabanının tablosunu seçmemiz gerekiyor, sanal bir tabloya ihtiyacımız var. cirolar muhasebe kaydı kendi kendine yeten... Yapıcı penceresinin sol tarafında bulalım

Bölgeye taşıyalım tablolar ve parametreleri dolduralım. Tüm sanal sorgu tabloları için, ana tablodan (bizim durumumuzda, ana tablo Muhasebe Kaydı) istenen verileri seçmenize izin veren özel bir parametre seti vardır. kendi kendine yeten). Sanal tablo parametreleri penceresini açalım.

İsteğe ilettiğimiz periyodun parametrelerini dolduralım. İstek metninde bir parametre kullanmak için, adının önüne sembolü yazın ve işareti (&)

Bukh hesabının koşulunu doldurmaya devam ediyor. muhasebe. Bunu yapmak için, sanal tablonun parametrelerinde satırı bulacağız. Hesap Durumu ve oraya yaz

HİYERARŞİDEKİ Hesap (& Hesap62)

Yapıcıyı, üç noktalı düğmeye tıklayarak koşulları oluşturmak için de kullanabilirsiniz.

Sanal masaya daha fazla koşul koymaya gerek yoktur, bu nedenle düğmesine basın Tamam sanal tablo parametreleri penceresinde. Ardından, tablodan ihtiyacımız olan alanları seçmeniz gerekiyor. Kendinden destekli.Cirolar(yani: Karşı Taraf, Karşı Taraf Sözleşmesi, Gelir ve Gider). Seçtiğimiz tablodaki mevcut alanların listesini görmek için adının yanındaki "+" sembolüne basın. Bundan sonra, gerekli alanları, Sorgu tasarımcısının Alanlar adı verilen en sağdaki alanına sürükleyin. Hesap planını açarsak, hesap için bunu göreceğiz. 62 için analitik Karşı taraf Subconto1 ve tarafından Yüklenici Sözleşmesi - Subconto2.

Bu nedenle, sanal tablonun alanlarından seçiyoruz. Alt Sözleşme1 ve altconto2... Miktar olarak gelir ve gidere ihtiyacımız olduğu için alanları da seçiyoruz. TutarCiroDt ve TutarCiroKt

Seçtiğimiz alanların takma adlarını doldurun, bunun için sekmeye gidiyoruz Birlikler / Takma Adlar ve gerekli alan adlarını ayarlayın.

Raporumuzda veriler hiyerarşik olarak görüntüleneceğinden (Karşı taraf birinci seviyede ve tüm sözleşmeleri ikinci seviyede), Verilerin çıktısını Toplamları kullanarak hiyerarşide yapılandıracağız. Yapıcıdaki yer işaretine gidelim sonuçlar... Gruplandırma alanlarında sırayla sürükleyin karşı taraf ve Yüklenici Sözleşmesi, ve finalde Gelen ve Tüketim.

Bu, sorgu yapıcısındaki işi tamamlar, düğmesine basın Tamam ve isteğimizin metninin program kodunda göründüğünü görüyoruz.

Request.Text = "SEÇ | Kendinden destekli Cirolar.Subkonto1 Karşı Taraf OLARAK, | Kendi Kendini Destekleyen Cirolar.Subkonto2 Bir Yüklenici Sözleşmesi OLARAK, | Kendinden destekliTurnover.AmountTurnoverDt Fiş Olarak, | Kendinden destekliTurnover.AmountTurnoverKt AS Tüketim| | Muhasebe Defteri. SONUÇLAR | SUM (Varış), | TUTAR (Tüketim) |Yazılım | karşı taraf, | Yüklenici Sözleşmesi ";

İsteği yazmayı bitirdikten sonra alanları doldurmaya başlayalım Veri Yüklenicisi, Veri SözleşmesiYüklenici ve Bodrum... Tüm bu alanları, talep yürütülürken elde edilen verilerle dolduracağız. Sorgumuz gruplamalar içerdiğinden ( karşı taraf ve Yüklenici Sözleşmesi) aşağıdaki gibi veri seçin:

SelectContractor = Query.Run () Seçin (QueryResultIndo.OnGroups);

Böylece, tüm karşı taraflar için toplamları içeren kayıtları alacağız.

Bir döngü kullanarak örnek verileri çaprazlamadan önce, rapor için toplam toplamları hesaplamak için tasarlanan değişkenleri başlatırız:

Toplam Gelir = 0; Toplam Tüketim = 0;

Rapor verilerinin bir hiyerarşi ile görüntülenmesi (ve "+" boyunca yayılması için), elektronik tablo belgesinin satırlarının otomatik gruplandırılmasının başlangıcını ayarlayacağız:

TabDoc.StartAutoGroupLines ();

Tüm hazırlıklar bitti, şimdi sorgu sonuçlarını çaprazlamaya başlayalım. Döngüyü kullanarak geçişi gerçekleştireceğiz Hoşçakal

whileSelectionContractor.Next () Döngü EndCycle;

Döngünün başında parametreleri sıfıra ayarlayın. Gelen ve Tüketim alanlar Veri Yüklenicisi... Bu ne için? Bir karşı taraf için bir durum düşünün Vasya Amca, gelir 10 ve gider 5 ve bunun için bir sonraki karşı taraf Petya Amca bu durumda parametreleri sıfırlamazsak ne gelir ne de gider vardır Gelen ve Tüketim, daha sonra karşı taraf doğrultusunda Petya Amca gelir 5 ve gider 10 alacak.

ScopeDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0;

Bundan sonra alanı dolduruyoruz Veri Yüklenicisiörnek öğe verileri

FillPropertyValues ​​​​(ScopeDataContractor.Parameters, SelectionContractor);

Verileri doldurduktan sonra alanı görüntüleyebilirsiniz. E-tablo belgesi Hatların otomatik gruplandırılmasını kullandığımız için, gruplamada hattın seviyesini belirtmemiz gerekiyor (raporumuzda iki seviye olacak, müteahhitler için ilki sözleşmeler için ikincisi).

TabDok.Withdraw (ScopeDataContractor, 1);

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

SelectionContractorAgreement = SelectionContractor.Choose (BypassResult.On Groupings);

Döngüyü kullanarak geçişi gerçekleştireceğiz Hoşçakal.

Seçim Yüklenici Sözleşmesi sırasında.Sonraki () Döngü Döngü Sonu;

Karşı tarafların sözleşmeleri kapsamındaki döngüde parametreleri sıfırlayacağız Gelen ve Tüketim, alanı doldur Veri Sözleşmesi seçimden çıkarın ve ikinci kayıt düzeyinde bir elektronik tablo belgesinde görüntüleyin.

ScopeDataContract.Parameters.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Özellik Değerlerini Doldurun (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2);

Ayrıca bu döngüde, gelir ve gider için toplam değerleri hesaplamak için değişkenlere mevcut değerleri ekliyoruz.

TotalIncome = TotalIncome + SeçimMüteahhit Sözleşmesi.Gelir; Toplam Gider = Toplam Gider + Örnek Yüklenici Sözleşmesi. Gider;

Bu, alandaki verilerin çıktısını tamamlar Veri Yüklenicisi, Veri SözleşmesiYüklenici tamamlandığında, elektronik tablo belgesinin satırlarının otomatik gruplandırılmasını tamamlamak için kalır.

TabDoc.FinishAutoGroupLines ();

Alandaki verilerin çıktısını almaktan sorumlu tam döngüler Veri Yüklenicisi ve Veri SözleşmesiYüklenici Bunun gibi:

TabDoc.StartAutoGroupLines (); SampleContractor.Next () Döngüsü iken RegionDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0; FillPropertyValues ​​​​(ScopeDataContractor.Parameters, SelectionContractor); TabDok.Withdraw (ScopeDataContractor, 1); SelectionContractorAgreement = SelectionContractor.Choose (BypassResult.On Groupings); SelectionDogovKontragenta.Sleduyuschiy () Döngüsü ScopeDataDogov.Parametry.Prihod = 0 iken; ScopeDataAgreement.Parameters.Expense = 0; Özellik Değerlerini Doldurun (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2); TotalIncome = TotalIncome + SeçimMüteahhit Sözleşmesi.Gelir; Toplam Gider = Toplam Gider + Örnek Yüklenici Sözleşmesi. Gider; Döngü Sonu; Döngü Sonu; TabDoc.FinishAutoGroupLines ();

Toplamları alana çıkarmak için kalır Bodrum ve alanın kendisini E-tablo belgesi.

AreaBoard.Parameters.TotalIncoming = TotalIncoming; AreaBoard.Parameters.TotalExpense = TotalExpense; TabDok.Display (Alan Bodrum);

Bu, ACS 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ı indirebilirsiniz.

Yönetilen bir uygulama için harici yazdırılabilir oluşturma hakkında bir video izleyin:

Dikkat!
ITS disklerinden yapılan tüm işlemler bilgi amaçlıdır ve yalnızca kayıtlı ITS kullanıcıları içindir.

Nesnelerin seçimi ve işlenmesi. (Evrensel)

Belgelerde ve dizinlerde belirli koşulları karşılayan nesneleri arar. Arama sonuçlarını işler.

Bilgi tabanını katlama. (Evrensel)

Bilgi güvenliği tipik yapılandırmalarını toplar:

  • SCP 3.1.
  • BP 1.6.
  • UT 10.3.

Değişim için değişikliklerin kaydı. (Evrensel)

Yönetilen uygulama modunda, değişim nesnelerine yapılan değişikliklerin kaydını düzenler. Çeşitli düğümlerdeki mevcut kaydı değiştirmenize izin verir. Alınan ve gönderilen mesajların numaralarını değiştirir.

Kullanıcı etkinliği günlüğünü dönüştürün. (Evrensel)

Bir kullanıcı etkinliği günlüğünü yerleşik bir programa dönüştürür.

Tam metin veri arama. (Evrensel)

Verilerde indeksleme ve arama.

Değerleri bulma ve değiştirme. (Evrensel)

IB nesnelerindeki referans değerlerini arar ve değiştirir.

Teknolojik bir günlük oluşturma. (Evrensel)

Bir teknoloji günlük dosyası oluşturur veya düzenler. Anormal bir sonlandırma dökümünün oluşturulmasını yapılandırma, oluştuğunda bilgilerin bu günlüğe yazılacağı koşulları ve olayları yapılandırma yeteneğine sahiptir.

Görev Konsolu. (Evrensel)

Arka planı ve zamanlanmış işleri izler. Siler, yenilerini oluşturur.

Harici tedavilerin dönüştürülmesi. (Evrensel)

Gizli bilgilerin değiştirilmesi. (Evrensel)

Bilgi güvenliğinin belirli bilgilerden seçici olarak değiştirilmesi veya temizlenmesi.

Ayrıntıların grup değişikliği. (Evrensel)

Belgelerdeki ve referans kitaplarındaki ayrıntıları ve tablo bölümlerini değiştirir.

Kullanıcıları boşaltma ve yükleme. (Evrensel)

IB kullanıcılarını bir XML dosyasına kaldırır ve yükler.

Verileri harici veritabanlarına yükleme. (Evrensel)

İki modda ADO kullanarak veri yapılarını harici DBMS'ye yükler:

  • Tümünü Kaldır
  • Değişiklikleri yükleyin (çalışan IS'deki değişiklikleri IS - alıcı ile senkronize etmek için kullanılır). Bu mod, değişim planı mekanizmalarını kullanır.

Aşağıdaki DBMS'yi destekler:

  • Microsoft SQL'i
  • IBM DB2
  • kehanet
  • PostgreSQL
  • MySQL

XML verilerini boşaltma ve yükleme. (Evrensel)

Verileri hem tamamen hem de kısmen IB'ye yükler ve kaldırır. Benzer nesne kompozisyonuna sahip konfigürasyonlar arasında veri aktarmak için kullanılır.

Bir elektronik tablo belgesinden veri yükleme. (Evrensel)

Tablolu belgelerden dizinlere ve tablo bölümlerine veri yükler.

Normal bir uygulama olarak kalın bir istemcide çalışır.

Sorgu konsolu. (Evrensel)

Raporlama ve sorgu oluşturma konusunda muazzam yardım sağlar.

Menünün en üstüne git Hizmet->->.

Harici işleme referans kitabı listesinin formu görünür. Üst menüde, düğmesine basın Ekle.

Yeni bir nesne eklemek için bir form görünecektir. Aç düğmesine basıyoruz ve istenen işleme sahip dosyayı seçiyoruz. Gerekli dosyayı seçtikten sonra, gerekirse işleme adını belirtin (Ad alanında). Bundan sonra, yapılan değişiklikleri kaydetmek için Tamam'a tıklamanız gerekir.

Bundan sonra, bir katalog öğesi oluşturma penceresi kapatılır ve zaten yeni bir işlemin olduğu liste formuna geri dönersiniz.

Bu kadar! Yapılandırmaya işleme ekleme işlemi tamamlandı. Bu işlemi daha sonra açmak için eski yolu izleyin: Hizmet->Ek raporlar ve işleme->Ek harici tedaviler.

BP 3.0, ZUP 3.0, UT 11, ERP 2.0 için.

1C: Enterprise 8 için harici işlemler çeşitli tiplerdedir. Bu öğreticide, toplu değişiklik için işleme eklemeyi ve belirli nesneleri doldurmak için işlemeyi nasıl ekleyeceğinizi göstereceğim.

İlk durumda, Excel'den stok listesini doldurmak için işleme ekleyelim.

Programın uygun bölümüne gidin:


Ek raporlar ve işleme kullanma işaretinin ayarlanması gerekir, harici nesneler listesine giden köprüyü izleyin:

Listede, tıklayın Oluşturmak:


Açılan iletişim kutusunda, işleme ile istediğiniz dosyayı seçin:


Programdaki yeni bir harici nesnenin kartı dolduruldu, sadece yapılandırmak için kaldı Konaklama(programın işleme alınabilecek bölümleri):


Yerleşim olarak isteğe bağlı bir bölüm (veya birkaç) seçin:


Dış nesnenin kartını yazıp kapatıyoruz:


Şimdi arayüzden işlemeyi açalım:


Liste boş, tıklayın Listeyi özelleştir:


İşlememizi seçiyoruz:


Artık seçim için kullanılabilir. İşlemi açmak için tıklamanız gerekir Uygulamak:


Şimdi belirli nesneleri doldurmak (değiştirmek) için işlemenin nasıl eklendiğini görelim. Örneğin, taramaları sistemdeki dizinlerin veya belgelerinin seçili öğelerine ekleyen harici bir işlemi ele alalım. Bu tür işlemlerin eklenmesinin başlangıcı, önceki seçenekten farklı değildir. Aradaki fark, bu durumda konumun otomatik olarak doldurulmasıdır (program bölümü tarafından değil, veritabanı nesnelerinin türleri tarafından):


İstenirse yerleşim listesi ayarlanabilir ( ek yerleşim eklemeyin, gereksizleri kaldırın):


Değişikliği kabul etmek için harici nesnenin kartı da kaydedilmelidir.

İşlemi kullanmak için belirli bir temel nesneye (yerleşim listesinden) gitmeniz gerekir, tıklayın. Doldurun komut panelinde ve komutu seçin:

1C: Enterprise 8.2 platformu için harici işlemcileri, raporları, basılı formları bağlamak için, yönetilen bir uygulamada çalışmak için yeni bir standart geliştirilmiştir (standart kitaplıklar 8.2'nin alt sisteminden bir standart). Daha önce olmayan "cipsler" vardı, yani:

    İşleme türü genişletildi: bir nesneyi doldurma, ilgili nesneleri oluşturma. Artık belgelerde, belgenin tamamını doldurmak için kendi düğmelerinizi ve ayrıca temelde girmek için kendi düğmelerinizi ekleyebilirsiniz.

    Bir işleme, aynı anda birkaç işlemin (komutun) bir listesini içerebilir, yani. aynı anda birkaç menü öğesinin olacağı bir işlem yapabilirsiniz: yazdırma ve sevk irsaliyesi, satış makbuzu yazdırma, garanti kartı yazdırma. (Yazarın notu: eski standartta daha önce, bu tür şeyleri yapabilmek için her şeyi bir kerede yapmanız gerekiyordu (gerekmese bile) ve üzerine kapatmanız veya kendi formunuzu çizmeniz gerekmiyordu. gerekli işlemi seçmek için gerekli düğmeler vardı)

    Birden çok nesneye dayalı olarak girebilir ve nesneleri bir kerede birden çok nesneye göre doldurabilirsiniz.

    Sunucu komutlarının yürütülmesini (sunucuda) zamanlayabilirsiniz.

    "Güvenli" veya "Güvenli değil" modunu ayarlayabilirsiniz, yani. hakların kısıtlanmasını dikkate alarak işlemeye başlayın veya bunları görmezden gelin (tam haklar kapsamında olduğu gibi)

    Kullanım modunu ayarlayabilirsiniz: Kullanmayın, hata ayıklayın, kullanmayın. "Kullanmayın" - kullanımda değil, "Hata Ayıklama" - yalnızca yöneticiler tarafından görülebilir, "Çalışırken kullanın".

    Nesne formlarında ve liste formunda kullanımı dahil edebilirsiniz.

    Bir işlemeyi veya raporu aynı anda tüm nesnelere bağlayabilirsiniz.

    Harici işleme için belirli komutlara hızlı erişimi yapılandırabilirsiniz.

    Arayüzün hangi bölümlerinde ek işlemlerin ve raporların görüneceğini belirtmek mümkündür.

Peki standart konfigürasyonlara neler eklenebilir?

Platform açısından şunları bağlayabilirsiniz:

  • harici işleme ("epf" uzantılı dosyalar);
  • harici raporlar ("erf" uzantılı dosyalar).

Uygulama alanı (konfigürasyon) açısından, görünüm *: ile harici işleme ve raporları bağlayabilirsiniz:

  • Ek işleme
    • Sadece ek işlem. özelleştirmek mümkündür
  • Ek rapor
    • Sadece ek bir rapor
  • nesneyi doldurmak
    • Nesneleri (belge) doldurmak için kendi düğmeleri, daha önce sadece tablo bölümünü doldurmak için düğmeler vardı.
  • Yazdırılabilir form
    • Ek yazdırılabilir ("Ek yazdırılabilir" düğmesi eklendi)
  • Rapor
    • Nesnelere eklenmiş bir rapor (dizinlere ve belgelere).
  • Bağlantılı nesneler oluşturma
    • Şuna dayalı girdiniz ("İlgili nesneler oluştur ..." düğmesi, "Giriş ölçütü" menü öğesine eklenir)

* yazı işleri ofisi örneğinde “Küçük bir şirketin yönetimi, ed. 1.2"

Her şeyin nasıl çalıştığına bir göz atalım. Harici işlemcileri ve raporları bağlamak için, harici işleme ve bir raporla etkileşim için arabirimi tanımlayan bir standart vardır ve tüm türler için genel gereksinimler vardır ve her işleme veya rapor türü için özeldir.

Her tür işleme ve raporlama için genel gereksinimlerle başlayalım. Takılabilir bir harici işlem veya bir rapor oluşturmak için, davranışı tanımlayan yapıyı doldurması gereken nesne modülünde ExternalProcessing Information () dışa aktarma işlevini bildirmek gerekir. Bu işlevin bir örneği:

Harici İşleme Bilgileri () İşlev Dışa Aktarma
RegisterData = Yeni Yapı;
Kayıt Verileri. Insert ("Ad", "Harici işleme 8.2 kullanma örneği.");
KayıtData.Insert ("GüvenliMod", Doğru);
Kayıt Verileri Ekle ("Sürüm", "1.0");

// Ek İşleme
// Ek Rapor
// DoldurmaNesnesi
//Rapor
// Baskı formu
// LinkedObjects Oluştur
KayıtData.Insert ("Görünüm", "Ek İşleme");

KayıtData.Insert ("Bilgi", "İşleme, harici işlemcileri bağlamak için yeni standarda göre yapılır 8.2. İşleme örneği" "Merhaba Word" "");

//////////// komutlar //////////////////////
tzCommand = Yeni Değerler Tablosu;
tzComand.Columns.Add ("Tanımlayıcı");
tzComand.Columns.Add ("Görünüm");
tzComand.Columns.Add ("Değiştirici");
tzKomand.Kolonki.Add ("Bildirimi Göster");
tzComand.Columns.Add ("Kullanım");


CommandString.Identifier = "1";
lineCommand.View = "komut" "Merhaba Kelime" "(FormOpening)";

CommandString.Usage = "Form Açma";

CommandString = tzCommand.Add();
CommandString.Identifier = "2";
CommandString.View = "komut" "Merhaba Kelime" "(CallClientMethod)";
CommandString.ShowNotification = Doğru;
CommandString.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
CommandString.Identifier = "3";
CommandString.View = "komut" "Merhaba Kelime" "(CallServerMethod)";
CommandString.ShowNotification = Doğru;
CommandString.Usage = "CallServerMethod";

KayıtData.Insert ("Komutlar", tzKomand);

///////////// amaç (hangi nesnelerde kullanılır) ///////////////////////
// formları yazdırmak, doldurmak, bağlantılı nesneleri girmek için
// Atama Dizisi = Yeni Dizi;
//AssignmentArray.Add("Belge.* "); // tüm belgeler atanır
//AssignmentArray.Add("Document.AvailableReport ");
//ArrayAssignments.Add("Belge.SiparişAlıcı ");
//RegistrationData.Insert ("Assignment", AssignmentArray);

Kayıt Verilerini İade Et;

EndFunction

Gördüğünüz gibi, işlev, aşağıdaki öğelere (parametrelere) sahip olan RegistryData yapısını doldurur:

    İsim - tedavinin kısa adı

    Sürüm - işleme sürümü hakkında bilgi

    Güvenli mod - işlemin kullanıcı hakları dikkate alınarak gerçekleştirilip gerçekleştirilmeyeceğinden sorumludur. Değeri "Yanlış" olarak ayarlarsanız, işleme veya rapor hakların kısıtlamalarına bakılmaksızın (tam haklar altında olduğu gibi) gerçekleştirilir. Bu özellik, 8.2'de ortaya çıktı, burada, harici işlemler ve raporlar oluşturulurken, mod ikinci parametre olarak belirtilir.

    Görünüm - işleme veya rapor türü. Olası değerleri makalenin başında listeledim ve kodda ayar için olası değerler yorumda belirtilmiştir.

  • Komutlar - Kullanılan komutları listeleyen bir değerler tablosu. Değer tablosunun sütunları:
    • Tanımlayıcı - herhangi bir dize (komut tanımlayıcısı)
    • Görünüm - komut açıklaması
    • Değiştirici - dize (ek yazdırılabilir formlar için kullanılır)
    • ShowNotification - yürütmeden önce ve sonra bir bildirim penceresi görünecektir (formsuz istemci ve sunucu komutları için)
    • Kullanım - işleme başlatma modu:
      • Form Açılışı - işleme formu açılacaktır
      • ClientMethod çağrısı - istemci dışa aktarma yöntemi formunu çağırın
      • ServerMethod Call - işleme modülünden dışa aktarma yöntemini çağırın

İşlemin veya raporun türüne ve "Kullan" komut başlatma moduna bağlı olarak, form modülünde tanımlanan yöntemler, nesne modülü çağrılır. Geçirilen parametrelerin listesi de farklıdır. Çağrı örnekleri ve her tür işlemenin kullanımı ektedir.