SCD da tanlovlardan foydalanish. DCS-da tanlovlardan foydalanish Ma'lumotlar tarkibi tizimining so'rovlar tili kengaytmasining sintaktik elementlari

Ma'lumotlar tarkibi tizimi uchun so'rovlar tili kengaytmasi

Ma'lumotlar tarkibi tizimi uchun so'rovlar tilini kengaytirish jingalak qavslar ichiga olingan va to'g'ridan-to'g'ri so'rov matniga joylashtirilgan maxsus sintaktik ko'rsatmalar yordamida amalga oshiriladi.

Ma'lumotlar tarkibi tizimining sintaktik elementlari so'rovlar tili kengaytmasi

TANLANG

Ushbu jumla foydalanuvchi chiqish uchun tanlashi mumkin bo'lgan maydonlarni tavsiflaydi. Ushbu kalit so'zdan so'ng, asosiy so'rovlarni tanlash ro'yxatidagi konfiguratsiya uchun mavjud bo'lgan maydonlarning taxalluslari vergul bilan ajratiladi.

Masalan:

(Tanlash elementi, ombor)

Maydon taxallusidan keyin “.*” belgilar birikmasi boʻlishi mumkin, bu esa ushbu maydondagi bolalar maydonlaridan foydalanish imkoniyatini bildiradi.

Masalan, Nomenklatura.* yozuvi “Nomenklatura” maydonining (masalan, “Nomenklatura.Kod” maydoni) ichki maydonlaridan foydalanish imkoniyatini bildiradi. SELECT elementi faqat birinchi qo'shilish so'rovida paydo bo'lishi mumkin.

QAYERDA

Foydalanuvchi tanlovni qo'llashi mumkin bo'lgan maydonlar tavsiflangan. Bu taklif jadval maydonlaridan foydalanadi. Tanlov roʻyxati maydoni taxalluslaridan foydalanishga ruxsat berilmagan. Birlashmaning har bir qismi o'zining WHERE elementini o'z ichiga olishi mumkin.

(QAYERNING Nomenklaturasi.*, Ombor)

Oddiy misol

Davr uchun sotuvni olish kerak + savdo bo'lgan yoki bo'lmaganidan qat'i nazar, butun elementni ko'rsatish. Ya'ni, siz Savdo reestrining aylanma jadvalidan ma'lumotlarni, nomenklatura katalogidan ma'lumotlarni tanlashingiz kerak. Keling, barcha nomenklatura nima uchun kerakligi haqidagi savolni o'tkazib yuboraylik.

Muammoni hal qilish uchun siz ob'ektni va Sotish aylanmasi jadvalini chap qo'shilish bilan bog'laydigan so'rovni yaratishingiz mumkin, natijada tanlangan davrda sotilmagan mahsulot uchun biz maydon qiymatlarini olamiz. Qarama-qarshi tomon, Shartnoma, Miqdori, so'm= Null. Ushbu so'rov:

SELECT ReferenceNomenklatura.Link AS Nomenklatura, SotishTurnover.Counterparty, SalesTurnover.Qarshi taraf shartnomasi, Savdo aylanmasi.MiqdoriOborot. SalesReference AS siz SprNomenclature.Link-dasiz = Sotish oboroti.Nomenklatura

Mana natija:

Qarama-qarshi tomon Shartnoma Nomenklatura Miqdori so'm
null null _Test 1 null null
"Shoxlar va tuyoqlar" MChJ Shartnoma 1 Terlik 10 1200
"Gazprom" Ajoyib shartnoma Botinkalar 5 13000
null null Galoshes null null
null null Shiferlar null null

Ushbu misolda "Overshoes" va "Sippers" buyumlari sotilmagan.

Va hamma narsa yaxshi bo'ladi, agar namunani kontragent bo'yicha guruhlasak, unda barcha sotilmagan narsalar alohida guruhga bo'linadi, bu erda kontragent = Null, lekin mijoz hisobotda kontragent maydoni bo'yicha tasodifiy tanlovga ega bo'lishni xohlaydi (tabiiyki, bu Savdo reestridan kontragentni bildiradi). Nima qilishim kerak? Axir, aslida, biz faqat jadvalni filtrlashimiz kerak Sotish. Agar biz ACS konstruktorida avtoto'ldirishdan foydalansak, u holda mavjud tanlov maydonlari maydonni o'z ichiga oladi Qarama-qarshi tomon, hamma narsa yaxshi ko'rinadi, lekin kontragent tomonidan tanlangan hisobotni bajarayotganda, biz element bilan bog'lanishdan barcha yozuvlarni yo'qotamiz. Masalan, tanlovni o'rnatamiz: Qarama-qarshi tomon = MChJ "Horns and Hooves". Natija quyidagicha ko'rinadi:

Bizga kerak bo'lgan narsa emas, to'g'rimi?

Muammoni hal qilish uchun siz, albatta, so'rovga, masalan, virtual jadval parametrlariga parametr qo'shishingiz mumkin. Sotish aylanmasi, lekin ayni paytda taqqoslash turini belgilashning moslashuvchanligi yo'qoladi.

Bir yechim bor: buning uchun so'rovlar yaratuvchisi tabda Ma'lumotlar tarkibi => Jadvallar virtual jadval shartlariga shart maydoni qo'shing Sotish aylanmasi va uning taxallusini o'zgartiring CounterpartySelection

Foydalanuvchini tanlash maydonlari bilan adashtirmaslik uchun shart maydonini o'chirib qo'yamiz Qarama-qarshi tomon va maydonning sarlavhasini o'zgartiring CounterpartySelection


Ushbu sxemani kontragent maydonida yoqilgan tanlov bilan bajarish natijasida olingan so'rov quyidagi shaklga ega bo'ladi:

