1s SKD agregat funktsiyalari massivi. Ma'lumotlar kompozitsiyasi tizimining ifoda tilining funktsiyalari. Ustunlar tartibini o'zgartirish

Ushbu qisqacha eslatmada men ma'lumotlar tarkibi tizimidan foydalangan holda hisobotda guruhlashning turli darajalaridagi qiymatlarni qanday umumlashtirish mumkinligini ko'rsatmoqchiman.
Rasmda ko'rsatilganidek, faqat "Buyurtma" resursi faqat "Buyurtma guruhlari" guruhlash darajasida hisoblab chiqiladi, u ma'lum shartlar asosida joriy elementlar guruhi uchun qancha buyurtma berish kerakligini ko'rsatadi:


Bu qiymat faqat uchun hisoblanishi mumkin bu daraja guruhlar, chunki yuqorida yoki pastda hisoblash uchun hech qanday qiymat yo'q. Masalan, batafsil yozuvlar darajasida guruhdagi maksimal miqdor haqida ma'lumot yo'q, chunki bu ma'lumotlar faqat butun guruh uchun amal qiladi, uning alohida tarkibiy qismlari uchun emas.

Shunga ko'ra, endi yuqoridagi guruhlar bo'yicha ("Omborlar", "Ombor turlari") va umumiy summani hisoblash kerak.
Buning uchun funksiyadan foydalaning CalculateExpressionWithGroupArray:
GROUPARRAY BILAN IBODATNI BAHOLASH (EVALEXPRESSIONWITHGROUPARRAY)
Sintaksis:
EvaluateExpressionWithGroupArray(,)
Tavsif:
Funktsiya massivni qaytaradi, uning har bir elementi belgilangan maydon bo'yicha guruhlash uchun ifodani baholash natijasini o'z ichiga oladi.
Tartib tuzuvchisi tartibni yaratishda funksiya parametrlarini ma'lumotlar tarkibini joylashtirish maydonlari shartlariga aylantiradi. Masalan, Hisob maydoni DataSet.Account ga aylantiriladi.
Tartibni yaratuvchisi, ifodasi faqat CalculateArrayWithGroupArray() funksiyasini o'z ichiga olgan maxsus maydonning chiqishi uchun ifodalarni yaratishda chiqish ma'lumotlari tartiblangan bo'lishi uchun chiqish ifodasini yaratadi. Misol uchun, ifoda bilan maxsus maydon uchun:

CalculateExpressionWithGroupArray("Miqdor(summa aylanma)", "Qarshi tomon")
Tartib yaratuvchisi chiqish uchun quyidagi ifodani yaratadi:

Ulanish qatorlari(Masiv(Buyurtma(GuruhlashValueTableWithExpressionCalculateExpression("Ko'rish(Sum(DataSet.AmountTurnover)), Sum(DataSet.AmountTurnover)","DataSet.Account"),"2")))

Variantlar:

Turi: String. Baholanadigan ifoda. String, masalan, Amount(AmountTurnover).

Turi: String. Guruhlash maydon ifodalari - vergul bilan ajratilgan guruhlash maydonlarining ifodalari. Masalan, pudratchi, partiya.

Turi: String. Tafsilotli yozuvlarga qo'llaniladigan tanlovni tavsiflovchi ifoda. Bu ifoda agregat funktsiyalardan foydalanishni qo'llab-quvvatlamaydi. Masalan, DeletionFlag = False.

Turi: String. Guruh yozuvlariga qo'llaniladigan tanlovni tavsiflovchi ifoda. Masalan, Amount(AmountTurnover) > &Parameter1.
Misol:

Maksimal(CalculateExpressionWithGroupArray("Miqdor(AmountTurnover)", "Qarshi tomon"));

Funktsiya sintaksisining batafsil tavsifi bilan http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 manzilida tanishish mumkin.
Endi hisoblash uchun biz "Buyurtma" maydonini turli xil qiymatlar bilan "Hisoblash ..." bilan ko'paytiramiz, quyidagi iboralardan foydalangan holda, har bir yuqori darajadagi guruhlarda quyida joylashgan darajalarning qiymatlari qo'llanilishiga e'tibor bering. .

Natijada biz quyidagi qurilishni olamiz:

U bu usul Menimcha, minus bor, lekin u ishlaydi, lekin minus katta. Bir misolni ko'rib chiqaylik: konfiguratsiyada "Tovarlarni qabul qilish" hujjati mavjud jadval qismi"Mahsulotlar", hisobotda har bir hujjat uchun hujjatlar va olingan tovarlarning nomlarini ko'rsatish kerak.

Keling, hisobot yarataylik, asosiy ma'lumotlarni joylashtirish sxemasini qo'shamiz, kirishni boshqarish tizimiga "so'rov" turidagi ma'lumotlar to'plamini qo'shamiz va oddiy so'rovni yaratamiz (1-rasmga qarang).

1-rasm. Ma'lumotlar to'plami so'rovi
"Hisoblangan maydonlar" yorlig'ida TabularPart deb nomlangan hisoblangan maydonni qo'shing va Ifoda ustunida bo'sh qatorni belgilang (2-rasmga qarang).
Bizning hisoblangan maydonimiz manba sifatida ishlatiladi, shuning uchun "Resurslar" yorlig'ida biz guruhlash ifodasini o'rnatamiz: ConnectRows(Array(Mahsulotlar.Nomenklatura),""). Shuningdek, biz ushbu resursni Bog'lanish maydonidan foydalanib hisoblash kerakligini ko'rsatamiz (3-rasmga qarang).
Hisobot natijasi:
Salbiy tomoni guruhlashdan foydalanish, bizning holatlarimizda guruhlash Link atributi tomonidan amalga oshiriladi, aks holda u ishlamaydi. Guruhlashning mavjudligi ma'lumotlar chiqishini sozlashda ba'zi cheklovlarni qo'yadi (4-rasmga qarang).

2) Umumiy moduldan o'z funktsiyangizni chaqirish.

Oddiy va tushunarli usul, yagona qiyinchilik - mos umumiy modulni topish yoki o'z funktsiyangizni yozish uchun yangisini yaratish :). "Tovarni qabul qilish" hujjatiga o'tkazilgan havoladan foydalanib, funktsiya hujjatning jadval qismidan qatorlarni oladi va olingan tovarlar to'g'risidagi ma'lumotlar bilan qator hosil qiladi. Amalga oshirishni boshlaylik.

Keling, hisobot yarataylik, asosiy ma'lumotlarni joylashtirish sxemasini qo'shamiz, kirishni boshqarish tizimiga "so'rov" turidagi ma'lumotlar to'plamini qo'shamiz va oddiy so'rovni yaratamiz (6-rasmga qarang).


Shakl 6. Ma'lumotlar to'plami so'rovi
_Demo Work WITH Reports modulini yaratamiz va Report() uchun mahsulotlar roʻyxatini olish eksport funksiyasini yozamiz. Dastur kodi funksiyalar quyida ko'ring.
"Hisoblangan maydonlar" yorlig'ida TabularPart deb nomlangan hisoblangan maydonni qo'shing va Ifoda ustunida biz umumiy moduldan funksiya chaqiruvini ko'rsatamiz (2-rasmga qarang):
_DemoHisobotlar bilan ishlash.Hisobot uchun mahsulotlar roʻyxatini oling (havola)

Keling, "Sozlamalar" yorlig'iga o'tamiz va ma'lumotlarni chiqarish uchun sozlamani yaratamiz - bu batafsil yozuv bo'ladi (8-rasmga qarang).
Hisobot natijasi:

Hisobot namunasini yuklab oling

Ushbu usuldan foydalanganda nimani bilishingiz kerak:
1) Ma'lumotlar tarkibi mexanizmi ifodasi global umumiy konfiguratsiya modullarining funksiyalariga qo'ng'iroqlarni o'z ichiga olishi mumkin. Masalan:
Qisqartirilgan ism (havola, sana, raqam)
2) Hisobotni dasturiy ravishda yaratishda, umumiy modullarning funktsiyalaridan foydalanishga faqat ma'lumotlar tarkibi protsessorining tegishli parametri ko'rsatilgan taqdirdagina ruxsat etiladi (4-parametr):
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
3) Umumiy modullarning funksiyalaridan maxsus maydon ifodalarida foydalanish mumkin emas.
4) Umumiy modul funktsiyasini ko'rsatuvchi hisobotni yaratishda istisno qilingan bo'lsa, modulning bajarilishi kontekstini tekshiring (9-rasmga qarang).

Amaldagi funksiyalarning tavsifi

ConnectRows (Qiymat, ItemSeparator, ColumnSeparator)- satrlarni bir qatorga birlashtirish uchun mo'ljallangan.
  • Qiymat - bir qatorga birlashtirilishi kerak bo'lgan iboralar. Agar u Massiv bo'lsa, u holda massivning elementlari satrga birlashtiriladi. Agar bu ValueTable bo'lsa, jadvalning barcha ustunlari va satrlari bir qatorga birlashtiriladi;
  • Elementlarni ajratuvchi - massiv elementlari va qiymatlar jadvali qatorlari o'rtasida ajratuvchi sifatida foydalaniladigan matnni o'z ichiga olgan qator. Birlamchi – satr tasmasi belgisi;
  • Ustun ajratgichlari - qiymatlar jadvalining ustunlari orasidagi ajratuvchi sifatida foydalaniladigan matnni o'z ichiga olgan qator. Standart "; ".
Massiv([Turli] ifoda)- parametr sifatida qiymatlar jadvalidan foydalanishingiz mumkin. Bunday holda, funktsiyaning natijasi parametr sifatida qabul qilingan qiymatlar jadvalining birinchi ustuni qiymatlarini o'z ichiga olgan massiv bo'ladi. Agar ifoda Massiv funksiyasini o'z ichiga olsa, u holda ifoda yig'ma ifoda hisoblanadi. Belgilangan bo'lsa kalit so'z Turli xil bo'lsa, natijada olingan massiv ikki nusxadagi qiymatlarni o'z ichiga olmaydi.

Hisobot uchun mahsulotlar roʻyxatini olish (DocumentLink)- funksiya kiruvchi tovarlar ro'yxati bilan chiziq hosil qiladi.
// Variantlar:
// DocumentLink - DocumentLink.Tovar kvitansiyasi - "Tovarni qabul qilish" hujjati.
// Qaytish qiymati:
// String - mahsulotlar ro'yxatidan iborat qator.
Funktsiya Hisobot (DocumentLink) eksporti uchun mahsulotlar ro'yxatini olish

Mahsulotlar ro'yxati = "";

DocumentLink.Products tsiklidan har bir satr uchun PM
Mahsulotlar ro'yxati = Mahsulotlar ro'yxati + Line TC.Nomenklatura;
Mahsulotlar ro'yxati = Mahsulotlar ro'yxati + Symbols.PS;
EndCycle;

Mahsulotlar ro'yxatini qaytarish;

EndFunction // Report() uchun mahsulotlar roʻyxatini olish

1. Hisoblash (baholash)- ifodani qandaydir guruhlash kontekstida baholash uchun mo‘ljallangan. Bu funksiya bilan moslik uchun ishlatiladi oldingi versiyalar platformalar. Buning o'rniga CalculateExpression funksiyasidan foydalanish tavsiya etiladi.

Sintaksis:
Hisoblash (ifoda, guruhlash, hisoblash turi)

Variantlar:

  • Ifoda(Chiziq). Hisoblangan ifodani o'z ichiga oladi;
  • Guruhlash(Chiziq). Kontekstdagi ifoda baholanishi kerak bo'lgan guruhlash nomini o'z ichiga oladi. Agar guruh nomi ishlatilsa bo'sh qator, hisoblash joriy guruhlash kontekstida amalga oshiriladi. Agar GrandTotal qatori guruh nomi sifatida ishlatilsa, hisoblash umumiy jami kontekstda amalga oshiriladi. Aks holda, hisoblash bir xil nomdagi ota-guruh kontekstida amalga oshiriladi.
    Masalan:
    Sum(Sotuv.SumOborot) / Hisoblash("Sum(Sotish.Sumaylanma)", "Jami").
    IN bu misolda natijada guruhlash yozuvining "Sotuvlar.SumOborot" maydoni uchun summaning butun maketdagi bir xil maydon miqdoriga nisbati bo'ladi.
  • Hisoblash turi(Chiziq). Agar ushbu parametr "TotalTotal" ga o'rnatilgan bo'lsa, ifoda barcha guruhlash yozuvlari uchun hisoblab chiqiladi. Parametrning qiymati "Guruhlash" bo'lsa, qiymatlar joriy guruhlash guruhi yozuvi uchun hisoblanadi.
2. Ifodani baholash (EvalExpression) - ifodani qandaydir guruhlash kontekstida baholash uchun mo‘ljallangan. Funktsiya guruhlarni tanlashni hisobga oladi, lekin ierarxik tanlovlarni hisobga olmaydi. Funktsiyani ushbu guruhlashning guruh tanlashda guruhlash uchun qo'llash mumkin emas.

Sintaksis:
Hisoblash ifodasi (ifoda, guruhlash, hisoblash turi, boshlash, tugatish, saralash, ierarxik tartiblash, ishlov berishIdenticalorderValues)

Variantlar:

  • Ifoda(Chiziq). Hisoblangan ifodani o'z ichiga oladi;
  • Guruhlash(Chiziq). Kontekstdagi ifoda baholanishi kerak bo'lgan guruhlash nomini o'z ichiga oladi. Agar guruhlash nomi sifatida bo'sh satr ishlatilsa, hisoblash joriy guruhlash kontekstida amalga oshiriladi. Agar GrandTotal qatori guruh nomi sifatida ishlatilsa, hisoblash umumiy jami kontekstda amalga oshiriladi. Aks holda, hisoblash ushbu nom bilan ota-ona guruhlash kontekstida amalga oshiriladi;
  • Hisoblash turi(Chiziq). Agar ushbu parametr "TotalTotal" ga o'rnatilgan bo'lsa, ifoda barcha guruhlash yozuvlari uchun hisoblab chiqiladi. Parametrning qiymati "Guruhlash" bo'lsa, qiymatlar joriy guruhlash guruhi yozuvi uchun hisoblanadi. Agar parametr "Resurs bo'lmagan guruhlash" ga o'rnatilgan bo'lsa, u holda resurs bo'yicha guruh yozuvi uchun funktsiyani hisoblashda ifoda dastlabki guruhlashning birinchi guruh yozuvi uchun baholanadi. Resurs bo'yicha guruhlanmagan guruh yozuvlari uchun "GroupingNonResource" qiymati bilan CalculateExpression funksiyasini baholashda funktsiya xuddi "Grouping" parametri qiymati bilan baholanadigan tarzda baholanadi. Ma'lumotlar tarkibi sxemasini yaratuvchisi, maydonni chiqarishda ma'lumotlar kompozitsiyasi sxemasini yaratishda - guruhlash amalga oshiriladigan resurs, maketga ko'rsatilgan "GroupingNon-Resource" parametri bilan CalculateExpression funksiyasi yordamida hisoblangan ifodani maketga chiqaradi. Resurs bo'yicha guruhlangan boshqa resurslar uchun oddiy resurs ifodalari qaytariladi. Agar parametr "Ierarxiya" ga o'rnatilgan bo'lsa, u holda ifoda asosiy ierarxik yozuv uchun, agar mavjud bo'lsa, va agar asosiy ierarxik yozuv bo'lmasa, butun guruhlash uchun baholanishi kerak. Tartibni yaratuvchisi, Ierarxiya guruhi maydonida % uchun ifoda hosil qilganda, Ierarxiya hisob turiga ega joriy guruhlash uchun hisoblanayotgan resurs ifodasi uchun resurs ifodasining CalculateExpression funksiyasiga munosabatini o'z ichiga olgan ifoda hosil qiladi.
  • Boshlash. Fragment qaysi yozuvdan boshlanishi kerakligini, qaysi agregat ifoda funktsiyalarini hisoblash kerakligini va agregat funktsiyalardan tashqari maydon qiymatlarini qaysi yozuvdan olish kerakligini ko'rsatadi. Quyidagilardan birini o'z ichiga olgan qator:
    • "Birinchi" Birinchi guruhlash yozuvini olish kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi guruhlash boshidan ofset sifatida ishlatiladi. Olingan qiymat noldan katta butun son bo'lishi kerak. Masalan, Birinchi (3) - guruhlash boshidan uchinchi yozuvni olish. Agar birinchi yozuv guruhlashdan tashqarida bo'lsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv bo'lsa va siz First(4) ni olishni istasangiz, unda hech qanday yozuv yo'q deb hisoblanadi.
    • "Oxirgi" Siz oxirgi guruhlash yozuvini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi guruhlash oxiridan ofset sifatida ishlatiladi. Olingan qiymat noldan katta butun son bo'lishi kerak. Masalan, Oxirgi (3) - guruh oxiridan uchinchi rekordni olish. Agar oxirgi rekord guruhlashdan tashqariga chiqadi, hech qanday yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv mavjud bo'lsa va siz Oxirgi (4) ni olishni istasangiz, unda hech qanday yozuv yo'q deb hisoblanadi.
    • "Oldingi" Oldingi guruhlash rekordini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi joriy guruhlash yozuvidan orqaga siljish sifatida ishlatiladi. Masalan, Oldingi(2) – oldingi yozuvdan oldingisini olish. Agar oldingi yozuv guruhlashdan tashqarida bo'lsa (masalan, ikkinchi guruhlash yozuvi Oldingi(3) ni olishni talab qiladi), u holda birinchi guruhlash yozuvi olinadi. Guruhlash jami bo'yicha oldingi rekordni olishda birinchi yozuv olinadi.
    • "Keyingisi" Keyingi guruhlash yozuvini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi joriy guruhlash yozuvidan oldinga siljish sifatida ishlatiladi. Masalan, Keyingi (2) - keyingi yozuvdan keyingisini olish. Agar keyingi yozuv guruhlashdan tashqariga chiqsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv bo'lsa va uchinchi yozuv "Keyingi" ni qabul qilsa, unda hech qanday yozuv yo'q deb hisoblanadi. Guruhlash jami bo'yicha keyingi yozuv olinganda, hech qanday yozuv yo'q deb hisoblanadi.
    • "Hozirgi". Siz joriy yozuvni olishingiz kerak. Guruhlash jami uchun olinganda birinchi yozuv olinadi.
    • "Chegaraviy qiymat". Belgilangan qiymat bo'yicha yozuvni olish zarurati. Qavslar ichidagi LimitingValue so'zidan keyin siz fragmentni boshlamoqchi bo'lgan qiymati bilan ifodani, birinchi tartiblash maydonini ko'rsatishingiz kerak. Buyurtma maydoni qiymati belgilangan qiymatdan katta yoki unga teng bo'lgan birinchi yozuv yozuv sifatida qaytariladi. Misol uchun, agar Davr maydoni buyurtma maydoni sifatida ishlatilsa va u 01/01/2010, 02/01/2010, 03/01/2010 qiymatlariga ega bo'lsa va siz LimitingValue(DateTime(2010)) ni olishni istasangiz , 1, 15)), keyin 02/01 sanali yozuv olinadi. 2010 yil.
  • Oxiri. Fragmentni qaysi yozuvga davom ettirish kerakligini, unda yig'ma ifodani hisoblash kerakligini ko'rsatadi. Quyidagilardan birini o'z ichiga olgan qator:
    • "Birinchi"
    • "Oxirgi"
    • "Oldingi"
    • "Keyingisi"
    • "Hozirgi".
    • "Chegaraviy qiymat".
  • Tartiblash. Vergul bilan ajratilgan iboralar ro'yxati, ular yo'nalishi bo'yicha ketma-ketlik tartiblanishi kerak bo'lgan qator. Agar ko'rsatilmagan bo'lsa, unda tartiblash ifoda baholanadigan guruhlash bilan bir xil tarzda amalga oshiriladi. Har bir ifodadan so'ng siz havola qilinayotgan ob'ektga buyurtma bermoqchi bo'lgan maydonlar bo'yicha mos yozuvlar maydonlarini tartiblash uchun o'sish tartibida, kamayib borayotgan, kamayib borayotgan tartibda tartiblash uchun, Avtomatik tartiblash kalit so'zini belgilashingiz mumkin. Avtomatik tartib so'zi ham Osish so'zi, ham kamayish so'zi bilan ishlatilishi mumkin.
  • Ierarxik saralash. Saralash bilan o'xshash. Ierarxik yozuvlarni tashkil qilish uchun foydalaniladi. Agar ko'rsatilmagan bo'lsa, tartib tuzuvchisi Saralash parametrida ko'rsatilgan tartib bo'yicha tartibni yaratadi.
  • Buyurtmaning bir xil qiymatlarini qayta ishlash. Quyidagilardan birini o'z ichiga olgan qator:
    • "Birgalikda" - oldingi va keyingi yozuvlarni aniqlash uchun tartiblangan yozuvlar ketma-ketligidan foydalanilishini anglatadi;
    • "Alohida-alohida" oldingi va keyingi yozuvlar tartib ifodalarining qiymatlari asosida aniqlanishini anglatadi;
    Misol uchun, natijada olingan ketma-ketlik sana bo'yicha tartiblangan bo'lsa:
    1. 2001 yil 01 yanvar Ivanov M. 10
    2. 2001 yil 02 yanvar Petrov S. 20
    3. 2001 yil 02 yanvar Sidorov R. 30
    4. 2001 yil 03 yanvar Petrov S. 40
    "Alohida" buyrug'ining bir xil qiymatlarini qayta ishlashdan foydalanganda, 3-rekord uchun oldingisi 2-yozuv, "Birgalikda" dan foydalanganda - 1-rekord bo'ladi. Va "Alohida" uchun 2-rekord uchun joriy yozuv uchun fragment. rekord 2 bo'ladi va "Birgalikda" uchun - 2 va 3 yozuvlar. Shunday qilib, "Alohida" uchun joriy rekord uchun jami 20 bo'ladi, va "Birga" uchun - 50. "Birgalikda" Boshlash va belgilangan bo'lsa. Yakuniy parametrlarda siz "Birinchi", "Oxirgi", "Oldingi", "Keyingi" pozitsiyalari uchun ofsetni belgilay olmaysiz. Standart qiymat - "Alohida".
Misol:
Guruhlash yozuvining "Sotuvlar miqdori aylanmasi" maydoni uchun summaning butun maketdagi bir xil maydon miqdoriga nisbatini olish:
Sum(Sotuv.SumOborot) / Hisoblash Ifodasi("Sum(Sotish.SumOborot)", "Jami").

Ushbu misol joriy ierarxiya qiymatini hisoblab chiqadi:
Tanlov
Level() > 0 bo'lganda
Keyin EvaluateExpression("Ma'lumotnoma", "Ierarxiya")
Aks holda Null
Oxiri

Eslatmalar:
Funktsiya guruhlarni tanlashni hisobga oladi, lekin ierarxik tanlovlarni hisobga olmaydi. Funktsiyani ushbu guruhlashning guruh tanlashda guruhlash uchun qo'llash mumkin emas. Masalan, Nomenklatura guruhini tanlashda siz CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 ifodasidan foydalana olmaysiz. Ammo bunday ibora ierarxik tanlashda ishlatilishi mumkin. Agar yakuniy yozuv boshlang'ich yozuvdan oldin bo'lsa, unda batafsil ma'lumotlarni hisoblash va agregat funktsiyalarni hisoblash uchun yozuvlar mavjud emas deb hisoblanadi. Umumiy jami uchun intervalli ifodalarni hisoblashda (Guruhlash parametri "GrossTotal" ga o'rnatiladi), batafsil ma'lumotlarni hisoblash va agregat funktsiyalarni hisoblash uchun hech qanday yozuvlar mavjud emas deb taxmin qilinadi. CalculateExpression funksiyasi uchun ifoda yaratishda tartib tuzuvchisi, agar tartiblash ifodasi guruhlashda ishlatib bo'lmaydigan maydonlarni o'z ichiga olsa, CalculateExpression funksiyasini NULL bilan almashtiradi.

3. Guruh massivi bilan ifodani baholash (Guruh massivi bilan EvalExpression) - funktsiya massivni qaytaradi, uning har bir elementi belgilangan maydon bo'yicha guruhlash uchun ifodani hisoblash natijasini o'z ichiga oladi.

Sintaksis:
CalculateExpressionWithGroupArray (Ifoda, GroupFieldExpressions, SelectRecords, SelectGroups)

Variantlar:

  • Ifoda(String) - baholanadigan ifoda. Masalan, "Amount(AmountTurnover)";
  • FieldExpressions Groups
  • Yozuvlarni tanlash
  • Guruhlarni tanlash- guruh yozuvlariga qo'llaniladigan tanlov. Misol uchun: "Miqdor (AmountTurnover) > &Parameter1".
Misol:
Maksimal(CalculateExpressionWithGroupArray("Miqdor(AmountTurnover)", "Qarshi tomon"));


Tartibni yaratuvchisi, ifodasi faqat CalculateArrayWithGroup funksiyasini o'z ichiga olgan maxsus maydonni ko'rsatish uchun iboralarni yaratishda, displey ma'lumotlari va ma'lumotlar tartiblangan tarzda chiqish ifodasini yaratadi.
Misol uchun, ifoda bilan maxsus maydon uchun:
CalculateExpressionWithGroupArray("Miqdor(summa aylanma)", "Qarshi tomon")
Tartib yaratuvchisi chiqish uchun quyidagi ifodani yaratadi:
Ulanish qatorlari(Masiv(Buyurtma(GuruhlashValueTableWithGroupingExpressionCalculateExpression("Ko'rish(Sum(DataSet.AmountTurnover)), Miqdor(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. GroupValueTable bilan ifodani hisoblang (EvalExpressionWithGroupValueTable) - funktsiya qiymatlar jadvalini qaytaradi, uning har bir elementi belgilangan maydon bo'yicha guruhlash uchun ifodani hisoblash natijasini o'z ichiga oladi.

Sintaksis:
CalculateExpressionWithGroupValueTable (Ifoda, GroupField ifodalari, Yozuvlarni tanlash, Guruh tanlash)

Variantlar:

  • Ifoda(String) - baholanadigan ifoda. Bir qator vergul bilan ajratilgan bir nechta iboralarni o'z ichiga olishi mumkin. Har bir ifodadan keyin ixtiyoriy AS kalit so'zi va qiymatlar jadvali ustunining nomi bo'lishi mumkin. Misol uchun: "Qarshi tomon, Sotish hajmi sifatida summa (aylanma summasi)."
  • FieldExpressions Groups- vergul bilan ajratilgan guruhlash maydonlarining ifodalari. Masalan, "Qarshi tomon, partiya";
  • Yozuvlarni tanlash- batafsil yozuvlarga qo'llaniladigan ifoda. Masalan, "O'chirish bayrog'i = noto'g'ri." Agarda bu parametr agregat funksiyasi ishlatiladi, ma'lumotlarni tuzishda xatolik yuzaga keladi;
  • Guruhlarni tanlash- guruh yozuvlariga qo'llaniladigan tanlov. Misol uchun: "Miqdor (AmountTurnover) > &Parameter1".
Misol:
Qiymatlarni guruhlash jadvali bilan ifodani hisoblang ("Qarama-qarshi tomon hisobi, sotuv hajmi AS miqdori (aylanma summasi), "hisob")

Ushbu funktsiyaning natijasi kontragentlar va sotish hajmi ustunlari bo'lgan qiymatlar jadvali bo'ladi, unda ularning savdo hajmlari bilan kontragentlar mavjud.
Tartib tuzuvchisi tartibni yaratishda funksiya parametrlarini ma'lumotlar tarkibini joylashtirish maydonlari shartlariga aylantiradi. Masalan, Hisob maydoni DataSet.Account ga aylantiriladi.
Masalan, quyidagi ifodali maxsus maydon:
CalculateExpressionWithGroupValueTable("Hisob, summa(aylanma summasi), "Hisob")
Tartib yaratuvchisi chiqish uchun quyidagi ifodani yaratadi:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), Koʻrish(DataSet.AmountTurnover), DataSet.OrderingSet "1","Dacount),"."Dac ), "2, 4"))

5. Daraja - funksiya joriy yozish darajasini olish uchun mo'ljallangan.

Sintaksis:
Daraja()

Misol:
Daraja()

6. SequenceNumber - keyingi seriya raqamini oling.

Sintaksis:
NumberByOrder()

Misol:
NumberByOrder()

7. SequenceNumberInGrouping - joriy guruhlashda keyingi tartib raqamini qaytaradi.

Misol:
NumberByOrderInGroup()

8. Format - o'tkazilgan qiymatning formatlangan qatorini olish.

Sintaksis:
Format (qiymat, FormatString)

Variantlar:

  • Ma'nosi- formatlanishi kerak bo'lgan ifoda;
  • FormatString- format qatori mos ravishda o'rnatiladi format qatori 1C: Korxona.
Misol:
Format(Invoices.Doc Sumi, "NPV=2")

9. BeginOfPeriod

Sintaksis:
Boshlanish davri (sana, davr turi)

Variantlar:

  • sana(Sana). Belgilangan sana;
  • Davr turi
Misol:
Boshlanish davri(Sana vaqti (2002, 10, 12, 10, 15, 34), "Oy")
Natija: 10.01.2002 0:00:00

10. EndOfPeriod - funksiya berilgan sanadan ma'lum bir sanani tanlash uchun mo'ljallangan.

Sintaksis:
EndPeriod(sana, davr turi)

Variantlar:

  • sana(Sana). Belgilangan sana;
  • Davr turi(Chiziq). Quyidagi qiymatlardan birini o'z ichiga oladi: Minute; soat; kun; Bir hafta; Oy; chorak; Yil; o'n yil; Yarim yil.
Misol:
EndPeriod(SanaVaqti(2002, 10, 12, 10, 15, 34), "Hafta")
Natija: 13.10.2002 23:59:59

11. AddKDate (Sana qoʻshish) - funksiya sanaga ma'lum qiymat qo'shish uchun mo'ljallangan.

Sintaksis:
AddToDate(Ifoda, IncrementType, Magnitude)

Variantlar:

  • Ifoda(Sana). Asl sana;
  • Kattalashtirish turi(Chiziq). Quyidagi qiymatlardan birini o'z ichiga oladi: Minute; soat; kun; Bir hafta; Oy; chorak; Yil; o'n yil; Yarim yil.
  • Kattalik(Raqam). Sanani qancha ko'paytirish kerak bo'lsa, kasr qismi e'tiborga olinmaydi.
Misol:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Oy", 1)
Natija: 11/12/2002 10:15:34

12. Sana farqi - funksiya ikki sana o'rtasidagi farqni olish uchun mo'ljallangan.

Sintaksis:
DifferenceSana(Ifoda1, Ifoda2, Farq turi)

Variantlar:

  • Ifoda 1(Sana). Chiqarilgan sana;
  • Ifoda 2(Sana). Asl sana;
  • Turi farqi(Chiziq). Qiymatlardan birini o'z ichiga oladi: Ikkinchidan; daqiqa; soat; kun; Oy; chorak; Yil.
Misol:
DATEFARQI(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME (2002, 10, 14, 9, 18, 06), “KUN”)
Natija: 2

13. Substring - bu funksiya satrdan pastki qatorni chiqarish uchun mo'ljallangan.

Sintaksis:
Substring(String, Position, Length)

Variantlar:

  • Chiziq(Chiziq). Pastki satr olinadigan satr;
  • Lavozim(Raqam). Qatordan ajratib olinadigan pastki satr boshlanadigan belgining pozitsiyasi;
  • Uzunlik(Raqam). Ajratilgan pastki qatorning uzunligi.
Misol:
SUBSTRING(Hisoblar.Manzil, 1, 4)

14. StringLength - funksiya satr uzunligini aniqlash uchun mo'ljallangan.

Sintaksis:
StringLength(String)

Parametr:

  • Chiziq(Chiziq). Uzunligi aniqlangan ip.
Misol:
Chiziq(Qarshi tomonlar.Manzil)

15. Yil- bu funksiya Sana turi qiymatidan yilni chiqarish uchun mo'ljallangan.

Sintaksis:
Yil (sana)

Parametr:

  • sana(Sana). Yil belgilangan sana.
Misol:
YIL(Xarajat.Sana)

16. Chorak - bu funksiya Sana turi qiymatidan chorak raqamni chiqarish uchun mo'ljallangan. Chorak soni odatda 1 dan 4 gacha.

Sintaksis:
Chorak (sana)

Parametr:

  • sana(Sana). Chorak belgilangan sana
Misol:
CHORAK(Xarajat.Sana)

17. Oy - bu funksiya Sana turi qiymatidan oy raqamini chiqarish uchun mo'ljallangan. Oy soni odatda 1 dan 12 gacha.

Sintaksis:
Oy (sana)

Parametr:

  • sana(Sana). Oy belgilangan sana.
Misol:
OY(Xarajat.Sana)

18. Yil kuni (DayOfYear) - bu funksiya Sana turi qiymatidan yil kunini olish uchun mo'ljallangan. Yilning kuni odatda 1 dan 365 (366) gacha bo'ladi.

Sintaksis:
Yil kuni (sana)

Parametr:

  • sana(Sana). Yilning kuni aniqlanadigan sana.
Misol:
DAYYEAR(Xarajat hisobi.Sana)

19. kun- bu funksiya Sana turi qiymatidan oy kunini olish uchun mo'ljallangan. Oyning kuni odatda 1 dan 31 gacha.

Sintaksis:
Kun (sana)

Parametr:

  • sana(Sana). Oyning kuni aniqlangan sana.
Misol:
KUN(Xarajat.Sana)

20. Hafta - bu funksiya Sana turi qiymatidan yilning hafta raqamini olish uchun mo'ljallangan. Yilning haftalari 1 dan boshlab raqamlangan.

Sintaksis:
Hafta(sana)

Parametr:

  • sana(Sana). Hafta raqamlari aniqlanadigan sana.
Misol:
HAFTA(Xarajat.Sana)

21. Hafta kuni - bu funksiya Sana turi qiymatidan haftaning kunini olish uchun mo'ljallangan. Haftaning oddiy kuni 1 (dushanba) dan 7 (yakshanba) gacha.

Sintaksis:
Hafta kuni (sana)

Parametr:

  • sana(Sana). Haftaning kuni belgilanadigan sana.
Misol:
HAFTA KUNI (Xarajat. Sana)

22. Soat- bu funksiya Sana turi qiymatidan kun soatini olish uchun mo'ljallangan. Kunning soati 0 dan 23 gacha.

Sintaksis:
Soat(sana)

Parametr:

  • sana(Sana). Kunning soati belgilanadigan sana.
Misol:
HOUR(Xarajat.Sana)

23. daqiqa - bu funksiya Sana turi qiymatidan soatning daqiqasini olish uchun mo'ljallangan. Soatning daqiqasi 0 dan 59 gacha.

Sintaksis:
Daqiqa(sana)

Parametr:

  • sana(Sana). Soatning daqiqasi aniqlangan sana.
Misol:
MINUTE(Xarajat.Sana)

24. Ikkinchi - bu funksiya Sana tipidagi qiymatdan daqiqaning soniyasini olish uchun mo'ljallangan. Bir daqiqaning soniyasi 0 dan 59 gacha.

Sintaksis:
Ikkinchi (sana)

Parametr:

  • sana(Sana). Daqiqaning soniyalari aniqlanadigan sana.
Misol:
SECOND(Xarajat.Sana)

25. Aktyorlar - bu funksiya birikma turini o'z ichiga olishi mumkin bo'lgan ifodadan turni chiqarish uchun mo'ljallangan. Agar ifoda talab qilinadigan turdan boshqa turga ega bo'lsa, NULL qaytariladi.

Sintaksis:
Ekspres (ifoda, turni ko'rsatish)

Variantlar:

  • Ifoda- konvertatsiya qilinadigan ifoda;
  • Tur ko'rsatkichi(Chiziq). Tur qatorini o'z ichiga oladi. Masalan, "Raqam", "String" va boshqalar. Ibtidoiy turlardan tashqari berilgan qator jadval nomini o'z ichiga olishi mumkin. Bunday holda, ko'rsatilgan jadvalga havolani ifodalashga harakat qilinadi.
Misol:
Ekspres(Data.Props1, "Raqam(10,3)")

26. IsNull (IsNull) - agar birinchi parametrning qiymati NULL bo'lsa, bu funksiya ikkinchi parametrning qiymatini qaytaradi. Aks holda, birinchi parametrning qiymati qaytariladi.

Sintaksis:
IsNull(Ifoda1, Ifoda2)

Variantlar:

  • Ifoda 1- tekshirilishi kerak bo'lgan qiymat;
  • Ifoda 2- ifoda 1 NULL bo'lsa, qiymatni qaytaradi.
Misol:
HaNULL(Miqdor(Sotuv.Miqdori), 0)

27.ACos- radyanlarda yoy kosinusini hisoblaydi.

Sintaksis:
ACos (ifoda)

Parametr:

  • Ifoda(Raqam). Burchak aniqlanadigan kosinus qiymati (-1 ... 1 oralig'ida).
28.ASin- radianlarda arksinusni hisoblaydi.

Sintaksis:
ASin (ifoda)

Parametr:

  • Ifoda(Raqam). Burchak aniqlanadigan sinus qiymati (-1 ... 1 oralig'ida).
29. ATan- radianlarda arttangensni hisoblaydi.

Sintaksis:
ATan(ifoda)

Parametr:

  • Ifoda(Raqam). Burchak aniqlanadigan tangens qiymati.
30. Cos- kosinusni hisoblaydi.

Sintaksis:
Cos (ifoda)

Parametr:

  • Ifoda
31. Exp- e sonini bir darajaga ko'tarish.

Sintaksis:
Exp (ifoda)

Parametr:

  • Ifoda(Raqam). Darajaning ma'nosi.
32. Jurnal- natural logarifmni hisoblaydi.

Sintaksis:
Jurnal (ifoda)

Parametr:

  • Ifoda
33. Jurnal 10- X ning 10 asosiga logarifmini hisoblaydi.

Sintaksis:
Log10 (ifoda)

Parametr:

  • Ifoda(Raqam). Asl raqam 0 dan katta.
34. Pow- eksponentatsiya.

Sintaksis:
Pow (asosiy, ko'rsatkich)

Variantlar:

  • Baza(Raqam). Ko'rsatkichlar operatsiyasining asosi.
  • Indeks(Raqam). Ko'rsatkich.
35. Gunoh- sinusni hisoblaydi.

Sintaksis:
Gunoh (ifoda)

Parametr:

  • Ifoda(Raqam). Radianlarda ko'rsatilgan.
36. Sqrt- kvadrat ildizni hisoblaydi.

Sintaksis:
Sqrt (ifoda)

Parametr:

  • Ifoda(Raqam). Salbiy bo'lmagan raqam.
37. Tan- tangensni hisoblaydi.

Sintaksis:
Tan(ifoda)

Parametr:

  • Ifoda(Raqam). Burchak aniqlanadigan sinus qiymati.
38. Dumaloq- original raqamni kerakli bit chuqurligiga yaxlitlaydi. Yaxlitlash rejimi standart (1,5 sifatida 2).

Sintaksis:
Env (ifoda, bit chuqurligi)

Variantlar:

  • Ifoda(Raqam). Asl raqam;
  • Bit chuqurligi(Raqam). Yaxlitlash uchun kasrlar soni.
39. Int- sonning kasr qismini kesadi.

Sintaksis:
Ob'ekt (ifoda)

Parametr:

  • Ifoda(Raqam). Kasr son.
40. Umumiy modullarning funksiyalari

Ma'lumotlar kompozitsiyasi mexanizmi ifodasi global umumiy konfiguratsiya modullarining funksiyalariga qo'ng'iroqlarni o'z ichiga olishi mumkin. Bunday funktsiyalarni chaqirish uchun qo'shimcha sintaksis talab qilinmaydi.

Misol:
Qisqartirilgan ism(Hujjatlar.Link, Hujjatlar.Sana, Hujjatlar.Raqam)

Ushbu misolda "QisqartirilganName" funksiyasi umumiy konfiguratsiya modulidan chaqiriladi.
E'tibor bering, umumiy modul funktsiyalaridan foydalanishga faqat tegishli ma'lumotlar tarkibi protsessor parametri ko'rsatilgan taqdirdagina ruxsat beriladi.
Bundan tashqari, umumiy modullarning funksiyalaridan maxsus maydon ifodalarida foydalanish mumkin emas.

41. Norozilik - bu funksiya ibtidoiy bo'lmagan turdagi o'tkazilgan qiymatning satr tasvirini qaytaradi. Primitiv turdagi qiymatlar uchun qiymatning o'zini qaytaradi.

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

Misol:
Taqdimot (kontragent)

42. String - bu funksiya uzatilgan qiymatni satrga aylantiradi.

Agar parametr sifatida massiv yoki qiymatlar jadvali ishlatilsa, funktsiya ";" belgilari bilan ajratilgan massivning barcha elementlarining qator ko'rinishini o'z ichiga olgan qatorni qaytaradi. Agar biron bir elementda bo'sh satr tasviri bo'lsa, u holda satr "<Пустое значение>".

Misol:
Qator (Sotish sanasi)

43. ValueIsFilled

NULL qiymatlar uchun Undefined har doim False qiymatini qaytaradi.
Mantiqiy qiymatlar uchun u har doim True ni qaytaradi.
Boshqa turlar uchun, agar qiymat berilgan tur uchun standart qiymatdan farq qilsa, True qiymatini qaytaradi.

Misol:
ValueFilled(Etkazib berish sanasi)

44. LevelInGroup - bu funksiya guruhlashtirishga nisbatan joriy yozish darajasini oladi.

Ierarxik guruhlashda yozuvning joylashtirish darajasini olish uchun foydalanish mumkin.

Misol:
LevelInGroup()

45. Qiymat turi

Sintaksis:
ValueType(Ifoda)

Parametr:

  • Ifoda(Chiziq). String qiymati turi.
Funktsiya parametrining qiymat turini o'z ichiga olgan Type turidagi qiymatni qaytaradi.

Ma'lumotlar tarkibi sxemasidan (DCS) to'g'ri foydalanish sizga quyidagilarga imkon beradi:

  • hisobotni ishlab chiqish uchun zarur bo'lgan vaqtni sezilarli darajada qisqartirish;
  • yaratish zaruratidan xalos bo'ling boshqariladigan shakl protsessor;
  • imkoniyat bilan chiroyli natijaga erishing qo'shimcha sozlamalar foydalanuvchi.

Ammo barcha ishlab chiquvchilar sxemaning imkoniyatlaridan maksimal darajada foydalanmaydilar, chunki uning barcha sozlamalari aniq va intuitiv emas. Xususan, ko'p odamlar 1C SKD da hisoblangan maydonlar mavjudligini bilishadi, ammo ular ulardan foydalanish ko'lamini va ular bilan ishlash usullarini to'liq tushunmaydilar.

Hisoblangan maydon nima

Ko'pgina hollarda, tartib diagrammasidagi ma'lumotlar manbai so'rovdir. Aslida, so'rovning o'zida siz allaqachon turli formulalar, konstruktsiyalar va ifodalardan foydalanishingiz mumkin. Tabiiy savol tug'iladi: nega bizga takroriy funksiyalar kerak?

Haqiqat shundaki, kirishni boshqarish tizimi so'rov natijasini ko'rsatishdan ko'ra ko'proq narsadir va bu diagramma yaratish shaklidan aniq ko'rinadi (1-rasm).

Hisoblangan maydonlar yaratilgan ma'lumotlar to'plami bilan muayyan harakatlarni bajarishga imkon beradi:

  • Bir nechta satrlarni bittaga birlashtirib, so'rov bo'yicha olingan ma'lumotlar majmuasini ma'lum bir katakchaga chiqarish;
  • Umumiy modulning eksport funksiyalariga kirish;
  • Tartib tili uchun mavjud bo'lgan turli iboralarni bajaring va maxsus EvaluateExpression funksiyalaridan foydalaning.

Keling, ushbu ro'yxatni ko'rib chiqaylik.

Bir katakdagi qiymatlar massivi

Keling, kontragent uchun barcha kvitansiya hujjatlari raqamlarini alohida katakchada olish zarur bo'lgan vaziyatni taqlid qilaylik:


Shunday qilib, biz sxemamizda qo'shimcha hisoblash maydonini yaratdik;


Yuqoridagi misoldan ko'rinib turibdiki, hisoblangan maydonlarni qo'shish va qayta ishlashda hech qanday qiyinchiliklar yo'q. Biz ikkita funktsiyadan foydalandik: Array() va ConnectRows().

Ikkinchisi haqida bir necha so'z. Massiv identifikatorini, qiymatlarni yoki qiymatni ko'rsatadigan birinchi parametrga qo'shimcha ravishda unda yana ikkitasini o'rnatish mumkin:

  1. Elementni ajratuvchi - qaysi belgi massivning bir elementini yoki qiymatlar jadvalining bir qatorini boshqasidan ajratishini ko'rsatadi (bizning holatlarimizda biz ushbu parametrni o'tkazib yubordik va sukut bo'yicha qator uzilishi tayinlangan);
  2. Ustunni ajratuvchi - qiymatlar jadvalining ustunlarini ajratish uchun ishlatiladigan belgi (sukut bo'yicha nuqta-vergul ishlatiladi).

Umumiy modulning eksport funksiyalariga kirish

Umumiy modulning funktsiyalari hisoblangan maydonni to'ldirish uchun ma'lumot manbai bo'lishi mumkin.

Biroz muhim nuqtalar:

  • Funktsiya eksport qilinadigan bo'lishi kerak;
  • Agar funktsiya "Global" atributlari to'plamiga ega bo'lgan umumiy modulda joylashgan bo'lsa, u to'g'ridan-to'g'ri nomi bilan chaqiriladi, aks holda funktsiya "Shared module name" sxemasiga muvofiq chaqirilishi kerak. "Chaqiriladigan funktsiyaning nomi."

Foydalanish misoli sifatida biz kvitansiya hujjatlari uchun bir xil so'rovni olamiz va uni alohida ustunda ko'rsatamiz. Biz so'rovning o'zini tasvirlamaymiz, to'g'ridan-to'g'ri hisoblangan maydonlarga o'tamiz:


Shunday qilib, biz deyarli har qanday ma'lumotlar protsessorini kirishni boshqarish tizimidan ishga tushirish mumkinligini ko'ramiz, bu sxemadan foydalanish imkoniyatlarini sezilarli darajada kengaytiradi.

Til ifodalarini joylashtirish

Ko'pincha ishlab chiquvchining ishida ACS maydonida bo'linish natijasini ko'rsatish zarur bo'lganda vaziyat yuzaga keladi:

  1. Ob'ektning o'rtacha narxini hisoblang;
  2. Barcha turdagi qiziqishlar;
  3. O'rtacha daromadni hisoblash va boshqalar.

Muammolarga yo'l qo'ymaslik uchun, bu holatlarda hisoblangan maydonga 0 ga bo'linish testini kiritish tavsiya etiladi.

Buni “Tanlash qachon…. Keyin… Aks holda… Tugatish” konstruktsiyasi yordamida amalga oshirish mumkin.

Nihoyat, etarli haqida bir necha so'z yangi xususiyat CalculateExpression(). Uning yordami bilan, xususan, joriy va oldingi chiziqlar o'rtasidagi xarajatdagi og'ishlarni, to'plangan balansni va boshqalarni hisoblashingiz mumkin.

Aytaylik, “Ifoda” maydonida “Hujjat summasini hisoblash” (“Hujjat summasi”, “Oldingi summa”) qiymatini ko‘rsatib, so‘rovimizning oldingi qatoridan olishingiz mumkin.

Xayrli kun, bizning blogimizning aziz o'quvchilari! Bugun men sizga haqiqiy misoldan foydalanib, qanday qilib aytmoqchiman
Array va JoinStrings ACS funksiyalaridan foydalaning. haqida maqolada

bilan ishlash haqida bir oz eslatib o'tilgan
xatcho'pda
, deb ham allaqachon izohlangan
"Resurslar" yorlig'i yordamida. Bugun biz yana bir bor shularga e'tibor qaratamiz
bizning mavzuimiz nuqtai nazaridan xatcho'plar.

Ikkita ACS funktsiyasidan foydalangan holda 1C hisoboti misolining ko'rinishi Massiv Va Ulanish qatorlari Keyingisi:

Array va JoinStrings ACS funksiyalaridan foydalanish muammosi bayoni

Vazifa: Bitta mahsulot uchun barcha savdo raqamlarini bitta katakka kiritishingiz kerak.

Shunga o'xshash narsa: nomenklatura | miqdori | 001, 002 va boshqalar. |

Biz "TMZ realizatsiyasi" jamg'arma registriga so'rovdan foydalanamiz.

TANLANG
TMZni amalga oshirish. Registrator. Raqam,
TMZni amalga oshirish. nomenklatura,
TMZni amalga oshirish. Registrator,
TMZni amalga oshirish. Oborot miqdori
FROM
Jamg'arma reestri. TMZni amalga oshirish. Inqiloblar
(, , Registrator, ) TMZni QANDAY QO'RGANISH MUMKIN

“TMZ realizatsiyasi” jamlash registri ham Buxgalteriya hisobi konfiguratsiyasida, ham Savdo korxonasini boshqarish (UTP) konfiguratsiyasida mavjud. "Nomenklatura" katalog elementida USP ni qanday sozlashni bilib oling. Shuning uchun, yuklab olingandan so'ng, uning funksionalligini tekshirish uchun ushbu hisobotni ikkala konfiguratsiyada ham ishga tushirishingiz mumkin.

SKD Array va ConnectRows funksiyalaridan foydalangan holda vazifani bajarish


Xuddi shu qadamlar, lekin ba'zi qo'shimchalar bilan yaratish uchun ishlatilgan
.

JoinStrings funksiyasining tavsifi

JoinStrings

Satrlarni bir qatorga birlashtirish uchun ishlatiladi.

Sintaksis:

ConnectRows (Qiymat, ItemSeparator, ColumnSeparator)

Variantlar:

  1. Ma'nosi— bir qatorga birlashtirilishi kerak bo'lgan iboralar.
    Agar u Massiv bo'lsa, u holda massivning elementlari satrga birlashtiriladi.
    Agar bu ValueTable bo'lsa, jadvalning barcha ustunlari va satrlari bir qatorga birlashtiriladi;
  2. Elementni ajratuvchi- sifatida ishlatilishi kerak bo'lgan matnni o'z ichiga olgan qator
    massiv elementlari va qiymatlar jadvali qatorlari orasidagi ajratuvchi. Birlamchi – satr tasmasi belgisi;
  3. Ustunlarni ajratuvchilar-ajragich sifatida foydalaniladigan matnni o'z ichiga olgan qator
    qiymatlar jadvalining ustunlari orasida. Standart ";".