Ev / pencerelere genel bakış / Konsol 1s 8.3 yönetilen formları isteyin. Sorgu Konsolu ile Çalışma

Konsol 1s 8.3 yönetilen formları isteyin. Sorgu Konsolu ile Çalışma

Sorgu Konsolu, bazı karmaşık verilerin hatalarını ayıklamanız veya belirli verilerin bir seçimini hızlı bir şekilde almanız gerektiğinde kullanmak için çok uygundur.

İnternette birçok farklı konsol bulabilirsiniz. Normal ve yönetilen formlar için bunlar genellikle tamamen farklı konsollardır. Buna göre her iki durumda da çalışacak olan evrensel sorgu konsolu 1C 8.3 ve 8.2'yi indirebilirsiniz. Konsolun açık olduğunu unutmayın. yönetilen arayüz sadece kalın bir istemcide açacaksınız.

Sorgu Konsolu ile Çalışma

1C programında, sorgu konsolu herhangi bir harici işlemle aynı şekilde açılır: "Dosya" - "Aç" menüsü veya "Ctrl + O" kısayol tuşu kombinasyonunu kullanarak. Sık kullanımla, harici işlemeye eklenebilir. bilgi tabanı.

İsteklerinizin listesi, istek konsolunun sol tarafında sunulur. Bu, yalnızca bir isteği değil, aynı anda birkaç isteği saklamanıza olanak tanır. Sorgu ağacı, onları gruplandırmak için çok uygun olan hiyerarşik bir yapıya sahiptir.

"Ekle" butonuna tıklayarak, kendinize bir isim vererek yeni bir istek ekleyebilirsiniz. Ayrıca, yerleşik işlevsellik, kopyalama, listede yukarı veya aşağı hareket etme ve çok daha fazlasını içeren sorgular oluşturmanıza olanak tanır.

Talep metninin kendisi, işleme formunun sağ tarafında görüntülenir. Manuel olarak veya sorgu oluşturucu kullanılarak yazılabilir. Sorgu oluşturucu yalnızca kalın istemcide çalışır.

Yapıcı düğmesinin sağında "Sorgu Operatörleri Ekle" düğmesi bulunur. Hemen bir koşul, gruplama, sıralama ve toplamlar içeren boş bir sorgu yapısı ekleyecektir.

Sağda, 1C için çözümler geliştirirken bu sorguyu kullanırsanız yardımcı olacak çok kullanışlı düğmeler vardır.

Düğme, yazdığınız sorguyu metne dönüştürmenizi sağlar. Bizim durumumuzda, aşağıdaki resim gibi görünecek.

İstekleri bir dosyaya kaydedebilir veya ondan yükleyebilirsiniz. Bu, gelecekteki kullanım için çok uygundur.

Sorguyu doğrudan çalıştırmadan önce, giriş parametrelerini (varsa) ayarlamanız ve ardından "Sorguyu çalıştır" düğmesine tıklamanız gerekir. Ayrıca burada istekleri tamamen değil, herhangi bir paketi ayrı ayrı yürütmek mümkündür.

Görünüm modu, sorgu sonucunun nasıl görüntüleneceğini belirler: bir liste, hiyerarşik bir liste veya bir ağaç.

Yürütmenin sonucu, istek konsolunun en altında görüntülenecektir. Ayrıca alınan satır sayısını ve yürütme süresini de görüntüler. Gerekirse, sorgu sonucunun satırlarını taşıyabilirsiniz.

Çok sık olarak, kullanıcılardan bazı verileri seçmeleri ve Excel'e kaydetmeleri istenir. Buna da ihtiyacınız olabilir. Görevi tamamlamak için "Diğer" menüsünde "Listeyi görüntüle" öğesini seçmeniz yeterlidir. Program sizden gerekli sütunları işaretlemenizi isteyecektir.

Çıktı için sütun listesini ayarlamaya ek olarak, burada belirli satırları da belirtebilirsiniz. Bu, sorgunun kendisindeki satırları vurgulayarak yapılır. Ayrıca, sütun seçim formunda bayrağı “Yalnızca seçili” ayarında ayarlamak yeterlidir.

Örneğimizde, tüm sorgu sonuç verilerini görüntüledik. Bunları, açılan elektronik tablo belgesinden kopyalayarak veya Ctrl+O kısayol tuşu kombinasyonunu kullanarak harici bir dosyaya kaydedebilirsiniz. Formatları kaydetmek için birçok seçenek var, biz "*. xlsx".

Gördüğünüz gibi, sorgu konsolunda çalışmak çok kullanışlı ve kullanışlı, bu yüzden onu indirip uygulamaya koymanızı şiddetle tavsiye ediyoruz.