Ma'lumotnoma nomenklaturasini tanlang.Link AS Nomenklatura, SotishTurnover.Counterparty AS Kontragent, SotishTurnover.MiqdorTovar AS >Miqdor, SotishTurnover.ALINKTurnover. ) ContractCon kontragenti ASKirish, REPRESENTATIONLINK(SotishTurnover. Counterparty) AS CounterpartyKirish, SprNomenklatura.Taqdimot AS Nomenklatura Katalogdan taqdimot.Nomenklatura AS SprNomenklatura CHAP ULANISH Registr jamg'armalari.Sotish.Oborot(&P , , , Counterparty =AS &P3LTr.Nomenklatura) urnover.nomenklatura

Va shunga ko'ra natija:

Qarama-qarshi tomon Shartnoma Nomenklatura Miqdori so'm
null null _Test 1 null null
"Shoxlar va tuyoqlar" MChJ Shartnoma 1 Terlik 10 1200
null null Botinkalar null null
null null Galoshes null null
null null Shiferlar null null

Test1 - bu Nomenklatura katalogidagi guruh bo'lib, unda hamma narsa joylashgan

Nashrga nashrda foydalanilgan hisobotning XML sxemasi ilova qilingan. Men Integrated Automation-da sxemani yaratdim, lekin menimcha, hamma narsa UPP va UT 10 da yaxshi ishlaydi

Xulosa qilish

Ushbu misol kirishni boshqarish tizimida o'zingizning tanlov sozlamalaringizni qanday yaratishni va agar siz bayroq yoqilgan sxemani loyihalashtirsangiz, avtomatik yaratilganlarini o'chirishni ko'rsatadi. Avtomatik toʻldirish.

Agar foydalanmasdan sxemalar yaratish uchun etarli tajribaga ega bo'lsangiz Avtomatik toʻldirish- keyin bu maslahat mantiqiy emas.

Ishlatilgan dasturiy ta'minot

  • Skrinshot dasturi SnimOK!
  • XML fayl muharriri

Diqqat! Bu darsning kirish versiyasi bo'lib, uning materiallari to'liq bo'lmasligi mumkin.

Saytga talaba sifatida kiring

Maktab materiallariga kirish uchun talaba sifatida tizimga kiring

Yangi boshlanuvchilar uchun ma'lumotlar tarkibi tizimi 1C 8.3: ma'lumotlar to'plamlarini ulash

  • Mijozlar va ularning sevimli mahsulotlarini aks ettiruvchi hisobot yozing. Har bir mijozning sevimli rangi bor va har bir mahsulot o'z rangiga ega - ushbu ranglarga asoslanib, siz mahsulotning "sevimli" ni aniqlashingiz kerak. Misol uchun, agar Andreyning sevimli rangi qizil bo'lsa, unda uning sevimli taomlaridan biri pomidor bo'ladi (ular qizil).
  • Hisobotda ikkita ma'lumot to'plamini qo'llang. Birinchi to'plam "Mijozlar" katalog jadvalidagi ma'lumotlardir. Ikkinchisi - "Oziq-ovqat" katalog jadvalidagi ma'lumotlar.
  • Amalga oshirish bu ikki to'plam o'rtasidagi bog'liqlik, shunday qilib hisobotda har bir mijoz uchun faqat sevimli mahsulotlar mavjud.

Yangi hisobot yarating

Konfiguratorda "Gastronom" ma'lumotlar bazasini oching va asosiy menyu orqali yangi hisobot yarating:

Hujjat turi - "Tashqi hisobot":

Yangi hisobot shaklida "6-dars" nomini ko'rsating va "Ma'lumotlar tarkibi diagrammasini ochish" tugmasini bosing:

Standart sxema nomini qoldiring:

Birinchi ma'lumotlar to'plamini qo'shish

Ochilgan diagrammada "Ma'lumotlar to'plami" yorlig'iga o'ting va yashil ortiqcha belgisi yordamida "Ma'lumotlar to'plamini qo'shish - so'rov" ni tanlang:

So'rov konstruktoriga qo'ng'iroq qiling:

Biz "Mijozlar" jadvalini va so'rovdan olinishi kerak bo'lgan maydonlarni ko'rsatamiz:

Ikkinchi ma'lumotlar to'plamini qo'shish

Ikkinchi ma'lumotlar to'plamini qo'shing:

Uni tanlang (DataSet2) va so'rov konstruktorini qayta chaqiring:

Biz "Oziq-ovqat" katalogining jadvalini va so'rovdan olinishi kerak bo'lgan maydonlarni ko'rsatamiz:

Natijada so'rov matni quyidagicha edi:

E'tibor bering, hozirda hisobotda ikkita ma'lumotlar to'plami mavjud: Data Set1 va Data Set2. Ularning har biri o'z so'rov matni va ma'lumotlariga ega.

Ismlarni yanada tavsiflovchi qilish

Aniqlik uchun DataSet1 nomini Mijozlarga va DataSet2 nomini Oziq-ovqatga o'zgartiraylik.

Buni to'plamlarning har birini ikki marta bosish orqali bajaring:

Biz hisobotimizda har bir to'plamdagi ma'lumotlardan foydalanishimiz mumkin. Biz ushbu ma'lumotlarga maydonlar orqali kiramiz.

Hozirda "Mijozlar" to'plamida quyidagi maydonlar mavjud: "Ism" va "Sevimli rang", "Oziq-ovqat" to'plamida: "Ism" va "Rang".

Biz ismlar bir-biriga mos kelishini ko'ramiz va biz osongina chalkashib ketishimiz mumkin. Shunday qilib, keling, yanada tavsiflovchi bo'lishi uchun maydon nomlarini o'zgartiraylik.

"Mijozlar" to'plamini tanlang va maydon nomlarini quyidagicha o'zgartiring:

Keyin "Oziq-ovqat" to'plamini tanlang va maydon nomlarini quyidagicha o'zgartiring:

Sozlamalar konstruktorini chaqirish

Nihoyat, "Sozlamalar" yorlig'iga o'ting va sozlamalar dizaynerini ochish uchun sehrli tayoqchani bosing:

Hisobot turi - "Ro'yxat...":

Ikkala to'plamdan hisobot uchun maydonlarni tanlang:

Nima uchun maydon nomlarini o'zgartirish juda muhimligini ko'rasizmi? Ma'lumotlar tarkibini sozlash bosqichida biz ushbu maydonlar qaysi to'plamlardan ekanligini ko'rmayapmiz. Biz faqat ularning ismlarini ko'ramiz.

Hisobotni tekshirish

Biz hisobotni saqlaymiz va uni foydalanuvchi rejimida yaratamiz:

Ha. Yaxshi, lekin aslida emas. Ikki to'plamning o'zaro bog'lanishi deb ataladigan hodisa yuz berdi (siz buni oldingi modullarda o'rgangan so'rovlardagi birlashmalardan juda yaxshi bilishingiz kerak). Mijozlar jadvalidagi har bir yozuvda Oziq-ovqat jadvalidagi tegishli yozuv mavjud.

Ammo bu yozuvlarning barchasidan faqat "Mijozning sevimli rangi" maydoni "FoodColor" maydoniga teng bo'lganlarni qoldirishimiz kerak:

Biz ikkita ma'lumot to'plamini ulaymiz

Buni amalga oshirish uchun biz Mijozning sevimli rangi va oziq-ovqat rangi maydonlaridan foydalangan holda ikkita ma'lumot to'plamini (mijozlar va oziq-ovqat) ulaymiz.

"Ma'lumotlar to'plami havolalari" yorlig'iga o'ting va yangi havola qo'shish uchun ortiqcha tugmasini bosing:

Biz parametrlarni quyidagi rasmdagi kabi sozlaymiz:

Men tushuntirish beraman.

