internet pencereler Android
Genişletmek

1C 8.2 değerler tablosundaki seçim. Hangi yöntemler var ve aynı anda birkaç değerde nasıl arama yapılacağı

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 8.3 platformundaki değerler tablosu (8.2), yazılımın algoritmalarını uygulamak için geliştirildiğinde, geliştiricinin kullanabileceği değerlerin evrensel bir koleksiyonudur. Aslında, 1C değerler tablosu, sütunlara ve sütunlara sahip dinamik bir değerlerdir.

1C değerlerin diğer evrensel koleksiyonları hakkında makaleler

1C'de Programlamayı Keşfedin "1C'de 11 adımda" Program "Programı"

  1. Kitap, yeni başlayanlar için anlaşılır ve basit bir dille yazılmıştır.
  2. 1C'nin mimarisini anlamayı öğrenin;
  3. 1C dilinde kod yazacağız;
  4. Ana programlama tekniklerini aydınlatır;
  5. Görev kullanılarak elde edilen bilgileri güvence altına almak;

Hem yeni başlayan geliştiriciler hem de deneyimli programcılar için, yönetilen bir uygulamada mükemmel geliştirme ödeneği.

  1. Çok uygun ve anlaşılabilir bir sunum dili
  2. Kitap PDF formatında bir e-postaya gönderilir. Herhangi bir cihazda açılabilir!
  3. Yönetilen başvurunun ideolojisini 1C anlayacaksınız.
  4. Yönetilen bir uygulama geliştirmeyi öğrenin;
  5. Yönetilen Formlar 1C'yi geliştirmeyi öğrenin;
  6. Kontrollü formların ana ve gerekli unsurlarıyla çalışabilirsiniz.
  7. Yönetilen bir uygulamanın altında programlama anlaşılabilir hale gelecektir

% 15 indirim için promo kodu - 48pvxheyu.


Bu dersin bir sorun çözmesini sağlamak için yardım ederseniz, onu sevdim ya da kullanışlı, o zaman projemi destekleyebilir, herhangi bir miktarda dinleyebilirsiniz:

el ile ödeme yapabilirsiniz:

Yandex.Money - 410012882996101
Web Para - R955262494655

Gruplarıma katıl.

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 ("numara"); // 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.

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.

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.