Sorgu Konsolu 1'ler- kurumsal mod 1'lerde sorgular oluşturmak ve hata ayıklamak için uygun bir araç. Sorgu Konsolunu Kullanma 1s veri tabanına istek çalıştırabilir ve isteğin sonucunu doğrudan 1s işletmede ekrandan görebilirsiniz. Bu yazıda, biri 1s 8.2 (normal formlar) ve ikincisi hem normal hem de yönetilen formlarda 1s 8.3 çalışabilen iki konsol ele alacağız.

Sorgu konsolu 1'leri indirin

İşleme ile çalışmaya başlamak için önce 1s sorgu konsolunu indir, aşağıda indirme linkleri vereceğiz, ancak şimdilik 1s request konsolunun aşağıdaki tiplerden birine sınıflandırılabileceğini ve sınıflandırılabileceğini not edelim:

  1. Düzenli formlar için (1s 8.2)
  2. Yönetilen formlar için (1s 8.3)
  3. Karışık (hem 1s 8.2 hem de 1s 8.3'te çalışır)

Yazımızda iki konsolu ele alacağız, ilki sadece 1s 8.2 (normal formlar) üzerinde çalışır ve ikincisi 1s 8.3 üzerinde çalışır ( yönetilen formlar). Birbirlerinden biraz farklılar, farklılıkları daha sonra konuşacağız, ancak şimdilik, yönetilen uygulamalarda konsolun yalnızca "Kalın İstemci" başlatma modunda düzgün çalışacağını not ediyoruz.

Normal bir uygulama için 1s istek konsolunu indirin 1s 8.2

Aşağıda işlemin bir ekran görüntüsü bulunmaktadır, normal bir 1s 8.2 uygulaması için 1s istek konsolunu indirebilirsiniz.

Yönetilen uygulama 1s 8.3 için 1s istek konsolunu indirin

Ve bu ikinci konsol, ekran görüntüsünü aşağıdaki ekranda da görebilirsiniz, bağlantıyı kullanarak 1s istek konsolunu yönetilen uygulama 1s 8.3 için indirebilirsiniz.

Normal bir uygulama için 1s istek konsolunun çalışma ilkelerinin ve ana işlevselliğinin açıklaması 1s 8.2


Bu normal bir uygulama için sorgu konsolu 1s 8.2 kullanımı kolaydır ve kullanıcıdan herhangi bir özel bilgi gerektirmez. Ekran görüntüsünde bir sorgu yazmak için bir test alanı görebilirsiniz, içine hem manuel olarak hem de yapıcıyı kullanarak bir sorgu yazabilirsiniz. Şekildeki 1 rakamının altında "Parametreler" butonunu görüyorsunuz, üzerine tıklayarak talebe parametreleri değiştirmek için bir form göreceğiz, daha sonra geri döneceğiz. 2 numara altında, çalışma alanını ve isteğin kendisiyle birlikte eylem çubuğunu görüyorsunuz, burada istek ekleyebilir, silebilir ve ayrıca diskte ayrı bir dosyaya kaydedebiliriz. 3 numara altında sorgu konsolu 1s 8.2 sonuç çıktı ayarı vardır, tablo şeklinde veya hiyerarşik olarak ağaç şeklinde görüntülenebilir, sorgu sonucunda hiyerarşiyi görmemiz gerektiğinde ikinci seçenek kullanılır. 4. madde bize sorguda geçici tablolar olup olmadığını gösterir, varsa onları ayıklayabilir ve geçici bir tabloya yerleştirilen yürütmenin sonucunu görebiliriz.

Şimdi bazı bireysel noktalara bakalım sorgu konsolu 1s.

Yukarıda, isteğe bağlı parametrelerin değiştirildiği bir pencere görüyorsunuz. "Talepten" butonuna tıklayarak, istekte belirtilen parametreleri alacağız, şimdi sadece istenen değerleri ayarlayıp formu kapatmamız gerekiyor. Bu arada, bir isteği düzenliyorsanız ve forma önceden eklediğiniz parametreler artık kullanılmıyorsa, gri renkle vurgulanacaktır. Bu tür birçok parametre varsa, "Kullanılmayanları sil" düğmesi kullanılarak pencereden kaldırılabilirler.

Sorgunuzda geçici tablolar varsa, bunları ayrı alt sorgularda ayıklayabilir ve bu alt sorguyu yürütmenin sonucunu görebilirsiniz, 1c sorgu konsolunun ana penceresinde geçici tablolar olduğunu görürsek, ardından "Geçici" yi tıklayın. tablolar" düğmesi (ana konsol penceresindeki 4. nokta). Tıkladıktan sonra yukarıda gördüğümüz pencere gelecek, sorgunun tüm geçici tablolarını gösterecek, "Debug"a tıkladığımızda aşağıdaki pencereyi göreceğiz.

Yönetilen bir uygulama 1s 8.3 için 1s istek konsolunun işlevselliğinin kısa açıklaması

Ana fonksiyonlarla tanıştık sorgu konsolu 1s 8.2, şimdi düşünme zamanı sorgu konsolu 1s 8.3. Bu işlemeönceki gibi ayrıntılı olarak ele almayacağız, ancak ana parametreleri ve ayarları kısaca gözden geçireceğiz.

Ve hızlı bilgi. Bu yazımda Query Console'un nasıl kullanılacağını anlatmaya ve Query Console'u indirmek için link vermeye çalışacağım.

Bu araca daha yakından bakalım.

İstek konsolu 1C'yi indirin

Her şeyden önce, sorgu konsoluna başlamak için onu bir yerden indirmeniz gerekir. İşleme genellikle iki türe ayrılır - yönetilen formlar ve düzenli (veya bazen 8.1 ve 8.2 / 8.3 olarak adlandırılırlar).

Bu iki görünümü tek bir işlemde birleştirmeye çalıştım - istenen çalışma modunda istenen form açılıyor ( yönetilen modda, konsol yalnızca kalın modda çalışır).

Yönetilen formlar ve normal formlar için 1C 8.3 (8.2) istek konsolunu şu bağlantıdan indirebilirsiniz:.

1C sorgu konsolunun açıklaması

1C sisteminde sorguların nasıl yazıldığı ile ilgileniyorsanız, makaleyi okumanızı tavsiye ederim.

Ana işlem panelinin bir açıklamasıyla sorgu konsolu değerlendirmemize başlayalım:

Sorgu konsolunun başlığında, son sorgunun yürütme süresini milisaniyelik bir doğrulukla görebilirsiniz, bu da farklı tasarımları performans açısından karşılaştırmanıza olanak tanır.

Komut çubuğundaki ilk düğme grubu, mevcut sorguları harici bir dosyaya kaydetmekten sorumludur. Bu çok kullanışlıdır, her zaman karmaşık bir sorgu yazmaya geri dönebilirsiniz. Veya örneğin, belirli yapıların tipik örneklerinin bir listesini saklayın.

Sol tarafta bulunan İstek alanında yeni istekler oluşturup bunları bir ağaç yapısında kaydedebilirsiniz. İkinci düğme grubu, yalnızca istek listesini yönetmekten sorumludur. Bununla, bir istek oluşturabilir, kopyalayabilir, silebilir, taşıyabilirsiniz.

267 1C video derslerini ücretsiz alın:

  • isteği çalıştır- basit yürütme ve sonuç alma;
  • Paketi yürüt- içindeki tüm ara istekleri görüntülemenizi sağlar
  • Geçici tabloları görüntüleme- Tabloda geçici sorguların döndürdüğü sonucu görmenizi sağlar.

İstek parametreleri:

İstek için geçerli parametreleri ayarlamanıza izin verir.

Sorgu parametreleri penceresinde aşağıdakiler ilginçtir:

  • Buton istekten al geliştiricinin rahatlığı için istekteki tüm parametreleri otomatik olarak bulur.
  • bayrak Tüm istekler için tek parametreler- kurulduğunda, işlenmesi, genel istek listesinde istekten isteğe geçerken parametreleri temizlemez.

Bir parametreyi değerler listesi olarak ayarlayınçok basit, bir parametre değeri seçerken, değeri temizle düğmesine (çapraz) tıklamanız yeterlidir, sistem sizden "Değer listesi" seçmeniz gereken veri türünü seçmenizi ister:

Ayrıca üst panelde sorgu konsolu ayarlarını çağırmak için bir düğme vardır:

Sorgu otomatik kaydetme seçeneklerini ve sorgu yürütme seçeneklerini belirtebileceğiniz yer.

Konsol istek alanına istek metni girilir. Bu, basit bir sorgu test seti ile veya özel bir araç olan sorgu oluşturucuyu çağırarak yapılabilir.

Giriş alanına tıklandığında bağlam menüsünden (sağ fare düğmesi) çağrılır:

Ayrıca bu menüde kullanışlı özellikler, isteğe kısa çizgi karakterleri ("|") eklemek veya eklemek veya istek kodunu bu uygun biçimde almak gibi:

İstek = Yeni İstek; Rica etmek. Metin = " |SEÇ | Para Birimleri.Referans |KİMDEN | El Kitabı. Para Birimleri OLARAK Para Birimleri"; İstekSonucu = İstek. Uygulamak() ;

Sorgu konsolunun alt alanı, bu işlemenin oluşturulduğu sorgu sonuç alanını görüntüler:

Ayrıca sorgu konsolu, listeye ek olarak, toplamları içeren sorgular için verileri bir ağaç biçiminde görüntüleyebilir.

Öyleyse basit bir tane ile başlayalım: yapılandırıcıda Yeni bir İşlem oluşturun, istediğiniz gibi Sorgu Konsolu veya Sorgu Oluşturucu olarak adlandırın.

İhtiyacımız olan gelecekteki Parametreler için "Veri" ye hemen bir tablo ekleyebiliriz, böylece Konsolumuzda en ilkel isteği değil, parametreler ve bağlantılarla, örneğin işimiz için periyodik kayıtlara bir istek oluşturacağız. , ancak burada Parameter=&Date hiçbir yerde belirtilmeden.

Parametreler tablomuzu oluşturmak için, "Tabular bölümünde" "Data" sekmesinde yeni bir tablo ekleyin, buna Sorgu Parametreleri diyelim, burada bu tablonun sütunlarını ekleyeceğiz: 1) ParameterName, string type = 25 karakter; ParameterValue, işte bir bileşik veri türü, bkz. şek:

Bu nedenle, resimde gösterildiği gibi - ParameterValue sütunu için bileşik türü seçin: açılan türler menüsünde "Bileşik tür" onay kutusunu işaretleyin, sayıyı, dizeyi (20 karakter belirtin), tarihi, boole değerini seçin ve en düşük onay işareti - AnyReference - ayrıca, talebimizin Parametrelerini belirtirken, örneğin dizinler veya belgeler gibi yapılandırmamızın herhangi bir nesnesine başvurabileceğimiz anlamına gelir.

Şimdi gelecekteki Sorgu Konsolumuzun formunu oluşturmamız gerekiyor. İşleme sırasında "Formlar" sekmesine gidin ve yeni bir tane ekleyin.Bu forma giriyoruz ve zaten yaratıcılık için sınırsız bir alan var - yeni oluşturduğunuz iki özelliği ve parametrelerle plakayı istediğiniz gibi düzenleyebilirsiniz! Bunun için Grup veya Sayfalı Sayfa gibi standart form öğelerini kullanabilirsiniz (sayfaları daha çok çevirmeyi seviyorsanız.

Buradaki en önemli şey şudur: "TextValues" niteliğini formun sol düzenleme alanına sürükleyerek - özelliklerinde "Görünüm" = Metin belgesinin Alanı'nı ayarladığınızdan emin olun.

"QueryTable" özniteliğinin özelliklerinde, isteğe bağlı olarak - "Görüntüleme Izgarası" ve "Görüntü Başlıkları"nı belirtebilirsiniz.

Ardından, sağ form düzenleme penceresinde "Komutlar" sekmesine gidin ve yeni bir düğme ekleyin, tıklandığında Konsolumuz belirli bir eylemi gerçekleştirecektir. Dilerseniz bir "Sorgu Oluşturucu" Butonunu oluşturalım, isterseniz butona bir ikon ekleyebilirsiniz, asıl mesele butonun kendisini sol form düzenleme penceresine taşımaktır - böylece onu görebiliriz.Ardından, doğru formda düzenleme penceresi, düğmemize sağ tıklayın ve özellikleri seçin - özelliklerde, "Eylem" öğesine tıklayın, soruyla birlikte kalıcı bir pencere görünecektir - düğmeye atayacağımız program kodumuz tam olarak nerede yürütülecek - "İstemcide" seçeneğini seçin.

Form Modülü, hazır boş bir prosedür olan "Procedure Request Constructor (Command)" ile açılacaktır. Bu prosedürün içinde, standart Sorgu Oluşturucu 1c8'e yapılan çağrıyı açıklayacağız. Bu çok kolay: Oluşturucu=Yeni Sorgu Oluşturucusu; Ancak burada tuzaklar var - platformda yerleşik olarak bulunan Sorgu Oluşturucu YALNIZCA kalın bir istemci altında kullanıcı modunda çalışır! Bu nedenle, önişlemci talimatı #If'in koşulunu ekleyeceğiz, ancak burada platformunuza göre kendiniz karar veriyorsunuz veya sıradan formlarınız var, o zaman " ThickClientSıradan Uygulama" veya yönetilen bir formlar platformunuz varsa, " ThickClientManagedApplication". bkz. şek.

Şimdi, bu prosedüre, "Metin Talebi" formunun özelliğimizde Sorgu Oluşturucu'nun bizim için oluşturacağı istek metnini yazmak için bir koşul eklemek kalır:

Constructor.OpenModally()=True ise Object.QueryText=Constructor.Text; EndIf;

Ancak istek metnindeki bir şeyi manuel olarak değiştirebiliriz (kullanıcı modunda - "QueryText" props penceresinde), böylece değişikliklerimiz tekrar çağrıldığında QueryConstructor'a girer - buraya basit bir koşul ekleyelim:

EmptyString(Object.QueryText) Değilse Constructor.Text=Object.QueryText; EndIf;

İşte bu kadar, 1c8 platformuna yerleşik Query Constructor'ı bağladık, işimize bakalım. Bunu yapmak için, aşağıdaki yöntemlerden birini kullanarak 1C:Enterprise'ı kalın istemci modunda çalıştırın: 1) Yapılandırıcının ana menüsü - Hata Ayıklama - StartDebugging - ThickClient; 2) veya konfigüratördeki kontrol panelinde bu tuşlar varsa - sadece kalın noktalı sarı daireli düğmeye basın, şekle bakın:

1sEnterprise8 kullanıcı modu başlatılır, işlememizi bulur, başlatır, "Sorgu Oluşturucu" düğmemize tıklar ve platforma yerleşik kurucunun nasıl açıldığını görürüz. bkz. şek.

Yani, Sorgu Oluşturucu başlatılıyor, gelecekteki isteğimizi şimdiden eklemeye başlayabiliriz, ancak oluşturduğumuz isteğin nasıl sonuçlanacağını görmek istiyoruz! Ve bunun için konsolumuzun formunu düzenlerken konfigüratörde başka bir buton oluşturmamız gerekiyor, buna "Run Request" diyelim. "Eylem" üzerindeki "Talebi Çalıştır" düğmesinin özelliklerine tıklıyoruz, bize sorulan menü tekrar düşüyor - program kodumuzun nerede işleneceği, bu durum"Hem istemcide hem de sunucuda" seçeneğini seçin, tekrar ModuleForms'a giriyoruz.

İstemcide sahip olduğumuz ExecuteRequest() prosedüründe, kullanıcı istek metnini girmediyse, ancak yürütmesini isterse bir koşul yazacağız:

If EmptyString(Object.QueryText) Sonra rapor("Sorgu metnini giriniz!"); EndIf;

Sistem zaten bizim için ExecuteRequestOnServer() prosedürüne otomatik olarak bir bağlantı oluşturdu; - bu iyi, hadi sunucuda yürütülen bu prosedüre gidelim ve girilen isteğimizi yürütmek için kodu buraya yazalım.

Burada seçenekler var: Sorguların yapımı ile ilgili tüm ifadeleri kendiniz yazabilirsiniz, i. manuel olarak, ancak daha da kolay bir seçenek var - prosedürün içinde sağ tıklayın ve açılır menüden "Sonuç işleme ile Sorgu Oluşturucu, şekle bakın" seçeneğini seçin:

Sonuç İşleme ile Sorgu Oluşturucu öğesine tıkladıysanız, "Sorgu metni bulunamadı. Yeni bir tane oluştur?" şeklinde bir kalıcı pencere açılır, evet'i tıklayın. Sonucu atlıyoruz". İşte bu, başka bir şeye ihtiyacımız yok. Bu kurucu, "Tamam" düğmesine tıklayın - kalıcı bir pencere açılır "Talepte hiçbir alan seçilmedi, "Tamam" ı tıklayın.

Bundan sonra, ExecuteRequestOnServer() prosedürümüzün içinde, aşağıdaki hazır boşluk görünecektir:

Yapıcı tarafından oluşturulan ifadeye geçelim:

İstek.Text = "";

Request.Text =Object.QueryText;

O kadar basit ki, işlem formundaki "Talebi Gerçekleştir" butonumuz pratik olarak işlevseldir, şimdiye kadar yalnızca işleyebilir basit istekler parametresiz, ama asıl şey işe yaraması! Geriye sadece işleme formundaki "Değer Tablosu" pervanesinde görsel olarak göstermek kalıyor - talebimizin sonuçları. "Değerler Tablosu" özniteliğimizin "Elektronik Tablo Belgesi" tipine sahip olduğunu hatırlatmama izin verin, aksi takdirde sonuçlarımızı kullanıcı modunda göremeyeceğiz. Kullanıcı her zaman bir Elektronik Tablo Belgesi veya bir Düzen ile tablo verileri çıkarır, verileri bir değerler tablosu aracılığıyla görüntüleyebilmeyi gerçekten isterim - çünkü kullanımı çok kolay ve tanıdık, ancak ne yazık ki bir tablo değerlerin sadece bir geliştiricinin ihtiyaç duyduğu bir araçtır, onu kullanarak ekranda veri görüntüleyemezsiniz ...

Bir Elektronik Tablo Belgesinin ne olduğuna daha yakından bakalım - bu bir Excel sayfası gibidir - yalnızca Tablo Hücrelerini kullanarak belirli bir hücredeki bir kayda ulaşabilirsiniz, burada bunlara alan denir, ancak biz kendimiz bunun aralığını seçebiliriz alan belirli bir Hücreye:

Böylece, bir elektronik tablo belgesinin ne olduğunu anladık, kendimiz için bu elektronik tablo belgesinin belirli bir hücresindeki sorgumuzdaki verileri belirlememiz gerektiğine karar verdik. Ama bir düşünelim: yapıcının bizim için bu kadar hızlı oluşturduğu "RequestResult" nedir? Yardımı açma - Sorgu sonucu, ilgili özelliklere sahip bir tablodur! bkz. şek.

Ve şimdi QueryResult = Query.Execute(); (kurucu tarafından yaratılmıştır) ifadesinden sonra yazarsak, Koleksiyonlar için çok basit bir döngü:

Her bir ColumnName From QueryResult.Columns Döngü raporu için(ColumnName.Name); Bitiş Döngüsü;

Bu döngüden sonra, şimdilik, yapıcı tarafından otomatik olarak oluşturulan tüm ifadeleri kontrol edin. Ve 1C:Enterprise8'i kalın bir istemci altında çalıştırın.Herhangi bir basit istek oluşturun (Sorgu Oluşturucuyu kullanabilirsiniz - zaten bizim için çalışıyor) ve "Talebi Çalıştır" düğmesine tıklayın:

Daha sonra pencerenin alt kısmındaki mesajlarda göreceksiniz - QueryResult tablosu, basit bir sorgu oluşturarak az önce seçtiğimiz alanların adlarını saklıyor.

Şimdi, acı çektiğimiz alanların bu adlarını bir Elektronik Tablo belgesinde gösterelim:

QueryResult.Columns Döngüsünden her ColumnName için Cell=Object.QueryTable.Scope(1,QueryResult.Columns.Index(ColumnName)+1); Cell.Text=SütunAdı.Adı; Bitiş Döngüsü;

Sorgu verilerinin ayrıntılarını görüntülemek için, yapıcı tarafından otomatik olarak oluşturulan ifadeleri sıraya koyalım ve "SelectionDetailedRecords" döngüsü içinde sütun adlarını görüntülemek için kullandığımız döngünün tam olarak aynısını ekleyelim, ancak şimdi "QueryResult" u aktarmamız gerekmiyor. Tablo verilerini Hücre metnine ve Seçimin kendisine ait verileri, yardımda Sorgunun Ayrıntılı seçimi alanına nasıl erişebileceğinizi görelim:

SamplingDetailRecords = QueryResult.Select(); SelectionDetailedRecords.Next() Döngüsü //ilk satırda zaten tablo sütunlarının adlarına sahibiz, bu nedenle verileri ilk satırın altına yüklüyoruzDocumentLineNumber=Object.QueryTable.TableHeight+1; QueryResult.Columns Döngüsünden her ColumnName için Cell=Object.QueryTable.Region(DocumentRowNumber,QueryResult.Columns.Index(ColumnName)+1); Cell.Text=SelectionDetailRecords[ColumnName.Name]; Bitiş Döngüsü; Bitiş Döngüsü;

Hepsi bu, kontrol edebiliriz, işletmeyi kalın bir istemci altında yükleyebilir, parametresiz basit bir istek girebilir, "Talebi Çalıştır" düğmesine tıklayın, şekle bakın:

Yaşasın, her şey çalışıyor!!!

Sorgu Konsolumuzu açarken / kapatırken konsolu kapatmadan önce çalıştığımız sorgu metnimizin tekrar "QueryText" alanına yazılması çok uygundur. Bunu yapmak için, form özelliğini etkinleştirmeniz yeterlidir = Otomatik kaydetme resme bakın:

Her şey, konsolumuz çalışıyor. İçinde belirtilen parametrelerle daha karmaşık sorgular yazabilmemiz için, başka bir "FindParameters" düğmesi ve "RunQuery" düğmesinin kodunu oluşturmamız gerekiyor - "FindParameters" düğmesinin kodu, "FindParameters" düğmesinin kodunda yürütülecektir. istemci ve sunucuda. Ayrıca sunucu prosedüründe, "QueryText" penceresinden kendisine iletilen metinle aynı şekilde "Query.FindParameters()" ifadesini kullanarak isteği başlatıyoruz, iletilen parametreleri buluyoruz ve basitçe giriyoruz. bir döngüde "QueryParameters" formunun tablo kısmı. Bunları daha sonra tamamlanmış parametre tablosundan "Talebi Yürüt" prosedürüne geçirmeyi unutmayın.

Ayrıca Konsolumuza, kullanıcı modunda Parametreler penceresini ve Sorgu Metni penceresini temizleyecek birkaç düğme ekleyebilirsiniz.

Sorgu Konsolumuz kullanıma hazır, Sorgu Konsolu gibi basit ve güçlü bir araç yardımıyla başarılı yaratıcı çözümler dileriz!

Bu işlem 1s8.3 platformunda (yönetilen formlar) yazılmıştır, kalın bir istemci altında çalışır. Ayrıca 1s8.2 platformunda aşağıdaki gibi yazılabilir. geleneksel formlar, ve kontrol altında.

İndirmede, az önce oluşturduğumuz Sorgu Konsolunun bir örneği bulunmaktadır.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Sorgu Konsolu Yükseltmesi:

1) Artık yerleşik Sorgu Oluşturucu içeren ev yapımı Sorgu Konsolumuz, herhangi bir istemci altında çalışır: normal ve yönetilen formların kalın istemcisi altında ve ince ve web istemcisi altında.

ps Yerleşik Sorgu Oluşturucu'nun biçimi ve görünümü, Konsolumuzu hangi istemci altında başlattığımıza bağlı olarak farklıdır.

&AtClient Prosedür Sorgu Oluşturucusu(Komut) //standart Sorgu Oluşturucusunu çağırmak yalnızca kalın bir istemci altında mümkündür #If ThickClientManagedApplication veya ThickClientRegularApplication Then Constructor=Yeni Sorgu Oluşturucu; EmptyString(Object.QueryText) Değilse Constructor.Text=Object.QueryText; EndIf; Constructor.OpenModally()=True ise Object.QueryText=Constructor.Text; EndIf; // #Otherwise // Report("Sorgu Oluşturucu yalnızca kalın bir istemci altında çağrılabilir"); // Dönüş; //# EndIf #Else Report("Sorgu Oluşturucu'yu ince bir istemci altında çalıştırıyorsunuz - biçimi ve performans hızı biraz farklı!"); Yapıcı = Yeni İstek Oluşturucu(); EmptyString(Object.QueryText) Değilse Constructor.Text=Object.QueryText; EndIf; AlertConstructor = New AlertDescription("RunAfterClosingConstructor", ThisForm); Constructor.Show(ConstructorAlert); # EndIf EndProcedure &AtClient Prosedür ExecuteAfterClosingConstructor(Sonuç, Oluşturucu Parametreleri) Ver //Result=Concer ok düğmesi ile kapatılmışsa metin Object.QueryText = ShortLP(Result); //İşler!!! İşlem Sonu

2) Basit Sorgu Konsolumuza, parametrelere geçirilen Geçici Tablo ile karmaşık sorgular girme yeteneği eklendi!!! Mekanizmanın çok basit ve zarif olduğu ortaya çıktı - profesyonel konsollarda olduğu gibi XML kodu kullanılmadan.

Kodun kendisini ve Geçici Tabloların parametrelerine aktarma mekanizmasına ilişkin prosedürleri ekli ikinci dosyada görebilirsiniz. Parametrelerde kendi Geçici tablo sürümünüzü geliştirmeye nasıl başlayacağınız bu bağlantıda görüntülenebilir https://forum.site/forum9/topic183700/

Şimdi, parametrelerine geçici bir tablo iletildiğinde, karmaşık bir sorgu ile Konsol nasıl kullanılır. Örneğin bu isteğin kodunu alabilirsiniz;

ExternalData.Item, ExternalData.Quantity SELECT ExternalData FROM &ExternalData'dan ExternalData AS; ///////////////////////////////////////////// / //////////////////////////// ExternalData.Item, ExternalData.Quantity, ISNULL(ItemsRemainsRemains.QuantityRemains, 0) AS Field1 SEÇ , IS NULL(ItemsRemainsRemains.QuantityRemains, 0) - ExternalData.Quantity AS ExternalData Product AS ExternalData'dan Kalan

Yukarıdaki sorgu koduna benzer şekilde - veri nesnelerinizi dikkate alarak kendi karmaşık sorgunuzu oluşturabilirsiniz.

Yani, sorgu yapıcısında, Yapıcıyı kapatarak yukarıdaki sorguyu oluşturduk - sorgu metni konsoldaki "Sorgu Metni" alanımıza düşecek, "Parametreleri Bul" düğmesine tıklayın, dizenin = "Harici" olduğunu görüyoruz. Veri", değer türü \u003d "Değer Tablosu" Parametreler tablosunda belirdi, bkz. şek.

Bu Parametre Tablosunda - Tarih parametresini girin, örneğin bugünün tarihi, ardından düzenlemeyi denemek için geçici tablo "ExternalData" parametremize tıklayın, "Değer Tablosu" ile alanda üç noktaya tıklayın - bir tür seçimi görünecek, çizgiye tıklayın, mekanizmamız bu çok geçici tabloya manuel olarak girmemiz gereken formdaki sayfayı bizim için çevirir.

Burada, bu durumda "Geçici Tablolar" sayfasının altındaki "Parametrelerdeki geçici tablo adı" alanında - geçici tablomuzun adının görüneceğini unutmayın (Parametreler tablosundan kopyalanır).

Şimdiye kadar, "TempTables" sayfasında, yalnızca bir boş tablo görüyoruz - bu, gelecekteki geçici tablomuzun Types tablosudur. "Ekle" düğmesini kullanarak, gelecekteki tablonun özniteliğinin adını ve türünü ekleyeceğiz. . Dikkatli olun - ad ve tür, &ExternalData isteğinde belirttiğimiz ile eşleşmelidir:

Şimdi "UpdateTemporaryTable" düğmesine basıyoruz - ve burada ikinci bir tablomuz olacak - "Ekle" düğmesi aracılığıyla doğrudan geçici tablonun verileriyle dolduracağız.

İşte bu kadar, sorgu parametrelerinin ilkel verilerini 1. işlem sayfasındaki parametre tablosuna girip girmediğimizi bir kez daha kendimiz kontrol edebilir ve "Talebi Yürüt" düğmesine tıklayabiliriz - her şey sayılır, kısıtlamaya göre seçim yapar. geçici tablomuzun parametresinde iletilen veriler

