OPTİMA ŞİRKƏTLƏR QRUPU - 1C AZƏRBAYCAN

1C ilə Biznes Tətbiqlərinin Dizaynı. 2-ci hissə.

Platforma mexanizmlərinin işinin ətraflı təsvirinə dair seriyamızın birinci hissəsində biz 1C platformasının məlumatların verilənlər bazasına saxlanması və ümumilərin hesablanması da daxil olmaqla məlumatları necə idarə etdiyini öyrəndik. Belə görünə bilər ki, bu cür məlumatların əhəmiyyəti azdır. Bununla belə, əgər tərtibatçılar bir çox verilənləri idarə etməyə qadir olan mürəkkəb proqramlar yaratmaq istəyirlərsə, əmin olun ki, onlar məlumatların “aşağı səviyyədə” necə işləndiyini başa düşməlidirlər.

İndi bu bilikləri tətbiq etmək və tətbiqimizi yaratmağa çalışmağın vaxtıdır.

Yadınızdadırsa, ilk məqalədə bir şirkətdə əməliyyatları avtomatlaşdırmaq istəyirdik. Tapşırığa daha çox təfərrüat əlavə etməyin vaxtı gəldi.

Beləliklə, bəzi ticarət şirkətimiz var. Təchizatçılarından məhsul alır, onları anbarlara qoyur (müxtəlif şəhərlərdə bir neçəsi ola bilər), qiymət əlavə edir və məhsulları müştərilərinə satır. Bu zaman şirkət çatdırılma xidmətləri təklif edir. Bir sözlə, şirkət həm mallar, həm də xidmətlər təqdim edir.

Məlumatlı qərarlar qəbul etmək üçün rəhbərlik şirkətin biznes fəaliyyətinin nəticələrini əks etdirən hesabatlar almalıdır. Onlardan biri aşağıda göründüyü kimi Mövcud Ehtiyat Hesabatıdır.

scr_1.png

Gəlin onu təhlil edək. Əslində, şirkət rəhbərliyinin ehtiyac duyduğu hesabatları təhlil edərək bu cür tətbiqlərin dizaynına başlamaq həmişə yaxşı fikirdir. Hesabata daxil edilmiş məlumatların aydın şəkildə başa düşülməsindən sonra biz proqram arxitekturasının dizaynına davam edə bilərik.

Yuxarıdakı hesabata baxaraq nə deyə bilərik? Tərkibində bir neçə məhsul var. Beləliklə, məhsulların siyahısı üçün bir yerə ehtiyacımız var. 1C platforması bizə siyahıları kataloqlarda yerləşdirməyi təklif edir. Beləliklə, bizə Products (Məhsullar) kataloqu lazımdır.

Gəlin onu yaradaq. 1C-ni işə salın, yeni (təmiz) konfiqurasiya yaradın. Products (Məhsullar) kataloqunu konfiqurasiyaya əlavə edin.

scr_2.png

scr_3.png

İndi ilkin hesabata qayıdaraq məhsulların istehsalçılara görə qruplaşdırıldığını görə bilərik. Belə bir funksiyanı həyata keçirməyin bir neçə yolu var. Onlardan biri istehsalçıların adlarını Products (Məhsullar) kataloqu daxilində qruplara təyin etməkdir. Bu o deməkdir ki, biz Məhsullar kataloqunda qruplar yaradırıq və belə qruplara istehsalçıların adlarını veririk. Ancaq tapşırığın bu cür sadələşdirilməsi potensial olaraq gələcəkdə problemlərə səbəb ola bilər. Təsəvvür edin ki, nə vaxtsa istehsalçının veb-saytını və ya e-poçtunu əlavə etmək istəyə bilərik.

İstehsalçının Products (Məhsullar) kataloqunda qrup adı olması bir qədər çaşdırıcıdır.

Bu cür qarışıqlığın qarşısını almaq üçün biz xüsusi Manufacturers (İstehsalçılar) kataloqu yaratmaq istəyirik. Məhsulları istehsalçılarla əlaqələndirmək üçün biz Products (Məhsullar) kataloquna Manufacturer (İstehsalçı) atributunu əlavə edirik.

Manufacturers (İstehsalçılar) kataloqunu yaradaq.

scr_4.png

Products (Məhsullar)  kataloquna Manufacturer (İstehsalçı) əlavə edin və ona CatalogRef.Manufacturers tipini təyin edin.


scr_5.png

İndi məhsullarımız və istehsalçılarımız bir-biri ilə bağlıdır.

Hesabatı təhlil etməyə davam edək. Burada məhsul və istehsalçılarla yanaşı, anbarların da siyahısı olduğunu görə bilərik. Təbii ki, bunun üçün bizə Warehouses (Anbarlar) kataloqu lazımdır. Gəlin onu yaradaq.

scr_6.png

Orijinal hesabata nəzər salın. Gördüyünüz kimi, biz bütün lazımi kataloqları yaratmışıq və daha da irəli getməyə hazırıq. Hesabat mövcud ehtiyatı təqdim etməli olduğuna görə, bizə müvafiq məlumatları saxlamaq üçün bir yer lazımdır.

1C platforması daxilində ehtiyat (və ya qalıqlar) haqqında məlumatları özündə əks etdirən obyekt yığım reyestri adlanır. Şübhəsiz ki, belə bir reyestrin iki növ ola biləcəyini xatırlayırsınız: balanslar və dövriyyələr.

Bu dəfə bizə hansı reyestr lazımdır? Cavab təhlil etdiyimiz hesabatdadır. Ehtiyatlarla məşğul olarkən biz balansları seçirik.

Yeni reyestr yaradın və müvafiq növü təyin edin:

scr_7.png

İlkin hesabatın əlavə təhlili bizə ölçülər və resurslar kimi nələrdən istifadə etməli olduğumuzu başa düşməyə imkan verir. Yaradılmış hesabatda anbarlar, məhsullar və mövcud ehtiyatlar haqqında məlumatlar olmalıdır. Bizim vəziyyətimizdə anbarlar və məhsullar ölçülərdir, mövcud ehtiyat isə resursdur.

Reyestrinizdə bu elementləri yaradın. Warehouse (Anbar) ölçüsü ilə başlayın:

scr_8.png
Product (Məhsul) ölçüsü ilə davam edin:

scr_9.png

No Empty Value (Boş Dəyər Yox) seçiminin işarələndiyinə əmin olun. Bu bayraq boş dəyərin saxlanmasını qadağan edir. Tətbiqimiz məhsul əvəzinə boş dəyər əlavə etməyə çalışarsa, 1C platforması bunun qarşısını alır və xəta qaytarır.

Ölçülərlə başa çatdıqdan sonra Quantity (Kəmiyyət) resursu yaradaq:

scr_10.png
Aydındır ki, biz növ üçün Number (Nömrə) seçirik. Lenght (Uzunluq)Precision (Dəqiqlik) parametrlər üçün dəyərlər tapşırıqdan asılı olaraq dəyişəcək. Tutaq ki, məhsulumuz hissə-hissə gəlir. Beləliklə, biz Precision (Dəqiqlik) 0, Lenght (Uzunluq) isə 10-a təyin etdik.

İndi bizə lazım olan məlumatları saxlamaq üçün reyestrimiz var. Əminəm ki, 1C-də reyestrlər üçün məlumat sənədlər adlandırdığımız 1C obyektləri vasitəsilə daxil olur. Artıq belə bir sənəd yaratmağın vaxtıdır. SupplierInvoice (Təchizatçı fakturası) yaradın:

scr_11.png

Data (Məlumatlar) bölməsinə keçin (indi biz mövcud ehtiyatlar haqqında düzgün hesabat yaratmaq üçün sənədə daxil etməli olduğumuz məlumatları müəyyən etməliyik). Təbii ki, bizim cədvələ ehtiyacımız var. Ona Products (Məhsullar) adı verin və Product və Quantity (Məhsul və Kəmiyyət ) atributlarını əlavə edin.

scr_12.png
scr_13.png

Mən həmçinin Price Amount (Qiymət və Məbləğ) atributlarını əlavə etməyi təklif edirəm. Onlar sonrakı mərhələdə istifadə edilə bilər:

scr_14.png
Məhsullar və onların miqdarı ilə başa çatdıq. Bununla belə, hesabat məhsulları anbarlar üzrə qruplaşdırmağa imkan verməlidir, ona görə də sənədə müvafiq atribut əlavə edirik. Sual budur ki, bu atribut hara getməlidir? Cədvəlin içində olmalıdır, ya yox?

 

Buna yekun cavab yoxdur, çünki qərar cari iş tapşırığından asılıdır. Ən sadə həll yollarından biri Warehouse (Anbar) atributunu sənədin cədvəl bölməsinə əlavə etməkdir. Bu, bizə məhsulları fərdi anbarlara yerləşdirməyə imkan verir. Və ya biz sənədin başlığına Warehouse (Anbar) atributunu əlavə edə və başlıqda göstərilən anbara məhsulları ayıra bilərik. Əgər məhsulu başqa anbara yerləşdirmək istəsək, biz daha bir sənəd yaradırıq və onu başqa anbara təyin edirik.

 

Bu tapşırıq üçün mən təklif edirəm ki, sənədin başlığına əlavə edilmiş anbarlarla sadə variantdan və ya başqa sözlə, hər sənəd üçün tək anbardan istifadə edək. SupplierInvoice (Təchizatçı fakturası) sənədinin başlığında Warehouse (Anbar) atributunu yaradın:

scr_15.png
Bu, Data (Məlumatlar) bölməsi üçündür və tərtibatçıların müəyyən edilmiş sənədi dəyişdirə bilməsi (qeydlər əlavə etmək) üçün reyestrləri təyin etdiyi Posting (Paylaşma) bölməsinə keçməyin vaxtıdır. Bizim nümunəmizdə yalnız bir reyestrdən istifadə edirik. Onu seçin:

scr_16.png
Reyestrə verilənləri yazmaq üçün proqram kodunu yaratmağa davam edin. Bunun olduqca sadə olacağını gözlədiyimiz kimi, Record wizard (Qeyd sehrbazı) çox yaxşı işləyəcək.

scr_17.png

Burada cədvəl bölməsi üçün məlumat mənbəyi olaraq reyestr qeydinin növü və Products (Məhsullar) üçün Receipt (Qəbz) seçirik:

scr_18.png
wizard-ın (Sehrbaz) tələb olunan sahələri doldurmasına icazə vermək üçün Fill Expressions (İfadələri doldur) düyməsini klikləyin:

scr_19.png
Sahələri doldurarkən Wizard (Sehrbaz) həm atribut adlarını, həm də onların növlərini müqayisə edir. Beləliklə, əgər sənəddə İnventar atributu varsa və reyestrdə onun əvəzinə Product (Məhsul) atributu varsa, avtomatik ssenari uğursuz olur və biz sahələri əl ilə xəritələşdirməliyik.

Atribut adları bərabər olduqda, hər şey yaxşı işləyir. OK düyməsini klikləyin və sehrbazın kodu yaratmasına icazə verin:

scr_20.png
Mənbə kodu olduqca sadədir. Əvvəlcə ProductsInWarehouses reyestrini Write=True rejiminə təyin etdik. Bu rejimdə yerləşdirmə proseduru zamanı bu reyestrdə baş verən bütün dəyişikliklər prosedur başa çatdıqdan dərhal sonra avtomatik qeydə alınır. Beləliklə, tərtibatçılar reyestr üçün yazma metodunu çağırmaq məcburiyyətində deyillər, çünki sistem göndərmə zamanı baş verən bütün dəyişiklikləri avtomatik olaraq qeyd edir.

Bu, Write = True rejiminin mənasıdır.

Kodun qalan hissəsini başa düşmək asandır. Bu, Products(Məhsullar) sənədində cədvəl hissəsinin işlənməsi dövrüdür. Nəticədə, sistem hər sənəd sətri üçün reyestrə bir qeyd əlavə edir.

Burada proses tam avtomatikdir və dəyişiklikləri saxlamaq üçün əlavə tədbirlər görməli deyilik.

Deyəsən, işin əsas hissəsini başa vurmuşuq. Niyə sənədimizin necə işlədiyini yoxlamırıq? Davam edə bilərik, lakin prosesi daha hamar etmək üçün bəzi kiçik düzəlişlər edək.

SupplierInvoice (Təchizatçı Fakturası) sənədi üçün forma yaratmağın vaxtı gəldi. Əslində, bu isteğe bağlıdır. Əvvəlcədən təyin edilmiş forma çatışmırsa, 1C platforması avtomatik olaraq istifadəçilər üçün forma yaradır. Ancaq bu cür "avtomatik" formalar həmişə əlverişli deyil və mən sizə sənədləriniz üçün (və təkcə sənədlər deyil) fərdiləşdirilmiş formalar qurmağı tövsiyə edirəm.

SupplierInvoice (Təchizatçı Fakturası) formasını belə yaradırsınız:

scr_21.png

Command interface (əmr interfeysi) bölməsinə keçin.

scr_22.png

Warehouses (Anbarlar) reyestrində olan Products (Məhsullar) siyahıya almaq və görünmə bayrağını təyin etmək üçün Go-nu açın:

scr_23.png

Bu seçim aktiv olduqda, siz reyestrdəki bütün dəyişiklikləri birbaşa sənədin daxilində görə bilərsiniz, bu olduqca rahatdır. Əsasən, burada etməli olduğumuz hər şey budur.

Tətbiqimizdə dialoq rejimini daha rahat etmək üçün alt sistemlər yaratmağı və onlara əvvəllər yaradılmış obyektləri ayırmağı təklif edirəm.

Catalogs (Kataloqlar) alt sistemi yaradın:

scr_24.png

Content (Məzmun) bölməsinə keçin və yuxarıda qeyd olunan alt sistemi kataloqlarımıza əlavə edin:

scr_25.png

Purchases (Satınalmalar) alt sistemi yaradın və onu SupplierInvoice (Təchizatçı fakturası) sənədi və ProductsInWarehouses (Anbarlardakı məhsullar) reyestrinə əlavə edin:


scr_26.png

Nəhayət, onun necə işlədiyini görmək üçün proqramımızı dialoq rejimində işə salmağa hazırıq.

Proqramı işə salın və Catalogs (Kataloqlar) bölməsinə keçin. Kataloqların siyahısını burada görə bilərik:

scr_27.png
Təbii ki, davam etməzdən əvvəl bu kataloqlara məlumat əlavə etməliyik. Manufacturers (İstehsalçılar) üçün bir neçə element əlavə edin:

scr_28.png
İndi Warehouses (Anbarlar) üçün bəzi elementləri əlavə edin:

scr_29.png

Products (Məhsullar) üçün bir neçə element yaradın:

scr_30.png
Hər bir məhsulu siyahıdan istehsalçı ilə əlaqələndirin:

scr_31.png
Kataloqlarla işimiz bitən kimi biz Purchases (Satınalmalar) bölməsinə keçə, yeni SupplierInvoice (Təchizatçı fakturası) sənədi yarada və onu doldura bilərik:

scr_32.png

Sənəd məlumatlarını reyestrə yazmaq üçün Send(göndər) (və ya Post and close (paylaş və bağla)) düyməsini sıxmaq lazımdır. Send( Göndər) istifadə edin və dərhal Products in warehouses (Anbarlardakı məhsullar) linkinə klikləyin:

scr_33.png
Sənədin Products in warehouses reyestrinə daxil etdiyi dəyişiklikləri olan bir forma görməlisiniz:

scr_34.png

Kiçik bir test edək. Clear posting (Göndərişi sil) seçimi ilə sənədi silməməyə cəhd edin:


scr_35.png

Nəticə sənədin reyestrə daxil etdiyi bütün qeydlərin avtomatik silinməsidir. Gözlədiyimiz kimi işlədiyini görmək üçün Products in warehouses linkinə baxın:

scr_36.png

Bu sənədi yenidən yerləşdirməklə əlavə edilmiş sətirləri geri qaytara bilərsiniz.

scr_37.png
İndi bunun olduqca sadə bir konsepsiya olduğunu görə bilərsiniz.

Və bu, əsasən, bu gün üçün belədir. Tətbiq arxitekturasını tərtib etməyi öyrəndik, yığım registrini və reyestrə qeydlər əlavə edən sənəd yaratmağı təcrübə etdik. Həmçinin kodun bəzi sətirlərini yazdıq və bir neçə kataloq yaratdıq.

Növbəti addımımız satış faktura sənədi və şirkətlərimizin anbarlarında mövcud ehtiyatlar haqqında hesabat yaratmaq olacaq.

 


1C haqqında suallarınız var? Gəlin müzakirə edək!

1C OPTİMA AZƏRBAYCAN mütəxəssislərindən məsləhət ala, qiymətləri dəqiqləşdirə və həll sifariş edə bilərsiniz. Telefon, e-poçt və ya geri zəng tələb etməklə bizimlə əlaqə saxlayın.

+994 12 310 26 27