O'rnatilgan til so'rovi ob'ekti bilan ishlash tartibi. "Til" konfiguratsiya ob'ektining maqsadi nima?

1C: Enterprise tizimida amaliy yechimni ishlab chiqish ikkita asosiy harakatdan iborat: konfiguratsiya ob'ektlarini vizual loyihalash va o'rnatilgan til va so'rovlar tilidan foydalangan holda tizimning o'ziga xos xatti-harakatlarini tavsiflash.

1C: Enterprise tizimining o'rnatilgan tili boshqa dasturlash tillari bilan juda ko'p o'xshashliklarga ega, ammo ularning hech birining bevosita analogi emas. Uning eng muhim xususiyatlari:

· yumshoq terish (o'zgaruvchining turi uning tarkibidagi qiymat turiga qarab belgilanadi va ish paytida o'zgarishi mumkin);

· dastur turlarining dasturiy ta'rifining yo'qligi (ular konfiguratsiya ob'ektlarini qo'shganda yaratiladi);

· hodisaga yo'naltirilgan o'rnatilgan til;

· barcha operatorlarda bir vaqtning o'zida ishlatilishi mumkin bo'lgan rus va ingliz imlolari mavjud.

Konfiguratsiya modullari

Ilova yechimining modullari dastur matnini o'rnatilgan tilda joylashtirish uchun mo'ljallangan. Ushbu modullar konfiguratsiyaning turli joylarida joylashgan va turli maqsadlarga ega. Ko'pgina modullar ma'lum konfiguratsiya ob'ektlariga yoki dastur yechimining o'ziga "bog'langan".

Dasturiy ta'minot modullarining quyidagi turlari ajratiladi:

· Umumiy modullar. Konfiguratsiya modullarning ixtiyoriy soniga ega bo'lishi mumkin, jumladan, hech kim. Konfiguratsiya jarayonida umumiy modullarning o'zi chaqirilmaydi. Ular faqat amaliy yechimning boshqa modullaridan chaqirilishi mumkin bo'lgan protseduralar va funktsiyalar matnlarini o'z ichiga olish uchun xizmat qiladi. Shuning uchun ularda o'zgaruvchan tavsif bo'limi va asosiy dastur bo'limi yo'q. Bu. Umumiy modullar faqat protseduralar va funktsiyalarni o'z ichiga oladi.

· Ilova moduli. Konfiguratsiyada har doim bitta dastur moduli mavjud. U tizim 1C: Korxona rejimida ishga tushirilganda amalga oshiriladi va oxirgi foydalanuvchining ish sessiyasi bilan bog'liq harakatlarni ishlab chiqish uchun mo'ljallangan. Ilova modulida qayta ishlanishi mumkin bo'lgan asosiy hodisalar ilovaning boshlanish va tugash hodisalaridir. Qo'ng'iroqning ketma-ketligi ko'rsatilgan guruch. 1. Tadbir Tizimni ishga tushirishdan oldin Asosiy oyna ochilishidan oldin tizim ishga tushganda paydo bo'ladi. Ushbu hodisani hal qilish orqali ishlab chiquvchi, masalan, biron bir shart bajarilmasa, ishga tushirishni rad etish imkoniyatiga ega. Tadbir Tizimni ishga tushirishda asosiy oynani ochgandan keyin sodir bo'ladi. Ushbu hodisani boshqaruvchida siz, masalan, tug'ilgan kunlar haqidagi ma'lumotlarni va boshqalarni ko'rsatishingiz mumkin.

· Tashqi ulanish moduli. Konfiguratsiyada har doim bitta tashqi ulanish moduli mavjud. U ilovaga MAQOMOTI serveri sifatida kirishda (tashqi ulanish rejimida) bajariladi. Tashqi ulanish rejimida bu to'liq huquqli 1C: Enterprise ilovasi emas, balki "engil versiya" bo'lib, unda u yoki bu tarzda foydalanuvchi interfeysini tashkil qilish bilan bog'liq barcha funktsiyalar mavjud emas.

· Ilova obyekti modullari. Ma'lumotlari 1C: Korxona rejimida o'zgartirilishi mumkin bo'lgan har bir dastur konfiguratsiya ob'ekti (masalan, dasturiy hujjat yoki katalog) o'z moduliga ega. O'zgaruvchilar va asosiy dastur tavsifiga qo'shimcha ravishda, ob'ekt moduli protseduralar tavsifini o'z ichiga olishi mumkin - berilgan konfiguratsiya ob'ekti bilan bog'langan hodisa ishlov beruvchilari. Barcha ob'ektlar uchun ko'tarilgan ikkita hodisa mavjud - Yozib olishdan oldin Va Yozilayotganda.

· Shakl modullari. Har bir shaklning o'z moduli mavjud bo'lib, u shaklning harakatini va undan bajariladigan amallarni belgilaydi, masalan, boshqa shakllarni ochish. Voqealar barcha shakllar uchun ko'tariladi Ochilishdan oldin, Ochilish paytida, Yopishdan oldin Va Yopilish vaqtida.

Kontekst

1C: Enterprise tizimida kontekst modulning muhitini bildiradi, ya'ni. u uchun mavjud bo'lgan o'zgaruvchilar, ob'ektlar, xususiyatlar, usullar va hodisalar. Biz kontekstlarning quyidagi turlarini va shunga mos ravishda eksport qilinadigan o'zgaruvchilar, protseduralar va funktsiyalarning ko'rinishi qoidalarini ajratib ko'rsatishimiz mumkin:

· Global kontekst, boshqa barcha kontekstlarda mavjud, quyidagi qismlardan iborat:

§ global kontekstning xususiyatlari, usullari va hodisalari (masalan, mulk Ishlash sanasi);

§ tizim ro'yxatlari va tizim qiymatlari to'plami (masalan, CodeDialog-ni qaytaring Va Belgilar).