ps Ayrıntıların adlarını ve türlerini yazarken bir hata yaptıysanız (ilk tabloda) - Konsolu kapatıp yeniden açmanız yeterlidir - geçici veri tablosu silinecektir - ve Türler tablosu yeniden düzenlenebilir ve bir yeni veri tablosu yeniden oluşturulabilir.

Hepsi bu, kendi ellerimizle çok güçlü bir çalışma aracı oluşturabiliriz, ayrıca konsolumuz profesyonel olanlara kıyasla hala çok çevik - ve bu geliştiriciler için çok büyük bir artı! Ve tabii ki, artık konsolumuz herhangi bir istemci altında çalışıyor! Yaratıcı gelişmelerinde iyi şanslar!!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Sorgu Konsolumla sürekli çalışıyorum ve son zamanlarda Geçici tabloların ilk olmadığı çok ilginç bir sorgu ile karşılaştım. istek paketi ve sonrakilerde - ve burada konsolum biraz çıldırdı ... Başka bir yükseltme yapmak zorunda kaldı.

Bu nedenle, sorgudaki Geçici Tablo yöneticisi onunla çalıştıklarını her zaman anlamaz)) Bu nedenle, bu Geçici Tablo yöneticisini açıkça ayarlamanız gerekir:

&OnServer Prosedürü ExecuteQueryOnServer() //upgrade2 - TemporaryTable yöneticisinin açık tanımı! VTManager=NewTempTableManager; İstek = Yeni İstek; //upgrade2 - TemporaryTable yöneticisinin açık tanımı! Query.TempTableManager = VTManager; Request.Text = Object.QueryText;

Konsolun bu sürümü üçüncü önyüklemede.

1C Enterprise 8'in en güçlü araçlarından biri şüphesiz Query Builder'dır. Yapıcı, 1C dilinde sorgularla çalışmak için görsel bir araçtır. Ancak yapıcının büyük bir dezavantajı vardır - sorgu yürütmenin sonucunu göstermez. Bu dezavantaj, özellikle 1C:Enterprise 8.3 ve 8.2 platformunda acemi uygulama çözümleri geliştiricileri tarafından hissedilir.

Ek olarak, deneyimli 1C programcıları bile, çeşitli bölümlerdeki bilgi tabanı verilerinin “tek seferlik” bir analizinin yapılmasının gerekli olduğu, ancak tam teşekküllü bir rapor yazmak istemediğiniz bir durumla karşı karşıya kalmaktadır. böyle bir "bir kerelik sonuç" uğruna.

Tüm bunlar ve diğer birçok durum için size sunmaktan mutluluk duyuyoruz harici işleme 1C 8.3 ve 1C 8.2 için sonuçları işleme özelliğine sahip sorgu konsolu!


1C 8.3 ve 1C 8.2 için Sorgu Konsolunun temel özellikleri:

Evrensel işleme, 1C platformlarının herhangi bir yapılandırmasında çalışır: Enterprise 8.1 - 8.3;
- 1C:Kuruluş modunda çalışır;
- sorgu manuel olarak yazılabilir veya Sorgu Oluşturucu'yu arayabilirsiniz;
- isteğin sonucunu gösterir;
- Rapor parametrelerini doğrudan Sorgu Konsolunda belirtebilirsiniz;
- istek dosyalarını kaydedebilir ve yükleyebilir.

Sorgu Konsolunu başlatmak için, yapılandırmanızı 1C:Enterprise modunda çalıştırmanız ve diskte depolanan diğer herhangi bir dosya gibi Sorgu Konsolunun harici işlemesini açmanız gerekir. Bu tür işlemler, uygulanan çözümün bir parçasıymış gibi tamamen aynı şekilde çalışacaktır.


Harici işleme Sorgu Konsolu, tanıdık arayüzü tekrarlar ve çoğu işlevsellik 1C: Enterprise 8.3 ve 8.2 sisteminin sorgularını derlemek için standart araç seti. Ayrıca sorguların, toplu sorguların ve geçici tabloların sonuçlarını almanızı sağlar.

Sorgu konsolu, hem kalın hem de ince istemciler altında sistemin hem istemci-sunucu hem de dosya-sunucu çalışma modlarında yürütülür! Sorgu Konsolu, aracılığıyla çağrılan standart Sorgu Oluşturucu'yu entegre eder. bağlam menüsü istek gövdesi alanında.

ÖNEMLİ! Sorgu yapıcısı zayıf müşteriçalışmıyor, Oluşturucuyu açmak için bu menü öğesi mevcut değil. Kalın istemcide, Sorgu Oluşturucu mevcuttur!


İnce istemcide istekleri yalnızca elle yazabiliyoruz, diğer tüm işlevler değişiklik yapmadan çalışıyor.