internet pencereler Android
Genişletmek

1C Değer tablosunda bir sütun nasıl eklenir. Hangi yöntemler var ve aynı anda birkaç değerde nasıl arama yapılacağı

Selamlar Tüm okuyucular Infostart'a. Bu makale, yönetilen bir uygulama programatik yöntemi formundaki keyfi bir değer tablosunun oluşturulmasına ayrılacaktır.

Görevin özellikleri.

Her zamanki ekinde programlanan herkes genellikle formda keyfi bir değer tablosu alma görevi ile karşılaştı. Keyfi bir değer tablosu altında, tablo, bilinmeyen sütun sayısı ve türü olarak anlaşılmaktadır. Yani, sütunlar 3 ve belki 6 veya belki 8 olabilir. Her zamanki uygulamada, her şey basittir: "Tablo Apartion" öğesini formasyon formunda yerleştirmek ve ardından değer tablosunu aktarmak mümkündü. Bu öğeye bu öğeye değerler. Sonra basit bir ekip:

Elementforms. Ticksed. Concess ();

formda hazır bir değer tablosu alın. Daha kolay olabileceği görülüyor.

Hepsi normal uygulamadaydı. Yönetilen uygulamada her şey değişti. Yani sadece yaratılmaması gereken rastgele bir masa. Artık, formdaki değerlerin tablosunu sert bir şekilde paramparça etmeniz veya programlı olarak oluşturmanız (açıkça, bu, yetkili uygulamanın kendisinin özü). Yapmaya çalışacağız: Yönetilen bir formda keyfi bir değer tablosu oluşturun.

Sorunun çözümü.

Yapmamız gereken ilk şey, tablonun formda nasıl göründüğünü belirlemektir. Asıl şey, işlemdeki formun hiçbir unsurunun gerekli olmamasıdır. Tüm tablo gibi programlı olarak yaratacağız. Yani, tablo açıklanacaktır ve formu açma sırasında veya düğmeyi kullanarak oluşturmak için - bu nasıl gerekli olduğudur.

Formda bir tablo oluşturmak, istek olarak değerler tablosunun açıklaması ile oluşur:
Massiferboabor \u003d yeni dizi; Massifable müşteri. Addly (Tip ("Tablo Apartion")); AçıklamaSarebar \u003d Yeni açıklamalar (masifacivity); Masifler \u003d yeni dizi; Masif. Addly (Yeni Gerekli ("TABLESCRIPT", Açıklamalar, "", "TZN")); Şimdi veri içeren bir değer tablosu oluşturmalıyız. Değer tablosu istekden elde edilirse, her şey siparişten daha azdır. Tablo manuel olarak oluşturulursa, sayı veya tarih içerecek olan hoparlörlerin değeri "Açıklama" ile oluşturulabilir. Alt çizgi, değerlerin tablosundaki sütunların bir tür tipi olması gerekir. Örneğin, kullanıcının bu sütunlardaki verileri etkileşimli olarak dolduracağı varsayılmaktadır, daha sonra değer sütununun değerlerini sadece adıyla ekleyemeyeceğiniz varsayılmaktadır. Akılda tutun - bu çok önemli çünkü Bu türleri formdaki masaya vereceğiz.
Birkaç sütun içeren bir tablo oluşturun:
KD \u003d yeni niteliksel tarihler (parçacıklar. Veria); Massigs \u003d yeni dizi; Kollar. Addly (Tip ("Tarih")); Arama Grafik \u003d Yeni Açıklamalar (Silah, CD); TK \u003d yeni tablolar;
Tk.colonki. Addly ("C", açıklamaları.
Tk.colonks. Addly ("to", açıklamaları.
Tk.colonki. Addly ("tam adı");
TK. Solonks. Addly ("not"); // tam not - sıralarda, yazılım tablosumuzu TK'yı gerekli verilerle dolduracağız. Gerekli değerleri içeren TK tablosunu elde ediyoruz ve oluşturulan form sahnelerine iletmeye hazırız. TK'nin her sütunu için sütun döngüsü

Massiverevizites. Addly (Yeni Gerekli (sütun. Demek istediğim, sütun. Tip, "TOPRIPTS"));
Endcycle;
Değişiklikler (Massivevizites);
TabloPoles Captivity \u003d Elements. Addly ("TZN", Tip ("Tablo Form"));
Tahtepçeler yakalayın. Powded \u003d "Taxcripts";
Tablepoleseboat. Örnek \u003d görüntülenir. Olanaklar;

İşte böyle basit bir kombinasyon ve masamız hazır.

TK'nin her sütunu için sütun döngüsü

NewElent \u003d Elements. Addly (sütun. Demek istediğim, tip ("öneform"), tablo direği);
Yeni element. Vid \u003d vidpolar formu. Güç;
Yeni element. Powdly \u003d "Taksiler." + Sütun.
Yeni element.shirina \u003d 10;
Endcycle;

Koşullu tasarım, gerekirse manuel olarak yazıyoruz, komuta menüsü - manuel olarak. Masa işleyicileri de elleriyle yazılır. Örneğin, bir olay işleyicisi "seçim" olayı eklemek için:

TabloPoles Yakalama. Ayar ("Seçim", "Tznvybor");

Bu olayı işlemek için, prosedür formunda ayrı bir prosedür belirlenir:

& Svalette
Prosedür TZNVSB (TK, Seçilmiş, Alan, Standart İşleme)
// İşlemci komutları son kontrolleri

Lütfen masa işleyicilerinin istemciye tetiklendiğini ve bu nedenle bir derleyici işaretçi komutuna sahip olmasını unutmayın.

& Svalette

Peki ve bu eylemlerden sonra bunu eklemek istediğim son şey, bitmiş tabloyu formun talimatına aktarmayı kesinlikle unutmayız:

RECENTERREREVISITFORMS (TK, "TAXCRIPTS");

İşte bir sonuç olarak sahip olduğumuz şey:


Ancak "seçim" olayın işlenmesi:



Sonuç

Umarım makalede, programcıların 1C'ye, programatik yöntem formunda tablolar oluşturmaya başlayacak.

Bu yazılımın bir değer tablosu oluşturduğu işlemi indirebilirsiniz ve kendi tablolarınızı oluşturmanıza yardımcı olacak yorumlarla yönetilen bir form görüntüler.

İşte bir başlangıç \u200b\u200biçin küçük bir fabrika - bir değer tablosu ile çalışmanın basit örnekleri:

1. Bir değer tablosu oluşturun

Tablolar \u003d yeni tablolar;


2. Sütunlar tablo değerleri oluşturun:

Masalar. Kolonglar. Addly ("İsim");
Tablo İşaretleri. CoolClocks. Addly ("Soyadı");


3. Sütun adlarını kullanarak yeni satırlar ekleyin:


Newstock. Demek istediğim \u003d "vasily";
Newstock.familia \u003d "pupkin";


4. Değer tablosunda bir değer aranır:
İstenilen değeri içeren bir masa dizgisini bulmak gerekir.

Hazırlık \u003d Yemekleme. Gece. Intersy (sofistike);


5. Değer tablosunun belirli sütunlarındaki ilk girişi bulun

Vakfı \u003d tablolonlar. Bağlantılar (skopons, "Tedarikçi, Alıcı");


6. Değerler tablosundaki tüm girişleri bulmanız gerekiyorsa:
Arama yapısını kullanın.

Yapısallık \u003d yapı ("çalışan", gelen);
MasswordsNews \u003d tablo işaretleri. Girişler (yapılar);


Her bir eleman, sütunun adını bir anahtar olarak ve bu sütunda istenen değeri içeren bir arama yapısı oluşturun - bir değer olarak. Yapısal yapıyı parametre olarak Uzak Stroke () yöntemini kullanarak iletiyoruz. Sonuç olarak, masanın sıralarını alırız.
Arama yapısında istenen değeri, örneğin bölümleme sütununda, ardından Uçuş () yönteminin () kullanımının bir sonucu olarak eklerseniz, çalışanların ve sorumluların eşit olduğu tüm satırları elde ederiz. istenen değere.

7. Değerlerin tablosunu rastgele sırayla nasıl sıralanır

Döngünün tablosundan çıkan her akım için
Rapor (Mevcut);
Endcycle;

Aynı kullanımlar dizinleri:

ECKDEX \u003d Tablo Applemes. Number () - 1;
ACDDEX döngüsünde SCH \u003d 0 için
Rapor (MasaSenings [SC].
Endcycle;


8. Değer tablosunun mevcut satırını silme

Masalar. Sil (kaldırıldı);

endeks ile

Tablolar. Sil (0);


9. Değer tablosunun mevcut sütununun çıkarılması

Tablolar. Solonks. Sil (Yalnız Sütun);


endeks ile

Masalar. Solonks. Sil (0);

Değer tablosunun "ortasından" ortasındaki bir dizginin (veya sütununun) çıkarılmasının, "sonra" uzaktan kumandadaki çizgilerin birim indekslerine bir düşüşe yol açacağı akılda tutulmalıdır.

10. Sütunların isimleri değişkenlerde bulunursa, değer tablosunu nasıl doldurursunuz?

Yeni Strok \u003d Tablo Tabloları. Addly ();
Newstroke [namecolonname] \u003d değer;


11. Tablo değerlerinin tüm sütununu istediğiniz değerde nasıl doldurulur?
Tablo değerleri tablosundaki FlageFlage sütunu yanlış bir değerle doldurulmalıdır.

Tablo işaretleri. Doldur (yalanlar, "bayrak defocked");


Doldurma yönteminin değerleri için başvurun (). İlk parametre bir dolum değeri iletiriz. İkinci parametre, doldurulmuş sütunun adıdır.

12. "TABLEPRIGNER" değerinin değerlerinin tablosu, "Kaynak Kod" değerlerinin veri tablosunu nasıl doldurur?

İşlem sırasında yapılan tablo failini henüz yoksa veya önceki konuşmacıların tutulması gerekmezse, kaynağın tam bir kopyası olarak oluşturabilirsiniz.

Tablet toplayıcı \u003d tablo değerli .copy ();


İkinci Seçenek: Tablo Tablete Kollektörü var ve sütun türleri üzerindeki sütunlarını ve kısıtlamalarını kaybettiğim için özür dilerim. Ancak, isimleri kaynak tablonun adları ile çakışan sütunlardaki verileri doldurmanız gerekir.

Eşleşen isimleri olan sütunlar için kısmi veri aktarımı:

Döngünün kaynak kodundan değerli her dize için
Doldurma (Newstroke, String valuetlasts);
Son


Kaynak tablonun her satırı için, alıcı tabloya yeni bir satır eklenir ve değerler, kaynak tablosundaki sütunların isimleri ile çakışan yeni tablonun sütunlarında doldurulur.

Tabloların aynı isimlerde sütunları yoksa, alıcı tablosu boş değerler içeren çok sayıda satır içeren, tablo kaynağında kaç satır vardı.
Bazı adlar hoparlörler kaynak tablosundan veri değeri türüne sahipse, alıcının masa sütununun izin verilen türünün dizisine düşmeyecektir, bu tür alanlarda boş değerler elde ederiz.
Üçüncü davayı düşünün. Aynı isim sütunları durumunda, alıcı tablo sütunu kaynak tablo sütununun tam yazışmasında gerçekleştirilmelidir.

Eşleşen isimleri olan sütunlar için tam kopya verileri

Tek halka \u003d yeni dizi ();

Kaynak kodundan gelen her sütun için. Kesme döngüsü
Sobatovativonka \u003d tablesprigner. CoolClocks. Init (sütun.

Eğer tesadüfi'skolonka<> Undefined sonra

// sütunun özelliklerini alın.
İsim \u003d sütun.
Tip Type \u003d sütun. Türleri;
Başlık \u003d sütun. Eller;
Genişlik \u003d sütun. Willina;

// alıcı tablosundaki sütunları değiştirin.
Dizin \u003d tablette toplayıcı. Solonki.index (tesadüf);

Tablette toplayıcı. CoolClocks. Serbest bırakma (dizin);
Tablette toplayıcı. Solonks. HOLD (Dizin, Ad, Başlık, Başlık, Genişlik);

// çakıştırma sütunlarının bir sonraki adını bir diziye ekleyin.
Tek halkalı. Addly (sütun.

Bitti;

Endcycle;

// Kaynak tablonun satırlarına bakan döngü.
Döngünün kaynak kodundan değerli her dize için

// alıcı tablosuna yeni bir dize ekleyin.
Yeni Strok \u003d TabloPrigner. Addly ();

// dayanaklı hücrelerindeki değerleri doldurun.
Aynı isim döngüsünden her isim toplayıcı için
Yeni strok [namecolonka] \u003d stricted tabels [namecolonname];

Endcycle;

Endcycle;


Özellikleri, kaynak tablo sütununa tam olarak eşleşen yenisi için alıcı tablosundaki sütunun yerini almalıyız.
Bu nedenle, aynı adın tablo alıcısında algılama durumunda, tüm özellikleri yeni bir sütun için değişkenlerde topluyoruz. Daha sonra, eskiden sileriz ve yeni bir sütun oluştururuz. Ardından, kaynak tablonun satırının kırılması bir döngü yapın.
Döngüde, alıcı tablosuna yeni bir satır ekleyin ve çakışan sütunların dizisindeki alimler döngüsünü açın.
Bu yatırım döngüsünün içinde, kaynak masa hücrelerinin alıcı tablosu verilerinin hücrelerini doldururuz.

13. Tip sınırlamaları ile "Tablo Tablosu" tablosuna sütunlar nasıl eklenir?

Bir hoparlör eklediğinizde, adını belirleyebilirsiniz. Add () yönteminin () 'nin ikinci parametresi dokunulmaz. Bu durumda, veri sütununun türü keyfidir.

Veri türünü belirlemeden bir sütun ekleme

// türüne göre sınırlamasız bir sütun ekleyin.
Aptal tablolar. Addly ("nesne");


İkinci parametrenin değerini doldurabilirsiniz. Tür sütunun için izin verilen türün açıklamasına aktarılmalıdır. Açıklamanın kendisi, bir tasarımcı kullanarak bir tasarımcı kullanılarak bir parametre olarak (çoğu zaman, sonra virgül aracılığıyla) veya bir dizi geçerli türden geçerek elde edilebilir.

Veri türü göstergeli bir sütun ekleme

// veri türü sütununda kısıtlamalar:
// "Karşı taraf" referans kitabının sadece unsurları.
Tablo işaretleri. CoolClocks. Addly ("karşı taraf", yeni açıklamalar ("DiziniAds. Prottlements"));


Sütun verilerinin doldurulmasına izin verilen tipler arasında, bir dize var, bitini (uzunluğu) sınırlayabilirsiniz, değişken veya sabit uzunlukta kullanımını belirtin. Tüm bunlar, bir tasarımcı niteleyicilerin yardımıyla bir nesne oluşturarak sağlanır. Daha sonra, bu nesne tasarımcı açıklamasının parametrelerinden biri olarak kullanılacaktır.

Veri sütunlarının türünü netleştirmek için niteleyicileri kullanma

// veri türü verileri için sınırlamaların hazırlanması ve montajı.
Nitelikler Metinler \u003d Yeni nitelikler (20, izin verilen, izin verilir);
Kabuller \u003d yeni açıklamalar ("string", nitelikler);
Tablolar. Solonki. Addly ("NotMerity'ye dayanıklı", kabul edilebilir);


Benzer eylemler, sayı ve tarihin niteleyicileriyle ilgili olarak gerçekleştirilebilir.
Lütfen dikkat: Tiplerin açıklaması, tasarımcı tarafından "sıfırdan" olarak yapılabilir ve türlerin zaten mevcut açıklamaları olarak kullanabilirsiniz.

Veri türü veri sütun değerlerini belirtmek için mevcut tür türlerini kullanma

// önceden kullanılan türlerin açıklamalarının genişletilmesi.
Nitelikler \u003d yeni nitelikler (10, 2, izin verilen belirteç. Olumsuz değil);
Nitelikli tarihler \u003d yeni derhal) (parçalar. Veri);
Genişletilmiş dolgular \u003d yeni açıklamalar (izinler, "numara, tarih", nitelikler, nitelikler);

Tablo işaretleri. CoolClocks. Addly ("Not", genişletilmiş katkı maddeleri);

Değerler Tablosu, verileri tablo görünümünde depolamak için tasarlanmış belirli bir evrensel nesnedir. Tablonun uygulanan nesnelerden gelen kilit farkı, fiziksel veritabanı tablolarına bağlanma eksikliğidir. Değerler tablosu sadece RAM'de bulunur, bu da bir yandan benzersiz fırsatlar verir ve diğer tarafta bazı sınırlamalar getirir. Bununla birlikte, tablo ile etkileşim olasılığı, gerçekten veritabanında bulunan nesnelerle etkileşime göre karşılaştırılabilir.

Tarihsel olarak, 1c'deki değer tablosu, mevcut tabloların sanal bir analogu olan, aynı zamanda - ve kontrolleri elemanının sanal bir amacına sahiptir. Kontrollü uygulamaya geçişle, bu işlevselliğin çoğu modası geçmiştir, aynı zamanda şu anda ayrıca kullanıcı arayüzünün bir elemanı olabilir, ancak bir dizi önemli kısıtlamalar da olabilir.

Bir nesne olarak değerlerin tablosunun yapısı

Değer tablosunun özellikleri, önceden tanımlanmış iki koleksiyonun kombinasyonları ile belirlenir: sütunları ve satırları.

Hoparlör değerleri

Sütun değerleri tablosu - tanımlayıcı özelliği. Bu bir dizi masa sütunlarıdır yapısını belirler. Sütunlar, fiziksel tabloların alanlarını eşleştirir veya Kullanıcı Arabirimi Sütunları Tabular Bölüm veya Belgeler Günlüğüne aşina. Sütun bir iç adı, değerin değeri ve etkileşimli çalışma sırasında tabloda çalışma sırasında görüntülenen başlık olabilir.

Sütunlar nesnelerin bir koleksiyonu olduğundan, sütunları ekleyebilir, silebilir ve düzenleyebilirsiniz.

Değerlerin satırı

Yazılım arayüzünün bakış açısına göre, dize değerler tablosuna yerleştirilmiş ayrı bir koleksiyondur. Fiziksel tabloların kayıtlarına, yani, tablo bölümünün normal çizgileri veya günlük günlüğüne benzerlerdir. Ayrı olarak alınan her bir çizgi, isimleri tablo sütunlarının adlarına karşılık gelen bir dizi adlandırılmış özelliğe sahip bir nesnedir.

Böylece, dize ile etkileşim, diğer nesnelerle etkileşime çok benzer. "Aşağıdakileri doldurma ()" 'in önceden tanımlanmış işlevini kullanarak özelliklerini okuyabilir ve yazabilirsiniz. Çizgiler, değerler tablosunun ana koleksiyonu olduğundan, tablonun tüm satırlarını silmek için, "Clear ()" yöntemi geçerlidir.

Bir değer tablosu oluşturun

Kullanıma hazır değerler tablosunu almanın birçok yolu vardır. Bazılarını düşünün. Her örnek, yorumlarla kodun listeleri olarak verilecektir.

Masa Tasarımcısı Oluşturma

Geliştirici tarafından ihtiyaç duyulan bu tür bir tablo yaratmanın ana yolu, maalesef en fazla zaman alıcı, çünkü tablonun gerekli tüm özelliklerini manuel olarak elle gerektirir.

Demorable \u003d yeni tablolar; // her şeyden önce ilk önce TK // Sonraki, yeni sütunlar için gerekli parametreleri tanımlar ve bunları "adlandırma" sütun adı \u003d "isimlendirme" oluşturma koleksiyonuna ekleriz; Tip Type \u003d Yeni Açıklama ("DizinAds.Nanklatura"); Title \u003d "noMenclature (ürün)"; DemoTablik. Kesikler. Addly (onlara, başlık, başlık); // bir sütun oluşturma "numara" adı \u003d "numara"; Tip başlık \u003d yeni açıklamalar ("numara"); Dalgalanabilir. Kesikler. Addly (İsim, Başlık); // Manipülasyonların verilerinin bir sonucu olarak, yazılan sütunlarla boş bir tablo oluşturduk // İlkel tiplerin daha doğru yazılmasını kullanmanız gerekirse, tasarımcı tasarımcısının "desigraticles" ın gelişmiş sözdizimini kullanmalısınız.

Kopyalama tablosu oluşturma

Elinizde uygun bir yapı ve / veya kompozisyona sahip bir standardı varsa, referans değer tablosunu kopyalayabilir veya boşaltabilirsiniz. Referans başka bir tablo ise, "Kopyalama Standı Tablosu" yöntemini uygulamanız gerekir. Bir tablo parçası veya bir dizi kayıt girişi ile uğraşıyorsanız, "Tablo Tablosu" yöntemini kullanmanız gerekir. Yalnızca bir yapıya ihtiyacınız olursa, "Kopyalama koleksiyonu" yöntemini kullanabilirsiniz.

// Tüm satırların TK standardından kopyalanan seçeneği, ancak kolonalone \u003d "adlandırma, sayı" için sadece belirtilen iki sütunun korunması ile; Demotable \u003d tabletetalon .copy (, sütunlu); // Önceden Seçilmiş Satırların TK standardından kopyalanan seçenek, stringalone \u003d to-to-obstrüzyonistalkyeetalone () tarafından seçilen iki tane belirtilen iki sütununu korurken; Sütunalon \u003d "Adlandırma, Numara"; Demorable \u003d TableteTalon .Copy (Rowetal, Solunumel); // TK-Strelna satırlarından belirtilen filtreden kopyalanan seçeneği, bir sütun "adlandırma" // bir sütunu kaydederken, sütundaki değerin 0'a eşit olduğu yerlerde, yalnızca çözümlerin isimlendirilmesinin sütununu seçecektir. elde edilen tabloya ("miktar" 0) içine düşmek; Sütunaltalon \u003d "isimlendirme"; Demorable \u003d TableteTalon .Copy (Rowetal, Solunumel); // tablonun tam kopyalanmasıyla ve bir satırın sıfır miktarının alan değeri ile bir sonraki çıkarılması sıfırdır ve karşılıkın tüm sütununun "Numarasının" çıkarılması \u003d yeni yapı ("numara", 0) ; Sütunaltalon \u003d "isimlendirme"; Demorable \u003d TableteTalon .Copy (Rowetal, Solunumel); Strifices \u003d dematör. Gece (0, "miktar"); Dematör. Sil (strifices); DemoTablik. Solonki.deel ("Miktar"); // Benzer seçenekler ve değişiklikleri tablo parçalarına ve kayıt kümelerine uygulanabilir.

Bir masa sorgulaması oluşturma

Veritabanında bir referans tablosu varsa, istediğiniz yapıya sahip bir tablo oluşturmak için sorguyu kullanabilirsiniz.

// birikimin örnek yapısına göre boş bir tablonun oluşturulmasıyla // Örnek örneği // Bu şekilde doldurulmuş masa isteğini alabilmenizi tahmin etmek zor değildir \u003d yeni bir sorgu ("İlk 0'ı seçin * Kayıt. Torna istasyonu "); Sonuç kaynağı \u003d sorgu. Dolgu (); Demorable \u003d sonuç işe alımı. İndir (); // Örnek Boş bir tablonun oluşturulmasıyla, alanların açıkça belirtilen türleri ve adları sorgusu \u003d yeni bir istek; Request.Text \u003d "İlk 0'ı seçin | Anlamı (Referans Kitabı. İkame. Güç Rulosu) Bir isimlendirme olarak, | Express (0, sayı (15, 3)) bir miktar olarak"; Sonuç kaynağı \u003d sorgu. Dolgu (); Demorable \u003d sonuç işe alımı. İndir (); // ÖNEMLİ! Sorgudan elde edilen Hoparlör Değerleri türlerinde her zaman null // türünde, sorgu tarafından oluşturulan TK'ların her zaman kompozit sütun türlerine sahip olduğunu unutmamalısınız.

Sonuç

Bu küçük makalede, uygulamayı anlamak ve başlatmak için yeterli bir değer tablosu oluşturmak için temel özellikleri ve pratik teknikleri gözden geçirdik. Değerlerin kendisinin nesnesinin kendisi, yeteneklerinin ayrıntılı bir açıklamasının, alımlar ve çalışma yöntemleri hakkında ayrı bir makale yazmayı gerektirdiğini çok etkiledir.

Para ve malları dikkate almak için çeşitli masalar, iş dünyasında yaygın olarak kullanılmaktadır. Hemen hemen her belge bir tablodur.

Tablo, malları depodan sevk edilecek şekilde listeler. Başka bir masada - bu malları ödemek zorundalar.

Bu nedenle, 1C belirgin tablolarla çalışmayı işgal eder.

1C'deki tablolar da "tablo parçaları" olarak da adlandırılır. Onlar referans kitapları, belgeler ve diğerleri var.

Yürütülmesinin bir sonucu olarak talep bir tablo döndürür, hangi iki farklı şekilde elde edilmesinin mümkün olduğu.

Birincisi daha hızlı - örnekleme, ondan yalnızca sırayla satır edinme. İkincisi, sorgunun sonucunu değer tablosunda ve daha fazla keyfi erişimin sonucunu boşaltıyor.

// Seçenek 1 - Sorgunun sonuçlarına sıralı erişim

// tablo almak
Örnekleme \u003d sorgu. Doldur (). () Seç ();
// Sırayla sorgu sonucunun tüm satırlarını dolaşıyoruz.
Örnek. Sonraki () döngüsü
Rapor (örnek. İsim);
Endcycle;

// Seçenek 2 - Değer tablosunda boşaltma
İstek \u003d yeni sorgu ("Adını dizinden adını seçin. Namenclature");
// tablo almak
Tablo \u003d Sorgu. Doldur (). Unload ().
// O zaman tüm çizgileri de dolaşabiliriz
Tablo döngüsünden her satır için
Rapor (String. İsim);
Endcycle;
// veya keyfi olarak satırlara erişim
Line \u003d tablo. Init ("Kürek", "İsim");

Önemli bir özellik, sorgu sonucundan elde edilen tabloda, tüm sütunlar kesinlikle yazılacaktır. Bu, İsim alanını Dizin Adlandırma Düzenlemesi'nden talep ederek, n \u200b\u200bbir N karakterden daha fazla olmayan bir uzunluğa sahip bir dize tipi sütunu alacaksınız.

Şeklinde Tablo (Kalın Müşteri)

Kullanıcı, forma yerleştirildiğinde bir tablo ile çalışır.

Formlarla çalışma temel ilkeleri, derste derste tartıştık.

Öyleyse, forma bir masa yerleştirin. Bunu yapmak için, tabloyu kontrol panelinden sürükleyebilirsiniz. Benzer şekilde, menüdeki form / ekleme kontrolünü seçebilirsiniz.

Veriler yapılandırmada depolanabilir - o zaman, düzenleme şeklinizi düzenleyen yapılandırma nesnesinin mevcut bir (daha önce eklenmiş) bir tablo parçası seçmeniz gerekir.

Veri özelliğindeki "..." düğmesine basın. Tablo bölümlerinin bir listesini görmek için şube nesnesini ortaya çıkarmanız gerekir.

Tablo'yı seçerken 1C'nin kendisi, formdaki tabloda sütunlar ekler. Kullanıcı tarafından böyle bir tabloda girilen satırlar, referans / belge ile birlikte otomatik olarak kaydedilir.

Aynı özellikte, keyfi bir isim girebilir ve tablonun türünü seçin.

Bu, keyfi bir değerlerin seçili olduğu anlamına gelir. Otomatik olarak sütunları eklemeyecek, otomatik olarak kaydedilmeyecek, ancak bununla bir şey yapmak mümkündür.

Tabloya sağ tıklayarak bir sütun ekleyebilirsiniz. Sütun özelliklerinde, adını (1C koduna başvurmak için), formdaki sütun başlığını, tablo bölümünün ayrıntılarıyla bağlantı olan (son - keyfi bir tablo değilse) bağlantısını belirleyebilirsiniz. .

Tablonun formundaki özelliklerinde, kullanıcıya satır eklenip eklenmeyeceğini belirleyebilirsiniz. Daha gelişmiş bir form - sadece bir kene. Bu özellikler, bilgi görüntülemek için tasarlanmış, ancak düzenlemeyen masaları düzenlemek için kullanışlıdır.

Tabloyu yönetmek için, komut panelini görüntülemeniz gerekir. Menü öğesi Form / Ekle Kontrol / Komuta panelini seçin.

Komut paneli özelliklerinde, paneldeki düğmelerin otomatik olarak göründüğünü bir kene otomatik olarak seçin.

Şeklindeki tablo (ince / yönetilen müşteri)

Yönetilen formda belirtilen eylemler biraz farklı görünüyor. Tablo parçasının şekline yerleştirmeniz gerekiyorsa - nesnenin dalını açın ve soldaki tablo parçalarından birini sürükleyin. Ve tüm!

Değer tablosunu yerleştirmeniz gerekirse, yeni bir form sahne ekleyin ve özelliklerinde. Türünü belirtin - Değer tablosu.

Hoparlör eklemek için, formun bu ayrıntılarındaki sağ fare düğmesindeki menüyü kullanın, seçenek bir propum sütunu ekler.

Bundan sonra, tabloyu sola sürükleyin.

Tablonun görünmesi için komut paneli için, tablo özelliklerinde, Kullanım bölümündeki değerleri seçin - komut paneli konumu.

Excel'deki boşaltma tablosu

Formda bulunan herhangi bir tablo 1c, Excel'e basılabilir veya boşaltılabilir.

Bunu yapmak için, tabloya sağ tıklayın ve Ekran Listesi'ni seçin.

Kontrollü (ince) istemciye göre, tüm işlemler / liste menü öğesi kullanılarak benzer eylemler yapılabilir.

1C değerler tablosunda arama yapın

Hangi yöntemler var ve çeşitli değerlerde eşzamanlı olarak nasıl arama yapılır.

Değerler tablosunda aramak için iki özel yöntem vardır:

1. Bulun

Tvgorizont \u003d referans kitapları. Nomelaclature. İntepponation ("TV Horizon");
Sonuçlar \u003d tznenenclature. Inite (TV, TV);
// Ayrıca, hangi hoparlörlerin aramayı hızlandırmak için arama yapacağını belirleyebiliriz.
Foundation \u003d tznomenclature. İnite (TV, "isimlendirme");

Bu yöntem, ilk bulunan çizgiyi istenen değerle döndürür veya bulamazsa tanımsız. Bu nedenle, benzersiz değerleri aramak için kullanmak uygundur, çünkü Aksi takdirde, aşağıdakileri bulurken tablodan silmek zorunda kalacaksınız.

Acı çekmemeniz için, uygun satır dizisini bulmanızı sağlayan aşağıdaki yöntem vardır:

2. Uçuş


Yapısalboration. HOLD ("isimlendirme", TVGorizont); // İlk önce, nerede aranacağı ve sonra aranacağınız sütunu belirtin.

Bu yöntem her zaman bir dizi döndürür, ancak hiçbir şey bulunamazsa boş olabilir. Ve bu yöntem ayrıca, önceki gibi, değerlerin değerlerinin satırlarını ve değerlerin kendilerini ayrı bir dizide değil. Bu nedenle, Dizi satırındaki değerleri değiştirme veya Bulunan Çizgi'deki önceki yöntemde, işlenen değerler tablosundaki değeri değiştirirsiniz.

Bu yöntem daha iyi olursa, aynı anda değer tablosunun birkaç sütununda bir kerede arama yapabilmesidir:


Yapılar \u003d yeni yapı;
Yapısalboration. HOLD ("isimlendirme", TVGorizont);
Yapısal teknesi. HOLD ("miktar", 10);
FoundationMassiVests \u003d tznenenclature. Girişler (yapılar);

Görülebileceği gibi tek eksi, "eşit" hariç başka karşılaştırmalar kullanılamaz.