ZƏNG

Bu xəbəri sizdən əvvəl oxuyanlar var.
Ən son məqalələri əldə etmək üçün abunə olun.
E-poçt
ad
soyad
“Zəng”i necə oxumaq istərdiniz
Spam yoxdur

Və 1C 8.2 mühitində idarə olunan formada kod quruluşuna Data Transfer Object.

Giriş

"İdarə olunan forma" anlayışının və 1C platformasının əlaqəli anlayışlarının qısa təsviri ilə başlayaq. Platforma mütəxəssisləri bu bölməni keçə bilər.

2008-ci ildə mövcud oldu yeni versiya platforma 1C: Müəssisə 8.2 (bundan sonra İdarə olunan Tətbiq) interfeys ilə işin bütün təbəqəsini tamamilə dəyişdirir. Buraya komanda interfeysi, formalar və pəncərə sistemi daxildir. Bu, nəinki konfiqurasiyada istifadəçi interfeysinin inkişaf modelini dəyişdirir, həm də müştəri tətbiqi ilə server arasında funksionallığın ayrılması üçün yeni arxitektura təklif edir.
İdarə olunan proqram aşağıdakı müştəri növlərini dəstəkləyir:

  • Qalın Müştəri (Normal və İdarə olunan Başlama Rejimi)
  • Arıq müştəri
  • Veb müştəri
İdarə olunan proqram üzərində qurulmuş formalardan istifadə edir yeni texnologiya. Onlar çağırılır İdarə olunan formalar. Keçid asanlığı üçün köhnə formalar (sözdə müntəzəm formalar) da dəstəklənir, lakin onların funksionallığı inkişaf etdirilmir və onlar yalnız zəngin müştəri işə salma rejimində mövcuddur.
Tərtibatçı üçün idarə olunan formaların əsas fərqləri:
  • Deklarativ deyil, strukturun "piksellə" təsviri. Elementlərin xüsusi yerləşdirilməsi forma göstərildikdə sistem tərəfindən avtomatik olaraq həyata keçirilir.
  • Formanın bütün funksionallığı formada təsvir edilmişdir təfərrüatlarəmrlər. Detallar formanın işlədiyi verilənlər, əmrlər isə yerinə yetirilən hərəkətlərdir.
  • Forma həm serverdə, həm də müştəridə icra olunur.
  • Müştəri kontekstində demək olar ki, bütün proqram növləri mövcud deyil və müvafiq olaraq infobazadakı məlumatları dəyişdirmək mümkün deyil.
  • Hər bir metod və ya forma dəyişəni üçün müəyyən edilməlidir kompilyasiya direktiviİcra yerinin (müştəri və ya server) və formanın kontekstinə çıxışın olub-olmamasını müəyyən edən A.
Forma metodlarının tərtib edilməsi üçün təlimatlar bunlardır:
  • &AtClient
  • &Serverdə
  • &OnServerContextWithout
  • &Müştəridə Kontekstsiz Serverdə
Yuxarıdakıları təsvir edək. Ekran görüntüsü idarə olunan forma və onun modulunun inkişaf rejimində nümunəsini göstərir. Deklarativ təsviri, rekvizitləri, tərtib direktivlərini və s. tapın.

Bütün sonrakı müzakirələr illüstrasiyanın sağ tərəfi, modul kodunun necə qurulacağı və hansı prinsiplərin effektiv müştəri-server qarşılıqlı əlaqəsini həyata keçirməyə imkan verəcəyi barədə olacaq.

Problemi müəyyən edək

1C platformasının yeni versiyasının fəal şəkildə istifadə edilməsindən bir neçə il keçdi və həm 1C, həm də onun çoxsaylı tərəfdaşları tərəfindən bir çox həllər (konfiqurasiyalar) buraxıldı.
Tərtibatçılar bu müddət ərzində formalar yaratarkən müştəri-server qarşılıqlı əlaqəsi prinsipləri haqqında ümumi anlayışı inkişaf etdiriblərmi və həyata keçirməyə yanaşma dəyişibmi? proqram modulları yeni memarlıq reallıqlarında?

Kod strukturunu (forma modulu) eyni tipik konfiqurasiyanın bir neçə formasında nəzərdən keçirin və nümunələri tapmağa çalışın.
Struktur dedikdə, tərtibatçı tərəfindən qruplaşdırma metodları və bu metodların tərtibi üçün direktivlər üçün ayrılmış kod bölmələri (ən çox bunlar şərh bloklarıdır) nəzərdə tutulur.
Misal 1:
Hadisə idarəedici bölməsi Metod - müştəridə Metod - serverdə Metod - müştəridə Xidmət prosedurları və funksiyaları bölməsi Giriş nəzarəti köməkçi funksiyaları
Misal 2:
Xidmət prosedurları və funksiyaları Ödəniş sənədləri Qiymətli əşyalar Hadisə idarəçiləri
Misal 3:
Serverdə xidmət prosedurları Müştəridə xidmət prosedurları Kontekstsiz serverdə xidmət prosedurları Başlıq hadisə işləyiciləri Komanda hadisəsi işləyiciləri
Misal 4:
Ümumi təyinatlı prosedurlar Forma hadisə idarəçiləri "Əlaqə məlumatı" altsisteminin prosedurları
Əslində, kod strukturu yoxdur və ya yumşaq desək, 8.1 formalarında olana bənzəyir:

  • Qeyri-informativ sözlər "Ümumi, Xidmət, Köməkçi".
  • Utancaq müştəri və server üsullarını ayırmağa çalışır.
  • Tez-tez metodlar interfeys elementləri ilə qruplaşdırılır "Cədvəl hissəsi ilə işləmək Məhsullar, Əlaqə məlumatları".
  • Metodların və kod qruplarının özbaşına yerləşdirilməsi. Məsələn, Hadisə İşləyiciləri bir formada yuxarıda, digərində aşağıda, üçüncüdə isə ümumiyyətlə vurğulanmaya bilər və s.
  • Və unutmayaq ki, bunların hamısı eyni konfiqurasiya daxilindədir.
  • Bəli, "Ümumi, Xidmət, Köməkçi" sözlərinin həmişə eyni yerlərdə olduğu konfiqurasiyalar var, lakin ...
Niyə kod strukturuna ehtiyacınız var?
  • Baxımın sadələşdirilməsi.
  • Öyrənməni sadələşdirin.
  • Ümumi/vacib/uğurlu prinsiplərin müəyyən edilməsi.
  • …sizin seçiminiz
1C-dən mövcud inkişaf standartı niyə kömək etmir?
İdarə olunan bir forma yazarkən tövsiyə olunan ITS disklərində və müxtəlif "Tərtibatçıların Təlimatları ..." da dərc olunan prinsiplərə baxaq.
  • Server zənglərinin sayını minimuma endirin.
  • Serverdə maksimum hesablama.
  • Kontekstdən kənar server zəngləri kontekst zənglərindən daha sürətlidir.
  • Müştəri-server qarşılıqlı əlaqəsini nəzərə alan proqram.
  • və s.
Bunlar tamamilə doğru olan şüarlardır, bəs onları necə həyata keçirmək olar? Zənglərin sayını necə minimuma endirmək olar, müştəri-server rejimində proqramlaşdırma nə deməkdir?

Dizayn nümunələri və ya nəsil hikməti

Müştəri-server qarşılıqlı əlaqəsi onilliklər ərzində müxtəlif proqram texnologiyalarında istifadə olunur. Əvvəlki bölmədə qeyd olunan sualların cavabı çoxdan məlumdur və iki əsas prinsipdə ümumiləşdirilmişdir.
  • Uzaqdan Fasad(bundan sonra Uzaqdan Giriş İnterfeysi)
  • Məlumat ötürmə obyekti(bundan sonra Məlumat ötürmə obyekti adlandırılacaq)
Martin Fowlerə söz, bu prinsiplərin təsviri:
  • uzaqdan giriş üçün potensial olaraq nəzərdə tutulan hər bir obyekt olmalıdır aşağı qranulyarlıq interfeysi, bu, müəyyən proseduru yerinə yetirmək üçün tələb olunan zənglərin sayını minimuma endirəcək. … Faktura və onun bütün bəndlərini ayrıca tələb etmək əvəzinə, bir zəngdə fakturanın bütün bəndlərini oxumaq və yeniləmək lazımdır. Bu, obyektin bütün strukturuna təsir edir...Unutmayın: uzaqdan giriş interfeysi domen məntiqini ehtiva etmir.
  • ... qayğıkeş ana olsaydım, övladıma mütləq deyərdim: “Heç vaxt məlumat ötürmə obyektləri yazma!” Əksər hallarda məlumat köçürmə obyektləri bundan başqa bir şey deyil şişmiş sahə dəsti... Bu iyrənc canavarın dəyəri yalnız ehtimaldadır bir zəngdə birdən çox məlumatı şəbəkə üzərindən ötürmək- paylanmış sistemlər üçün böyük əhəmiyyət kəsb edən texnika.
1C platformasında şablon nümunələri
İdarə olunan formanı inkişaf etdirərkən tərtibatçı üçün mövcud olan API bu prinsiplərin bir çox nümunəsini ehtiva edir.
Məsələn, OpenForm() metodu, tipik "qaba" interfeys.
OpenParameters = Yeni Struktur("Parametr1, Parametr2, Parametr3", Dəyər1, Dəyər2, Dəyər3); Forma = OpenForm(FormName, OpenParameters);
v8.1 üslubu ilə müqayisə edin.
Form = GetForm (FormName); Form.Parameter1 = Dəyər1; Form.Parameter2 = Dəyər2; Form.Open();

İdarə olunan forma kontekstində "Məlumatların ötürülməsi obyektləri" dəsti. Fərqləndirmək olar sistemlitərtibatçı tərəfindən müəyyən edilmişdir.
Sistem olanlar bir və ya bir neçə forma məlumat elementi şəklində müştəridə tətbiq obyektini modelləşdirir. Siz onları forma təfərrüatları ilə bağlı xaricində yarada bilməzsiniz.

  • DataForms Structure
  • DataForms Collection
  • DataFormStructureCollection
  • DataFormsTree
Məlumat ötürmə sistemi obyektlərinin proqram tiplərinə və əksinə çevrilməsi aşağıdakı üsullarla həyata keçirilir:
  • ValueVDataForm()
  • FormDataToValue()
  • CopyFormData()
  • ValueVFormProps()
  • FormAttributeToValue()
Mövcud həlli uyğunlaşdırarkən çox vaxt açıq-aydın çevrilmə istifadə olunur. Metodlar FormDataCollection əvəzinə ValueTable kimi daxiletmə parametrlərini (xüsusiyyətini) gözləyə bilər və ya metod tətbiq obyektinin kontekstində müəyyən edilib və formadan birbaşa zəng üçün əlçatmaz olub.
Misal 1C v8.1:
// FillUsersCache(DepartmentReference) forması kontekstində müştəri üzərində
Nümunə 1C v8.2:
// forma kontekstində serverdə ProcessingObject = FormAttributeToValue("Obyekt"); ProcessingObject.FillCacheUsers(DepartmentReference); ValueVFormAttribute(ProcessingObject, "Obyekt");

Strukturu tərtibatçı tərəfindən müəyyən edilən məlumat köçürmə obyektləri həm müştəridə, həm də serverdə mövcud olan növlərin kiçik bir hissəsidir. Çox vaxt "kobud" interfeys metodlarının parametrləri və nəticələri kimi aşağıdakılar istifadə olunur:

  • İbtidai növlər (sətir, nömrə, boolean)
  • Struktur
  • Yazışmalar
  • massiv
  • Tətbiq obyektlərinə keçidlər (unikal identifikator və mətn təsviri)
Nümunə: metod statusu dəyişdirmək üçün sifarişlərin siyahısını qəbul edir və səhvlərin təsvirini müştəriyə qaytarır.
&OnServerWithoutContext Funksiyası ServerChangeOrderStatus(Sifarişlər, NewStatus) Səhvləri = Yeni Uyğunluq(); // [sifariş][xətanın təsviri] Sifarişlərdən Hər Sifariş üçün Döngü StartTransaction(); DocOb cəhdi = Order.GetObject(); …. digər hərəkətlər, ola bilsin ki, təkcə sifarişlə deyil... İstisna CancelTransaction(); Errors.Insert(Sifariş, TəsvirError()); Cəhdin sonu; EndCycle; Qaytarma xətası; EndFunction // ServerChangeOrderStatus()

Kodun strukturlaşdırılması

İdarə olunan forma modulunun əks etdirməli olduğu əsas məqsədlər və həllə yanaşmalar.
  • Müştəri və server kodunun aydın şəkildə ayrılması. Unutmayaq ki, icra zamanı bunlar hər birində mövcud funksionallıq əhəmiyyətli dərəcədə fərqlənən iki qarşılıqlı prosesdir.
  • Uzaqdan giriş interfeysinin aydın seçimi, hansı server metodlarını müştəridən çağırmaq olar, hansını çağırmaq olmaz? Uzaq interfeys metodlarının adları "Server" prefiksi ilə başlayır. Bu, kodu oxuyarkən idarəetmənin serverə keçidini dərhal görməyə imkan verir və kontekstli göstərişlərdən istifadəni asanlaşdırır. Qeyd edək ki, rəsmi tövsiyə (ITS) ChangeOrderStatusOnServer() kimi postfikslərlə adlandırma üsullarını təklif edir. Bununla belə, təkrar etmək lazımdır ki, bütün server üsulları müştəridən çağırıla bilməz və buna görə də məntiqi əlçatanlıq kompilyasiya yerindən daha vacibdir. Buna görə də, “Server” prefiksi ilə biz yalnız müştəri üçün mövcud olan metodları qeyd edirik, nümunə metodu ServerChangeOrderStatus() adlandırılacaq.
  • Oxuma qabiliyyəti. Zövq məsələsi, modul serverdə forma yaratmaq prosedurları və uzaqdan giriş üsulları ilə başlayanda sifarişi qəbul edirik.
  • Davamlılıq. Yeni kodun əlavə ediləcəyi yer dəqiq müəyyən edilməlidir. Əhəmiyyətli məqam Metod stub konfiquratoru tərəfindən avtomatik yaradılan , modulun sonuna əlavə edilir. Forma elementi hadisə işləyiciləri ən çox avtomatik yaradıldığından, hər bir işləyicini modulda başqa yerə sürükləməmək üçün müvafiq blok sonuncu yerləşdirilir.
Aşağıda sadalanan məqsədləri həyata keçirən modulun əsas strukturu verilmişdir.
  • Qrafik seçim - icranın əsas axını aydın şəkildə göstərir.
  • Mətn versiyası üçün şablon dizayn nümunəsidir tez daxil edin strukturları yeni forma moduluna çevirmək.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор=""Tarix=""/> // <Описание> // // ////////////////////////////////////////////////////////// / //////////////////////////// // MODUL DƏYƏNİŞLƏRİ ////////////// / //////////////////////////////////////////////////////// // ///////////// // SERVERDƏ //******* SERVERDE HADİSƏLƏR ******* &Serverdə Serverdə Yaradılma Proseduru( Uğursuzluq, StandardProcessing) //EndProcedure işləyicisinin məzmununu daxil edin //******* UZAKTAN ACCESS INTERFACE ******* //********* SERVER ÜZRƏ BİZNES MƏNTİQİ **** *** ///////// //////////////////////////////////// ///////////// //////////////////// // ÜMUMİ MÜŞTƏRİ VƏ SERVER ÜSULLARI ///////// /////////////// /////////////////////////////////////////// //////////////// /////// // MÜŞTƏRİ HAQQINDA //********* BİZNES MƏNTİQİ MÜŞTƏRİDƏ ******* //********* ƏMRƏLƏR ******* //********* MÜŞTƏRİDƏ HADİSƏLƏR ****** ////////////// ///////////////////////////////////////////////// //////////////// / / ƏSAS PROQRAM OPERATORLARI

Əlaqədar suallar
Yekun olaraq, müştəri-server qarşılıqlı əlaqəsini proqramlaşdırarkən düşünmək üçün faydalı olan bir neçə sahəni təsvir edirik.
  • Uzaqdan giriş interfeysinin həyata keçirilməsi üçün seçimlər. Asinxroniya, dənəvərlik...
  • önbelleğe alma. 1C uğursuz bir memarlıq qərarı verdi, keşləməni yalnız ümumi modulların çağırış metodları səviyyəsində tətbiq etdi və idarəetmə seçimlərini təmin etmədi (yeni vaxt, tələb əsasında sıfırlama).
  • Gizli server zəngləri. Texnoloji xüsusiyyətləri unutma, müştəridə bir çox "zərərsiz" əməliyyatlar platformanı serverə daxil olmağa təhrik edir.

11.12.2016

İdarə olunan formalar haqqında 1C (Başlanğıc)

Arıq müştəri

Daha incə yer yoxdur. İndi müştəri proqramı verilənlər bazasını sorğulamır (bu, serverin işidir). Müştəri proqramı sadəcə interfeysi və məlumatları göstərir.

Qeyd etmək lazımdır ki, kod strukturu bu cür transformasiyalara görə daha da mürəkkəbləşib. Müştəridə istinadlar, obyektlər, dəyərlər cədvəli yoxdur... yalnız primitiv tiplər mövcuddur (sətir, tarix, mantiq, massiv, struktur...). Bu o deməkdir ki, proqramçı indi serverdə nə əldə edəcəyini və bunu minimal xərclə necə edəcəyini düşünməlidir.

Müştəri-Server Əlaqəsi

Müştəri və server arasında qarşılıqlı əlaqəyə yeni yanaşma bizə istifadəçi interfeysinin yeni modelini yaratmağa imkan verdi. İndi interfeys elan edildi(!) interfeys dizaynı məlumatlardan, detallardan və cədvəl hissələrindən başlayır. Bir rekvizit yaratarkən onun interfeysdə necə görünəcəyini, tələb olunub-olunmayacağını, digər rekvizitlərlə necə əlaqəli olduğunu düşünməlisiniz...

Serverdə kontekst (status) yoxdur

1C serveri “vətəndaşsız” (İngilis dilində dövlətsiz) prinsipi ilə işləyir. Bu o deməkdir ki, server yalnız sorğulara cavab verir və eyni zamanda iki sorğu arasında heç nə saxlamır (bu məqsədlə müvəqqəti yaddaş var).

FormDataToValue,FormDataCollection,FormData...

Serverə üz tutduq, o, bizim üçün hər şeyi etdi, məlumatları sildi və gəldiyimizi unutdu. "FormData" + "orada bir şey" adlı bütün obyektlər məlumatlarımızı iki server zəngi arasında saxlamağa kömək edəcək.

Müvəqqəti saxlama

Müvəqqəti saxlama (forma təfərrüatlarına əlavə olaraq) serverdə vəziyyəti saxlaya biləcəyiniz xüsusi yerdir. Yaddaş müştəridə mövcud olmayan məlumatları saxlaya bilər (yəni, forma detallarında yerləşdirilə bilməz).

Müvəqqəti yaddaşla işləmək üçün MoveToTempStorage() metodlarından istifadə edin Sintaksis: PlaceToTempStorage(<Данные>, <Адрес>) Təsvir: Seriallaşdırıla bilən dəyəri müvəqqəti yaddaşda saxlayır. Mövcudluq: İncə müştəri, veb müştəri, server, qalın müştəri, xarici əlaqə, mobil proqram (müştəri), mobil proqram (server). Metod çağırışı serverə zəng edir.<Адрес>(isteğe bağlı) Növ: UniqueIdentifier; Xətt. Müvəqqəti saxlama yerində məlumatların yerləşdiriləcəyi və yeni ünvanın qaytarılacağı formanın unikal ID-si. Və ya məlumatların yerləşdirilməli olduğu müvəqqəti yaddaşdakı ünvan. Ünvan bu üsuldan istifadə etməklə daha əvvəl əldə edilməlidir. UniqueIdentifier forması və ya yaddaşda olan ünvan ötürülürsə, forma bağlandıqdan sonra dəyər avtomatik olaraq silinəcək. Əgər forma üçün unikal identifikator olmayan UniqueIdentifier ötürülürsə, istifadəçinin sessiyası başa çatdıqda dəyər silinəcək. Parametr göstərilməyibsə, yerləşdirilən dəyər paylaşılan moduldan növbəti server sorğusundan sonra, formadan kontekstli və qeyri-kontekstli server zənglərində, komanda modulundan server zənglərində və ya formanı əldə etdikdən sonra silinəcək. Qeyd: Bir seansda yaradılmış müvəqqəti yaddaşa digər sessiyadan daxil olmaq mümkün deyil. İstisna, məlumatı fon işindən müvəqqəti yaddaşdan istifadə edərək fon işini başlatan sessiyaya ötürmək imkanıdır. Belə bir köçürmə üçün, əsas sessiyada, forma identifikatorunu keçərək müvəqqəti yaddaşa boş bir dəyər qoyun. Sonra alınan ünvanı fon işinin parametrləri vasitəsilə fon işinə ötürün. Bundan əlavə, bu ünvan parametrdə istifadə olunarsa<Адрес>, nəticə fon işinin başladığı sessiyaya kopyalanacaq. Fon işində müvəqqəti yaddaşa yerləşdirilən məlumat fon işi tamamlanana qədər ana sessiyadan əlçatan olmayacaq. və GetFromTempStorage() Sintaksisi: GetFromTempStorage(<Адрес>) Təsvir: Müvəqqəti yaddaşdan dəyər alır. Mövcudluq: İncə müştəri, veb müştəri, server, qalın müştəri, xarici əlaqə, mobil proqram (müştəri), mobil proqram (server). Metod çağırışı serverə zəng edir. Qeyd: İcranın nəticəsi keşlənmir, server hər dəfə metod çağırılanda çağırılır.

Zəng edən server kodu

Server koduna edilən istənilən zəng həmişə ötürülən məlumatları seriallaşdırır. Bütün parametrlər simli formada yığılır və şəbəkə üzərindən ötürülür. İşin nəticəsi də seriallaşdırılmış formada geri köçürülür, burada daha sonra tanış obyektlərə bərpa olunur.

Modul bayraqlarının təyin edilməsi

  • Bayraq modul kodunun harada tərtib ediləcəyini göstərir (serverdə, müştəridə, xarici əlaqədə)
  • Əgər modul bir neçə yerdə tərtib olunubsa, o, yalnız bayraqlara görə görünəcək
  • Kodun icrasının ötürülməsi yalnız cari icra kontekstində çağırılan modul olmadıqda mümkündür, lakin o, başqa yerdə mövcuddur (əgər modul yalnız serverdə mövcuddursa və o, müştəridə yoxdursa, server çağırılacaq)

Server zəng bayrağı

1C: Enterprise 8.2 platformasından başlayaraq, "server çağırışı" bayrağı əlavə edildi. Bu, sadəcə başqa bir maşına keçid şərtlərini "həll etməyə" kömək edir. Əgər modula bu bayraq təyin edilibsə, o zaman modul müştəridən görünəcək, əks halda müştəridən zəng etmək cəhdi xəta ilə nəticələnəcək. Modul kodu görünməyəcək, sanki ümumiyyətlə yoxdur.

Beləliklə, müntəzəm qalın bir müştəridə kodu serverə yalnız müştəridən ümumi modul çağırdığınız halda ötürə bilərsiniz, bunun üçün:

  • Server qeyd qutusu seçildi
  • "Zəng serveri" qeyd qutusu seçilib
  • Bütün "müştəri" qeyd qutuları silindi

1C Enterprise 8.2 platformasının yaranması ilə istifadəçi interfeysinin inkişaf mexanizmi əhəmiyyətli dərəcədə dəyişdi. İndi idarə olunan formalar və proqramlar yarada bilərsiniz (Şəkil 1).

Şəkil 1

Bundan əlavə, müştəri proqramı və server arasında funksionallığın ayrılması üçün yeni sistem təklif olunur.
İdarə olunan proqram aşağıdakı müştəri növlərini dəstəkləyir:

  • Qalın müştəri (normal və idarə olunan başlatma rejimi),
  • Arıq müştəri,
  • Veb müştəri.

İdarə olunan formaların yaradılması mexanizmi adi formalardan əhəmiyyətli dərəcədə fərqlənir. Əvvəla, idarə olunan formalar onunla fərqlənir ki, onlar xüsusi parametrlər əsasında sistem tərəfindən avtomatik yaradılır, indi proqramçı hər formanı ətraflı şəkildə çəkməyə ehtiyac duymur. Formanın bütün funksionallığı detallar və əmrlər şəklində təsvir edilmişdir. Detallar formanın işlədiyi verilənlər, əmrlər isə yerinə yetirilən hərəkətlərdir. Hər bir metod və ya forma dəyişəni üçün icra yerini (müştəri və ya server) təyin edən kompilyasiya direktivi müəyyən edilməlidir. Kompilyasiya direktivləri ola bilər:

  • &AtClient,
  • &Serverdə,
  • &OnServerContextWithout,
  • &Müştəridə Kontekstsiz Serverdə.

İdarə olunan forma həm də işlədiyi məlumat növlərinə görə adi formadan fərqlənir. Əgər adi forma 1C:Enterprise tərəfindən təmin edilən əksər növlərlə (o cümlədən DirectoryObject, DocumentObject və s.) işləyirsə, idarə olunan formada aşağıdakı növ kateqoriyalarını ayırd etmək olar:

  • formada birbaşa istifadə olunan növlər nazik və Veb müştəri tərəfində mövcud olan növlərdir (məsələn, Number, ReferenceReference.Products, GraphicScheme, SpreadsheetDocument);
  • xüsusi məlumat növlərinə çevriləcək növlər idarə olunan məlumat tipləridir. Belə növlər forma atributlarının siyahısında mötərizədə göstərilir, məsələn (CatalogObject.Products);
  • dinamik siyahı.

İdarə olunan formaların işləməsi aşağıdakı fərqli xüsusiyyətlərə malikdir (Şəkil 2):

  • Forma həm müştəridə, həm də serverdə mövcuddur.

O, müştəri-server qarşılıqlı əlaqəsini həyata keçirir (məlumatların ötürülməsi və elementlərin dizayn xassələri).

  • Forma tətbiq obyektləri ilə işləmir


Şəkil 2

Forma xüsusi ümumi obyektlərdən istifadə edir
DataForms(Şəkil 3).


Şəkil 3

Tətbiq obyektləri yalnız serverdə və yalnız müəyyən əməliyyatlar zamanı işləyir.
Formanı açarkən:

  • Obyekt verilənlər bazasından oxunur,
  • Obyekt məlumat formasına çevrilir,
  • Obyekt silindi (yaddaşdan),
  • Forma məlumatları müştəriyə ötürülür.

Qeydiyyat zamanı:

  • Forma məlumatları müştəridən alınır,
  • Forma məlumatları obyektə çevrilir,
  • Obyekt verilənlər bazasına yazılır,
  • Obyekt silinir (yaddaşdan).

Keçən dərsdə adi (yağlı) müştərini nəzərdən keçirdik. 1C 8.2 platforma versiyasında. Onlar 1C 8.2 yeni ekran formalarından istifadə edirlər. Onlara idarə olunan formalar deyilir 1C 8.2.

İdarə olunan formalar 1C 8.2 1C-nin gələcəyidir. Onlar adi 1C 8.2 formalarından onunla fərqlənir ki, onlar xüsusi parametrlər əsasında sistem tərəfindən avtomatik olaraq yaradılır (“müntəzəm” formalar sadəcə olaraq proqramçı tərəfindən öz istəyi ilə tərtib edilir).

İdarə olunan 1C 8.2 formalarının işlənməsində adi olanlardan fərqlər əhəmiyyətlidir. Buna görə də, biz bu gün 1C 8.2 idarə olunan formaların yaradılması və dəyişdirilməsini ayrıca müzakirə etmək üçün toplandıq.

İdarə olunan formalar 1C 8.2

Əgər siz əvvəllər 1C konfiqurasiyalarını inkişaf etdirmisinizsə, 1C 8.2 idarə olunan forma redaktorunu açdığınız zaman siçan ilə 1C 8.2 formasına ümumiyyətlə təsir göstərməyin qeyri-mümkün olması sizi dərhal çaşdıracaq.

Siz 1C 8.2 formasını dəyişə bilməzsiniz, elementi köçürə bilməzsiniz, hətta əvvəlki kimi sahənin xassələrinə baxa bilməzsiniz - 1C 8.2 formasında sahəyə iki dəfə klikləməklə.

İndi 1C 8.2 formasının hazırlanması üçün əsas sahələr formadakı koordinatlara deyil, xüsusi parametrlərə bağlıdır. Sistem avtomatik olaraq bu parametrlər əsasında idarə olunan 1C 8.2 formasını yaradır.

Parametrlər yuxarı sol küncdəki redaktorda yerləşən 1C 8.2 forma elementlərinin siyahısından ibarətdir. 1C 8.2 formasının elementlərinə aşağıdakılar daxildir:

  • Rekvizitlər
  • Əmrlər (yeni konsepsiya 1C 8.2, düymələr və ya menyu elementləri kimi görünə bilər)
  • Qruplar (detalları və əmrləri birləşdirmək üçün).

Müvafiq olaraq, bu elementlərin parametrləri sahələrin xüsusiyyətlərində deyil, bu parametrlər elementlərinin xüsusiyyətlərindədir (sağ klik menyusu, Xüsusiyyətlər maddəsi).

1C 8.2 idarə olunan formalar necə işləyir

1C 8.2 idarə olunan formalarla işləmək istifadəçi üçün fərqlidir. Onların daha çox xüsusiyyətləri var, lakin uzun müddət 1C ilə işləyənlər üçün qeyri-adidir.

Əvvəla, 1C 8.2 formasında adi elementlərin yeri fərqlənir. Komanda paneli həmişə yuxarıdadır.

Komanda panelinin sol tərəfi fərdiləşdirilə bilər. O, adətən Record və Post kimi tipik düymələri ehtiva edir.

Komanda panelinin sağ tərəfi 1C formasının yeni standart menyusudur Bütün hərəkətlər. Bu menyu, ACS hesabatındakı parametrlərin hesabatın görünüşünü əhəmiyyətli dərəcədə dəyişməyə imkan verdiyi kimi, 1C 8.2 formasını istədiyiniz kimi idarə etməyə imkan verir.

İxtiyari menyu elementləri 1C Bütün hərəkətlər

Bu 1C 8.1 formasının bu və ya digərinə aid olub-olmamasından asılı olaraq, menyu bu obyekti idarə etməyə imkan verən elementlərlə doldurulur. Məsələn, kataloq siyahısı formasıdırsa, o zaman Yarat və ya Redaktə et kimi əmrlər olacaq.

Maddə Fərdiləşdirin menyu siyahısı 1C Bütün hərəkətlər

1C 8.2 formasında siyahı varsa, o zaman menyuda Siyahı qurmaq və Siyahı göstərmək əmri var.
Çıxış siyahısı əmri sizə artıq tanışdırsa - bu, hər hansı bir siyahını Excel-də 1C-də saxlamağa / çap etməyə imkan verir, onda ikinci əmr yenidir.

Artıq qeyd etdiyiniz kimi, siyahılar əmr panelində artıq seçim düymələri yoxdur. Bunun əvəzinə Tap düyməsi göründü, hansı işə (həmçinin yazarkən kursorun siyahıda indi əlil yerləşdirilməsinə) - şikayətlər var.

Tap düyməsinin funksionallığı, əlbəttə ki, seçimlərlə müqayisə edilə bilməz, lakin onlar heç yerdə yoxa çıxmayıb!
Onlar indi Siyahını Fərdiləşdir menyu elementi altındadır. Seçim artıq istənilən sahə ilə həyata keçirilə bilər və ona əlavə olaraq, SKD hesabatlarında olduğu kimi çeşidləmə və şərti formatlaşdırma da həyata keçirilə bilər.

Maddə Dəyişdirmə menyu forması 1C Bütün hərəkətlər

Formanı dəyişdir elementi yalnız 1C 8.2 formasındakı siyahını deyil, həm də 1C 8.2 formasının özünü eyni şəkildə dəyişdirməyə imkan verir.

İstifadəçi müstəqil olaraq 1C 8.2 formasında sahələrin görünməsini, eni və hündürlüyünü, açarkən standart sahənin aktivləşdirilməsini və s.

İdarə olunan formalar 1C 8.2 və şərti formalar 1C istifadə edərək

Varsayılan olaraq, adi 1C formaları qalın (müntəzəm) 1C müştərisi üçün konfiqurasiyalarda, idarə olunan formalar isə nazik və veb 1C müştərisi üçün konfiqurasiyalarda istifadə olunur. Bununla birlikdə, 1C-nin hər iki forması eyni vaxtda daxil olmaqla istənilən konfiqurasiyada istifadə edilə bilər.

Bunu etmək üçün konfiqurasiya xüsusiyyətlərini də daxil etməlisiniz (konfiqurasiya pəncərəsindəki yuxarı element).

1C 8.2-də konfiqurasiya xüsusiyyətlərində 1C formalarının qeyri-standart istifadəsini aktivləşdirməyə imkan verən iki yeni onay qutusu göründü.

İdarə olunan formaların yaradılması 8.2

Yeni bir forma 1C 8.2 əlavə etmək əvvəlki kimi - klaviaturadakı Ins düyməsini və ya Əlavə et düyməsini istifadə etməklə həyata keçirilir. Mövcudunu daxil etmək üçün siçan ilə üzərinə iki dəfə klikləyin.

Varsayılan olaraq, konfiqurasiyada təyin edilmiş forma (müntəzəm və ya idarə olunan) yaradılacaq (konfiqurasiya xüsusiyyətlərində Əsas işə salma rejimi xüsusiyyətinə baxın).formalar.

Konstruktor sizə forma növünü - elementin formasını, siyahı seçməyi təklif edəcək. Burada formada əmr çubuqlarını əlavə edə və ya silə bilərsiniz. Çox vaxt bu parametrlər standart olaraq olduğu kimi qalır.

Varsayılan olaraq doldurulmuş bir forma açılır - ona əlavə olunan 1C obyektinin bütün detalları. Konstruktorun ikinci nişanında tələb olunan sahələrin xüsusi siyahısını işarələyə bilərsiniz.

Forma redaktoru üç bölmədən ibarətdir.

  • Yuxarı sol küncdə forma elementlərinin siyahısı var. O, elementləri birləşdirməyə imkan verən sahələr, əmrlər və qruplardan ibarətdir. Əmrlərin siyahısına Əmr interfeysi sekmesinde ayrıca baxmaq olar.
  • Yuxarı sağ küncdə mövcud forma atributlarının və obyekt atributlarının siyahısı var (Obyekt atributunun yanında xaçı açın).
  • Aşağıda ortaya çıxan formanın ön görünüşü verilmişdir.

Mövcud təfərrüatları sola sürükləyə bilərsiniz və o, forma elementinə (formada sahə) çevriləcək.

Düymə və ya menyu elementi əlavə etmək lazımdırsa - Əmrlər sekmesinin sağ tərəfində, yeni Əmr yaratmalısınız. Bu, forma modulunda funksiya üçün sarğıdır. Hansı funksiyanın həqiqətən çağırılacağını təyin etməklə yanaşı, bir təmsil təyin edə bilərsiniz - məsələn, bir şəkil, həmçinin funksional seçimdən görünmənin asılılığı.

Əmrlər də sola sürüklənir. Valideyn bir əmr çubuğudursa, o, bir əmr çubuğu düyməsi olacaq - əks halda yalnız bir düymə.

Forma elementlərinin (sahələrinin) siyahısında siz nəinki obyektin/formanın atributunu sürükləyə, həm də onu sadəcə əlavə edə bilərsiniz (Əlavə et və ya Ins düyməsi). Xüsusilə, siz yeni forma obyekti yarada bilərsiniz - Qrup.

Qrup komanda paneli ola bilər (kursor Forma xəttində olmalıdır). Sonra əmrləri ona sürükləyirsiniz və onlar düymələrə çevrilirlər.

Qrup "müntəzəm" ola bilər. Sonra bu, sahələri həm şaquli, həm də üfüqi olaraq qruplaşdırmağın bir yoludur. Qrupun adı xassələrdə silinə bilər.

Qrup bir panel (səhifələr) ola bilər. Üst əlavə edilmiş qrup paneldir və bu tip iç içə qruplar səhifələrdir. Sahələr artıq səhifələrə sürüklənir.

Siyahıdakı forma elementlərinin silinməsi ilə lazımsız forma elementləri silinir.
Formada sahənin mövqeyi elementlər siyahısında (şaquli) və ya qruplar üzrə (üfüqi) sıra ilə müəyyən edilir. Genişlik və hündürlük forma elementinin xüsusiyyətlərində təyin olunur.

Forma elementinin xassələri xeyli genişləndirilib və çoxlu faydalı şeyləri ehtiva edir - həm görünüşə nəzarət (seçim və aydın düymələr), həm də standart dəyərlərin yoxlanılması.

Formanın özünün xassələri, ölçüləri də daxil olmaqla, eyni adlı Form ilə formanın kök elementində təyin olunur.

Hadisə idarəediciləri (istifadəçi hərəkətlərinə cavab) indi iki növə bölünür. Köhnələr - əvvəllər olduğu kimi, onlar forma və sahələrin xüsusiyyətlərində göstərilmişdir (məsələn, OnChange və OnOpening forması). Yeni - əmrlərə çevrildi və menyu elementləri və düymələri üçün istifadə olunur.

Platformanın 8.2 versiyasından 1C interfeysin qurulması və verilənlər bazası ilə istifadəçinin qarşılıqlı əlaqəsi üçün yeni prinsiplərdən istifadə etməyə başladı. Yeni texnologiya idarə olunan proqram adlanır. Formaların qurulması mexanizmləri və 1C serverinin istifadəçisi ilə verilənlər bazası arasında qarşılıqlı əlaqə sxemi ən böyük emaldan keçmişdir. Normal rejim hələ də platforma tərəfindən dəstəklənir, lakin zaman keçdikcə bütün 1C istifadəçiləri idarə olunan formalara keçəcəklər.

Adi istifadəçilər üçün 1C sənədinin idarə olunan forması adi olandan yalnız görünüşü ilə fərqlənir. Tərtibatçı üçün bu, öz qaydaları, qanunları və şərtləri olan yeni mexanizmdir. Bir çox sahələr dəyişikliyə məruz qaldı, lakin aşağıdakı yeniliklər təcrübəli 1C tərtibatçıları arasında əsas hesab olunur:

  • Forma strukturunun müstəqil formalaşdırılması və platforma tərəfindən sahələrin yerləşdirilməsi. Əgər əvvəllər tərtibatçılar sahənin mövqeyini pikselləri göstərməklə təsvir edirdilərsə, indi yalnız qruplaşdırma növünü müəyyən etmək mümkündür;
  • Forma forma verilənlərini təmsil edən atributlardan, əmrlərdən isə yerinə yetirilən prosedur və funksiyalardan ibarətdir;
  • Forma kodu həm server, həm də müştəri tərəfində icra olunur. Axı, forma özü serverdə yaradılmış və müştəridə göstərilən konfiqurasiya obyektidir. Bu o deməkdir ki, o, müştəri və server hissələrini birləşdirir;
  • Müştəri tərəfində bir çox məlumat növləri əlçatmaz oldu və indi infobazada məlumatları dəyişdirmək üçün heç bir yol yoxdur;
  • Hər bir prosedur və ya funksiya üçün xüsusi parametr təyin edilməlidir - kompilyasiya direktivi. O, kodun icra olunduğu yerə cavabdehdir və aşağıdakı dəyərləri qəbul edə bilər:
    • müştəri üzərində;
    • Serverdə;
    • ServerWithoutContext-də;
    • OnClientOnServer;
    • Kontekstsiz Serverdə Müştəridə.

Son nöqtə idarə olunan formalar rejimində xüsusilə kəskindir. Əgər tərtibatçı direktivləri və ya müştəri-server qarşılıqlı əlaqəsini yaxşı bilmirsə, onda idarə olunan forma yaratmaq onun üçün çox çətin olacaq. 1C: Enterprise 8.3-də idarə olunan formaların qurulması üçün bütün yeni prinsiplər üç səviyyəli arxitekturanın ümumi konsepsiyası ilə birləşir. Buraya müştəri kompüterləri, 1C serveri və məlumatların saxlandığı DBMS daxildir.

Konfiquratorda idarə olunan formanı redaktə etmək də fərqli oldu. Bir çox aspektlər dəyişdi və idarə olunan formaların olmadığı 7.7 versiyasının tərtibatçıları təəccüblənə bilər. Hətta forma konstruktorunun görünüşü də dəyişib, bunu konfiqurasiya obyektinin istənilən formasını açmaqla görmək olar. Bir obyekti açarkən bir neçə hissəyə bölünmüş bir pəncərə görürük:

  1. Forma interfeys elementləri. Yuxarı solda proqramın istifadəçi ilə qarşılıqlı əlaqəsini təmin edən seçilmiş formada göstərilən bütün sahələri sadalayan bir pəncərə var;
  2. Forma təfərrüatları. Yuxarı sağda formanın işlədiyi bütün məlumatlar var. Məhz onlarda məlumat müştəri tərəfində saxlanılır;
  3. İdarə olunan forma göstərilir. Aşağıda interfeys elementlərinə əsaslanan görünüşün önizləməsini görürük;
  4. Forma modulu. Bu formada istifadə olunan prosedurları və funksiyaları ehtiva edən bölmə. Burada proqramın həm istifadəçi, həm də verilənlər bazası ilə qarşılıqlı əlaqəsi üçün alqoritmlərin kodunu tapa bilərsiniz.

1C tərtibatçıları müştəriləri idarə olunan formalara keçməyə təşviq edirlər, ona görə də idarə olunan formaların işlənib hazırlanması prinsiplərini öyrənmək zaman məsələsidir. Bu tip forma ilə işləməyə başlasanız, bunun inkişafın standartlaşdırılmasına və vahid qaydalara uyğunluğuna doğru bir addım olduğunu başa düşəcəksiniz. Buna görə də, 1C 8.3-də idarə olunan formalarla işləmək bacarığı 1C tərtibatçısı kimi səviyyənizi artırır.

İdarə olunan formaların dizaynı üçün təlimatlar

Əvvəla, 1C idarə olunan rejimin mexanizmini başa düşmək üçün formanın həm serverdə, həm də müştəridə mövcud olduğunu xatırlamaq lazımdır. Üstəlik, müştəridə bu obyekt yalnız istifadəçinin proqramla qarşılıqlı əlaqə interfeysinin görüntüsüdür. Bütün hesablamalar, alqoritmlər, hesablamalar və emal yalnız server tərəfində baş verməlidir. Bu, yalnız müştəridə bir çox funksiya və parametrlərdən istifadə edə bilməməsi ilə deyil, həm də performans tələbləri ilə diktə olunur.

Forma modulunda hər prosedurdan və funksiyadan əvvəl yazılmalı olan direktivin adı ilə prosedurun harada yerinə yetirildiyini anlaya bilərsiniz. "Kontekstsiz" sözü idarə olunan formada verilənlərin serverdə bu prosedura ötürülməyəcəyini bildirir. Beləliklə, bu cür prosedurlarda istifadəçinin daxil etdiyi dəyərlər əsasında alqoritmlər yazmaq mümkün olmayacaq. Bu ifadə göstərilməyibsə, o zaman forma bütün detalları ilə birlikdə ötürülür və siz onlara daxil ola bilərsiniz.

1C tərtibatçıları kontekstsiz server zənglərindən istifadə etməyi, onların sayını mümkün qədər azaltmağı və müştəri üzərində hesablamalar aparmamağa çalışmağı tövsiyə edir. Nəzəri məlumatı olmayan təcrübəsiz tərtibatçılar üçün bütün bu qaydalara riayət etmək və kodu düzgün dəyişdirmək çətindir. Öz üzərində işə başlamazdan əvvəl idarə olunan konfiqurasiya formasını açmaq, sintaksisə baxmaq və müştəri ilə serverin qarşılıqlı əlaqəsinə baxmaq faydalı olacaq.

&НаСервере Процедура ПолучитьПлатежноРасчетныеДокументыИзХранилища(НовыйАдресВХранилище) &НаСервереБезКонтекста Функция ЕстьРасчетыСКлиентом(ДокументОснование) &НаСервереБезКонтекста Процедура ЗаполнитьСписокВыбораКПП(СписокВыбора, Контрагент, ДатаСведений) &НаКлиенте Процедура ЗаполнитьГоловногоКонтрагентаЗавершение(ВыбранноеЗначение, ДополнительныеПараметры) &НаСервере Процедура УстановитьТекстПлатежноРасчетныхДокументов() &НаСервере Функция ЕстьЗаполненныеИсходныеДокументы()

1C formalarının hazırlanması üçün yeni qaydalar, bütün tərtibatçılar onlara əməl edərsə, böyük fayda verəcəkdir. Üstəlik, hər kəs yaxşılığa doğru dəyişiklikləri hiss edəcək - həm proqramçılar, həm 1C-də işləyən şirkətlər, həm françayzilər, həm də 1C tərtibatçıları. 1C-də idarə olunan formaların düzgün işləməsinin əsas nəticələri:

  1. Konfiqurasiya baxımının asanlığı və kodun oxunmasının artırılması. Buradan belə nəticəyə gələ bilərik ki, bir tərtibatçı tərəfindən yazılmış bir alqoritm çox vaxt sərf etmədən həmişə başqa bir işçi tərəfindən düzəldilə bilər;
  2. Müştəri və serverdə işləyən kodun ayrılması. Bu tərəflərin hər birində mövcud olan funksionallığın nə qədər fərqli olduğunu nəzərə alsaq, onları ayırmaq düzgün addım olardı;
  3. Tərtibatçılar platforma məntiqini, müştəri-server qarşılıqlı əlaqəsini və yazdıqları alqoritmləri daha dərindən başa düşürlər. 8.0 və daha əvvəlki versiyalarda müştəri-server hissəsini başa düşmədən hazırlanmış sənədlərin və ya kataloqların formalarını tapmaq çox yaygın idi;
  4. Konfiqurasiyaların sürətinin artırılması və müştəri kompüterlərində yükün azaldılması;
  5. Güclü kompüterlərin alınması ehtiyacının olmaması səbəbindən iş yerləri üçün kompüterlərin alınması xərclərinin azaldılması.

Əsas 1C işə salma rejimi kimi idarə olunan formanın seçilməsi bir çox sürprizlər gətirə bilər. Ancaq düzgün yanaşma ilə bu addım böyük dividendlər gətirəcək, buna görə Rusiyada getdikcə daha çox 1C istifadəçisi buna qərar verir. 1C şirkətinin gələcəkdə idarə olunan formaların inkişafına ümid etdiyini nəzərə alsaq, köhnəlmiş adi formalarda qalmaq risklidir.

ZƏNG

Bu xəbəri sizdən əvvəl oxuyanlar var.
Ən son məqalələri əldə etmək üçün abunə olun.
E-poçt
ad
soyad
“Zəng”i necə oxumaq istərdiniz
Spam yoxdur