Ma'lumotlar kompozitsiyasi tizimining ifoda tilining funktsiyalari. Tashqi jadvalli hisobotni yaratish misolidan foydalanib, SKDda resurslardan foydalanish SKD 1s ni gorizontal guruhlash orqali miqdorni hisoblang

“Marshrut bo‘ylab to‘xtash joylari” axborot reestri mavjud bo‘lib, unda startdan to yakuniy bekatgacha bo‘lgan masofa haqidagi ma’lumotlar saqlanadi.

Guruch. 1. “Marshrut bo‘ylab to‘xtash joylari” ma’lumotlar reestri

Yo'nalish bo'ylab har qanday ikkita to'xtash joyi orasidagi masofani ko'rsatadigan kirishni boshqarish tizimi haqida hisobot ishlab chiqish talab qilinadi.

Yechim

Boshqariladigan shakllarni qo'llab-quvvatlaydigan har qanday konfiguratsiyada biz "Marshrut bo'ylab to'xtash joylari" ma'lumotlarining davriy bo'lmagan reestrini yaratamiz. Keling, unga mos ravishda 4 va 50 uzunlikdagi qatorli Marshrut va To'xtash o'lchamlarini, shuningdek, uzunligi 10,2 bo'lgan raqam turiga ega Masofa resursini qo'shamiz. O'zgarishlarni yangi konfiguratsiyada saqlaymiz. Tashqi hisobot yaratish uchun Menyu-->Fayl-->Yangi bo‘limida “Tashqi hisobot”ni tanlang, uning nomini belgilang va ma’lumotlar joylashuvi diagrammasini oching:

Guruch. 2. Kirishni boshqarish tizimi bo'yicha tashqi hisobotni yaratish

Ochilgan oynada "Ma'lumotlar to'plamini qo'shish" tugmasini bosing va "Ma'lumotlar to'plamini qo'shish - so'rov" qatorini tanlang:

Guruch. 3. Ma'lumotlar to'plamini qo'shish - so'rov

Keling, yangi so'rov yarataylik. Muammoni hal qilish uchun bizga so'rovda "Marshrut bo'ylab to'xtash joylari" ma'lumotlar reestri kerak bo'ladi va hisobotda har qanday ikkita to'xtash joyi orasidagi masofa aniq ko'rsatilishi kerakligi sababli, biz X va Y o'qlari bo'ylab jadval ko'rinishi uchun so'rov yaratamiz. , ro'yxatga olish jadvalining o'zi bilan to'liq tashqi birikmasidan foydalanib:

Guruch. 5. Kirishni boshqarish tizimlari uchun resurslarni belgilash

Endi "Sozlamalar" yorlig'iga o'tamiz va "Sozlamalar dizaynerini ochish" tugmasini bosing, hisobot turini tanlang Jadval:

Guruch. 7. Hisobot maydonlarini tanlash

8-rasm. Guruhlash maydonlarini tanlash

Guruch. 9. Saralash maydonlarini tanlash

Faqatgina ushbu sozlamalarni yaratish uchun "Foydalanuvchi sozlamalari elementlarining xususiyatlari" tugmasidan foydalanish, shuningdek, "Boshqa sozlamalar" yorlig'ida resurslar qanday joylashishini ko'rsatish va jami ma'lumotlarni olib tashlash (ular bu erda kerak emas):

Guruch. 10 Foydalanuvchi va boshqa sozlamalar.

Hisobot tayyor. Endi konfiguratsiyadan Korxonaga o'tamiz va ma'lumotlar registrini to'ldiramiz (agar u hali to'ldirilmagan bo'lsa):

Guruch. 11. Axborot reestrini to'ldirish

Va nihoyat, Menyu-->Fayl-dan biz hisobotimizni konfiguratorda saqlangan joydan chaqiramiz, "Yaratish" tugmasini bosing va muammoning echimini ko'ring:

Guruch. 12. “Bekatlar orasidagi masofa” hisoboti

Nashr meni maqola yozishga undadi

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:


Ushbu qiymatni faqat ushbu guruhlash darajasida hisoblash mumkin, chunki hisoblash uchun yuqori yoki past qiymatlar mavjud emas. Misol uchun, 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 maydon 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(Guruhlashqiymatli jadvali bilan ifodani hisoblash("Koʻrish(Sum(Maʼlumotlar toʻplami.Majmi)), yigʻindi(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(summa aylanma)", "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 iboralar yordamida har bir yuqori darajadagi guruhlarning ostidagi darajalarning qiymatlari qo'llanilishiga e'tibor bering. .

Natijada biz quyidagi qurilishni olamiz:

Ma'lumotlar tarkibida jamilarni o'rnatish so'rovlarga qaraganda bir oz farq qiladi. Keling, ma'lumotlar tarkibi tizimidagi "So'rov" ma'lumotlar to'plamini aniqlaylik.

So'rovning o'zida biz jami ma'lumotlarni sozlamaymiz, lekin ma'lumotlar tarkibining "Resurslar" yorlig'iga o'tamiz. Ma'lumotlar tarkibi sxemasi darajasida biz resurslarni aniqlash. Bular guruhlash darajasida hisoblanishi kerak bo'lgan maydonlardir. ">>" tugmasini bosing va tizimning o'zi barcha raqamli maydonlarni uzatadi va ularni resurslar sifatida belgilaydi.

Resurslarda raqamli bo'lmagan maydonlarni ham belgilashingiz mumkin. Misol uchun, agar siz "Link" atributini tanlasangiz, tizim bizning guruhlarimizdagi hujjatlar sonini hisoblaydi. Ushbu ma'lumot ham foydali bo'lishi mumkin. Shunday qilib, tartib diagrammasida biz faqat resurslarni aniqlaymiz, va guruhlarning o'zlari hisobot varianti darajasida tuzilgan. Foydalanuvchi hisobot parametrlari sozlamalarida ko'rmoqchi bo'lgan guruhlarni ham yaratishi mumkin.

Keling, standart ma'lumotlar kompozitsiyasi sozlamalarini yarataylik.
"Sozlamalar dizaynerini ochish" tugmasini bosing.

Hisobot turi - ro'yxatini tanlaymiz. “Keyingi” tugmasini bosing.

Keling, barcha maydonlarni tanlaymiz va kontragent maydonini yuqori pozitsiyaga o'tkazamiz. “Keyingi” tugmasini bosing.

Keling, barcha maydonlarni tanlaymiz va kontragent maydonini yuqori pozitsiyaga o'tkazamiz. “OK” tugmasini bosing.

Natijada quyidagi sozlamalar paydo bo'ladi:

Ko'rib turganingizdek, hisobot variantini o'rnatishda resurslar boshqa maydonlardan tezda ajralib turishi uchun yashil belgi bilan ta'kidlangan.

Agar biz hisobotimizni 1C: Enterprise rejimida ochsak va uni yaratsak, yakuniy ma'lumotlar guruhlash darajasida yaratilganligini ko'ramiz. Ob'ektlar va kontragentlar bo'yicha natijalar.

1C ma'lumotlar tarkibi sxemasida resurslarni sozlash

Endi e'tiborimizni unga qaratamiz resurslar uchun mavjud sozlamalar. "Ifoda" maydonida biz resurs qiymatini olish uchun ishlatilishi mumkin bo'lgan agregat funksiyani belgilashimiz mumkin. Ochiladigan ro'yxatda siz bir qator standart funktsiyalarni ko'rishingiz mumkin, lekin hammasi emas. Masalan, hech qanday funktsiyalar mavjud emas.

Bu erda "Ifoda" maydonida biz o'z ifodamizni yozishimiz mumkin.

"Ifoda" maydonida biz umumiy modullarning funksiyalariga ham kirishimiz mumkin.

Bundan tashqari, siz "Hisoblash bo'yicha ..." maydonida resursni qaysi guruhlar bo'yicha hisoblash kerakligini belgilashingiz mumkin. Agar "Hisoblash ..." maydoni to'ldirilmasa, resursning yakuniy qiymati hisobot parametrining sozlamalarida belgilangan barcha guruhlash darajalarida hisoblanadi. Bizning holatda, biz "Miqdor" resursining "Hisoblash ..." maydonini to'ldirishimiz kerak, chunki biz turli o'lchov birliklari bilan tovarlarni sotishimiz mumkin. Masalan: litrda moy va bo'laklarda g'ildiraklar. To'g'ri, bu tovarlarning miqdorini qo'shish mantiqqa to'g'ri kelmaydimi? Shuning uchun biz miqdorning yig'indisini element darajasida va kontragent darajasida qoldirishimiz kerak
Keling, yig'indini olib tashlaymiz.

Hisobot tuzadigan bo'lsak, jami miqdorlar faqat modda bo'yicha hisoblanganligini va pudratchilar uchun umumiy miqdorlar bo'sh ekanligini ko'ramiz.

1C ma'lumotlar tarkibi sxemasida resurslarni tavsiflashda imkoniyatlar

ko'rib chiqaylik resurslarni tavsiflash bilan bog'liq bir qator noaniq xususiyatlar.

  • Har bir resurs mumkin bir necha marta aniqlang. Lekin bu faqat agar mantiqiy bo'lsa
    resursga muvofiq hisoblab chiqiladi turli darajalar guruhlar. Misol uchun, agar miqdor, bir holatda
    element uchun jamlanadi va kontragentlar uchun biz minimal qiymatni olamiz.

Hisobot tuzadigan bo'lsak, "Deriya" kontragenti uchun minimal xarid "O'z-o'zidan yopishtiruvchi qog'oz" assortimentining besh birligi ekanligini ko'ramiz.

  • "Ifoda" maydonida siz formulani yozishdan tashqari, foydalanishingiz mumkin "Hisoblash" deb nomlangan maxsus ma'lumotlar tarkibi funktsiyasi. Ushbu funktsiya ma'lum bir formuladan foydalanib, ba'zi yakuniy qiymatni hisoblash imkonini beradi. Masalan, har bir kontragent uchun umumiy hajmga nisbatan tabiiy birliklarda xaridlar foizini bilish kerak. Ammo xaridlarning umumiy hajmini miqdori bo'yicha qanday olish mumkin? Buning uchun “Hisoblash” funksiyasidan foydalaning va “Ifoda” maydoniga quyidagi ifodani yozing:
Sum(Miqdor)/Hisoblash("Sum(Miqdor)", "Jami Jami")*100

Ko'rinib turganidek, "Hisoblash" funksiyasining barcha parametrlari satrlardir. Miqdor maydoni hisobotda chiroyli ko'rinishi uchun biz uni "Ma'lumotlar to'plami" yorlig'ida sozlaymiz. Miqdor qatorida biz "Tahrirlash parametrlari" maydonini topamiz. Keling, muloqot oynasini ochamiz, "Format" qatorini topamiz va undagi format chizig'ini tahrirlaymiz, "Raqam" yorlig'ida "Aniqlik" qiymatini ikkiga o'rnatamiz.

Keling, hisobotni ishga tushiramiz va "AUPP KOS TOO" kontragenti uchun xaridlar foizini hisoblash natijasini ko'ramiz.
umumiy hajmi:


Maqolaning oxirida men sizga Anatoliy Sotnikovdan bepul taklif qilmoqchiman. Bu tajribali dasturchining kursi. U sizga kirishni boshqarish tizimida hisobotlarni qanday yaratishni alohida asosda ko'rsatib beradi. Siz shunchaki diqqat bilan tinglashingiz va eslab qolishingiz kerak! Siz quyidagi savollarga javob olasiz:
  • Oddiy ro'yxat hisobotini qanday yaratish mumkin?
  • "Maydonlar" yorlig'idagi Maydon, Yo'l va Sarlavha ustunlari nima uchun?
  • Joylashtirish maydonlari uchun qanday cheklovlar bor?
  • Rollarni qanday qilib to'g'ri sozlash mumkin?
  • Joylashtirish maydonlari uchun qanday rollar mavjud?
  • So'rovda ma'lumotlar tarkibi yorlig'ini qayerdan topsam bo'ladi?
  • Kirishni boshqarish tizimida parametrlarni qanday sozlash mumkin?
  • Bu yanada qiziqarli bo'ladi ...
Ehtimol, kerakli ma'lumotlarni qidirish uchun Internetda o'zingizni kezishga urinmasligingiz kerakmi? Bundan tashqari, hamma narsa foydalanishga tayyor. Faqat boshlang! Bepul video darslarda nima borligi haqida barcha tafsilotlar

So'rovda ma'lumotlar tarkibini belgilash bo'yicha darslardan biri:

Keling, bir misolni ko'rib chiqaylik:

Bir necha birlik tovarlar mijozga turli chegirmalarda jo'natiladi. Hisobotda har bir mahsulot uchun chegirma qiymatlarini ko'rsatishingiz va o'rtacha chegirmani hisoblashingiz kerak. Keling, kirishni boshqarish tizimi haqida hisobot yarataylik.
Biz jami ko'rsatishimiz kerak bo'lgan barcha maydonlar uchun "Resurslar" yorlig'ida ularni hisoblash uchun ifoda (usul) o'rnatamiz. "Chegirma" maydoni uchun hisoblash usulini "O'rtacha" deb belgilang.

Hisobotni chiqaramiz:

Ko'rib turganingizdek, "Chegirma" maydoni uchun jami maydon qiymatlarining o'rtacha arifmetik qiymati sifatida hisoblanadi, ya'ni. barcha qiymatlar yig'indisi qiymatlar soniga bo'linadi. Lekin chunki Turli chegirmalar bilan jo'natilgan tovarlarning hajmlari har xil bo'lganligi sababli, o'rtacha chegirmani boshqa usulda hisoblash mumkin: masalan, chegirmani hisobga olgan holda jo'natilgan tovarlarning umumiy miqdorining jo'natilgan tovarlarning umumiy miqdoriga nisbati sifatida. Ammo bu erda savol tug'iladi: agar siz ACS-dagi batafsil yozuvlar maydonlarining qiymatlarini hisoblash uchun formula yozishingiz mumkin bo'lsa, unda jamilar avtomatik ravishda "Resurslar" yorlig'ida ko'rsatilgan ifodaga muvofiq hisoblanadi va u erda biz avvalroq ko'rgan edik, "O'rtacha" ko'rsatilgan qiymatlarning o'rtacha arifmetik qiymati sifatida hisoblanadi, chunki bu holda, men o'z formulam yordamida ushbu ustundagi jami hisoblashim kerakmi?
Bu aslida qiyin emas. Buning uchun biz hisobotimizni unga hisoblashda ishtirok etadigan kerakli maydonlarni qo'shish orqali moslashtiramiz, bizning holatlarimizda bular "AmountWithDiscount" va "AmountAtPrice".

ACS ni natijalarimizni ko'rsatishga "o'rgatish" uchun biz quyidagi qadamlarni bajaramiz:
1. "Sozlamalar" yorlig'ida guruhlash uchun nom belgilang, masalan, "ResultSKD", buning uchun guruhlash uchun kontekst menyusiga qo'ng'iroq qiling va "nom tayinlash" tugmasini bosing;

2. "Layouts" yorlig'ida "guruh sarlavhasi tartibi" ni qo'shing, bu erda biz ilgari tayinlangan "TotalSKD" nomini tanlaymiz;

3. biz sxema chizig'ini chizamiz, u erda biz barcha natijalarni qoldiramiz, ularning hisobi bizga mos keladi va o'rtacha chegirma foizini hisoblash uchun biz hisoblash formulasini yozamiz;

Agar hamma narsa to'g'ri bo'lsa, hisobot ko'rsatilganda, uning ostida ikkita umumiy satr ko'rsatiladi, birinchi navbatda avtomatik ravishda yaratilgan, keyin siz yaratgan.

Faqat umumiy satringizning chiqishini qoldirish uchun siz tartib chiqishining “Boshqa sozlamalar” bo‘limidagi “Sozlamalar” yorlig‘ida “Gorizontal umumiy umumiy joylashuv” va “Vertikal umumiy umumiy tartib” uchun chiqishni o‘chirib qo‘yishingiz kerak.

Do'stlaringizga ulashing yoki o'zingiz uchun saqlang:

Yuklanmoqda...