ACS seçim proqramının quraşdırılması. ACS yalnız hesabatlar üçün deyil - universal seçimlərin həyata keçirilməsi

20.11.2023

Məlumat kompozisiya sistemi üçün sorğu dili genişləndirilməsi

Məlumat kompozisiya sistemi üçün sorğu dilinin genişləndirilməsi əyri mötərizələrə daxil edilmiş və birbaşa sorğu mətnində yerləşdirilən xüsusi sintaktik göstərişlərdən istifadə etməklə həyata keçirilir.

Məlumat kompozisiya sisteminin sorğu dilinin genişləndirilməsinin sintaktik elementləri

SEÇİN

Bu cümlə istifadəçinin çıxış üçün seçə biləcəyi sahələri təsvir edir. Bundan sonra açar söz Vergüllə ayrılaraq, konfiqurasiya üçün əlçatan olacaq əsas sorğu seçim siyahısındakı sahələrin ləqəbləri sadalanır.

Məsələn:

(Seçmə elementi, anbar)

Sahənin ləqəbindən sonra “.*” simvollarının kombinasiyası ola bilər ki, bu da bu sahədən uşaq sahələrin istifadə edilməsinin mümkünlüyünü göstərir.

Məsələn, Nomenklatura.* girişi “Nomenklatura” sahəsinin uşaq sahələrindən istifadə imkanını göstərir (məsələn, “Nomenklatura.Kod” sahəsi). SELECT elementi yalnız ilk qoşulma sorğusunda görünə bilər.

HARADA

İstifadəçinin seçim tətbiq edə biləcəyi sahələr təsvir edilmişdir. Bu təklif cədvəl sahələrindən istifadə edir. Seçim siyahısı sahəsində ləqəblərin istifadəsinə icazə verilmir. Birliyin hər bir hissəsi öz WHERE elementini ehtiva edə bilər.

(HARADA Nomenklatura.*, Anbar)

Sadə bir misal

Dövr üçün satış əldə etmək lazımdır + satış olub-olmamasından asılı olmayaraq bütün elementi göstərmək lazımdır. Yəni, Satış reyestrinin dövriyyə cədvəlindən məlumatları, nomenklatura kataloqundan məlumatları seçmək lazımdır. Bütün nomenklatura nə üçün lazım olduğu sualını atlayaq.

Problemi həll etmək üçün, nəticədə, seçilmiş dövrdə satılmayan element üçün məhsulu və Satış dövriyyəsi cədvəlini birləşdirən sorğu yarada bilərsiniz; Qarşı tərəf, Razılaşma, Kəmiyyət, məbləğ= Null. Bu sorğu:

SEÇİN ReferenceNomenklatura.Link AS Nomenklatura, SalesTurnover.Counterparty, SalesTurnover.Qarşı tərəf Müqaviləsi, Satış Dövriyyəsi.Kəmiyyət Dövriyyə Kəmiyyət, SatışDövriyyəsi.Xərc Dövriyyəsi AS. AS SalesTurnover Software SprNomenclature.Link = SalesTurnover. Nomenklatura

Nəticə budur:

Qarşı tərəf Razılaşma Nomenklatura Kəmiyyət məbləğ
null null _Test1 null null
"Buynuzlar və Dırnaqlar" MMC Müqavilə 1 Başmaq 10 1200
ASC "Qazprom" Sərin müqavilə Çəkmələr 5 13000
null null Qaloşlar null null
null null Şiferlər null null

IN bu misalda"Qaloşlar" və "Tepliklər"in satışı olmayıb

Və hər şey yaxşı olardı, əgər nümunəni qarşı tərəfə görə qruplaşdırsaq, onda bütün satılmamış əşyalar ayrı bir qrupa düşəcək, burada Qarşı tərəf = Null, lakin müştəri hesabatda qarşı tərəf sahəsinə görə təsadüfi seçim etmək istəyir (təbii ki, bu Satış reyestrindən əks tərəf deməkdir). Mən nə etməliyəm? Axı, əslində, yalnız cədvəli süzgəcdən keçirməliyik Satış. ACS konstruktorunda avtomatik tamamlamadan istifadə etsək, o zaman mövcud seçim sahələrinə sahə daxil olacaq Qarşı tərəf, hər şey qaydasında görünür, lakin qarşı tərəfin seçimi ilə hesabatı icra edərkən, biz elementlə əlaqədən bütün qeydləri itirəcəyik. Məsələn, seçimi təyin edək: Qarşı tərəf = MMC "Buynuzlar və Dırnaqlar". Nəticə belə görünəcək:

Heç bizə lazım olan şey deyil, elə deyilmi?

Problemi həll etmək üçün, əlbəttə ki, sorğuya, məsələn, virtual cədvəlin parametrlərinə bir parametr əlavə edə bilərsiniz. Satış dövriyyəsi, lakin eyni zamanda müqayisə növünün təyin edilməsi çevikliyi itir.

Bir həll var: bunun üçün sorğu qurucusu nişanda Məlumat tərkibi => Cədvəllər virtual cədvəl şərtlərinə şərt sahəsi əlavə edin Satış dövriyyəsi və ləqəbini dəyişdirin Qarşı tərəfin seçimi

İstifadəçini seçim sahələri ilə qarışdırmamaq üçün biz şərt sahəsini deaktiv edəcəyik Qarşı tərəf və sahənin başlığını dəyişdirin Qarşı tərəfin seçimi


Qarşı tərəf sahəsində aktivləşdirilmiş seçimlə bu sxemin icrası nəticəsində əldə edilən sorğu aşağıdakı formanı alacaq:

Referans Nomenklaturasını SEÇİN.Link AS Nomenklatura, SatışTurnover.Counterparty AS, SalesTurnover.Counterparty Agreement AS Qarşı Tərəf Müqaviləsi, SalesTurnover.QuantityTurnover AS >Quantity, SalesTurnover.CostTurnoverTurnover. Müqavilə Nəzarətçisi agenti AS Giriş, NÜMAYƏNDƏLİK LINK(SatışTurnover. Qarşı tərəf) AS CounterpartyGiriş, SprNomenklatura.Təqdimat AS Nomenklatura Kataloqdan Təqdimat.Nomenklatura AS SprNomenklatura SOL BAĞLANTI QEYDİYYAT Yığımlar.Satış.Tirnover(&P , , , Counterparty =AS &P3LTr.Sal.Nomenklatura) nomenklatura

Və buna uyğun olaraq nəticə:

Qarşı tərəf Razılaşma Nomenklatura Kəmiyyət məbləğ
null null _Test1 null null
"Buynuzlar və Dırnaqlar" MMC Müqavilə 1 Başmaq 10 1200
null null Çəkmələr null null
null null Qaloşlar null null
null null Şiferlər null null

Test1 Nomenklatura kataloqunda hər şeyin yerləşdiyi qrupdur

Nəşrdə istifadə olunan hesabatın XML sxemi nəşrə əlavə olunur. Mən dövrəni İnteqrasiya edilmiş Avtomatlaşdırmada yaratdım, lakin məncə hər şey həm UPP, həm də UT 10-da yaxşı işləyəcək

Xülasə

Bu nümunə ACS-də öz seçim parametrlərinizi necə yaratmağınızı və bayraq aktivləşdirilmiş dövrə dizayn edirsinizsə, avtomatik yaradılmış parametrləri necə söndürəcəyinizi göstərir. Avtomatik tamamlama.

İstifadə etmədən sxemlər yaratmaq üçün kifayət qədər təcrübəniz varsa Avtomatik doldurma- onda bu məsləhətin mənası yoxdur.

İstifadə olunan proqram təminatı

  • Ekran görüntüsü proqramı SnimOK!
  • XML fayl redaktoru

SKD nə üçün istifadə edilə bilər?

Müəyyən edilmiş rəy hesabat məqsədi daşıyır.

Əslində ACS imkanları universal hesabatlar yaratmaqdan kənara çıxır.

Və bu gün necə göstərəcəyik girişə nəzarət sistemindən istifadə edərək istifadəçi çevik məlumat seçimini konfiqurasiya edə biləcək. Bundan əlavə, bu seçim məlumatların əldə edilməsi və işlənməsi zamanı istifadə olunacaq.

Bu hansı vəzifələr üçün faydalı olacaq?

verək tipik konfiqurasiyalardan nümunələr:

  • “Məlumatların sayta yüklənməsi” işlənir
  • Qiymət siyahısının formalaşdırılması
  • Məlumatların TSD-yə yüklənməsi (məlumat toplama terminalı)
  • Məhsulların, tərəfdaşların seqmentasiyası
  • Ehtiyaclara uyğun sifarişlərin (müştərilər, təchizatçılar) formalaşdırılması
  • 1C:ERP-də təmirin planlaşdırılması.

Yəni, istifadəçiyə geniş seçim variantları təqdim etmək lazım olan yerdə alət faydalıdır.

ACS istifadə edərək idarə olunan formada təsadüfi seçim yaratmaq

Dərs ilə işləməyi əhatə edir parametrlər qurucusu məlumatların yerləşdirilməsi sxemləri:

  • Forma seçimi çıxışı
  • Parametrlər qurucusu və layout diaqramı arasında proqram əlaqəsi
  • Girişə nəzarət sistemində standart seçimlərin yaradılması.

ACS seçimi ilə filtrasiya ilə verilənlər bazasından məlumatların qəbulu

Video parametrlər qurucusunda əvvəlcədən təyin edilmiş seçimdən istifadə edərək məlumatları necə seçə biləcəyinizi göstərir.

"Qorxulu" bir obyekt istifadə olunur - ProcessorOutputResultCompositionDataIntoValueCollection.

Əslində, hər şey o qədər də mürəkkəb deyil - 8 dəqiqə ərzində problemi həll edirik.

SKD seçimlərinin məlumat bazasında saxlanması

Dərsdə baxacağıq ACS qurucu parametrlərinin saxlanması Dəyər Mağazasından istifadə etməklə.

"1C: İstehsalat Müəssisəsinin İdarə Edilməsi 1.3" konfiqurasiyasında bu problemi necə həll edəcəyimizi anlayaq.

Baxmaqdan həzz alın! :)

Ümumiyyətlə, ACS çoxlu imkanlar təqdim edir.

Budur, kurs səhifəsində təsvir etməyə vaxtımız belə olmayan bir neçə "hiylə".

Əgər toplamaq lazımdırsa müxtəlif mənbələrdən alınan məlumatlar, üç variant var.

Siz bütün məlumatlar üçün bir “universal” sorğu tərtib etməyə cəhd edə bilərsiniz (uzun), bir neçə sorğunun məlumatlarını bir dövrədə göstərə bilərsiniz (sərt, çevik struktur) - və ya sadəcə istifadə edə bilərsiniz ACS və məlumat dəstlərinin əlaqəsi bir istək əvəzinə.

Eyni zamanda, düzgün nəticələr əldə etmək vacibdir - bir neçə mənbə varsa, bunun öz xüsusiyyətləri var

SKD-nin köməyi ilə siz sadəcə edə bilərsiniz hesabatda hər bir tarix üçün ən son snapshot əldə edin.

Və ya aydınlıq üçün, - hər satış tarixi üçün məhsulun qiymətini əldə edin.

SKD-nin köməyi ilə siz təşkil edə bilərsiniz hesabatda dövr üçün bütün tarixləri göstərir, və yalnız hesabatda məlumat olanlar deyil (proqramlaşdırmadan tarixlər əlavə etmək, yalnız girişə nəzarət sisteminin imkanları ilə)

ACS-dən istifadə edərək, dövrlərin (il/rüb/ay və s.) əlavə edilməsi ilə iç-içə qruplaşmalar təşkil edə bilərsiniz.

Hesabatı istədiyiniz kimi təşkil edin, məsələn, sütun başlığını şaquli, bu sütundakı məlumatları isə üfüqi olaraq göstərin.

İstifadəçiyə hesabat modulunu redaktə etmədən məlumatların hesabatda göstərilmə tezliyini (il, rüb, aya görə) seçməsinə icazə verin - yalnız parametrlərə görə.

Hesabatda OR istifadə edərək bir neçə şərti necə birləşdirmək olar? Bu seçim, məsələn, hesabat tərtibatçısında mövcud deyil, lakin ACS-də mövcuddur

Xülasə məlumatları diaqram şəklində göstərirsinizsə, onun görünüşünə dəqiq nəzarət edə bilməlisiniz: seriya üçün markerlərin görünməsi, diaqram seriyalarının rənglərinin dəyişməsi, onları diaqramda ayırması şaquli xətt gələcək məlumatlardan keçmiş məlumatlar və s.

Təbii ki, diqqət yetirilməli olan nüanslar var.

Hesabatı yaradan zaman tərtibatçı sorğu mətnini düzəltdi, lakin hesabatda bu sorğudan istifadə edərkən, ACS sistemi yanlış nəticələr verir.

Buna görə də, verilənlər bazasından məlumat əldə etmək üçün sistemin həqiqətən yerinə yetirdiyi sorğunu əldə edə bilmək və belə bir sorğuda debug etmək vacibdir.

Hesabata sənəd-qeydiyyatçıya təfərrüatlar əlavə edərkən sistem bəzən “yanlış” açılış və yekun balansları yaradır.

Buna görə, girişə nəzarət sistemindəki hesabatdakı sahələri düzgün şəkildə konfiqurasiya etmək vacibdir ki, balanslar həm sənədin təfərrüatı ilə, həm də onsuz düzgün göstərilsin.

Hesabat nəticəsi resurs dəyərinə görə seçimin harada konfiqurasiya edildiyindən asılı olaraq dəyişə bilər - hesabat səviyyəsində və fərdi qrup səviyyəsində buna nəzarət etməlisiniz.

İstəsən ACS-ni peşəkar şəkildə mənimsəmək və gündəlik işinizdə tətbiq edin, kursa yazılmaq üçün:

Dəstək - 2 ay. Kursun əhatə dairəsi - 34 dərs saatı.

Təhsilinizi təxirə salmayın!

Emal yazmaq üçün proqramçılar tez-tez məlumatları əldə etmək və sonra onu emal etmək üçün sorğulardan istifadə etməli olurdular. Məlumatlar da öz növbəsində sorğudan əldə edilib. Yaxşı, seçimsiz və ya filtrsiz sorğu nadirdir. Nümunə sorğusundan istifadə edərək, belə sorğulardakı seçimlərdən danışaq:

İstifadəçi üçün qarşı tərəf tərəfindən seçimi təşkil etmək üçün müntəzəm forma, proqramçı formada bu kimi görünən üç element yerləşdirməli idi:

Bir proqramçı təsvir etmək üçün nə qədər iş lazımdır? müxtəlif növlər müqayisələr (bərabər, bərabər deyil, siyahıda, qrupda...) və bu cür müqayisələrə əsaslanaraq, məlumat əldə etmək üçün son sorğunuzu dəqiqləşdirin.

Bunun ACS istifadə edərək necə edilə biləcəyinə baxaq. Emalımızda Gəlin Məlumat Tərkibi Sxem növü ilə Layout yaradaq və onu sorğumuzla dolduraq:

Parametrlər sekmesinde, təfərrüatsız yeni bir qruplaşdırma və nümunəmizdə Hesab sahəsi əlavə edəcəyik, çünki sonunda hər şeyi dəyərlər cədvəlinə daxil edəcəyik:

Seçim sekmesinde, seçimə Qarşı tərəfi əlavə edin:

İndi formanı yaratmağa başlayaq. İstifadəçinin işləyəcəyi Seçimi emal formasında göstərək. Formada Cədvəl Sahəsi tipli elementi göstərəcəyik və ona Composer.Settings.Selection məlumat növü ilə Selection adını verəcəyik:

İndi OnOpen forması üçün hadisə işləyiciləri və Run düyməsini sıxmaq üçün işləyici yaradaq, kod aşağıda təqdim olunur:

Perem Layout; Prosedur ButtonExecutePress(Button) Nəticə.Clear();

LayoutLinker = newDataLayoutLayoutLinker;

Layout Layout = Layout Composer.Run(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection"));

CompositionProcessor = newDataCompositionProcessor;