1s 8 harici işleme. Veritabanına harici işlem ekleme

Çoğu zaman, bir konsültasyon sırasında bazı karmaşık sorunları çözme ihtiyacı ortaya çıktığında, müşterilerime bunu 1C programında aşağıdaki yöntemlerden birini kullanarak uygulamalarını öneririm: harici işleme, veya harici baskı plakası. Ve çoğu zaman insanların 1C Enterprise 8 platformundaki programların bu olasılığına aşina olmadıkları gerçeğiyle karşılaşıyorum, hatta bazen bana yemin ediyorlar, bu tür işlemlerin kendi yapılandırmalarının bir parçası olarak geliştirilmesinin ve uygulanmasının aşağıdakilere yol açacağına inanıyorlar: programın otomatik olarak güncellenememesi. Programı güncellemek için çok para ödemeniz gerekecek.

Bu tür soruları açıklığa kavuşturmak ve harici işleme ve harici yazdırma formlarının sağladığı yararlı fırsatlardan bahsetmek için bu makaleyi yazmaya karar verdim. Bu yazıda işlem oluşturma sürecinin teknik yönünü ele almayacağım. Bu muhtemelen başka bir yayında tartışılacaktır. Burada mekanizmanın özünü açıklamaya çalışacağım ve harici işleme ve yazdırma formlarının kullanıcıya fayda sağlayabileceği durumlara ilişkin spesifik örnekler vermeye çalışacağım.

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

  • Tablo parçalarının ek harici işlenmesi;
  • Ek harici baskı formları;
  • Ek dış raporlar;
  • Ek harici işleme.

Ek harici işlemler, raporlar ve basılı formlar nelerdir?




Öncelikle genel olarak bahsetmek istiyorum. nedir bu harici işlemler, raporlar ve basılı formlar?. Çoğu zaman, 1C ZUP veya 1C Kurumsal Muhasebe veya başka bir yapılandırma gibi standart 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üzenlenmeyen ancak kuruluşun iç ihtiyaçları için kullanılan. Veya belirli bir şekilde gerekli süreç (değiştirme, ayarlama) veri tabanında mevcut veriler. Örneğin, belgelerdeki belirli ayrıntıların gerekli süre boyunca değiştirilmesi, bunun büyük hacimli bilgilerle manuel olarak yapılması sakıncalıdır.

Bu durumda iki seçenek vardır. Birinci, konfigürasyonun kendisini, programın kendisini değiştirebiliriz. Bundan sonra artık tipik olmaktan çıkacak ve bunlarla güncellenmesi yeterli olacaktır. basit yollarla hakkında yazdığım çalışmayacak. Güncelleme yok tipik konfigürasyon- bu daha uzun ve daha ciddi bir süreçtir, dolayısıyla bu yaklaşımla, programı güncellemek için büyük olasılıkla aylık bir 1C uzmanına ödeme yapmanız gerekecektir. Saniye Bir seçenek, harici bir işleme veya basılı form (rapor) geliştirmek veya geliştirmeyi istemektir. Bu aslında Yapılandırıcıdaki 1C programlama dilinde de geliştirilen, ancak standart yapılandırmada değişiklik yapmayan harici bir modüldür. Yapılandırmanın kendisinden bağımsız olarak mevcuttur. Bunları saklamak için özel dizinler kullanılır: ana menü öğesi “Servis” -> “Ek raporlar ve işlemler”.

Tablo parçalarının doldurulması için ek harici işlemler

Seminer “1C ZUP 3.1 için Yaşam Tüyoları”
1C ZUP 3.1'de muhasebe için 15 hayat hackinin analizi:

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

1C ZUP 3.1'de bordro hesaplaması
Adım adım talimat yeni başlayanlar için:

Şimdi mevcut dördünün her birinin bize hangi fırsatları sunacağına bir göz atalım. harici modüller. İle başlayalım tabla parçalarının harici işlenmesi. Bana öyle geliyor ki, belgelerin tablo halindeki bölümlerinin bu şekilde işlenmesi, standart konfigürasyonu düzenlemeye başvurmadan bir programı nasıl oldukça ciddi bir şekilde değiştirebileceğinizi, ancak yalnızca harici işlemeyle idare edebileceğinizi en iyi şekilde göstermektedir.

Daha açık hale getirmek için, kullandığım problemi çözmek için kendi pratiğimden spesifik bir örnek vereceğim. tabla parçalarının harici işlenmesi. "1C Maaş ve Personel Yönetimi" baskı 2.5 konfigürasyonunda bir belge var "Tatil ve hafta sonları için ödeme"(Bu belge ayrıntılı olarak yazılmıştır). Standart biçiminde bu belge, "Tatillerde çalışan" çalışanlar tarafından tablo bölümünü otomatik olarak doldurma olanağı sağlar.

Muhasebeci, bu belgeyi çalışma günleri hafta sonlarına denk gelecek şekilde planlanan çalışanlar tarafından doldurma olasılığının uygulanmasını istedi; "Hafta sonu çalışıyorum".

Bu dosya dizine yüklendi "Tablo parçalarının harici işlenmesi"("Servis" menü öğesi -> "Ek raporlar ve işleme" -> "Tablo parçalarının ek harici işlenmesi"). Bu dizinin bir öğesini oluştururken, indirilen işlemin hangi belgeyle ilgili olduğu - "Kuruluşun tatilleri ve hafta sonları için ödeme" ve hangi tablo bölümü - "Çalışanlar" ile ilgili olduğu belirtildi. Örneğimizde tablo bölümü bir belgede bir tane bulunur, ancak diğer belgelerde birden fazla bulunabilir; bu nedenle, işlemenin bunlardan hangisiyle ilgili olduğunu özellikle belirtmek gerekir.

Bu işlemin dizine eklenmesi sonucunda “Tablo parçalarının doldurulması için ek harici işlemler”"Tatiller ve hafta sonu bölümleri için ödeme" belgesinin kendisinde, bu işleme başlamanın mümkün olacağı bir açılır listeyle birlikte bir "Doldur" düğmesi görünecektir. Bizim durumumuzda açılır listede “Pazar Günlerini Doldur” butonu mevcuttur. Buna basıldığında işlemde yer alan algoritma başlatılır. İÇİNDE bu örnekte Tablo kısmı, çalışma günleri izin gününe düşen çalışanlar tarafından doldurulacaktır. Lütfen bu düğmenin daha önce mevcut olmadığını unutmayın (yukarıdaki ekran görüntüsü).

Bu mekanizma, konfigürasyonun kendisini değiştirmek zorunda kalmadan çok çeşitli sorunları çözmenize olanak tanır. Bu nedenle, bu fırsatı sıklıkla müşterilerin görevlerini uygulamak için kullanıyorum.

İsteğe bağlı harici baskı plakaları

Seminer “1C ZUP 3.1 için Yaşam Tüyoları”
1C ZUP 3.1'de muhasebe için 15 hayat hackinin analizi:

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

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

Bu seçenek öncekine çok benzer. Muhtemelen hemen hemen her belgenin ve hatta referans kitaplarının bazı unsurlarının basılı formları olduğunu görmüş ve biliyorsunuzdur. Kural olarak, bir dizin öğesi veya belge biçiminin sağ alt köşesinde bulunurlar. Bazen tipik basılı formlar yeterli olmadığı ortaya çıkıyor. Örneğin bir kuruluşun kendine ait bir iş sözleşmesi olabilir. Standart basılı “İş Sözleşmesi” formunun “Çalışanlar” rehber formunda yer aldığını hatırlatayım.

Dizinin bu basılı formlarına kendinizinkini ekleyebilirsiniz. Bu amaçla “.epf” uzantılı harici basılı form oluşturulur. Daha sonra bunun için bir dizin öğesi oluşturulur "Ek harici baskı plakaları"(“Araçlar” -> “Ek raporlar ve işlemler” menü öğesi) ve bu dizin öğesine “.epf” uzantılı bir dosya eklenir. İşlemin hangi belge veya referans kitabı için eklendiğini de belirtmek gerekir.

Sonuç olarak, "Çalışanlar" dizininin unsurlarının basılı formlarının bir parçası olarak, daha önce mevcut olmayan başka bir form - "İstihdam Sözleşmesi (Alpha LLC)" görünecektir. Ve onun dış görünüş ve veri doldurma işlemi “.epf” dosyasındaki programcı tarafından belirlenir.

Belgeler ve referans kitapları için gerekli basılı formları ekleme yeteneği de sıklıkla talep görmektedir ve bence 1C Enterprise platformundaki programların oldukça kullanışlı bir işlevidir.

Ek harici raporlar

Bu durumda geliştirebilirsiniz harici rapor. Bu “.erf” formatında bir dosyadır. Raporun görünümünü, hangi konfigürasyon verilerini kullanacağını ve kullanıcıdan hangilerini talep edeceğini (örneğin dönem, çalışana veya departmana göre seçim) belirleyen bu dosyadır. Dosya, 1C programlama dilinde 1C yapılandırıcısında oluşturulur.

“Ek harici raporlar” referans kitabı (“Araçlar” -> “Ek raporlar ve işleme” menü öğesi) kullanılarak yapılandırmanın bir parçası olarak harici bir rapor saklanabilir. Belirli bir belge veya referans kitabıyla ilgili değildir; bu bilgilere gerek yoktur.

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

Ayrıca “Dosya” -> “Aç” menü öğesini kullanarak harici bir rapor başlatabilirsiniz. Bu seçenek, harici raporları programın bir parçası olarak değil, yalnızca bilgisayar klasörlerinde saklamanız daha uygunsa kullanılabilir.

Ek harici tedaviler

Dış tedaviler harici raporlarla yaklaşık olarak aynı anlama sahiptir. Ancak verileri görüntülemek için kullanılan raporlardan farklı olarak bilgi tabanı Kullanıcı dostu bir formatta 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ülen sorunların kapsamı oldukça geniştir.

Örneğin, bordro ekstrelerinin yüklenmesi için işlem yapılıyor. ZUP'ta standart işlemenin varlığına rağmen (bunun hakkında bilgi edinin), bazen belirli bir banka için uygun olmayabilir ve bilgileri gerekli formatta dönüştüren ve indiren harici işleme geliştirilir.

sana getireceğim bir örnek daha tamamen basit ama oldukça popüler bir tedavi. 1C ZUP'ta yıl boyunca "Kişisel gelir vergisinin bütçeye aktarılması" belgesini saklamazsanız, yıl için 2 kişisel gelir vergisi oluştururken, her çalışan için "Aktarılan" alanı sıfır olacaktır; genellikle gerçekte yanlıştır. Belgenin özellikleri göz önüne alındığında, tüm yıl boyunca "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 "Listelenen" alanı dolduracak harici işleme yapabilirsiniz. Muhasebeciler genellikle bu seçeneği gerçekten severler.

Harici işleme tamamen aynı iki depolama ve başlatma seçeneğine sahiptir: ya dizini kullanın "Ek harici işleme"("Araçlar" -> "Ek raporlar ve işlemler" menü öğesi) 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:

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. Düzende bir alan oluşturmak için gerekli miktarçizgiler ve bası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. Birçoğunda ders kitapları hem manuel olarak hem de bir kurucu kullanarak istek 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 getirin ve tuşuna basın. sağ düğme fareyi seçin ve öğeyi 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:

Üst menüye git Hizmet->->.

Harici işlem dizini listesi formu görüntülenir. Üst menüde düğmesine basın Eklemek.

Yeni Nesne Ekle formu görünecektir. Aç düğmesine tıklayın ve istenen işleme sahip dosyayı seçin. Seçtikten sonra gerekli dosya, gerekiyorsa işlemin adını belirtin (Ad alanı). Bundan sonra yapılan değişiklikleri kaydetmek için Tamam'a tıklamanız gerekir.

Bundan sonra, bir dizin öğesi oluşturma penceresi kapatılır ve yeni işlemi zaten içeren liste formuna geri yönlendirilirsiniz.

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şlemler->Ek harici tedaviler.

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

1C:Enterprise 8 için harici işleme çeşitli türlerde gelir. Bu talimatta size grup modifikasyonu için işleme ve belirli nesneleri doldurmak için işlemenin nasıl ekleneceğini göstereceğim.

İlk durumda, terminoloji dizinini Excel'den doldurmak için işlem ekleyeceğiz.

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


Ek raporların ve işlemlerin kullanılmasına yönelik bayrağın ayarlanması gerekir; harici nesneler listesine giden köprüyü takip edin:

Listede tıklayın Yaratmak:


Açılan iletişim kutusunda işlenmek üzere istediğiniz dosyayı seçin:


Programdaki yeni harici nesnenin kartı dolduruldu, geriye kalan tek şey onu yapılandırmak konaklama(programın işleme alınabilecek bölümleri):


Yerleştirme için rastgele bir bölüm (veya birkaç) seçin:


Harici nesne kartını yazın ve kapatın:


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


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


İşlememizi seçin:


Artık seçime açıktır. İşlemeyi açmak için tıklamanız gerekir Uygulamak:


Şimdi belirli nesneleri doldurma (değiştirme) işlemlerinin nasıl eklendiğini görelim. Örneğin, taramaları seçilen dizin öğelerine veya sistem belgelerine ekleyen harici işlemeyi ele alalım. Bu tür bir işlemin eklenmesinin başlangıcı önceki seçenekten farklı değildir. Aradaki fark, bu durumda konumun otomatik olarak doldurulmasıdır (ve program bölümü tarafından değil, veritabanı nesnelerinin türleri tarafından):


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


Değişikliğin kabul edilmesi için harici nesne kartının da yazılması gerekir.

İşlemeyi kullanmak için belirli bir veritabanı nesnesine (yerleşim listesinden) gitmeniz gerekir, Doldurmak komut panelinde şu komutu seçin:

1C:Enterprise 8.2 platformuna yönelik harici işlemleri, raporları ve basılı formları bağlamak için geliştirilmiştir. yeni standart yönetilen bir uygulamada çalışmak için (standart kütüphaneler alt sistemi 8.2'den standart). Daha önce orada olmayan “cipsler” ortaya çıktı:

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

    Bir işlem, çeşitli işlemlerin (komutların) bir listesini içerebilir; Aynı anda birkaç menü öğesinin olacağı tek bir işlem yapabilirsiniz: yazdırma ve teslimat notu, satış makbuzu yazdırma, garanti kartı yazdırma. (Yazarın notu: eski standardın başlarında, bu tür şeyleri yapmak için her şeyi bir kerede yapmanız gerekiyordu (gerekli olmasa bile) ve seçmek için gerekli düğmelerin bulunduğu kendi formunuzu kapatmanıza veya çizmenize gerek yoktu. gerekli işlem)

    Tek bir nesne yerine birden fazla nesneye dayalı olarak nesneleri aynı anda girebilir ve doldurabilirsiniz.

    Sunucu komutlarının (sunucuda) yürütülmesi için bir zamanlama ayarlayabilirsiniz.

    Modu “Güvenli” veya “Güvenli Değil” olarak ayarlayabilirsiniz; İşlemeyi kısıtlı hakları dikkate alarak çalıştırın veya bunları yok sayın (tüm haklarda olduğu gibi)

    Kullanım modunu ayarlayabilirsiniz: Kullanmayın, hata ayıklayın, kullanın. "Kullanmayın" - çalışmıyor, "Hata ayıklama" - yalnızca yöneticiler tarafından görülebilir, "Kullanım sırasında".

    Nesne formlarında ve liste formlarında kullanılabilir

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

    Kişiselleştirilebilir hızlı erişim belirli harici işleme komutlarına.

    Arayüzün hangi bölümlerinde ek işlem ve raporların görünmesi gerektiğini belirlemek mümkündür.

Peki standart konfigürasyonlara neler bağlanabilir?

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

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

Uygulama alanı (konfigürasyon) açısından bakıldığında, harici işleme ve raporları şu formla bağlayabilirsiniz*:

  • Ek işleme
    • Sadece bazı ekstra işlemler. Özelleştirmek mümkündür
  • Ek rapor
    • Sadece ek bir rapor
  • Bir Nesneyi Doldurmak
    • Nesneleri (belgeleri) doldurmak için kendi düğmeleri vardı, daha önce yalnızca tablo kısmını doldurmak için düğmeler vardı.
  • Yazdırılabilir form
    • Ek yazdırılabilir form (“Ek yazdırılabilir formlar” düğmesi eklendi)
  • Rapor
    • Nesnelere (dizinler ve belgeler) eklenen bir rapor.
  • Bağlantılı Nesneler Oluşturma
    • Kendi girişinize dayalıdır (“Giriş tabanlı” menü öğesine “İlgili nesneler oluştur…” düğmesi eklenmiştir)

*Editör ofisi örneğini kullanarak “Küçük bir şirketin yönetimi ed. 1,2"

Her şeyin nasıl çalıştığına bir göz atalım. Harici işleme ve raporlamayı birbirine bağlamak için, harici işleme ve raporlamayla etkileşime yönelik arayüzü açıklayan 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 özel gereksinimler vardır.

Her türlü işleme ve raporlamaya ilişkin genel gereksinimlerle başlayalım. Bir eklenti harici işleme veya rapor oluşturmak için, nesne modülünde davranışı tanımlayan bir yapıyı doldurması gereken InformationOnExternalProcessing() dışa aktarma işlevini bildirmeniz gerekir. Bu fonksiyonun bir örneği:

İşlev InformationOnExternalProcessing() Dışa Aktarma
RegisterData = Yeni Yapı;
Kayıt Data.Insert("Ad", "Harici işleme 8.2 kullanım örneği.");
RegisterData.Insert("SafeMode", True);
RegisterData.Insert("Sürüm", "1.0");

//Ek İşleme
//Ek Rapor
//Nesnenin Doldurulması
//Rapor
//Baskı formu
//İlgili Nesnelerin Oluşturulması
RegisterData.Insert("Görünüm", "Ek İşleme");

Kayıt Data.Insert("Bilgi", "Harici işleme bağlanmak için yeni standarda göre işlem yapıldı 8.2. İşleme örneği ""Merhaba Kelime"" ");

////////////// komutlar /////////////////////////
tzCommand = Yeni Değer Tablosu;
tzCommand.Columns.Add("Tanımlayıcı");
tzCommand.Columns.Add("Görüntüle");
tzCommand.Columns.Add("Değiştirici");
tzCommand.Columns.Add("Uyarıyı Göster");
tzCommand.Columns.Add("Kullanım");


stringCommands.Identifier = "1";
stringCommands.View = "komut ""Merhaba Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "komut""Merhaba Word""(CallClientMethod)";
stringCommands.ShowAlert = Doğru;
stringCommand.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "komut""Merhaba Word""(CallServerMethod)";
stringCommands.ShowAlert = Doğru;
stringCommand.Use = "CallServerMethod";

RegisterData.Insert("Komutlar", tzCommands);

/////////////// amaç (hangi nesnelerde kullanıldığı) //////////////////////////
//formları yazdırmak, doldurmak, ilgili nesneleri girmek için
//ArrayAssignments = Yeni Dizi;
//Atama Dizisi.Add("Belge.*"); // tüm dokümanlar atanıyor
//Atama Dizisi.Add("Document.Advance Report");
//Atama Dizisi.Add("Belge.Alıcının Siparişi");
//Kayıt Data.Insert("Hedef", Hedef Dizisi);

Kayıt Verilerini İade Edin;

Son Fonksiyon

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

    Ad – tedavinin kısa adı

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

    Güvenli mod– işlemenin kullanıcının hakları dikkate alınarak gerçekleştirilip gerçekleştirilmeyeceğinden sorumludur. Yanlış olarak ayarlanırsa işleme veya raporlama, hak kısıtlamaları (tüm haklarda olduğu gibi) dikkate alınmadan gerçekleştirilir. Bu özellik tam olarak 8.2'de ortaya çıktı; burada harici işleme ve raporlar oluşturulurken ikinci parametre modu belirtir.

    Tür – işleme veya raporun türü. Olası değerleri yazının başında sıraladım, kodda ayarlanması gereken olası değerler yorumlarda belirtilmiştir.

  • Komutlar – kullanılan komutları listeleyen bir değerler tablosu. Değer tablosu sütunları:
    • Tanımlayıcı – herhangi bir dize (komut tanımlayıcı)
    • Görünüm - komut açıklaması
    • Değiştirici - dize (ek basılı formlar için kullanılır)
    • Bildirimi Göster – bildirim penceresi yürütmenin başlangıcından önce ve bitiminden sonra görünecektir (formsuz istemci ve sunucu komutları için)
    • Kullanım – işleme başlatma modu:
      • OpenForm – işleme formu açılacaktır
      • CallClientMethod – formun istemci dışa aktarma yöntemini çağırın
      • ServerMethod'u çağırın – işleme modülünden dışa aktarma yöntemini çağırın

İşleme veya rapor türüne ve "Kullan" komutunun başlatma moduna bağlı olarak form modülünde veya nesne modülünde tanımlanan yöntemler çağrılır. Geçirilen parametrelerin listesi de farklıdır. Çağrı örneklerini ve her türlü işlemin kullanımını ekliyorum.

Dikkat!
ITS disklerinden yapılan tüm işlemler bilgilendirme amaçlıdır ve yalnızca kayıtlı ITS kullanıcılarına yöneliktir.

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ın evrişimi. (Evrensel)

Tipik yapılandırmaların bilgi güvenliği toplamasını gerçekleştirir:

  • UPP 3.1.
  • KB 1.6.
  • UT10.3.

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

Yönetilen uygulama modunda, değiştirilen nesnelerdeki değişikliklerin kaydını düzenler. Çeşitli düğümlerdeki mevcut kaydı değiştirmenizi sağlar. Alınan ve gönderilen mesajların sayısını değiştirir.

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

Kullanıcı eylemlerinin günlüğünü yerleşik bir dildeki bir programa dönüştürür.

Verilerde tam metin araması. (Evrensel)

Verileri indeksleme ve arama.

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

Bilgi güvenliği nesnelerinde referans değerlerini arar ve değiştirir.

Teknolojik bir kayıt oluşturma. (Evrensel)

Bir işlem günlük dosyası oluşturur veya düzenler. Bu günlüğe hangi bilgilerin kaydedileceği üzerine bir kilitlenme dökümü oluşturulmasını yapılandırma, koşulları ve olayları yapılandırma yeteneğine sahiptir.

İş konsolu. (Evrensel)

Arka plan ve rutin görevleri izler. Siler, yenilerini yaratır.

Harici işlemenin 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 kısımlarını değiştirir.

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

Bilgi güvenliği kullanıcılarını bir XML dosyasına yükler ve yükler.

Verilerin dış veritabanlarına yüklenmesi. (Evrensel)

ADO'yu iki modda kullanarak veri yapılarını harici DBMS'lere yükler:

  • Tümünü kaldır
  • Değişiklikleri yükle (çalışan IS'deki değişiklikleri alıcı IS 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
  • IBMDB2
  • Kahin
  • PostgreSQL
  • MySQL

XML verilerini yükleme ve yükleme. (Evrensel)

Verileri tamamen veya kısmen bilgi güvenliğine yükler ve yükler. Nesne bileşimi bakımından benzer konfigürasyonlar arasında veri aktarmak için kullanılır.

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

Tablolu belgelerdeki verileri dizinlere ve tablolu bölümlere yükler.

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

Konsol isteyin. (Evrensel)

Raporlama ve sorgu oluşturma konusunda büyük yardım sağlar.