1s 8.3 SCD hesabatının hesablanmış sahələri. Məlumat kompozisiyasının diaqramını yaratmaq üçün faydalı nümunələr. Bölmənin qalan hissəsi

  • 1C-Bitrix
  • Biznes proqram təminatının ən vacib sahələrindən biri hesabatdır. Biznesin taleyi (və məcazi mənada deyil!) mövcud hesabatı biznesin (və qanunvericiliyin) dəyişən ehtiyaclarına uyğunlaşdırmaq və ya vergi idarəsi üçün hesabat olsun, yenisini yaratmağın nə qədər asan olmasından asılı ola bilər. yaxud mallara tələbatın mövsümdən və digər amillərdən asılılığının diaqramı. Sistemdən lazımi məlumatların çıxarılmasını asanlaşdıran, onu başa düşülən formada təqdim edən, son istifadəçiyə məlumatları yeni işıqda görmək üçün standart hesabatı yenidən konfiqurasiya etməyə imkan verən güclü və çevik hesabat sistemi - bu, hər bir iş sistemi üçün səy göstərməlidir.

    1C: Enterprise platformasında hesabatların yaradılması üçün “Məlumatların Tərkibi Sistemi” (qısaldılmış DCS) adlı mexanizm cavabdehdir. Bu yazıda verməyə çalışacağıq Qısa Təsvir ACS mexanizminin ideyaları və arxitekturası və onun imkanları.


    ACS hesabatların deklarativ təsvirinə əsaslanan mexanizmdir. ACS hesabat yaratmaq və mövcud olan məlumatları göstərmək üçün nəzərdə tutulmuşdur mürəkkəb quruluş. Yeri gəlmişkən, hesabatların hazırlanması ilə yanaşı, ACS mexanizmi 1C: Müəssisədə dinamik siyahıda, zəngin funksionallıqla (düz və iyerarxik siyahıların göstərilməsi, cərgələrin şərti dizaynı, qruplaşmalar və s.) siyahı məlumatlarını göstərmək üçün bir vasitə kimi istifadə olunur. ).

    Bir az tarix

    1C: Enterprise 8 platformasının ilk versiyasında, 8.0 versiyasında hesabatlar belə hazırlanmışdır:
    1. Bir və ya bir neçə sorğu 1C sorğu dilində yazılmışdır (SQL-ə bənzər dil, bu barədə ətraflı aşağıda).
    2. İcra edilmiş sorğuların nəticələrini elektron cədvəl sənədinə və ya diaqramına köçürən kod yazılmışdır. Kod sorğuda edilə bilməyən işləri də görə bilərdi - məsələn, daxili 1C dilindən istifadə edərək dəyərləri hesablayır.
    Yanaşma sadədir, lakin ən əlverişli deyil - minimal vizual parametrlər var, hər şey "əldən-ələ" proqramlaşdırılmalıdır. Və tamamilə yeni “1C: Enterprise 8” platformasının o dövrdəki kozır kartlarından biri tətbiq həllində əl ilə yazılmalı olan kodun miqdarının, xüsusən də vizual dizayn vasitəsilə minimuma endirilməsi idi. Hesabat mexanizmində də eyni yolu izləmək məntiqli olardı. Bu, yeni mexanizmin - Məlumat Tərkibi Sisteminin hazırlanması ilə həyata keçirilib.

    Girişə nəzarət sisteminin əsasını təşkil edən ideyalardan biri həm tərtibatçı, həm də son istifadəçi üçün əlçatan olan hesabatların çevikliyi və fərdiləşdirilməsi idi. İdeal olaraq, mən son istifadəçiyə tərtibatçı ilə eyni hesabat dizayn alətlərinə giriş vermək istərdim. Hər kəs üçün mövcud olan vahid alətlər dəsti yaratmaq məntiqli olardı. Yaxşı, alətlər son istifadəçinin iştirakını tələb etdiyindən, bu o deməkdir ki, onlarda proqramlaşdırmadan istifadə minimuma endirilməlidir (yaxşısı onu tamamilə aradan qaldırmaq olar), vizual parametrlərdən maksimum istifadə edilməlidir.

    Problemin formalaşdırılması

    İnkişaf qrupunun qarşısında duran vəzifə alqoritmik (yəni kod yazmaqla) deyil, hesabatların yaradılmasına deklarativ yanaşma əsasında hesabat sistemi yaratmaq idi. Və inanırıq ki, problem uğurla həll olunub. Təcrübəmizə əsasən, tələb olunan hesabatların təxminən 80%-i bir kod sətri olmadan (hesablanmış sahələr üçün düsturların yazılması istisna olmaqla), əsasən vizual parametrlər vasitəsilə ACS-dən istifadə etməklə həyata keçirilə bilər.
    SDS-nin ilk versiyasının hazırlanması təxminən 5 adam il çəkdi.

    İki dil

    Hesabatların yaradılmasında iki dil iştirak edir. Bunlardan biri məlumatları əldə etmək üçün istifadə edilən sorğu dilidir. İkincisi, istifadəçi sahələrinin ifadələrini təsvir etmək üçün sistemin müxtəlif hissələrində, məsələn, məlumat tərkibi parametrlərində istifadə olunan ifadələrin yazılması üçün nəzərdə tutulmuş məlumat kompozisiyasının ifadə dilidir.

    Sorğu dili

    Sorğu dili SQL-ə əsaslanır və SQL-də məlumatlı olanlar üçün öyrənmək asandır. Müraciət nümunəsi:

    SQL sorğuları üçün standart bölmələrin analoqlarını görmək asandır - SELECT, FROM, GROUP BY, ORDER BY.

    Eyni zamanda, sorğu dili maliyyə və iqtisadi problemlərin xüsusiyyətlərini əks etdirməyə və tətbiq həlləri hazırlamaq səylərini maksimum dərəcədə azaltmağa yönəlmiş əhəmiyyətli sayda genişləndirmələri ehtiva edir:

    • Nöqtədən istifadə edərək sahələrə daxil olmaq. Cədvəlin sahələri istinad tiplidirsə (onlar başqa cədvəlin obyektlərinə keçidləri saxlayır), tərtibatçı onlara sorğunun mətnində “.” vasitəsilə istinad edə bilər və sistem yuva səviyyələrinin sayını məhdudlaşdırmır. belə keçidlərdən (məsələn, Müştəri Sifarişi. Müqavilə. Təşkilat. Telefon).
    • Nəticələrin çoxölçülü və çoxsəviyyəli formalaşması. Cəmlər və yarımcəmlər qruplaşma və iyerarxiya nəzərə alınmaqla formalaşdırılır, ümumiləşdirilməklə səviyyələri istənilən ardıcıllıqla keçmək olar, cəmlərin zaman ölçülərinə görə düzgün qurulması təmin edilir.
    • Virtual masalar üçün dəstək. Sistem tərəfindən təqdim olunan virtual cədvəllər mürəkkəb sorğular yaratmağa ehtiyac olmadan əksər tətbiq tapşırıqları üçün demək olar ki, hazır məlumatları əldə etməyə imkan verir. Beləliklə, virtual cədvəl müəyyən vaxtda dövrlər üzrə məhsul qalıqları haqqında məlumat verə bilər. Eyni zamanda, virtual cədvəllər saxlanılan məlumatlardan maksimum istifadə edir, məsələn, əvvəllər hesablanmış cəmi və s.
    • Müvəqqəti masalar. Sorğu dili sorğularda müvəqqəti cədvəllərdən istifadə etməyə imkan verir. Onların köməyi ilə siz sorğu performansını yaxşılaşdıra, bəzi hallarda bloklamaların sayını azalda və sorğu mətninin oxunmasını asanlaşdıra bilərsiniz.
    • Toplu sorğular. Müvəqqəti cədvəllərlə işi daha rahat etmək üçün sorğu dili toplu sorğularla işləməyi dəstəkləyir - beləliklə, müvəqqəti cədvəlin yaradılması və onun istifadəsi bir sorğuda yerləşdirilir. Toplu sorğu nöqtəli vergül (";") ilə ayrılmış sorğular ardıcıllığıdır. Dəstədəki sorğular bir-birinin ardınca yerinə yetirilir. İstifadə olunan metoddan asılı olaraq toplu sorğunun icrasının nəticəsi ya topludakı sonuncu sorğunun qaytardığı nəticə, ya da topludakı sorğuların izlədiyi ardıcıllıqla topludakı bütün sorğuların nəticələri massivi olacaqdır. .
    • İstinad sahələrinin təsvirlərinin axtarışı. Hər bir obyekt cədvəlinin (bir arayış kitabının və ya sənədin saxlandığı) virtual sahəsi var - "Görünüş". Bu sahə obyektin mətn təsvirini ehtiva edir və hesabatı yaradanın işini asanlaşdırır. Beləliklə, bir sənəd üçün bu sahədə bütün əsas məlumatları ehtiva edir - sənəd növünün adı, nömrəsi və tarixi (məsələn, "Satış 000000003 07.06.2017 17:49:14"), tərtibatçını qənaət edir. hesablanmış sahənin yazılması.
    • və s.
    Sorğu mexanizmi, adından sorğu yerinə yetirilən istifadəçinin aid olduğu rolları (yəni istifadəçi yalnız görmək hüququ olan məlumatları görəcək) və funksional seçimləri (yəni, uyğun olaraq) nəzərə alaraq sorğunu avtomatik olaraq dəyişdirir. proqram həlli funksionallığında konfiqurasiya edilənlərlə).

    Girişə nəzarət sistemləri üçün xüsusi sorğu dili genişlənmələri də mövcuddur. Genişləndirmə, əyri mötərizələrə daxil edilmiş və birbaşa sorğu orqanına yerləşdirilən xüsusi sintaktik təlimatlardan istifadə etməklə həyata keçirilir. Genişləndirmələrdən istifadə edərək tərtibatçı hesabatı fərdiləşdirərkən son istifadəçinin hansı əməliyyatları yerinə yetirə biləcəyini müəyyənləşdirir.

    Misal üçün:

    • SEÇİN. Bu cümlə istifadəçinin çıxış üçün seçə biləcəyi sahələri təsvir edir. Bu açar sözdən sonra əsas sorğu seçim siyahısındakı konfiqurasiya üçün əlçatan olacaq sahələrin ləqəbləri vergüllə ayrılaraq siyahıya alınır. Nümunə: (Seçmə Elementi, Anbar)
    • 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. Nümunələr: (HARADA Element.*, Anbar), (HARADA Sənəd.Tarix >= &BaşlamaTarixi, Sənəd.Tarix<= &ДатаКонца}
    • və s.
    Genişlənmələrdən istifadə nümunəsi:

    Məlumat Tərkibi İfadə Dili

    Məlumat Kompozisiyasının İfadə Dili istifadə olunan ifadələri yazmaq, xüsusən də xüsusi sahə ifadələrini təsvir etmək üçün nəzərdə tutulmuşdur. SKD ya öz ifadələrinizdən, ya da onların seçilməsi şərtləri ilə (SQL-də CASE-in analoqu) seçimlər dəstindən istifadə edərək hesabatda xüsusi sahələri müəyyən etməyə imkan verir. Fərdi sahələr hesablanmış sahələrə bənzəyir. Onlar həm konfiquratorda, həm də 1C: Müəssisə rejimində quraşdırıla bilər, lakin ümumi modulların funksiyaları xüsusi sahə ifadələrində istifadə edilə bilməz. Buna görə də, fərdi sahələr tərtibatçı üçün deyil, istifadəçi üçün nəzərdə tutulub.

    Misal:

    Girişə nəzarət sistemi haqqında hesabatın yaradılması prosesi

    Hesabat yaratarkən məlumatların hesabatda necə göstəriləcəyini müəyyən edən tərtibat yaratmalıyıq. Siz verilənlərin düzülüşü diaqramına əsaslanaraq tərtibat yarada bilərsiniz. Verilənlərin yerləşdirilməsi diaqramı hesabata təqdim olunan məlumatların mahiyyətini təsvir edir (məlumatları haradan əldə etmək və onun tərtibinə necə nəzarət etmək olar). Məlumatların tərkibi sxemi bütün növ hesabatların yaradıla biləcəyi əsasdır. Məlumat kompozisiya sxemi aşağıdakıları ehtiva edə bilər:
    • məlumat kompozisiya sistemi üçün təlimatlarla mətn tələb etmək;
    • çoxsaylı məlumat dəstlərinin təsviri;
    • mövcud sahələrin ətraflı təsviri;
    • çoxsaylı məlumat dəstləri arasında əlaqələrin təsviri;
    • məlumatların alınması parametrlərinin təsviri;
    • sahə planlarının və qruplaşmalarının təsviri;
    • və s.

    Məsələn, verilənlər toplusu kimi verilənlərin tərkibi sxeminə sorğu əlavə edə və qrafik olaraq ixtiyari mürəkkəblikdə sorğu yaratmağa imkan verən sorğu konstruktorunu çağıra bilərsiniz:

    Sorğu tərtibatçısının işə salınmasının nəticəsi sorğu mətni olacaq (1C: Enterprise sorğu dilində). Lazım gələrsə, bu mətn əl ilə tənzimlənə bilər:

    Verilənlərin yerləşdirilməsi sxemində bir neçə verilənlər toplusu ola bilər, verilənlər dəstləri tərtibatda istənilən şəkildə əlaqələndirilə bilər, hesablanmış sahələr əlavə edilə bilər, hesabat parametrləri təyin edilə bilər və s. 1C: Enterprise-də sorğu mexanizminin maraqlı bir xüsusiyyətini qeyd etmək lazımdır. Sorğular son nəticədə proqramın birbaşa işlədiyi DBMS-ə xas SQL dialektinə tərcümə olunur. Ümumiyyətlə, biz DBMS serverlərinin imkanlarından maksimum istifadə etməyə çalışırıq (biz yalnız 1C: Enterprise platforması - MS SQL, Oracle, IBM DB2 tərəfindən dəstəklənən bütün DBMS-lərdə eyni vaxtda mövcud olan imkanlardan istifadə etməyimizlə məhdudlaşırıq. , PostgreSQL). Beləliklə, hesablanmış sahələrdə sorğu səviyyəsində biz yalnız SQL-ə tərcümə olunan funksiyalardan istifadə edə bilərik.

    Ancaq məlumatların tərkibi sxemi səviyyəsində biz artıq xüsusi sahələr əlavə edə və daxili 1C inkişaf dilində (bizim tərəfindən yazılmışlar da daxil olmaqla) funksiyalardan istifadə edə bilərik ki, bu da hesabatların imkanlarını xeyli genişləndirir. Texniki olaraq belə görünür - SQL-ə tərcümə oluna bilən hər şey SQL-ə tərcümə olunur, sorğu DBMS səviyyəsində yerinə yetirilir, sorğunun nəticələri 1C proqram serverinin yaddaşına yerləşdirilir və SKD hər qeyd üçün dəyərləri hesablayır. düsturları 1C dilində yazılmış hesablanmış sahələrin.


    Fərdi Sahələrin əlavə edilməsi

    Hesabata ixtiyari sayda cədvəl və diaqram əlavə edə bilərsiniz:


    Hesabat dizayneri


    İcra müddəti hesabatı

    SKD-dən istifadə etməklə istifadəçi hesabata mürəkkəb seçimlər (sorğuya lazımi yerlərdə əlavə olunacaq), şərti dizayn (göstərilən sahələrin qiymətlərindən asılı olaraq fərqli formatda - şrift, rəng və s. ilə) əlavə edə bilər. ) və daha çox ..

    Hesabatın qurulması və yaradılması prosesi qısa şəkildə aşağıdakı kimi təsvir edilə bilər:

    • Tərtibatçı dizayn vaxtında bir dizaynerin köməyi ilə (və ya koddan istifadə edərək işləmə müddətində) məlumatların yerləşdirilməsi sxemini müəyyənləşdirir:
      • Sorğunun/sorğuların mətni
      • Hesablanmış sahələrin təsviri
      • Müraciətlər arasındakı əlaqə (əgər onlardan bir neçəsi varsa)
      • Hesabat Seçimləri
      • Defolt parametrlər
      • və s.
    • Yuxarıdakı parametrlər tərtibatda saxlanılır
    • İstifadəçi hesabatı açır
      • Əlavə parametrlər edə bilər (məsələn, parametr dəyərlərini dəyişdirir)
      • "Yarat" düyməsini klikləyin
    • İstifadəçi parametrləri tərtibatçı tərəfindən müəyyən edilmiş məlumat tərkibi sxeminə tətbiq edilir.
    • Məlumatların haradan alınacağına dair təlimatları ehtiva edən aralıq məlumat kompozisiyasının tərtibatı formalaşır. Xüsusilə, tərtibatda göstərilən sorğular tənzimlənir. Beləliklə, hesabatda istifadə olunmayan sahələr sorğudan çıxarılır (bu, alınan məlumatların həcmini minimuma endirmək üçün edilir). Hesablanmış sahə düsturlarında iştirak edən bütün sahələr sorğuya əlavə edilir.
    • Məlumat kompozisiya prosessoru işə düşür. Layout prosessoru sorğuları yerinə yetirir, məlumat dəstlərini əlaqələndirir, hesablanmış sahələr və resurslar üçün dəyərləri hesablayır və qruplaşdırmanı həyata keçirir. Bir sözlə, DBMS səviyyəsində aparılmayan bütün hesablamaları edir.
    • Verilənlərin çıxış prosessoru icra sorğusunu işə salır və alınan məlumatları elektron cədvəl sənədində, diaqramda və s.


    ACS mexanizmindən istifadə edərək hesabatın yaradılması prosesi

    Biz serverdən müştəri tətbiqinə ötürülən hesabat məlumatlarının miqdarını minimuma endirməyə çalışırıq. Elektron cədvəl sənədində məlumatları göstərərkən, elektron cədvəl sənədini açarkən, serverdən yalnız istifadəçinin sənədin əvvəlində gördüyü sətirləri köçürürük. İstifadəçi sənədin sətirləri üzrə hərəkət etdikcə çatışmayan məlumatlar serverdən müştəriyə endirilir.

    Fərdi Parametrlər

    Bütün ACS alətləri həm tərtibatçı, həm də son istifadəçi üçün əlçatandır. Lakin təcrübə göstərdi ki, son istifadəçi çox vaxt alət imkanlarının bolluğundan qorxur. Üstəlik, əksər hallarda, son istifadəçi parametrlərin bütün gücünə ehtiyac duymur - onun bir və ya iki hesabat parametrlərini (məsələn, dövr və qarşı tərəf) qurmaq üçün sürətli çıxış əldə etməsi kifayətdir. Platformanın müəyyən bir versiyasından başlayaraq, hesabat tərtibatçısının istifadəçi üçün hansı hesabat parametrlərinin mövcud olduğunu qeyd etmək imkanı var. Bu, "İstifadəçi parametrlərinə daxil et" qutusundan istifadə etməklə edilir. Həmçinin, hesabat parametrlərində indi üç dəyərdən birini qəbul edən “Ekran rejimi” bayrağı var:
    • Sürətli giriş. Parametr birbaşa hesabat pəncərəsinin yuxarı hissəsində göstəriləcək.
    • Adi siravi. Parametrlər "Parametrlər" düyməsi vasitəsilə mümkün olacaq.
    • Mövcud deyil. Parametr son istifadəçi üçün əlçatan olmayacaq.


    Dizayn vaxtında ekran rejiminin qurulması


    Parametri işləmə zamanı Tez Giriş rejimində göstərin (Yarat düyməsinin altında)

    İnkişaf planları

    Girişə nəzarət sistemlərinin inkişafında prioritet istiqamətlərimizdən biri istifadəçi parametrlərinin sadələşdirilməsidir. Təcrübəmiz göstərir ki, bəzi son istifadəçilər üçün istifadəçi parametrləri ilə işləmək hələ də böyük işdir. Biz bunu nəzərə alırıq və bu istiqamətdə işləyirik. Müvafiq olaraq, tərtibatçılar üçün girişə nəzarət sistemləri ilə işləmək də asanlaşacaq, çünki Biz, əvvəlki kimi, həm tərtibatçı, həm də son istifadəçi üçün hesabatların qurulması üçün vahid alət təqdim etmək istəyirik.

    Məlumatların yerləşdirilməsi diaqramı (1C SKD)- istehsalın avtomatlaşdırılmasının inkişafına və izlənməsinə töhfə verən 1C: Enterprise proqram məhsullarında mürəkkəb hesabatların yaradılması üçün rahat dizayner, onları minimum vaxt ərzində mümkün qədər çevik və gözəl etməyə imkan verir. Məlumat Tərkibi Sxeminin (1C SKD) əlavə üstünlüyü idarə olunan hesabat formasının avtomatik yaradılmasıdır və bu sahənin daha da inkişafı ilə hesabatın işlənib hazırlanması metodunu seçərkən mühüm amildir. Lakin Məlumat Tərkibi Sxeminin (1C SKD) strukturunun mürəkkəbliyi və çoxlu sayda parametrlər səbəbindən bu, tez-tez hesabatın "çıxış forması dizayneri" ilə müqayisədə daha uzun inkişaf etdirilməsinə səbəb olur. Buna görə də, 1C proqramçısı hesabatların yaradılması üçün inkişaf vaxtını daha da sürətləndirmək üçün Məlumat Tərkibi Sxeminin (1C DCS) bütün incəliklərini başa düşməlidir.

    Məlumatların Tərkibi Sxeminin (1C SKD) ilk üç nişanına baxaq - məlumat dəsti, məlumat dəsti əlaqələri və hesablanmış sahələr.

    1C SKD-də məlumat dəsti

    Məlumat dəstinə üç obyekt - sorğu, obyekt və birlik yaratmaq imkanı daxildir, gəlin onların hər birinə daha yaxından nəzər salaq:

    Bu Query Builder düyməsini istifadə edərək yaradılan müntəzəm sorğudur. Avtomatik doldurma bayrağı qoyulubsa, bütün seçilmiş detallar avtomatik olaraq verilənlər dəstinin sahələrinə daxil ediləcək. Sorğudakı sahələrin doldurulmasını üç nişanın olduğu Məlumat Tərkibi tabında fərdiləşdirmək də mümkündür:

    Cədvəllər, burada hesabatın yaradılmasında iştirak edəcək cədvəllər seçilir, adətən standart məlumatlar seçilir, çünki Cədvəllər və Sahələr sekmesinde biz artıq bizə lazım olan sənədləri, kataloqları, registrləri seçmişik...

    Sahələr, burada hesabata daxil edilməli olan obyektləri seçirik, uşaq bayrağı obyekt üçün əlçatan uşaq elementlərin olub-olmadığını göstərir, sətir, rəqəmli və oxşar məlumatlar üçün onu təyin etmək mümkün olmayacaqdır. bayrağı True.

    Şərtlər, burada girişə nəzarət sistemində şərtlər altında istifadə edilə bilən obyektləri seçirik.

    İşlərin bir hissəsi verilənlərin kompozisiya sxemində, bəziləri isə proqramlı şəkildə həyata keçirilir; sadə bir nümunəyə baxaq:

    Əvvəlcə sənədin verilənlərin tərtibatı üçün tərtibat diaqramını yaradacağıq və onu SKD adlandıracağıq (məsələn: 1C SKD), orada verilənlər toplusu obyekti yaradırıq, sonra sahələri doldururuq, məsələn, sənədimiz var. detalları olan malların cədvəl hissəsi ilə - nomenklatura, kəmiyyət və qiymət.

    Üç sahə əlavə edək və hər sütunu detalların adı ilə dolduraq, qalan sütunlar avtomatik olaraq doldurulacaq:

    Sənəd formasında düymə yaradaq və idarə olunan formalarda işləmə mexanizmini təsvir edək:

    &OnClient

    Çap proseduru()

    Bizim Hesabat = PrintOnServer(); //serverdəki funksiyaya zəng edin

    OurReport.Show(); //yaradılmış hesabatı göstərin

    Prosedurun Sonu

    &Serverdə

    Funksiya PrintOnServer()

    DocumentObject = FormAttributeValue (“Obyekt”);

    //Cədvəl hissəsini Məhsulları ProductsSKD adı ilə bir quruluşa yerləşdiririk, SKD-nin özündə məlumatları ehtiva edən obyektin adını göstərdiyimiz kimi

    DataSet = yeni Struktur;

    DataSet.Insert(“ProductsSKD”, DocumentObject.Products);

    //planımızı əldə edirik və standart parametrləri təyin edirik ki, bütün hesabat çıxış parametrləri tərtibatımızdan götürülsün

    OurLayout = DocumentObject.GetLayout (“SKD”);

    Parametrlər = OurLayout.DefaultSettings;

    //parametrlərimizlə məlumat düzümü tərtibatı yaradın

    LayoutLinker = newDataLayoutLayoutLinker;

    LayoutLayout = LayoutComposer.Execute(OurLayout, Parametrlər);

    //məlumat dəstimizlə məlumat kompozisiyasını yerinə yetirin

    DataCompositionProcessor = newDataCompositionProcessor;

    DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

    //Elektron cədvəl sənədi yaradırıq və hesabatımızı orada göstəririk

    ReportDocument = Yeni Cədvəl Sənədi;

    OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;

    OutputProcessor.SetDocument(ReportDocument);

    OutputProcessor.Output(DataCompositionProcessor);

    Sənəd Hesabatını qaytarın;

    EndFunction

    İstəyirsinizsə, hər hansı digər tərtibatın sahələrini əldə edə bilərsiniz və onları bu hesabatda göstərə bilərsiniz, məsələn, ödəniş tapşırığının yaradılması üçün standart tərtibatımız var və başlıq orada çox yaxşı yaradılıb. lazımsız iş, biz sadəcə ilk planı əldə edəcəyik, başlığı göstərəcəyik, sonra girişə nəzarət sistemi haqqında hesabatımızı yaradıb göstərəcəyik.

    HAQQINDA birləşmə

    Biz orada sorğularımızı və obyektlərimizi yerləşdirə bilərik, lakin əlaqədən fərqli olaraq, o, sadəcə olaraq, bir-birinə cədvəllər əlavə edir, yəni iki eyni cədvəli birləşdirsək, bir nəticə əldə edəcəyik və birləşdirildikdə ikiqat artacaq, baxaq sadə bir misalda:

    Cədvəllərimiz var:

    Əlaqə zamanı biz alacağıq:

    Və birləşdirildikdə:

    İndi verilənlər toplusunda sütunların doldurulmasına baxaq (biz bəzilərini atlayacağıq, çünki onlar digər tablarla əlaqəlidir; gələcək məqalələrdə onlara qayıdacağıq):

    - sahə, atributun ümumi adını göstərin;

    ­­- yol, girişə nəzarət sistemində onunla əlaqə saxlayacağımız təfərrüatların adını göstərin, məsələn Hesablanmış sahələr;

    - başlıq, hesabatda göstəriləcək atributun adını göstərin;

    - sahə məhdudiyyəti, bu rekvizitin mövcudluğunu göstərin;

    - detalların məhdudlaşdırılması, uşaq elementlərinin mövcudluğunu göstəririk, vacibdir ki, təfərrüatların mövcudluğu göstərilibsə, sahənin özü mövcud olacaq, bəlkə də bu mexanika gələcək buraxılışlarda dəyişdiriləcək;

    - sahə təmsilinin hesablandığı ifadə, detalların çıxışını bir az dəyişdirmək lazım olduqda istifadə etmək rahatdır, məsələn, addan sonra ehtiyacımız var nomenklatura nümayiş etdirildi səhm, harada yerləşir, sonra aşağıdakıları doldurun: Element + “anbardadır” + Anbar. Bir daha təkrar edirəm ki, detallara giriş sütunda göstərilən ad vasitəsilə həyata keçirilir yol;

    - ifadə sıralaması, hesabat sifarişini qurmaq üçün əlverişli mexanizm, burada vəziyyət əvvəlki nöqtəyə bənzər şəkildə əl ilə təyin edilə bilər, lakin təcrübədən göründüyü kimi, bu mexanizm çox vaxt istədiyimiz kimi işləmir və sizə standart çeşidləmədən istifadə etməyi məsləhət görürəm;

    - dəyər növü, atributun dəyərinin növünü göstərir, aşağıdakı sahəni istifadə edirsinizsə, bu doldurulmalıdır;

    - mövcud dəyərlər, yalnız dolu olduqda işləyir dəyər növü, formanı açın və sütunda Məna növünə görə dəyişdirilməsi lazım olan elementi göstəririk, o, əvvəlcədən təyin edilmiş obyektlər və ya rəqəmlər ola bilər, məsələn, detalların sadə dəyərləri var, təqdimat Nəyə dəyişməli olduğumuzu, Boolean tipinə misal olaraq göstəririk:

    - dekorasiya– idarə olunan formalardakı parametrlərə bənzər standart sahə formatı parametrləri müəyyən detalların çıxışını daha dəqiq və gözəl şəkildə fərdiləşdirməyə imkan verir.

    1C SKD-də məlumat dəsti əlaqələri

    Burada yalnız quraşdırılmışdır sol qoşul, oxşar prinsip üzrə əlaqələri sorğularda, in ünsiyyət mənbəyiəlaqə üçün əsas cədvəli göstərin qəbulediciəlavə. IN ifadə mənbəyiifadə qəbuledicisi Hansı ünsiyyətin baş tutacağını təfərrüatları göstəririk. Nişanı nəzərdən keçirərkən qalan sütunları daha ətraflı nəzərdən keçirəcəyik. Seçimlər. Parametrlərlə əlavə əlaqə yoxdursa, sorğuda əlaqəni etmək tövsiyə olunur, bu hesabatı sürətləndirəcək.

    8.2.14-ün qarşıdan gələn buraxılışı işığında mən məlumat kompozisiya sisteminin bəzi yeni funksiyalarını təsvir etməyə çalışacağam.

    Redaktəni asanlaşdırmaq üçün verilənlərin tərtibatı diaqramını, tercihen xarici hesabatda açın.

    Biz sorğu tipli verilənlər toplusunu əlavə edirik və ya əl ilə, ya da sorğu tərtibatçısından istifadə edərək sadə bir sorğu yazırıq:

    1. Girişə nəzarət sistemində sorğu qurun.

    2. Girişə nəzarət sistemində hesablanmış sahələri qurun

    3. Parametrlər nişanında məlumat düzümünü konfiqurasiya edin

    4. 1C Enterprise proqramını işə salın 8.2.14. Hesabatı açın. Biz formalaşdırırıq, alırıq.

    Yeni funksiyaların təsviri:

    1. Cari tarix()

    Sistem tarixini qaytarır. Layout layout tərtib edilərkən, layoutda mövcud olan bütün ifadələrdə CurrentDate() funksiyası cari tarixin dəyəri ilə əvəz olunur.

    2. COMPUTEEXPRESSION()

    Sintaksis:

    İfadə hesablayın(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

    Təsvir:

    Funksiya bəzi qruplaşdırma kontekstində ifadəni qiymətləndirmək üçün nəzərdə tutulub.

    Funksiya qruplaşmaların seçilməsini nəzərə alır, lakin iyerarxik seçimləri nəzərə almır.

    Funksiya həmin qruplaşmanın qrup seçimində qruplaşmaya tətbiq edilə bilməz. Məsələn, Nomenklatura qrupunun seçimində siz CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 ifadəsindən istifadə edə bilməzsiniz. Lakin belə ifadə iyerarxik seçimdə istifadə oluna bilər.

    Əgər son qeyd başlanğıc qeydindən əvvəldirsə, o zaman hesab edilir ki, təfərrüatlı məlumatların hesablanması və məcmu funksiyaların hesablanması üçün heç bir qeyd yoxdur.

    Ümumi cəm üçün interval ifadələrini hesablayarkən (Qruplaşdırma parametri GrandTotal olaraq təyin edilir), təfərrüatlı məlumatların hesablanması və məcmu funksiyaların hesablanması üçün heç bir qeydin olmadığı güman edilir.

    CalculateExpression funksiyası üçün ifadə yaradan zaman tərtibat tərtibçisi, əgər sifariş ifadəsində qruplaşdırmada istifadə oluna bilməyən sahələr varsa, CalculateExpression funksiyasını NULL ilə əvəz edir.

    Seçimlər

    <Выражение>

    Növ: simli. Qiymətləndiriləcək ifadə.

    <Группировка>

    Növ: simli. İfadənin qiymətləndiriləcəyi kontekstdə qruplaşmanın adını ehtiva edir. Qruplaşdırma adı kimi boş sətir istifadə edilərsə, hesablama cari qruplaşmanın kontekstində həyata keçiriləcək. Qrup adı kimi GrandTotal sətri istifadə edilərsə, hesablama ümumi cəm kontekstində həyata keçiriləcək. Əks halda, hesablama eyni adlı ana qruplaşma kontekstində həyata keçiriləcək.

    Misal üçün:

    Məbləğ(Satış.Məbləği)/Hesabla(“Cəm(Satış.Məbləği)”, “Cəmi”)

    Bu misalda nəticə Sales.SumTurnover sahəsi üzrə məbləğin qruplaşdırma qeydinin bütün tərtibatda eyni sahənin məbləğinə nisbəti olacaq;

    <ОбластьВычисления>

    Növ: simli. Parametr aşağıdakı dəyərləri qəbul edə bilər:

    • GeneralTotal - ifadə bütün qruplaşdırma qeydləri üçün hesablanacaq.
    • İyerarxiya - İfadə varsa, əsas iyerarxik qeyd üçün və əsas iyerarxik qeyd yoxdursa, bütün qruplaşma üçün qiymətləndiriləcək.
    • Qruplaşdırma - ifadə cari qruplaşdırma qruplaşdırma qeydi üçün qiymətləndiriləcək.
    • Qeyri-Resurs Qruplaşdırma - resurs üzrə qrup qeydi üçün funksiya hesablanarkən ifadə orijinal qruplaşmanın ilk qrup qeydi üçün qiymətləndiriləcək.

    Funksiyanı hesablayarkən İfadə hesablayın() Resurs qruplaşmaları olmayan qrup qeydləri üçün Qeyri-Resurs Qruplaşdırma dəyəri ilə funksiya parametr dəyəri Qruplaşdırma dəyərinə bərabər olduqda hesablanacağı kimi hesablanır.

    Məlumat kompozisiyasının tərtibatçısı, qruplaşdırmanın tərtibata aparıldığı resurs sahəsini çıxararkən məlumat kompozisiyasının tərtibatını yaradan zaman, tərtibata funksiyadan istifadə edərək hesablanan ifadəni yerləşdirir. İfadə hesablayın(), Qeyri-Resurs Qruplaşdırma parametrini göstərən. Digər resurslar üçün adi resurs ifadələri resurs qruplaşdırılmasına yerləşdirilir.

    <Начало>

    Növ: simli. Fraqmentin hansı qeyddən başlamalı olduğunu, hansı məcmu ifadə funksiyalarının hesablanacağını və məcmu funksiyalardan kənar sahə qiymətlərinin hansı qeyddən alınacağını göstərir. Dəyər aşağıdakılardan biri ola bilər:

    <Конец>

    Növ: simli. Fraqmentin hansı qeydə davam etdirilməli olduğunu, hansında ifadənin məcmu funksiyalarının hesablanmalı olduğunu göstərir. Dəyər aşağıdakılardan biri ola bilər:

    • Birinci. İlk qruplaşma qeydini əldə etmək lazımdır. Mötərizədə olan sözdən sonra bir ifadə təyin edə bilərsiniz, nəticəsi qruplaşmanın əvvəlindən ofset kimi istifadə olunacaq. Nəticədə alınan dəyər sıfırdan böyük tam ədəd olmalıdır. Məsələn, First(3) – qruplaşdırmanın əvvəlindən üçüncü qeydin alınması.

    Əgər birinci qeyd qruplaşmadan kənardadırsa, o zaman qeydlərin olmadığı hesab edilir. Məsələn, 3 qeyd varsa və siz First(4) almaq istəyirsinizsə, onda heç bir qeyd olmadığı hesab edilir.

    • Son. Son qruplaşma qeydini əldə etməlisiniz. Mötərizədə olan sözdən sonra, nəticəsi qruplaşmanın sonundan ofset kimi istifadə ediləcək bir ifadə təyin edə bilərsiniz. Nəticədə alınan dəyər sıfırdan böyük tam ədəd olmalıdır. Məsələn, Son (3) – qrupun sonundan üçüncü qeydin alınması.

    Əgər sonuncu qeyd qruplaşmadan kənardadırsa, o zaman qeydlərin olmadığı hesab edilir. Məsələn, 3 qeyd varsa və siz Last(4) almaq istəyirsinizsə, onda heç bir qeyd olmadığı hesab edilir.

    • Əvvəlki. Əvvəlki qruplaşdırma qeydini əldə etməlisiniz. Mötərizədə olan sözdən sonra, nəticəsi cari qruplaşdırma qeydindən geriyə ofset kimi istifadə ediləcək bir ifadə təyin edə bilərsiniz. Məsələn, Əvvəlki(2) – əvvəlki qeyddən əvvəlkini əldə etmək.

    Əvvəlki qeyd qruplaşdırmadan kənara çıxarsa (məsələn, ikinci qruplaşdırma qeydi üçün Əvvəlki(3) almaq lazımdır), onda birinci qruplaşdırma qeydi alınır.

    Qruplaşdırma cəmi üçün əvvəlki qeydi əldə edərkən, ilk qeydin əldə edildiyi hesab olunur.

    • Sonrakı. Növbəti qruplaşdırma qeydini əldə etməlisiniz. Mötərizədə olan sözdən sonra, nəticəsi cari qruplaşdırma girişindən irəli ofset kimi istifadə olunacaq ifadəni təyin edə bilərsiniz. Məsələn, Next(2) – növbəti qeyddən növbətini əldə etmək.

    Əgər növbəti rekord qruplaşmadan kənara çıxarsa, o zaman qeydlərin olmadığı hesab edilir. Məsələn, 3 qeyd varsa və üçüncü qeyd üçün Next() alınırsa, onda heç bir qeyd olmadığı hesab edilir.

    Qruplaşma cəmi üçün növbəti qeyd alındıqda qeydin olmadığı hesab edilir.

    • Cari. Cari rekordu əldə etməlisiniz.

    Qruplaşdırma cəmi üçün axtarış zamanı ilk qeyd əldə edilir.

    • Sərhəd Dəyəri. Müəyyən edilmiş dəyərlə qeyd əldə etmək ehtiyacı. Mötərizədə LimitingValues ​​sözündən sonra fraqmentə başlamaq istədiyiniz dəyəri olan ifadəni, ilk sıralama sahəsini göstərməlisiniz.

    Sifariş sahəsinin dəyəri göstərilən dəyərdən böyük və ya ona bərabər olan ilk qeyd qeyd kimi qaytarılacaq. Məsələn, Dövr sahəsi sifariş sahəsi kimi istifadə olunursa və onun 01/01/2010, 02/01/2010, 03/01/2010 dəyərləri varsa və siz LimitingValue(DateTime(2010)) almaq istəyirsinizsə , 1, 15)), sonra 02/01 tarixli qeyd alınacaq.2010.

    <Сортировка>

    Növ: simli. Sıralama qaydalarını təsvir edən vergüllə ayrılmış ifadələri sadalayır. Göstərilməyibsə, o zaman sıralama ifadənin qiymətləndirildiyi qruplaşma ilə eyni şəkildə həyata keçirilir. Hər ifadədən sonra müəyyən edə bilərsiniz açar söz Yüksəlmə (artan qaydada sıralamaq üçün), Azalan (azalan qaydada sıralamaq üçün) və Avtomatik sifariş (istinad edilən obyekti sifariş etmək istədiyiniz sahələr üzrə istinad sahələrini sıralamaq üçün). Avtomatik Sifariş sözü həm Artan, həm də Azalan sözü ilə istifadə edilə bilər.

    <ИерархическаяСортировка>

    Növ: simli. Sort seçimi ilə eynidir. İerarxik qeydləri təşkil etmək üçün istifadə olunur. Göstərilməyibsə, tərtibat tərtibçisi Sort parametrində göstərilən sıralamaya uyğun olaraq sifariş yaradır.

    <ОбработкаОдинаковыхЗначенийПорядка>

    Növ: simli. Eyni sifariş dəyərinə malik bir neçə qeyd olduğu halda əvvəlki və ya növbəti qeydin müəyyən edilməsi qaydasını müəyyən edir:

    • Ayrı-ayrılıqda, əvvəlki və sonrakı qeydləri müəyyən etmək üçün sifarişli qeydlərin ardıcıllığından istifadə edildiyini bildirir. Cari dəyər.
    • Birlikdə əvvəlki və sonrakı qeydlərin sifariş ifadələrinin dəyərlərinə əsasən müəyyən edilməsi deməkdir.

    Məsələn, ortaya çıxan ardıcıllıq tarixə görə sıralanırsa:

    Tarix Tam adı Məna
    1 01 yanvar 2001-ci il İvanov M. 10
    2 02 yanvar 2001-ci il Petrov S. 20
    3 03 yanvar 2001-ci il Sidorov R. 30
    4 04 yanvar 2001-ci il Petrov S. 40

    Parametrin dəyəri ayrıdırsa, onda:

    § 3-cü girişə əvvəlki giriş 2-ci giriş olacaq.

    § hesablama fraqmenti Cari, Cari (müvafiq olaraq Başlanğıc və Son parametrləri) kimi müəyyən edilirsə, 2-ci qeyd üçün bu fraqment bir qeyddən 2 ibarət olacaq. Hesablama İfadəsi (“Cəm (Dəyər)”, Cari, Cari) ifadəsi 20-yə bərabər olsun.

    Parametr dəyəri Birlikdə olarsa, onda:

    § 3-cü girişə əvvəlki giriş 1-ci giriş olacaq.

    § hesablama fraqmenti Cari, Cari (müvafiq olaraq Başlanğıc və Son parametrləri) kimi müəyyən edilirsə, 2-ci qeyd üçün bu fraqment 2 və 3-cü qeydlərdən ibarət olacaq. İfadə Hesablama(“Cəm (Dəyər)”, Cari, Cari) 50-yə bərabər olacaq.

    Birlikdə bərabər parametr dəyərini təyin edərkən, Başlanğıc və Son parametrlərində Birinci, Son, Əvvəlki, Sonrakı mövqeləri üçün ofset təyin edə bilməzsiniz.

    İfadə hesablayın("Cəmi(Cəmi Dövriyyə)", "Birinci", "Cari")

    Əvvəlki sətirdə qruplaşdırma dəyərini əldə etmək istəyirsinizsə, aşağıdakı ifadədən istifadə edə bilərsiniz:

    İfadəni hesabla("Dəyiş", "Əvvəlki")

    Siyahı yeni funksiyaları:

    ExpressionWithGroupArray ilə hesablayın(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

    Funksiya hər bir elementi göstərilən sahə üzrə qruplaşdırmaq üçün ifadənin qiymətləndirilməsinin nəticəsini ehtiva edən massivi qaytarır.

    İfadəni QrupDəyər Cədvəli ilə hesablayın(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

    Funksiya hər bir sətirdə göstərilən sahə üzrə qruplaşma üçün ifadələrin qiymətləndirilməsinin nəticəsini ehtiva edən dəyərlər cədvəlini qaytarır.

    Dəyər Doldurulmuş(<Выражение>) – Əgər dəyər bu növün standart dəyərindən fərqlidirsə, NULL-dan başqa, boş istinaddan başqa, Müəyyən edilməmişdən başqadırsa, True qaytarır. Boolean dəyərləri NULL üçün yoxlanılır. Sətirlər boşluq olmayan simvolların olmaması üçün yoxlanılır

    Format(<Выражение>, <Форматная строка>) – Keçirilmiş dəyərin formatlanmış sətrini qəbul edin. Format sətri 1C: Enterprise sisteminin format sətirinə uyğun qurulur.

    Alt sətir(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Bu funksiya sətirdən alt sətir çıxarmaq üçün nəzərdə tutulub.

    Xətt Uzunluğu(<Выражение>) – Funksiya sətrin uzunluğunu təyin etmək üçün nəzərdə tutulub. Parametr - sətir ifadəsi

    Xətt(<Выражение>) – Əgər massiv parametr kimi ötürülürsə, funksiya “ simvolları ilə ayrılmış bütün massiv elementlərinin sətir təsvirlərini ehtiva edən sətri qaytarır; “. Dəyərlər cədvəli parametr kimi ötürülürsə, funksiya dəyərlər cədvəlinin bütün sətirlərinin sətir təsvirlərini ehtiva edən sətri qaytarır, hər bir cərgənin xana təsvirləri simvollarla ayrılır "; ", və sətirlər xətt feed simvoludur. Əgər hər hansı elementin boş sətir təsviri varsa, o zaman onun təmsili əvəzinə sətir göstərilir<Пустое значение>.

    Salam, əziz oxucu! Layout sisteminin əsasları ilə bağlı başqa bir dərsimiz var. Siz SKD ifadə dilinin funksiyaları ilə tanış oldunuz, layout sisteminin xüsusiyyətlərini gördünüz, həmçinin layout sahələrinin əsas parametrlərini başa düşdünüz. İndi baxacağıq yeni material. Get!

    ACS sahələri üçün əlavə parametrlər.

    Sütun "Dəyər növü" Layout sahəsi üçün məlumat növünü təyin etməyə imkan verir. Məsələn, "Nomenklatura" sahəsinin hansı növ olduğunu artıq bilirsinizsə, niyə növü göstərməlisiniz? Layout sahəsi kompozit tiplidirsə, bu lazımdır. Müəyyən bir növü seçə bilərsiniz, sonra bu sahə ilə seçərkən bu növün dəyərləri seçiləcək.

    Sütun "Mövcud dəyərlər" seçim üçün mövcud olan dəyərləri təyin etməyə və istifadəçinin seçimini müəyyən məhdudiyyətlərlə məhdudlaşdırmağa imkan verir.

    Sütun "Dekor" planlardan istifadə etmədən layout sahəsinin dizaynını təyin etməyə imkan verir. Siz şrift rəngini, çərçivə rəngini, mətn istiqamətini və s.

    Sütun "Redaktə Seçimləri" Layout sahəsini necə redaktə edəcəyinizi təyin etməyə imkan verir. Məsələn, seçimdəki siyahıdan elementlərin sürətli seçimini təyin edə bilərsiniz. Varsayılan olaraq, düzən sahəsi metadata obyektindən bütün redaktə seçimlərini miras alır.

    Hesablanmış sahələr

    Məlumat tərkibinin "Hesablanmış Sahələr" sekmesinde siz öz hesablanmış sahələrinizi yarada bilərsiniz.

    Sorğu səviyyəsində yarada bildiyiniz zaman hesablanmış sahələrə nə üçün ehtiyacınız var? Sorğu vasitəsilə bütün sahələri təsvir etmək mümkün deyil. Müxtəlif məlumat dəstlərindən, məsələn, sorğu və obyektdən mürəkkəb sahə yaratmaq lazımdırsa, hesablanmış sahələr olmadan edə bilməzsiniz. Məlumat mənbəyi sorğudursa və avtomatik doldurma aktivdirsə, siz məlumat tərkibi sahəsi əlavə edə bilməzsiniz, lakin hesablanmış sahələrdən istifadə edərək istədiyiniz qədər sahə əlavə edə bilərsiniz.

    Hesablanmış sahənin "İfadə" sütununda, onların yoluna daxil olan məlumat tərkibi sahələrindən istifadə edən ixtiyari bir ifadə yazmalısınız ("Məlumat dəstləri" sekmesinde "Yol" sütunu). Ya riyazi çevrilmə funksiyalarından istifadə edə, ya da ümumi modulların funksiyalarına daxil ola bilərsiniz. Məsələn, “Məlumat yolu” sütununa hesablanmış sahənin adını “Sapma”, “İfadə” sahəsinə isə aşağıdakıları yazaq:

    Məbləğ - Qiymət* Kəmiyyət

    Başqa birinə baxın və siz də bu funksiyalardan istifadə edərək yükləyə bilərsiniz.

    Əsasən, hesablanmış sahələr layout sahələri ilə eyni parametrlərə malikdir. Burada çatışmayan yeganə şey Hiyerarşi Qrupu sütunudur. Hesablanmış sahələri yazarkən siz digər hesablanmış sahələrə istinad edə bilməzsiniz.

    Hesabat forması yaratmadan girişə nəzarət sistemində qurulmuş hesabata parametrləri və seçimləri necə ötürmək olar?

    &OnClient // Parametrlərin ACS hesabatına ötürülməsi Prosedur Əmr Emalı(Əmr Parametri, Əmr İcra Parametrləri) Seçim = Yeni Struktur("Nomenklatura", Əmr Parametri) ; FixedSettings = GetFixedSettings() ; FormParameters = Yeni Struktur( "Forma Açılış, Seçim, Seçim Açarı, Sabit Parametrlər", Həqiqət, Seçim, "Satış Hesabatı Seçimi", FixedSettings); OpenForm( "Report.SalesReport.Form", FormParameters); EndProcedure &OnServer Funksiyası GetFixedSettings()SalesReport = Hesabatlar. Satış hesabatı. Yarat (); SKD = ​​Satış Hesabatı. DataCompositionSchema; Parametrlər = SKD. Standart parametrlər; Dövrün başlanğıcı = Parametrlər. Məlumat Parametrləri. FindParameterValue( NewDataCompositionParameter("BeginPeriod" ) ); Dövrün başlanğıcı. Dəyər = StartMonth(CurrentDate()); Dövrün başlanğıcı. İstifadə = Doğrudur; Dövrün başlanğıcı = Parametrlər. Məlumat Parametrləri. FindParameterValue( NewDataCompositionParameter("EndPeriod") ); Dövrün Sonu. Dəyər = EndMonth(CurrentDate()); Dövrün Sonu. İstifadə = Doğrudur; Qayıdış Parametrləri; EndFunction // GetFixedSettings()

    ACS hesabatında sütun başlıqlarını necə mərkəzləşdirmək olar?

    "Məlumat dəstləri" sekmesinde "Dizayn" sahəsində iki parametr təyin etməlisiniz:

    Üfüqi mövqe: Mərkəz Şaquli mövqe: Mərkəz

    Aşağıdakı "Parametrlər" sekmesinde başqa bir nişanı tapa bilərsiniz: "Şərti görünüş". Orada hər qruplaşma, parametr və s. dizaynı istədiyiniz kimi qura bilərsiniz.

    Deyəsən sənə hər şeyi dedim! Yadınızdadırsa, sualınız varsa, sual vermək imkanınız var. cavab verməyə çalışacağam. Gələcəkdə bu mövzuda daha çox məqalə yazmağı planlaşdırıram, buna görə də əldən qaçırmamaq üçün veb saytımızdakı yeniləmələrə abunə olmağı unutmayın! Həm də bu dərsdən materialı möhkəmləndirmək üçün mütləq test hazırlayacağam.

    Məqalənin sonunda sizə Anatoli Sotnikovdan pulsuz olanı tövsiyə etmək istəyirəm. Bu, təcrübəli bir proqramçının kursudur. O, ayrıca girişə nəzarət sistemində hesabatların necə qurulacağını sizə göstərəcək. Sadəcə diqqətlə dinləmək və yadda saxlamaq lazımdır! Aşağıdakı suallara cavab alacaqsınız:
    • Sadə bir siyahı hesabatını necə yaratmaq olar?
    • "Sahələr" tabındakı Sahə, Yol və Başlıq sütunları nə üçündür?
    • Layout sahələri üçün hansı məhdudiyyətlər var?
    • Rolları necə düzgün konfiqurasiya etmək olar?
    • Layout sahələri üçün hansı rollar var?
    • Sorğuda məlumat tərkibi tabını harada tapa bilərəm?
    • Girişə nəzarət sistemində parametrləri necə konfiqurasiya etmək olar?
    • Daha da maraqlı olur...
    Yəqin ki, lazımi məlumatları axtarmaq üçün özünüz İnternetdə gəzməyə çalışmamalısınız? Üstəlik, hər şey istifadəyə hazırdır. Sadəcə başlayın! Pulsuz video dərslərdə olanlarla bağlı bütün təfərrüatlar

    Bu qısa qeyddə mən məlumat kompozisiya sistemindən istifadə edərək hesabatda qruplaşdırmanın müxtəlif səviyyələrində dəyərləri necə ümumiləşdirə biləcəyinizi göstərmək istəyirəm.
    Şəkildə göstərildiyi kimi, yalnız "Eşya Qrupları" qruplaşdırma səviyyəsində "Sifariş" resursu hesablanır, müəyyən şərtlərə əsasən cari element qrupu üçün nə qədər sifariş edilməli olduğunu göstərir:


    Bu dəyər yalnız bu qruplaşdırma səviyyəsində hesablana bilər, çünki hesablamaq üçün yuxarıda və ya aşağıda heç bir dəyər yoxdur. Məsələn, təfərrüatlı qeydlər səviyyəsində qrupdakı maksimum kəmiyyət haqqında heç bir məlumat yoxdur, çünki bu məlumatlar yalnız bütövlükdə qrup üçün etibarlıdır, onun ayrı-ayrı komponentləri üçün deyil.

    Müvafiq olaraq, indi yuxarıda göstərilən qruplaşmalar üzrə ("Anbarlar", "Anbar növləri") və ümumi cəmini hesablamaq lazımdır.
    Bunu etmək üçün funksiyadan istifadə edin ExpressionWithGroupArray ilə hesablayın:
    GROUPARRAY İLƏ İFADƏNI QİYMƏTLƏNDİRİN (QROUPARRAY İLƏ EVALİFADƏSİ)
    Sintaksis:
    EvaluateExpressionWithGroupArray(,)
    Təsvir:
    Funksiya hər bir elementi göstərilən sahə üzrə qruplaşdırmaq üçün ifadənin qiymətləndirilməsinin nəticəsini ehtiva edən massivi qaytarır.
    Layout compositor, layout yaradan zaman, funksiya parametrlərini məlumat kompozisiyasının tərtibatı sahələri baxımından çevirir. Məsələn, Hesab sahəsi DataSet.Account-a çevriləcək.
    İfadəsi yalnız CalculateArrayWithGroupArray() funksiyasını ehtiva edən fərdi sahənin çıxışı üçün ifadələr yaradan zaman tərtibat qurucusu çıxış məlumatının sıralanması üçün çıxış ifadəsini yaradır. Məsələn, ifadəsi olan fərdi sahə üçün:

    CalculateExpressionWithGroupArray("Məbləğ(MəbləğDövriyyə)", "Qarşı tərəf")
    Layout qurucusu çıxış üçün aşağıdakı ifadəni yaradacaq:

    Qoşulma Satırları(Məssilə(Sifariş(QruplaşdırmaDəyəriCədvəli ilə İfadə Hesabı("Görünüş(Cəmi(DataSet.MəbləğTurnover))),Cəmi(DataSet.AmountTurnover)","DataSet.Account"),"2")))

    Seçimlər:

    Növ: simli. Qiymətləndiriləcək ifadə. String, məsələn, Amount(AmountTurnover).

    Növ: simli. Sahə ifadələrinin qruplaşdırılması – vergüllə ayrılmış qruplaşma sahələrinin ifadələri. Məsələn, Podratçı, Tərəf.

    Növ: simli. Təfərrüat qeydlərinə tətbiq edilən seçimi təsvir edən ifadə. İfadə məcmu funksiyaların istifadəsini dəstəkləmir. Məsələn, DeletionFlag = False.

    Növ: simli. Qrup qeydlərinə tətbiq edilən seçimi təsvir edən ifadə. Məsələn, Amount(AmountTurnover) > &Parameter1.
    Misal:

    Maksimum(CalculateExpressionWithGroupArray("Məbləğ(MəbləğDövriyyə)", "Qarşı tərəf"));

    Funksiya sintaksisinin ətraflı təsviri ilə http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 ünvanında tanış olmaq olar.
    İndi hesablama üçün "Sifariş" sahəsini müxtəlif dəyərlərlə "Hesablayın ..." ilə təkrarlayırıq, aşağıdakı ifadələrdən istifadə edərək, qeyd edin ki, hər bir yuxarı səviyyədə qruplaşmaların altındakı səviyyələrin dəyərlərindən istifadə olunur. .

    Nəticədə aşağıdakı tikintini əldə edirik: