ACS nafaqat hisobotlar uchun - universal tanlovlarni amalga oshirish uchun. SKD da tanlovlardan foydalanish SKD tanlovdagi qiymatni uzatish

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 ReferenceNomenclature.Link AS Nomenklatura, SotishTurnover.Counterparty, SalesTurnover.Qarshi taraf shartnomasi, Savdo aylanmasi.Miqdori.Miqdori AS.Oborot.Miqdori, SotishOboroti.Xarajat aylanmasi. SalesTurnover PO SprNomenclature.Link = SalesTurnover. 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:

SELECT SprNomenclature.Link AS Nomenklatura, SotishTurnover.Counterparty AS Kontragent, SotishTurnover.Miqdori Tovar aylanmasi AS >Miqdor, SotishTurnover.Cost. AS ContractCounterparty aPresentation, PRESENTATIONLINK(SotishTurnover.Counterparty) ) AS CounterpartyPresentation, SprNomenclature.Presentation AS Nomenclature Presentation FROM Directory.Nomenklatura AS AS SprNomenklatura CHAP BOG'LANISh Registr jamg'armalari.Sotish.aylanma(&P , , , Counterparty = &P3 ) Sal.Nomenklaturasi ) ASYYYo'q. qiyofa

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

SKD nima uchun ishlatilishi mumkin?

O'rnatilgan fikr hisobot berish uchun mo'ljallangan.

Aslida ACS imkoniyatlari universal hisobotlarni yaratishdan tashqariga chiqadi.

Va bugun biz buni qanday qilib ko'rsatamiz kirishni boshqarish tizimidan foydalanib, foydalanuvchi moslashuvchan ma'lumotlarni tanlashni sozlash imkoniyatiga ega bo'ladi. Bundan tashqari, ushbu tanlov ma'lumotlarni olish va qayta ishlashda qo'llaniladi.

Bu qanday vazifalar uchun foydali bo'ladi?

beraylik tipik konfiguratsiyalardan misollar:

  • "Saytga ma'lumotlarni yuklash" qayta ishlanmoqda
  • Narxlar ro'yxatini shakllantirish
  • Ma'lumotlarni TSD ga yuklash (ma'lumotlarni yig'ish terminali)
  • Mahsulotlarni segmentatsiyalash, hamkorlar
  • Ehtiyojlarga muvofiq buyurtmalarni (mijozlar, etkazib beruvchilar) shakllantirish
  • 1C:ERP da ta'mirlashni rejalashtirish.

Ya'ni, asbob foydalanuvchiga keng tanlov imkoniyatlarini taqdim etish zarur bo'lgan joyda foydalidir.

ACS yordamida boshqariladigan shaklda tasodifiy tanlashni yaratish

Dars bilan ishlashni o'z ichiga oladi sozlamalar yaratuvchisi ma'lumotlarni joylashtirish sxemalari:

  • Shaklda tanlov natijasi
  • Sozlamalar yaratuvchisi va tartib diagrammasi o'rtasidagi dasturiy ta'minot aloqasi
  • Kirishni boshqarish tizimida standart tanlovlarni yaratish.

ACS tanlash bo'yicha filtrlash bilan ma'lumotlar bazasidan ma'lumotlarni qabul qilish

Videoda sozlamalar yaratuvchisida avval o'rnatilgan tanlov yordamida ma'lumotlarni qanday tanlash mumkinligi ko'rsatilgan.

"Qo'rqinchli" ob'ekt ishlatiladi - ProcessorOutputResultCompositionDataIntoValueCollection.

Aslida, hamma narsa unchalik murakkab emas - 8 daqiqada biz muammoni hal qilamiz.

SKD tanlovlarini axborot bazasida saqlash

Darsda biz ko'rib chiqamiz ACS quruvchi sozlamalarini saqlash qiymat do'konidan foydalanish.

Keling, ushbu muammoni "1C: Manufacturing Enterprise Management 1.3" konfiguratsiyasida qanday hal qilishni aniqlaylik.

Tomosha qilishdan zavqlaning! :)

Umuman olganda, ACS juda ko'p imkoniyatlarni taqdim etadi.

Mana, kurs sahifasida tasvirlashga vaqtimiz bo'lmagan bir nechta "hiylalar".

Agar yig'ish kerak bo'lsa turli manbalardan olingan ma'lumotlar, uchta variant mavjud.

Siz barcha ma'lumotlar uchun bitta "universal" so'rovni tuzishga urinib ko'rishingiz mumkin (uzun), siz bir nechta so'rovlar ma'lumotlarini tsiklda ko'rsatishingiz mumkin (qattiq, moslashuvchan tuzilma) - yoki oddiygina foydalanishingiz mumkin ACS va ma'lumotlar to'plamlarini ulash bitta so'rov o'rniga.

Shu bilan birga, to'g'ri natijalarga erishish juda muhim - bu bir nechta manbalar mavjud bo'lsa, o'ziga xos xususiyatlarga ega

SKD yordamida siz oddiygina qilishingiz mumkin hisobotdagi har bir sana uchun eng soʻnggisining suratini oling.

Yoki aniqlik uchun - har bir savdo sanasi uchun mahsulot narxini oling.

ACS yordamida siz tashkil qilishingiz mumkin hisobotda davr uchun barcha sanalarni ko'rsatish, va nafaqat hisobotda ma'lumotlar mavjud bo'lganlar (dasturlashsiz sanalarni qo'shish, faqat kirishni boshqarish tizimining imkoniyatlari bilan)

ACS-dan foydalanib, siz davrlarni (yil/chorak/oy va h.k.) qo'shgan holda ichki guruhlarni tashkil qilishingiz mumkin.

Hisobotni kerakli tarzda tartibga soling, masalan, ustun sarlavhasini vertikal va ushbu ustundagi ma'lumotlarni gorizontal ravishda ko'rsating.

Foydalanuvchiga hisobotda ma'lumotlarning ko'rsatilishi chastotasini tanlashga ruxsat bering (yil, chorak, oy bo'yicha) - faqat sozlamalar bo'yicha, hisobot modulini tahrir qilmasdan.

Hisobotda OR yordamida bir nechta shartlarni qanday birlashtirish mumkin? Ushbu parametr, masalan, hisobot tuzuvchisida mavjud emas, lekin ACS da mavjud

Agar siz umumiy ma'lumotlarni diagramma shaklida ko'rsatsangiz, siz uning ko'rinishini aniq nazorat qilishingiz kerak: seriya uchun markerlarning ko'rinishi, diagramma seriyasining o'zgaruvchan ranglari, oldingi ma'lumotlarni vertikal chiziq bilan diagrammadagi kelajakdagi ma'lumotlardan ajratish. , va boshqalar.

Albatta, e'tibor berish kerak bo'lgan nuanslar mavjud.

Hisobotni yaratishda ishlab chiquvchi so'rov matnini tuzatdi, ammo ushbu so'rovni kirishni boshqarish tizimidagi hisobotda ishlatganda, tizim noto'g'ri natija beradi.

Shuning uchun, ma'lumotlar bazasidan ma'lumotlarni olish uchun tizim haqiqatda bajaradigan so'rovni olish va bunday so'rovni disk raskadrovka qilish muhimdir.

Hisobotga hujjat yozuvchisiga ma'lumotlarni qo'shganda, tizim ba'zida "noto'g'ri" ochilish va yopilish balanslarini ishlab chiqaradi.

Shu sababli, kirishni boshqarish tizimi bo'yicha hisobotdagi maydonlarni to'g'ri sozlash juda muhim, shunda balanslar hujjatga batafsil va tafsilotlarsiz to'g'ri ko'rsatiladi.

Hisobot natijasi resurs qiymati bo'yicha tanlov qayerda sozlanganligiga qarab o'zgarishi mumkin - hisobot darajasida va alohida guruh darajasida siz buni kuzatishingiz kerak.

Agar Siz hohlasangiz ACSni professional darajada egallash va har kuni ishingizda qo'llang, kursga yoziling:

Qo'llab-quvvatlash - 2 oy. Kurs doirasi - 34 dars soati.

O'qishni kechiktirmang!

Qayta ishlashni yozish uchun dasturchilar ko'pincha ma'lumotlarni olish va keyin ularni qayta ishlash uchun so'rovlardan foydalanishlari kerak edi. Ma'lumotlar, o'z navbatida, so'rovdan olingan. Tanlovsiz yoki filtrsiz so'rov kamdan-kam uchraydi. Keling, misol so'rovidan foydalanib, bunday so'rovlardagi tanlovlar haqida gapiraylik:

Kontragent tomonidan foydalanuvchi uchun odatiy shaklda tanlovni tashkil qilish uchun dasturchi shaklga uchta elementni joylashtirishi kerak edi, ular quyidagicha ko'rinadi:

Taqqoslashning har xil turlarini (teng, teng emas, ro'yxatda, guruhda...) tavsiflash va bu taqqoslash turlariga asoslanib, ma'lumotlarni olish uchun oxirgi so'rovini aniqlashtirish uchun dasturchi qancha kuch sarflaydi.

Keling, buni ACS yordamida qanday amalga oshirish mumkinligini ko'rib chiqaylik. Qayta ishlash jarayonida keling, ma'lumotlar tarkibi sxemasi turi bilan maket yarataylik va uni so'rovimiz bilan to'ldiramiz:

Sozlamalar ko'rinishida biz batafsil ma'lumotsiz yangi guruhni va bizning misolimizda Hisob maydonini qo'shamiz, chunki oxirida biz hamma narsani qiymatlar jadvaliga olamiz:

Tanlov yorlig'ida kontragentni tanlovga qo'shing:

Endi forma yaratishni boshlaylik. Keling, qayta ishlash shaklida foydalanuvchi ishlaydigan tanlovni ko'rsatamiz. Shaklda Jadval maydoni tipidagi elementni ko'rsatamiz va unga Composer.Settings.Selection ma'lumotlar turi bilan Selection nomini beramiz:

Endi keling, OnOpen formasi uchun hodisa ishlov beruvchilarini va Run tugmasini bosish uchun ishlov beruvchini yaratamiz, kod quyida keltirilgan:

Perem tartibi; Protsedura ButtonExecutePress(Button) Result.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Chiqish protsessori = Qiymatlar to'plamiga ma'lumotlarni tuzish natijasining yangi chiqish protsessori; OutputProcessor.SetObject(Natija); OutputProcessor.Output(CompositionProcessor); Agar FormElements.Result.Columns.Quantity() = 0 bo'lsa, FormElements.Result.CreateColumns(); endIf; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = Yangi SourceAvailableSettingsDataComposition(Layout); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); Jarayonning oxiri

Qayta ishlash tayyor, uni ishga tushirgandan so'ng, siz darhol bizning Tanlovimizda paydo bo'lgan kontragentni ko'rishingiz mumkin, undan siz har qanday taqqoslash turini tanlashingiz, shuningdek, kontragentlar katalogining tafsilotlaridan foydalangan holda qo'shimcha tanlov qatorlarini qo'shishingiz mumkin:

Hammasi shu, umid qilamanki, ushbu maqola sizning qayta ishlashingizdagi tanlovlarning moslashuvchanligini yaxshilashga yordam beradi.

Kononov Sergey