· Umumiy modul konteksti global kontekst va umumiy modulning mahalliy konteksti (ya'ni, umumiy modul doirasida belgilangan protseduralar va funktsiyalar) tomonidan shakllantiriladi. Umumiy modul kontekstida eksport qilingan protseduralar va boshqa umumiy modullarning funktsiyalari mavjud. Eksport qilingan o'zgaruvchilar, protseduralar va dastur modulining funktsiyalari mavjud emas.

· Ilova moduli yoki tashqi ulanish moduli kontekstida Eksport qilingan protseduralar va umumiy modullarning funktsiyalari mavjud.

· Ilova obyekti moduli kontekstida ob'ektning tafsilotlari va jadval qismlariga, shuningdek, uning usullari va hodisalariga kirish imkoniyati mavjud. Eksport qilingan o'zgaruvchilar, dastur modulining protseduralari va funktsiyalari (tashqi ulanish moduli) va umumiy modullar bu erda mavjud.

· Shakl moduli kontekstida forma tafsilotlari, shuningdek, shakl xususiyatlari, usullari va hodisalari mavjud. Agar formada asosiy atribut tayinlangan bo'lsa, u holda asosiy atribut sifatida foydalaniladigan ilova ob'ektining xossalari va usullari forma modulida mavjud bo'ladi.

Kontekstlar o'rtasidagi munosabatlar sxematik tarzda ko'rsatilgan guruch. 2. Yoniq guruch. 3 jurnal shakli moduli va hujjat modulining mumkin bo'lgan o'zaro ta'sirini tasvirlaydi.


Protseduralar va funktsiyalar

Protseduralar va funksiyalar boshqa joydan, masalan, boshqa protseduradan nom bilan chaqirilishi mumkin bo'lgan dastur bloklari. Funktsiyalar protseduralardan faqat qaytish qiymatiga ega bo'lishi bilan farq qiladi. 8-versiyada protseduralar va funktsiyalarning tartibi muhim emas. Bu shuni anglatadiki, protsedura chaqirilgan joyda quyida joylashgan bo'lishi mumkin.

Protseduralar va funksiyalar qanday ob'ektlar bilan qanday harakatlar qilish kerakligini belgilaydigan parametrlarga ega bo'lishi mumkin. Protsedura yoki funksiya parametrlari sukut bo'yicha mos yozuvlar orqali uzatiladi. Bu shuni anglatadiki, protsedura yoki funksiya ichidagi rasmiy parametrni o'zgartirish haqiqiy parametrni chaqirilgan nuqtada o'zgartiradi. Parametrning qiymat bo'yicha uzatilishini kafolatlash uchun parametr nomidan oldin kalit so'zni kiritishingiz kerak Ma'nosi.

1-misol:

Jarayonni hisoblash()

Miqdor=Narx*Miqdor;

Jarayonning oxiri

Hisoblash(); // Jarayonga qo'ng'iroq qiling

2-misol:

Perem Glob;

// Jarayon tavsifi

Tartibni hisoblash (Par1, Par2, ParZ) Eksport

Glob = Glob + Par1 + Par2 + ParZ;

Jarayonning oxiri

Hisoblash(5, 6, 7); // Jarayonga qo'ng'iroq qiling

3-misol:

Perem Glob;

// Funktsiya tavsifi

Funktsiyani hisoblash (Par1, Par2, ParZ) Eksport

Lok = Glob + Par1 + Par2 + ParZ;

Qaytish qulfi;

EndFunction

Res = Calc(5, 6, 7); // Funktsiya chaqiruvi

Ma'lumotlar turlari

Raqam, satr, sana, mantiqiy, aniqlanmagan, null (ma'lumotlar bazasi jadvallarida aniqlanmagan qiymatlar uchun)

Turi. Ma'lumotlar turlarini ko'rsatish va taqqoslash uchun maxsus turdagi "Tip" qiymatlari kerak, masalan:

O'zgaruvchilarni e'lon qilish

O'zgaruvchilar dasturda quyidagi hollarda paydo bo'ladi:

· ular Variable operatori yordamida e'lon qilinganidan keyin.

Perem<Имя_переменной>[Eksport];

A, B o'zgaruvchisi;

· o'zgaruvchining nomini belgilash operatorining chap tomonida birinchi marta joylashtirgandan keyin.

Misol:

· tahrirlangan dialog elementlarining identifikatorlari nomlarini aniqlashda;

· protseduralarning rasmiy parametrlarini belgilashda.

Cast

Turni taqsimlash aniq yoki yashirin bo'lishi mumkin.

Aniq translatsiya uchun quyidagi funksiyalar mavjud: raqam, satr, sana, mantiqiy. Yashirin turdagi quyma ifodalarni baholashda tizim tomonidan avtomatik ravishda amalga oshiriladi.

Misol: MonthNumber raqamli o'zgaruvchining qiymati bilvosita satrga aylantiriladi va boshqa qatorga qo'shiladi:

A = "Oy" + Oy raqami;

Kataloglar

Kataloglar bilan ishlash quyidagi ob'ektlar yordamida amalga oshiriladi:

· Kataloglar menejeri. Barcha konfiguratsiya ma'lumotnomalariga kirishni ta'minlaydi. Ushbu ob'ektning xossalari katalog nomlari bilan mos keladi va DirectoryManager tipidagi ob'ektlarni o'z ichiga oladi.

· DirectoryManager. Elementlar to'plami sifatida katalogdagi operatsiyalarga kirishni ta'minlaydi. Ushbu ob'ektning usullaridan foydalanib, siz qidirishingiz, tanlov olishingiz, yangi elementlar yaratishingiz, katalog shakllari va maketlariga kirishingiz mumkin.

· DirectoryLink. Katalogning elementini (guruhini) bir ma'noda aniqlaydi va unga faqat o'qish rejimida kirish imkonini beradi. Ushbu ob'ektning xossalari va usullari orqali siz element (guruh) tafsilotlarini o'qishingiz va uning jadval qismlariga kirishingiz mumkin. Ushbu turdagi qiymat ushbu katalog elementlariga tegishli atributlarda saqlanadi, masalan, atributda Xodim hujjat Ishga qabul qilish ma'lum bir katalog elementiga havola saqlanadi Xodimlar.

· DirectoryObject. Elementga yozish imkoniyatini beradi. Ushbu ob'ekt ma'lumotlar bazasidagi elementga ta'sir qiluvchi usullarni o'z ichiga oladi, masalan, usullar Yozing Va Oʻchirish.

· DirectorySelection. Katalog elementlari orqali takrorlash imkoniyatini beradi. Namuna olish to'g'ridan-to'g'ri yoki ierarxik bo'lishi mumkin.

· Kataloglar ro'yxati. Jadval maydonidagi elementlar ro'yxatini boshqarish ob'ekti. Roʻyxatdagi ustunlar, tanlash va saralashni boshqarish imkonini beradi.

1C: Enterprise tizimida?

1. Konfiguratsiya va ma'lumotlar bazasi matnlari formatda saqlanadiUNICODE

3. To'g'ri javob yo'q

6.75 Konfiguratsiya va ma'lumotlar bazasi matnlari qanday maqsadda formatda saqlanadiUNICODE?

1. UNICODE formati axborotni taqdim etishning o'zgarmasligini (operatsion tizim dasturiy platformasining mustaqilligini) ta'minlaydi.

2. FormatUNICODE 1C: Enterprise tizimida turli tillarni qo'llab-quvvatlash imkonini beradi

3. To'g'ri javob yo'q

6.76 Xalqarolashtirish mexanizmlari belgilangan. ..

1. texnologiya platformasi 1C: Enterprise

2. qo‘llaniladigan yechimlar

3. 1 va 2 javoblar to‘g‘ri

4. to'g'ri javob yo'q

6.77 Mahalliylashtirish kodi nima?

1. Dunyoning qaysidir mintaqasini identifikatsiya qiluvchi til kodi va mamlakat kodidan iborat qator

2. Dasturiy ta'minot mahsuloti kodi (ro'yxatga olish varaqasida ko'rsatilgan, etkazib berish to'plamiga kiritilgan hujjatlar)

3. Konvertatsiya qilish uchun format string varianti

4. Uning javobi to‘g‘ri

6.78 1C: Enterprise 8 da har qanday matnli ma'lumotlar bir vaqtning o'zida turli tillardagi belgilarni o'z ichiga olishi mumkinmi?

1. Ha, chunki barcha konfiguratsiya va ma'lumotlar bazasi matnlari formatda saqlanadiUNICODE

2. Axborot bazasini yaratishda ko'rsatilgan sozlamalarga bog'liq

3. Faqat bu konfiguratsiya tomonidan taqdim etilgan bo'lsa

6.79 "Language" konfiguratsiya ob'ektining maqsadi nima?

1. Turli tillarda dastur interfeysini yaratish uchun

2. Turli tillarda matnli hujjatlar yaratish

3. Bunday ob'ekt 1C: Enterprise 8 da mavjud emas

6.80 Konfiguratsiyani ko'rish (tahrirlash) uchun tilni qanday o'zgartirish mumkin?

1. "NUM" tugmasining o'ng tomonidagi holat satrida joylashgan tilni tanlash tugmasidan foydalanish

2. "Konfiguratsiya - Konfiguratsiyani tahrirlash tili" menyu bandi orqali

3. 1 C: Korxonada bunday imkoniyat mavjud emas

4. Verpa javoblar 1 va 2

6.81 O‘rnatilgan til operatorlarining imlosi qanday?

1. Faqat rus yozuvi

3.

6.82 Bir manba matnida rus va ingliz yozuvlarida o'rnatilgan til operatorlaridan foydalanish mumkinmi?

1. Faqat maxsus konfigurator sozlamalari bilan

2. Ha, bu konfigurator sozlamalarini o'zgartirishni talab qilmaydi

3. Yo'q, chunki konfiguratsiya xususiyatlarida o'rnatilgan til opsiyasi o'rnatilgan

6.83 O'rnatilgan tilning maqsadi nima?

1. Standart dastur interfeysini aniqlash uchun

2. Amaliy vazifaning ishlashi uchun algoritmlarni tavsiflash (konfiguratsiyani ishlab chiqish bosqichida).

3. To'g'ri javob yo'q

6.84 O‘rnatilgan til funksiyalarining imlosi qanday?

1. Faqat rus yozuvi

2. Faqat inglizcha imlo

3. Rus va ingliz yozuvlari

4. Konfigurator sozlamalariga qarab

6.85 L parametri nimani anglatadi?(L) NumberInWriting() formatlash funksiyasining format qatorida?

1. “Kasr qismini raqamlar/so‘zlar bilan chiqaring” belgisini qo‘ying.

2. Kasrlar soni

3. Lokalizatsiya kodi

7. Amaliy yechimning jadvalli modeli

7.1 Ma'lumotlarga kirish cheklovlarini o'rnatishda siz bir nechta (maydonlar soniga qarab) cheklovlarni o'rnatishingiz mumkin:

1. "O'qish" huquqi uchun

2. To'g'ri "O'zgartirish" uchun

3. "Qo'shish" o'ng uchun

4. "O'chirish" huquqi uchun

5. Yuqoridagi barcha huquqlar uchun

6. Barcha mumkin bo'lgan huquqlar uchun

7.2 Ma'lumotlarga kirish cheklovlarini o'rnatishda ma'lumotlarga kirish cheklovlari amalga oshiriladigan qiymatlar sifatida quyidagilardan foydalanish mumkin:

1. Faqat seans parametrlari qiymatlari

2. Faqat jadvallar (so'rovlar) ma'lumotlari

3. Seans parametrlari qiymatlari va jadvallar ma'lumotlari (so'rovlar)

4. Faqat turlari bo'lgan qiymatlar: raqam, satr, mantiqiy, sana

7.3 Yuqoridagi usullardan qaysi biri so‘rovlar konstruktorining “Maydonlar” bo‘limida katalog kodi va nomi paydo bo‘lishi uchun foydalanish mumkin?

1. Avval "Jadvallar" bo'limini to'ldiring, so'ngra ushbu bo'limdan kerakli ob'ektlarni tanlab, sichqonchaning chap tugmasi bilan ikki marta bosish orqali ularni "Maydonlar" bo'limiga o'tkazing.

2. "Jadvallar" bo'limini to'ldirmasdan, darhol jadvallardan kerakli ob'ektlarni - "Ma'lumotlar bazasi" bo'limining ma'lumotlar manbalarini tanlang, ularni Drag & Drop texnologiyasidan foydalangan holda "Maydonlar" bo'limiga o'tkazing. "Jadvallar" bo'limi avtomatik ravishda to'ldiriladi

3. Avval "Jadvallar" bo'limini to'ldiring, so'ngra ushbu bo'limdan kerakli ob'ektlarni tanlab, ularni ">" "" shaklidagi tugmalar yordamida "Maydonlar" bo'limiga o'tkazing.

4. I va 3 javoblar to‘g‘ri

5. I, 2 va 3 javoblar to'g'ri

7.4 So'rovni bajarish tezligini oshirish uchun siz:

1. Ko'pgina haqiqiy jadvallar uchun parametrlarni o'rnating

2. Ko'pgina virtual jadvallar uchun parametrlarni o'rnating

3. Haqiqiy yoki virtual jadval uchun parametrlarni belgilash o'rniga, "WHERE" so'rovlar tili konstruktsiyasi tomonidan belgilangan tanlovdan foydalaning.

4. I va 2 javoblar to‘g‘ri

7.5 So'rovlar dizaynerining "Jadvallar" bo'limida manba jadvalini tanlashda unga yangi nom (taxallus) berish mumkinmi?

1. Ha mumkin

2. Ha, mumkin, lekin faqat ma'lumotlar manbai ichki so'rov bo'lsa

3. Ha, mumkin, lekin faqat ma'lumotlar manbai virtual jadval bo'lsa

4. 1 va 2 javoblar to‘g‘ri

5. 1 va 3 javoblar to‘g‘ri

7.6 Ichki so'rovdan foydalanish mumkin:

1. Ma'lumotlar manbalari jadvali sifatida

2. Virtual jadval parametrlarini o'rnatishda "B" yoki "B EMAS" taqqoslash operatsiyalari operandisi sifatida

3. “QAYER” so‘rovlar tili konstruksiyasini belgilashda “B” yoki “B EMAS” taqqoslash operatsiyalari operandisi sifatida.

4. Verpa 1, 2 va 3 ga javob beradi

7.7 So'rovlar dizayneri yordamida ierarxiya bo'yicha jami olish mumkinmi?

1. Guruhlash maydoni uchun "Elementlar va ierarxiya" umumiy turini ko'rsatsangiz bo'ladi.

2. Agar guruhlash maydoni uchun "Faqat ierarxiya" umumiy turini ko'rsatsangiz mumkin

3. Verpa javoblar 1 va 2

7.8 So'rovlar dizaynerining "Shartlar" yorlig'ida shartlar ro'yxatining alohida qatorini yaratish mumkin:

1. Mavjud maydonlar ro'yxatidagi kerakli maydonni sichqonchaning chap tugmasi bilan ikki marta bosing

2. Drag & Drop texnologiyasidan foydalangan holda kerakli maydonni ro'yxatga ko'chirish orqali

3. "Qo'shish" tugmasini bosing. Agar shart o'zboshimchalik bilan bo'lsa, shart matni "qo'lda" kiritilishi mumkin.

4. Kontekst menyusiga qo'ng'iroq qiling va undan "Qo'shish" ni tanlang. Ixtiyoriy ifodadan foydalanish mumkin

5. Yuqoridagi barcha javoblar to'g'ri

7.9 So'rovlar dizaynerining "Aloqalar" yorlig'ida siz quyidagilarni belgilashingiz mumkin:

1. Ma'lumotlar manbalari jadvallarini ulash va ular o'rtasidagi munosabatlar

2. Ma'lumotlar manbalari jadvallari va ular orasidagi bog'lanishlarni birlashtirish

3. So'rov natijasida olingan jadval maydonlari orasidagi bog'lanishlar

4. Ma'lumotlar manbai jadvali maydonlari va so'rov natijasida olingan jadval o'rtasidagi munosabatlar.

7.10 So'rovlar dizaynerida ma'lumotlar manbalari jadvallariga qo'shilishda siz:

1. Ulanish shartini ko'rsatmasdan ulanishni tayinlang

2. Ulanish shartini ko'rsatuvchi ulanishni belgilang va bu shart faqat bitta bo'lishi mumkin

3. Ulanish shartini ko'rsatuvchi ulanishni tayinlang va bu shart faqat oddiy bo'lishi mumkin

4. Kerakli miqdordagi aloqa shartlarini ko'rsatuvchi ulanishlarning kerakli sonini belgilang va bu shartlar oddiy yoki o'zboshimchalik bilan bo'lishi mumkin.

7.11 So'rovlar dizaynerida ma'lumotlar manbalari jadvallari o'rtasida bog'lanishni yaratish quyidagilarga imkon beradi:

1. Faqat ikkita ma'lumot manbasi jadvalini birlashtirish

2. Ma'lumotlar manbalari jadvallarining kerakli sonini ulash

3. Faqat ikkita ma'lumot manbasi jadvalini ulash va jadvallardan kamida bittasi uchun "Hammasi" katagiga belgi qo'yish kerak

Basic, bu yangi boshlanuvchilar uchun o'rganishni osonlashtiradi. Biroq, bu sanab o'tilgan tillarning birortasining bevosita analogi emas.

Bu erda o'rnatilgan tilning eng muhim xususiyatlaridan ba'zilari:

  • oldindan kompilyatsiya qilish; bajarishdan oldin o'rnatilgan tilda matnni o'z ichiga olgan modullar ichki kodga aylantiriladi;
  • kompilyatsiya qilingan modullarni xotirada keshlash;
  • yumshoq yozish - o'zgaruvchining turi uning tarkibidagi qiymat turiga qarab belgilanadi va ish paytida o'zgarishi mumkin;
  • konfiguratsiya ob'ektlarining dasturiy ta'rifi yo'qligi; ishlab chiquvchi platformaga o'rnatilgan ob'ektlardan yoki dastur yechimining vizual dizayni natijasida tizim tomonidan yaratilgan ob'ektlardan foydalanishi mumkin.

Voqealarga yo'naltirilgan o'rnatilgan til. 1C: Enterprise tizimidagi o'rnatilgan tilning maqsadi amaliy echimlarni yaratish mafkurasi bilan belgilanadi. 1C: Enterprise 8.0 da dastur yechimlari to'liq kodlanmagan. Ilova yechimining ko'p qismi ishlab chiquvchi tomonidan vizual dizayn orqali yaratiladi - yangi konfiguratsiya ob'ektlarini yaratish, ularning xususiyatlarini, taqdimot shakllarini, munosabatlarini va boshqalarni o'rnatish. O'rnatilgan til faqat dastur yechimidan farq qiluvchi ob'ektlarning harakatini aniqlash uchun ishlatiladi. standarti va o'zlarining ma'lumotlarni qayta ishlash algoritmlarini yaratish.

Shu sababli, o'rnatilgan tilda matnni o'z ichiga olgan modullar tizim tomonidan amaliy yechimning ishlashi paytida yuzaga kelishi mumkin bo'lgan oldindan ma'lum bo'lgan holatlarda qo'llaniladi. Bunday holatlar hodisalar deb ataladi. Hodisalar amaliy yechim ob'ektlarining ishlashi yoki dastur yechimining o'zi bilan bog'lanishi mumkin.

Masalan, bir qator hodisalar Directory ilovasi yechimi ob'ektining ishlashi bilan bog'liq bo'lib, ular orasida BeforeWrite hodisasi ham bor. Ushbu hodisa katalog elementi ma'lumotlari ma'lumotlar bazasiga yozilishidan oldin sodir bo'ladi. O'rnatilgan tildan foydalangan holda ishlab chiquvchi, masalan, foydalanuvchi tomonidan kiritilgan ma'lumotlarning to'g'riligini tekshiradigan algoritmni tavsiflashi mumkin. Ushbu algoritmni tegishli modulga joylashtirish orqali ishlab chiquvchi foydalanuvchi har safar katalog elementini yozib olganida tizim ishlab chiquvchi tomonidan yaratilgan algoritmni bajarishini va foydalanuvchi katalogning kerakli ma’lumotlarini to‘ldirishni unutganligini tekshirib ko‘radi.

Shunday qilib, biz shuni aytishimiz mumkinki, o'rnatilgan til biznes mantig'ini dasturlash uchun skript tilidir va o'rnatilgan tilda modullardan foydalanish hodisaga bog'liq, ya'ni. modullar dastur yechimining ishlashi davomida ma'lum hodisalar sodir bo'lganda bajariladi.

Oldindan belgilangan ma'lumotlar turlari

1C: Enterprise 8.0 platformasi ishlab chiquvchiga har xil turdagi ma'lumotlardan foydalanish imkonini beradi.

Platformaning o'zi darajasida aniqlangan ko'plab ma'lumotlar turlari mavjud. Masalan, bu ibtidoiy ma'lumotlar turlari, masalan, qator, raqam, sana va boshqalar.


Tavsif ibtidoiy ma'lumotlar turlari:

  • NULL- etishmayotgan qiymat. Masalan, so'rovlarda ishlatiladi.
  • Aniqlanmagan- bo'sh, aniqlanmagan qiymat. U, masalan, protsedura yoki funktsiyani chaqirishda ushbu parametr o'tkazib yuborilgan bo'lsa, parametrlarning o'tishini baholashda ishlatiladi. Kompozit ma'lumotlar turiga ega bo'lgan tafsilotlar sukut bo'yicha "Aniqlanmagan" turdagi.
  • Mantiqiy- ikkita qiymatni o'z ichiga oladi: True yoki False. Masalan, mantiqiy ifodalarda qo'llaniladi - mantiqiy ifoda "Mantiqiy" tipidagi.
  • sana- sana va vaqtni o'z ichiga oladi. Standart qiymat - 01/01/01 00:00:00 bizning davrimizning boshlanish sanasi. Vaqt kunning boshidan o'lchanadi. "Sana" harfiy turiga ega bo'lgan ifoda quyidagicha yoziladi - "00010101000000". Avval yil, keyin oy, keyin sana va keyin vaqt yoziladi. Quyidagi yozuv mumkin: "20041031". Odatiy vaqt - kunning boshi.
  • Chiziq- o'zgaruvchan, qat'iy yoki cheksiz uzunlikdagi bo'lishi mumkin. Umuman olganda, o'zgaruvchan uzunlikdagi satrlardan foydalanish tavsiya etiladi.
  • Raqam- sonning bit chuqurligi 38 bitgacha oshirildi.
  • Turi- qiymat turlarini aniqlashga xizmat qiladi. Masalan, ma'lumotlar turlarini solishtirish uchun ishlatiladi. Unda harflar yo'q va Type( funksiyalari orqali qaytariladi.<Имя типа>) yoki TypeValue(<Значение>).

Bundan tashqari, ko'proq bor murakkab ma'lumotlar turlari. Masalan, platforma universal qiymatlar to'plami bo'lgan bir qator turlarni qo'llab-quvvatlaydi: massiv, tuzilma, qiymatlar ro'yxati, qiymatlar daraxti va boshqalar.


Ma'lumotlar turlari "Universal to'plamlar" - har qanday turdagi ma'lumotlar ob'ektlarining ro'yxati (to'plami), ularning qiymatlariga qo'pol kuch yoki belgilangan indeks (kalit) orqali kirish mumkin. To'plam elementlarini raqamlash 0 dan boshlanadi. Barcha ko'rsatilgan ma'lumotlar turlari faqat dasturiy tarzda yaratiladi.

Massiv. Ixtiyoriy turdagi qiymatlarning raqamlangan to'plamini ifodalaydi. Massiv elementiga uning indeksi orqali kirish mumkin. Massivning elementlari, xususan, boshqa massivlar bo'lishi mumkin. Bu ko'p o'lchovli massivlarni yaratishga imkon beradi.

Tuzilishi. Kalit-qiymat juftliklaridan tashkil topgan nomli to‘plamni ifodalaydi. Kalit faqat satr bo'lishi mumkin, qiymat ixtiyoriy turdagi bo'lishi mumkin. Struktura elementiga uning kalitining qiymati orqali kirish mumkin, ya'ni. nomi bilan. Odatda har biri o'ziga xos nomga ega bo'lgan oz sonli qiymatlarni saqlash uchun ishlatiladi.

Xat yozish. Xuddi Structure kabi, u Key - Value juftliklari to'plamidir. Biroq, Strukturadan farqli o'laroq, kalit deyarli har qanday turdagi bo'lishi mumkin.

Qadriyatlar ro'yxati. Odatda interfeys muammolarini hal qilish uchun ishlatiladi. Dinamik qiymatlar to'plamini yaratish va ularni boshqarish (qo'shish, tahrirlash, elementlarni o'chirish, saralash) imkonini beradi. U har qanday turdagi qiymatlarni o'z ichiga olishi mumkin, bundan tashqari, bitta ro'yxatda saqlangan qiymatlarning turlari har xil bo'lishi mumkin.

Qiymatlar jadvali. Qiymatlar jadvali dinamik qiymatlar to'plamini yaratish va boshqarish imkonini beradi. U har qanday turdagi qiymatlar bilan to'ldirilishi mumkin va bitta jadvalda saqlangan qiymatlarning turlari har xil bo'lishi mumkin.

Qadriyatlar daraxti. Qiymatlar daraxti - bu qiymatlar jadvaliga o'xshash har qanday turdagi dinamik ravishda yaratilgan qiymatlar to'plami. Qiymatlar jadvalidan farqli o'laroq, qiymatlar daraxtining satrlari ierarxik tuzilmalarni hosil qilishi mumkin: daraxtdagi har bir satr o'z navbatida bir qator bo'ysunuvchi qatorlarga ega bo'lishi mumkin va hokazo. Bunday holda, qiymatlarni qidirish, saralash va natijalarni olish joriy ierarxiya darajasi bo'yicha yoki barcha bo'ysunuvchilarni o'z ichiga olgan holda amalga oshirilishi mumkin.

COMSafeArray. ning ko'p o'lchovli SAFEARRAY massivi ustidagi ob'ekt o'ramini ifodalaydi

Protsedura SelectFromFileClick(Element) // ViewingFileSelectionDialog bilan faylni tanlash = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = Rost; FileSelectionDialog.FilterIndex = 0; Agar FileSelectDialog.Select() bo'lsa File = New File(FileSelectDialog.FullFileName); Rasm = NewValueStorage(NewImage(FileSelectionDialog.FullFileName)); DisplayImage(); endIf; Jarayonning oxiri

THIS_KEYWORD
<Это конструкция языка>,
<Это конструкция языка>
THIS_FUNCTION(<Это конструкция языка>)

So'rovlar tilini tavsiflovchi qoidalarda til konstruktsiyalari burchakli qavslar ichida ko'rsatilgan. Kalit so'zlar va funksiya nomlari bosh harflar bilan tavsiflanadi.

Til konstruktsiyalarida ixtiyoriy elementlar - kalit so'zlar va boshqalar bo'lishi mumkin. So'rovlar tilini tavsiflovchi qoidalarda ixtiyoriy elementlar "[" va "]" kvadrat qavslar ichiga olinadi:

[BU ixtiyoriy so'z] [<Это необязательная конструкция>]

Ba'zi hollarda til dizayni bir nechta muqobil elementlardan birini qo'llashi mumkin. Qoidalardagi bunday elementlar vertikal chiziq "|" orqali keltirilgan:

HAM_BU_SO'Z | YOKI SHU_SO'Z
<Либо эта конструкция> | <Либо эта конструкция>

Barcha konstruktsiyalarning tavsiflari so'rovlar tilida qanday ishlatilishini tushuntiruvchi misollar bilan birga keladi.

So'rovlar tilidagi sharhlar

So'rov organi sharhlarni o'z ichiga olishi mumkin. Izoh belgilar ketma-ketligidan // boshlanib, satr oxirigacha davom etadigan qatorning bir qismi hisoblanadi:

// Bu sharh.

So'rov bajarilganda sharhlar e'tiborga olinmaydi.

Kalit so'zlarning ikki tilli ifodalanishi

1C: Enterprise so'rovlar tilining muhim xususiyatlaridan biri shundaki, o'rnatilgan tilda bo'lgani kabi, barcha kalit so'zlar ikkita imloga ega: rus va ingliz tillarida. Keyinchalik ushbu bobda kalit so'zlarning ruscha imlosi ko'rsatilgan. Quyida rus va ingliz tillari oʻrtasidagi yozishmalar va soʻrovlar tilidagi kalit soʻzlar uchun imlo variantlari koʻrsatilgan jadval...... (oʻtkazib yuborilgan)

So'rov matnining asosiy bo'limlari

So'rov matni quyidagi qoida bilan tavsiflanishi mumkin:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[AVTO BUYURTMA]
[<Описание итогов>]

Ushbu qoidadan ko'rinib turibdiki, so'rov matni bir necha qism yoki bo'limlardan iborat:

Bo'limda<Упорядочивание результатов>So'rov natijasidagi qatorlar uchun buyurtma berish shartlarini belgilashingiz mumkin. So'rov natijasini tartiblash 324-betda muhokama qilinadi.

AVTO TARTIBI so'rov natijalarida qatorlarni avtomatik tartiblashni yoqish imkonini beradi. Ushbu rejim 331-betda tasvirlangan.

Bo'limda<Описание итогов>So'rovda qaysi jamilar hisoblanishi kerakligini belgilashingiz mumkin. Ushbu bo'lim 332-betda tasvirlangan.

Tavsif so'rovi

Yuqorida aytib o'tilganidek, so'rov matnida so'rov tavsifi bo'limi bo'lishi kerak, bu quyidagilarni belgilaydi:

So'rov natijalarida bo'ladigan maydonlar;

So'rov ma'lumotlar manbalari - manba jadvallari;

So'rovda ma'lumotlarni tanlashga ta'sir qiluvchi shartlar;

So'rov natijalarini guruhlash tartibi.

So'rov tavsifi bo'limi bir nechta o'zaro bog'liq jumlalardan iborat:

[TURLI] [BIRINCHI<Количество>]
<Список полей выборки>
[FROM<Список источников>]
[QAYERDA<Условие отбора>]
[GROUP BY<Поля группировки>]
[BO'LGAN<Условие отбора>]
[OʻZGARISH UCHUN [<Список таблиц верхнего уровня>]]

So'rov tavsifi kerakli kalit so'z bilan boshlanadi TANLANG.

Taklif QAYERDA<Условие отбора> so'rov natijasini filtrlash imkonini beradi. Natija faqat belgilangan shart rost bo'lgan yozuvlarni o'z ichiga oladi. Tanlov shartlarini tavsiflash qoidalari 315-betda muhokama qilinadi.

Taklif O'ZGARISH UCHUN tranzaktsiyada o'qilgan ma'lumotlarni bloklash zarurligini ko'rsatish uchun mo'ljallangan.

Taklif GURUH so‘rov natijalarini guruhlash tartibini tasvirlash imkonini beradi. Guruhlashtirish 316-betda batafsil muhokama qilinadi.

Taklif EGA natijalarni guruhlash bo‘yicha shartlar qo‘yish imkonini beradi. 318-betda tasvirlangan.

Ushbu bobdagi barcha so'rovlar misollari so'rov matni va so'rov natijasini beradi. So'rov matni Request ob'ektining Execute usuliga parametr sifatida uzatiladi deb taxmin qilinadi.

Bitta SELECT iborasidan va tanlov maydonlari ro'yxatidan iborat juda oddiy so'rovga misol keltiraylik.

//Siz hisobotda hisob-fakturalar ro'yxatini ko'rsatishingiz kerak.

So'rov natijasi:

DIFFERENT so'zining ishlatilishi

Ko'pgina hollarda, hisobotdagi bir xil qatorlar takrorlanmasligi ma'qul.

// Umuman olganda, qaysi kontragentlarni aniqlash kerak
// davr uchun tovarlar jo'natildi.
Document.Invoice.Counterparty-ni tanlang

So'rov natijasi:

Ko'rinib turibdiki, so'rov natijasi juda ko'p takrorlangan satrlarni o'z ichiga oladi, bu uning aniqligini pasaytiradi. Takrorlashni oldini olish uchun so'rov tavsifida DIFFERENT kalit so'zini ko'rsatish kerak.

Various Document.Invoice.Counterparty-ni tanlang

So'rov natijasi:

FIRST so'zidan foydalanish

Ba'zi hollarda hisobotda cheklangan miqdordagi qatorlarni ko'rsatish kerak. Buning uchun so'rov tavsifida siz FIRST kalit so'zini va undan keyin - kerakli qatorlarni ko'rsatishingiz kerak.

// Eng qimmat beshta tovarni tanlash kerak.
// Tanlov mahsulot narxining kamayish tartibida amalga oshirilishi kerak.
Birinchi 5 ni tanlang
Katalog.Nomenklatura.Ism,
Katalog.Nomenklatura.PurchasingPrice
Katalog.Nomenklatura.PurchasePrice pasayish boʻyicha saralash

So'rov natijasi:

Tanlov maydonlarining tavsifi

Majburiy SELECT kalit so'zidan keyin (va DIFFERENT va FIRST saralash so'zlaridan) so'rov matnida tanlov maydonlari ro'yxati ko'rsatiladi. Ushbu maydonlar so'rovdagi ma'lumotlarni olishda qayta ishlanadi. So'rov natijasi ushbu ro'yxatda belgilangan maydonlar to'plamiga ham ega bo'ladi. Tanlov maydonlari quyidagi qoidalarga muvofiq tavsiflanadi:

<Описание поля>[ [QANAQASIGA]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

Tanlov maydonlari ro'yxati vergul bilan ajratilgan bir yoki bir nechta elementlardan iborat. Har biri<Поле выборки>tanlash maydoni tavsifi va ixtiyoriy maydon taxallusidan iborat.

Tanlov ro'yxatidagi maydonlarni ro'yxatga olish o'rniga yulduzcha "*" ni belgilashingiz mumkin. Bu so'rov natijasi manba jadvallaridagi barcha maydonlarni - manbalar ro'yxatida tasvirlangan so'rov ma'lumotlar manbalarini o'z ichiga olishi kerakligini anglatadi.

Izoh! Tanlash maydonlari ro'yxatida yulduzcha "*" ko'rsatilganda, manba jadvallarining virtual maydonlari natijaga kiritilmaydi.

<Описание поля>maydon qiymatlari qanday yaratilishi kerakligini belgilaydi. Eng oddiy holatda tanlash maydoni manba jadvalidagi maydonga havola hisoblanadi. Bog'lanish ushbu maydonni o'z ichiga olgan jadvalni ko'rsatish orqali yoki jadvalning o'zini ko'rsatmasdan ko'rsatilishi mumkin. Dala havolasini bekor qilish bu yerda muhokama qilinadi.

Umuman olganda, tanlash maydoni nafaqat manba jadvalidagi maydonga havola, balki ba'zilari ham bo'lishi mumkin<Выражение>. Ifodalar 344-betda batafsil muhokama qilinadi.

So'rov natijalarini tanlangan maydonlarda ifoda sifatida ko'rsatilgan jamlash funktsiyalari yordamida guruhlash mumkin. So'rov natijalarini guruhlash 316-betda muhokama qilinadi. Agregat funktsiyalari 345-betda tasvirlangan.

Har bir tanlov maydoniga taxallus berilishi mumkin. Kelajakda undan ushbu sohaga qulayroq kirish uchun foydalanish mumkin. Maydon taxalluslaridan foydalanish quyida muhokama qilinadi.

<Группа полей>faqat tanlangan maydon ichki o'rnatilgan jadvalga ishora qilganda belgilanishi mumkin. Bunday holda, ichki jadval tanlashda qaysi maydonlarni qayta ishlash kerakligini belgilashingiz mumkin. Agar maydonlar guruhi ko'rsatilmagan bo'lsa, o'rnatilgan jadvalning barcha maydonlari tanlovda qayta ishlanadi. Ichki jadvallarga kirish bo'limda tasvirlangan.

Tanlov ro'yxatidagi maydon taxalluslari

Agar siz tanlov maydoniga taxallusni tayinlagan bo'lsangiz, keyinchalik bu maydonga uning taxallusidan TARTIBI BY va JAMI bandlarida, shuningdek so'rov natijasi bilan ishlashda murojaat qilishingiz mumkin. Bunday davolash qulayroq va vizual bo'lishi mumkin, ba'zi hollarda esa yagona mumkin.

HOW kalit so'zi maydon taxallusidan oldin bo'lishi mumkin. Bu so'z umuman ko'rsatilmagan bo'lishi mumkin, lekin agar u ko'rsatilsa, so'rov matnining ko'rinishi va o'qilishi ortadi.

Maydon taxalluslari o'zgaruvchilar identifikatorlarini tayinlash qoidalariga muvofiq o'rnatiladi. So'rovdagi taxalluslar bir xil bo'lishi mumkin emas.

Maydonlarga taxalluslarni belgilash o'z-o'zidan so'rovdagi ma'lumotlarni tanlashga ta'sir qilmaydi.

// Mahsulot katalogidan tanlanishi kerak
// tovar nomlari va guruhlar nomlari.
Tanlang
Katalog. Nomenklatura. Mahsulot nomi,
Katalog. Nomenklatura.Ota-ona.Ism Guruh sifatida
dan
Katalog.Nomenklatura

So'rov natijasi:

E'tibor bering, maydon so'rovi natijasidagi maydonlar "Element" va "Guruh" deb nomlanadi. Agar maydon taxalluslari ko'rsatilmagan bo'lsa, so'rov natijasidagi maydonlar "Ism" va "Ism1" deb nomlanadi (so'rov natijasidagi maydon nomlari mos kela olmaydi, shuning uchun "1" avtomatik ravishda ikkinchi maydon nomiga qo'shiladi), bu unchalik aniq emas.

Tanlov maydonlari ro'yxatidagi ichki o'rnatilgan jadvallar

Tanlash ro'yxatidagi maydon so'rov ma'lumotlari manbasidagi ichki jadvalga murojaat qilishi mumkin. Bunday holda, so'rov natijalari maydoni So'rov natijasi turiga ega bo'ladi, ya'ni u o'rnatilgan manba jadvali asosida yaratilgan ichki so'rov natijasini o'z ichiga oladi.

Odatiy bo'lib, ichki o'rnatilgan jadvalning barcha maydonlari - ma'lumotlar manbai - ichki natijaga kiritilgan. Ichki so'rov natijalarida bo'lishi kerak bo'lgan maydonlar guruhini aniq belgilash mumkin. Ichki natija maydonlari guruhi quyidagi qoidaga muvofiq tavsiflanadi:

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>vergul bilan ajratilgan bir yoki bir nechta elementlardan iborat. Agar ro'yxat bitta elementdan iborat bo'lsa, uni qavs ichiga olish shart emas.

Ichki maydonlarni ro'yxatga olish o'rniga yulduzcha "*" ni belgilashingiz mumkin; bu ichki o'rnatilgan so'rov natijasi ichki jadvaldagi barcha maydonlarni o'z ichiga olishi kerakligini anglatadi.

<Выражение>[[QANAQASIGA]<Псевдоним поля>]

<Вложенное поле>qandaydir ifodani ifodalashi mumkin. Eng oddiy holatda<Выражение>ichki jadvaldagi maydonga havola. Ifodalar 344-betda batafsil muhokama qilinadi.

Har bir ichki o'rnatilgan maydonga taxallus berilishi mumkin. Kelajakda<Псевдоним поля>tanlov ro'yxatidagi maydonlar uchun taxalluslarga o'xshash ushbu maydonga qulayroq kirish uchun foydalanish mumkin - "Tanlash ro'yxatidagi maydonlar uchun taxalluslar" bo'limiga qarang.

Taxalluslar ichki jadvalning o'ziga taxallus tayinlanganligidan qat'i nazar, ichki maydonlarga tayinlanishi mumkin.

// Hisobotda schyot-fakturalar spetsifikatsiyasini ko'rsatish kerak,
// hujjatning o'zi, nomenklaturasi va miqdori.
Tanlang

Hujjat.Invoys.Tarkibi.(Mahsulot sifatida nomenklatura, miqdor)

So'rov natijasi:

Havola Murakkab
Mahsulot Miqdori
Ayollar jinsisi 4
Ayollar jinsisi 5
Ko'ylak "Covgirl" 5
Hisob-faktura 00005 24.02.2002 0:00:00 Ayollar jinsisi 1
Ayollar jinsisi 1
Moydodir "Akvarium" 5
"Lily" lavabosi 8
Mikser "Ultra" 10

E'tibor bering, so'rov natijasining "Tarkib" maydoni "Nomenklatura" va "Miqdor" maydonlariga ega bo'lgan ichki jadvaldir.

//Hisobotda schyot-fakturaning jadval qismining barcha maydonlarini ko'rsatish.
Tanlang
Document.Invoice.Link,
Hujjat.Invoice.Tarkib.*

IZ bandining maqsadi manba jadvallari ro'yxatini belgilash - berilgan SELECT bayonotida ishlatiladigan ma'lumotlar manbalari.

Shuni ta'kidlash kerakki, so'rovlar tilida IZ bandi ixtiyoriydir. Agar ma'lumotlar manbalari SELECT bandidagi tanlov maydonlari ro'yxati tavsifida to'liq mos bo'lsa, u o'tkazib yuborilishi mumkin. E'tibor bering, oldingi bo'limlardagi bir qator misollarda IZ bandi yo'q edi.

IZ kalit so'zidan keyin manbalar ro'yxati ko'rsatiladi. Umuman olganda, manbalar ro'yxati quyidagi qoidalar to'plami bilan tavsiflanadi:

<Источник>[, <Источник>[, ...]]

So'rov ma'lumotlari manbalari manbalar ro'yxatida vergul bilan ajratilgan. Har<Источник>manbalar ro'yxati manba tavsifini o'z ichiga olishi kerak; qo'shimcha ravishda belgilanishi mumkin<Перечень соединений>- manbani boshqa manbalarga ulash qoidalari. Ulanish xususiyatlari tavsiflangan.

<Описание источника> [ <Перечень соединений> ]

Agar ma'lumotlar manbai ma'lumotlar bazasi jadvali bo'lsa,<Описание источника>o'z ichiga oladi<Имя таблицы>.

<Таблица>[ [QANAQASIGA]<Псевдоним источника>]

Agar manba jadvali virtual bo'lsa, siz belgilashingiz mumkin<Параметры>uning shakllanishi. Virtual jadval parametrlari "So'rovlar ma'lumotlar manbalari" bo'limida batafsil tavsiflangan.

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

Quyi so'rov so'rovlar ma'lumot manbai sifatida ham harakat qilishi mumkin; bu holda manba tavsifi o'z ichiga oladi<Описание запроса>. Ichki so'rovlardan foydalanish quyidagi manzilda tasvirlangan.

Ma'lumotlar manbasining tavsifi uning taxalluslarini ham belgilashi mumkin. Kelajakda<Псевдоним источника>ushbu manbaga qulayroq kirish uchun foydalanish mumkin. Ma'lumotlar manbai taxalluslaridan foydalanish bo'yicha muhokama qilinadi.

Ulanish spetsifikatsiyalari

Manba ro'yxatida bir nechta manbalarni aniqlashda birinchi manba jadvalidagi har bir yozuv uchun ikkinchi manba jadvalidan tanlov amalga oshiriladi va hokazo. Shunday qilib, so'rov barcha ko'rsatilgan manbalardagi barcha yozuvlarning barcha mumkin bo'lgan kombinatsiyalarini beradi.

So'rov natijasi:

Qarama-qarshi tomon Bank
Yetkazib beruvchilar InvestBank ATB
Yetkazib beruvchilar "PromStroyBank" ATB
"Zarya" trikotaj fabrikasi InvestBank ATB
"Zarya" trikotaj fabrikasi "PromStroyBank" ATB
Daniy kiyim fabrikasi InvestBank ATB
Daniy kiyim fabrikasi "PromStroyBank" ATB
Xaridorlar InvestBank ATB
Xaridorlar "PromStroyBank" ATB
Kiyim yarmarkasi InvestBank ATB
Kiyim yarmarkasi "PromStroyBank" ATB
"Budenovskiy" savdo uyi InvestBank ATB
"Budenovskiy" savdo uyi "PromStroyBank" ATB
Ulgurji bozordagi 45-pavilion InvestBank ATB
Ulgurji bozordagi 45-pavilion "PromStroyBank" ATB
Bavariya - chinni InvestBank ATB
Bavariya - chinni "PromStroyBank" ATB
Daniy kiyim fabrikasi InvestBank ATB
Daniy kiyim fabrikasi "PromStroyBank" ATB
"PromStroyBank" ATB InvestBank ATB
"PromStroyBank" ATB "PromStroyBank" ATB

So'rov natijasi barcha banklar bilan barcha kontragentlarning kombinatsiyalarini o'z ichiga oladi. Qoida tariqasida, bunday natijaning o'zi mantiqiy emas. Odatda, turli manba jadvallaridagi yozuvlar kombinatsiyasi ba'zi shartlar bilan cheklanishi kerak. So'rovlar tilida manbalarning o'zini ko'rsatish va ushbu manbalardan olingan yozuvlar birikmalarini so'rov natijasiga kiritish zarur bo'lgan shartlarni belgilash orqali manbalarning bunday birikmasini tavsiflash mumkin.

Bir nechta ulanish turlari mavjud, ular quyidagi qoidalar bilan tavsiflanadi:

<Соединение> [<Перечень соединений>]

Umuman<Перечень соединений>faqat bitta ulanishni (ikki manbadan), balki bir vaqtning o'zida bir nechta manbalarning bir nechta ulanishlarini ham o'z ichiga olishi va tavsiflashi mumkin.

[ICHKI] QO'SHILING<Описание источника>BY<Условие отбора> |

CHAP [TAShQI] QOʻSHILING<Описание источника>BY<Условие отбора> |

O‘NG [TAShQI] QO‘SHILING<Описание источника>BY<Условие отбора> |

TO'LIQ (tashqi] QO'SHILING<Описание источника>BY<Условие отбора>

<Условие отбора>shartlarni o'z ichiga oladi, ularga ko'ra tanlov asl jadvallar ma'lumotlarini - so'rov manbalarini birlashtirishi kerak. So'rovlar tilida shartlarni tavsiflash qoidalari 357-betda muhokama qilinadi.

LEFT, RIGHT va FULL kalit so'zlari ulanishning mohiyatini aniqlaydi. INTERNAL yoki EXTERNAL so'zlari umuman ko'rsatilmasligi mumkin, ular so'rov matnining ravshanligi va o'qilishini oshiradi.

Birlashtirilayotgan manbalar bir-biriga ekvivalent emas va ba'zi hollarda natija JOIN kalit so'zidan oldin qaysi jadval birinchi bo'lib (uning chap tomonida) va qaysi jadval ikkinchi (o'ngda) keltirilganiga bog'liq.

[INTERNAL] JOIN so'rov natijasiga ikkala manba jadvalidan - ma'lumotlar manbalaridan faqat belgilangan shartga javob beradigan yozuvlar birikmasi kiritilishi kerakligini anglatadi. Qolgan yozuvlar natijaga kiritilmagan.

// Bir vaqtning o'zida qaysi banklar ekanligini aniqlash kerak
// kontragentlar (xuddi shu nomlar mavjud
//kontragentlar katalogida ham, Banklar katalogida ham).
Tanlang

Banks.Link Qanday qilib bankka
Kimdan

Ichki qo'shilish
Directory.Banks How Banks
tomonidan

So'rov natijasi:

Qarama-qarshi tomon Bank
"PromStroyBank" ATB "PromStroyBank" ATB

LEFT [OUTER] JOIN so‘rov natijasi belgilangan shartga javob beradigan ikkala manba jadvalidagi yozuvlar birikmasini o‘z ichiga olishi kerakligini bildiradi. Biroq, ichki birlashmadan farqli o'laroq, so'rov natijasi birinchi manbadan (JOIN so'zining chap tomonida ko'rsatilgan) yozuvlarni ham o'z ichiga olishi kerak, ular uchun ikkinchi manbadan shartga mos keladigan yozuvlar topilmadi.

Shunday qilib, so'rov natijasi birinchi manbadagi barcha yozuvlarni o'z ichiga oladi; agar belgilangan shart bajarilsa, ular ikkinchi manbadan olingan yozuvlar bilan birlashtiriladi. Shartga mos keladigan ikkinchi manbadan hech qanday yozuv topilmagan so'rov natijalari qatorlari ushbu manbadan olingan yozuvlar asosida yaratilgan maydonlarda NULLni o'z ichiga oladi.

//Hisobotda barcha kontragentlarni ko'rsatish kerak va ular uchun
// kim ham bank - bankka havolani ko'rsating.
Tanlang
Qarama-qarshi tomonlar. Kontragent sifatida havola,
Banks.Link Qanday qilib bankka
Kimdan
Katalog. Kontragentlar Qanday qilib kontragentlar
Chap tashqi qo'shilish
Directory.Banks How Banks
tomonidan
Qarama-qarshi tomonlar.Nomi = Banklar.Nomi

So'rov natijasi:

RIGHT [Tashqi] JOIN so'rov natijasi belgilangan shartga javob beradigan ikkala manba jadvalidagi yozuvlar kombinatsiyasini o'z ichiga olishi kerakligini anglatadi. Bundan tashqari, so'rov natijasi ikkinchi manbadan (CONNECTION so'zining o'ng tomonida ko'rsatilgan) yozuvlarni ham o'z ichiga olishi kerak, ular uchun shartga mos keladigan birinchi manbadan hech qanday yozuv topilmagan.

Shunday qilib, so'rov natijasi ikkinchi manbadagi barcha yozuvlarni o'z ichiga oladi; agar belgilangan shart bajarilsa, ular birinchi manbadagi yozuvlar bilan birlashtiriladi. Shartga mos keladigan birinchi manbadan hech qanday yozuv topilmagan so'rov natijalari qatorlari ushbu manbadan olingan yozuvlar asosida yaratilgan maydonlarda NULLni o'z ichiga oladi.

//Hisobotda barcha banklarni ko'rsatish kerak va ular uchun
// kim ham kontragent - kontragentga havolani ko'rsating.
TANLANG
Qarama-qarshi tomonlar. Kontragent sifatida havola,
Banks.Link Like Bank
FROM
Katalog. Kontragentlar Qanday qilib kontragentlar
O'ng tashqi qo'shilish
Directory.Banks How Banks
tomonidan
Qarama-qarshi tomonlar.Nomi = Banklar.Nomi

So'rov natijasi:

Qarama-qarshi tomon Bank
NULL InvestBank ATB
"PromStroyBank" ATB "PromStroyBank" ATB

TO'LIQ [TAShQI] JOIN so'rov natijasi belgilangan shartga javob beradigan ikkala manba jadvalidagi yozuvlar kombinatsiyasini o'z ichiga olishi kerakligini anglatadi. Bundan tashqari, so'rov natijasi ikkala manbadan ham moslik topilmagan yozuvlarni o'z ichiga olishi kerak.

Shunday qilib, so'rov natijasi ikkala manbadagi barcha yozuvlarni o'z ichiga oladi; belgilangan shart bajarilganda ular bir-biriga bog'langan bo'ladi. Shartga mos keladigan hech qanday manbadan yozuvlar topilmagan so'rov natijalari qatorlari ushbu manbadan olingan yozuvlar asosida yaratilgan maydonlarda NULLni o'z ichiga oladi.

// Hisobotda barcha kontragentlar va barcha banklarni ko'rsatish kerak,
// va ikkalasi ham - bir qatorda chop eting.
Tanlang
Qarama-qarshi tomonlar. Kontragent sifatida havola,
Banks.Link Qanday qilib bankka
Kimdan
Katalog. Kontragentlar Qanday qilib kontragentlar
To'liq tashqi qo'shilish
Directory.Banks How Banks
tomonidan
Qarama-qarshi tomonlar.Nomi = Banklar.Nomi

So'rov natijasi:

Ma'lumotlar manbai taxalluslari

Agar siz ma'lumotlar manbasiga taxallusni tayinlagan bo'lsangiz, kelajakda ushbu manbaga ushbu taxallus yordamida kirish mumkin (va endi jadval nomini ko'rsatish orqali kirish mumkin emas). Bunday davolash qulayroq va vizual bo'lishi mumkin, ba'zi hollarda esa yagona mumkin.

Taxallus o'zgaruvchan identifikatorlarni tayinlash qoidalariga muvofiq o'rnatiladi. So'rovdagi taxalluslar bir xil bo'lishi mumkin emas.

HOW kalit so'zi manba taxallusidan oldin bo'lishi mumkin. Bu so'z umuman ko'rsatilmagan bo'lishi mumkin, lekin agar u ko'rsatilsa, so'rov matnining ko'rinishi va o'qilishi ortadi.

Manbalarga taxalluslarni belgilash so'rovda ma'lumotlarni tanlashga ta'sir qilmaydi.

// Ushbu misol foydalanishni ko'rsatadi
// Mahsulot taxallusning tanlov maydonlari ro'yxatida,
// manba jadvaliga tayinlangan Katalog.Nomenklatura
Tanlang
Mahsulot nomi,
Mahsulot. Ota-ona
Kimdan
Katalog.Nomenklatura.Mahsulot

Manba ro'yxatidagi ichki jadvallar

Manbalar ro'yxati shuningdek, o'rnatilgan jadvallarni - ma'lumotnomalar va hujjatlarning jadval qismlarini ham o'z ichiga olishi mumkin.

//Hisobotda schyot-fakturalar spetsifikatsiyasini ko'rsatish kerak -
// hujjatning o'zini, nomenklaturasini va miqdorini ko'rsatish.
//Manbalar ro'yxatida "Tarkib" ichki jadvali mavjud -
// hisob-fakturaning jadval qismi.
// Misolni ortiqcha yuklamaslik uchun tanlov sakkizta yozuv bilan cheklangan.
Birinchi 8 ni tanlang
Havola, nomenklatura, miqdor
Kimdan
Hujjat. Invoys. Tarkibi

So'rov natijasi:

Havola Nomenklatura Miqdori
Hisob-faktura 00007 25.02.2002 21:03:21 Ayollar jinsisi 4
Hisob-faktura 00006 25.02.2002 0:00:00 Ayollar jinsisi 5
Hisob-faktura 00006 25.02.2002 0:00:00 Ko'ylak "Covgirl" 5
Hisob-faktura 00005 03/01/2002 20:58:28 Ayollar jinsisi 1
Hisob-faktura 00004 03.01.2002 20:50:40 Ayollar jinsisi 1
Hisob-faktura 00003 23.02.2002 0:00:00 Moydodir "Akvarium" 5
Hisob-faktura 00003 23.02.2002 0:00:00 "Lily" lavabosi 8
Hisob-faktura 00003 23.02.2002 0:00:00 Mikser "Ultra" 10

E'tibor bering, manbalar ro'yxatida ichki o'rnatilgan jadvalni ko'rsatishda ichki o'rnatilgan jadvalning o'zi va yuqori darajadagi jadvalning maydonlariga (ichiga kiritilgan jadvalni o'z ichiga olgan) kirish mumkin. Bunday holda, hujjatning "Bog'lanish" maydoniga kirish mumkin.

Manba ro'yxatidagi quyi so'rovlar

So'rovlar manbalari ro'yxatida pastki so'rov manba jadvali sifatida ishlatilishi mumkin. Bunday holda, manba tavsifi pastki so'rov tavsifini o'z ichiga oladi. Ichki so'rovning tavsifi oddiy so'rov bilan bir xil tarzda tuzilgan: qarang

Ichki so'rovni ma'lumot manbai sifatida ishlatish ma'lumotlar bazasi jadvalidan foydalanishdan farq qilmaydi. Quyi so'rovlarni tanlash maydonlari ro'yxatida tasvirlangan barcha maydonlar bunday manbaning maydonlari sifatida mavjud.

Natija avvalgi misoldagi kabi bo'ladi.

Hisobotlarni yaratish

So'rovlar bilan ishlash

So'rovlar bilan ishlash uchun o'rnatilgan til ob'ekti ishlatiladi So'rov . Bu sizga ma'lumotlar bazasi maydonlarida saqlangan ma'lumotlarni belgilangan qoidalarga muvofiq tuzilgan namuna ko'rinishida olish imkonini beradi.

Ma'lumotlar manbalarini so'rash

So'rov jadvallar to'plamidan dastlabki ma'lumotlarni oladi. Ushbu jadvallar haqiqiy ma'lumotlar bazasi jadvallaridagi ma'lumotlarni tahlil qilish oson shaklda ifodalaydi. Ularni ikkita katta guruhga bo'lish mumkin: haqiqiy va virtual.

Haqiqiy jadvallar, o'z navbatida, ob'ekt (mos yozuvlar) yoki ob'ekt bo'lmagan (mos yozuvlar bo'lmagan) bo'lishi mumkin:

Haqiqiy jadvallarning o'ziga xos xususiyati shundaki, ular ma'lumotlar bazasida saqlanadigan bitta haqiqiy jadvaldan ma'lumotlarni o'z ichiga oladi. Masalan, haqiqiy jadvallar "Mijozlar" katalogiga mos keladigan "Directory.Clients" jadvali yoki "Material qoldig'i" jamg'arish registriga mos keladigan "Jamlash registri. Qolgan materiallar" jadvali.

Virtual jadvallar asosan bir nechta ma'lumotlar bazasi jadvallari ma'lumotlaridan shakllantiriladi. Masalan, virtual jadval "Material qoldiqlari" jamg'arish registrining bir nechta jadvallaridan tuzilgan "Jamlash registri. Material qoldiqlari. Balanslar va aylanmalar" jadvalidir. Ba'zan virtual jadvallar bitta haqiqiy jadvaldan tuzilishi mumkin (masalan, "Prices.SliceLast" virtual jadvali "Narxlar" axborot registrlari jadvali asosida shakllantiriladi). Biroq, barcha virtual jadvallarning umumiy tomoni shundaki, ularga ushbu virtual jadvallarga qanday ma'lumotlar kiritilganligini aniqlaydigan bir qator parametrlar berilishi mumkin. Bunday parametrlar to'plami turli virtual jadvallar uchun har xil bo'lishi mumkin va manba ma'lumotlar bazasi jadvallarida saqlangan ma'lumotlar bilan belgilanadi.

Haqiqiy jadvallar ob'ekt (mos yozuvlar) va ob'ekt bo'lmagan (mos yozuvlar bo'lmagan) jadvallarga bo'linadi.

Ob'ekt (ma'lumotnoma) jadvallari mos yozuvlar ma'lumotlar turlari (kataloglar, hujjatlar, xarakteristikalar turlari bo'yicha rejalar va boshqalar) haqida ma'lumot beradi. Va ob'ekt bo'lmagan (mos yozuvlar bo'lmagan) - barcha boshqa ma'lumotlar turlari (doimiylar, registrlar va boshqalar).

