Menü
Ücretsiz
Kayıt
Ev  /  Multimedya/ Veri kompozisyon sisteminin ifade dilinin işlevleri. ACS ifade dilinin ACS İşlevlerinde alanları klasörlere göre gruplandırma

Veri kompozisyon sisteminin ifade dilinin işlevleri. ACS ifade dilinin ACS İşlevlerinde alanları klasörlere göre gruplandırma

1. Hesapla (Değerlendir)- Bir ifadeyi bazı gruplandırmalar bağlamında değerlendirmeyi amaçlamaktadır. İşlev, platformun önceki sürümleriyle uyumluluk için kullanılır. Bunun yerine CalculateExpression işlevinin kullanılması önerilir.

Sözdizimi:
Hesapla(İfade, Gruplandırma, Hesaplama Türü)

Parametreler:

  • İfade(Astar). Hesaplanmış bir ifade içerir;
  • Gruplama(Astar). İfadenin değerlendirileceği bağlamdaki gruplamanın adını içerir. Gruplandırma adı olarak boş bir dize kullanılırsa hesaplama geçerli gruplandırma bağlamında gerçekleştirilecektir. Grup adı olarak Genel Toplam dizesi kullanılırsa hesaplama genel toplam bağlamında gerçekleştirilecektir. Aksi takdirde hesaplama aynı adı taşıyan üst gruplama bağlamında gerçekleştirilecektir.
    Örneğin:
    Sum(Sales.SumTurnover) / Calculate("Sum(Sales.SumTurnover)", "Toplam").
    Bu örnekte sonuç, gruplama kaydının "Sales.AmountTurnover" alanına ilişkin tutarın tüm düzende aynı alanın tutarına oranı olacaktır.
  • Hesaplama türü(Astar). Bu parametre "TotalTotal" olarak ayarlanırsa ifade tüm gruplama kayıtları için hesaplanacaktır. Parametrenin değeri "Gruplama" ise mevcut gruplama grup kaydı için değerler hesaplanacaktır.
2. İfadeyi Değerlendirin (EvalExpression) - Bir ifadeyi bazı gruplandırmalar bağlamında değerlendirmeyi amaçlamaktadır. İşlev, gruplamaların seçimini hesaba katar ancak hiyerarşik seçimleri hesaba katmaz. İşlev, bir gruplandırmanın grup seçiminde bir gruplamaya uygulanamaz.

Sözdizimi:
CalculateExpression(İfade, Gruplandırma, Hesaplama Türü, Başlangıç, Bitiş, Sıralama, Hiyerarşik Sıralama, İşlemeIdenticalOrderValues)

Parametreler:

  • İfade(Astar). Hesaplanmış bir ifade içerir;
  • Gruplama(Astar). İfadenin değerlendirileceği bağlamdaki gruplamanın adını içerir. Gruplandırma adı olarak boş bir dize kullanılırsa hesaplama geçerli gruplandırma bağlamında gerçekleştirilecektir. Grup adı olarak Genel Toplam dizesi kullanılırsa hesaplama genel toplam bağlamında gerçekleştirilecektir. Aksi takdirde hesaplama o isimdeki üst gruplama bağlamında gerçekleştirilecektir;
  • Hesaplama türü(Astar). Bu parametre "TotalTotal" olarak ayarlanırsa ifade tüm gruplama kayıtları için hesaplanacaktır. Parametrenin değeri "Gruplama" ise mevcut gruplama grup kaydı için değerler hesaplanacaktır. Parametre "Kaynak Dışı Gruplandırma" olarak ayarlanırsa kaynağa göre bir grup kaydının işlevi hesaplanırken ifade, orijinal gruplandırmanın ilk grup kaydı için değerlendirilecektir. Kaynağa göre gruplandırılmayan grup kayıtları için CalculateExpression işlevi "GroupingNonResource" değeriyle değerlendirilirken, işlev "Grouping" parametresinin değeriyle değerlendirileceği şekilde değerlendirilir. Veri kompozisyonu düzeni oluşturucu, bir alanın (gruplandırmanın gerçekleştirildiği bir kaynak) çıktısı alınırken bir veri kompozisyonu düzeni oluştururken, düzene, belirtilen "GroupingNon-Resource" parametresi ile CalculateExpression işlevi kullanılarak hesaplanan bir ifadenin çıktısını verir. Kaynağa göre gruplandırılan diğer kaynaklar için normal kaynak ifadeleri döndürülür. Parametre "Hiyerarşi" olarak ayarlanmışsa ifadenin, varsa üst hiyerarşik kayıt için, üst hiyerarşik kayıt yoksa tüm gruplama için değerlendirilmesi gerekir. Düzen oluşturucu, Hiyerarşi Grubu alanında % için bir ifade oluştururken, Hiyerarşi hesaplama türüne sahip geçerli gruplandırma için hesaplanmakta olan kaynak ifadesi için kaynak ifadesinin CalculateExpression işleviyle ilişkisini içeren bir ifade oluşturur.
  • Başlangıç. 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. Aşağıdakilerden birini içeren bir dize:
    • "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) – gruplandırmanın başlangıcından itibaren üçüncü kaydı alma. İ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 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ı. Son kayıt gruplamanın dışında ise kayıt olmadığı 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 gruplandırma kaydından geriye doğru bir sapma olarak kullanılacak bir ifade belirtebilirsiniz. Örneğin, Önceki(2) – önceki kayıttan öncekini almak. Önceki kayıt gruplamanın dışındaysa (örneğin ikinci gruplama kaydı Önceki(3) almayı gerektiriyorsa) ilk gruplama kaydı elde edilir. Gruplandırma toplamı için bir önceki kayıt alınırken ilk kayıt elde edilir.
    • "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 sonrakini almak. 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 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ır Değeri". Belirtilen değere göre bir kayıt alma ihtiyacı. Parantez içindeki LimitingValue kelimesinden sonra ilk sıralama alanı olan fragmenti başlatmak istediğiniz değeri olan ifadeyi belirtmeniz gerekiyor. 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 LimitingValue(DateTime(2010) değerini almak istiyorsanız , 1, 15)), daha sonra 02/01 2010 tarihli bir kayıt elde edilecektir.
  • Son. Parçanın hangi kayda kadar devam etmesi gerektiğini, toplu ifadenin hesaplanması gerektiğini belirtir. Aşağıdakilerden birini içeren bir dize:
    • "Birinci"
    • "Son"
    • "Öncesi"
    • "Sonraki"
    • "Akım".
    • "Sınır Değeri".
  • Sıralama. Sıranın sıralanması gereken yönde virgüllerle ayrılmış ifadeleri listeleyen bir dize. Belirtilmezse sıralama, ifadenin değerlendirildiği gruplandırmayla aynı şekilde gerçekleştirilir. Her ifadeden sonra, artan sırada sıralamak için Artan anahtar sözcüğünü, azalan sırada sıralamak için Azalan anahtar sözcüğünü, referans alanlarını, başvurulan nesneyi sıralamak istediğiniz alanlara göre sıralamak için Otomatik Sıralama anahtar sözcüğünü belirleyebilirsiniz. Otomatik Sıralama kelimesi hem Artan hem de Azalan kelimesiyle birlikte kullanılabilir.
  • Hiyerarşik Sıralama. Sıralamaya benzer. Hiyerarşik kayıtları düzenlemek için kullanılır. Belirtilmediği takdirde düzen oluşturucu sıralamayı Sort parametresinde belirtilen sıralamaya göre oluşturur.
  • Aynı Sıra Değerlerinin İşlenmesi. Aşağıdakilerden birini içeren bir dize:
    • "Birlikte", önceki ve sonraki kayıtları belirlemek için sıralı kayıtlar dizisinin kullanıldığı anlamına gelir;
    • "Ayrı ayrı", sıralama ifadelerinin değerlerine göre önceki ve sonraki kayıtların belirlendiği anlamına gelir;
    Örneğin, elde edilen sıra tarihe göre sıralanmışsa:
    1. 01 Ocak 2001 Ivanov M.10
    2. 02 Ocak 2001 Petrov S.20
    3. 02 Ocak 2001 Sidorov R.30
    4. 03 Ocak 2001 Petrov S.40
    "Ayrı Olarak" sırasının aynı değerlerinin işlenmesini kullanırken, kayıt 3 için bir önceki kayıt 2 olacak ve "Birlikte" kullanıldığında - kayıt 1 olacaktır. Ve "Ayrı Olarak" için kayıt 2 için mevcut kaydın parçası olacaktır. kayıt 2 olacak ve "Birlikte" için - kayıt 2 ve 3 olacaktır. Böylece, mevcut kaydın toplamı "Ayrı Olarak" için 20 ve "Birlikte" için - 50 olacaktır. Başlangıç ​​ve Başlangıç'ta "Birlikte" belirtildiğinde Son parametreler, “İlk”, “Son”, “Önceki”, “Sonraki” konumları için bir ofset belirleyemezsiniz. Varsayılan değer "Ayrı"dır.
Örnek:
Bir gruplama kaydının "Sales.AmountTurnover" alanına ilişkin tutarın, tüm düzendeki aynı alanın tutarına oranının elde edilmesi:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Toplam").

Bu örnek, mevcut hiyerarşinin değerini hesaplar:
Seçenek
Seviye() > 0 olduğunda
Sonra EvaluateExpression("Referans", "Hiyerarşi")
Aksi takdirde Boş
Son

Notlar:
İşlev, gruplamaların seçimini hesaba katar ancak hiyerarşik seçimleri hesaba katmaz. İşlev, bir gruplandırmanın grup seçiminde bir gruplamaya uygulanamaz. Örneğin, Adlandırma gruplandırmasını seçerken CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 ifadesini kullanamazsınız. 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 ifadeleri hesaplanırken (Gruplandırma parametresi "BrütToplam" olarak ayarlanmıştır), ayrıntılı verileri hesaplamak ve toplama işlevlerini hesaplamak için hiçbir kayıt olmadığı varsayılır. EvaluateExpression işlevi için bir ifade oluştururken, sıralama ifadesi gruplandırmada kullanılamayan alanlar içeriyorsa düzen oluşturucu EvaluateExpression işlevini NULL ile değiştirir.

3. İfadeyi Grup Dizisi ile Değerlendirin (Grup Dizisi ile EvalExpression) - işlev, her öğesi belirtilen alana göre gruplandırmaya yönelik bir ifadenin hesaplanmasının sonucunu içeren bir dizi döndürür.

Sözdizimi:
CalculateExpressionWithGroupArray (İfade, GroupFieldExpressions, SelectRecords, SelectGroups)

Parametreler:

  • İfade(String) - değerlendirilecek ifade. Örneğin, "Tutar(TutarCiro)";
  • Alan İfadeleriGrupları
  • Kayıtların Seçimi
  • Gruplamaların Seçimi- grup kayıtlarına uygulanan seçim. Örneğin: "Tutar(TutarCiro) > &Parametre1".
Örnek:
Maksimum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Karşı Taraf"));


Düzen oluşturucu, ifadesi yalnızca CalculateArrayWithGroup işlevini içeren özel bir alanı görüntülemek için ifadeler oluştururken, çıktı ifadesini, görüntü verileri ve veriler sıralanacak şekilde 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))), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. GroupValueTable (EvalExpressionWithGroupValueTable) ile İfadeyi Hesaplayın - işlev, her öğesi belirtilen alana göre gruplandırmaya yönelik bir ifadenin hesaplanmasının sonucunu içeren bir değerler tablosu döndürür.

Sözdizimi:
CalculateExpressionWithGroupValueTable(Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Parametreler:

  • İfade(String) - değerlendirilecek ifade. Bir satır virgülle ayrılmış birden fazla ifade içerebilir. Her ifadeden sonra isteğe bağlı bir AS anahtar sözcüğü ve değer tablosu sütununun adı bulunabilir. Örneğin: "Karşı Taraf, Satış Hacmi Olarak Tutar (Ciro Tutarı)."
  • Alan İfadeleriGrupları- virgülle ayrılmış olarak gruplandırma alanlarının ifadeleri. Örneğin "Karşı Taraf, Taraf";
  • Kayıtların Seçimi- detay kayıtlarına uygulanan bir ifade. Örneğin, "Silme Bayrağı = Yanlış." Bu parametre bir toplama işlevi kullanıyorsa veriler oluşturulurken bir hata meydana gelecektir;
  • Gruplamaların Seçimi- grup kayıtlarına uygulanan seçim. Örneğin: "Tutar(TutarCiro) > &Parametre1".
Örnek:
CalculateExpressionWithGroupValueTable("Karşı Taraf Olarak Hesap, Satış Hacmi Olarak Tutar(AmountTurnover)", "Hesap")

Bu işlevin sonucu, karşı tarafları satış hacimleriyle birlikte içerecek olan Karşı Taraf ve Satış Hacmi sütunlarına sahip bir değerler tablosu olacaktı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.
Örneğin, şu ifadeyi içeren özel bir alan:
CalculateExpressionWithGroupValueTable("Hesap, Tutar(AmountTurnover)", "Hesap")
Düzen oluşturucu çıktı için aşağıdaki ifadeyi oluşturacaktır:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountReference, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), "2, 4"))

5. Seviye - fonksiyon mevcut kayıt seviyesini elde etmek için tasarlanmıştır.

Sözdizimi:
Seviye()

Örnek:
Seviye()

6. Sıra Numarası - bir sonraki seri numarasını alın.

Sözdizimi:
NumberByOrder()

Örnek:
NumberByOrder()

7. SıraNumberInGruplama - geçerli gruplamadaki bir sonraki sıra numarasını döndürür.

Örnek:
NumberByOrderInGroup()

8. Biçim - iletilen değerin biçimlendirilmiş bir dizesini alın.

Sözdizimi:
Format(Değer, FormatString)

Parametreler:

  • Anlam- biçimlendirilmesi gereken ifade;
  • BiçimDizesi- biçim dizesi 1C:Enterprise biçim dizesine uygun olarak ayarlanır.
Örnek:
Format(Faturalar.Doc Tutarı, "NPV=2")

9.Dönem Başlangıcı

Sözdizimi:
StartPeriod(Tarih, PeriodType)

Parametreler:

  • Tarih(Tarih). Belirtilen tarih;
  • Dönem Türü
Örnek:
StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Ay")
Sonuç: 10/01/2002 0:00:00

10. Dönem Sonu - işlev, belirli bir tarihten belirli bir tarihi seçmek için tasarlanmıştır.

Sözdizimi:
EndPeriod(Tarih, Dönem Türü)

Parametreler:

  • Tarih(Tarih). Belirtilen tarih;
  • Dönem Türü(Astar). Aşağıdaki değerlerden birini içerir: Dakika; Saat; Gün; Hafta; Ay; Çeyrek; Yıl; On yıl; Yarı yıl.
Örnek:
EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Hafta")
Sonuç: 13.10.2002 23:59:59

11. KTarih Ekle (Tarih Ekle) - işlev tarihe belirli bir değer katmak için tasarlanmıştır.

Sözdizimi:
AddToDate(İfade, Artış Türü, Büyüklük)

Parametreler:

  • İfade(Tarih). Orijinal tarih;
  • TürBüyütme(Astar). Aşağıdaki değerlerden birini içerir: Dakika; Saat; Gün; Hafta; Ay; Çeyrek; Yıl; On yıl; Yarı yıl.
  • Büyüklük(Sayı). Tarihin ne kadar artırılması gerekiyorsa kesirli kısım göz ardı edilir.
Örnek:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Ay", 1)
Sonuç: 11/12/2002 10:15:34

12. Tarih Farkı - fonksiyon iki tarih arasındaki farkı elde etmek için tasarlanmıştır.

Sözdizimi:
FarkTarihi(İfade1, İfade2, FarkTürü)

Parametreler:

  • İfade1(Tarih). Çıkarılan tarih;
  • İfade2(Tarih). Orijinal tarih;
  • TipFark(Astar). Aşağıdaki değerlerden birini içerir: İkinci; Dakika; Saat; Gün; Ay; Çeyrek; Yıl.
Örnek:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "GÜN")
Sonuç: 2

13. Alt dize - bu işlev bir dizeden bir alt dize çıkarmak için tasarlanmıştır.

Sözdizimi:
Alt dize(Dize, Konum, Uzunluk)

Parametreler:

  • Astar(Astar). Alt dizenin çıkarıldığı dize;
  • Konum(Sayı). Dizeden çıkarılacak alt dizenin başladığı karakterin konumu;
  • Uzunluk(Sayı). Tahsis edilen alt dizenin uzunluğu.
Örnek:
SUBSTRING(Hesaplar.Adres, 1, 4)

14. Dize Uzunluğu - işlev bir dizenin uzunluğunu belirlemek için tasarlanmıştır.

Sözdizimi:
StringLength(Dize)

Parametre:

  • Astar(Astar). Uzunluğu belirtilen bir dize.
Örnek:
Satır(Karşı Taraflar.Adres)

15. Yıl- bu işlev, yılı bir Tarih türü değerinden çıkarmak için tasarlanmıştır.

Sözdizimi:
Yıl(Tarih)

Parametre:

  • Tarih(Tarih). Yılın belirlendiği tarih.
Örnek:
YIL(Gider.Tarihi)

16. Çeyrek - bu işlev, çeyrek sayısını bir Tarih türü değerinden çıkarmak için tasarlanmıştır. Çeyrek sayısı normalde 1'den 4'e kadar değişir.

Sözdizimi:
Çeyrek(Tarih)

Parametre:

  • Tarih(Tarih). Çeyreğin belirlendiği tarih
Örnek:
ÇEYREK(Gider.Tarihi)

17. Ay - bu işlev, ay sayısını Tarih türü değerinden çıkarmak için tasarlanmıştır. Ay sayısı normalde 1'den 12'ye kadar değişir.

Sözdizimi:
Ay(Tarih)

Parametre:

  • Tarih(Tarih). Ayın belirlendiği tarih.
Örnek:
AY(Gider.Tarihi)

18. Yılın Günü (Yılın Günü) - bu işlev, bir Tarih türü değerinden yılın gününü elde etmek için tasarlanmıştır. Yılın günü normalde 1 ile 365 (366) arasında değişir.

Sözdizimi:
Yılın Günü(Tarih)

Parametre:

  • Tarih(Tarih). Yılın gününün belirlendiği tarih.
Örnek:
GÜNYIL(GiderHesabı.Tarih)

19. Gün- bu işlev, bir Tarih türü değerinden ayın gününü elde etmek için tasarlanmıştır. Ayın günü normalde 1 ile 31 arasında değişir.

Sözdizimi:
Gün(Tarih)

Parametre:

  • Tarih(Tarih). Ayın gününün belirlendiği tarih.
Örnek:
GÜN(Gider.Tarihi)

20. Hafta - bu işlev, bir Tarih türü değerinden yılın hafta numarasını elde etmek için tasarlanmıştır. Yılın haftaları 1'den başlayarak numaralandırılır.

Sözdizimi:
Hafta(Tarih)

Parametre:

  • Tarih(Tarih). Hafta numaralarının belirlendiği tarih.
Örnek:
HAFTA(Gider.Tarih)

21. HaftaGün - bu işlev, Tarih türü değerinden haftanın gününü elde etmek için tasarlanmıştır. Haftanın normal günü 1'den (Pazartesi) 7'ye (Pazar) kadar değişir.

Sözdizimi:
Haftanın Günü(Tarih)

Parametre:

  • Tarih(Tarih). Haftanın gününün belirlendiği tarih.
Örnek:
HAFTANIN GÜNÜ(Gider.Tarih)

22. Saat- bu işlev, Tarih türü değerinden günün saatini elde etmek için tasarlanmıştır. Günün saati 0 ila 23 arasındadır.

Sözdizimi:
Saat(Tarih)

Parametre:

  • Tarih(Tarih). Günün saatinin belirlendiği tarih.
Örnek:
SAAT(Gider.Tarih)

23. Dakika - bu işlev, Tarih türü değerinden saatin dakikasını elde etmek için tasarlanmıştır. Saatin dakikası 0 ile 59 arasında değişir.

Sözdizimi:
Dakika(Tarih)

Parametre:

  • Tarih(Tarih). Saatin dakikasının belirlendiği tarih.
Örnek:
DAKİKA(Gider.Tarih)

24. İkinci - bu işlev, Tarih türü değerinden bir dakikanın saniyesini elde etmek için tasarlanmıştır. Dakikanın saniyesi 0 ile 59 arasında değişir.

Sözdizimi:
İkinci(Tarih)

Parametre:

  • Tarih(Tarih). Dakikanın saniyelerinin belirlendiği tarih.
Örnek:
İKİNCİ(Bitiş Tarihi)

25. Oyuncular - bu işlev, bileşik tür içerebilecek bir ifadeden tür çıkarmak için tasarlanmıştır. İfade gerekli türden farklı bir tür içeriyorsa NULL döndürülür.

Sözdizimi:
Ekspres(İfade, TürGösterge)

Parametreler:

  • İfade- dönüştürülecek ifade;
  • Tip Göstergesi(Astar). Bir tür dizesi içerir. Örneğin, "Sayı", "Dize" vb. Bu satır, ilkel türlerin yanı sıra tablonun adını da içerebilir. Bu durumda, belirtilen tabloya bir referans ifade edilmeye çalışılacaktır.
Örnek:
Express(Data.Props1, "Sayı(10,3)")

26.IsNull (IsNull) - bu fonksiyon, eğer birinci parametrenin değeri NULL ise, ikinci parametrenin değerini döndürür. Aksi takdirde ilk parametrenin değeri döndürülecektir.

Sözdizimi:
IsNull(İfade1, İfade2)

Parametreler:

  • İfade1- kontrol edilecek değer;
  • İfade2- İfade1 NULL ise değeri döndürür.
Örnek:
YesNULL(Tutar(Satış.TutarCiro), 0)

27.ACo'lar- Ark kosinüsünü radyan cinsinden hesaplar.

Sözdizimi:
ACos(İfade)

Parametre:

  • İfade(Sayı). Açının belirlendiği kosinüs değeri (-1 ... 1 aralığında).
28.ASin- Arsinüsü radyan cinsinden hesaplar.

Sözdizimi:
ASin(İfade)

Parametre:

  • İfade(Sayı). Açının belirlendiği sinüs değeri (-1 ... 1 aralığında).
29.ATan- arktanjantı radyan cinsinden hesaplar.

Sözdizimi:
ATan(İfade)

Parametre:

  • İfade(Sayı). Açının belirlendiği teğet değeri.
30.Çünkü- kosinüsü hesaplar.

Sözdizimi:
Çünkü(İfade)

Parametre:

  • İfade
31. Deneyim- e sayısını bir kuvvete yükseltmek.

Sözdizimi:
İfade(İfade)

Parametre:

  • İfade(Sayı). Derecenin anlamı.
32.Günlük- doğal logaritmayı hesaplar.

Sözdizimi:
Günlük(İfade)

Parametre:

  • İfade
33.Günlük10- X'in 10 tabanına göre logaritmasını hesaplar.

Sözdizimi:
Log10(İfade)

Parametre:

  • İfade(Sayı). Orijinal sayı 0'dan büyüktür.
34. Güç- üs alma.

Sözdizimi:
Pow(Taban, Gösterge)

Parametreler:

  • Temel(Sayı). Üs alma işleminin temeli.
  • Gösterge(Sayı). Üs.
35. Günah- sinüsü hesaplar.

Sözdizimi:
Günah(İfade)

Parametre:

  • İfade(Sayı). Radyan cinsinden belirtilir.
36. Kare- karekökü hesaplar.

Sözdizimi:
Sqrt(İfade)

Parametre:

  • İfade(Sayı). Negatif olmayan sayı.
37. bronzluk- tanjantı hesaplar.

Sözdizimi:
Tan(İfade)

Parametre:

  • İfade(Sayı). Açının belirlendiği sinüs değeri.
38. Yuvarlak- orijinal sayıyı gerekli bit derinliğine yuvarlar. Yuvarlama modu standarttır (1,5 - 2).

Sözdizimi:
Env(İfade, Bit derinliği)

Parametreler:

  • İfade(Sayı). Orijinal numara;
  • Bit derinliği(Sayı). Yuvarlanacak ondalık basamak sayısı.
39. Uluslararası- bir sayının kesirli kısmını keser.

Sözdizimi:
Nesne(İfade)

Parametre:

  • İfade(Sayı). Kesirli sayı.
40. Ortak modüllerin işlevleri

Bir veri kompozisyonu motoru ifadesi, genel ortak konfigürasyon modüllerinin işlevlerine yapılan çağrıları içerebilir. Bu tür işlevleri çağırmak için ek bir söz dizimine gerek yoktur.

Örnek:
KısaltılmışAd(Belgeler.Bağlantı, Belgeler.Tarih, Belgeler.Numara)

Bu örnekte "KısaltılmışAd" fonksiyonu genel konfigürasyon modülünden çağrılacaktır.
Ortak modül işlevlerinin kullanımına yalnızca uygun veri bileşimi işlemci parametresinin belirtilmesi durumunda izin verildiğini unutmayın.
Ayrıca özel alan ifadelerinde ortak modüllerin işlevleri kullanılamaz.

41. Kızgınlık - bu işlev, ilkel olmayan bir türün iletilen değerinin dize temsilini döndürür. İlkel türdeki değerler için değerin kendisini döndürür.

<Пустое значение>".

Örnek:
Sunum(Karşı Taraf)

42. Dize - bu işlev iletilen değeri bir dizeye dönüştürür.

Parametre olarak bir dizi veya değerler tablosu kullanılıyorsa, işlev, "; " karakterleriyle ayrılmış olarak dizinin tüm öğelerinin dize temsilini içeren bir dize döndürür. Herhangi bir öğenin boş bir dize temsili varsa, o zaman " dizesi<Пустое значение>".

Örnek:
Satır(SatışTarihi)

43. DeğerDoludur

NULL değerler için Tanımsız her zaman False değerini döndürür.
Boolean değerleri için her zaman True değerini döndürür.
Diğer türler için, değer verilen türün varsayılan değerinden farklıysa True değerini döndürür.

Örnek:
DeğerDolu(TeslimatTarihi)

44. LevelInGroup - bu işlev, gruplamaya göre geçerli kayıt düzeyini alır.

Hiyerarşik bir gruplandırmada bir kaydın iç içe geçme düzeyini elde etmek için kullanılabilir.

Örnek:
LevelInGroup()

45. Değer Türü

Sözdizimi:
ValueType(İfade)

Parametre:

  • İfade(Astar). Dize değeri türü.
İşlev parametresinin değer türünü içeren Type türünde bir değer döndürür.
Platform: 8.3; Form türü: kontrollü.

Bugün kullanımı hakkında konuşacağız SKD'deki klasörler, hangi alanların yerleştirilebileceği ve bunun sonuçta neyi etkileyeceği. Daha spesifik olarak iki nokta dikkate alınacaktır - bu, yer iminde klasörlerin oluşturulmasıdır Veri kümeleri masada Alanlar ve bir yer iminde klasörler oluşturma Seçilen alanlar, bu da sekmede bulunur Ayarlar.

Örnek olarak daha önce yarattığımızı alalım ve onu deneyelim. Raporun aşağıdaki tabloyu gösterdiğini hatırlatmak isterim:

"Veri Kümeleri" sekmesinde alanları klasörler halinde gruplama

Bir rapor çok sayıda alan içerdiğinde, raporu ayarlarken gezinmeyi kolaylaştırmak için bunları bir veya başka bir özelliğe göre klasörler halinde düzenlemek önerilebilir. Yer iminde klasör oluşturmanın yardımcı olduğu yer burasıdır. Veri kümeleri. Bu durum raporun işleyişini hiçbir şekilde etkilemez.

Örneğimiz için bir klasör oluşturalım Özellikler alanları yerleştireceğimiz yer Ülke Ve İsim. Bu, ilgili düğme kullanılarak veya içerik menüsünden yapılır:

Şimdi alanları bu klasöre yerleştirmeniz gerekiyor. Ve ilk defa bu, bazı zorluklara neden oluyor çünkü ne kopyalama ne de sürükleme yardımcı olmuyor. Bunu yapmak için, klasörün adını ve bir noktayla ayrılmış olarak alanın adını belirttiğiniz alanların yolunu düzenlemeniz gerekir.

Şimdi ayarlarda seçilen alanlara geçelim ve yapılan değişikliklerin oraya nasıl yansıdığını görelim:

Gördüğünüz gibi iki alan silinmiş olarak işaretlendi. Bu nedenle listeden çıkarılıp tekrar eklenmeleri gerekir, ancak klasörden Özellikler:


Bu alanlar başka sekmelerde (Seçim, Sıralama vb.) kullanılmışsa ilgili değişikliklerin orada da yapılması gerekir.

Bir raporun görünümünü değiştirmek için alanları gruplandırma

Şimdi alanları yapalım Fiyat Ve Miktar raporda yan yana değil, alt alta görüntülendi; Bu alanların dikey bir gruplandırmasını oluşturalım. Bunu yapmak için sekmede Seçilen alanlar hadi bir klasör oluşturalım Göstergeler dikey bir konuma getirin ve içine taşıyın Fiyat Ve Miktar:


Raporu çalıştırıyoruz ve aşağıdaki görünümü elde ediyoruz:


Uygulamada, çeşitli düzeyde iç içe geçme ve farklı düzenleme türlerinden oluşan oldukça karmaşık gruplama yapılarıyla karşılaşılabilir.

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:


Hesaplanacak herhangi bir değerin üstünde veya altında olmadığından bu değer yalnızca bu gruplandırma düzeyinde hesaplanabilir. Ö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.SumTurnover))),Sum(DataSet.SumTurnover)",,"DataSet.Account"),"2")))

Parametreler:

Tür: Dize. Değerlendirilecek ifade. Satır, örneğin, Tutar(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:

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çerliTarih()

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 gruplandırmanın grup seçiminde bir 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. Gruplandırma adı olarak boş bir dize kullanılırsa hesaplama geçerli 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 gruplama bağlamında gerçekleştirilecektir.

Örneğin:

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

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 geçerli 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, düzende gruplandırmanın gerçekleştirildiği bir kaynak alanının çıktısını alırken bir veri kompozisyonu düzeni oluştururken, işlev kullanılarak hesaplanan düzene 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ı.

Son kayıt gruplamanın dışında ise kayıt olmadığı 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 gruplandırma kaydından geriye doğru bir sapma olarak kullanılacak bir ifade belirtebilirsiniz. Ö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 bir anahtar kelime belirleyebilirsiniz 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. Belirtilmediği takdirde 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, elde edilen 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.

Güncel, Güncel(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 Güncel, Güncel(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.

Grup Değeri Tablosu İle İfadeyi 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, bu türün varsayılan değerinden farklıysa, NULL dışında, boş bir başvuru dışında, Tanımsız dışındaysa True değerini döndürür. 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. Bir değerler tablosu parametre olarak iletilirse, işlev, değerler tablosunun tüm satırlarının dize temsillerini içeren, her satırın hücre temsilleri ";" karakterleri 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.

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çerliTarih()

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 gruplandırmanın grup seçiminde bir 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. Gruplandırma adı olarak boş bir dize kullanılırsa hesaplama geçerli 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 gruplama bağlamında gerçekleştirilecektir.

Örneğin:

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

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 geçerli 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, düzende gruplandırmanın gerçekleştirildiği bir kaynak alanının çıktısını alırken bir veri kompozisyonu düzeni oluştururken, işlev kullanılarak hesaplanan düzene 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ı.

Son kayıt gruplamanın dışında ise kayıt olmadığı 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 gruplandırma kaydından geriye doğru bir sapma olarak kullanılacak bir ifade belirtebilirsiniz. Ö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 bir anahtar kelime belirleyebilirsiniz 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. Belirtilmediği takdirde 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, elde edilen 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.

Güncel, Güncel(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 Güncel, Güncel(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.

Grup Değeri Tablosu İle İfadeyi 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, bu türün varsayılan değerinden farklıysa, NULL dışında, boş bir başvuru dışında, Tanımsız dışındaysa True değerini döndürür. 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. Bir değerler tablosu parametre olarak iletilirse, işlev, değerler tablosunun tüm satırlarının dize temsillerini içeren, her satırın hücre temsilleri ";" karakterleri 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.