Belgenin tarihinin isteğine almak. Bilgi kaydındaki en son kayıtların serbest bırakılmasını alma özelliği, istekteki belge tarihindeki fiyatı alın

/
Veri işleme uygulaması

Periyodik bilgi kayıtları için sonuçların çözümü

Kapsam: Kontrollü Uygulama, Mobil Uygulama, Normal Uygulama.

1.1. Periyodik bilgi kayıtları için, aşağıdaki koşulların yerine getirilmesi durumunda sonuçların çözülmesi önerilir:

  • kayıtta büyük miktarda veri bekleniyor (örneğin, adlandırma fiyatına ilişkin kayıt için haklı; ancak para birimi kursları ile kayıt olmak mantıklı değil);
  • konfigürasyon, son kez ve / veya topikal verileri elde etmek için birincinin (yani, sanal tabloların parametrelerinde belirtilmediğinde) ilk bölümün bölümlerine frekans talepleri sağlar. Uykuve Dilimleme);
  • aynı zamanda, sanal tablolar için kalan koşullar Uyku ve Dilimleme yalnızca ölçüm değerlerinde (ve moddaki ayırıcılar) belirtilir. Bağımsız olarak ve birlikte);
  • verilere erişim sınırlamalarında, yalnızca ölçümler kullanılır (ve modda bölücüler) Bağımsız olarak ve birlikte).

Bilgi kayıtlarının sonuçları sorgularda bulunduğunda tüm koşulların tam bir listesi, bkz.1C platformunun belgeleri: Kurumsal.

Örneğin, eğer sık \u200b\u200bsık çalıştırılan kayıt talebi yapılandırmada verilirse Fransa firmaları İsimlerin mevcut fiyatlarını elde etmek için:

İsimlendirme'yi seçin. Makale olarak makale, ilgilenilen fiyat. Fiyat gibi fiyat ,. . . Dizinden. İsimlendirme olarak adlandırma, kayıt defterinin sol bağlantısı. Fiyatlar. Çember-kalıcı (, Viditiones \u003d Ve vidzena) fiyat olarak Fiyat maddi. NOMENCLATURE \u003d Adlandırma. Link. . .

bu, yukarıda listelenen diğer tüm koşullara tabidir, mülkü ayarlama Sonuçlara izin verin: son kesin Bu tür taleplerin yürütülmesini önemli ölçüde hızlandırır, numunenin doğrudan yalnızca son değerlerin (son kesimler için) depolandığı ek tablolardan ve ilk değerlerin (ilk bölümleri için) ).

1.2. Ek olarak, alternatif seçenekler, kayıt taleplerini bu koşulların yapıldığı şekilde revize etmek için düşünülmelidir.

Örneğin, bazı durumlarda kayıttaki verilerde ise Fransa firmaları Gelecekteki tarih tarafından kaydedildi ve mal seçiminde, her zaman geçerli tarihin bir sorgudur (tarihi sanal tablo parametresinde açıkça belirlenir) Dilimleme) Sonuçlar, bu tür taleplerin yürütülmesini hızlandırmaz. Sonuçlar sadece ilk ve son kayıt girişleri için inşa edildiğinden beri.

Daha sonra, tarih yüklemeden tür bir istek ikincisi son kesmeye başka bir istek gerçekleştirmek için - Eğer malların seçimi formu açtığınızda Ancak, orada ileri bir tarihte sahip kayıt, ve varsa hiçbir olmadığını analiz daha hızlı çalışacak.

2. Diğer tüm durumlarda, periyodik bilgi kayıtları için çözülmemelidir. Her şeyden önce, eğer

  • Çoğu zaman (her zaman) / soyadı periyodik bilgi kayıt bölümlerin sanal tablolara, sorguları (belge tarihte, örneğin) Belirli bir süre için yürütülür.
  • sanal Tablolar İçin Koşullarda Uyku ve Dilimleme Çoğu zaman (her zaman) alt sorgular ve bağlantıları (ilişkili tabloların alanlarına "noktasından" dolaşımını) kullanır. Örneğin, bu durumda:

sonuç tabloları gerçekleştirme yazmacındaki kayıtların her kaydı ile otomatik olarak gerçekleştirilir çünkü 3. sonuçları yeniden hesaplanması için ayrı bir mekanizma konfigürasyonunda temin etmek için gerekli değildir.

: Uyku ve Dilimleme 1C kullanarak bu sanal tablolarla çalışmayı düşünün. Çok daha sık uygulandı Dilimleme, yani onunla ve başlayalım.

İkincisinin girintileri, bilgi kaydının en son kaydını, ölçümler bağlamında belirtilen tarihe kadar elde etmenizi sağlar. Son kesim tablosu için (ilk) virgül ile iki parametrelerini belirtmek için parantez içinde bir fırsat var. ilk parametre, tarih (parametre dilim geçerli tarihe yapılır girmezse) hangi kesim yapılır aktarılır. İkinci parametre 1C sorgu dilinde bir durumu temsil eder ve çeşitli seçimleri yüklemenize olanak tanır. Kural olarak, bu Seborarlarda ölçümler kullanılır. Bütün bunlar yeterince sisli geliyor, bu yüzden yapamayacağınız bir örnek olmadan.
Öyleyse periyodik bir bilgi kaydı yapalım Fiyat Hangi fiyatlar mal ve tedarikçiler bağlamında depolanır. Kayıt olmanın sıklığı bir gündür.

Kayıt, aşağıdaki girişlere sahiptir.

Başlamak için, bu talebi takiben parametreleri kullanmadan ikincisini kesiyoruz.

Bir teslimiyet fiyatı seçin. Dönemi bir süre, bir ürün olarak pricesRext. Sungwar, priceRextrighted olarak. listesi tedarikçisi olarak teslim fiyatıdır. Özet diğer kayıtların. Fiyat toplamı olarak. translasts bedeli olarak Önleyici

Parametreler belirtilmediğinden, kesim geçerli tarihte gerçekleştirilir - 01.02.2017. Sonuç olarak, bu tabloyu alıyoruz

İşte ölçüm malları + tedarikçi kombinasyonunun benzersiz olduğunu görüyoruz, yani. Kayıt ölçümlerinin her kombinasyonu için, maksimum tarihte bir kayıt alındı \u200b\u200bve kayıt tarihi geçerli tarihe daha az veya eşittir.

Diyelim ki, aynı şeyi yapmamız gerektiğini, ancak tarihin 15 Ocak 2017'ye eşit olarak almak istediğimiz kayıtlar. Bunu yapmak için, son kesme tablosu ile sorgudaki dizgiyi aşağıdaki gibi değiştirmeniz gerekir.

Kayıt olmaktan. Fiyat. Travesti fiyatı olarak önleyici (ve dansçı)

İsteği yapmadan önce, parametreyi aktarmak kesinlikle gereklidir. & Vataseca. Şimdi sorgu sonucu görünecek

Ve nihayet, malları aldığımız şartla aynı tarihte kesim yapmamız gerektiğini hayal edin. Kalemve tedarikçi Kırtasiye. Bunu yapmak için sorgudaki ikinci parametreyi belirtin.

Kayıt olmaktan. Fiyat. Pricerext olarak önleyici (& dansçı, ürün \u003d ve mal ve tedarikçi \u003d ve tedarikçisi)

Sonuç olarak, sadece bir kayıt alıyoruz

Tüm bu parantez ve virgüllerde karıştırmamak için, istek tasarımcısını kullanmak daha iyidir. Size son sorgu örneğini göstereceğim.

Sorgu tablosunun tasarımcısını ikincisini keserek seçtikten sonra, düğmeye tıklamanız gerekir. Sanal Tablo Ayarları ve kayıt yaptıracak pencerede

İlk eylem ilkesini kestiktirmenin, kesim tarihinden sonra ilk kaydın seçilmesi dışında aynı olduğundan tahmin etmek zor değildir.

Periyodik bilgi kayıtları için iki sanal tablo mevcuttur: Uyku ve Dilimleme 1C istekleri kullanarak bu sanal tablolarla çalışmayı düşünün. Çok daha sık uygulandı Dilimleme, yani onunla ve başlayalım.

İkincisinin girintileri, bilgi kaydının en son kaydını, ölçümler bağlamında belirtilen tarihe kadar elde etmenizi sağlar. Son kesim tablosu için (ilk) virgül ile iki parametrelerini belirtmek için parantez içinde bir fırsat var. ilk parametre, tarih (parametre dilim geçerli tarihe yapılır girmezse) hangi kesim yapılır aktarılır. İkinci parametre 1C sorgu dilinde bir durumu temsil eder ve çeşitli seçimleri yüklemenize olanak tanır. Kural olarak, bu Seborarlarda ölçümler kullanılır. Bütün bunlar yeterince sisli geliyor, bu yüzden yapamayacağınız bir örnek olmadan.

Öyleyse periyodik bir bilgi kaydı yapalım Fiyat Hangi fiyatlar mal ve tedarikçiler bağlamında depolanır. Kayıt olmanın sıklığı bir gündür.

Kayıt, aşağıdaki girişlere sahiptir.

Başlamak için, bu talebi takiben parametreleri kullanmadan ikincisini kesiyoruz.

Teslimlerin fiyatını seçin. Dönem süre olarak, sonun fiyatıdır. Ürün olarak ürün, pricerere-lading. Tedarikçi olarak tedarikçi, fiyat dirilişi. Miktar, kayıtların toplamı olarakdır. Fiyat. Çevrilmiş fiyat olarak daire içine almak

Parametreler belirtilmediğinden, kesim geçerli tarihte gerçekleştirilir - 01.02.2017. Sonuç olarak, bu tabloyu alıyoruz

Dönem | Ürün | Tedarikçi | Toplamak

01/25/2017 | Kalem | Ltd. "lesprot" | onbeş

02/01/2017 | Kalem | PJSC "Kırtasiye" | 31.

02/01/2017 | Kolu | PJSC "Kırtasiye" | 145.

İşte ölçüm malları + tedarikçi kombinasyonunun benzersiz olduğunu görüyoruz, yani. Kayıt ölçümlerinin her kombinasyonu için, maksimum tarihte bir kayıt alındı \u200b\u200bve kayıt tarihi geçerli tarihe daha az veya eşittir.

Diyelim ki, aynı şeyi yapmamız gerektiğini, ancak tarihin 15 Ocak 2017'ye eşit olarak almak istediğimiz kayıtlar. Bunu yapmak için, son kesme tablosu ile sorgudaki dizgiyi aşağıdaki gibi değiştirmeniz gerekir.

Kayıtlardan. Fiyat. Circus-Lasting (& amp; dansçı,) korunmuş fiyat olarak

İsteği yapmadan önce, parametreyi aktarmak kesinlikle gereklidir. & Vataseca. Şimdi sorgu sonucu görünecek

Dönem | Ürün | Tedarikçi | Toplamak

01.01.2017 | Kalem | Ltd. "lesprot" | 10

01.01.2017 | Kalem | PJSC "Kırtasiye" | 27.

01/03/2017 | Kolu | PJSC "Kırtasiye" | 137.

Ve nihayet, malları aldığımız şartla aynı tarihte kesim yapmamız gerektiğini hayal edin. Kalemve tedarikçi Kırtasiye. Bunu yapmak için sorgudaki ikinci parametreyi belirtin.

Kayıtlardan. Fiyat. Daire-Kalıcı (& amp; Dansçı, ürün \u003d ve amp; ürün ve tedarikçi \u003d ve amp; tedarikçi)

Sonuç olarak, sadece bir kayıt alıyoruz

Dönem | Ürün | Tedarikçi | Toplamak

01.01.2017 | Kalem | PJSC "Kırtasiye" | 27.

Tüm bu parantez ve virgüllerde karıştırmamak için, istek tasarımcısını kullanmak daha iyidir. Size son sorgu örneğini göstereceğim.
Sorgu tablosunun tasarımcısını ikincisini keserek seçtikten sonra, düğmeye tıklamanız gerekir. Sanal Tablo Ayarları ve kayıt yaptıracak pencerede

İlk eylem ilkesini kestiktirmenin, kesim tarihinden sonra ilk kaydın seçilmesi dışında aynı olduğundan tahmin etmek zor değildir.

43
Null - eksik değerler. Sıfır değeri ile karıştırmayın! NULL, boşluğa, boş bir bağlantı olan boşluğa eşit olmayan bir sayı değildir. NULL - Tip şekillendirme değeri, yani Boş bir tür ve bu türün tek anlamı var. BOŞ ... 26
1C platformdaki veritabanı tablolarına sorguları oluşturmak ve yürütmek için, özel bir nesne programlama dili nesnesi kullanılır. Bu nesne yeni bir istek çağırarak oluşturulur. İstek uygun ... 18
Makale, 1C V.8.2 istekleri ile çalışırken ve ayrıca sorgu dili için çok iyi bilinmeyen bilgilerle ilgili faydalı teknikler sunar. İsteklerin dilinin tam bir tanımını vermek için çaba göstermiyorum, ancak sadece durdurmak istiyorum ... 13
Gibi - operatör benzer desendeki dizgiyi kontrol edin. SQL'deki gibi analog. Bunun gibi operatör, sağda belirtilen şablonun dizi ile solundaki ifadenin değerini karşılaştırmanıza olanak sağlar. İfadenin değeri ...

Bazen derhal birkaç tarih için periyodik bir bilgi bilgi verilerinden almak için bir talebe ihtiyacınız var. Tipik bir örnek para birimi kurslarıyla birlikte çalışıyor. Örnekte bu görevi çözmek için algoritmayı düşünün.

Sorunun formülasyonu

Veritabanında, "Servisin uygulanması" bir belge, bir sahne "para birimi" olan başlığında oluşturulmuştur. İstek, her belgenin başlıktan belge tarihine gerçek bir para birimi oranı alması için gereklidir. Döviz kurlarının depolanması "Çarşivalyut" ın periyodik sicilinde gerçekleştirilir.
Bu sorunun bu sorunun "alnındaki" kararı, döngüde bir istek olabilir: tüm belgeleri tarihleri \u200b\u200bve para birimleriyle ve örneklemde "KursiSivalyut" son kaydının serbest bırakılmasının sanal tablosuna hitap ediyor. Ama çünkü Döngüdeki istek "kötü", görevi bir istekle uygulamaya çalışın.

Karar

Sorunu çözmek için, masaların istekdeyeceği gerçeğini kullanacağız. sadece alanların eşitliği için de bağlanabilir.

RealizatsiyaTovarovUslug.Ssylka, Dokument.RealizatsiyaTovarovUslug RealizatsiyaTovarovUslug RegistrSvedeniy.KursyValyut NASIL YAPILIR KursyValyut RealizatsiyaTovarovUslug.Valyuta \u003d KursyValyut.Valyuta katılmak sol NASIL bir dönem VTPeriodyUstanovkiKursov PUT OUT olarak RealizatsiyaTovarovUslug.Valyuta, MAX (KursyValyut.Period) Ve RealizatsiyaTovarovUslug.Data\u003e \u003d KursyValyut.Period TERCİH . caddeleri uygulanması, hizmet Bağlantı uygulanmasına göre gruplandırılmış Svaluta.; ////////////////////////////////////////////// // // ////////////////////////////////////////////////// ////////////////////////////////////// /// // // seç TveriodoresOstorekurs. link WTPeriodoresOstrovikurstovs.Valuta, registerings sol bağlantısının yığılan kurucularının olarak WTPeriodorestorecars gelen Kursivalyut.KURS. Kashivalyuta vaporiodine ayarlarını kabotaj olarak. Dönem \u003d coarsevalyut.period ve clutterings MountingCurses.Valuta \u003d coarsevalyut.Valuta

Sorgudaki prosedür:

  1. Her belge için bir döviz kurunu elde etmek. Belgeler "KursiSivalyut" fiziksel tabloya bağlanır. Burada bağlantı koşullarına dikkat etmelisiniz. Para birimleri eşit olmalı ve dokümanın tarihi\u003e \u003d bilgi kaydının dönemi.
    Böyle bir bağlantı sonucunda, her bir belge için durumu tatmin eden bir dizi dizgeli elde edilecektir: Döviz kurunun tüm kayıtları, belgenin tarihinden daha geç değil.
    Son aşama, maksimum kurs süresi elde etmek için bir dizgenin gruplandırılması olacaktır. Sonuç olarak, her doküman için istenen para birimi için elbette kurulum gerekli dönemi (döviz kurunun tesisatın azami tarihini değil, daha belgenin tarihinden daha) elde edilecektir. Sonuç, geçici bir dağınıklık sisteminin bir tablosuna yerleştirilir.
  2. Bir kurs elde etmek. Ücretlerin geçici tablosu "Krasvalyut" fiziksel tablasına bağlanır. Bağlantı belgenin birimi ve ikinci geçici tabloda tanımlanmış ders ayarının süresine göre meydana gelir.