1s SKD toplama işlevleri dizisi. SKD. Tablo halindeki bilgilerin tek hücrede görüntülenmesi. Yeni bir rapor oluştur

Bu kısa notta, bir veri kompozisyon sistemi kullanarak bir rapordaki çeşitli gruplandırma düzeylerinde değerleri nasıl özetleyebileceğinizi göstermek istiyorum.
Resimde gösterildiği gibi, yalnızca "Öğe Grupları" gruplandırma düzeyinde "Sipariş" kaynağı hesaplanır ve belirli koşullara göre mevcut öğe grubu için ne kadar sipariş verilmesi gerektiğini görüntüler:


Bu değer yalnızca aşağıdakiler için hesaplanabilir: bu seviye gruplandırmalar çünkü üstünde veya altında hesaplanacak bir değer yoktur. Örneğin, ayrıntılı kayıtlar düzeyinde, bir gruptaki maksimum miktara ilişkin veri yoktur, çünkü bu veriler yalnızca bir bütün olarak grup için geçerlidir, bireysel bileşenleri için geçerli değildir.

Buna göre artık yukarıdaki gruplamaların (“Depolar”, “Depo Tipleri”) toplamlarını ve genel toplamı hesaplamak gerekiyor.
Bunu yapmak için işlevi kullanın CalculateExpressionWithGroupArray:
GROUPARRAY İLE İFADEYİ DEĞERLENDİRİN (GROUPARRAY İLE EVALEXPRESSION)
Sözdizimi:
EvaluateExpressionWithGroupArray(,)
Tanım:
İşlev, her bir öğesi, bir ifadenin belirtilen alana göre gruplandırılması için değerlendirilmesinin sonucunu içeren bir dizi döndürür.
Düzen oluşturucu, bir düzen oluştururken işlev parametrelerini veri kompozisyonu düzen alanları terimlerine dönüştürür. Örneğin Hesap alanı DataSet.Account'a dönüştürülecektir.
Düzen oluşturucu, ifadesi yalnızca CalculateArrayWithGroupArray() işlevini içeren özel bir alanın çıktısı için ifadeler oluştururken, çıktı bilgilerinin sıralanması için çıktı ifadesini oluşturur. Örneğin, şu ifadeyi içeren özel bir alan için:

CalculateExpressionWithGroupArray("Tutar(AmountTurnover)", "Karşı Taraf")
Düzen oluşturucu çıktı için aşağıdaki ifadeyi oluşturacaktır:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover))),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Seçenekler:

Tür: Dize. Değerlendirilecek ifade. Dize, örneğin, Amount(AmountTurnover).

Tür: Dize. Gruplandırma alanı ifadeleri – virgülle ayrılmış şekilde gruplandırma alanlarının ifadeleri. Örneğin Yüklenici, Taraf.

Tür: Dize. Ayrıntı kayıtlarına uygulanan seçimi açıklayan bir ifade. İfade, toplama işlevlerinin kullanımını desteklemiyor. Örneğin, DeletionFlag = False.

Tür: Dize. Grup kayıtlarına uygulanan seçimi açıklayan bir ifade. Örneğin, Tutar(TutarCiro) > &Parametre1.
Örnek:

Maksimum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Karşı Taraf"));

İşlev sözdiziminin ayrıntılı bir açıklamasını http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 adresinde bulabilirsiniz.
Şimdi, hesaplama için, aşağıdaki ifadeleri kullanarak “Sırala” alanını farklı “Hesapla…” değerleri ile kopyalıyoruz, her bir yüksek seviyede, gruplamaların altındaki seviyelerin değerlerinin kullanıldığını unutmayın. .

Sonuç olarak aşağıdaki yapıyı elde ederiz:

Veri kompozisyon şemasının (DCS) doğru kullanımı şunları yapmanızı sağlar:

  • bir raporun geliştirilmesi için gereken süreyi önemli ölçüde azaltmak;
  • yaratma ihtiyacından kurtulun kontrollü form işlemci;
  • Kullanıcı tarafından ek kişiselleştirme imkanı ile güzel bir sonuç elde edin.

Ancak tüm geliştiriciler programın yeteneklerinden en iyi şekilde yararlanamıyor çünkü tüm ayarları açık ve sezgisel değil. Özellikle birçok kişi 1C SKD'de hesaplanmış alanlar olduğunu biliyor, ancak bunların kullanım kapsamını ve onlarla çalışma yöntemlerini tam olarak anlamıyorlar.

Hesaplanan alan nedir

Çoğu durumda düzen diyagramındaki veri kaynağı bir sorgudur. Prensip olarak sorgunun kendisinde çeşitli formülleri, yapıları ve ifadeleri zaten kullanabilirsiniz. ortaya çıkar mantıksal soru, neden yinelenen işlevselliğe ihtiyacımız var?

Gerçek şu ki, erişim kontrol sistemi sadece bir sorgunun sonucunu görüntülemekten daha fazlasıdır ve bu, diyagram oluşturma formundan açıkça görülebilmektedir (Şekil 1).

Hesaplanan alanlar, oluşturulan veri kümesiyle belirli eylemleri gerçekleştirmenize olanak tanır:

  • Bir istek tarafından alınan bir dizi veriyi, birkaç satırı bir satırda birleştirerek belirli bir hücreye aktarın;
  • Genel modülün dışa aktarma işlevlerine erişin;
  • Düzen dili için mevcut olan çeşitli ifadeleri yürütün ve özel EvaluateExpression işlevlerini kullanın.

Bu listenin üzerinden geçelim.

Bir hücredeki değerler dizisi

Karşı taraf için tüm makbuz belge numaralarının ayrı bir hücrede alınmasının gerekli olduğu bir durumu simüle edelim:


Böylece şemamızda ek bir hesaplama alanı oluşturduk;


Yukarıdaki örnekten de görebileceğiniz gibi hesaplanan alanların eklenmesi ve işlenmesinde herhangi bir zorluk yaşanmamaktadır. İki fonksiyon kullandık: Array() ve ConnectRows().

İkincisi hakkında birkaç söz. Dizinin tanımlayıcısını, değerlerini veya değerini gösteren ilk parametreye ek olarak, iki tane daha ayarlanabilir:

  1. Öğe Ayırıcı – hangi karakterin bir dizi öğesini veya değer tablosunun bir satırını diğerinden ayıracağını belirtir (bizim durumumuzda bu parametreyi atladık ve varsayılan olarak bir satır sonu atandı);
  2. Sütun Ayırıcı – bir değerler tablosunun sütunlarını ayırmak için kullanılan bir karakter (varsayılan olarak noktalı virgül kullanılır).

Ortak bir modülün dışa aktarma işlevlerine erişme

Ortak bir modülün işlevleri, hesaplanan bir alanı doldurmak için veri kaynağı görevi görebilir.

Birkaç önemli nokta:

  • İşlev dışa aktarılabilir olmalıdır;
  • Bir fonksiyon “Global” öznitelik seti ile ortak bir modülde yer alıyorsa doğrudan adıyla çağrılır, aksi halde fonksiyonun “Paylaşılan modül adı” şemasına göre çağrılması gerekir. "Çağrılacak işlevin adı."

Kullanım örneği olarak aynı talebi alındı ​​belgeleri için alıp ayrı bir sütunda göstereceğiz. İsteğin kendisini açıklamayacağız; doğrudan hesaplanan alanlara geçelim:


Böylece, hemen hemen her veri işlemcisinin erişim kontrol sisteminden başlatılabildiğini görüyoruz, bu da şemanın kullanım olanaklarını önemli ölçüde genişletiyor.

Düzen dili ifadeleri

Çoğu zaman, bir geliştiricinin çalışmasında, ACS alanında bölme sonucunun görüntülenmesi gerektiğinde bir durum ortaya çıkar:

  1. Öğenin ortalama maliyetini hesaplayın;
  2. Her türlü ilgi;
  3. Ortalama kazanç hesaplamaları vb.

Sorunları önlemek için, bu durumlarda hesaplanan alana 0'a bölme testinin girilmesi tavsiye edilir.

Bu, “Seçim Ne Zaman….Sonra… Aksi takdirde…Son” yapısı kullanılarak yapılabilir.

Son olarak, yeterli hakkında birkaç söz yeni özellik Hesaplamaİfadesi(). Onun yardımıyla, özellikle mevcut ve önceki satırlar arasındaki maliyet sapmalarını, kümülatif bakiyeyi vb. hesaplayabilirsiniz.

Diyelim ki "İfade" alanına Hesapla İfadesi ("Belge Toplamı", "Önceki Toplam") değerini belirterek talebimizin bir önceki satırından Belge Toplamını alabildiğinizi varsayalım.

İyi günler, blogumuzun sevgili okuyucuları! Bugün size bundan bahsetmek istiyorum gerçek örnek, Nasıl
ACS işlevlerini Array ve joinStrings kullanın. Hakkında bir makalede

nasıl çalışılacağına dair küçük bir söz vardı
yer iminde
, ayrıca daha önce şu şekilde açıklanmıştır:
"Kaynaklar" sekmesini kullanarak. Bugün bunlara bir kez daha dikkat edeceğiz.
Konumuz ışığında yer imleri.

İki tane kullanarak örnek bir 1C raporunun görünümü ACS fonksiyonları Sıralamak Ve ConnectRow'lar Sonraki:

ACS işlevlerinin Array ve joinStrings kullanımına ilişkin problemin beyanı

Görev: Bir ürünün tüm satış numaralarını tek bir hücreye girmeniz gerekiyor.

Şöyle bir şey: isimlendirme | miktar | 001, 002 vb. |

“TMZ'nin Gerçekleştirilmesi” birikim kaydına bir talep kullanacağız.

SEÇMEK
TMZ'nin uygulanması. Kayıt memuru. Sayı,
TMZ'nin uygulanması. isimlendirme,
TMZ'nin uygulanması. Kayıt memuru,
TMZ'nin uygulanması. AdetCiro
İTİBAREN
Biriktirme Kaydı. TMZ'nin uygulanması. Devrimler
(, , Kayıt Şirketi, ) TMZ NASIL Uygulanır?

“TMZ'nin Gerçekleştirilmesi” birikim kaydı hem Muhasebe konfigürasyonunda hem de Ticari İşletme Yönetimi (UTP) konfigürasyonunda mevcuttur. “Adlandırma” dizin öğesinde USP'nin nasıl yapılandırılacağını öğrenin. Bu nedenle, indirdikten sonra işlevselliğini kontrol etmek için bu raporu her iki yapılandırmada da çalıştırabilirsiniz.

SKD Array ve ConnectRows işlevlerini kullanarak görevin uygulanması


Aynı adımlar, ancak bazı eklemelerle birlikte, oluşturmak için kullanıldı.
.

joinStrings işlevinin açıklaması

joinStrings

Dizeleri tek bir dizede birleştirmek için kullanılır.

Sözdizimi:

ConnectRows(Değer, Öğe Ayırıcı, Sütun Ayırıcı)

Seçenekler:

  1. Anlam— tek satırda birleştirilmesi gereken ifadeler.
    Eğer Dizi ise, dizinin elemanları bir dize halinde birleştirilecektir.
    Eğer bir ValueTable ise, tablonun tüm sütunları ve satırları bir satır halinde birleştirilecektir;
  2. Eleman Ayırıcı- kullanılacak metni içeren bir dize
    dizi öğeleri ve değer tablosu satırları arasındaki ayırıcı. Varsayılan – satır besleme karakteri;
  3. Sütun Ayırıcılar-sınırlayıcı olarak kullanılacak metni içeren bir dize
    değerler tablosunun sütunları arasında. Varsayılan ";".

Öğrenci olarak siteye giriş yapın

Okul materyallerine erişmek için öğrenci olarak oturum açın

Yeni başlayanlar için veri kompozisyon sistemi 1C 8.3: sonuçların sayılması (kaynaklar)

Bu dersin amacı şu olacaktır:

  • Ürünlerin listesini (Gıda dizini), kalori içeriğini ve tadını görüntüleyen bir rapor yazın.
  • Ürünleri renklerine göre gruplandırın.
  • Özetleme (kaynaklar) ve hesaplanan alanlar hakkında bilgi edinin.

Yeni bir rapor oluştur

Önceki derslerde olduğu gibi veritabanını açıyoruz " Şarküteri"Yapılandırıcıda ve menü aracılığıyla yeni bir rapor oluştur" Dosya"->"Yeni...":

Belge Türü - harici rapor:

Rapor kurulum formuna " adını yazın Ders3"ve düğmeye basın" Veri kompozisyon diyagramını aç":

Varsayılan şema adını bırakın ve " Hazır":

Yapıcı aracılığıyla istek ekleme

"sekmesinde Veri seti" tıklamak yeşil artı işaretini seçin ve " Veri Kümesi Ekle - Sorgu":

İstek metnini manuel olarak yazmak yerine tekrar çalıştırıyoruz sorgu oluşturucu:

"Sekme"de Tablolar"tabloyu sürükle" Yiyecek" birinci sütundan ikinciye:

Tablodan seçin " Yiyecek"İsteyeceğimiz alanlar. Bunun için alanları sürükleyip bırakın" İsim", "Tatmak", "Renk" Ve " Kalori içeriği" ikinci sütundan üçüncüye:

Şöyle ortaya çıktı:

Düğmesine basın " TAMAM" - istek metni otomatik olarak oluşturuldu:

Rapor sunum ayarlarını oluşturma

Sekmeye git " Ayarlar"ve tıklayın sihirli değnek, aramak ayar tasarımcısı:

Rapor türünü seçin " Liste..." ve " düğmesine basın Daha öte":

Listede görüntülenecek alanları sol sütundan sağa sürükleyin ve " Daha öte":

Sol sütundan sağ alana sürükleyin " Renk" - o olacak gruplama rapordaki satırlar. Tıklamak " TAMAM":

Ve işte tasarımcının çalışmasının sonucu. Raporumuzun hiyerarşisi:

  • raporun tamamı
  • "Renk" gruplandırma
  • ayrıntılı girişler - yiyecek adlarının bulunduğu satırlar

Raporu kaydedin (düğme disket) Ve kapanmadan Yapılandırıcıyı hemen kullanıcı modunda açacağız. Şöyle ortaya çıktı:

Sütunların sırasını değiştirme

Ama hadi sırayı değiştirelim sütunlarını (yukarı ve aşağı oklar) aşağıdaki şekilde görünecek şekilde ayarlayın:

Raporu kaydedip kullanıcı modunda tekrar açalım:

Harika, bu çok daha iyi.

Kalori içeriğini özetleyelim

Besinlerin kalori içeriğini gruplara göre özetlemek güzel olurdu. Beyaz veya sarı gibi tüm ürünlerin kalori içeriğinin toplamını görmek için. Veya veritabanındaki tüm ürünlerin toplam kalori içeriğini öğrenin.

Bu amaçla kaynakların hesaplanmasına yönelik bir mekanizma bulunmaktadır.

Sekmeye git " Kaynaklar"ve alanı sürükleyin" Kalori içeriği"(Özetleyeceğiz) sol sütundan sağa.

Bu durumda, alanda açılır listeden ifadeyi seçin " Miktar(Kalori)", toplam, toplamda yer alan tüm unsurların toplamı olacağından:

Bir rapor kaydedip oluşturuyoruz:

Artık her bir grup için ve bir bütün olarak rapor için sonuçlara sahibiz.

Kalori açısından (ortalama) özetleyelim

Şimdi bunu başka bir sütunda görünmesini sağlayalım ortalamaÜrünlerin kalori içeriği gruplara göre ve bir bütün olarak raporda.

Mevcut "Kalori" sütununa dokunamazsınız - toplam zaten içinde görüntülenmektedir, dolayısıyla hadi başka bir alan oluşturalım, olacak tam bir kopya"Kalori" alanları.

Böyle bir "sanal" alan oluşturmak için mekanizmayı kullanacağız hesaplanan alanlar.

Sekmeye git " Hesaplanan alanlar" ve bas yeşil artı işareti:

Bir sütunda " Veri yolu"yeni alanın adını yazıyoruz ( sorunsuzca, boşluksuz). Adı "olsun" Ortalama Kalori İçeriği"ve sütunda" İfade"Yeni alanın hesaplanacağı mevcut alanın adını yazıyoruz. Oraya yazıyoruz " Kalori içeriği". Kolon " Başlık" otomatik olarak doldurulacaktır.

Yeni bir alan ekledik (" Ortalama Kalori İçeriği"), ancak raporda tek başına görünmeyecek - tekrar aramanız gerekiyor ayar tasarımcısı("sihirli değnek") veya bu alanı ekleyin manuel olarak.

Hadi yapalım ikinci yol. Bunu yapmak için sekmeye gidin " Ayarlar", seçme " Rapor"(sonuçta alanı bütün olarak rapora eklemek istiyoruz), alttaki sekmeyi seçin" Seçilen alanlar"ve alanı sürükleyin" Ortalama Kalori İçeriği"sol sütundan sağa:

Şöyle ortaya çıktı:

Bir rapor kaydedip oluşturuyoruz:

Alanı ortaya çıktı ve değerlerinin "Kalori" alanının değerleri olduğunu görüyoruz. Harika!

Bunu yapmak için zaten bize tanıdık gelen mekanizmayı tekrar kullanacağız. kaynaklar(özetleme). Sekmeye git " Kaynaklar"ve alanı sürükleyin" Ortalama Kalori İçeriği"sol sütundan sağa:

Üstelik "sütununda" İfade"seçmek" Ortalama(OrtalamaKalori)":

Bir rapor kaydedip oluşturuyoruz:

Gruplar için yani her renk için ve raporun tamamı için ortalama değerin kesinlikle doğru hesaplandığını görüyoruz. Ama onlar mevcut ekstra girişler rapordan kaldırmak istediğim tek tek ürünler (gruplar değil) için.

Neden ortaya çıktıklarını biliyor musunuz (değerler gruba göre değil)? Çünkü alanı eklediğimizde " Ortalama Kalori İçeriği"rapor ayarlarında ikinci adımda seçtik raporun tamamı ve bu yeni alan " öğesinde sona erdi" Detaylı kayıtlar".

Hatayı düzeltelim. Bunu yapmak için sekmeye geri dönün " Ayarlar", seçme " Ayrıntılı girişler" önce yukarıdan (2. adım) ve sonra " Ayrıntılı girişler"aşağıdan (3. adım), yer imine gidin" Seçildi alanlar" ve sağ sütununda öğeyi göreceğiz " Oto".

Öğe " Oto" - bu tek bir alan değil. Bunlar, üst düzey ayarlara göre otomatik olarak buraya düşen birkaç alandır.

Bu alanların ne olduğunu görmek için " öğesine tıklayın Oto" Sağ düğmesine basın ve " Genişletmek":

Öğe " Oto" aşağıdaki alanlara genişletildi:

Ve işte bizim alanımız" Ortalama Kalori İçeriği"bu noktadan buraya geldi" Rapor" Onu oraya sürüklediğimizde. hadi kaldıralımÇıktısını kaldırmak için bu alanın yanındaki kutuyu işaretleyin.

Yaklaşan 8.2.14 sürümünün ışığında, veri kompozisyon sisteminin bazı yeni fonksiyonlarını anlatmaya çalışacağım.

Düzenlemeyi kolaylaştırmak için veri düzeni diyagramını tercihen harici bir raporda açın.

Sorgu türünün bir veri kümesini ekliyoruz ve manuel olarak veya sorgu tasarımcısını kullanarak basit bir sorgu yazıyoruz:

1. Erişim kontrol sisteminde bir istek oluşturun.

2. Erişim kontrol sisteminde hesaplanan alanları ayarlayın

3. Ayarlar sekmesinde veri düzenini yapılandırın

4. 1C Enterprise 8.2.14'ü başlatın. Raporu açın. Biz oluştururuz, alırız.

Yeni işlevlerin açıklaması:

1. Geçerli tarih()

Sistem tarihini döndürür. Bir düzen düzeni oluştururken, düzende bulunan tüm ifadelerde CurrentDate() işlevi, geçerli tarihin değeriyle değiştirilir.

2. COMPUTEEXPRESSION()

Sözdizimi:

İfadeyi Hesapla(,)

Tanım:

İşlev, bir ifadeyi bazı gruplandırma bağlamında değerlendirmek için tasarlanmıştır.

İşlev, gruplamaların seçimini hesaba katar ancak hiyerarşik seçimleri hesaba katmaz.

İşlev, bir gruplamaya ait grup seçiminde o gruplamaya uygulanamaz. Örneğin, Adlandırma gruplandırmasını seçerken şu ifadeyi kullanamazsınız: CalculateExpression("Toplam(ToplamTurnover)", "ToplamToplam") > 1000. Ancak hiyerarşik seçimde böyle bir ifade kullanılabilir.

Bitiş kaydı başlangıç ​​kaydından önce geliyorsa, detaylı verilerin hesaplanmasına ve toplu fonksiyonların hesaplanmasına yönelik kayıtların olmadığı kabul edilir.

Genel toplam için aralık ifadelerini hesaplarken (Gruplandırma parametresi Genel Toplam olarak ayarlanmıştır), ayrıntılı verileri hesaplamak ve toplama işlevlerini hesaplamak için hiçbir kayıt olmadığı varsayılır.

Bir işlev ifadesi oluştururken düzen bağlayıcı İfadeyi Hesapla sıralama ifadesi gruplandırmada kullanılamayan alanlar içeriyorsa işlevin yerine geçer İfadeyi Hesapla Açık HÜKÜMSÜZ.

Seçenekler

Tip: Astar. Değerlendirilecek ifade.

Tip: Astar. İfadenin değerlendirileceği bağlamdaki gruplamanın adını içerir. Grup adı kullanılıyorsa boş satır, hesaplama mevcut gruplandırma bağlamında gerçekleştirilecektir. Grup adı olarak GenelToplam dizesi kullanılırsa hesaplama genel toplam bağlamında gerçekleştirilecektir. Aksi takdirde hesaplama aynı adı taşıyan üst grup bağlamında gerçekleştirilecektir.

Örneğin:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "Toplam")

İÇİNDE bu örnekte sonuç, toplamın alana oranı olacaktır Satış.TutarCiro kayıtları tüm düzende aynı alanın toplamına göre gruplamak;

Tip: Astar. Parametre aşağıdaki değerleri alabilir:

· Genel Toplam— ifade tüm gruplama kayıtları için hesaplanacaktır.

· Hiyerarşi— ifade, varsa üst hiyerarşik kayıt için, üst hiyerarşik kayıt yoksa tüm gruplama için değerlendirilecektir.

· Gruplama— ifade mevcut grup gruplandırma kaydı için değerlendirilecektir.

· GruplamaKaynak Dışı— kaynaklara göre bir grup kaydı için bir işlev hesaplanırken, ifade orijinal gruplandırmanın ilk grup kaydı için hesaplanacaktır.

Bir fonksiyonu hesaplarken Hesaplamaİfadesi() anlamı olan GruplamaKaynak Dışı kaynaklara göre gruplandırılmayan grup kayıtları için işlev, parametre değerinin değere eşit olması durumunda hesaplanacağı şekilde hesaplanır. Gruplama.

Veri kompozisyonu düzeni oluşturucusu, mizanpajda gruplandırmanın gerçekleştirildiği kaynak alanının çıktısını alırken bir veri kompozisyonu düzeni oluştururken, işlev kullanılarak hesaplanan mizanpaja bir ifade yerleştirir. Hesaplamaİfadesi() , parametreyi belirten GruplamaKaynak Dışı. Diğer kaynaklar için olağan kaynak ifadeleri kaynak gruplamasına yerleştirilir.

Tip: Astar. Parçanın hangi kayıttan başlaması gerektiğini, hangi toplu ifade fonksiyonlarının hesaplanması gerektiğini ve toplama fonksiyonları dışındaki alan değerlerinin hangi kayıttan alınacağını belirtir. Değer aşağıdakilerden biri olabilir:

· Birinci

· Son (Son)

· Öncesi

· Sonraki (Sonraki)

· Akım

· Sınırlayıcı Değer(Sınır değeri) Sınırlayıcı Değer

Tip: Astar. İfadenin toplu fonksiyonlarının hesaplanması gereken parçanın hangi kayda kadar devam etmesi gerektiğini belirtir. Değer aşağıdakilerden biri olabilir:

· Birinci. İlk gruplama kaydını almak gerekir. Parantez içindeki kelimeden sonra, sonucu gruplamanın başlangıcından itibaren ofset olarak kullanılacak bir ifade belirleyebilirsiniz. Ortaya çıkan değer sıfırdan büyük bir tam sayı olmalıdır. Örneğin, İlk(3) - gruplamanın başlangıcından itibaren üçüncü kaydın alınması.

İlk kayıt gruplamanın dışında ise kayıt olmadığı kabul edilir. Örneğin 3 kayıt varsa ve First(4) almak istiyorsanız bu durumda kayıt olmadığı kabul edilir.

· Son (Son). Son gruplandırma kaydını almanız gerekir. Parantez içindeki kelimeden sonra, sonucu gruplamanın sonundan itibaren sapma olarak kullanılacak bir ifade belirleyebilirsiniz. Ortaya çıkan değer sıfırdan büyük bir tam sayı olmalıdır. Örneğin, Son(3) - grubun sonundan üçüncü kaydın alınması.

Eğer son kayıt gruplandırmanın ötesine geçtiğinde herhangi bir kayıt bulunmadığı kabul edilir. Örneğin 3 kayıt varsa ve Last(4) almak istiyorsanız bu durumda kayıt olmadığı kabul edilir.

· Öncesi. Önceki gruplama kaydını almanız gerekir. Parantez içindeki sözcükten sonra, sonucu geçerli gruplama kaydından geriye doğru bir sapma olarak kullanılacak bir ifade belirleyebilirsiniz. Örneğin, Önceki(2) - önceki kayıttan öncekini almak.

Önceki kayıt gruplamanın dışına çıkıyorsa (örneğin ikinci gruplama kaydı için Önceki(3) almanız gerekir) ilk gruplama kaydı elde edilir.

Gruplandırma toplamı için önceki kayıt alınırken ilk kaydın elde edildiği kabul edilir.

· Sonraki (Sonraki). Bir sonraki gruplama kaydını almanız gerekir. Parantez içindeki sözcükten sonra, sonucu geçerli gruplama girişinden ileriye doğru bir sapma olarak kullanılacak bir ifade belirtebilirsiniz. Örneğin, Sonraki(2) - sonraki kayıttan sonrakine geçmek.

Bir sonraki kaydın gruplamanın dışına çıkması durumunda kayıt olmadığı kabul edilir. Örneğin, 3 giriş varsa ve üçüncü giriş Next() alıyorsa bu durumda hiçbir giriş olmadığı kabul edilir.

Gruplandırma toplamı için bir sonraki kayıt alındığında kayıt olmadığı kabul edilir.

· Akım. Güncel kaydı almanız gerekiyor.

Gruplandırma toplamı alınırken ilk kayıt elde edilir.

· Sınırlayıcı Değer(Sınır değeri). Belirtilen değere göre bir kayıt alma ihtiyacı. Kelimeden sonra Sınırlayıcı Değer parantez içinde, ilk sıralama alanı olan parçayı başlatmak istediğiniz değeri olan ifadeyi belirtmeniz gerekir.

Sıralama alanı değeri belirtilen değerden büyük veya ona eşit olan ilk kayıt, kayıt olarak döndürülür. Örneğin Dönem alanı sıralama alanı olarak kullanılıyorsa ve 01/01/2010, 02/01/2010, 03/01/2010 değerlerine sahipse ve almak istiyorsanız LimitingValue(DateTime(2010, 1, 15)) 02/01/2010 tarihli bir kayıt gelecektir.

Tip: Astar. Sıralama kurallarını açıklayan ifadeleri virgülle ayırarak listeler. Belirtilmezse sıralama, ifadenin değerlendirildiği gruplandırmayla aynı şekilde gerçekleştirilir. Her ifadeden sonra belirtebilirsiniz anahtar kelime Yaş(artan düzende sıralamak için), Azalan(azalan sırada sıralamak için) ve Otomatik sipariş(referans alanlarını, başvurulan nesneyi sıralamak istediğiniz alanlara göre sıralamak için). Kelime Otomatik sipariş kelimesinde olduğu gibi kullanılabilir Yaş yani kelimeyle Azalan.

Tip: Astar. Parametreyle aynı Sıralama. Hiyerarşik kayıtları düzenlemek için kullanılır. Belirtilmezse düzen oluşturucu, parametrede belirtilen sıralamaya göre sıralamayı oluşturur Sıralama.

Tip: Astar. Aynı sıralama değerine sahip birden fazla kaydın olması durumunda önceki veya sonraki kaydın belirlenmesine yönelik kuralı belirtir:

· Ayrı ayrıönceki ve sonraki kayıtları belirlemek için sıralı kayıt dizisinin kullanıldığını belirtir. Varsayılan değer.

· Birlikte sıralama ifadelerinin değerlerine göre önceki ve sonraki kayıtların belirlendiğini belirtir.

Örneğin, ortaya çıkan sıra tarihe göre sıralanmışsa:

tarih Ad Soyad Anlam
1 01 Ocak 2001

İvanov M.

10
2 02 Ocak 2001 Petrov S. 20
3 03 Ocak 2001 Sidorov R. 30
4 04 Ocak 2001 Petrov S. 40

Ayrı ayrı, O:

§ Giriş 3'ten önceki giriş, giriş 2 olacaktır.

Şimdiki şimdiki(buna göre parametreler Başlangıç Ve Son), o zaman kayıt 2 için bu parça bir kayıt 2'den oluşacaktır. İfade 20'ye eşit olacaktır.

Parametre değeri ise Birlikte, O:

§ Giriş 3'ten önceki giriş, giriş 1 olacaktır.

§ hesaplama parçası şu şekilde tanımlanmışsa Şimdiki şimdiki(buna göre parametreler Başlangıç Ve Son), o zaman kayıt 2 için bu parça kayıt 2 ve 3'ten oluşacaktır. CalculateExpression("Toplam(Değer)", Geçerli, Geçerli) 50'ye eşit olacaktır.

Şuna eşit bir parametre değeri belirlerken: Birlikte, parametrelerde Başlangıç Ve Son konumlar için bir uzaklık belirleyemezsiniz İlk, Son, Önceki, Sonraki.

CalculateExpression("Toplam(ToplamTurnover)", "İlk", "Geçerli")

Bir önceki satırdaki gruplandırma değerini almak istiyorsanız aşağıdaki ifadeyi kullanabilirsiniz:

CalculateExpression("Oran", "Önceki")

Liste yeni işlevler:

CalculateExpressionWithGroupArray(,) -

İşlev, her bir öğesi, bir ifadenin belirtilen alana göre gruplandırılması için değerlendirilmesinin sonucunu içeren bir dizi döndürür.

İfadeyiGrupValueTable ile Hesapla(,) -

İşlev, her satırı belirtilen alana göre gruplandırma için ifadelerin değerlendirilmesinin sonucunu içeren bir değerler tablosu döndürür.

DeğerDolu() - Değer, değerden farklıysa True değerini döndürür bu türden varsayılan, NULL dışında, boş referans dışında, Tanımsız dışında. NULL değerler için Boolean değerleri kontrol edilir. Dizeler, boşluk olmayan karakterlerin bulunmaması açısından kontrol edilir

Biçim(, ) - Aktarılan değerin biçimlendirilmiş bir dizesini alın. Biçim dizesi, 1C:Enterprise sisteminin biçim dizesine uygun olarak ayarlanır.

Alt dize(, , ) - Bu işlev bir dizeden bir alt dize çıkarmak için tasarlanmıştır.

Hat Uzunluğu() - İşlev bir dizenin uzunluğunu belirlemek için tasarlanmıştır. Parametre bir dize ifadesidir

Astar() - Bir dizi parametre olarak aktarılırsa işlev, "; " karakterleriyle ayrılmış olarak tüm dizi öğelerinin dize temsillerini içeren bir dize döndürür. Parametre olarak bir değerler tablosu iletilirse, işlev, değerler tablosunun tüm satırlarının dize temsillerini içeren, her satırın hücre temsilleri ";" karakterleriyle ayrılmış ve satırlar bir yeni satırla ayrılmış şekilde içeren bir dize döndürür. karakter. Bir elemanın dize gösterimi boşsa, onun gösterimi yerine bir dize görüntülenir.