Ma'lumotlar tarkibi tizimini ifodalash tili (1Cv8). CDS hisoblangan funktsiya maydonlarining ma'lumotlar sxemasini tuzishning foydali misollari

Saytga talaba sifatida kiring

Maktab materiallariga kirish uchun talaba sifatida tizimga kiring

Yangi boshlanuvchilar uchun ma'lumotlar tarkibi tizimi 1C 8.3: natijalarni hisoblash (resurslar)

Ushbu darsning maqsadi:

  • Mahsulotlar ro'yxati (Oziq-ovqat ma'lumotnomasi), ularning kaloriya tarkibi va ta'mini ko'rsatadigan hisobot yozing.
  • Mahsulotlarni rangi bo'yicha guruhlang.
  • Xulosa (resurslar) va hisoblangan maydonlar haqida bilib oling.

Yangi hisobot yarating

Oldingi darslarda bo'lgani kabi, biz ma'lumotlar bazasini ochamiz " gastronom"konfiguratorda va menyu orqali yangi hisobot yarating" Fayl"->"Yangi...":

Hujjat turi - tashqi hisobot:

Hisobotni o'rnatish shaklida, nomini yozing " 3-dars"va tugmasini bosing" Ochiq ma'lumotlar tarkibi diagrammasi":

Standart sxema nomini qoldiring va " Tayyor":

Konstruktor orqali so'rov qo'shish

Yorliqda " Ma'lumotlar to'plami" bosing yashil plyus belgilang va "ni tanlang" Ma'lumotlar to'plamini qo'shish - so'rov":

So'rov matnini qo'lda yozish o'rniga, biz uni qayta ishga tushiramiz so'rov konstruktori:

"tabda" Jadvallar"stolni torting" Ovqat" birinchi ustundan ikkinchisiga:

Jadvaldan tanlang " Ovqat"biz so'raladigan maydonlar. Buning uchun maydonlarni sudrab olib tashlang" Ism", "Ta'mi", "Rang"Va" Kaloriya tarkibi" ikkinchi ustundan uchinchi ustungacha:

Bu shunday chiqdi:

"tugmasini bosing KELISHDIKMI" - so'rov matni avtomatik ravishda yaratildi:

Hisobot taqdimoti sozlamalarini yaratish

Yorliqga o'ting " Sozlamalar" va ustiga bosing sehrli tayoq, qo'ng'iroq qilmoq sozlash dizayneri:

Hisobot turini tanlang " Roʻyxat..." va "tugmasini bosing" Keyinchalik":

Ro'yxatda ko'rsatiladigan maydonlarni chap ustundan o'ngga torting va "ni bosing. Keyinchalik":

Chap ustundan o'ng maydonga torting " Rang"- bo'ladi guruhlash hisobotdagi qatorlar. ni bosing KELISHDIKMI":

Va bu erda dizaynerning ishining natijasi. Hisobotimiz ierarxiyasi:

  • umuman hisobot
  • guruhlash "Rang"
  • batafsil yozuvlar - oziq-ovqat nomlari bilan chiziqlar

Hisobotni saqlang (tugmasi disket) Va yopmasdan Biz darhol konfiguratorni foydalanuvchi rejimida ochamiz. Bu shunday chiqdi:

Ustunlar tartibini o'zgartirish

Ammo keling keling, tartibni o'zgartiramiz ustunlar (yuqoriga va pastga strelkalar), shunday qilib u quyidagi rasmga o'xshaydi:

Keling, hisobotni saqlaymiz va uni foydalanuvchi rejimida qayta ochamiz:

Ajoyib, bu ancha yaxshi.

Keling, kaloriya tarkibini umumlashtiramiz

Oziq-ovqatlarning kaloriya tarkibini guruh bo'yicha umumlashtirish yaxshi bo'lardi. Barcha mahsulotlarning kaloriya miqdorini ko'rish uchun, masalan, oq yoki sariq. Yoki ma'lumotlar bazasidagi barcha mahsulotlarning umumiy kaloriya tarkibini bilib oling.

Shu maqsadda resurslarni hisoblash mexanizmi mavjud.

Yorliqga o'ting " Resurslar"va maydonni torting" Kaloriya tarkibi"(biz uni umumlashtiramiz) chap ustundan o'ngga.

Bunday holda, maydonda ochiladigan ro'yxatdan ifodani tanlang " Miqdori (kaloriya)", chunki jami jamiga kiritilgan barcha elementlarning yig'indisi bo'ladi:

Biz hisobotni saqlaymiz va yaratamiz:

Endi bizda har bir guruh va umuman hisobot uchun natijalar mavjud.

Keling, kaloriyalar bo'yicha (o'rtacha) xulosa qilaylik

Endi uni boshqa ustunda ko'rsatamiz o'rtacha mahsulotlarning kaloriya tarkibi guruhlar bo'yicha va umuman hisobotda.

Siz mavjud "Kaloriya" ustuniga tegolmaysiz - unda jami allaqachon ko'rsatilgan, shuning uchun boshqa maydon yarataylik, bu "Kaloriya" maydonining aniq nusxasi bo'ladi.

Bunday "virtual" maydonni yaratish uchun biz mexanizmdan foydalanamiz hisoblangan maydonlar.

Yorliqga o'ting " Hisoblangan maydonlar" va bosing yashil ortiqcha belgisi:

Ustun ichida " Ma'lumotlar yo'li"biz yangi maydon nomini yozamiz ( muammosiz, bo'shliqlarsiz). Uni chaqirilsin" O'rtacha kaloriya tarkibi", va" ustunida Ifoda"Biz yangi maydon hisoblab chiqiladigan mavjud maydon nomini yozamiz. Biz u erda yozamiz " Kaloriya tarkibi". Ustun" Sarlavha" avtomatik ravishda to'ldiriladi.

Biz yangi maydon qo'shdik (" O'rtacha kaloriya tarkibi"), lekin u hisobotda o'z-o'zidan ko'rinmaydi - siz yana qo'ng'iroq qilishingiz kerak sozlash dizayneri("sehrli tayoqcha") yoki ushbu maydonni qo'shing qo'lda.

Keling buni bajaramiz ikkinchi yo'l. Buning uchun yorlig'iga o'ting " Sozlamalar", tanlang " Hisobot"(oxir-oqibat, biz hisobotga butun maydonni qo'shmoqchimiz), pastki qismidagi yorliqni tanlang" Tanlangan maydonlar"va maydonni torting" O'rtacha kaloriya tarkibi"chap ustundan o'ngga:

Bu shunday chiqdi:

Biz hisobotni saqlaymiz va yaratamiz:

Maydon paydo bo'ldi va biz uning qiymatlari "Kaloriya" maydonining qiymatlari ekanligini ko'ramiz. Ajoyib!

Buning uchun biz yana bizga tanish bo'lgan mexanizmdan foydalanamiz resurslar(jamlash). Yorliqga o'ting " Resurslar"va maydonni torting" O'rtacha kaloriya tarkibi"chap ustundan o'ngga:

Bundan tashqari, "ustunida" Ifoda"tanlash" O'rtacha (o'rtacha kaloriya)":

Biz hisobotni saqlaymiz va yaratamiz:

Guruhlar uchun, ya'ni har bir rang uchun va umuman hisobot uchun o'rtacha qiymat mutlaqo to'g'ri hisoblanganligini ko'ramiz. Ammo ular mavjud qo'shimcha yozuvlar hisobotdan olib tashlamoqchi bo'lgan alohida mahsulotlar (guruhlar emas) uchun.

Bilasizmi, ular nima uchun paydo bo'lgan (qiymatlar guruh bo'yicha emas)? Chunki biz maydonni qo'shganimizda " O'rtacha kaloriya tarkibi"hisobot sozlamalarida, ikkinchi bosqichda biz tanladik butun hisobot va bu yangi maydon elementda tugadi " Batafsil yozuvlar".

Keling, xatoni tuzataylik. Buning uchun tabga qayting " Sozlamalar", tanlang " Batafsil yozuvlar"avval yuqoridan (2-bosqich) va keyin" Batafsil yozuvlar"pastdan (3-bosqich), xatcho'pga o'ting" Tanlangan dalalar"va biz uning o'ng ustunida elementni ko'ramiz" Avtomatik".

Element " Avtomatik" - bu bitta maydon emas. Bular yuqori darajadagi sozlamalar asosida avtomatik ravishda tushadigan bir nechta maydonlardir.

Ushbu maydonlar nima ekanligini ko'rish uchun elementni bosing " Avtomatik" to'g'ri tugmasini bosing va " Kengaytirish":

Element " Avtomatik" quyidagi sohalarga kengaytirildi:

Va bu bizning maydonimiz" O'rtacha kaloriya tarkibi"Bu yerdan kelgan" Hisobot"Biz uni u erga sudrab kelganimizda. Shunchaki olib tashlaymiz uning chiqishini olib tashlash uchun ushbu maydon yonidagi katakchani belgilang.

8.2.14 ning yaqinlashib kelayotgan versiyasini hisobga olgan holda, men ma'lumotlar kompozitsiyasi tizimining ba'zi yangi funktsiyalarini tasvirlashga harakat qilaman.

Tahrirlashni osonlashtirish uchun maʼlumotlar joylashuvi diagrammasini, yaxshisi tashqi hisobotda oching.

Biz so'rov turidagi ma'lumotlar to'plamini qo'shamiz va qo'lda yoki so'rovlar dizayneri yordamida oddiy so'rovni yozamiz:

1. Kirishni boshqarish tizimida so'rovni o'rnating.

2. Kirishni boshqarish tizimida hisoblangan maydonlarni o'rnating

3. Sozlamalar yorlig'ida ma'lumotlar tartibini sozlang

4. 1C Enterprise 8.2.14 ni ishga tushiring. Hisobotni oching. Biz shakllantiramiz, qabul qilamiz.

Yangi funktsiyalarning tavsifi:

1. Joriy sana()

Tizim sanasini qaytaradi. Joylashtirish tartibini tuzishda, maketda mavjud bo'lgan barcha ifodalarda CurrentDate() funksiyasi joriy sananing qiymati bilan almashtiriladi.

2. COMPUTEEXPRESSION()

Sintaksis:

Ifodani hisoblash(,)

Tavsif:

Funktsiya ba'zi bir guruhlash kontekstida ifodani 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. Masalan, Nomenklatura guruhini tanlashda siz ifodadan foydalana olmaysiz Hisoblash ifodasi("Sum(summa aylanma)", "Jami jami") > 1000. 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 summa uchun intervalli ifodalarni hisoblashda (Guruhlash parametri GrandTotal ga o'rnatiladi), batafsil ma'lumotlarni hisoblash va agregat funktsiyalarni hisoblash uchun hech qanday yozuvlar mavjud emas deb taxmin qilinadi.

Funktsiya ifodasini yaratishda joylashuv bog'lovchisi Ifodani hisoblash, agar tartib ifodasi guruhlashda ishlatib bo'lmaydigan maydonlarni o'z ichiga olsa, funktsiyani almashtiradi Ifodani hisoblash yoqilgan NULL.

Variantlar

Turi: Chiziq. Baholanadigan ifoda.

Turi: 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 GeneralTotal qatori guruh nomi sifatida ishlatilsa, hisoblash umumiy jami kontekstida amalga oshiriladi. Aks holda, hisoblash bir xil nomdagi ota-ona guruhlash kontekstida amalga oshiriladi.

Masalan:

Sum(Sotuv.SumOborot)/Hisoblash("Sum(Sotish.SumOborot)", "Jami")

Ushbu misolda natija maydon bo'yicha yig'indi nisbati bo'ladi Sotish miqdori yozuvlarni butun maketdagi bir xil maydon yig'indisiga guruhlash;

Turi: Chiziq. Parametr quyidagi qiymatlarni olishi mumkin:

· Umumiy jami— ifoda barcha guruhlash yozuvlari uchun hisoblab chiqiladi.

· Ierarxiya— ifoda agar mavjud bo‘lsa, asosiy ierarxik yozuv uchun va agar asosiy ierarxik yozuv bo‘lmasa, butun guruhlash uchun baholanadi.

· Guruhlash— ifoda joriy guruhlash yozuvi uchun baholanadi.

· Resurs bo'lmagan guruhlash— Resurslar bo'yicha guruh yozuvi uchun funktsiyani hisoblashda ifoda dastlabki guruhlashning birinchi guruh yozuvi uchun hisoblanadi.

Funktsiyani hisoblashda Hisoblash ifodasi() ma'no bilan Resurs bo'lmagan guruhlash Resurslar bo'yicha guruhlanmagan guruh yozuvlari uchun funktsiya parametr qiymati qiymatga teng bo'lsa, xuddi shunday hisoblab chiqiladi. Guruhlash.

Ma'lumotlar kompozitsiyasi sxemasini yaratuvchisi, ma'lumotlar kompozitsiyasi sxemasini yaratishda, tartibga guruhlash amalga oshiriladigan resurs maydonini chiqarishda, funksiya yordamida hisoblangan maketga ifodani joylashtiradi. Hisoblash ifodasi() , parametrni ko'rsatadi Resurs bo'lmagan guruhlash. Boshqa resurslar uchun odatiy resurs iboralari resurslar guruhiga joylashtirilgan.

Turi: Chiziq. Fragment qaysi yozuvdan boshlanishi kerakligini, qaysi agregat ifoda funktsiyalarini hisoblash kerakligini va agregat funktsiyalardan tashqari maydon qiymatlarini qaysi yozuvdan olish kerakligini ko'rsatadi. Qiymat quyidagilardan biri bo'lishi mumkin:

· Birinchidan

· Oxirgi (oxirgi)

· Oldingi

· Keyingi (Keyingi)

· Hozirgi

· LimitingValue(chegara qiymati) LimitingValue

Turi: Chiziq. Fragmentni qaysi yozuvga davom ettirish kerakligini, unda ifodaning agregat funktsiyalarini hisoblash kerakligini ko'rsatadi. Qiymat quyidagilardan biri bo'lishi mumkin:

· Birinchidan. 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 (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 yozuv guruhlashdan tashqarida bo'lsa, unda 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, Previous(2) - oldingi yozuvdan oldingisini olish.

Agar oldingi yozuv guruhlashdan tashqariga chiqsa (masalan, ikkinchi guruhlash yozuvi uchun Oldingi(3) ni olishingiz kerak), u holda birinchi guruhlash yozuvi olinadi.

Guruhlash jami uchun oldingi yozuvni olishda birinchi yozuv olingan deb hisoblanadi.

· Keyingi (Keyingi). Keyingi guruhlash yozuvini olishingiz kerak. Qavs ichidagi so'zdan keyin siz iborani belgilashingiz mumkin, uning natijasi joriy guruhlash yozuvidan oldinga siljish sifatida ishlatiladi. Masalan, Next(2) - keyingi yozuvdan keyingi olish.

Agar keyingi yozuv guruhlashdan tashqariga chiqsa, unda yozuvlar yo'q deb hisoblanadi. Misol uchun, agar 3 ta yozuv bo'lsa va uchinchi yozuv Next() 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.

· LimitingValue(chegara qiymati). Belgilangan qiymat bo'yicha yozuvni olish zarurati. So'zdan keyin LimitingValue qavs ichida 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 unda 01/01/2010, 02/01/2010, 03/01/2010 qiymatlari bo'lsa va siz olishni istasangiz LimitingValue(DateTime(2010, 1, 15)), keyin 02/01/2010 sanasi bilan yozuv olinadi.

Turi: Chiziq. Tartib qoidalarini tavsiflovchi vergul bilan ajratilgan iboralarni sanab o'tadi. Agar ko'rsatilmagan bo'lsa, unda tartiblash ifoda baholanadigan guruhlash bilan bir xil tarzda amalga oshiriladi. Har bir ifodadan keyin siz kalit so'zni belgilashingiz mumkin Yosh(o'sish tartibida buyurtma berish uchun), Pastga(kamayish tartibida buyurtma berish uchun) va Avtomatik buyurtma(mos yozuvlar maydonlarini havola qilingan ob'ektga buyurtma bermoqchi bo'lgan maydonlar bo'yicha buyurtma qilish uchun). So'z Avtomatik buyurtma so'z bilan birga ishlatilishi mumkin Yosh, so'z bilan shunday Pastga.

Turi: Chiziq. Parametr bilan bir xil Tartiblash. Ierarxik yozuvlarni tashkil qilish uchun foydalaniladi. Agar ko'rsatilmagan bo'lsa, tartibni yaratuvchisi parametrda ko'rsatilgan tartib bo'yicha tartibni yaratadi Tartiblash.

Turi: Chiziq. Agar bir xil buyurtma qiymatiga ega bo'lgan bir nechta yozuvlar mavjud bo'lsa, oldingi yoki keyingi yozuvni aniqlash qoidasini belgilaydi:

· Alohida oldingi va keyingi yozuvlarni aniqlash uchun tartiblangan yozuvlar ketma-ketligidan foydalanilishini bildiradi. Standart qiymat.

· Birga oldingi va keyingi yozuvlar tartib ifodalarining qiymatlari asosida aniqlanishini bildiradi.

Misol uchun, natijada olingan ketma-ketlik sana bo'yicha tartiblangan bo'lsa:

sana To'liq ism Ma'nosi
1 2001 yil 01 yanvar

Ivanov M.

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

Alohida, Bu:

§ 3-kiritmaning oldingi yozuvi 2-kiritma bo'ladi.

Hozirgi, joriy(mos ravishda, parametrlar Boshlash Va Oxiri), u holda 2-yozuv uchun bu parcha bitta yozuvdan iborat bo'ladi 2. Ifoda 20 ga teng bo'ladi.

Agar parametr qiymati bo'lsa Birga, Bu:

§ 3-kiritmaning oldingi yozuvi 1-kiritma bo'ladi.

§ agar hisoblash bo'lagi sifatida aniqlangan bo'lsa Hozirgi, joriy(mos ravishda, parametrlar Boshlash Va Oxiri), keyin 2-yozuv uchun bu parcha 2 va 3-yozuvlardan iborat bo'ladi. Ifoda Hisoblash ifodasi("summa(qiymat), joriy, joriy) 50 ga teng bo'ladi.

ga teng parametr qiymatini belgilashda Birga, parametrlarda Boshlash Va Oxiri pozitsiyalar uchun ofsetni belgilay olmaysiz Birinchi, oxirgi, oldingi, keyingi.

Hisoblash Ifodasi("Sum(summa aylanma)", "Birinchi", "Joriy")

Agar oldingi qatordagi guruhlash qiymatini olishni istasangiz, quyidagi ifodadan foydalanishingiz mumkin:

CalculateExpression("Baho", "Oldingi")

Roʻyxat yangi vazifalari:

ExpressionWithGroupArray bilan hisoblang(,) -

Funktsiya massivni qaytaradi, uning har bir elementi belgilangan maydon bo'yicha guruhlash uchun ifodani baholash natijasini o'z ichiga oladi.

ExpressionWithGroupValueTable bilan hisoblang(,) -

Funktsiya qiymatlar jadvalini qaytaradi, ularning har bir satri belgilangan maydon bo'yicha guruhlash uchun ifodalarni baholash natijasini o'z ichiga oladi.

Qiymat to'ldirilgan() - Agar qiymat ushbu turdagi standart qiymatdan, NULLdan, bo'sh havoladan tashqari, Aniqlanmagandan boshqa bo'lsa, True qaytaradi. Mantiqiy qiymatlar NULL qiymatlari uchun tekshiriladi. Satrlar bo'sh joy bo'lmagan belgilarning yo'qligi uchun tekshiriladi

Format(, ) - O'tkazilgan qiymatning formatlangan qatorini olish. Format qatori 1C: Enterprise tizimining format qatoriga muvofiq o'rnatiladi.

Substring(, , ) - Bu funksiya satrdan pastki qatorni chiqarish uchun mo'ljallangan.

Chiziq uzunligi() - funksiya satr uzunligini aniqlash uchun mo'ljallangan. Parametr - bu qator ifodasi

Chiziq() - Agar massiv parametr sifatida uzatilsa, funktsiya ";" belgilari bilan ajratilgan barcha massiv elementlarining satr tasvirlarini o'z ichiga olgan qatorni qaytaradi. Agar qiymatlar jadvali parametr sifatida uzatilsa, funktsiya qiymatlar jadvalining barcha satrlarining satr ko'rinishlarini o'z ichiga olgan satrni qaytaradi, har bir satrning hujayra ko'rinishlari ";" belgilari bilan va qatorlar yangi qator bilan ajratilgan. xarakter. Agar elementning satr tasviri bo'sh bo'lsa, uning tasviri o'rniga satr ko'rsatiladi.

Ifodani hisoblash ACS funktsiyasini tushunish juda qiyin va ma'lumotnomada qo'llash misollari juda kam. Ushbu maqolada har bir ishlab chiquvchi uchun foydali bo'lishi mumkin bo'lgan misollar muhokama qilinadi:

  1. guruhlashda jami jami;
  2. o'zaro varaqdagi jami jami;
  3. oldingi qiymatni olish;
  4. Bir qatorda PM chiqishi.

1. Hisoblash usuli bo'yicha ko'rsatkichni olish

Guruhlash darajasida tovar miqdorini yig’indisi sifatida olamiz. Buning uchun hisoblangan maydonni yarating (1-rasmga qarang).
"Resurslar" yorlig'ida hisoblangan maydon uchun funktsiyani o'rnating:
Hisoblash Ifodasi("Sum(Miqdori aylanma)", "Birinchi", "Joriy")
birinchi yozuvdan hozirgi kungacha bo'lgan mahsulotlar sonini jamlaydi (2-rasmga qarang).

Agar ob'ektning jami umumiy miqdori batafsil yozuvlar darajasida olinishi kerak bo'lsa, biz "Hisoblangan maydonlar" yorlig'ida hisoblangan maydon uchun CalculateExpression funksiyasini o'rnatamiz (3-rasmga qarang).
Kümülatif jami olish darajasiga qarab, biz guruhlashni yaratamiz (4-rasmga qarang): resurs darajasida - tovarlar bo'yicha guruhlash, masofadan boshqarish darajasida - batafsil yozuvlarni guruhlash.
Shakl 4. Hisobotlarni yig'indisi bilan guruhlash

2. Oldingi qatordan indikator qiymatini olish

Keling, sana va oldingi sana uchun valyuta kursini olaylik. Buning uchun hisoblangan maydonni yarating va ifoda maydoniga quyidagi ifodani yozing (5-rasmga qarang):
CalculateExpression("Baho", "Oldingi", "Oldingi")
joriy satr uchun valyuta kursining oldingi qiymatini oladi, funktsiyaning oxirgi parametri ma'lumotlarni olishni cheklaydi.
Biz batafsil yozuvlar darajasida ishlayotganimiz sababli, biz darhol "Sozlamalar" yorlig'iga o'tamiz va guruhlash - batafsil yozuvlarni yaratamiz.

3. Ko‘rsatkichni o‘zaro yorliqda yig‘ma jami sifatida olish

Tovar miqdorini davrlar bo'yicha hisoblab chiqaylik. Buning uchun hisoblangan maydonni yarating (1-rasmga qarang). "Resurslar" yorlig'ida biz hisoblangan maydon uchun quyidagi ifodani belgilaymiz (6-rasmga qarang):
Hisoblash Ifodasi("Sum(Miqdori aylanma)", "Davr", "Birinchi", "Joriy")
guruhlash darajasida har bir element uchun davr kontekstida birinchi qatordan joriy qatorgacha bo'lgan oraliqdagi tovarlar miqdorini hisoblab chiqadi.
"Sozlamalar" yorlig'ida qatordagi elementlar bo'yicha guruhlash va ustunda nuqta bo'yicha guruhlash bilan jadval yarating (7-rasmga qarang).

4. Bir satrda jadval ma'lumotlarini chiqarish

Jadval ma'lumotlarini bir qatorda ko'rsatish usullari, shu jumladan CalculateExpression funktsiyasidan foydalanish usuli maqolada muhokama qilinadi.

Ma'lumotlar tarkibi tizimini ifodalash tili

Ma'lumotlar tarkibi tizimining ifoda tili tizimning turli qismlarida ishlatiladigan ifodalarni yozish uchun mo'ljallangan.

Ifodalar quyidagi quyi tizimlarda qo'llaniladi:

  • ma'lumotlarni joylashtirish diagrammasi - hisoblangan maydonlarni, jami maydonlarni, ulanish ifodalarini va boshqalarni tavsiflash uchun;
  • ma'lumotlar joylashuvi sozlamalari - maxsus maydon ifodalarini tavsiflash uchun;
  • ma'lumotlar layout layout - ma'lumotlar to'plamlarini ulash uchun ifodalarni tavsiflash, tartib parametrlarini tavsiflash va boshqalar uchun.

Harflar

Ifodada harflar bo'lishi mumkin. Literallarning quyidagi turlari mumkin:

  • Chiziq;
  • Raqam;
  • Sana;
  • Mantiqiy.

Chiziq

Satr harfi “” belgilarda yoziladi, masalan:

“String literal”

Agar siz satr literalida "" belgisini ishlatishingiz kerak bo'lsa, siz ikkita shunday belgidan foydalanishingiz kerak.

Masalan:

"To'g'ridan-to'g'ri ""qo'shtirnoq ichida"""

Raqam

Raqam bo'sh joysiz, o'nlik formatda yoziladi. Kasr qismi "." belgisi yordamida ajratiladi. Masalan:

10.5 200

sana

Sana harfi DATETIME kalit harfi yordamida yoziladi. Ushbu kalit so'zdan keyin qavs ichida yil, oy, kun, soat, daqiqa, soniyalar vergul bilan ajratilgan holda ko'rsatilgan. Vaqt spetsifikatsiyasi talab qilinmaydi.

Masalan:

DATETIME (1975, 1, 06) – 1975 yil 6 yanvar DATETIME (2006, 12, 2, 23, 56, 57) – 2006 yil 2 dekabr, 23 soat 56 daqiqa 57 soniya, 23 soat 56 daqiqa 57 soniya

Mantiqiy

Mantiqiy qiymatlarni True (True), False (False) harflari yordamida yozish mumkin.

Ma'nosi

Boshqa turdagi literallarni (tizim sanab o'tishlari, oldindan belgilangan ma'lumotlar) belgilash uchun Value kalit so'zidan foydalaniladi, undan keyin qavs ichida harf nomi qo'yiladi.

Qiymat(Hisob turi. Faol)

Raqamlar ustida amallar

Birlik -

Bu operatsiya raqamning ishorasini qarama-qarshi belgiga o'zgartirish uchun mo'ljallangan. Masalan:

Sotish. Miqdor

Birlik +

Ushbu operatsiya raqam bo'yicha hech qanday amalni bajarmaydi. Masalan:

Sotish. Miqdor

Ikkilik -

Ushbu operatsiya ikki raqamning farqini hisoblash uchun mo'ljallangan. Masalan:

QoldiqlarVa aylanmalar.Boshlang'ich qolgan – QolganlarVa aylanmalar.Yakuniy qoldiqlarQolganlarVa aylanmalar.Boshlang'ich qolgan - 100 400 – 357

Ikkilik +

Ushbu operatsiya ikki raqamning yig'indisini hisoblash uchun mo'ljallangan. Masalan:

QolganlarVa Aylanma.Boshlang'ichQolgan + QolganVa Aylanma.Tovar aylanmasi qoldiqlariVa Aylanma.Boshlang'ich Qolgan + 100 400 + 357

Ish

Ushbu operatsiya ikki raqamning mahsulotini hisoblash uchun mo'ljallangan. Masalan:

Nomenklatura.Narx * 1,2 2 * 3,14

Bo'lim

Ushbu operatsiya bitta operandni boshqasiga bo'lish natijasini olish uchun mo'ljallangan. Masalan:

Nomenklatura.Narx / 1,2 2 / 3,14

Bo'limning qolgan qismi

Ushbu operatsiya bitta operand boshqasiga bo'linganda qolgan qismini olish uchun mo'ljallangan. Masalan:

Nomenklatura Narxi % 1,2 2 % 3,14

String operatsiyalari

Birlashtirish (ikkilik +)

Ushbu operatsiya ikki qatorni birlashtirish uchun mo'ljallangan. Masalan:

Nomenklatura.Maqola + “: ”+ Nomenklatura.Ism

Kabi

Ushbu operatsiya satrning o'tkazilgan naqshga mos kelishini tekshiradi.

LIKE operatorining qiymati, agar qiymat bo'lsa, TRUE bo'ladi<Выражения>naqshni qanoatlantiradi, aks holda FALSE.

Quyidagi belgilar<Строке_шаблона>satrdagi boshqa belgidan farqli ma'noga ega:

  • % - foiz: nol yoki undan ortiq ixtiyoriy belgilarni o'z ichiga olgan ketma-ketlik;
  • _ - pastki chiziq: bitta ixtiyoriy belgi;
  • […] - kvadrat qavslar ichida bir yoki bir nechta belgilar: bitta belgi, kvadrat qavslar ichida sanab o'tilganlardan har biri. Ro'yxatda diapazonlar bo'lishi mumkin, masalan, a-z, ya'ni diapazonga kiritilgan ixtiyoriy belgi, jumladan diapazon oxirlari;
  • [^...] - kvadrat qavs ichida bir yoki bir nechta belgilardan keyin inkor belgisi: rad etish belgisidan keyin sanab o'tilganlardan tashqari har qanday belgi;

Boshqa har qanday belgi o'zini anglatadi va qo'shimcha yuk ko'tarmaydi. Agar sanab o'tilgan belgilardan biri o'zi kabi yozilishi kerak bo'lsa, u holda uning oldiga yozilishi kerak<Спецсимвол>, SPECIAL CHARACTER kalit so'zidan keyin ko'rsatilgan (QOCHISH).

Masalan, shablon

“%ABV[abvg]\_abv%” MAXSUS FIRSAT “\”

belgilar ketma-ketligidan iborat pastki qatorni bildiradi: A harfi; B harflari; B harflari; bitta raqam; a, b, c yoki d harflaridan biri; tagiga chizish; a harflari; b harflari; harflar v. Bundan tashqari, bu ketma-ketlikni chiziqdagi o'zboshimchalik pozitsiyasidan boshlab joylashtirish mumkin.

Taqqoslash operatsiyalari

Teng

Ushbu operatsiya ikki operandni tenglik uchun solishtirish uchun mo'ljallangan. Masalan:

Sotish.Qarshi tomon = Sotish.NomenklaturaAsosiy yetkazib beruvchi

Teng emas

Ushbu operatsiya ikki operandni tengsizlik uchun solishtirish uchun mo'ljallangan. Masalan:

Sotish. Qarshi tomon<>Sotish.NomenklaturaAsosiy yetkazib beruvchi

Ozroq

Ushbu operatsiya birinchi operand ikkinchisidan kamroq ekanligini tekshirish uchun mo'ljallangan. Masalan:

SotishJoriy.Summa< ПродажиПрошлые.Сумма

Ko'proq

Ushbu operatsiya birinchi operand ikkinchisidan kattaroq ekanligini tekshirish uchun mo'ljallangan. Masalan:

Savdo joriy.sum > SotishOʻtgan.sum

Kamroq yoki teng

Ushbu operatsiya birinchi operand ikkinchidan kichik yoki teng ekanligini tekshirish uchun mo'ljallangan. Masalan:

SotishJoriy.Summa<= ПродажиПрошлые.Сумма

Ko'proq yoki teng

Ushbu operatsiya birinchi operand ikkinchidan katta yoki teng ekanligini tekshirish uchun mo'ljallangan. Masalan:

SalesCurrent.Amount >= SalesPast.Amount

Operatsiya B

Ushbu operatsiya o'tkazilgan qiymatlar ro'yxatida qiymat mavjudligini tekshiradi. Agar qiymat topilsa, operatsiya natijasi True, aks holda False bo'ladi. Masalan:

B elementi (&Mahsulot1, &Mahsulot2)

Ma'lumotlar to'plamida qiymat mavjudligini tekshirish operatsiyasi

Amaliyot belgilangan ma'lumotlar to'plamida qiymat mavjudligini tekshiradi. Tekshirish ma'lumotlar to'plamida bitta maydon bo'lishi kerak. Masalan:

Sotish Kontragent kontragentga

NULL qiymatini tekshirish operatsiyasi

Agar qiymat NULL bo'lsa, bu operatsiya True qiymatini qaytaradi. Masalan:

Sotish.Qarshi tomon NULL

NULL tengsizlik uchun qiymatni tekshirish operatsiyasi

Agar qiymat NULL bo'lmasa, bu operatsiya True qiymatini qaytaradi. Masalan:

Sotish. Qarshi tomon BO'LGAN EMAS

Mantiqiy operatsiyalar

Mantiqiy amallar mantiqiy turdagi ifodalarni operand sifatida qabul qiladi.

Operatsiya YO'Q

EMAS operatsiyasi, agar uning operandi False bo'lsa, True qiymatini qaytaradi, agar uning operandi True bo'lsa, False. Masalan:

Hujjat EMAS.Yuk oluvchi = Hujjat.Yuk yuboruvchi

Operatsiya I

AND operatsiyasi, agar ikkala operand ham rost bo'lsa, True, operandlardan biri False bo'lsa, False qiymatini qaytaradi. Masalan:

Hujjat.Yuk oluvchi = Hujjat.Yuk yuboruvchi VA Hujjat.Yuk oluvchi = &Qarshi tomon

YOKI operatsiya

OR operatsiyasi, agar operandlardan biri rost bo'lsa, True, ikkala operand ham False bo'lsa, False qiymatini qaytaradi. Masalan:

Hujjat.Yuk oluvchi = Hujjat.Yuk yuboruvchi YOKI Hujjat.Yuk oluvchi = &Qarshi tomon

Agregat funktsiyalari

Agregat funktsiyalar ma'lumotlar to'plamida ba'zi harakatlarni bajaradi.

so'm

Sum agregat funktsiyasi barcha tafsilotlar yozuvlari uchun argument sifatida unga berilgan iboralar qiymatlarining yig'indisini hisoblab chiqadi. Masalan:

Miqdori(Sotuv.Miqdori)

Miqdori

Count funktsiyasi NULLdan boshqa qiymatlar sonini hisoblab chiqadi. Masalan:

Miqdori (Sotish. Qarshi tomon)

Turli xillar soni

Bu funksiya alohida qiymatlar sonini hisoblab chiqadi. Masalan:

Miqdori (turli xil sotish. Qarshi tomon)

Maksimal

Funktsiya maksimal qiymatni oladi. Masalan:

Maksimal(Qolgan.Miqdor)

Eng kam

Funktsiya minimal qiymatni oladi. Masalan:

Minimal (Qolgan. Miqdor)

O'rtacha

Funktsiya NULL bo'lmagan qiymatlarning o'rtacha qiymatini oladi. Masalan:

O'rtacha (Qolgan. Miqdor)

Boshqa operatsiyalar

SELECT operatsiyasi

Tanlash operatsiyasi ma'lum shartlar bajarilganda bir nechta qiymatlardan birini tanlash uchun mo'ljallangan. Masalan:

Qachon Miqdor > 1000 ni tanlang, Aks holda summa 0 End

Ikki qiymatni solishtirish qoidalari

Agar taqqoslanadigan qiymatlarning turlari bir-biridan farq qiladigan bo'lsa, u holda qiymatlar o'rtasidagi munosabatlar turlarning ustuvorligi asosida aniqlanadi:

  • NULL (eng past);
  • mantiqiy;
  • Raqam;
  • Sana;
  • Chiziq;
  • Malumot turlari

Turli xil mos yozuvlar turlari o'rtasidagi munosabatlar ma'lum bir turga mos keladigan jadvallarning mos yozuvlar raqamlari asosida aniqlanadi.

Agar ma'lumotlar turlari bir xil bo'lsa, qiymatlar quyidagi qoidalarga muvofiq taqqoslanadi:

  • mantiqiy tip uchun TRUE qiymati FALSE qiymatidan katta;
  • Raqam turi raqamlar uchun odatiy taqqoslash qoidalariga ega;
  • Sana turi uchun oldingi sanalar keyingi sanalardan kichikroq;
  • String turi uchun - ma'lumotlar bazasining belgilangan milliy xususiyatlariga muvofiq satrlarni taqqoslash;
  • mos yozuvlar turlari ularning qiymatlari (rekord raqami va boshqalar) asosida taqqoslanadi.

NULL qiymati bilan ishlash

Operandlardan biri NULL bo'lgan har qanday operatsiya NULL natijani beradi.

Istisnolar mavjud:

  • AND operatsiyasi operandlarning hech biri False bo'lmasagina NULLni qaytaradi;
  • OR operatsiyasi faqat operandlarning hech biri True bo'lmasa NULLni qaytaradi.

Operatsion ustuvorliklari

Operatsiyalar quyidagi ustuvorliklarga ega (birinchi qator eng past ustuvorlikka ega):

  • B, IS NULL, IS NOLL;
  • =, <>, <=, <, >=, >;
  • Ikkilik +, Ikkilik – ;
  • *, /, %;
  • Birlik +, birlik -.

Ma'lumotlar tarkibi tizimini ifodalash tilining funktsiyalari

Hisoblash

Hisoblash funktsiyasi ma'lum bir guruhlash kontekstida ifodani hisoblash uchun mo'ljallangan. Funktsiya quyidagi parametrlarga ega:

  • Ifoda. String yozing. Hisoblangan ifodani o'z ichiga oladi;
  • Guruhlash. String yozing. 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 bir xil nomdagi ota-ona guruhlash kontekstida amalga oshiriladi. Masalan:
Sum(Sotuv.Sumaylanma) / Hisoblash("Sum(Sotuv.Sumaylanma)", "Jami")

Ushbu misolda natija guruhlash yozuvining "Sotuvlar.Ajratish summasi" maydoni uchun summaning butun tartibdagi bir xil maydon miqdoriga nisbati bo'ladi.

Daraja

Funktsiya joriy yozish darajasini olish uchun mo'ljallangan.

Daraja()

NumberInOrder

Keyingi tartib raqamini oling.

NumberByOrder()

NumberInOrderInGrouping

Joriy guruhlashda keyingi tartib raqamini qaytaradi.

NumberByOrderInGroup()

Format

O'tkazilgan qiymatning formatlangan qatorini oling.

Format qatori 1C: Enterprise format qatoriga muvofiq o'rnatiladi.

Variantlar:

  • Ma'nosi;
  • Format qatori.

Format(Iste'mol qilinadigan hisob-fakturalar. Hujjat summasi, "NPV=2")

Davr boshlanishi

Variantlar:

    • daqiqa;
    • kun;
    • Bir hafta;
    • Oy;
    • chorak;
    • o'n yil;
    • Yarim yil.

Boshlanish davri(Sana vaqti (2002, 10, 12, 10, 15, 34), "Oy")

Natija:

01.10.2002 0:00:00

Davr oxiri

Funktsiya ma'lum bir sanadan ma'lum bir sanani chiqarish uchun mo'ljallangan.

Variantlar:

  • Sana. Sana yozing. Belgilangan sana;
  • Davr turi. String yozing. Quyidagi qiymatlardan birini o'z ichiga oladi:
    • daqiqa;
    • kun;
    • Bir hafta;
    • Oy;
    • chorak;
    • o'n yil;
    • Yarim yil.

EndPeriod(SanaVaqti(2002, 10, 12, 10, 15, 34), "Hafta")

Natija:

13.10.2002 23:59:59

AddToDate

Funktsiya sanaga ma'lum qiymat qo'shish uchun mo'ljallangan.

Variantlar:

  • Kattalashtirish turi. String yozing. Quyidagi qiymatlardan birini o'z ichiga oladi:
    • daqiqa;
    • kun;
    • Bir hafta;
    • Oy;
    • chorak;
    • o'n yil;
    • Yarim yil.
  • Miqdori - sanani qancha ko'paytirish kerakligi bilan. Raqamni yozing. Kasr qismi e'tiborga olinmaydi.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Oy", 1)

Natija:

12.11.2002 10:15:34

Sana farqi

Funktsiya ikki sana o'rtasidagi farqni olish uchun mo'ljallangan.

Variantlar:

  • Ifoda. Sana yozing. Asl sana;
  • Ifoda. Sana yozing. Chiqarilgan sana;
  • Farq turi. String yozing. Quyidagi qiymatlardan birini o'z ichiga oladi:
    • Ikkinchi;
    • daqiqa;
    • kun;
    • Oy;
    • chorak;

DATEFARQI(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME (2002, 10, 14, 9, 18, 06), "KUN")

Natija:

Substring

Bu funksiya satrdan pastki qatorni chiqarish uchun mo'ljallangan.

Variantlar:

  • Chiziq. String yozing. Pastki satr olinadigan satr;
  • Lavozim. Raqamni yozing. Qatordan ajratib olinadigan pastki satr boshlanadigan belgining pozitsiyasi;
  • Uzunlik. Raqamni yozing. Ajratilgan pastki qatorning uzunligi.

SUBSTRING(Hisoblar.Manzil, 1, 4)

Chiziq uzunligi

Funktsiya satr uzunligini aniqlash uchun mo'ljallangan.

Parametr:

  • Chiziq. String yozing. Uzunligi belgilangan qator.

Chiziq(Qarshi tomonlar.Manzil)

Yil

Bu funksiya Sana turi qiymatidan yilni chiqarish uchun mo'ljallangan.

Parametr:

  • Sana. Sana yozing. Yil belgilangan sana.

YIL(Xarajat.Sana)

Chorak

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

Parametr

  • Sana. Sana yozing. Chorak belgilangan sana
CHORAK(Xarajat.Sana)

Oy

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

  • Sana. Sana yozing. Oy belgilangan sana.
MONTH(Xarajat.Sana)

Yil kuni

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

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

kun

Bu funksiya Sana turi qiymatidan oyning kunini olish uchun mo'ljallangan. Oyning kuni odatda 1 dan 31 gacha.

  • Sana. Sana yozing. Oyning kuni aniqlangan sana.
KUN(Xarajat.Sana)

Bir hafta

Bu funksiya Sana turi qiymatidan yilning hafta raqamini olish uchun mo'ljallangan. Yilning haftalari 1 dan boshlab raqamlangan.

  • Sana. Sana yozing. Hafta raqamlari aniqlanadigan sana.
HAFTA(Xarajat.Sana)

Hafta kuni

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

  • Sana. Sana yozing. Haftaning kuni belgilanadigan sana.
HAFTA KUNI (xarajat hisob-fakturasi sanasi)

Soat

Bu funksiya Sana turi qiymatidan kun soatini olish uchun mo'ljallangan. Kunning soati 0 dan 23 gacha.

  • Sana. Sana yozing. Kunning soati belgilanadigan sana.
HOUR(Xarajat.Sana)

Daqiqa

Bu funksiya Sana turi qiymatidan soatning daqiqasini olish uchun mo'ljallangan. Soatning daqiqasi 0 dan 59 gacha.

  • Sana. Sana yozing. Soatning daqiqasi aniqlangan sana.
MINUTE(Xarajat.Sana)

Ikkinchi

Bu funksiya Sana turi qiymatidan daqiqaning soniyasini olish uchun mo'ljallangan. Bir daqiqaning soniyasi 0 dan 59 gacha.

  • Sana. Sana yozing. Daqiqaning soniyalari aniqlanadigan sana.
IKKINCHI(Xarajat.Sana)

Ekspress

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.

Variantlar:

  • Konvertatsiya qilish uchun ifoda;
  • Tur ko'rsatkichi. String yozing. Tur qatorini o'z ichiga oladi. Masalan, "Raqam", "String" va boshqalar. Bu satrda ibtidoiy turlarga qo'shimcha ravishda jadval nomi ham bo'lishi mumkin. Bunday holda, ko'rsatilgan jadvalga havolani ifodalashga harakat qilinadi.

Ekspres(Data.Props1, "Raqam(10,3)")

IsNull

Agar birinchi parametrning qiymati NULL bo'lsa, bu funktsiya ikkinchi parametrning qiymatini qaytaradi.

Aks holda, birinchi parametrning qiymati qaytariladi.

HaNULL(Miqdor(Sotuv.Miqdori), 0)

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.

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.

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

  • hisobotni ishlab chiqish uchun zarur bo'lgan vaqtni sezilarli darajada qisqartirish;
  • boshqariladigan shakl ishlov beruvchisini yaratish zaruriyatini bartaraf etish;
  • foydalanuvchi tomonidan qo'shimcha sozlash imkoniyati bilan chiroyli natijaga ega bo'ling.

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 chiziq 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.

Bir nechta muhim fikrlar:

  • 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'lumot 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.

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

Aytaylik, “Ifoda” maydonida Hisoblash ifodasi (“Hujjat yig‘indisi”, “Oldingi yig‘indi”) qiymatini ko‘rsatib, so‘rovimizning oldingi qatoridan Hujjat summasini olishingiz mumkin.