Aloqa manbai va qabul qiluvchisi. Xo'sh, bu erda hamma narsa aniq. Biz ma'lumotlarning birinchi to'plamini (Mijozlar) va ikkinchi to'plamini (Oziq-ovqat) ko'rsatamiz. Aloqa tamoyiliga muvofiq amalga oshirilishiga alohida e'tibor qaratmoqchiman tashqi chap birlashma(biz uni oldingi modullarda so'rovlar mavzusida yoritgan edik). Bunga asoslanib, siz qaysi to'plam manba va qaysi qabul qiluvchi bo'lishini tanlashingiz kerak.

Ifoda manbai. Bu erda biz manba ma'lumotlar to'plamidan ifoda yoki oddiygina maydonni ko'rsatamiz (biz bu erda o'rnatilgan Clients-dan ClientFavoriteColor maydonini ko'rsatdik).

Qabul qiluvchining ifodasi. Biz bu yerda qabul qiluvchi maʼlumotlar toʻplamidagi ifoda yoki oddiygina maydonni koʻrsatamiz (biz bu yerda Oziq-ovqat toʻplamidan ColorFood maydonini koʻrsatdik).

Shunday qilib, bu ulanish oldingi ro'yxatdan faqat Mijozning FavoriteColor maydoni FoodColor maydoniga teng bo'lgan qatorlarni qoldiradi.

Keling, hisobotni saqlaymiz va uni foydalanuvchi rejimida ishga tushiramiz:

Ajoyib!

Men maydon haqida tushuntirish beraman " Aloqa holati", bu haqda Ajam dasturchilar tez-tez nayzalarini urishadi.

Ulanish sharti yordamchi maydondir. U erda siz iboralarni yozishingiz mumkin faqat havola manbasida ko'rsatilgan ma'lumotlar to'plamidan maydonlarni o'z ichiga olgan.

Bunday holda, havola manbasining barcha satrlari uchun ushbu ifoda (bog'lanish holati) havola qilishdan oldin tekshiriladi. Va agar bu ibora TRUE bo'lsa, u holda ushbu satr va havolani qabul qiluvchidan satrlar o'rtasida aloqa o'rnatishga harakat qilinadi. Agar ifoda FALSE bo'lsa, unda bunday urinishlar amalga oshirilmaydi.

Saytga talaba sifatida kiring

Yangi boshlanuvchilar uchun ma'lumotlar tarkibi tizimi 1C 8.3: SKD bo'yicha birinchi hisobot

Agar siz ushbu modulga kirishni o'qimagan bo'lsangiz, uni o'qing: .

Darslarni bajarish uchun sizga kerak bo'ladi 1C 8.3 (past emas 8.3.13.1644 ) .

Agar sizda allaqachon 1C 8.3 versiyasi o'rnatilgan bo'lsa, undan foydalaning. Agar yo'q bo'lsa, 1C maxsus ta'lim maqsadlarida ishlab chiqaradigan o'quv versiyasini yuklab oling va o'rnating: .

Ish stolida quyidagi yorliq paydo bo'lishi kerak:

Ushbu turkumdagi barcha darslar uchun men tayyorlagan Gastronom ma'lumotlar bazasidan foydalanamiz. Bu biz so'rovlarni o'rganishda maktab modullarida foydalangan bazaga to'liq mos keladi. Shuning uchun siz uning ma'lumotnomalari va hujjatlari bilan tanishishingizni kutaman.

Agar siz uni o'chirib tashlagan bo'lsangiz, uni quyidagidan foydalanib qayta yuklab oling, uni o'ramidan chiqarib oling va ma'lumotlar bazalari ro'yxatiga qo'shing.

Nihoyat, ish stoli o'rnatildi va endi biz ma'lumotlar tarkibi tizimidan foydalangan holda birinchi hisobotimizni yaratamiz. Ma'lumotlar kompozitsiyasi tizimining umumiy imkoniyatlarini ko'rsatish juda oddiy bo'ladi (qisqartirilgan SKD).

Maqsad qo'yish

Ushbu darsning maqsadi- foydalanuvchi rejimida quyidagi maydonlar bilan mijozlar ro'yxatini ko'rsatadigan hisobot yarating:

  • Ism
  • Qavat
  • Mijozning sevimli rangi.

Hisobot tashqi bo'lishi kerak. Bu shuni anglatadiki, u konfiguratorda yaratiladi va sozlanadi, so'ngra kompyuterda alohida (tashqi) fayl sifatida saqlanadi.

1C-da bunday hisobotni yaratish uchun foydalanuvchi ma'lumotlar bazasini foydalanuvchi rejimida ishga tushirishi, ushbu faylni ochishi va "Yaratish" tugmasini bosing.

Bor!

Hisobot yaratish

Biz Gastronom ma'lumotlar bazasi uchun konfiguratorni ishga tushiramiz:

Asosiy menyudan "Fayl" -> "Yangi ..." ni tanlang:

"Tashqi hisobot" ni tanlang:

Hisobot ichida ma'lumotlar joylashuvi diagrammasini yaratish

Tashqi hisobot yaratish oynasi ochiladi. Nom uchun quyidagilarni kiriting: " 1-dars", va keyin " tugmasini bosing Ochiq ma'lumotlar tarkibi diagrammasi":

Sxema yaratish dizayneri boshlandi. Biz standart nomga rozimiz " MainData Layout sxemasi"va tugmasini bosing" Tayyor":

Asosiy ish oynasi ochildi, ko'plab yorliqlar va maydonlar mavjud bo'lib, unda biz ma'lumotlarni joylashtirish sxemasini sozlaymiz.

Qo'rqishning hojati yo'q - bu erda haqiqatan ham juda ko'p imkoniyatlar mavjud, ammo ularning barchasi bizga kerak emas. Ayniqsa, birinchi darsda.

Endi biz xatcho'pdamiz " Ma'lumotlar to'plami— Biz u yerda qolamiz.

Biz konstruktor orqali so'rov yozamiz

Ma'lumotlar tarkibi tizimi (qisqartirilgan DCS) bizdan talab qiladi ma'lumotlar, u foydalanuvchiga ko'rsatadi.

Eng oson yo'li - so'rov yozing bazaga. Maktabda biz so'rovlarni yozishni va tushunishni o'rgandik - shuning uchun sizdan tegishli ko'nikmalarga ega bo'lishingizni kutaman.

ni bosing yashil ortiqcha belgisini qo'ying va ochiladigan ro'yxatda elementni tanlang " Ma'lumotlar to'plamini qo'shish - so'rov":

Bizning vazifamiz ushbu sohada so'rov matnini yozishdir. Buni qanday qilishni hali unutdingizmi?

Men sizga bir maslahat beraman:

Ushbu so'rovda biz uchta maydonni tanladik (" Ism", "Qavat"Va" Sevimli rang") jadvaldan" Directory.Clients".

Lekin bu matnni "So'rov" maydoniga qo'lda yozishga shoshilmang.

Endi biz xuddi shu so'rovni vizual ravishda yaratamiz, faqat sichqoncha yordamida. Bu usul "deb ataladi. So'rov konstruktori".

Ushbu konstruktorga qo'ng'iroq qilish uchun "tugmasini bosing. So'rov konstruktori..."So'rov" maydonining yuqori o'ng qismida:

Ochilgan oynada jadvalni torting " Mijozlar"Birinchi ustundan ikkinchisigacha ma'lumotlarni so'rashimiz ushbu jadvaldan ekanligini ko'rsatish uchun:

Bu shunday chiqdi:

Keyin stolni ochamiz " Mijozlar"ikkinchi ustunda belgi bo'yicha" Bundan tashqari"uning barcha maydonlarini ko'rish va maydonni sudrab borish" Ism" ikkinchi ustundan uchinchi ustungacha ushbu jadvaldan "Ism" maydonini so'rashimiz kerakligini ko'rsatish uchun:

Bu shunday chiqdi:

Keling, dalalar bilan ham shunday qilaylik" Qavat"Va" Sevimli rang". Natija quyidagicha bo'ladi:

So'rovlar yaratuvchisidan chiqish uchun "OK" tugmasini bosing va so'rov matni "So'rov" maydoniga avtomatik ravishda qo'shilganligini ko'ring.

Bundan tashqari, so'rov matniga asoslanib, 1C o'zi ma'lumotlar tarkibi sxemasi tomonidan ishlatiladigan maydonlarning nomlarini (so'rov ustidagi maydon) chiqarib tashladi:

Endi biz so'rovni tuzdik, ACS hisobot uchun ma'lumotlarni qanday olishni biladi.

Ma'lumotlar taqdimotini o'rnatish

Bu qandaydir tarzda qoladi ushbu ma'lumotlarni vizualizatsiya qiling foydalanuvchi uchun bosma shaklda. Va bu erda ACS mo''jizalar yaratishi mumkin!

Bunday mo''jiza yaratish uchun keling, yorliqga o'tamiz " Sozlamalar" va sozlamalar dizayneri tugmasini bosing ( sehrli tayoqcha):

Ochilgan oynada hisobot turini belgilang " Ro'yxat" va "bosing" Keyinchalik":

Keyingi oynada ro'yxatda ko'rsatilishi kerak bo'lgan maydonlarni tanlang (sudrab) (bizda mavjud bo'lganlarning barchasini torting: " Sevimli rang", "Ism"Va" Qavat"):

Keling, ushbu natijani olamiz va tugmani bosing " KELISHDIKMI":

Sozlamalar dizayneri yopildi va element " Batafsil yozuvlar":

Hisobot tayyor, keling, tekshiramiz. Buning uchun birinchi navbatda hisobotni tashqi fayl sifatida saqlang.

Hisobotni fayl sifatida saqlang

Asosiy menyu bandini oching " Fayl"->"Saqlash":

Men uni ish stolimga nomi ostida saqlayman " 1-dars":

Hisobotni foydalanuvchi rejimida tekshirish

Nihoyat, konfiguratorni yopamiz va foydalanuvchi rejimida ma'lumotlar bazasiga o'tamiz:

Foydalanuvchi nomi "Administrator", parol yo'q:

Menyu orqali elementni tanlang " Fayl"->"Ochiq...":

Va hisobot faylini belgilang (men uni "Lesson1.erf" nomi bilan ish stoliga saqladim:

Hisobot shakli ochildi, tugmani bosing " Shakl":

Tayyor! Bu erda mijozlar ro'yxati, ularning sevimli rangi va jinsi bilan chop etishimiz mumkin:

Chop etish shakli osongina chop etilishi mumkin. Buning uchun faqat elementni tanlang " Fayl"->"Muhr...":

Xuddi shunday, dasturlashsiz, biz foydalanuvchilar o'z ma'lumotlar bazalarida ochishlari, yaratishlari va chop etishlari mumkin bo'lgan to'liq huquqli hisobotni yaratishga muvaffaq bo'ldik.

talabalar - men pochta orqali javob beraman, lekin birinchi qarash.

Saytga talaba sifatida kiring

Maktab materiallariga kirish uchun talaba sifatida tizimga kiring

Oxirgi maqolamda men allaqachon 1C paradoksal platforma ekanligini yozgan edim. Ma'lumotlar tarkibi tizimi ana shu paradokslardan biridir. SKD murakkab hisobotlarni loyihalash uchun mo'ljallangan va "qo'lda" hisobot dasturlashni ko'p funktsiyali asboblar to'plamidagi dizayn bilan almashtirishni o'z ichiga oladi. Kirishni boshqarish tizimlaridan foydalanish qobiliyati sakkizinchi versiyada paydo bo'ldi, ammo 1C o'zining standart mahsulotlarida foydalanishi uchun 8.2 versiyasi paydo bo'lishi uchun uzoq vaqt kerak bo'ldi. Bir tomondan, ACS ko'p funktsiyali asboblar to'plami bo'lib, uning yordamida siz bitta kod satrisiz juda murakkab hisobotlarni yaratishingiz mumkin. Biroq, kirishni boshqarish tizimi kirish uchun juda yuqori to'siqga ega; uni "parvozda" o'rganish va to'liq foydalanishni boshlash juda qiyin, chunki interfeys to'liq intuitiv emas va foydalanish uchun eng to'liq qo'llanmalar faqatgina mavjud. pullik adabiyotlar shakli.

SKDni o'rganish jarayonida muammo paydo bo'ldi. So'rovlar tilidan foydalangan holda uchinchi tomon qiymatlari jadvalidan ma'lumotlarni olish va keyin ushbu ma'lumotlarni ma'lumotlar bazasi jadvallaridagi o'xshash ma'lumotlar bilan ishlash (qisqartirish operatsiyalari, guruhlash va boshqalar) kerak. Klassik formatda biz so'rovga parametr sifatida uzatilgan jadvaldan ma'lumot oladigan so'rovni yaratamiz.

So'rov = Yangi so'rov(
"TANLANG
| Jadval. Nomenklatura,
| Jadval. Ombor
|FROM
| &TK AS jadvali");
Request.SetParameter("TZ", TZ);

Ammo SKD bilan hamma narsa oddiy emas. Afsuski, ma'lumotlar tarkibi tizimida yuqorida tavsiflangan operatsiyani bajarish mumkin emas. Biroq, tizim tashqi qiymatlar jadvallarini yuklash imkoniyatini amalga oshirdi.

Bu erda qisqacha to'xtalib o'tish va ma'lumotlar to'plami haqida gapirishga arziydi. Ma'lumotlar to'plami - bu ma'lumotlarni boshqarish tizimi ma'lumotlarni qabul qiladigan ma'lumotlar manbalari bo'lib, keyinchalik u hisobot shaklida tuzadi. Ma'lumotlar to'plamlari asosan "So'rov" turidan foydalangan holda turlarga bo'linadi, uning tanasida dasturchi ma'lumotlar bazasiga so'rov yozadi. "Ob'ekt" turi tashqi ob'ektlardan ma'lumotlarni yuklash uchun ishlatiladi. Ikkala holatda ham chiqish so'rovni bajarish yoki tashqi ob'ektni yuklash natijasida olingan ma'lum maydonlar to'plamidir. Keyinchalik, bu maydonlar hisobot tuzilishi uchun batafsil sozlamalar bilan birga "Sozlamalar" yorlig'ida boshqarilishi mumkin. Turli to'plamlarni o'zaro bog'lash uchun ACS bir xil nomdagi yorliqda ma'lumotlar to'plamlari orasidagi ulanishlarni ko'rsatish imkoniyatini beradi. Ushbu ulanishlar klassik so'rovda chap qo'shilishning bevosita analogidir. Shu bilan birga, shuni hisobga olish kerakki, har qanday ma'lumotlar to'plamidagi so'rovlar boshqa ma'lumotlar to'plamlari mavjudligi to'g'risida "bilmaydi"; oxir-oqibat, ma'lumotlar to'plamlari o'rtasidagi munosabatlar "" da ko'rsatilgan tuzilishga muvofiq ma'lumotlarning joylashishiga ta'sir qiladi. Sozlamalar" yorlig'i.

Keling, muammoni misol bilan batafsil bayon qilaylik. Standart hisobot mavjud: ZiK 8 konfiguratsiyasini tashkil qilish uchun ish haqi to'g'risidagi hisobot. Hisobotdagi hisob-kitoblar turlarini ma'lum guruhlarga guruhlash kerak. Hisoblash ko'rinishi-guruh yozishmalari tashqi qiymatlar jadvalida saqlanadi. Uni asosiy ma'lumotlarni joylashtirish sxemasiga yuklash uchun biz "Guruhlar" nomi bilan "ma'lumotlar to'plami ob'ektini" yaratamiz (2-rasm). Hisoblash turi bo'yicha "so'rovlar ma'lumotlari to'plami" - "Hisoblashlar" bilan bog'lanamiz (3-rasm). "So'rov ma'lumotlar to'plami" - "Hisoblashlar" da guruhlar uchun ma'lumotlar mavjud, biz barcha yozuvlarni o'chirib tashlaymiz. Keyinchalik, "Sozlamalar" yorlig'ida biz "Guruh" maydonidan foydalanishimiz mumkin, uning qiymati tashqi ma'lumotlar manbasidan yuklanadi (4-rasm). Hisobot yaratish funktsiyasida biz tashqi ma'lumotlarni yuklashni to'ldiramiz.

Funktsiya GenerateReport(Natija = Aniqlanmagan, shifrni ochish ma'lumotlari = Aniqlanmagan, OutputInReportForm = True) Eksport

//"Guruhlar" qiymatlarining kerakli jadvalini olish yoki shakllantirish va uni bir xil nomdagi o'zgaruvchiga yozish

ExternalData = New Structure();//tashqi ma'lumotlar strukturasini yarating va to'ldiring
ExternalData.Insert(Guruhlar);

UserPanelValue = TypicalReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
TypicalReports.GetAppliedSetting(ThisObject);
TypicalReports.GenerateTypicalReport(ThisObject, Result, Decryption Data, OutputToReportForm, ExternalData);
SettingsLinker.LoadSettings(DefaultSetting);
Natijani qaytarish;

EndFunction

Agar biz noldan hisobot tayyorlagan bo'lsak, hisobot yaratishni boshlash kodi quyidagicha ko'rinadi:

ExternalDataSets = yangi tuzilma;
ExternalDataSets.Insert("Guruhlar", Guruhlar); //Guruhlar - kerakli qiymatlar jadvali
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //ma'lumotlar oqimi diagrammasi bilan bizning joylashuvimiz
Sozlamalar = DataCompositionScheme.DefaultSettings;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Sozlamalar);
DataCompositionProcessor = newDataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = Yangi jadval hujjati;
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

O'qing 9660 bir marta

Xayrli kun, mening o'quvchilarim! Bugun biz tartib tizimining asoslarini ko'rib chiqishni davom ettiramiz. Ushbu maqolalar turkumida siz kirishni boshqarish tizimi nima ekanligini bilib oldingiz va kirishni boshqarish tizimining asosiy komponentlari bilan tanishdingiz. Shuningdek, biz hisobot yaratish uchun kiritilgan ma'lumotlarni ko'rib chiqdik va kirishni boshqarish tizimida hisobotni ishga tushirishning asosiy bosqichlarini bilib oldik. Bundan tashqari, ko'pchilik qisqa testdan o'tib, o'z bilimlarini sinab ko'rish imkoniga ega bo'ldi. Endi siz maqolaning mazmunini ko'rib chiqishingiz va unda nima yoritilishini ko'rishingiz mumkin.

Ma'lumotlar to'plami - so'rov.

  1. Oddiy so'rovdan farqli o'laroq, ma'lumotlar tarkibi so'rovida RESULTS bandi mavjud emas. Buning o'rniga, jamilar "Resurslar" yorlig'ida yaratiladi. Ushbu yorliqda siz yakuniy ifodalarni olishni istagan maydonlarni tanlaysiz. Va "Sozlamalar" yorlig'ida natijalar qaysi bo'limda olinishi ko'rsatilgan, ya'ni bu erda tegishli guruhlar yaratiladi va ulardan resurslar hisoblab chiqiladi. Bu haqda ko'proq maqolada o'qishingiz mumkin.
  2. Keyingi nuqta tanlov sozlamalariga tegishli. Ikki ijro etish imkoniyati mavjud.
    1. Hisobot opsiyasi sozlamalari orqali. Buni "Sozlamalar" - "Tanlash" yorlig'ida qilish mumkin. Agar biz ushbu parametrdan foydalansak, u eng moslashuvchan hisoblanadi, chunki biz hatto foydalanuvchi tanlashi mumkin bo'lgan har xil taqqoslash turlarini belgilashimiz mumkin. Bundan tashqari, ushbu parametrdan foydalanganda filtrlash shartlari so'rovning o'zida o'rnatiladi. Agar hisobot vaqtinchalik jadvallar yordamida ommaviy so'rovga asoslangan bo'lsa, unda tanlov tanlov maydoni sodir bo'lgan ommaviy so'rovdagi barcha jadvallarga ta'sir qiladi.
    2. So'rov darajasida. Agar so'rovdan foydalansak, tenglik operatsiyasidan boshqa hech narsa ishlata olmaymiz.
      Istisno, ma'lum bir qiymat bo'yicha ma'lumotlarni "qattiq" filtrlashni amalga oshirishimiz kerak bo'lgan holdir. Aytaylik, sanab qiymati bo'yicha. "Parametrlar" yorlig'ida biz shartni o'rnatishimiz mumkin. Agar biz “Mavjudlikni cheklash” belgisini yoqsak, foydalanuvchi bu shartni bekor qila olmaydi.
  3. Hisobot parametrlari sozlamalari darajasida saralashni qo'llash ham to'g'riroq.
    1. Agar so'rovda saralash maydonini ko'rsatsangiz, foydalanuvchi o'zining hisobot versiyasini o'rnatishda boshqa maydonni belgilaydi, so'rov darajasida o'rnatilgan sozlamalarimiz eng past ustuvorlikka ega bo'ladi. Hisobot variantini sozlashda foydalanuvchi tomonidan o'rnatilgan saralash birinchi navbatda amalga oshiriladi. Shuning uchun, agar siz "sukut bo'yicha" saralashni o'rnatishingiz kerak bo'lsa, biz Konfiguratorda hisobot parametrining sozlamalaridan foydalanamiz.
    2. Agar foydalanuvchi uni o'zgartira olmasligi uchun hisobotda "qattiq" saralashni o'rnatish kerak bo'lsa-chi? Keyin biz so'rovlar darajasida tartiblashni o'rnatamiz va "Ma'lumotlar to'plami" yorlig'ida biz maydon cheklovini o'rnatamiz. Kerakli ma'lumotlar to'plamini tanlang va "Maydon cheklovi" - "Buyurtma" ustunidagi katakchani belgilang.

Virtual jadval parametrlari.

  • Buxgalteriya registrlari, jamg'arish registrlari va axborot registrlarining virtual jadvallarini tuzish ma'lum bir sanaga bog'liq. Bu bitta sana yoki oraliq bo'lishi mumkin, masalan, balanslar va aylanmalar jadvali uchun. SDS shunday yaratilganki, agar hisobot virtual jadvalga asoslangan bo'lsa, foydalanuvchiga hisobotni qaysi vaqt oralig'ida yoki qaysi sanada yaratishni tanlashiga ruxsat berish kerak. SKD avtomatik ravishda tartib diagrammasiga kerakli davr parametrlarini qo'shadi.
  • Agar so'rovda balanslarning virtual jadvali yoki ma'lumot registrlarining virtual jadvali tanlangan bo'lsa, u holda "Davr" deb nomlangan parametr avtomatik ravishda qo'shiladi.
  • Agar so'rovda balanslar va aylanmalarning virtual jadvali yoki aylanmaning virtual jadvali tanlangan bo'lsa, u holda "Davr boshlanishi" va "Davr oxiri" parametrlari avtomatik ravishda qo'shiladi.
  • Agar davr oxirida balansni olishingiz kerak bo'lsa, nima qilish kerak? Ikkita yo'l bor:
    1. "Parametrlar" yorlig'iga o'ting va "Ifodalar" ustunidagi "Davr" parametriga quyidagilarni yozing:
      &EndPeriod. Shuningdek, biz “Mavjudlikni cheklash” belgisini yoqamiz.
    2. Biz "Davr" parametridan butunlay qutulamiz va uni "Davr oxiri" parametri bilan almashtiramiz. Keling, ixtiyoriy virtual jadval parametrini sozlaymiz:
      • "Ma'lumotlar to'plami" yorlig'iga o'ting va "Query Builder ..." tugmasini bosing.
      • Yuqori chap burchakdagi "Ma'lumotlar tarkibi" yorlig'ida "Virtual jadval parametrlari" dialog oynasini ochish uchun tugmani bosing (bu kichkina stol fonida tishli tasvirli kulrang kvadrat tugma).
      • Muloqot oynasining “Davr” maydoniga biz yozamiz: &Davr oxiri.
      • Endi virtual jadval parametrlarida ma'lumotlar to'plami so'rovi matnida ushbu parametr jingalak qavslar bilan o'ralgan holda paydo bo'ladi:
Jamg'arma reestri. Qolgan tovarlar. Qolgan(((&EndPeriod) ), ) AS Qolgan

Jingalak qavslar ma'lumotlar tarkibi so'rovi tili kengaytmasini bildiradi. Bu shuningdek, ushbu parametr ixtiyoriy ekanligini ko'rsatadi. Bu shuni anglatadiki, agar u ma'lumotlar tarkibi sxemasida aniqlanmagan bo'lsa, u holda balanslar joriy sana bo'yicha olinadi.

So'rov tili kengaytmasi.

Bu so'rov matnida jingalak qavslar ichiga olingan maxsus ko'rsatmalar. Ushbu ko'rsatmalar hisobot versiyasini o'rnatishda manipulyatsiya qilinishi mumkin bo'lgan maydonlar va parametrlarni ko'rsatadi. Jingalak qavslardagi ma'lumotlar, hatto Avtomatik to'ldirish katakchasi o'chirilgan bo'lsa ham, tartib diagrammasida mavjud bo'ladi.

So'rovlar ma'lumotlar to'plami yaratilganda, sukut bo'yicha ma'lumotlar tarkibi sxemasining mavjud maydonlari yaratilgan so'rov asosida avtomatik ravishda to'ldiriladi ("Ma'lumotlar to'plami" yorlig'ida "Avtomatik to'ldirish" katagiga belgi qo'yilgan).

Mavjud ma'lumotlar tarkibi sxemasi maydonlarini avtomatik to'ldirish qanday ishlaydi?

    1. So'rovlarni tanlash ro'yxatidagi maydonlar va ularning pastki maydonlari mavjud bo'ladi.
    2. Agar biz jamlash registridan tanlasak, so'rovga kiritilmagan registr maydonlari ham ma'lumotlar tarkibi maydonlarida mavjud bo'ladi. Lekin bu maydonlar faqat tanlash uchun mavjud (shartli ifodalarda)
      va ularni chiqish maydonlari sifatida ishlatish mumkin emas.
    3. "Davr", "Davr boshi" va "Davr oxiri" virtual jadvallarining parametrlari quyidagicha bo'ladi.
      tanlash uchun mavjud.
    4. Agar so'rov matnida "qattiq" shart ko'rsatilgan bo'lsa, bu parametr "Parametrlar" yorlig'iga ham qo'shiladi.

Avtomatik to'ldirish katakchasi o'chirilsa, ma'lumotlar tarkibi sxemasining maydonlari tozalanadi, lekin so'rov matnida jingalak qavslar ichiga olingan parametrlar qoladi.

Ma'lumotlar tarkibi sxemasining maydonlarini o'zingiz qanday to'ldirishingiz mumkin?

"Ma'lumotlar to'plami" yorlig'ida "Avtomatik to'ldirish" katagiga belgi qo'ying.

"So'rovlar yaratuvchisi ..." tugmasini bosing. Keling, quyidagi so'rovni yarataylik:

Qolganlarni tanlang. Nomenklatura AS Nomenklaturasi, qoldiqlari. Miqdor AS Miqdor registri jamg'arish. Qolgan tovarlar. Qolgan(((&EndPeriod) ), ) AS Qolgan

"Jadvallar" yorlig'ida biz barcha jadvallar uchun virtual jadval parametrlarini o'rnatishimiz mumkin.

Endi "Ma'lumotlar tartibi" yorlig'ida "Maydonlar" yorlig'ini tanlang. Bu erda biz tanlov maydonlarini o'rnatamiz
joylashish sxemasida taqdim etiladi.

“Va..” maydoni bolalar yozuvlari tanlovga kiritilishini bildiradi
murakkab turdagi maydonlar, masalan, kataloglar va hujjatlar va boshqalar. Agar maydon raqam kabi bo'lsa, "Va.." maydoniga bayroq qo'yish mumkin bo'lmaydi.

"Nomenklatura" va "Miqdor" ikkita maydonni tanlaymiz. "Nomenklatura" maydoniga "I.." bayrog'ini o'rnating,
shunday qilib, bolalar yozuvlari tanlanadi. Siz quyidagi so'rovni olasiz:

Qolganlarni tanlang. Nomenklatura AS Nomenklaturasi, qoldiqlari. Miqdor AS Miqdor (Tanlash Nomenklaturasi. * , Miqdor) Jamg'arma registri. Qolgan tovarlar. Qolgan(((&EndPeriod) ), ) AS Qolgan

Yangi so'rovda, jingalak qavslarda yana bir SELECT bo'limi paydo bo'ldi - bu kengaytma matni bo'lib, u tartibda mavjud bo'lgan maydonlarni ko'rsatadi. "Nomenklatura.*" maydoni "Nomenklatura" maydoni va uning "Kod", "Ism" kabi asosiy tafsilotlari mavjud bo'lishini bildiradi. Shunday qilib, biz tartib maydonlarini o'zimiz to'ldirdik.

Ammo endi biz maydonlarni tartib sharoitida ishlata olmaymiz. Agar siz "Sozlamalar" yorlig'iga o'tsangiz va "Tanlash" yorlig'ini tanlasangiz, oldingi xatboshida biz tanlagan maydonlarning hech biri uchun shartlarni o'rnatolmaysiz. Nega?

Virtual jadval parametrlariga qo'yish shartlari so'rovlar dizaynerining "Ma'lumotlar tarkibi" yorlig'ida ham ko'rsatilishi kerak. Yuqori chap burchakda "Virtual jadval parametrlari" muloqot oynasini ochish uchun tugmani bosing
(bu kichkina stol fonida tishli quti tasvirlangan kulrang kvadrat tugma). Muloqot oynasining "Shart" maydoniga biz yozamiz: Nomenklatura. Endi virtual jadval parametrlarida ma'lumotlar to'plami so'rovi matnida ushbu "Nomenklatura" parametri jingalak qavslar bilan o'ralgan holda paydo bo'ladi:

Jamg'arma reestri. Qolgan tovarlar. Balanslar(((&Davr oxiri) ), ((Nomenklatura) )) AS Balanslar

Odatiy so'rovlar tilida parametrni belgilash quyidagicha ko'rinadi: Nomenklatura = &Nomenklatura. Lekin so'rovlar tili kengaytmasida u boshqacha yoziladi. Faqat maydon nomi ko'rsatilgan. Bu erda biz tenglik, tengsizlik yoki ierarxiya operatsiyasini aniqlamaymiz, chunki foydalanuvchi o'zi o'z sozlamalarida kerakli operatsiyani tanlaydi.

Query Builder-ning "Ma'lumotlar tarkibi" yorlig'ida biz boshqa "Shartlar" yorlig'ini ko'ramiz. So'rovlar tili kengaytmasida WHERE bandi shartlarini ko'rsatish kerak. "Miqdor" maydonini tanlang. Ushbu maydon endi "Sozlamalar" - "Tanlash" yorlig'idagi shartlarda mavjud. Va so'rov matnida jingalak qavslar ichiga olingan yangi qatorlar paydo bo'ldi.

(QAYERDA qoladi. Miqdori)

Agar miqdor maydoni bo'yicha tanlash ko'rsatilgan bo'lsa, bu jumla yakuniy so'rovga kiritiladi. Shart turi va taqqoslash qiymati hisobot variantini o'rnatish orqali aniqlanadi.

Demak, bugungi kun uchun yetarli material deb o‘ylayman. Agar biron bir tushunarsiz nuqta bo'lsa, so'rashdan tortinmang, chunki shuning uchun izoh berish mumkin. Ushbu material tez orada mahkamlash uchun tayyorlanadi, shuning uchun o'tkazib yubormaslik uchun veb-saytimizda yangilanishlarga obuna bo'ling!

Va ushbu darslar seriyasida biz SKD ifoda tilining funktsiyalarini ko'rib chiqamiz, tartib tizimining xususiyatlari haqida gapiramiz, shuningdek, tartib maydonlarining asosiy sozlamalarini tahlil qilamiz. Ushbu qiyin materialni tushunishda omad tilaymiz!

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 darslarida nima borligi haqidagi barcha tafsilotlar muallifning sahifasida yumshoq ishlab chiqaruvchi http://www..pngyumshoq ishlab chiqaruvchi 2015-12-07 14:51:12 2018-06-12 13:14:13 Ma'lumotlar tarkibi tizimi (DCS). 2-qism.