Bu məqalədə nəzərdən keçirək addım-addım təlimat idarə olunan proqram rejimində 1C 8.3-də xarici emal yaratmaq üçün müvafiq olaraq idarə olunan formalardan istifadə edəcəyik. Ən əsası, biz onu standart alt sistemlər 2.0 və daha yeni versiyaların kitabxanasında qurulmuş 1C konfiqurasiyalarının “xarici emalı” mexanizminə necə qoşmağı öyrənəcəyik.
Tapşırıq aşağıdakılardan ibarət olacaq: "Eşya" kataloqunda qrup hərəkətini yerinə yetirəcək ən sadə xarici emal yaratmaq, yəni müəyyən edilmiş maddələr qrupu üçün seçilmiş ƏDV dərəcəsi faizini təyin etmək.
Bunu etmək üçün dərhal proqramda lazımi parametrləri edəcəyik (biz 1C 8.3 konfiqurasiyasını nəzərdən keçiririk: idarə olunan formalarda "Müəssisə Mühasibatlığı 3.0").
Bu qutunun işarələnməsi bizə xarici emaldan istifadə etmək imkanı verir.
Nümunədən istifadə edərək 1C 8.3-də yeni xarici emal yaratmaq
İndi konfiquratora keçək. "Fayl" menyusunda "Yeni..." seçin. Yaradılacaq faylın növünü seçmək üçün bir pəncərə açılacaqdır. "Xarici emal" seçin:
Yeni xarici emal pəncərəsi açılacaq. Gəlin ona bir ad verək. Emalı diskdə saxlayarkən təklif olunacaq:
Yeni idarə olunan emal forması əlavə edək. Biz bunun bir emal forması olduğunu və əsas olduğunu bildiririk:
Formada iki təfərrüatımız olacaq:
- Nomenklatura qrupu – “Nomenklatura” kataloquna keçid;
- SelectVATRate – ƏDV dərəcəsinin köçürülməsi üçün keçid.
Təfərrüatları yuxarı sağ pəncərədəki "Xüsusiyyətlər" sütununda yaradırıq. Onları siçan ilə yuxarı sol pəncərəyə sürükləyin. Yeni təfərrüatlar dərhal aşağıdakı formada görünməlidir.
Detalların sırası “Yuxarı” – “Aşağı” oxlarından istifadə etməklə dəyişdirilə bilər:
1C-də 267 video dərsi pulsuz əldə edin:
Qalan şey "Quraşdır" düyməsini əlavə etməkdir. İdarə olunan formalarda siz formaya sadəcə düymə əlavə edə bilməzsiniz. Onu forma elementlərinin strukturuna əlavə etsəniz belə, formanın özündə görünməyəcək. Düymə icra edəcəyi komanda ilə əlaqələndirilməlidir. "Əmrlər" sekmesine keçin və "ƏDV dərəcəsini təyin et" əmrini əlavə edin. Komanda xüsusiyyətlərində bir hərəkət yaradın. "Müştəridə" əmr işləyicisini seçin. Əmr formaya sadəcə onu forma elementləri olan bölməyə çəkməklə də əlavə edilə bilər.
Forma modulunda eyni adlı prosedur yaradılacaq. Orada serverdəki proseduru çağıracağıq:
&OnClient
Prosedurun müəyyən edilmiş ƏDV dərəcəsi (Əmr)
SetVATRateOnServer();
Prosedurun Sonu
Serverdəki prosedurda kiçik bir sorğu və ƏDV dərəcəsinin təyin edilməsi ilə bağlı tədbirlər yazacağıq:
&Serverdə
SetVATRateOnServer() proseduru
Sorğu = Yeni Sorğu;
İstək. Mətn =
"SEÇİN
| Nomenklatura.Link
|FROM
| Kataloq.Nomenklatura AS Nomenklatura
|HARADA
| Nomenklatura.İERARXİYADA Link (&Nomenklatura Qrupu)
| VƏ Nomenklatura DEYİL.MarkDeletion
| VƏ Nomenklatura DEYİL Bu Qrupdur”;
Request.SetParameter("Eşya Qrupu", Element Qrupu);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();
SelectRecordDet.Next() döngəsi zamanı
Cəhd
SprNomObject.Write();
İstisna
Report("Obyekt yazarkən xəta """ + SprNomObject + """!
|» + Təsvir Xətası());
EndAttempt;
EndCycle;
Prosedurun Sonu
"Forma" sekmesine qayıdırıq, forma bir düymə əlavə edirik və onu əmrlə əlaqələndiririk:
Beləliklə, emalımız istifadəyə hazırdır. Onu çağırmaq üçün "1C Enterprise" rejimində "Fayl" - "Açıq" menyusuna getmək və yaradılmış faylı seçmək lazımdır.
Bununla belə, bu rejimdə işləmək emalın ayıklanması üçün əlverişlidir, lakin istifadəçi üçün tamamilə uyğun deyil. İstifadəçilər hər şeyin “barmaqlarının ucunda”, yəni verilənlər bazasının özündə olmasına alışıblar.
“Əlavə hesabatlar və emal” bölməsi bunun üçündür.
Amma bizim emalımızı oraya əlavə etmək üçün əvvəlcə onun təsvirini verməli və proqrama onun xüsusiyyətlərini söyləməliyik.
"Xarici emal haqqında məlumat" funksiyasının təsviri
Bu funksiyanın məzmununa bir nümunə verəcəyəm. O, ixrac edilə bilən və müvafiq olaraq emal modulunda yerləşməlidir:
Function InformationOnExternalProcessing() Export
DataForReg = Yeni Struktur();
DataForReg.Insert("Ad", "ƏDV dərəcəsi təyini");
DataForReg.Insert("SafeMode", Doğru);
DataForReg.Insert("Versiya", "ver.: 1.001");
DataForReg.Insert("Məlumat", "Nomenklatura kataloqunda ƏDV dərəcəsinin təyin edilməsi üçün emal");
DataForReg.Insert("Görünüş", "Əlavə Qenerasiya");
Komanda Cədvəli = YeniDəyər Cədvəli;
TabZnCommands.Columns.Add("İdentifikator");
TabZnCommands.Columns.Add("İstifadə");
TabZnCommands.Columns.Add("Görünüş");
NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Açıq emal";
DataForReg.Insert("Əmrlər", TabZnCommands);
DataForReg qaytarın;
EndFunction
Qeydiyyat məlumatları strukturunun hansı sahələrindən istifadə edilməli olduğunu daha yaxşı başa düşmək üçün “Əlavə hesabatlar və emal” kataloqunun təfərrüatlarına nəzər salaq:
Gördüyünüz kimi, hər şey olduqca sadədir. Yalnız bir atribut uyğun gəlmir: “Başlama Seçimi” – “İstifadə et”. Ümumi modullardan birinin koduna baxsaq, bu sahələrin bir dəstəsinin necə yarandığını görərik:
Strukturun hansı sahələrinin tələb olunduğunu müəyyən etmək üçün əvvəlcə onu təsvir edə bilməzsiniz, sadəcə boş birini yaradın və sonra sazlayıcıdan istifadə edin. Emal qeydiyyatı zamanı modulları izləsəniz, hansı sahələrin tələb olunduğu və hansının tələb olunmadığı dərhal aydın olur.
1C 8.3-də xarici emalın birləşdirilməsi
Xarici emal ilə işləmək üçün (və xarici çap forması da xarici emaldır) bir obyekt var Xarici emal.
Gəlin iki mümkün halı nəzərdən keçirək:
Xarici emal infobazadan ayrıca diskdə saxlanılır
1C-də xarici emal prosesini proqramlı şəkildə açmaq üçün onun faylının ünvanını bilməlisiniz. Bunu bilərək, ya emal formasını aça, ya da onunla sonrakı hərəkətləri yerinə yetirmək üçün emal obyekti əldə edə bilərsiniz (məsələn, obyekt modulundan ixrac funksiyalarını çağırmaq).
Xarici emal formasının açılması
1C-də xarici emal formasını proqramlı şəkildə açmaq üçün funksiyadan istifadə edin GetForm() obyekt Xarici emal. Funksiya bir neçə parametrə malikdir. Əsas emal formasının sadə bir açılışını nəzərdən keçirin:
Forma = Xarici Proseslər. GetForm (Fayl Ünvanı);
forma. Open();
Kiçik xarici emal formasını açmaq üçün onun adını göstərməlisiniz.
//FileAddress dəyişəni xarici emal faylının tam yolunu ehtiva edir
Forma = Xarici Proseslər. GetForm (Fayl Ünvanı, "Kiçik forma") ;
forma. Open();
Xarici emalın obyekt kimi açılması
Obyekt kimi xarici emal almaq üçün funksiyadan istifadə olunur Yarat() obyekt Xarici emal.
//FileAddress dəyişəni xarici emal faylının tam yolunu ehtiva edir
ProcessingObject = Xarici emal. Yarat (Fayl Ünvanı);
Varsayılan olaraq, bütün emal təhlükəsiz rejimdə açılır. Onu söndürmək üçün aşağıdakı seçimlərdən istifadə edin:
//FileAddress dəyişəni xarici emal faylının tam yolunu ehtiva edir
Xarici emal və ya çap forması infobazada saxlanılır
Bir çox konfiqurasiyada xarici çap formalarını və emalları birbaşa infobazada saxlamaq mümkündür. Bunun üçün kitabçadan istifadə olunur. Xarici emal. Xarici emalın özü ikili məlumat kimi və ya atributlarda saxlanılır StorageExternalProcessing, və ya cədvəl bölməsində Mənsubiyyət rekvizitlərdə StorageExternalProcessing.
Xarici emal açmaq üçün sizə lazımdır:
- Yaddaşdan alın.
- İşlənmiş faylı diskdə saxlayın.
- Formanı açın və ya emal obyekti əldə edin.
- Xarici çap forması ilə məşğul oluruqsa, standart detalları doldura bilərik Obyekt Referansı və ixrac funksiyasını çağırın Möhür.
//RefLink dəyişəni ExternalProcessings kataloq elementinə keçid ehtiva edir
DvData = RefLink. Xarici emal yaddaşı. Get();
FileAddress = GetTemporaryFileName() ;
DvData. Yaz (Fayl Ünvanı);
ProcessingObject = Xarici emal. Yarat (Fayl Ünvanı, Yanlış);