1s 8.3 isteğe bağlı dinamik siyahı sorğu parametrləri.

Çap (Ctrl+P)

Dinamik siyahı

1. Ümumi məlumat

Dinamik siyahı, verilənlər bazası cədvəllərindən ixtiyari məlumatları formada göstərməyə imkan verən xüsusi məlumat növüdür. Bunu etmək üçün məlumatları göstərmək istədiyiniz cədvəli göstərməlisiniz və ya nəticədə seçimi sorğu dilində təsvir etməlisiniz.
Mexanizm verilənlərin kompozisiya sisteminə əsaslanır və alınan məlumatların çeşidlənməsi, seçilməsi, axtarışı, qruplaşdırılması və şərti formatlaşdırılması imkanlarını təmin edir. Bu halda, məlumat mənbəyi sistem tərəfindən avtomatik olaraq yaradılan (müəyyən edilmiş məlumatlar əsasında) və ya tərtibatçı tərəfindən əl ilə yazılan sorğudur.

düyü. 1. Dinamik siyahı yaratmaq üçün seçimlər

Növün forma atributlarını yaratarkən Dinamik Siyahı Bir tərtibatçı məlumat sorğusu yaratmaq üçün iki yol seçə bilər:
● Əsas cədvəli göstərməklə - bu halda siz sadəcə məlumat almaq istədiyiniz cədvəli (Əsas cədvəl xassəsini) təyin etməlisiniz və sistem avtomatik olaraq verilənlər üçün sorğu yaradacaq (Şəkil 2-də sağ hissəyə baxın). 1).
● Sorğunun əl ilə yaradılması - bunun üçün siz Xüsusi sorğu xassəsini təyin etməlisiniz (şək. 1-in sol tərəfinə baxın). Bundan sonra infobazadan məlumat əldə etmək üçün sorğunun əl ilə yaradılması mümkün olacaq.
Sorğu birdən çox cədvəldən məlumatları əldə edə bilər, beləliklə, siz əsas cədvəli təyin edə bilərsiniz. Bu ona görədir ki, dinamik siyahı hansı verilənlərin əsas, hansının ikinci dərəcəli olduğunu müəyyən edə bilsin və məlumatları düzgün seçib göstərə bilsin, həmçinin standart əmrləri təmin etsin. Lakin, sorğuda əsas cədvəli müəyyən etmək mümkün deyilsə, o zaman dəqiqləşdirilə bilməz, lakin sonra
dinamik siyahı əsas cədvəllə bağlı əmrləri təmin etməyəcək. Bundan əlavə, bu halda (əsas cədvəl göstərilmədən) dinamik siyahı ilə məlumatların əldə edilməsinin səmərəliliyi əhəmiyyətli dərəcədə azalacaq.
Performansı yaxşılaşdırmaq üçün, yalnız əlavə məlumat əldə etmək üçün fərdi sorğuda istifadə edilən hər hansı birləşmənin məlumat kompozisiya sistemi sorğu dili genişlənməsindən istifadə etməklə isteğe bağlı olması tövsiyə olunur.
Əsas forma atributu olan dinamik siyahı üçün forma parametrindən istifadə edərək seçim dəyərlərini təyin etmək mümkündür. Seçim. Bunu etmək üçün, parametrdə yerləşən struktur xüsusiyyətinin adının olması lazımdır Seçim,
dinamik siyahı seçim sahəsinin adı ilə üst-üstə düşür. Bu halda, struktur xassəsinin dəyəri seçim elementinin düzgün dəyəri kimi təyin olunacaq. Dinamik siyahı formasının Seçim parametrinin elementinin dəyəri kimi massiv, sabit massiv və ya dəyərlər siyahısı ötürülürsə, onda Siyahıda seçimi olan şərt düzgün dəyərdə seçimə əlavə edilir. bunlardan dəyərlər siyahısı yerləşdirilir (massiv və sabit massiv çevrilir).
Dinamik siyahıdakı ixtiyari sorğu sahənin dəyərini yaratmaq üçün parametrdən istifadə edilən sorğu ola bilər, məsələn:

SEÇİN
SEÇİM
ZAMAN Çatdırılma.əmsal = 1 SONRA &Təqdimat
ƏSGƏSƏ Çatdırılma. Əmsal
SON AS nisbəti
FROM

Bundan əlavə, əgər parametr dəyərinin növü obyekt atributunun növündən fərqlənirsə (məsələn, Təqdimat 1 növü var Nömrə, və parametr dəyəri növüdür Xətt), sonra sahəni düzgün göstərmək üçün parametr dəyərini açıq şəkildə istədiyiniz tipə köçürməlisiniz:

SEÇİN
SEÇİM
ZAMAN Çatdırılma. Əmsal = 1 SONRA İFADƏ EDİN(&String(100) AS) ALSE Çatdırılma. Əmsal
SON AS nisbəti
FROM
Sənəd.Məhsulların Çatdırılması NECƏ Çatdırılmalı

Əgər seçimin təyin olunduğu sahə funksional seçimlərdən istifadə etməklə deaktiv edilibsə, seçim dəyəri forma parametrləri və ya seçim parametri keçidləri kimi ötürülsə belə, belə sahə ilə seçim quraşdırılmır.
Dynamic data oxu xassəsindən istifadə edərək, siz dinamik siyahıya məlumatların kiçik hissələrdə oxunmasının zəruriliyini bildirirsiniz
(dinamik siyahı və məlumatların keşləşdirilməsindən istifadə edərək məlumat əldə etməyin yolları haqqında daha ətraflı məlumat üçün aşağıya baxın). Bu atributdan asılı olmayaraq, aşağıdakı şərtlər tətbiq olunur:

● Baxış rejimi iyerarxik siyahıya qoyulubsa, yalnız cari qrupun məlumatları və bütün əsas elementlərin məlumatları (uşaqlar olmadan) oxunacaq.
● Ağac görünüşü rejimi qurulubsa, yalnız açıq ağac qovşaqlarından verilənlər oxunacaq.
● İerarxik gözdən keçirmə (Display xassəsi Ağac olaraq təyin edilib) və ilkin ağac ekranı Bütün səviyyələri genişləndirməyə təyin edilərsə, dinamik siyahı məlumatlarının birdəfəlik yüklənməsi dəstəklənmir. Məlumat əldə etmək üçün göstərilən siyahıda qovşaqların sayı qədər serverə müraciət ediləcək.
Aşağıdakı şərtlər yerinə yetirildikdə, bir məlumat əldə etmə zamanı dinamik siyahı əvvəllər yaradılmış müvəqqəti cədvəllərdən yenidən istifadə edir:
● Siyahı toplu sorğunun əsas toplu sorğudan sonra sorğuları yoxdur.
● Müvəqqəti cədvəllərin və onlarda olan sahələrin tərkibi toplu sorğunun əvvəlki icrasından dəyişməzdir.

İşində dinamik siyahı metadata obyekti təfərrüatlarının aşağıdakı xüsusiyyətlərinin dəyərlərindən istifadə edir:
● format,
● redaktə formatı,
● işarə,
● mənfi dəyərləri vurğulamaq üçün işarə,
● maska,
● çox xətt rejimi işarəsi,
● təkmil redaktə işarəsi,
● parol rejimi.
Məlumat kompozisiya sisteminin seçimini və parametrlərini göstərərkən və redaktə edərkən müvafiq sahənin redaktə formatından istifadə olunur.

2. Məhdudiyyətlər və xüsusiyyətlər

Dinamik siyahıda seçimi qurarkən unutmayın ki, dinamik siyahı üçün ekran rejimi İerarxik Siyahı və ya Ağacdırsa, seçim qruplara təsir etmir. “Qruplar” dedikdə, kataloqun elementini və ya ThisGroup xassəsi True olaraq təyin edilmiş xarakterik tiplər planını nəzərdə tuturuq.
Dinamik siyahı tərəfindən standart detallara avtomatik olaraq tətbiq edilən keyfiyyətlər Sahib, Valideyn, Tarix, Dövr və Bu Qrupa tətbiq edilir.
standart məlumat kompozisiya sistemi alətlərindən istifadə etməklə. Dinamik siyahı ilə əsas sahələrə avtomatik tətbiq edilən seçimlər həm standart məlumat kompozisiya sistemi alətlərindən istifadə etməklə, həm də sorğu mətninə birbaşa şərtlər əlavə etməklə tətbiq oluna bilər. INəsas cədvəlin sahələrinə. Layout alətlərindən istifadə edərək seçimlərin tətbiqi nəticəsində onlar həm iç içə sorğularda, həm də virtual cədvəllərin parametrlərində tətbiq oluna bilər.

Dinamik siyahılar hazırlayarkən bütün dinamik siyahıları xüsusi sorğularla sınaqdan keçirmək tövsiyə olunur. Yoxlama prosesi zamanı əmin olmalısınız ki, əgər siyahı sorğusunda iç-içə sorğular və ya virtual cədvəllər varsa və onların içərisində standart detalların ləqəblərinə uyğun gələn ləqəbləri olan Sahib, Valideyn, Tarix, Dövr, Bu Qrup və ya əsas sahələrin mövcud olması seçsəniz, bu sahələr ləqəblərinin uyğun gəldiyi standart detallara uyğundur. Əgər belə deyilsə, sorğunu dəyişdirməlisiniz ki, onlar uyğun olsun və ya
ləqəbi başqa idi.
Əgər sorğunu əl ilə yaratmağı seçsəniz, sorğuya bəzi məhdudiyyətlər qoyulur:
● Dinamik siyahı sorğusunda FIRST ifadəsindən istifadə dəstəklənmir. Dinamik siyahıdakı qeydlərin sayı ilə məhdudlaşan seçimdən istifadə etmək lazımdırsa, dinamik siyahı yaratmaq üçün sorğunu elə bir şəkildə yenidən işləməlisiniz ki, sorğunun faktiki məzmunu alt sorğuda yerləşdirilsin və qeydlərin sayını məhdudlaşdırsın. bu alt sorğuda alındı. Alt sorğu əvəzinə müvəqqəti cədvəldən də istifadə edə bilərsiniz.
● Seçim, çeşidləmə və qruplaşdırma dəstəklənmir:

  • Cədvəl hissələrinin təfərrüatlarına görə.
  • Sahələrə baxın.
  • DataVersion sahəsi.
  • PredefinedDataName sahəsi.
  • Hesablar planı cədvəlinin növü sahəsi.
  • Sahə Yığım registrinin cədvəlinin Hərəkət növü.
  • Sahə Tipi Xarakterik tipli plan cədvəlinin dəyərləri.
  • Növ sahəsi Növü;
  • String tipli sahə (məhdud uzunluq).
  • BinaryData tipli sahə.

● Subconto sahələri üzrə çeşidləmə və qruplaşdırma dəstəklənmir<НомерСубконто>və ViewSubconto<НомерСубконто>Cədvəllərin Hərəkətləri Mühasibat uçotu registrinin alt hissəsi.
● Ümumi funksiyaları ehtiva edən sorğu dili ifadələri olan sahələr üzrə qruplaşdırma dəstəklənmir.
● Əsas cədvəl seçildikdə, dinamik siyahı sorğusu aşağıdakı məhdudiyyətlərə malikdir:

  • Qoşulmalar dəstəklənmir.
  • SİFARİŞ BY bölməsi dəstəklənmir. Siz əsas cədvəl olmadan sorğudan istifadə etməli və ya dinamik siyahı parametrləri vasitəsilə lazımi sifarişi təyin etməlisiniz.

● Dinamik siyahı iyerarxik siyahı və ya ağac kimi göstərilirsə, həmin girişin ən azı bir əsas elementi göstərilməyənə qədər giriş dinamik siyahı kimi göstərilməyəcək. Başqa sözlə, iyerarxik siyahının elementini göstərmək üçün dinamik siyahı da həmin elementin bütün valideynlərini siyahının yuxarısına qədər göstərməlidir. Bu halda, siyahının yuxarısı dedikdə biz ya nəzərdə tuturuq
dinamik siyahı ilə göstərilən iyerarxik obyektin kök elementi və ya dinamik siyahı üçün forma cədvəli genişləndirilməsinin ParentTopLevel xüsusiyyəti kimi təyin edilmiş element.

Aşağıdakı cədvəllərin dinamik siyahının əsas cədvəli kimi istifadəsi dəstəklənmir:

● Hər bir cədvəl qeydini unikal şəkildə müəyyən edən açarı olmayan cədvəl (obyekt cədvəlləri üçün istinad və registr cədvəlləri üçün qeyd açarı). Bununla belə, aşağıdakı cədvəllər dinamik siyahının əsas cədvəli kimi təyin edilə bilər (açar olmamasına baxmayaraq):

● mühasibat uçotu registrinin subconto cədvəli;
● MovementsSubconto cədvəlindən başqa mühasibat registrinin bütün virtual cədvəlləri;
● sabit dəyərlər cədvəlləri (sabitlər cədvəli daxil olmaqla);
● əsas sahələri olmayan xarici məlumat mənbələrinin cədvəlləri;
● xarici məlumat mənbələrinin kub cədvəlləri;
● yığım reyestr cədvəlləri:

  • inqilab masası;
  • balans cədvəli;
  • dövriyyə cədvəli və qalıqlar.

● hesablama registr cədvəlləri:

  • faktiki etibarlılıq müddəti cədvəli;
  • cədvəl məlumatları;
  • əsas məlumatlar.

● Obyektlərin cədvəl hissələrinin cədvəlləri;
● Qeydiyyat cədvəllərinin dəyişdirilməsi (məlumat mübadiləsi mexanizmlərində istifadə olunur);
● ardıcıllıq cədvəlləri;
● Konversiya cədvəlləri (dövri hesablaşma mexanizmlərində istifadə olunur).
● Sorğuda yalnız xarici birləşmədə istifadə olunan cədvəl.

Başqa sözlə, göstərilən əsas cədvəli olan dinamik siyahı düzgün işləyəcək, əgər sorğunun icrası nəticəsində
məlumat mənbəyi kimi göstərildikdə, əsas cədvəldən alınan cərgələrin sayı artmır (təyin edilmiş seçim nəzərə alınmaqla). Əgər sorğunun yerinə yetirilməsi nəticəsində sorğunun əsas cədvəldən əldə etdiyi sətirlərin sayı artırsa, bu, siyahının göstərdiyi cədvəlin qeydlərinin açarının unikallığının pozulmasına gətirib çıxaracaq. Bu halda, siz əsas dinamik siyahı cədvəlinin istifadəsini söndürməlisiniz.
Dinamik siyahı ilə işləyərkən siyahıda göstərilən detallara giriş hüquqlarını nəzərə almalısınız:
● Həmişə İstifadə xüsusiyyəti ilə işarələnmiş, lakin cari istifadəçinin Baxış hüququ olmayan dinamik siyahı sütunlarından verilənlər müştəri tərəfinə ötürülmür. Belə sütunların məlumatlarına giriş (CurrentData xüsusiyyətindən və RowData() metodundan istifadə etməklə)
müştəri tərəfində mümkün deyil.
● Əgər cari istifadəçinin dinamik siyahının əsas sahəsində Baxış hüququ yoxdursa, həmin dinamik siyahıdan məlumatların alınması girişin pozulması xətası ilə nəticələnir.
Sadalama siyahısını göstərən dinamik siyahı üçün siyahını interaktiv şəkildə fərdiləşdirmək üçün seçim yoxdur.
Dinamik siyahının sütunlarının tərkibi və parametrləri seçim sahələrinin ləqəblərindən istifadə edərək sorğu sahələri ilə əlaqələndirilir. Seçim sahəsi üçün sorğuda ləqəb açıq şəkildə göstərilməyibsə və sahə sistemdirsə, o zaman ləqəb kimi daxili dilin ingilis dili versiyası üçün sahə adı istifadə olunur.
Göstərilən əlaqə o deməkdir ki, dəyişdirilərkən (və ya avtomatik ləqəbin istifadə edildiyi sahə üçün ləqəb açıq şəkildə göstərildikdə)
dinamik siyahı məlumatlarını yaradan sorğu sahəsinin ləqəbi, dinamik siyahı atributunun parametrləri itiriləcək, forma elementləri göstərilən detalları “itirəcək”, dinamik siyahı parametrləri yanlış olacaq və s.
Dinamik siyahının məlumat mənbəyi dövrə görə seçimi təyin etməyə imkan verən cədvəldirsə (normal və ya virtual), onda istifadəçi belə bir dinamik siyahıda göstərmə müddətini təyin edirsə (Tarix aralığını təyin et... əmri),
göstərilən dövr sərhədləri seçim dəyərləri və ya virtual cədvəl parametrləri kimi təyin olunacaq. Əgər dil genişləndirilməsi vasitəsi ilə
məlumat kompozisiya sistemi üçün sorğular, virtual cədvəl parametrlərinin adları açıq şəkildə göstərilmişdir - göstərilən parametrlərlə parametrlər
adlar. Məlumatların göstərilməsi və ya işlənməsi müddətinə nəzarət etmək mümkün olan cədvəllər:
● dövrlər üzrə seçmək mümkün olan cədvəllərin (əsas və ya virtual) qeydiyyatı (hesablama reyestri üçün - qeydiyyat müddəti üzrə);
● sənədlərin, iş proseslərinin və tapşırıqların əsas cədvəlləri;
● sənəd jurnallarının əsas cədvəlləri;
● əsas ardıcıllıq cədvəlləri, ardıcıllıq sərhədi cədvəlləri.
Dinamik siyahı sorğusu parametri massiv və ya dəyərlər siyahısı ola bilər. Bununla belə, əgər parametr dəyərlər siyahısıdırsa, o zaman siyahıda yalnız birinci dəyər filtr dəyəri kimi istifadə olunacaq. Dinamik siyahı parametrləri olan sorğudan istifadə edirsə, parametr dəyərlərinin ilkin qəbulu OnCreateOnServer işləyicisində yerinə yetirilməlidir.
Dinamik siyahı məlumatlarını göstərərkən aşağıdakı məqamları yadda saxlayın:
● Dinamik siyahının xassələrini proqramlı şəkildə dəyişdirdiyiniz zaman siyahı ilə əlaqəli əmr panelləri avtomatik olaraq yenidən doldurulmur.
bu dinamik siyahı ilə.
● Bir neçə sahə xanada qruplaşdırma rejimi ilə qrupa qruplaşdırılıbsa və qruplaşdırılmış sahələrdə qeyd qutusu kimi göstərilən sahə varsa, bu qeyd xanası həmişə ilk olaraq nəticədə yaranan xanada göstəriləcək (xananın solunda mətn).
Dinamik siyahıda ifadələrinə parametrlər, sahələr və ya hərflər daxil olan sahələr üçün məlumat növünü təyin edərkən, nəticədə yaranan tip sahələrin və hərflərin növləri ilə müəyyən edilir. Parametr dəyər növü nəticədə əldə edilən məlumat növünə daxil deyilsə, onun dəyəri kəsiləcək.
Məsələn, aşağıdakı misalda sahə Number tipli olacaq.

SEÇİM
YALAN OLDUĞUNDA
SONRA 5
BAŞQA
&Parametr
SON

Parametr parametrini başqa bir növ dəyərə təyin etsəniz, bu sahə üçün dinamik siyahı 0 dəyərini alacaq (Nömrə növü üçün standart dəyər).
Əgər belə bir vəziyyətdə başqa tipli bir parametr seçmək lazımdırsa, sorğu dili konstruksiyasından istifadə etmək tövsiyə olunur. EXPRESS. Misal üçün,
yuxarıdakı misalda parametrə 100 simvoldan çox olmayan bir sətir keçmək lazımdırsa, onda parametrin sadə göstəricisini açıq tipli bir ifadə ilə əvəz etməlisiniz:

SEÇİM
YALAN OLDUĞUNDA
SONRA 5
BAŞQA
EXPRESS(&Parametr AS Sətir(100))
SON

Dinamik siyahı sorğusunun ixtiyari mətni seçim sahələrinin ifadələrində parametrlərdən istifadə edirsə, konstruksiyadan istifadə edərək parametrlərin növünü açıq şəkildə göstərməlisiniz. EXPRESS. Məsələn, əvəzinə &Nomenklatura AS Nomenklatura istifadə edin
EXPRESS(&Nomenklatura AS Directory.Nomenklatura) AS Nomenklatura. Əks halda axtarış çubuğunda axtarış işləyə bilər
səhv və ya səhvlər yaradır.

3. Dinamik siyahı ilə verilənlərin axtarışı və keşləşdirilməsi üsulları

Göstərmək üçün məlumat əldə edərkən dinamik siyahı üç üsuldan birini istifadə edir:
1. Verilənlər bazasından oxuma siyahı tərəfindən eyni vaxtda göstərilən sətirlərin sayından bir qədər çox olan məlumat elementlərinin sayı (lakin 20-dən az olmamaqla) olan hissələrdə həyata keçirilir. Məlumat serverdə keşlənmir.
2. Verilənlər bazasından oxuma 1000 məlumat elementindən ibarət səhifələrdə aparılır. Məlumat serverdə keşlənir. İerarxik məlumatlar keşlənir: hər bir valideyn üçün 2 səhifədən çox element keşlənmir. Hər dinamik siyahıda 20 səhifədən çox element keşlənmir. Keşləmə aşağıdakı cədvəllər üçün dinamik siyahı ilə aktivləşdiriləcək:
● Seçim meyarları;
● Əsas cədvəl və MovementsSubconto cədvəli istisna olmaqla, mühasibat registrinin bütün cədvəlləri;
● Əsas cədvəldən başqa bütün yığım reyestr cədvəlləri;
● Əsas cədvəldən başqa informasiya reyestrinin bütün cədvəlləri;
● Əsas cədvəldən başqa hesablama registrinin bütün cədvəlləri;
● İcraçı tərəfindən Tapşırıqların virtual cədvəli;
● Açarsız xarici mənbələrin cədvəlləri;
● Xarici mənbələrdən kublar.

3. Verilənlər bazasından oxuma 1000 elementdən ibarət səhifələrdə həyata keçirilir. Birinci hissə 1 səhifəyə bərabərdir. Hər bir sonrakı hissə 1 səhifə artır (əvvəlki nümunənin sonuna çatdıqda). “Baxış nöqtəsi” göstərilən məlumatın sonuna nə qədər yaxın olarsa, nümunə verilənlər bazasından bir o qədər böyük oxunur və nəticədə bütün göstərilən məlumatlara bərabər olur. Məlumat serverdə keşlənir. Keş və dinamik siyahıdakı girişlərin maksimum sayı 1.000.000-dır.
Dinamik siyahının əsas cədvəli ilə nə seçildiyindən və Dinamik oxu xassəsinin hansı dəyəri aldığından asılı olaraq məlumatların oxunması üçün bu və ya digər üsul istifadə olunur:

● Əsas cədvəl əmlakının dəyəri kimi aşağıdakı cədvəllərdən biri göstərilir: mübadilə planı, kataloq, sənədlərin siyahısı, sənəd jurnalı, xarakteristikalar planı, hesablar planı, hesablama növlərinin planı, iş prosesi, tapşırıq, cədvəl. iş prosesi nöqtələri:



● Əsas cədvəl xassəsinin dəyəri kimi aşağıdakı cədvəllərdən biri göstərilmişdir: məlumat registrinin əsas cədvəli, yığım reyestri, mühasibat uçotu reyestri, hesablama reyestri, MovementsSubconto mühasibat registrinin virtual cədvəli:

● Dinamik oxu xüsusiyyəti:
● Quraşdırılıb: üsul 1 istifadə olunur (metodların təsviri yuxarıda verilmişdir).
● Reset: Metod 2 istifadə olunur (metodların təsviri yuxarıda verilmişdir).

● Əsas cədvəl xassəsinə icraçı üzrə seçim meyar cədvəli və ya tapşırıq cədvəli (Tasks By Performer) daxildir:
● Cədvəl sırasını müəyyən edən açar: Link.

● Main table xassəsi SliceFirst və ya SliceLast informasiya registrinin virtual cədvəlini təyin edir:
● Cədvəl sırasını təyin edən açar: RecordKey.
● Dynamic Read xüsusiyyəti tətbiq edilmir.
● Metod 2 istifadə olunur (metodların təsviri yuxarıda verilmişdir).

● Əsas cədvəl xassəsi yuxarıda sadalananlar istisna olmaqla, virtual registr cədvəllərindən birinə təyin edilmişdir:

● Dynamic Read xüsusiyyəti tətbiq edilmir.

● Əsas cədvəl xassəsi göstərilməyib, ixtiyari sorğu istifadə olunur:
● Cədvəl sırasını təyin edən açar: Nömrə.
● Dynamic Read xüsusiyyəti tətbiq edilmir.
● Metod 3 istifadə olunur (metodların təsviri yuxarıda verilmişdir).

Göstərmək üçün məlumatlar müştəriyə hissələrdə ötürülür, ölçüsü məlumatların oxunmasının 1-ci metodunda (bu bölmənin əvvəlində təsvir edilmişdir) hissənin ölçüsünə bənzəyir.
Dinamik siyahıdan ibarət forma yaratdığınız zaman hər görünən dinamik siyahı üçün 45 məlumat elementi əvvəlcə müştəriyə ötürülür (siyahıda 45-dən çox element varsa). Dinamik siyahıda 45-dən çox sətir göstərilirsə, çatışmayan məlumat elementlərini əldə etmək üçün forma açıldıqda əlavə server çağırışı ediləcək.

4. Dinamik siyahı parametrləri

Əmlak siyahısı parametrləri - Açıq hiperlinkə klikləməklə, dinamik siyahının ekranını qurmaq üçün forma açılır. Siyahının qurulması verilənlərin kompozisiya sistemindəki oxşar əməliyyatlarla eyni şəkildə həyata keçirilir.


düyü. 2. Dinamik siyahının şərti üslubu

Konfiqurasiyada dinamik siyahı qurarkən, proqram tərtibatçısının aşağıdakıları etmək imkanı var:
● çeşidləmək istədiyiniz sahələri təyin edin;
● siyahıda verilənlərin seçimini təsvir etmək;
● şərti görünüş parametrlərini təyin etmək;
● verilənləri qruplaşdırmaq istədiyiniz sahələri təyin edin.
Sistem tərəfindən quraşdırılmış standart çeşidləmə sizi qane etmirsə, çeşidləməni tərtibatçıya təyin etməyin mənası var.

MƏSLƏHƏT. Yadda saxlamaq lazımdır ki, çeşidləmə sahələrinin zəif seçilməsi (həmçinin məlumatların seçilməsi və qruplaşdırılması) dinamik seçmənin səmərəliliyinə mənfi təsir göstərir.
Proqram tərtibatçısı baxımından dinamik siyahı parametrləri bir-biri ilə əlaqəli bir neçə hissədən ibarətdir. Dinamik siyahının parametrlərini idarə edə biləcəyiniz əsas xüsusiyyətdir LinkerSettings. Bu obyekt sistem işləyərkən dinamik siyahıya tətbiq edilən son parametrləri təyin edən üç parametr dəstindən ibarətdir:
● Parametrlər – Konfiqurator rejimində yaradılmış parametrlər. Dinamik siyahının Sifariş xassəsi dinamik siyahının parametrlər qurucusunun Settings.Order xassəsinə sürətli çıxışı təmin edir, beləliklə, aşağıdakı konstruksiyalar ekvivalentdir:
List.Order və List.SettingsLinker.Settings.Order;
● UserSettings – bunlar 1C:Müəssisə rejimində istifadəçi tərəfindən dəyişdirilən parametrlərdir;
● Sabit Parametrlər – bu parametrlər daxili dildən təyin edilir. Bu xüsusiyyət həmçinin parametrlərindən istifadə edərək formaya köçürülən seçim dəyərlərini ehtiva edir. Seçim, Seçimlər, Şərti Görünüş dinamik siyahı xüsusiyyətləri dinamik siyahı parametrləri qurucusunun sabit parametrlərinə sürətli çıxışı təmin edir. Başqa sözlə, bu zənglər ekvivalentdir:
List.Settings Composer.FixedSettings.Selection və List.Selection.
Dinamik siyahı üçün son parametrləri yaratarkən müxtəlif parametrlər aşağıdakı kimi birləşdirilir:
● Əgər hər hansı bir parametr növü tamamilə fərdi olaraq qeyd olunubsa, nəticədə yaranan parametrlərə fərdi parametrlər daxildir
(List.ComposerSettings.UserSettings). Bundan əlavə, əgər hər hansı parametr elementləri əlçatmaz kimi qeyd olunubsa, bu parametrlər List.Settings Composer xassəsindən əldə edilən parametrlərdə yerləşdiriləcək. Parametrlər.
● Hər hansı parametr növü tamamilə deyil, element-əlement olaraq fərdi olaraq qeyd olunubsa, onda:
● Xüsusi kimi qeyd olunan elementlər List.SettingsComposer.CustomSettings xassəsindən əldə edilən parametrlərə daxil ediləcək.
● Əlçatmaz kimi qeyd olunan elementlər List.SettingsComposer.Settings xassəsindən əldə edilən parametrlərə daxil ediləcək.
● Sabit parametrlər (List.SettingsComposer.FixedSettings) əldə edilən parametrlərə “olduğu kimi” əlavə edilir. Eyni zamanda, sabit və istifadəçi parametrlərinin eyni adlı parametrləri, məsələn, vəziyyətdə eyni sol dəyəri olan seçimləri ehtiva etməsi qəbuledilməzdir.

Dinamik siyahı parametrləri funksional seçimlərdən istifadə edərək deaktiv edilmiş parametrləri ehtiva edirsə, dinamik siyahı məlumatları əldə edildikdə bu parametrlər mövcud parametrlər siyahısından silinəcək.
Hansı parametrlərin istifadəçi üçün əlçatan olacağına və hansının olmayacağına nəzarət dinamik siyahı parametrləri pəncərəsində həyata keçirilir.


düyü. 3. İstifadəçi parametrlərinə daxil edilməsinə nəzarət edin

Pəncərənin altındakı onay qutusu (şək. 3-ə baxın) parametrlərdə bütün növ parametrlərin (normal və ya sürətli) yerləşdirilməsi üçün məsuliyyət daşıyır. Bu xüsusiyyət seçmək, sifariş etmək, qruplaşdırmaq və şərtləndirmək üçün əlçatandır. Parametrlər Sürətli Seçim redaktə rejimi ilə göstərilibsə, dinamik siyahını göstərən forma cədvəlinin İstifadəçi Parametrləri Qrupu xassəsində, sürətli istifadəçi parametrləri ilə əlaqəli elementlərin olduğu formanın boş bir qrupunu göstərməlisiniz. dinamik siyahı yerləşəcək. Qrup göstərilməyibsə, sürətli istifadəçi parametrləri formada göstərilməyəcək. Dinamik siyahı genişlənməsinin CreateCustomSettingsFormItems() metodundan istifadə edərək daxili dildən istifadə edərək xüsusi parametrlərin yaradılmasına açıq şəkildə müraciət etmək də mümkündür.
Həmçinin istifadəçi parametrlərində xüsusi parametrlər elementlərinin yerləşdirilib-yerləşdirilməməsini seçmək mümkündür. Bu xüsusiyyət seçim və şərti dizayn elementləri üçün mövcuddur (Şəkil 3-ə baxın).

Dinamik siyahı açarkən yüklənəcək hər hansı xüsusi parametrlərə ehtiyacınız varsa, bu iki yolla edilə bilər:
● UserSettings dinamik siyahı forması parametrindən istifadə. Bu parametrdə olan məlumatlar istifadəçinin dinamik siyahı parametrlərində yerləşdiriləcək.
● dinamik siyahı forması parametriUserSettingsKey istifadə edərək. Formanı açarkən bu parametri göstərsəniz, göstərilən düymə ilə parametrlər yaddaşında yerləşən istifadəçi parametrləri formanın əsas atributu olan dinamik siyahıya yüklənəcəkdir.

5. Dinamik siyahıda axtarın

Formada yerləşən dinamik siyahı göstərilən məlumatları interaktiv şəkildə axtarmaq imkanı verir. Axtarış aşağıdakı alətlərdən istifadə etməklə həyata keçirilə bilər: axtarış paneli, axtarış dialoqu, cari dəyəri axtarın, axtarış tarixçəsindən istifadə edərək və dövrü təyin edin (sənədləri göstərən dinamik siyahılar üçün). Axtarış nəticəsi məhdud sayda qeydlər toplusudur
axtarış meyarlarına uyğun gələn dinamik siyahı (müəyyən istifadəçi üçün mövcud olanların).
Dinamik siyahının axtarış imkanlarına nəzarət etmək üçün idarə olunan formada dinamik siyahını göstərən üç cədvəl xüsusiyyəti var:
● Axtarış sətirinin mövqeyi – axtarış sətirinin mövqeyini müəyyən edir. Aşağıdakı dəyərləri qəbul edə bilər: Avtomatik, Komanda Paneli, Yoxdur, Üst, Aşağı.


düyü. 4. Dinamik siyahıda axtarış sətri

Əgər bu xüsusiyyətin dəyəri Komanda Panelinə təyin edilibsə, onda axtarış sətri forma komanda panelində (dinamik siyahı əsas forma atributudursa) və ya dinamik siyahı ilə əlaqəli komanda panelində göstəriləcək. Əmr çubuğunda yerləşdirilən axtarış çubuğu həmişə əmr panelinin sağ kənarına sıxılır (axtarış çubuğunun sağında yerləşən düymələrlə birlikdə).
Əgər xassə Xeyr olaraq təyin edilibsə, onda axtarış sətri formada olmayacaq və axtarış sətirini yazmağa başlayanda dialoq açılacaq.
Mülk Yuxarı olaraq təyin edilərsə, axtarış çubuğu siyahı əmr paneli ilə dinamik siyahını göstərən cədvəl arasında yerləşəcək. Xüsusiyyət Aşağı olaraq təyin edilərsə, axtarış sətri dinamik siyahını göstərən cədvəldən dərhal sonra yerləşdiriləcək.


● Uyğunluq Rejimi xüsusiyyəti İstifadə etməyin və ya Versiya 8.3.4-dən köhnədirsə – dəyər Komanda Panelidir.
Axtarış xəttinə aşağıdakı kimi gedin:
● Ctrl+F düymələr kombinasiyasını sıxmaqla;
● Siçan;
● Siz dinamik siyahıda yazmağa başladığınız zaman (dinamik siyahının SearchOnTyping xassəsinin dəyəri nəzərə alınmaqla).
● View State Position – görünüş vəziyyətinin harada göstəriləcəyini təsvir edir: hansı sahələr axtarılıb və hansı dəyərlər
hər sahədə axtarılır. Aşağıdakı dəyərləri qəbul edə bilər: Auto, None, Top, Bottom


düyü. 5. Dinamik siyahıda axtarış vəziyyəti

Xüsusiyyət Xeyr olaraq təyin edilərsə, görünüş vəziyyəti formada olmayacaq. Nəticədə, axtarışın başa çatıb-çatmadığını təkcə Axtarışı Ləğv et düyməsinin mövcudluğu ilə müəyyən etmək mümkün olacaq.
Əgər xüsusiyyət Yuxarı olaraq təyin edilibsə, görünüş vəziyyəti siyahı əmr paneli ilə dinamik siyahını göstərən cədvəl arasında yerləşəcək. Xüsusiyyət Aşağı olaraq təyin edilərsə, görünüş vəziyyəti dinamik siyahını göstərən cədvəldən dərhal sonra yerləşdiriləcək.
Forma 1C: Enterprise versiya 8.3.4 və daha əvvəl yaradılmışdırsa, mülkiyyət №-ə təyin edilir. Forma 1C: Enterprise 8.3.5 və daha köhnə versiyada yaradılıbsa, xüsusiyyət Avtomatik olaraq təyin olunur. Bu halda əmlakın real dəyəri aşağıdakı kimi müəyyən ediləcək:
● Uyğunluq Rejimi xassəsi Versiya 8.3.4 (və daha aşağı) olaraq təyin edilibsə – dəyər No;
● Uyğunluq Rejimi xüsusiyyəti İstifadə etməyin və ya Versiya 8.3.4-dən daha köhnədirsə – Yuxarı dəyər;
● Axtarışa Nəzarət Mövqeyi – Axtarışa nəzarət düyməsinin harada görünəcəyini müəyyən edir. Düymə aşağıdakı məlumatları ehtiva edən menyunu açır: cari dəyərə görə tap, Qabaqcıl axtarış, Axtarışı ləğv et, Müddəti təyin et (sənəd və jurnal siyahıları üçün) və axtarış sorğusu tarixçəsi (son 5 sorğu) əmrləri. Mülk aşağıdakı dəyərləri qəbul edə bilər: Auto, None, Komanda paneli.


düyü. 6. Dinamik siyahıda axtarışın idarə edilməsi

Əgər xüsusiyyət Xeyr olaraq təyin edilibsə, onda axtarışa nəzarət düyməsi formada olmayacaq (lakin əmrlər Daha çox menyusundan istifadə etməklə mövcud olacaq). Command Bar xassə dəyəri dinamik siyahını göstərən cədvəllə əlaqəli əmr panelinə düymə yerləşdirir.
Forma 1C: Enterprise versiya 8.3.4 və daha əvvəl yaradılmışdırsa, mülkiyyət №-ə təyin edilir. Forma 1C: Enterprise 8.3.5 və daha köhnə versiyada yaradılıbsa, xüsusiyyət Avtomatik olaraq təyin olunur. Bu halda əmlakın real dəyəri aşağıdakı kimi müəyyən ediləcək:
● Uyğunluq Rejimi xassəsi Versiya 8.3.4 (və daha aşağı) olaraq təyin edilibsə – dəyər No;
● Uyğunluq Rejimi xüsusiyyəti İstifadə etməyin və ya Versiya 8.3.4-dən köhnədirsə – dəyər Komanda Panelidir;
Bir formada bir neçə komanda paneli varsa, əmrlərin mənbəyi idarə olunan formanın bir cədvəlidir (dinamik siyahı məlumatlarını göstərir), onda axtarış xətti və axtarış idarəetmə düyməsi yalnız bir komanda panelində yerləşəcəkdir:
● Və ya dinamik siyahının özünün əmr panelində (əgər bunun üçün avtomatik tamamlama aktivdirsə)
● Və ya qalan komanda panellərindən hər hansı birində.

Dinamik siyahıda axtarışdan istifadənin xüsusiyyətlərinə baxaq:
● Axtarışı istifadə etmək üçün rahat etmək (o cümlədən, performans baxımından) dinamik siyahının əsas cədvəli kimi istifadə oluna bilən bütün konfiqurasiya obyektləri üçün tam mətn axtarışını aktivləşdirməlisiniz. Həmçinin, tam mətnli axtarışa dinamik siyahıda göstərilə bilən və axtarış tələb oluna bilən konfiqurasiya obyektlərinin bütün təfərrüatları daxil edilməlidir.
Əgər obyekt tam mətn axtarışından çıxarılıbsa, o zaman sözügedən axtarış mexanizmi işləyəcək, lakin belə axtarışın performansı son dərəcə aşağı olacaq. Tam mətn axtarışı ilə indeksləşdirilməyən obyektlərdə axtarışdan istifadə etmək tövsiyə edilmir.
● Tətbiq həllində tam mətnli axtarış indeksini mütəmadi olaraq yeniləyən adi tapşırıq olmalıdır.

● Axtarış dinamik siyahının (və konfiqurasiya obyektinin) bütün sütunları üzrə deyil, yalnız cədvəldə göstərilən sütunlar vasitəsilə həyata keçirilir.
● Dinamik siyahıda ixtiyari təsviri olan istinad növlərinin sahələri üzrə axtarış üçün istifadə olunan sahələr tərəfindən həyata keçirilir.
təmsilin formalaşması (bax burada). Görünüşə daxil olan sahələr müvafiq obyektin ViewFieldGettingProcessing() işləyicisi nəzərə alınmaqla əldə edilir.
● Müəyyən edilmiş əsas cədvəli olan dinamik siyahılar üçün əsas cədvəldə tam mətn axtarışından istifadə edilir. Əsas cədvəldəki bütün indekslənməmiş keçidlər tam mətnli axtarış nəticələrinə əlavə olunacaq. Əsas cədvəl üçün tam mətn axtarışının nəticəsi əsas sahələrə əsaslanan seçim kimi istifadə olunur. Tam mətn axtarışı digər cədvəllərdən siyahıda göstərilən sahələrdə də həyata keçirilir (əgər sahə və konfiqurasiya obyekti tam mətnli axtarışdan istifadə edirsə). Tam mətn axtarışı aktiv olmadan, data ola bilər
tapıldı, amma axtarışın özü çox yavaş olacaq.
Tam mətn axtarışını yerinə yetirmək cəhdi zamanı xəta baş verərsə, axtarış tam mətn axtarışı tətbiq edilmədən həyata keçiriləcək.
Məsələn, bu, məlumat bazasında bu hərflə başlayan bir hərf və çoxlu sayda sətir axtararkən baş verə bilər.
● Dinamik siyahının əsas cədvəlindəki sahə üçün Bərabər müqayisə tipli seçim istifadə olunarsa, tam mətnli axtarış aparılarkən bu cədvəl üçün axtarış sorğusuna seçim dəyəri əlavə olunacaq.
● Axtarış sətri sözlərə bölünür. Bu bölmə aşağıdakı qaydalara uyğun olaraq həyata keçirilir:
● Boşluq və nişan simvollarından ayırıcı kimi istifadə etməklə xətt kəsilir.
● Sonra hər bir nəticə fraqmenti işlənir:
● Əgər fraqment cari seans dilinə əsaslanan tarix təsviridirsə (vaxtla və ya vaxtsız), o zaman söz fraqmentdir.
● Əks halda, fraqment ayırıcı kimi “,.-/\” simvollarından istifadə etməklə daha da bölünür. Bu halda, hər bir nəticə sətir fraqmenti söz kimi qəbul edilir.

● Hər bir söz üçün “OR tərəfindən” birləşdirilən öz şərtlər toplusu formalaşır. Bu sahənin alındığı cədvəldə verilmiş sözün tam mətnli axtarışı ən azı bir obyekti qaytardıqda və ya bu sahə üçün tam mətn axtarışından istifadə edilmədikdə bu şərtlər toplusu yaradılır. Şərtlər aşağıdakı kimi formalaşır:
● String tipli sahə üçün şərt FieldName LIKE %Word%-dir.
● Nömrə tipli sahə üçün şərt FieldName=Value formasına malikdir, burada Dəyər Nömrə növünə çevrilmiş sözdür. Əgər cast həyata keçirilə bilməzsə, sahə axtarışı həyata keçirilməyəcək.
● Söz cari sessiya üçün müəyyən edilmiş defolt Boole təsvirində alt sətir kimi axtarılır. Axtarış sözü görünüşdə tapılarsa, o, sözün tapıldığı görünüşə uyğun olan dəyəri axtarır. Bu halda, axtarış Format forma elementi xassəsindən istifadə etməklə müəyyən edilmiş görünüşlərdən istifadə etmir.
● Tarix tipli sahə üçün şərt FieldName>=StartofDay(Word) ANDFieldName kimi görünür<=КонецДня(Слово). Если Слово подобно дате, в которой год
bir və ya iki rəqəmlə göstərilən il cari əsrə endiriləcək və bu dəyər axtarış şərtinə əlavə olunacaq.
● İstinad sahələri üçün arayış görünüşünü yaratmaq üçün istifadə olunan sahələr üzrə axtarış aparılır. Bu sahələrin hər birində axtarış edin
yuxarıda göstərilən qaydalara uyğun olaraq həyata keçirilir. Axtarış fərdi məlumat təqdimatı yaratmaq üçün istifadə olunan sahələrdən istifadə etmir.
Hər bir söz üçün şərtlər toplusu “AND” ilə birləşdirilir.
● Başında sıfır olan dəyərlər üçün siz ya başda sıfır olan sətirdə, ya da başında sıfırlar olmadan göstərilən sətirdə axtarış edə bilərsiniz.
● Dinamik siyahı sənədlərin siyahısını və ya sənəd tarixçəsini göstərirsə, sizin təyin etdiyiniz siyahıya baxış intervalı da istədiyiniz dinamik siyahı üçün görünüş statusunu göstərmək üçün ayrılmış forma sahəsində göstərilir.
● Dinamik siyahının əsas cədvəli seçim meyarıdırsa, cari dəyər üzrə axtarış əmri mövcud deyil.
● Tapılan sətir fraqmentləri cədvəldə göstərildikdə vurğulanır.
● Bir sütun üçün yalnız bir axtarış sətri dəstəklənir. Artıq axtarılan sütun üçün yeni axtarış sorğusu əlavə edildikdə, bir araya əlavə edilən iki axtarış sorğusu əvəzinə axtarış ifadəsi əvəz olunacaq.
● Əgər formada forma elementi əlavəsi yoxdursa, dinamik siyahını göstərən cədvəllə əlaqəli Axtarış sətirinin ekranı (forma elementinin əlavəsi Mənbə xüsusiyyəti), onda Ctrl+F düymələr kombinasiyası axtarış dialoqunu açır.


düyü. 7. Axtarış dialoqu

Əgər forma dinamik siyahı göstərən cədvəllə (forma elementinin əlavəsi Mənbə xassəsi) əlaqəli Axtarış sətirinin göstərilməsi formasının əlavəsini ehtiva edirsə, onda axtarış dialoqunu açmaq üçün Qabaqcıl axtarış əmrindən istifadə etməlisiniz.
● Axtarış dialoqundan istifadə edərkən aşağıdakı məqamları yadda saxlayın:
● Klaviatura qısa yolundan istifadə edərək axtarış dialoqunun açılması cari xananın dəyərinin Nə axtarmalı sətirində görünməsinə səbəb olur və Axtarmaq üçün necə keçidinin dəyəri Dəqiq uyğunluğa görə təyin edilir.

● Dinamik siyahıda axtarış sətirini birbaşa yazmağa başlamaqla axtarış dialoqunun açılması ona gətirib çıxarır ki, Axtarış sətirinin dəyəri “Sətrin bir hissəsi ilə” dəyərinə təyin edilir və yazılan mətn Nə sahəsini axtarmaq üçün.

6. Dinamik siyahı ilə göstərilən məlumatların əldə edilməsi

Dinamik siyahılardan istifadə edərkən, tətbiq edilmiş seçimləri və axtarışları nəzərə alaraq, hazırda dinamik siyahı tərəfindən göstərilən məlumatlar üzərində müxtəlif hərəkətləri yerinə yetirməli ola bilərsiniz. Bu cür hərəkətlərə aşağıdakılar daxildir: göstərilən məlumatın işlənməsi, məsələn, seçilmiş sənədlərin yenidən göndərilməsi və ya seçilmiş obyektlər üçün bəzi detalların təyin edilməsi, mövcud obyektlərin siyahısının yaradılması (dizaynla və s.), məsələn, çap və ya elektron cədvəl sənədində saxlamaq üçün.
Dinamik siyahı ilə göstərilən məlumatları əldə etmək üçün siz GetExecutableDataCompositionScheme() və
GetExecutableDataCompositionSettings().
Məlumatların qəbulu nümunəsi:

Sxema = Elements.List.GetExecutableDataCompositionSchema();
Parametrlər = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Sxem, Parametrlər);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Məlumatların dəyər kolleksiyasına (cədvəl və ya dəyərlər siyahısı) daxil edilməsi də oxşar şəkildə həyata keçirilir.
Bu şəkildə dinamik siyahı məlumatlarının əldə edilməsi tətbiq həlləri hazırlayarkən nəzərə alınmalı olan bir sıra xüsusiyyətlərə malikdir:
● Aşağıdakı cədvəl dizaynı dəstəklənmir:
● Alternativ xətt rəngləri;
● Başlıq şəkli;
● Zirzəminin şəkli;
● Footer fon rəngi;
● Altbilgi mətninin rəngi;
● Altbilgi şrifti;
● Zirzəmidə üfüqi mövqe;
● Parol rejimi.
● İdarə olunan forma üçün müəyyən edilmiş şərti görünüş dəstəklənmir;
● Link tipli sahə üzrə iyerarxik cədvəli artan qaydada sifariş edərkən, boş keçidi olan qeydlər həmişə birinci yerləşdirilir.

Nəhayət, hər yeddi yaşlı uşağın arzusu gerçəkləşdi. 7.7 proqramının istifadəçiləri elementlərin normal seçimini nə qədər tez-tez xahiş edirdilər? Beləliklə, siz balansları, qiymətləri və təyin edilmiş filtrləri görə bilərsiniz. Xarici komponentlərin yazılması da daxil olmaqla, müxtəlif fəndlər tapmalı olduq. 1C 8.2-də dinamik siyahılar meydana çıxdı. Bunun nə olduğunu və 1C 8.3-də bizə nə verə biləcəyini nəzərdən keçirməyi təklif edirəm.

1C-nin müəyyən bir test konfiqurasiyasını əsas götürək: "Müəssisə Mühasibatlığı 3.0". İndi seçim etməyəcəyik, sadəcə “Nomenklatura” kataloquna başqa bir seçim forması əlavə edəcəyik və onu müvəqqəti olaraq əsas hala gətirəcəyik:

Yaradılan zaman sistem standart olaraq formaya “Dinamik Siyahı” tipli cədvəl sahəsi əlavə edəcəkdir.

Gəlin onun xassələrinə girək və orada nə olduğunu görək.

İlk növbədə, bizi “Xüsusi sorğu” qutusu maraqlandırır. Bu, bizə dinamik siyahının bütün üstünlüklərini açacaq. Parametrlərlə öz sorğumuzu yazmaq imkanımız olacaq. Qutunu işarələyin və "Açıq" linkini vurun:

-də bitmiş kodun olduğu bir pəncərə açılacaq. Hələlik “Nomenklatura” kataloqunun bütün sahələri sadəcə orada verilmişdir.

1C-də 267 video dərsi pulsuz əldə edin:

Gördüyünüz kimi, “ ” zəng düyməsi və siyahının məzmununu dinamik şəkildə dəyişməyə imkan verən qeyd qutusu var. Yəni başqa bir istifadəçi kataloqda nəyisə dəyişdikdə, bizim siyahıda da dəyişəcək. Bundan əlavə, "Parametrlər" nişanı var, lakin daha sonra buna toxunacağıq.

Dinamik siyahıda fərdi sorğu

Əvvəlcə balanslar və qiymətlərlə bizə lazım olan sorğunu yaradaq. Bunun kimi:

"Parametrlər" nişanı

Və indi ən yaxşı hissə! "Parametrlər" sekmesine keçin. Və dərhal görürük ki, birinci tabda sorğunun istənilən sahəsi üçün istənilən seçim edə bilərik:

Dinamik siyahıda sorğu parametrlərinin proqramlı şəkildə qurulması 1C 8.3

Unutmayın ki, sorğuda iki parametrimiz var: “Dövr” və “Qiymət növü”. Biz onları sorğuya ötürməliyik, əks halda xəta olacaq.

Bu parametrləri forma parametrlərinə yazaq və forma moduluna aşağıdakı sətirləri əlavə edək:

&OnServerProcedureWhenCreatingOnServer(Uğursuzluq, StandardProcessing) Siyahısı. Seçimlər. SetParameterValue("Dövr", Parametrlər. Tarix); Siyahı. Seçimlər. SetParameterValue("PriceType", Parameters.PriceType); EndProcedures Baxış Şüşəsindən Əsas Qeydlər

04/21/2014 Dinamik siyahı məlumatları qəbul edilir

8.3.6.1977 versiyasında həyata keçirilmişdir.

Biz dinamik siyahıdan istifadə edərək göstərilən məlumatları asanlıqla və rahat şəkildə əldə etmək qabiliyyətini həyata keçirmişik.

Qeyri-standart, “xüsusi” formada çap etmək üçün sizə dinamik siyahı məlumatı lazım ola bilər. Və ya onlarla müəyyən hərəkətlər etmək üçün. Məsələn, müəyyən meyarlar əsasında siyahıda seçdiyiniz bütün podratçılara məktub göndərin.

Bundan əlavə, istifadəçinin elementlər siyahısına əlavə olaraq, bu siyahı ilə əlaqəli xülasə məlumatlarını da görmək istədiyi bir sıra tapşırıqlar var. Məsələn, müəyyən bir məhsul qrupunun və müəyyən bir təchizatçının məhsullarını seçərək dərhal məlumat bazasında belə məhsulların ümumi sayını görmək istəyir.

Dinamik siyahı özlüyündə sizə bu məlumatı verə bilməz. Dinamik siyahının məqsədi böyük həcmli məlumatların tez görünməsini təmin etməkdir. Buna görə də, məlumatları bir və ya iki ekranda göstərmək üçün lazım olan hissələrdə oxuyur. Və "heç nə bilmir", məsələn, hesablamalı olduğu məlumatların ümumi miqdarı haqqında.

Ümumiyyətlə, istifadəçinin istədiyi əlavə məlumatı əldə etmək üçün verilənlər bazası sorğusunu yerinə yetirmək lazımdır. Dinamik siyahıda istifadə edilənlə tamamilə eynidir.

Əvvəllər bunu bacarırdın. Amma həmişə asan olmayıb. Axı, dinamik siyahının işlədiyi orijinal sorğunun mətninə əlavə olaraq, istifadəçinin məlumatları göstərən cədvəldə interaktiv olaraq təyin etdiyi bütün seçimləri, çeşidləmələri və digər parametrləri bilmək lazımdır.

İndi bu problemi sadə şəkildə həll etmək olar. Dinamik siyahı cədvəlində indi iki yeni üsul var:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Beləliklə, məlumatların yerləşdirilməsi sxeminin özünü və ən əsası, bütün parametrlərini əldə edirsiniz, bunun sayəsində istifadəçi siyahı tam olaraq belə görür. Sizə lazım olan tək şey planı proqramlı şəkildə tərtib etmək və onu dəyərlər toplusunda (proqramın işlənməsi üçün) və ya elektron cədvəl sənədində (göstərmək üçün) göstərməkdir:

Nəticədə, dinamik siyahı cədvəlində göstərilən sütun və sətirlərdən ibarət struktur (və ya hesabat) alacaqsınız.

Əhəmiyyətli məqam odur ki, dinamik siyahı cədvəlindən aldığınız tərtibat və parametrlər digər şeylər arasında sütunların görünməsi və tətbiq edilən axtarışı nəzərə alır. Parametrlər ayrıca alındığından, sahələrin tərkibini öz məqsədləriniz üçün dəyişdirə və məsələn, yalnız istifadəçiyə görünənləri deyil, siyahının bütün sütunlarını əldə edə bilərsiniz.

Elektron cədvəl sənədinə çıxararkən daha bir xoş məqam var. Ümumiyyətlə, hesabatın görünüşü sxem və parametrlərin qəbulu zamanı dinamik siyahı cədvəlinin görünüşünə uyğun olacaq. Cədvəlin şərti dizaynı da daxil olmaqla. Yalnız formanın şərti dizaynını hesabata köçürmək istəyirsinizsə, bəzi əlavə tədbirlərə ehtiyacınız olacaq.

Konfiqurasiyaların yekunlaşdırılması prosesində hər bir 1C proqramçısı dinamik siyahılarla qarşılaşır.
Dinamik siyahı verilənlər bazası obyektlərinin və ya qeyri-obyekt məlumatlarının müxtəlif siyahılarını - qeyd qeydlərini göstərmək üçün istifadə olunan interfeys obyektidir.
Məsələn, elementlərin siyahısını göstərmək üçün dinamik siyahıdan istifadə olunur:

Dinamik siyahının imkanlarını nümayiş etdirmək üçün xarici emal yaradaq və əsas formanı əlavə edək. Formaya “Dinamik Siyahı” tipli yeni atribut əlavə edək. Gəlin onun xassələrinə keçək və orada nə olduğunu görək.
Biz “Xüsusi sorğu” əmlakı ilə maraqlanırıq. Onu aktivləşdirmək bizə dinamik siyahının bütün imkanlarını göstərəcək. Biz 1C: Enterprise sistem sorğu dilinin demək olar ki, bütün imkanlarından istifadə edərək sorğu yaza biləcəyik. Qutunu işarələyin və "Açıq" linkini vurun:

Varsayılan olaraq, siyahımızda bütün anbarlar üçün ümumi balansı olan maddələrin siyahısı göstərilir. Belə bir siyahını həyata keçirmək üçün aşağıdakı sorğunu əlavə edin:


Əsas cədvəl olaraq biz “Directory.Nomenklatura” seçəcəyik, bu, nomenklatura siyahısında olduğu kimi dinamik siyahı ilə işləməyə imkan verəcək - silmək üçün kataloq elementlərini əlavə etmək, dəyişdirmək, qeyd etmək. Həmçinin, əsas cədvəlin quraşdırılması məlumatları dinamik şəkildə oxumağa imkan verir - bu o deməkdir ki, seçim lazım olduqda hissə-hissə ediləcək.
Sonra siyahımız üçün forma elementləri yaratmalıyıq:

Bu formada emal etməyə çalışsaq, xəta alacağıq:


Bunu aradan qaldırmaq üçün "Dövr" parametri üçün bir dəyər təyin etməlisiniz. Bunun üçün dinamik siyahının “Parameters” kolleksiyasının “SetParameterValue” metodundan istifadə edə bilərsiniz. Metod iki parametr alır:
. "Parametr" - Növ: String; DataCompositionParameter. Dəyərini təyin etmək istədiyiniz parametrin və ya məlumat tərkibi parametrinin adı;
. “Dəyər” - Növ: İxtiyari. Təyin ediləcək dəyər.
Formanın “OnCreateOnServer” işləyicisində çağırıla bilər:

Sualınız var və ya məsləhətçinin köməyinə ehtiyacınız var?


Biz istifadəçiyə qalıqların alınması müddətini dəyişmək imkanı verəcəyik. Bunu etmək üçün atribut və onunla əlaqəli "Tarix" forma elementini əlavə edin:


“Tarix” forma elementinin “OnChange” işləyicisində əlaqəli atributun dəyərini dəyər kimi ötürərək “SetParameterValue” metodunu çağıracağıq. Eyni şəkildə, formanın “When Creating On Server” prosedurunu dəyişdirək. Metod müştəridə mövcud olduğundan, serverə zəng etməyə ehtiyac yoxdur:


İndi tarix dəyişdikdə, qalıqlar avtomatik olaraq yenilənəcək:




Tutaq ki, istifadəçilər ya cari qalıqları, ya da planlaşdırılmış daxilolmaları görmək istəyirlər. İcra variantlarından birini nəzərdən keçirək. Boolean tipli forma atributunu və əlaqəli keçidi əlavə edək:


Keçidin dəyərini dəyişdirərkən, sorğunun mətnini dəyişdirəcəyik. Bunun üçün biz “Dəyişdirildikdə” hadisə idarəçisindən “Qəbzdə Miqdarı göstər” forma elementi üçün istifadə edəcəyik. Atributun dəyərindən asılı olaraq dinamik siyahının “QueryText” xassəsini dəyişdirməliyik. Bu xüsusiyyət müştəridə mövcud olmadığı üçün server proseduru çağırılmalıdır:


Edilən dəyişikliklərin nəticəsi:



İstənilən proqramlaşdırma dilində tapıla bilən primitiv məlumat tiplərinə əlavə olaraq, 1C-də unikal tiplər var. Onların hər birinin öz xüsusiyyətləri, üsulları, funksiyaları, məqsəd və sistemdə istifadə nüansları var. Bu növlərdən biri bir çox tətbiqi tapşırıqları asanlaşdıran dinamik siyahıdır. Buna görə tərtibatçılar bu universal aləti bilməli və idarə edə bilməlidirlər.

1C-də dinamik siyahıların xüsusiyyətləri

Bu növün məqsədi növündən asılı olmayaraq istənilən verilənlər bazası cədvəlindən məlumatı göstərməkdir. Mexanizm SKD əsasında yaradılıb və oxşar imkanlara malikdir. Ancaq bu o demək deyil ki, siz mütləq 1C dilində sorğu yazmalı olacaqsınız, baxmayaraq ki, bu imkan mövcuddur və istifadə edilməlidir. Siz sadəcə məlumatı sizi maraqlandıran cədvəli göstərə bilərsiniz və 1C müstəqil olaraq sadə sorğu yaradacaq.

Dinamik siyahının necə formalaşdığını və hansı məlumatları göstərdiyini görmək üçün onun konfiquratorda yerləşdiyi idarə olunan formaları açmalısınız: təfərrüatlar siyahısında onun xassələrini açmaq üçün kontekst menyusundan istifadə edin və “Xüsusi” bölməsinə diqqət yetirin. Sorğu” maddəsi. Heç bir onay qutusu yoxdursa, "Əsas cədvəl" parametri məlumatların alındığı verilənlər bazası cədvəlini əks etdirir. Əks halda, dinamik siyahı siyahı parametrlərini açmaqla görünə bilən xüsusi sorğunun məlumatlarını əks etdirir.

Fərdi sorğu sxemi daha çox istifadə olunur, çünki bu, geniş çeşiddə məlumatları birləşdirmək və göstərmək üçün əla imkan verir. Çox vaxt bu mexanizm anbar qalıqlarını, məhsul qiymətlərini, daxilolmaları, xərcləri və ya alışları əks etdirmək üçün istifadə olunur. Siz onu diqqətlə istifadə etməlisiniz, çünki mürəkkəb sorğular üçün performans düşə bilər.

Dinamik siyahının başqa bir faydalı xüsusiyyəti "Siyahı Parametrləri" yazısına kliklədiyiniz zaman açılır. Bu menyu, hətta standart sahələr dəstindən istifadə edərkən belə məlumatları son istifadəçilər üçün daha əlçatan və başa düşülən etməyə imkan verir. Sorğunun ixtiyari olub-olmamasından asılı olmayaraq, siz "Parametrlər" sekmesini görəcəksiniz, burada qeyd edə bilərsiniz:

  • Dinamik siyahı seçimi;
  • Qruplar;
  • Çeşidləmə;
  • Dekor.

Parametrlərin istifadəsi dinamik siyahıları universal və kifayət qədər çevik edir. Siz həmçinin onları idarə olunan formada təfərrüatlar ilə əlaqələndirə bilərsiniz və məlumatlar istifadəçi tərəfindən seçilmiş parametrlərdən asılı olaraq dəyişəcək. Bu mexanizmlərdən istifadəni real həyat problemlərinin nümunələrini nəzərdən keçirməklə başa düşmək və qiymətləndirmək olar.

Nümunə olaraq, nomenklatura qalıqlarının idarə olunan formada əks etdirilməsi vəzifəsini nəzərdən keçirək. Həqiqi praktikada bu cür sifarişlər müxtəlif konfiqurasiyalarda olduqca tez-tez baş verir və dinamik siyahı alət kimi idealdır. Bu tapşırıq üçün biz xüsusi sorğu, dinamik siyahı parametrləri və onun parametrlərindən istifadə etməli olacağıq.

Daha aydınlıq üçün ayrı bir xarici emal yaradaq və üzərinə dinamik siyahı yerləşdirək. Planlarımızı həyata keçirmək üçün nomenklatura ilə cədvəl kifayət etməyəcək, buna görə də özbaşına sorğuya icazə verməliyik. Orada kataloqun maddələr siyahısı və qalıqlar reyestrinin sol əlaqəsini təsvir edəcəyik və kataloqu əsas cədvəl kimi təyin edəcəyik. Bu sxem dinamik siyahı ilə işləyən istifadəçilərə elementləri əlavə etmək və ya dəyişmək imkanı verəcək.



NomenklaturaSiyahısını SEÇİN.Ad AS,MallarAnbardaQalanlar.Anbar KİMİ,AnbardaMallarQalan.KəmiyyətDövlətdən Qalan Kəmiyyət.Nomenklatura KİMİ SOL BAĞLANTI QEYDİYYATI AnbarlardaQalan proqram təminatı üzrə NomenklaturaList.Link = MəhsullarAnbarlardaQalanlar.Nomenklatura HARADA

Sorğumuz “CurrentDate” parametrindən istifadə etdiyi üçün emaldan istifadə etməzdən əvvəl onun dəyərini təyin etməliyik. Bunu etmək üçün "When CreatedOnServer" prosedurunda forma modulunda standart əmrdən istifadə edərək ona "CurrentSessionDate" funksiyasını təyin edin. Biz həmçinin nəzarət formasında dinamik siyahını göstərməliyik və aydınlıq üçün sahələrin sırasını dəyişməliyik. “Qalan nomenklatura” atributunu forma elementlərinə (yuxarı sol hissə) sürükləyin və formadakı cədvəldəki sahələrin sırasını dəyişmək üçün mavi oxlardan istifadə edin.

&Serverdə Yaradılan Prosedurda (Uğursuzluq, Standart Qenerasiya) Parameters Set Parameters("CurrentDate", CurrentSessionDate()) EndProcedure


Artıq bu mərhələdə biz 1C-də xarici emalımızı aça bilərik və dinamik siyahının işlədiyini görə bilərik. Biz balanslara baxa, maddələr və qruplar yarada və axtarış edə bilərik. Çox vaxt müştərilər balansları görəcəkləri tarixi seçmək imkanı əlavə etməyi xahiş edirlər. Dinamik siyahısı olan bir forma vəziyyətində, bu, əlavə bir sahə və ondan istifadə edərək parametrləri təyin etməklə əldə edilir.

"Tarix" tipli "Qalan tarix" atributunu əlavə edin və onu forma elementlərinə köçürün. Sahə hadisələrində biz “OnChange” hadisəsini yaradırıq və dinamik sorğuda istifadə olunan “CurrentDate” parametrini təyin etmək üçün kodu yazırıq. Formanı açarkən istifadəçi qalıqları hansı tarixdə gördüyünü dərhal başa düşməsi üçün "When CreatedOnServer" prosedurunda kiçik dəyişikliklər edəcəyik.



&OnServerProcedureWhenCreatingOnServer(Uğursuzluq, StandardProcessing)RemainingDate = CurrentSessionDate(); Maddə Remains.Parameters.SetParameterValue("Cari Tarix", Qalan Tarix); Prosedurun Sonu &ChangedWhen(Element)Qalan Nomenklatura Müştəri Proseduru haqqında.Parameters.SetParameterValue("Cari Tarix",Qalan Tarix); Prosedurun Sonu

Nəticədə, Dinamik Siyahı formamız istənilən tarixdəki qalıqları əks etdirə bilər.

Biz bu alət dəstinin imkanlarının yalnız kiçik bir hissəsini nəzərdən keçirdik, lakin bu, bu tip dinamik siyahının rahatlığını başa düşmək üçün artıq kifayətdir. Bənzər bir mexanizm bir çox tapşırıq üçün istifadə olunur, lakin o, ən çox idarə olunan formalarda tipik konfiqurasiyalarda olur:

  1. Seçim;
  2. Siyahılar.

Dinamik siyahı və onun tələbini standart idarə olunan formalarda almaq üçün tərtibatçı konfiquratorda istədiyiniz formanı açmalıdır. Təfərrüatlar bölməsində "DynamicList" məlumat növü ilə təfərrüatları tapın (əksər hallarda qalın hərflərlə vurğulanır). Onun xassələrində sorğu mətni, seçimlər və digər parametrlər var.

 

Oxumaq faydalı ola bilər: