1s SKD redaktə parametrlərinin seçim forması. Hesabatların yaradılması xüsusiyyətləri (1Cv8). İstifadəçi olmayan redaktə edilə bilən parametri necə əlavə etmək olar

Qalın müştəri rejimində 1C v8-də hesabatların yaradılması xüsusiyyətləri

Bir variantı necə seçmək olar?

  • Hesabat panelində "Seçim Seçin" düyməsini qoyun
  • Formada "OnDate" sahəsini yerləşdirin.

Nümunə kodu: ProcedureFormActionSelectOption(Button) layout = GetLayout("MainDataLayoutScheme"); spOptions = Yeni Dəyər Siyahısı; Layout-dan hər bir seçim üçün.OptionsSettings Loop spOptions.Add(seçim.Settings, option.View); EndCycle;

seçim = cnOptions.SelectItem(); Əgər seçim = Qeyri-müəyyən deyilsə, Qayıdın; endIf;

SettingsComposer.LoadSettings(seçim.Dəyər);

Yarat (); Prosedurun Sonu

Proseduru OnDateOnChange(Element) Generate(); Prosedurun Sonu

Prosedur Yarat()FormElements.Nəticə.Clear(); Parametrlər Composer.Settings.DataParameters.SetParameterValue("Period", ToDate); ComposeResult(FormElements.Result); Prosedurun Sonu

Açılış zamanı prosedur() OnDate = CurrentDate(); Yarat (); Prosedurun Sonu

Girişə nəzarət sistemi vasitəsilə hesabatların yaradılması xüsusiyyətləri

Addım-addım hesabatın yaradılması

  1. Hesabatlar qovşağında Hesabat yaradın
  2. Növü Data Layout Scheme olan hesabatda Layout yaradın
  3. Hesabat xassələrində təyin edin: Əsas məlumat tərtibatı sxemi = Yaradılmış Layout
  4. Hesabat xüsusiyyətlərində onun aid olduğu alt sistemi təyin edin (Müəssisədəki hesabat yuxarı naviqasiya panelində göstəriləcək)
  5. Layout-da sorğu yaradın (bənd: Məlumat dəsti əlavə et - Sorğu)
  6. Layout üçün Seçimlər sekmesinde, Mövcudluq Məhdudiyyəti sütunundakı bütün sətirləri silməlisiniz - yəni. bütün parametrlər istifadəçi tərəfindən redaktə üçün əlçatan olacaq
  7. Layout-un Parametrlər sekmesinde, Hesabat qovşağının göstərildiyi pəncərədə, qruplaşdırma sahəsini göstərmədən yeni qruplaşdırma yaratmalısınız - ətraflı bir xətt yaradılacaq.
  8. Layout-un Parametrlər sekmesinde, əlavə əlfəcinlər dəstinin göstərildiyi pəncərədə əlavə seçin. Parametrlər nişanı - bütün parametrləri bir işarə ilə qeyd edin və hər bir parametrdə istifadəçi parametrləri elementinin Xüsusiyyətləri elementini vurun, parametr parametrləri pəncərəsi açılacaq, burada qutuyu qeyd etməlisiniz - İstifadəçi parametrlərinə parametr daxil edin
  9. Layout-un Parametrlər sekmesinde, əlavə əlfəcinlər dəstinin göstərildiyi pəncərədə əlavə seçin. SelectedFields nişanı - orada hesabatda göstəriləcək sütunları əlavə etməlisiniz
  10. Enterprise-ı işə salın, hesabatı açın, parametr dəyərlərini təyin edin, Yarat (Əsas hesabat yaratma seçiminin seçildiyini yoxlayın)

İstifadəçi olmayan redaktə edilə bilən parametri necə əlavə etmək olar?

Məsələn, "Infobase" sorğu parametrini təyin etməliyik.

  • Layout layout formasında, Seçimlər sekmesinde, istədiyiniz parametr üçün "Mövcud sahələrə daxil edin" və "Mövcudluğu məhdudlaşdırın" onay qutularından işarəni çıxarın.
  • Layout layout formasında, Parametrlər sekmesinde, Parametrlər alt sekmesinde (aşağıda) istədiyiniz parametri işarədən çıxarın, xassələri açın (açar ilə düymə), bu formada:
    • "İstifadəçi parametrlərinə daxil et" bayrağının işarəsini çıxarın
    • Redaktə rejimini "Əlçatan deyil" olaraq təyin edin


  • "Serverə Seçim Yükləyərkən" hadisə idarəedicisindəki hesabat forması modulunda (siz Açarkən də edə bilərsiniz, lakin Serverdə Yaradarkən DEYİL, çünki o, hesabat parametrlərini yükləməzdən ƏVVƏL icra olunur və parametrlər üzərinə yazılacaq) proqramlı şəkildə təyin edin. parametr:

&Serverdə Seçimləri Serverə Yükləyərkən Prosedur (Parametrlər)

//Parametrlər parametrinin qurulması = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase); Prosedurun Sonu

Hesabat seçimlərini necə təyin etmək olar?

  • Soldakı sahədəki Parametrlər sekmesindəki layout layout formasında, lazımi hesabat seçimlərini yarada bilərsiniz.

Qrupları necə təyin etmək olar?

  • Yuxarı sağdakı sahədəki Parametrlər sekmesindəki layout layout formasında lazımi qruplaşmaları yarada bilərsiniz.

Hesabatı proqramlı şəkildə necə göstərmək olar?

Forma modulunda:

&Müştəri Prosedurunda Hesabat YaratExecute()

ThisForm.ComposeResult();

Prosedurun Sonu

Hesabatı necə yoxlamaq olar?

Siz etməlisiniz:

  • Müştəri testində situasiya yaratmağın ən əlverişli yolu vəziyyət cədvəlidir
  • hesabat formasını əldə edin - forma = GetForm("Report.Process Movement.Form.ReportForm");
  • istədiyiniz hesabat variantını yükləyin - hesabat formasının genişləndirilməsi parametrini "Variant açarı" təyin edin (məlumat kompozisiyasının tərtibatında parametrin adı)
  • tələb olunan hesabat parametrlərini yükləyin - ? “UserSettings” hesabat formasının genişləndirilməsi parametrini (“UserDataCompositionSettings” növü) doldurmaq nəticə vermədi, hər şey mürəkkəbdir, aşağıya baxın.
  • açıq forma - forma.Open()
  • formalaşdırmaq - form.ArrangeResult();
  • elektron cədvəl sənəd formasının məzmununu yoxlayın Nəticə - mxl istinadı ilə müqayisə funksiyalarının olması yaxşı olardı
  • formanı bağlamaq - forma.Close(); - və ya bəlkə onu açmaq lazım deyil, yoxlamaq lazımdır

həmçinin bax

  • Təsvir: Yardım menyusu/Sintaksis köməkçisi/Mündəricatlar nişanı/İdarə olunan Tətbiq İnterfeysi Obyektləri/İdarə olunan Forma Genişləndirmələri/Hesabat üçün İdarə olunan Forma Genişlənməsi/Forma Seçimləri

Tələb olunan hesabat parametrlərini necə yükləmək olar?

Sənədlər "UserDataCompositionSettings" tipli "UserSettings" hesabat formasını genişləndirmək üçün belə bir parametrin olduğunu təsvir edir, lakin çox mürəkkəb bir obyekt strukturu var, ondan istifadə etmək mümkün deyildi.

Həqiqətən işləyən sxem:

1. Hesabatda parametrlər yaradın

  • Dövr növü StandardDövr
  • ValueList növünün seçilməsi (Struktur daha yaxşı olardı, lakin o, parametr növlərinin siyahısında, eləcə də ixtiyari tipdə deyil)

2. Lazım olan parametrləri GetForm proseduruna keçirik:

dövr = NewStandardPeriod; period.Option = StandardPeriodOption.CustomPeriod; period.StartDate = cari Tarix; period.EndDate = SabahTarix;

seçim = Yeni Dəyər Siyahısı; seçim.Əlavə(Testing.GetObject(stSituation, "BP1"), "BusinessProcess");

stParameters = Yeni Struktur("Variant Açarı, Dövr, Seçim", "Əsas", dövr, seçim); // OpenFormModal("Report.Process Movement.Form.ReportForm", stParameters); forma = GetForm("Report.Process Movement.Form.ReportForm", stParameters);

3. Forma hadisələrinin işləyicilərində parametrləri təyin edin

&OnServer Funksiyası spGet(spList, görünüş) Hər bir element üçün İxrac spList-dən Döngə Əgər element.View = view Əgər element.Value qaytarın; endIf; EndCycle; Müəyyən edilməmiş qayıt; EndFunction

&Server Prosedurunda SetCustomSettingsValue(Parametrlər, Ad, Dəyər) Settings.Elements-dən Hər Element üçün Döngə Əgər TypeValue(element) = Type("DataCompositionSettingsParameterValue") Əgər Sim(element.Parameter) = Ad Sonra element.Value = Dəyər; element.Use = Doğrudur; endIf; endIf; EndCycle; Prosedurun Sonu

&Server Prosedurasında Hər bir element üçün SetCustomSelectionValue(Parametrlər, Ad, Dəyər) Settings.Elements Döngüsü Əgər TypeValue(element) = Type("DataComposition Selection") Əgər Hər Seçim Üçün Element.Elements Loop If Row(selection.LeftValue) = Ad Sonra seçim .RightValue = Dəyər; seçim.Use = Doğrudur; endIf; EndCycle; endIf; EndCycle; Prosedurun Sonu

&Serverdə Seçimləri Serverə Yükləyərkən Prosedur (Parametrlər)

CurrentVariantın Adı = CurrentVariantın Görünüşü;

Parametrlər = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Prosedurun Sonu

UserSettingsOnServer(Parametrlər) Yüklənərkən &OnServer Proseduru Parametrlər = Report.Settings Linker.UserSettings;

<>"00010101" Sonra Parametrlər = Report.Settings Composer.UserSettings; SetCustomSettingValue(Parametrlər, "Dövr", Parametrlər.Period); endIf;

ssBusinessProcess = spGet(Parameters.Selection, "BusinessProcess"); Əgər ssBusinessProcess<>Undefined Sonra SetCustomSelectionValue(Parametrlər, "BusinessProcess", ssBusinessProcess); endIf;

Prosedurun Sonu

Qeydlər:

  • Məlumat Parametrləri var, yəni ACS sorğu parametrlərində təyin olunanlar
  • Onlardan bəziləri UserSettings-də seçim parametrlərində təyin edilmişdir (parametr xüsusiyyətlərində "İstifadəçi parametrlərinə daxil et" bayrağı var.
  • Serverə yükləyərkən lazımi dəyərləri məlumat parametrlərinə yükləsəniz belə, sonuncu dəfə saxlanan parametrlərin avtomatik yükləndiyi bir forma açılır. Bu parametrlər hesabat yaradan zaman məlumat parametrlərini “kesindirir”
  • WhenLoadingUserSettingsOnServer işləyicisində ötürülən Parametrlər obyektidir surəti real parametrlər, buna görə də formada görünən parametrləri dəyişdirmək üçün siz Report.Settings Composer.UserSettings obyektini doldurmalısınız.

ACS-də çoxlu (siyahı) sorğu parametrlərini necə etmək olar?

Sorğu ifadədən istifadə etməlidir "(&ParameterName)"(1Cv8 sorğu dilində Boolean ifadələrinə baxın)

"Parametrlər" sekmesinde ACS diaqramının tərtibatını qurarkən, bu parametr üçün "Mövcud dəyərlərin siyahısı" sütununda qutuyu işarələməlisiniz. Bu halda, siz parametr seçdiyiniz zaman ACS hər hansı parametr dəyərini əlavə edə biləcəyiniz siyahı redaktə formasını göstərir.

Girişə nəzarət sistemində sorğu parametrlərini necə söndürmək olar?

SKD sorğusunda siz əyri mötərizələrlə əhatə olunmuş konstruksiyalardan istifadə etməlisiniz "{}" .

Hesabat formasında (sürətli parametrlər paneli) müvafiq parametr üçün qeyd qutusu işarələnmirsə, bu konstruksiya sorğudan silinir.

Ətraflı təfərrüata baxın. Məlumat Tərkibi Sistemi üçün Sorğu Dili Genişləndirilməsi (1Cv8)

Sütun yayılması ilə hesabat necə hazırlanır?

Bunu etmək üçün, hesabat seçimini qurarkən (məlumatların düzülüşü, "Parametrlər" nişanı, yuxarı sağdakı sahə) ilk qruplaşma kimi "Cədvəl" əlavə etməlisiniz.

Bundan sonra, lazımi qrupların əlavə olunduğu "Cədvəl" qovşağında "Sətrlər" və "Sütunlar" filialları görünür.

Sahənin çıxış formatını necə konfiqurasiya etmək olar?

Məlumat kompozisiyasının tərtibat redaktorunda, yuxarı sağ sahədə "Məlumat dəstləri" sekmesinde hesabat sahələrinin siyahısı var.

İki ehtimal var:

  1. "Görünüş ifadəsi" sütununun dəyərini təyin edin
    • burada istədiyiniz sətri yaradan dil ifadəsini daxil edə bilərsiniz
    • resurs sahələri ilə işləmir
  2. "Dizayn" sütununun dəyərini təyin edin
    • dizaynda "Format" xüsusiyyəti var - bu dəyər "Format" dil funksiyasının parametrinə bənzəyir, istədiyiniz görünüşü təyin edə bilərsiniz
    • növün çevrilməsi burada mümkün deyil

Resurs sahələri üçün hesablama ifadələrini ("Resurslar" nişanı) təyin edə bilərsiniz - məsələn,

Məbləğ(Vaxt)/3600.0

saniyədən saata çevirmək üçün.

Tələb olunan dəqiqlik "Məlumat Dəstləri" sekmesindəki "Dizayn" sahəsindən təyin edilə bilər.

Məlumat kompozisiya sistemi üçün parametrlərin təyin edilməsi xüsusiyyətləri

Ən azı ÜÇ növ parametr mövcuddur və müxtəlif emal tələb edir:

Məlumat Seçimləri

Məlumat parametrləri girişə nəzarət sisteminin sorğusunda (məlumat mənbəyi) müəyyən edilir.

Məlumat parametrləri məlumat mənbəyi sorğusuna ötürülür və əldə ediləcək məlumatları müəyyənləşdirir.

Settings Composer obyekti verilənlər parametrləri ilə işləmək üçün xüsusi xüsusiyyətə malikdir Parametrlər Composer.Settings.Data Options

kimi zənglə təyin edə bilərsiniz

Parametrlər = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Seçim

Seçimlər alınan məlumatların üzərinə qoyulur sonra məlumat mənbəyindən çıxarış.

Settings Composer obyekti seçimlərlə işləmək üçün xüsusi xüsusiyyətə malikdir ComposerSettings.Settings.Selection.

Misal üçün: Parametrlər = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Hər bir element üçün Parameters.Seçim Dövrü Seçim Elementi = Settings.Selection.Elements.Add(Type("Məlumat Kompozisiya Seçim Elementi")); Seçim Elementi.Müqayisə Tipi = DataTərkibi Müqayisə Tipi.Equal; SelectionElement.LeftValue = NewDataCompositionField(element.View); SelectionElement.RightValue = element.Value; EndCycle;

Fərdi Parametrlər

İstifadəçi seçimləri istifadəçinin formada fərdiləşdirə biləcəyi məlumatları müəyyənləşdirir.

İstifadəçi parametrləri xüsusi cədvəldə formada göstərilə bilər və "Parametrlər" düyməsini sıxaraq və "Bütün hərəkətlər" menyusundan çağırıla bilər.

Fərdi Parametrlər əlaqədar məlumat parametrləri və seçimləri ilə kifayət qədər mürəkkəb bir şəkildə bu əlaqə vizual olaraq konfiqurasiya edilə bilər, lakin onlarla proqramlı işləmək bir növ çox əlverişsizdir.

İndiyə qədər mövcud kolleksiyanın dəyərlərini təyin etməkdən daha yaxşı bir şey tapmadıq indeksinə görə, bu, əlbəttə ki, vizual redaktorda ACS düzenini dəyişdirərkən yox ola bilər.

Bundan əlavə, əgər hansısa məlumat parametri istifadəçi tərəfindən müəyyən edilirsə, o zaman məlumat parametrinin proqram təminatı (yuxarıya bax) kifayət deyil, istifadəçi parametrinin bərpa edilmiş dəyəri məlumat parametrinin qəbulunu ləğv edir. Buna görə də, bu cür parametrlər üçün təyin etməyin mənası yoxdur məlumat parametri, dərhal quraşdırılmalıdır xüsusi parametr.

Tələb olunan dəyərləri təyin etmək üçün əlverişli yer hesabat forması genişlənməsinin "When LoadingUserSettingsOnServer" hadisə idarəedicisidir.

&Serverdə İstifadəçi Parametrlərini Serverə Yükləyərkən Prosedur (Parametrlər)

Əgər Parametrlər.Dövr.Son Tarix<>"00010101" Sonra Parametrlər = Report.Settings Composer.UserSettings; Settings.Elements.Value = Seçimlər.Period; endIf;

Prosedurun Sonu

Məlumat mənbəyindən obyekt kimi istifadə

Tipli obyektin verilənlər toplusundan istifadə etmək üçün siz xarici məlumat mənbəyini Data Composition Processor obyektinin Initialize metoduna ötürməlisiniz.

DecryptionData = qeyri-müəyyən;

LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLinker.Execute(DataCompositionScheme, SettingsLinker.Settings, DecryptionData);

CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout, New Structure("Data", GetDataExternalSource()), DecryptionData);

Sadə bir nümunə əlavə olunur (nümunənin işləməsi üçün "Qarşı tərəflər" və "Qarşı tərəf müqavilələri" kataloqları olmalıdır).

Sorğu dizaynerində, məlumat mənbəyinin quraşdırma formasından çağırıldıqda, məlumat kompozisiya sxemi üçün. İstifadəsi sənədlərdə aydın şəkildə təsvir olunmayan "xüsusiyyətlər" nişanı var. Bu yazıda ACS-də xüsusiyyətlərin necə və niyə istifadə edildiyini izah etməyə çalışacağam.

Sorğu dizaynerində, məlumat mənbəyinin quraşdırma formasından çağırıldıqda, məlumat kompozisiya sxemi üçün. İstifadəsi sənədlərdə aydın şəkildə təsvir olunmayan "xüsusiyyətlər" nişanı var. Bu yazıda ACS-də xüsusiyyətlərin necə və niyə istifadə edildiyini izah etməyə çalışacağam. Tipik konfiqurasiyalar, demək olar ki, hər hansı bir obyekt üçün mövcud olan xassələrin və əmlak dəyərlərinin mexanizmindən fəal şəkildə istifadə edir. Primitiv olaraq, istinad kitablarında bu mexanizm 7.7 konfiqurasiyalarında tətbiq edilmişdir. İndi bu mexanizm xüsusiyyət növlərinin planı və məlumat reyestrindən istifadə etməklə həyata keçirilir, lakin ideya eyni qalır. Bu mexanizmdən girişə nəzarət sxemində istifadə etmək zərurəti ilə ilk dəfə qarşılaşdığım zaman mən çox uzun müddət mübarizə apardım, iç-içə sorğuları təşkil etdim, onları əsas seçimə birləşdirdim və beynimi fırıldaqçılıqla məşğul oldum. hesabatın hazırlanması zamanı mövcud olmayan yeni əmlak növləri. İstifadəçinin nöqteyi-nəzərindən sadə və məntiqli olan xassələrin bütün mexanizmi, "Xüsusiyyətlər" sekmesini tapana qədər heç bir normal işləməyə borc vermədi. Nişandakı cədvəl çox şıltaqdır, ya bütün xətti düzgün daxil edirsiniz, ya da ümumiyyətlə sətirə daxil olmaqdan imtina edirsiniz; sistem "sonra üçün" natamam doldurulmuş bir sətir buraxmağa imkan verməyəcək. Beləliklə, gəlin konkretlərə keçək. Birinci sütun: Tip – burada xüsusiyyətlərin əlavə olunacağı obyektin növünü seçirik, məsələn “DirectoryLink.Nomenklatura” Bu o deməkdir ki, indi göstərilən tipin bütün obyektləri üçün xassə qiymətlərini əldə etmək mümkün olacaq. Sonra, növbəti sütunda Baxışların mənbəyi, biz əmlak görünüşlərinin mənbəyinin parametrlərini təyin etməliyik. Cədvəl və sorğu seçimləri mümkündür; sorğu seçiminin nə üçün lazım olduğunu sonra izah edəcəyəm, indi cədvəl elementini seçək. Xarakteristika növləri sütununda biz tələb olunan xarakteristika növlərinin saxlandığı infobaza cədvəlini seçməliyik, bizim nümunəmizdə bu, “Xüsusiyyətlərin növlərinin planı.Obyektlərin xüsusiyyətləri” olacaqdır. Bundan əlavə, Açar Sahə, Ad Sahəsi və Dəyər Tipi Sahə sütunlarında seçim üçün bizim üçün mövcud olan dəyərlər birbaşa seçdiyimiz cədvəlin sahələrindən asılıdır. Açar sahəsində biz Link, Ad sahəsində – Görünüş (istifadəçi atributun adı olaraq bunu görəcək) və Tip sahəsində müvafiq olaraq ValueType seçirik. İndi keçək dəyərlərin mənbəyinə. Dəyərlər mənbəyimiz "ObjectPropertyValues" məlumat reyestridir, ona görə də biz Dəyərlər Mənbəsi sütununda cədvəli və Xarakteristik Dəyərlər sütununda "MəlumatRegister.ObjectPropertyValues" seçirik. Obyekt, Əmlak, Dəyər sütunlarında Obyekt, Əmlak, Dəyər registrinin müvafiq sahələrini seçin. Deyəsən, hamısı budur. Biz sxem parametrlərinə gedirik, məhsullara görə qruplaşdırma əlavə edirik və tabe qruplaşma əlavə edirik, məsələn, Brendlərə görə, belə bir xüsusiyyətimiz var. Nomenklatura qruplaşmasının təfərrüatlarının siyahısını genişləndiririk və... biz orada heç bir xassə görmürük: Fakt budur ki, biz konfiquratordayıq, oradan məlumatlara çıxış yoxdur. Lazımi parametrləri necə etmək olar? Bunu etmək üçün ən əlverişli yol məlumat kompozisiya konsolundan, ITS diskindəki və ya "Tərtibatçı Alətləri" altsisteminə daxil olandan istifadə etməkdir. Lakin siz sadəcə olaraq hesabat parametrlərini müəssisə rejimində aça bilərsiniz. Beləliklə, eyni parametri açaq, lakin müəssisə rejimində: Gördüyünüz kimi, biz yeni "Təfsilatlar" əlavə etdik və...

Sual: SKD, Parametr üçün tələb olunan seçim formasını necə aça bilərəm?


Günortanız Xeyir Girişə nəzarət sistemi haqqında hesabat var, orada Brand - tipli Directory.Nomenklatura parametri var. Bu parametr üçün xüsusi seçim formasını necə çağıra bilərəm? SKD-də "Parametrlər" sekmesinde cəhd etdim, istədiyiniz parametri seçin - "Redaktə Seçimləri" sütununa iki dəfə vurun - "Seçim Forması" onay qutusunu yoxlayın və Directory.Nomenclature.Form.SelectionFormRequired dəyərini daxil edin. Hesabatı işlədərkən, seçim forması hələ də "Seçim Forması"nda göstəriləndən deyil, standart olaraq istifadə olunur. UT konfiqurasiyası, adi formalar. Mənə deyin, zəhmət olmasa, harada, nə səhvdir?

Cavab: Açar ifadə Adi formalar, idarə olunanlara keçin

Sual: Seçim formasında dəyər seçin


Günortanız Xeyir

Daimi tətbiq.

Sənədi var. O, istinad tipli bir neçə təfərrüata malikdir, məsələn, “DirectoryLink.Banks”, “Bank1” dəyəri ilə.

"Banklar" kataloqunu seçmək üçün formada lazımdır, proqramlı olaraq "Bank1" elementini seçin, yəni. yazın bu dəyəri yenidən seçin "Bank1".

İndiyə qədər aşağıdakıları etmişəm:
SeçimInSelectionForm (Link) icrası proseduru
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Link); //Mən keçid parametrindən istifadə edərək Banklar kataloqunu seçmək üçün forma alıram
//təfsilatlardakı linkimə uyğun olaraq bu seçim formasında seçimi təyin edin
DirectorySelectionForm.Selection.Link.Use = Doğrudur;
DirectorySelectionForm.Selection.Link.Value = keçid;
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = Yanlış;
DirectorySelectionForm.Open();
//burada Seç düyməsini sıxmağı simulyasiya edən kod, necə????
Prosedurun Sonu

Kiminsə bununla qarşılaşdığı və ya hər hansı bir fikri varsa kömək edin.

Çox sağ ol.

Cavab:

Mən bunu belə etdim:

Prosedur ExecuteSelectionInSelectionForm(Link, rec) //“link” parametri sənəd formasındakı dəyər keçididir; "rek" - cari forma elementi, yəni. seçim sahəsi
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Rec,Link);
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = Yanlış;
OpenForm(DirectorySelectionForm, çaylar,);

Əgər Kataloq Seçmə Formu.Open() Sonra
DirectorySelectionForm.Activate();
endIf;

DirectorySelectionForm.CurrentElement.CurrentRow = keçid;
SelectionEl = DirectorySelectionForm.CurrentElement.CurrentRow;

SelectEl = qeyri-müəyyən və ya DEYİL dəyəri doldurulursa (SelectEl).
Report(""+Link+" dəyəri kataloq seçim formasında tapılmadı");
əks halda
DirectorySelectionForm.NotifyOfSelection(SelectEl);
endIf;

Prosedurun Sonu

Sual: Seçim formasındakı "Seç" düyməsi və ya "Seç" düyməsini necə basmaq olar


Günortanız Xeyir

Daimi tətbiq.

Sənəd/kataloq seçim formasında “Seç” düyməsini klikləməklə bağlı hansı fikirləriniz var?

Siçan və COM düyməsini basmaq avtomatlaşdırma təklif etmir.

İstək siyahısı: seçim formasında "Seç" düyməsini basaraq simulyasiya edin.

Cavab: Deyəsən, problemi həll etdim... testin bir neçə qaçışı.

17 dəqiqədən sonra əlavə edildi
İndiyə qədər belə işləyir:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Prosedur SeçimdəSelectionForm həyata keçirin(Link, rec) //parametr "link" sənəd formasındakı dəyər bağlantısıdır; "rek" - cari forma elementi, yəni. seçim sahəsi DirectorySelectionForm = Kataloqlar. Banklar. GetFormSelection(, Rec, Link); Kataloq Seçim Forması. Forma Elementləri. DirectoryList. HierarchicalView = Yanlış; OpenForm(DirectorySelectionForm, çaylar, ); Əgər Directory Seçim Forması. Open() sonra DirectorySelectionForm. Aktivləşdirin(); EndIf; Kataloq Seçim Forması. Cari maddə. CurrentRow = keçid; SelectionEl = DirectorySelectionForm. Cari maddə. CurrentRow; Əgər SelectEl = qeyri-müəyyən və ya DEYİL dəyər doldurulubsa (SelectEl), onda Hesabat ("Dəyər" + Link + "kataloq seçim formasında tapılmadı"); əks halda, DirectorySelectionForm. Seçim haqqında bildiriş (ChoiceEl); EndIf; Prosedurun Sonu

Sual: Niyə dəyər artıq seçim formasından seçilmir?


Sənəd formasında DocumentLink.PaymentOrderOutgoing istinad tipli sahə var. Seçildikdə, gedən ödəniş sifarişini seçmək üçün forma açılır. Dəyər seçildikdən sonra o, seçilmiş formada daxil edilmir. Əvvəlcə mən seçim emalının standart emal olduğunu düşündüm və proqramçı seçim emalını qeydiyyatdan keçirməyi unutdu. Amma orada hər şey tipikdir. Heç bir tədbir keçirməməyi seçdiyim sahədə proqrama uyğun olmayan formanı açmaq. Bu nə ola bilərdi?
--- Mesaj birləşməsi, 2 yanvar 2018-ci il ---

Adi formalara əsaslanan başqa bir tətbiq. Seçim forması idarə edilə bilər və adi pəncərədən açılır. Normal seçim formasına qayıtsanız, hər şey qaydasındadır.

Cavab:

Ümumiyyətlə, mən başa düşdüm. Seçim emalında SelectedValue-a nə daxil olduğunu görmək faydalıdır. Bir massiv olduğu ortaya çıxdı. Seçim formasına daxil olanda çoxlu seçim qutusunun olduğu ortaya çıxdı. Mən onu çıxardım və hər şey işlədi.

Sual: Zəhmət olmasa, kataloq seçim formasında seçimi təyin etməkdə mənə kömək edin


Qarşı tərəfi seçərkən proqramlı şəkildə adın ilk simvollarını seçim formasına köçürürəm. İlk simvolları uyğun gələn ilk elementi proqramlı şəkildə necə aktivləşdirmək olar.

Cavab:

elektron dedi:

Qarşı tərəfi seçərkən proqramlı şəkildə adın ilk simvollarını seçim formasına köçürürəm. İlk simvolları uyğun gələn ilk elementi proqramlı şəkildə necə aktivləşdirmək olar.

Genişləndirmək üçün klikləyin...

Qərar verildi. “Qarşı tərəflər” kataloq seçim formasında virtual klaviatura yaratdım.
İstənilən düyməni basdığınız zaman kod işə salınır
SearchResultByDetails = TechRef.FindByName(N, False);
Form Elements.DirectoryList.CurrentLine=SearchResultByAttributes;
burada H açarın dəyərini ehtiva edən dəyişəndir

Sual: Dəyərlər siyahısı üçün seçimi olan formanı seçin


Günortanız Xeyir. Sadə bir problemin həllində köməyinizə ehtiyacım var.

Confa ZUP 2 .5 .113 .1 Xarici hesabat var, hesabatda “əsaslar siyahısı” atributu, tipli qiymətlər siyahısı var.
Hesabat forması var. Hesabat formasında "əsasların giriş siyahısı" sahəsi, ValueType = "Dəyərlərin Siyahısı" və ListValue növü = "DirectoryLink.ObjectPropertiesValue".

Əmlak sahibinin seçimi ilə seçim formasını necə açmaq olar?

Əvvəlcədən təşəkkürlər!

Cavab: Seçimlər sekmesinde Redaktə Seçimləri adlı bir sütun var. Orada seçim parametri əlaqələrini və ya seçim parametrini konfiqurasiya etməyə cəhd edə bilərsiniz

Sual: Sənəd seçimi formasını proqramlı şəkildə açın 1s 8.3


1s 8.3 sənəd seçimi formasını proqramlı şəkildə necə açmaq və seçilmiş dəyəri dəyişənə saxlamaq olar?

Google bəzi qoltuqağacı həlləri verdi, mən bunu necə düzgün edəcəyimi bilmək istərdim.

Cavab:+ () PM-nin də sehrli bir üsulu var - endir.

Cədvəl bölməsi
yük
Sintaksis:

endir(<Таблица>)
Seçimlər:

<Таблица>(tələb olunur) Növ: Dəyər Cədvəli.
Cədvəl hissəsinin yükləndiyi dəyərlər cədvəli. Cədvəl sütunları adlarla birləşdirilir.
Təsvir:

Dəyər cədvəlindən cədvəl hissəsini yükləyir. Bu halda, cədvəl hissəsinin bütün əvvəlki sətirləri silinir. Yükləyərkən, cədvəl bölməsinin sütunlarındakı dəyərlər uyğun adlarla dəyər cədvəlinin sütunlarından alınan dəyərlərlə doldurulur.

Mövcudluq:

Server, qalın müştəri, xarici əlaqə.
Qeyd:

Metod yalnız cədvəl hissəsi obyekt xüsusiyyətindən alındıqda istifadə edilə bilər. Cədvəl hissəsi istinad (və ya seçim) xüsusiyyətindən əldə edilirsə, bu metoddan istifadə iş vaxtı xətasına səbəb olacaq.
Misal:

Kompozisiya.Yük (Tərkibi Cədvəl);

Sual: Parametrlərin seçim formasına ötürülməsi.


Xahiş eliyirəm, mənə kömək eləyin.
"Malların və xidmətlərin satışı" sənədindən müqavilə seçimi forması (ERP) çağırılır. Conf redaktə olunub, standartla müqayisə edirəm. Seçim formasının ProcessingCreationOnServer-də mən sazlayıcı Parameters.Selection-a baxıram. Mən sadəcə seçim siyahısının necə formalaşdığını başa düşə bilmirəm - bu formaya parametrlərlə açıq çağırış yoxdur, “SelectionParametersLink” xüsusiyyətində yalnız bir seçim elementi var və Parameters.Selection-da artıq bir neçəsi var. Bəlkə kimsə mənə hara baxacağımı deyə bilər.

Diqqət! Bu dərsin giriş versiyasıdır, materialları natamam ola bilər.

Sayta tələbə kimi daxil olun

Məktəb materiallarına daxil olmaq üçün tələbə kimi daxil olun

Başlayanlar üçün məlumat kompozisiya sistemi 1C 8.3: məlumat dəstlərinin birləşdirilməsi

  • Müştəriləri və onların sevimli məhsullarını göstərən hesabat yazın. Hər bir müştərinin sevimli rəngi var və hər bir məhsulun öz rəngi var - bu rənglərə əsaslanaraq məhsulun "sevimlisini" müəyyənləşdirməlisiniz. Məsələn, Andreyin sevimli rəngi qırmızıdırsa, onun sevimli yeməklərindən biri pomidor olacaq (qırmızıdır).
  • Hesabatda iki məlumat dəstini tətbiq edin. Birinci dəst "Müştərilər" kataloq cədvəlindəki məlumatlardır. İkincisi, "Qida" kataloq cədvəlindəki məlumatlardır.
  • Həyata keçirmək bu iki dəst arasında əlaqə, beləliklə, hesabatda hər bir müştəri üçün yalnız sevimli məhsullar var.

Yeni hesabat yaradın

Konfiquratorda "Gastronom" verilənlər bazasını açın və əsas menyu vasitəsilə yeni hesabat yaradın:

Sənəd növü - "Xarici hesabat":

Yeni hesabat şəklində "Dərs 6" adını göstərin və "Məlumatların tərkibi diaqramını açın" düyməsini basın:

Standart sxem adını buraxın:

İlk məlumat dəstinin əlavə edilməsi

Açılan diaqramda "Məlumat Dəstləri" sekmesine keçin və yaşıl üstəgəl işarədən istifadə edərək "Məlumat Dəsti - Sorğu əlavə et" seçin:

Sorğu konstruktoruna zəng edin:

"Müştərilər" cədvəlini və sorğudan alınması lazım olan sahələri göstəririk:

İkinci məlumat dəstinin əlavə edilməsi

İkinci məlumat dəstini əlavə edin:

Onu seçin (DataSet2) və sorğu konstruktorunu yenidən çağırın:

"Qida" kataloqunun cədvəlini və sorğudan alınması lazım olan sahələri göstəririk:

Nəticə sorğu mətni belə idi:

Nəzərə alın ki, hazırda hesabatda iki məlumat dəstimiz var: Data Set1 və Data Set2. Hər birinin öz sorğu mətni və məlumatları var.

Adları daha təsviri etmək

Aydınlıq üçün DataSet1-in adını Müştərilər və DataSet2-nin adını Qida adlandıraq.

Dəstlərin hər birinə iki dəfə klikləməklə bunu edin:

Hesabatımızda hər bir dəstdəki məlumatlardan istifadə edə bilərik. Biz bu məlumatlara sahələr vasitəsilə daxil olacağıq.

Hazırda “Müştərilər” dəstində aşağıdakı sahələr var: “Ad” və “Sevimli Rəng”, “Qida” dəstində isə: “Ad” və “Rəng”.

Adların üst-üstə düşdüyünü görürük və asanlıqla çaş-baş qala bilərik. Beləliklə, daha təsviri olmaq üçün sahə adlarını dəyişdirək.

"Müştərilər" dəstini seçin və sahə adlarını belə dəyişdirin:

Sonra "Qida" dəstini seçin və sahə adlarını belə dəyişdirin:

Parametrlər konstruktorunu çağırırıq

Nəhayət, "Parametrlər" sekmesine keçin və parametrlər dizaynerini açmaq üçün sehrli çubuq üzərinə klikləyin:

Hesabat növü - "Siyahı...":

Hər iki dəstdən hesabat üçün sahələri seçin:

Görün sahə adlarını dəyişdirmək niyə bu qədər vacib idi? Məlumat kompozisiyasının parametrləri mərhələsində bu sahələrin hansı dəstlərdən olduğunu görmürük. Biz yalnız adlarını görürük.

Hesabatın yoxlanılması

Hesabatı saxlayırıq və istifadəçi rejimində yaradırıq:

Bəli. Yaxşı, amma əslində yox. İki dəstdən ibarət çarpaz birləşmə baş verdi (bunu əvvəlki modullarda öyrəndiyimiz sorğulardakı birləşmələrdən çox yaxşı bilməlisiniz). Müştərilər cədvəlindəki hər bir qeyddə Qida cədvəlindən müvafiq qeyd var.

Ancaq bütün bu qeydlərdən yalnız "Müştərinin Sevimli Rəngi" sahəsi "Qida Rəngi" sahəsinə bərabər olanları tərk etməliyik:

İki məlumat dəstini birləşdiririk

Bunun üçün biz Müştərilərin Sevimli Rəngi ​​və Qida Rəngi ​​sahələrindən istifadə edərək iki məlumat dəstini (Müştərilər və Qida) birləşdirəcəyik.

“Məlumat Dəsti Bağlantıları” sekmesine keçin və yeni bir keçid əlavə etmək üçün üstəgəl düyməsini klikləyin:

Parametrləri aşağıdakı şəkildəki kimi konfiqurasiya edirik:

Mən izahat verəcəm.

Rabitə mənbəyi və qəbuledicisi. Yaxşı, burada hər şey aydındır. Biz məlumatların birinci dəstini (Müştərilər) və ikinci dəstini (Qida) göstəririk. Kommunikasiyanın prinsip əsasında aparılacağına xüsusi diqqət yetirmək istərdim xarici sol birləşmə(bunu əvvəlki modullarda sorğular mövzusunda əhatə etmişdik). Buna əsaslanaraq, hansı dəstin mənbə və hansı qəbuledici olacağını seçmək lazımdır.

İfadə mənbəyi. Biz burada mənbə məlumat dəstindən bir ifadə və ya sadəcə sahəni göstəririk (biz burada müəyyən edilmiş Müştərilərdən ClientFavoriteColor sahəsini təyin etdik).

Qəbuledici ifadəsi. Biz burada qəbuledici məlumat dəstindən bir ifadə və ya sadəcə bir sahəni göstəririk (biz burada Qida dəstindən ColorFood sahəsini göstərdik).

Beləliklə, bu əlaqə əvvəlki siyahıdan yalnız Müştərinin Sevimli Rəng sahəsinin Qida Rəngi ​​sahəsinə bərabər olduğu sətirləri tərk edəcək.

Gəlin hesabatı saxlayaq və istifadəçi rejimində işə salaq:

Əla!

Sahə ilə bağlı izahat verəcəm” Rabitə vəziyyəti", bu barədə təcrübəsiz proqramçılar tez-tez nizələrini vururlar.

Qoşulma şərti köməkçi sahədir. Orada ifadələr yaza bilərsiniz yalnız keçid mənbəyində göstərilən verilənlər toplusundan sahələri əhatə edir.

Bu halda, keçid mənbəyindən bütün sətirlər üçün bu ifadə (link şərti) keçid qurulmazdan əvvəl yoxlanılacaq. Və əgər bu ifadə DOĞRUDURsa, o zaman link qəbuledicisindən bu sətirlə sətirlər arasında əlaqə yaratmağa cəhd ediləcək. İfadə YANLIŞ olarsa, o zaman belə cəhdlər edilməyəcək.

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 yeni materiala baxacağıq. 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 bir 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 olaraq 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.