Ob'ekt (mos yozuvlar) jadvallarining o'ziga xos xususiyati shundaki, ular joriy yozuvga havolani o'z ichiga olgan "Bog'lanish" maydonini o'z ichiga oladi. Bundan tashqari, bunday jadvallar uchun ob'ektning shaxsiy tasvirini olish mumkin, bu jadvallar ierarxik bo'lishi mumkin va bunday jadvallarning maydonlarida ichki o'rnatilgan jadvallar (jadval qismlari) bo'lishi mumkin.

So'rov tili

So'rovning manba jadvallaridan ma'lumotlarni tanlash algoritmi so'rov matnida maxsus tilda tasvirlangan - so'rov tili. So'rov matni bir necha qismlardan iborat:

    so'rov tavsifi,

    so'rovlarni birlashtirish

    natijalarni buyurtma qilish,

    avtomatik buyurtma berish,

    natijalar tavsifi.

So'rovning yagona majburiy qismi birinchisi - so'rovning tavsifi. Qolganlarning barchasi kerak bo'lganda mavjud.

Tavsif so'rovi ma'lumotlar manbalarini, tanlash maydonlarini, guruhlarni va boshqalarni belgilaydi.

So'rovlarni birlashtirish bir nechta so'rovlar natijalari qanday birlashtirilishini belgilaydi.

Natijalarni tashkil qilish so'rov natijalari qatorlari uchun tartib shartlarini belgilaydi.

Avtomatik buyurtma so'rov natijalari qatorlarini avtomatik tartiblashni yoqish imkonini beradi.

Natijalarning tavsifi so'rovda qaysi jamilarni hisoblash kerakligini va natijalarni qanday guruhlash kerakligini aniqlaydi.

Hisobot Hujjatlar reestri Xizmatlarni taqdim etish

Biz so'rovlar tili bilan tanishishni boshlaydigan birinchi hisobot "Xizmat ko'rsatish uchun hujjatlar reestri" hisoboti bo'ladi. Ushbu hisobotda ma'lumotlar bazasida mavjud bo'lgan "Xizmat ko'rsatish" hujjatlari ro'yxati ularning sanalari va raqamlari tartibida ko'rsatiladi.

Konfiguratorda yangi konfiguratsiya ob'ektini yaratamiz: "Xizmatlarni taqdim etish hujjatlari reestri" hisoboti. Keling, "Layout" yorlig'iga o'tamiz va chiqish formasi dizaynerini ishga tushiramiz.

So'rov uchun ma'lumot manbai sifatida biz "Xizmat ko'rsatish" hujjatlarining ob'ekt (ma'lumotnoma) jadvalini tanlaymiz. Ushbu jadvaldan biz quyidagi maydonlarni tanlaymiz:

  • "Ustoz",

    "Mijoz":

E'tibor bering, "Ombor", "Master" va "Mijoz" maydonlarini tanlaganingizda, tanlangan maydonlar ro'yxatida "Warehouse.View", "Master.View" va "Customer.View" maydonlari ham tanlanadi. Gap shundaki, umumiy holatda bu maydonlar elektron jadval hujjatining kataklarida aks ettiriladi deb taxmin qilinadi. Tegishli "Ombor", "Master" va "Mijoz" maydonlari mos yozuvlar maydonlari bo'lganligi sababli, chiqish uchun parametr qiymati sifatida mos yozuvlar qiymati o'tkazilsa, tizim ushbu maydonning tasvirini olish uchun qo'shimcha so'rovni amalga oshiradi (bu bo'ladi). hujjatda ko'rsatiladi), natijada hisobot chiqishi sekinlashadi. Shuning uchun, mos yozuvlar maydonlarini tanlashda, tizim darhol tanlangan maydonlar ro'yxatiga mos yozuvlar maydonlarining ko'rinishini kiritishni taklif qiladi, ular hujjatga chiqarish uchun ishlatilishini kutadi.

Shundan so'ng, keling, "Buyurtma" yorlig'iga o'tamiz va so'rov natijasi birinchi navbatda "Sana" maydonining qiymati bo'yicha, keyin esa "Xizmat ko'rsatish. Bog'lanish" maydoni qiymati bo'yicha tartiblanishi kerakligini ko'rsatamiz:

Keling, "Hisobot" yorlig'iga o'tamiz va "Hisobot tuzuvchisidan foydalanish" bayrog'ini tiklaymiz:

Keling, “Hisobot tuzuvchisidan foydalanish” belgisini tiklaymiz...

"OK" tugmasini bosing. Dizayner hisobot shakli va tartibini yaratadi. Keling, shakl modulini ochamiz va unda "Hujjatlarni ko'rsatish reestri" tartibini topamiz. Ushbu protsedurada bizni qiziqtirgan ma'lumotlarni olish uchun ishlatiladigan so'rov matni qanday yaratiladi:

Query.Text = "Tanlash

Xizmatlarni taqdim etish. Sana AS Sana,

Xizmatlar ko'rsatish Raqami AS raqami,

Xizmatlarni taqdim etish.Ombor,

Xizmatlarni taqdim etish. Ombor. Taqdimot,

Xizmat ko'rsatish.Magistr,

Xizmatlarni taqdim etish. Magistr. Taqdimot,

Xizmatlarni taqdim etish.Mijoz,

Xizmatlarni taqdim etish.Mijoz.Vakillik

Hujjat.Xizmatlarni taqdim etish QANDAY Xizmatlarni taqdim etish

SARALASH TURI

So'rov matni, yuqorida aytganimizdek, so'rov tavsifining bir qismi bilan boshlanadi:

I Xizmatni taqdim etish Sana AS Sana,

I Xizmatlarni taqdim etish Raqam AS Raqam,

I Xizmatlarni taqdim etish.Ombor,

I Xizmatlarni taqdim etish. Ombor. Taqdimot,

Men xizmatlar ko'rsataman.

I Xizmatlarni taqdim etish.Magistr. Taqdimot,

I Xizmatlarni taqdim etish.Mijoz,

1 Xizmatlar ko'rsatish Mijozlar Vakillik

I Hujjat Xizmatlarni taqdim etish

So'rov tavsifi kerakli kalit so'z bilan boshlanadi TANLANG. Shundan so'ng so'rov natijasiga kiritilishi kerak bo'lgan maydonlarni tavsiflovchi tanlangan maydonlar ro'yxati keladi. Bu roʻyxatda maydonlarning oʻzi ham, maydon qiymatlari asosida hisoblangan baʼzi ifodalar ham boʻlishi mumkin.

IZ kalit so'zidan keyin ma'lumotlar manbalari ko'rsatiladi - so'rovda mazmuni qayta ishlanadigan dastlabki so'rov jadvallari. Bunday holda, bu "Hujjat. Xizmat ko'rsatish" ob'ekt (ma'lumotnoma) jadvali. Kalit so'zdan keyin QANAQASIGA ko'rsatilgan taxallus ma'lumotlar manbai. Bizning holatda, bu "Xizmatlarni taqdim etish". Kelajakda ushbu ma'lumot manbasiga so'rovning asosiy qismida taxallus yordamida kirish mumkin.

Biz ushbu chaqiruvni tanlov maydonlarining tavsifida ko'ramiz:

| Xizmatlarni taqdim etish. Sana AS Sana,

| Xizmatlar ko'rsatish Raqami AS raqami,

| Xizmatlarni taqdim etish.Ombor,

| Xizmatlarni taqdim etish. Ombor. Taqdimot,

| Xizmat ko'rsatish.Magistr,

| Xizmatlarni taqdim etish. Magistr. Taqdimot,

| Xizmatlarni taqdim etish.Mijoz,

| Xizmatlarni taqdim etish.Mijoz.Vakillik

Tanlash maydonlarida taxalluslar ham bo'lishi mumkin, ular so'rov matnida keyinroq ushbu maydonga murojaat qilish uchun ishlatilishi mumkin. Bizning holatlarimizda bular "Sana" va "Raqam" taxalluslari.

Bizning misolimizdagi so'rovning tavsif qismidan so'ng natijani tartiblash qismi keladi:

|Buyurtma berish

| Sana, | Raqam";

Taklif SARALASH TURI so'rov natijasidagi qatorlarni saralash imkonini beradi. Ushbu asosiy banddan keyin tartiblash ifodasi bo'lib, u umuman maydonlar (iboralar) va chiqish tartibi ro'yxatidir. Bizning holatda, buyurtma birinchi navbatda taxallus - "Kod" orqali kiradigan tanlov maydoni, so'ngra "Raqam" maydoni orqali amalga oshiriladi. Ikkala holatda ham tartiblash tartibi o'sish bo'yicha bo'ladi, bu standart tartiblash tartibidir.

Endi so'rov natijasi elektron jadval hujjatida qanday ko'rsatilishiga e'tibor qaratamiz.

Hujjatlarni taqdim etish tartibi reestri (TabDoc) eksporti

//((CONSTRUCTOR_OUTPUT_FORM(Xizmatlarni taqdim etish hujjatlari reestri))// Ushbu parcha konstruktor tomonidan qurilgan.// Konstruktorni qayta ishlatganda,// tanishtirdi qo'lda o'zgarishlar yo'qoladi!!!

Layout = GetLayout ("Xizmat ko'rsatuvchi hujjatlar reestri"); So'rov = Yangi so'rov;

Natija = Query.Run();

HeaderArea = Layout.GetArea("Sarlavha"); Bodrum maydoni =

Layout.GetArea ("Tablefooter"); DetailRecordsArea =

TabDoc.Output(TableHeadArea); TabDoc.StartAutogruttingRows();

SelectDetails = Result.Select();

While SelectDetails.NextFunctions() tsikli

AreaDetailRecords.Parameters.Fill(SelectionDetails);

TabDoc.Output(RecordsDetailsArea,DetailsSelection.Level()); EndCycle;

/L)CONSTRUCTOR_OUTPUT_FORM EndProcedure

Hisobot formasida boshqaruv elementi mavjud TabularDocumentField"TabDoc" nomi bilan, u dizayner tomonidan yaratilgan tartib asosida ma'lumotlar bilan to'ldiriladi.

Jarayon boshida biz hisobot sxemasini olamiz, undan keyin unda mavjud bo'lgan maydonlarni tegishli o'zgaruvchilarga olamiz:

HeaderArea = Layout.GetArea("Sarlavha"); Bodrum maydoni =

Layout.GetArea("Bodrum"); TableHeaderArea =

Layout.GetArea ("Jadval sarlavhasi"); TableFooterArea =

Layout.GetArea("Tablefooter"");DetailRecordsArea =

Layout.GetArea("Tafsilotlar");

Keyin biz elektron jadval hujjatini tozalaymiz va so'rov natijalaridan olingan ma'lumotlarni o'z ichiga olmaydigan joylarni ko'rsatamiz:

TabDoc.Clear(); TabDoc.Output(AreaHeader);

TabDoc.Output(TableHeadArea); TabDoc.StartAutoGroupingRows();

Oxirgi qatorda dizayner qatorlarni avtomatik guruhlash boshlanishini qo'shdi. Ushbu misolda bizda guruhlanishi kerak bo'lgan qatorlar yo'q, lekin sukut bo'yicha dizayner har doim elektron jadval hujjatida qatorlarni guruhlashni taklif qiladi. Ushbu qo'ng'iroq hisobotni chiqarish tezligiga ta'sir qilmaydi, shuning uchun biz konstruktor matnini o'zgarishsiz qoldiramiz.

Shundan so'ng, biz so'rov natijalaridan tanlovni olamiz, biz uni tsiklda ko'rib chiqamiz:

Davrning har bir iteratsiyasida biz avval olingan joylashuv maydoni parametrlarini keyingi so'rov natijalari namunasi yozuvidan olingan qiymatlar bilan to'ldiramiz va bu maydonni elektron jadval hujjatida ko'rsatamiz.

Jarayon oxirida biz sxemaning yakuniy joylarini elektron jadval hujjatida ko'rsatamiz:

TabDoc.FinishAutoGroupingRows();

TabDoc.Output(TableFooterArea);

TabDoc.Output(AreaFooter);

Endi 1C: Enterprise-ni disk raskadrovka rejimida ishga tushiramiz va hisobotimiz natijasini ko'rib chiqamiz:

Shunday qilib, ushbu hisobot misolidan foydalanib, biz chiqish formasi dizayneridan qanday foydalanishni ko'rsatdik va ba'zi asosiy so'rovlar tili konstruktsiyalari bilan tanishdik.

"Xizmat ko'rsatish reytingi" hisobotida "Master of All Trades" MChJ qaysi xizmatlar ko'rsatilgan davrda eng katta foyda keltirganligi haqida ma'lumot mavjud. Misol tariqasida "Xizmat reytingi" hisobotidan foydalanib, biz ma'lum bir davrda ma'lumotlarni qanday tanlashni, so'rov parametrlarini qanday o'rnatishni va so'rovda bir nechta jadval ma'lumotlaridan qanday foydalanishni va manbalardan biridagi barcha ma'lumotlarni kiritishni ko'rsatamiz. so'rov natijasi.

Keling, yangi konfiguratsiya ob'ektini yarataylik "Xizmat reytingi" hisoboti. Keling, "Layouts" yorlig'iga o'tamiz va chiqish formasi konstruktorini chaqiramiz.

“Nomenklatura” ma’lumotnomasining obyekt (ma’lumotnoma) jadvalini va “Sotish.Tovar aylanmasi” jamg‘arish registrining virtual jadvalini tanlaymiz. So'rovdagi nomlarning noaniqligini bartaraf etish uchun biz "Nomenklatura" jadvalini "SprNomenklatura" ga o'zgartiramiz (kontekst menyusini o'ng tugmasini bosing).

Keyin kursorni "SalesTurnover" jadvaliga qo'ying va virtual jadval parametrlarini kiritish uchun dialog oynasini chaqiring:

Virtual jadval parametrlarini kiritish uchun dialog oynasini oching

Davrning boshi va oxiri tegishli "StartDate" va "EndDate" parametrlarida o'tishini ko'rsatamiz (nom oldidagi "&" belgisi bu so'rov parametri ekanligini bildiradi):

Keyin jadvallardan “SprNomenclature.Link” va “SalesTurnover.RevenueTurnover” maydonlarini tanlang:

SprNomenklatura. Taqdimot

Sotish aylanmasi daromadi

Keling, "Bog'lanishlar" yorlig'iga o'tamiz va dizayner ikkita tanlangan jadval o'rtasida allaqachon aloqa yaratganligini ko'ramiz - "Nomenklatura" registrini o'zgartirish qiymati "Nomenklatura" katalog elementiga havolaga teng bo'lishi kerak.

Biz qilishimiz kerak bo'lgan yagona narsa - registrlar jadvali uchun "Hammasi" bayrog'ini tiklash va uni katalog jadvaliga o'rnatish.

Biz "Nomenklatura" katalogidan barcha elementlarni tanlaymiz

Katalog jadvalida "Hammasi" bayrog'ini o'rnatish barcha elementlar katalogdan tanlanishini va bu elementlarga registrdan daromad aylanma qiymatini belgilashni anglatadi. Shunday qilib, so'rov natijasida barcha xizmatlar mavjud bo'ladi va ularning ba'zilari uchun daromad aylanmasi ko'rsatiladi. Tanlangan davrda taqdim etilmagan xizmatlar uchun hech narsa ko'rsatilmaydi.

Keling, "Shartlar" yorlig'iga o'tamiz va "Nomenklatura" katalogidan elementlarni tanlash shartlarini o'rnatamiz. Tanlash shartlarini o'rnatishda biz yana so'rov parametrlaridan foydalanamiz. Birinchi shart tanlangan elementning guruh emasligi bo'lishi kerak (buni amalga oshirish uchun "Maxsus holat" rejimiga o'ting).

Ikkinchi shart tanlangan element xizmat bo'lishi kerak (bu "Oddiy shart"):

Kelajakda, so'rovni bajarishdan oldin, biz tegishli ro'yxatga olish qiymatini "Nomenklatura turi" parametriga o'tkazamiz.

Keling, "Assotsiatsiyalar/taxalluslar" yorlig'iga o'tamiz va katalog elementi ko'rinishida "Xizmat" taxallusli bo'lishini va ro'yxatga olish maydonida "Daromad" taxallusi bo'lishini belgilaymiz:

Keling, "Buyurtma" yorlig'iga o'tamiz va so'rov natijasini "Daromad" maydoni qiymatining kamayishiga qarab tartiblash kerakligini ko'rsatamiz.

"Jami" yorlig'ida biz umumiy summalarni ko'rsatishimiz kerakligini aniqlaymiz va ular "Daromad" maydonidagi qiymatlar yig'indisi bo'lishi kerak:

"Hisobot" yorlig'ida "Hisobot tuzuvchisidan foydalanish" belgisini olib tashlang.

Endi "Chiqish shakli" yorlig'iga o'tamiz. "Yakunlash sanasi" va "Boshlanish sanasi" parametrlari "Sana" turidagi kirish maydonlarida shaklda tahrir qilinishini ko'rsatamiz. "Nomenklatura turi" parametri uchun, aksincha, biz quyidagi shaklda tahrirlash belgisini olib tashlaymiz:

"OK" tugmasini bosing. Platforma maket va hisobot shaklini yaratadi Shakl modulini oching va undagi “Xizmat reytingi” protsedurasini toping.

Ushbu protsedurada so'rov parametrlari o'rnatiladigan qismida biz "Nomenklatura turi" parametrining qiymatini aniqlaymiz (tuzatishlar qalin harf bilan ta'kidlangan):

| CHAP BOG'LANISH Ro'yxatdan o'tish.To'plash.Sotish,Tovar aylanmasi(&Boshlanish sanasi,

| &Tugash muddati,)

| QANDAY SOTISH

|BUYuRDIRIB | Daromad PASADI

|NATIJALAR MUQIMATI (Daromad) BY | UMUTLAR";

RequestSetParameterC"Nomenklatura turi",

Transferlar.Nomenklatura turlari.Xizmat);

Query.SetParameter("StartDate",StartDate); Request.SetParameterC"EndDate", EndDate);

Endi konstruktor tomonidan yaratilgan so'rov matnini ko'rib chiqamiz:

| SprNomenclature.Representation AS Vakillik,

|SotishTurnover.RevenueTurnover AS Daromad

| Katalog.Nomenklatura AS RefNomenklatura

CHAP BOG'LANISh Jamg'armalar.Sotish.Tovar aylanmasini ro'yxatga olish(&Boshlanish sanasi,

| QANDAY SOTISH

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

| (RefNomenclature.ThisGroup = False) VA

| SprNomenklatura.Nomenklatura turi = &Nomenklatura turi

|Buyurtma berish

| Daromad PASADI

|NATIJALAR MUQIMATI (Daromad) BY

Birinchidan, odatdagidek, so'rov tavsifi qismi keladi va unda biz uchun yangi bo'lgan konstruktsiyalar mavjud.

So'rov manbalarini tavsiflashda (IZ kalit so'zidan keyin) bir nechta so'rov manbalarini aniqlash imkoniyati ishlatilgan:

| Katalog.Nomenklatura AS RefNomenklatura

|&Yakunlangan sana,)

| QANDAY SOTISH

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

Bunday holda, yozuvlar ikkita manbadan tanlanadi: "SprNomenklatura" va "SalesTurnover", asosiy jumla bilan. CHap ULANISH... BY bu ikki manbadan olingan yozuvlarni birlashtirish usulini tavsiflaydi.

CHap ULANISH so'rov natijasi dasturiy ta'minot kalit so'zidan keyin ko'rsatilgan shartga mos keladigan ikkala manbadan olingan yozuvlar kombinatsiyasini o'z ichiga olishi kerakligini anglatadi. Bundan tashqari, so'rov natijasi birinchisidan (so'zning chap tomonida ko'rsatilgan) yozuvlarni ham o'z ichiga olishi kerak MURAJAT) ikkinchi manbadan shartga mos yozuvlar topilmagan manba.

Birinchi manba va ulanish sharti tavsifida biz uchun yangilik yo'q, lekin ikkinchi manbani tavsiflashda biz virtual so'rovlar jadvalining parametrlarini o'rnatish imkoniyatidan foydalanamiz:

| Jamg'armalarni ro'yxatdan o'tkazing.Sotish.aylanma(&Boshlanish sanasi, &tugash sanasi,)

Birinchi parametr - jami summalarni hisoblash davrining boshlanishi, ikkinchisi - davrning oxiri. Natijada, manba jadvali faqat o'tkazilgan davrda hisoblangan aylanmani o'z ichiga oladi. Bu erda siz har doim shuni yodda tutishingiz kerakki, agar biz sanani ushbu parametrlar sifatida o'tkazsak (va bizning holatlarimizda bu shunday bo'ladi), unda sana ham soniyaga to'g'ri keladigan vaqtni o'z ichiga oladi.

Agar foydalanuvchini soniyalar aniqligi bilan ko'rsatilgan muddatlarda hisobot natijalari qiziqtirmasligi oldindan ma'lum bo'lsa, unda quyidagi xususiyatni hisobga olish kerak: sukut bo'yicha, sanadagi vaqt 00 ga o'rnatiladi. :00:00. Shuning uchun, agar siz maxsus choralar ko'rmasangiz, foydalanuvchi hisobot davrini 03.01.2004 dan 31.03.2004 gacha belgilaganida, ro'yxatga olish summalari 03.01.2004 kunning boshidan boshlab hisoblanadi. 2004 yil 00:00:00 dan kun boshiga 31/03/2004 00:00:00 gacha. Shunday qilib, kunning boshidan tashqari 31-kun uchun ma'lumotlar hisob-kitobga kiritilmaydi, bu foydalanuvchini juda hayratda qoldiradi.

Ushbu vaziyatni bartaraf etish uchun ikkita narsani qilish kerak.

Birinchidan, hisobot shaklida, tegishli kiritish maydonlari uchun sana tarkibini “Sana” qilib belgilash orqali foydalanuvchining boshlanish sanasi va tugash sanasini kiritish imkoniyatini cheklang:

Keling, sana tarkibini aniqlaymiz ...

Ikkinchidan, parametrlarni o'tkazishda o'rnatilgan funksiyadan foydalaning Kunning oxiri (). Buni amalga oshirish uchun hisobot shakli moduliga qayting va kerakli o'zgarishlarni kiriting (qo'shimchalar qalin harf bilan ajratilgan):

ProcedureFormActionsRatingServicesGenerate(Button) //((CONSTRUCTOR_WEEKEND_FORM_PROCEDURE_CALL(RatingServices)) //Ushbu fragment konstruktor tomonidan tuzilgan. // Konstruktordan qayta foydalanishda // qo‘lda kiritilgan o‘zgartirishlar yo‘qoladi!!!

TabDoc = FormElements.TableField;

//))QONSTRUKTOR_CHISH_FORM_QO'NG'IROQ_PROSEDURI

Co. netProcedures

Keling, so'rov matnini ko'rib chiqishni davom ettiramiz. So'rov tavsifining bir qismi sifatida biz uchun yangi bo'lgan yana bir konstruktsiya mavjud - manba jadvallaridan ma'lumotlarni tanlash shartlarini o'rnatish:

| SprNomenclature.Representation AS Vakillik,

| SotishTurnover.RevenueTurnover AS Daromad

| Katalog.Nomenklatura AS RefNomenklatura

| CHAP BOG'LANISh Jamg'armalar.Sotish.Tovar aylanmasini ro'yxatga olish(&Boshlanish sanasi,

| &Tugash muddati,

| QANDAY SOTISH

| Dasturiy ta'minotni sotishTurnover.Nomenklatura = SprNomenclature.Ssshka

| SprNomenklatura.ThisGroup = False VA

| SprNomenklatura.Nomenklatura turi = &Nomenklatura turi

Tanlash shartidan oldin har doim kalit so'z bo'ladi QAYERDA. Undan keyin holatning o'zi tasvirlanadi. E'tibor bering, shart qo'llaniladigan manba jadvallarining maydonlari tanlov ro'yxatiga kiritilmasligi mumkin (bizning holatimizda bo'lgani kabi). Bundan tashqari, bizning shartimiz "Nomenklatura turi" so'rov parametridan foydalanadi.

NATIJALAR AMOUNT (Daromad) PO

U har doim kalit so'z bilan boshlanadi NATIJALAR, so'rov natijalarida qanday jamilar bo'lishi tavsifi. So'zdan keyin darhol NATIJALAR natijalarda hisoblanishi kerak bo'lgan agregat funktsiyalarni tavsiflaydi. Bizning holatda, "Daromad" maydonidagi miqdor hisoblab chiqiladi. Undan keyin PO kalit so'zi keladi, shundan so'ng jamilar hisoblanishi kerak bo'lgan guruhlar tavsiflanadi. Bizning holatlarimizda ular yo'q va faqat kalit so'z ishlatiladi KO'PROQ, bu jamilar butun jadval uchun bir butun sifatida hisoblanishini ko'rsatadi.

So'rov matni bilan tanishishni tugatganimizdan so'ng, keling, 1C: Enterprise dasturini disk raskadrovka rejimida ishga tushiramiz va hisobotimiz qanday ishlashini ko'rib chiqamiz.

Hisobot davrini 03.01.2004 dan 30.04.2004 gacha belgilaymiz. Natija quyidagicha ko'rinadi:

Endi tugash sanasini 31.03.2004 ga o'zgartiramiz va 31 mart ma'lumotlari hisobotga kiritilganligiga ishonch hosil qilamiz: