Belgelerin tablo kısmından veri nasıl alınır? 1c belgenin tablolu kısmına erişim

1C'deki birçok nesne için tablo parçaları mevcuttur:

  • Dizinler
  • Dokümantasyon
  • Raporlar ve işleme
  • Hesap planları
  • Karakteristik tip planları
  • Hesaplama türü planları
  • İş süreçleri ve görevler

Tablolu parçalar, bir nesneye ait sınırsız miktarda yapılandırılmış bilgiyi saklamanıza olanak tanır.

Tablo parçalarıyla çalışmak için bazı tekniklere bakalım.

Tablo kısmı nasıl atlanır

Tablo bölümünü geçmek için bir döngü kullanabilirsiniz Her biri için

Döngünün Tablo Kısmındaki Her Satır için

Report(String.TabularPart niteliği) ;

EndCycle;

Değişkenin her yinelemesinde Astar tablo bölümünün bir sonraki satırı iletilir. Satır detaylarının değerleri ifade ile elde edilebilir. Satır.ÖznitelikAdı.

Tablo bölümünün seçilen satırları nasıl alınır ve atlanır

Nesnenin tablo kısmındaki bilgileri görüntülemek için bir form öğesi kullanın Tablo alanı. Bir tablo alanında birden çok satırı seçebilme özelliğini etkinleştirmek için değeri ayarlamanız gerekir Çoklu onun mülkünde Seçim modu.

Seçilen satırların listesini almak için aşağıdaki kodu kullanın:

Seçilen satırlar arasında yineleme yapmak için bir döngü kullanılır. Her biri için:

SelectedRows = FormElements. TabloAlanAdı. Seçilen Satırlar;

Seçilen Satırlar Döngüsündeki her Satır için

//döngü içeriği

EndCycle;

Tablosal bir parçanın (tablo alanı) satırlarının programlı olarak seçilmesi ve seçimlerinin kaldırılması

Bir tablo alanının satırlarının seçimini programlı olarak kaldırmak için:

Form Öğeleri. TabloAlanAdı. SelectedRows. Temizlemek() ;

Bir tablo alanının tüm satırlarını programlı olarak seçmek için:

TabularPart Döngüsünden her CurrentRow için
Form Öğeleri. TabloAlanAdı. Seçilen Hatlar. Ekle(GeçerliSatır) ;
EndCycle;

Tablo kısmı nasıl temizlenir?

TabularPart. Temizlemek() ;

Bir tablo bölümünün geçerli satırı nasıl alınır?

Geçerli satır, kullanıcının sahip olduğu dönemdir. şu an imleç bulunur. Bunu elde etmek için formdaki tablo kısmıyla ilişkili kontrol öğesine erişmeniz gerekir.

Normal formlar için kod şöyle görünecektir:

Form Öğeleri. TabloAlanAdı. Güncel veri;

Yönetilen formlar için:

Elementler. TabloAlanAdı. Güncel veri;

Tablo bölümüne yeni bir satır nasıl eklenir

Tablo bölümünün sonuna yeni bir satır ekleme:

NewRow = TabloPart. Eklemek() ;

Tablo bölümünün herhangi bir yerine yeni bir satır eklemek (sonraki satırlar kaydırılacaktır):

NewRow = TabloPart. Ekle(Dizin)
//Index - eklenen satırın numarası. Satır numaralandırma sıfırdan başlar.

Yeni hat. Nesneler1 = "Değer";

Bir tablo satırının ayrıntıları programlı olarak nasıl doldurulur?

Kullanıcı tarafından eklenen bir tablo bölümü satırının ayrıntılarını programlı olarak doldurmanız gerekiyorsa tablo bölümü olay işleyicisini kullanmanız gerekir. Düzenlemeye Başlarken.

İşleyici tarafından oluşturulan prosedürün üç parametresi vardır:

  • Öğe- bir kontrol elemanı içerir Tablo Alanı.
  • Yeni hat- boolean. Değer içerir Doğru, yeni bir tablo satırı eklenirse ve Yalan, Kullanıcı zaten mevcut bir satırı düzenlemeye başladıysa.
  • Kopyala- boolean. Değer içerir Doğru, eğer kullanıcı satırı kopyalarsa ve Yalan diğer durumlarda.

Bir örneğe bakalım. Diyelim ki tablo bölümünün detaylarını doldurmamız gerekiyor HesapHesap Yeni bir satır eklenmesi durumunda. Mevcut bir satırı düzenlerken muhasebe hesabını değiştirmenize gerek yoktur.

Prosedür TabularPartAtStartEditing(Element, NewRow, Copy)

//Kullanıcı mevcut bir satırı düzenlerse hiçbir şey yapmayız
NewRow DEĞİLSE O zaman
Geri dönmek;
EndIf ;

//Satır yeniyse muhasebe hesabını ayarlayın
TechString = Öğe. Güncel veri; //Tablo bölümünün geçerli satırını al
TechString. Muhasebe = Hesap Planları. Kendi kendini destekleyen. Gerekli Hesap;
Prosedürün Sonu

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.

Öyleyse 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 mevcut olanı seçmeniz gerekir (önceden eklenmiş) tablo kısmı formunu düzenlediğiniz yapılandırma nesnesi.

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ının böyle bir tabloya girdiği 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 ekleyemeyeceğini/silebileceğini belirtebilirsiniz. Daha gelişmiş bir form Salt Görüntüle onay kutusudur. Bu özellikler, bilgileri görüntülemek için tasarlanmış ancak düzenleme amaçlı 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)

Açık yönetilebilir bir biçimde Bu adımlar biraz farklı görünüyor. 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 sağ tıklayın boş alan Tabloda ve Liste'yi seçin.

Yönetilen (ince) bir istemcide, Tüm işlemler/Listeyi görüntüle menü öğesi kullanılarak benzer işlemler gerçekleştirilebilir.

Ana Sayfa Yeni başlayan geliştiriciler için Programlamayı öğrenme

Belgelerin tablo kısmından veri nasıl alınır?

Örneğin, tablo bölümünde belirtilen tüm öğeleri almanız gereken bir durumu düşünün. Mal belgeler Mal ve Hizmet Satışı.

Bunu yapmak için aşağıdaki metinle bir istek kullanabilirsiniz:

ÇEŞİTLİ Mal ve Hizmet Satışlarını SEÇİN Belgeden İsimlendirme AS İsimlendirme Mal ve Hizmet Satışları Mallar AS Mal ve Hizmet Satışı Mallar

Kaynak olarak belgelerin tablo kısmını belirtiyoruz - tablo Belge.Mal ve Hizmet Satışı.Mallar. Çıkış alanını alan olarak ilan ediyoruz İsimlendirme kaynak tablonun bir parçasıdır. Ayrıca aynı ürün kalemi doğal olarak belgelerde birden fazla kez bulunabileceğinden, ÇEŞİTLİ sorgu çıktı tablosunda yalnızca farklı satırları almak için.

Örneğin, bir işlem oluşturalım Ürün listesi, belgenin seçildiği yer Mal ve Hizmet Satışı ve ilgili düğmeye tıklandığında, bu belgenin tablo bölümünde yer alan terminolojinin tekrarlanmayan öğelerinin bir listesi mesaj penceresinde görüntülenir.

Öğelerin seçimini yalnızca belirli bir belgenin tablo bölümündeki öğelerle sınırlamak için parametreyi kullanırız Bağlantı talepteki durumda ( NEREDE...):

ÇEŞİTLİ Mal ve Hizmet Satışı SEÇİN. İsimlendirme OLARAK İsimlendirme Belgeden. Mal ve Hizmet Satışı. Mallar NASIL Mal ve Hizmet Satışı Mallar NEREDE Mal ve Hizmet Mal Satışı. Bağlantı = &Link




Tepe