Açıq
Yaxın

Verilənlər bazasına xarici çap formasının əlavə edilməsi. Xarici çap formasının verilənlər bazasına əlavə edilməsi Çap formalarının 1s-də qurulması 8.2

Bu məqalə sizə 1C 8-də az biliyi olan bir başlanğıcın çap formasını necə yarada biləcəyini ətraflı izah edəcəkdir. Məsələn, ən çox yayılmış 1C 8 konfiqurasiyalarından birini götürək - Mühasibat uçotu 2.0. 1C çap formasının yaradılması yazı mərhələləri:

  • Xarici çap forması faylının yaradılması;
  • Çap formasının tərtibatının yaradılması;
  • Çap edilmiş forma məlumatlarını ekranda göstərmək üçün proqram kodunun yazılması;
  • Çap formasının avtomatik qeydiyyatı üçün parametrlərin yaradılması;
  • Xarici çap formasının bazaya qoşulması 1C Müəssisələr.

1C çap formasının yaradılması. Problemin formalaşdırılması

Bizdən konfiqurasiya tələb olunur Mühasibat uçotu 2.0 sənəd üçün çap formasını yaradın Malların və xidmətlərin qəbulu. Çap edilmiş formanın başlığında aşağıdakı məlumatları göstərin:

  • Təşkilat;
  • Qarşı tərəf;
  • Qarşı tərəf müqaviləsi;
  • Qəbul tarixi.

Cədvəl bölməsində məlumatları cədvəl şəklində göstərin Mallar sənəd. Cədvəldə aşağıdakı sütunlar olmalıdır:

  • nomenklatura;
  • Kəmiyyət;
  • Qiymət;
  • cəmi;
  • Həm də cari tarix üçün əşyanın qiyməti (sənəddən qiymət növünə görə).

Xarici emal faylı

Gəlin problemin həllinə keçək. Əvvəlcə 1C 8-i rejimdə açaq Konfiqurator. Məhz bu rejimdə bütün inkişaflar 1C 8 platformasında aparılır. İndi biz xarici emal faylı yaratmalıyıq. Bunu etmək üçün menyu üzərinə klikləyin Fayl -> Yeni… və ya yeni faylın simvolu ilə.

Açılan pəncərədə elementi seçin Xarici emal.

Sonrakı sahədə ad Xarici emalın adını daxil etməlisiniz. Bizim vəziyyətimizdə biz onu sadəcə olaraq “PrintForm” adlandıracağıq; sinonim sahəsi avtomatik olaraq doldurulacaq. Nəzərə alın ki, sahədə ad, xarici emal, ad boşluq və durğu işarələri olmadan yazılmalıdır.

Xarici emal atributları əlavə edin LinkToObject və seçin onun üçün yazın DocumentLink malların və xidmətlərin qəbulu. Bunu etmək üçün 1C xarici emal metadata ağacında elementi seçin Rekvizitlər və düyməni basın Əlavə et(yaşıl plus ilə düymə). Atribut xüsusiyyətləri pəncərəsi ekranın sağ tərəfində, sahədə açılacaq ad yazaq - ReferenceToObject. IN sahə Növüç nöqtə ilə düyməni basın.

Növ ağacındakı filialı genişləndirək DocumentLink, və orada Malların və xidmətlərin qəbulu elementini tapın, yanındakı qutuyu işarələyin və vurun TAMAM.

Bunu etmək üçün xarici emal faylını sabit diskdə saxlayaq, menyudan istifadə edin; Fayl -> Saxla, piktoqram Yadda saxla(mavi disket) və ya klaviatura qısa yolu Ctrl+S. Saxlanılan faylı “PrintForm” adlandıraq.

Çap formasının tərtibatının yaradılması

1C çap formasının tərtibatını yaratmağa başlayaq. Layout çap formasının çıxışı üçün şablon rolunu oynayır, ona görə də çap edilmiş formanızın yaxşı görünməsini istəyirsinizsə, ona diqqət yetirməlisiniz.

Xarici emal metadata ağacına yeni bir tərtibat əlavə edək, biz layout dizayneri pəncərəsində heç nəyi dəyişməyəcəyik və düyməni sıxırıq Hazır.

Açılan yeni tərtibatda çap edilmiş formanı göstərmək üçün lazım olan bir neçə sahə yaradacağıq. Bizə lazım olan bütün layout sahələri üfüqi olacaq, ona görə də yeni bir sahə yaratmaq üçün lazımi sayda layout xətlərini seçin və menyuya keçin. Cədvəl -> Adlar -> Ad təyin et və ya klaviatura qısa yolundan istifadə edin Ctrl + Shift + N, sonra qutuya bölgənin adını daxil edin. Bir layout sahəsi yaratarkən, onları həmişə əlavə edə və ya silə biləcəyiniz sətirlərin sayı ilə səhv etməkdən qorxmayın; 1C layout xəttini silmək üçün istədiyiniz xətti seçin və kontekst menyusunda elementi seçin Sil. Plana yeni sətir əlavə etmək üçün tərtibatın istənilən sətrini seçin və kontekst menyusunda elementi seçin. Genişləndirin.

Layout Başlığının əlavə edilməsi

Əvvəlcə bir sahə yaradaq Bir papaq, çap forması başlığı üçün məlumatları göstərəcək. Bu sahə üçün yeddi layout xəttinə ehtiyacımız olacaq. Gəlin onları seçək və yuxarıda yazdığım kimi düymələr kombinasiyasını sıxırıq Ctrl + Shift + N, sahədə ad"Şlyapa" yazın və düyməni basın tamam.

Layout sahəsini bizə lazım olan məlumatlarla dolduraq. Adətən, heç bir çap edilmiş forma başlıqsız tamamlanmır, ona görə də layout başlığında bir forma yaradaq. Başlıqda çap formasının adından əlavə onun çap olunduğu sənədin nömrəsini də göstərəcəyimiz üçün tərtibatda başlığın mətnini parametr kimi təyin edəcəyik. Layout parametri, daxili 1C 8 dilindən istifadə edərək müxtəlif məlumatların çıxarıla biləcəyi xüsusi təyin edilmiş düzən hüceyrəsidir. Başlıq çap edilmiş formanın bütün eni boyunca göstərilməlidir, buna görə də vərəqin standart landşaft oriyentasiyasında çap etmək üçün neçə düzən xanasının kifayət edəcəyinə qərar verək.

Adətən on üç və ya on dörd layout hüceyrəsi kifayətdir, onları sahənin birinci cərgəsində seçin Bir papaq və bir hüceyrəyə birləşdirin ( Kontekst menyusu -> Birləşdirin). Bundan sonra, yaranan böyük hüceyrəyə iki dəfə vurun və parametrin adını yazın, bizim vəziyyətimizdə "TitleText". Daxil edilmiş mətnin tam hüquqlu bir parametrə çevrilməsi üçün xanaya sağ vurun və kontekst menyusundakı elementi seçin. Xüsusiyyətlər. Əlfəcin üzərində Layout sahəni tapaq Doldurma və dəyəri seçin Parametr. 1C tərtibatındakı parametrlər mötərizədə göstərilir "<>».

Çap edilmiş formanın başlığı digər mətnlər arasında seçilməlidir, ona görə də xananı yenidən seçin və mətnin düzülməsini təyin etmək üçün düzən formatlaşdırma panelindəki nişanlardan istifadə edin. Mərkəzləşdirilmiş və şrift ölçüsü 14.

Başlıq mətnindən sonra biz onu ərazidə göstərəcəyik Bir papaq təşkilat, qarşı tərəf, kontragent müqaviləsi və malların qəbul tarixi haqqında məlumat. Bütün bu məlumatlar da sənəddən götürüldüyü üçün onu parametrlərlə də rəsmiləşdirəcəyik. Bundan əlavə, hər bir parametrdən əvvəl izahlı mətn yazmalısınız ki, istifadəçi təşkilatın harada olduğunu, qarşı tərəfin harada olduğunu və s. Bütün bu hərəkətlər başlıq yaratmağa bənzəyir, ona görə də mən onların üzərində təfərrüatlı danışmayacağam, sadəcə olaraq sonda nə baş verməli olduğunu təsvir edəcəyəm.

Şəkil layout parametrlərinin adi mətndən necə fərqləndiyini göstərir.

Layout Cədvəli Başlığının əlavə edilməsi

Bu layout sahəsində yaratmalı olduğumuz son şey cədvəl hissəsinin məlumatlarının göstəriləcəyi cədvəl başlığıdır. Mallar. Cədvəl üçün tələb olunan sütunlar “Problem Bəyanatı” bölməsində təsvir edilmişdir. Biz həmçinin xanaların və yazı mətninin (sütun adlarının) birləşməsindən istifadə edərək cədvəl başlığı yaradacağıq. Alətdən istifadə edərək cədvəl başlığının sərhədlərini seçin Çərçivə, layout formatlaşdırma panelində yerləşir.

Plana cədvəlin əlavə edilməsi

Layoutda başqa bir sahə yaradaq - Data. Cədvəl hissəsinin məlumat cədvəli orada göstəriləcəkdir Mallar. Bu sahə üçün bizə yalnız bir layout xətti lazımdır. Cədvəl hissəsinin bütün sətirlərini çap olunmuş formada göstərmək üçün biz bu sahəni lazımi sayda doldurub göstərəcəyik. Ərazidəki sütunlar Data cədvəl başlığının sütunları ilə üst-üstə düşməlidir, ona görə də onu doldurmaq çətin olmayacaq. Fərq yalnız ərazidədir Data bizə yalnız mətn deyil, parametrlər lazımdır. Onu da qeyd edək ki, standart olaraq, rəqəmsal parametrlər sağa, mətn parametrləri isə sola formatlaşdırılır. Sütunları seçmək üçün alətdən də istifadə etməlisiniz Çərçivə.

Layout-a Altbilgi əlavə etmək

Bizə lazım olan son layout sahəsidir Zirzəmi. O, miqdar və məbləğə görə ümumiləri göstərəcək. Yaradılış bir sahə yaratmağa bənzəyir Data, lakin əlavə olaraq nəticələr qalın hərflərlə vurğulanmalıdır.

Son nəticə belə görünən bir tərtibat olmalıdır:

1C çap formasının yaradılması. Proqramlaşdırma

Proqramlaşdırmaya başlayaq - bu, çap formasının yaradılmasında ən vacib mərhələdir. Əvvəlcə xarici çap forması obyekt moduluna keçək, proqramlaşdıracağımız yer budur. Bunu etmək üçün əsas xarici emal pəncərəsində vurun Fəaliyyətlər -> Obyekt modulunu açın.

Xarici çap forması obyekt modulunda ixrac funksiyası yaratmalısınız Möhür ().

Funksiya Çap() SonFunksiyasını ixrac edin

Nəzərə alın ki, bu xüsusiyyət adi proqramdan istifadə edən konfiqurasiyalarda xarici çap formaları üçün tələb olunur. Çap edilmiş formanı göstərmək üçün lazım olan bütün sonrakı proqram kodu bu funksiya daxilində yazılacaq.

Əsas Dəyişənlərin Başlanması

Gəlin dəyişən yaradaq TabDoc, elektron cədvəl sənədini ehtiva edəcək - bu, tərtibatın doldurulmuş sahələrini göstərəcəyimiz çap formasıdır.

TabDoc = yeni Cədvəl Sənədi;

Bir dəyişənə Layout Yaratdığımız çap formasını alacağıq. Bunu etmək üçün daxili funksiyadan istifadə edirik GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Dizaynın bütün sahələrini dəyişənlərə çevirəcəyik. Bunun üçün layout metodundan istifadə edirik GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Başlıq"); AreaData = Layout.GetArea("Məlumat"); AreaFooter = Layout.GetArea("Altbilgi");

Çap edilmiş formanın başlığının elektron cədvəl sənədinə çıxarılması

Bütün zəruri dəyişənlər işə salınır. Elektron cədvəl sənədində tərtibat sahələrini doldurmağa və göstərməyə başlayaq. Əvvəlcə çap edilə bilən formanın başlığını dolduraq, bunun üçün parametrə keçməliyik; Başlıq Mətni, tərtibatda yaratdığımız, bizə lazım olan mətn. Parametr dəyərlərini doldurmaq üçün layout sahəsi adlanan xüsusi bir kolleksiyaya malikdir - Seçimlər. Hansından “.” vasitəsilə istənilən parametri əldə edə bilərsiniz. Başlıq mətnində mətni köçürəcəyik: "Çap edilmiş forma", həmçinin sənəd nömrəsi.

Header Area.Parameters.TitleText = "Formanı çap et"+LinkToObject.Number;

Başlığın qalan parametrlərini oxşar şəkildə dolduracağıq, onlar üçün bütün lazımi dəyərləri detallardan alacağıq; Obyekt Referansı, çap olunacaq sənədə keçidi ehtiva edir.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Başlıq Sahəsi.Parameters.Qarşı Tərəf Müqaviləsi = LinkToObject.Qarşı Tərəf Müqaviləsi;

Başlığın bütün parametrləri doldurulur, biz onu yaratdığımız elektron cədvəl sənədində göstərəcəyik, bunun üçün metoddan istifadə edirik. çıxış(<Область>) .

TabDoc.Output(HeaderArea);

Çap edilmiş əlil üçün sorğunun yazılması

Ərazini doldurmağa və çəkməyə başlayaq Data. 1C çap formasını yaratmaq, həmçinin cədvəl məlumatları əldə etmək üçün sorğu yazmağı nəzərdə tutur; Mallar və qiymətlər Nomenklaturalar istifadə edəcəyimiz cari tarix üçün Sorğu. 1C 8 sorğu dili SQL-ə bənzəyir, daha doğrusu, SELECT operatorunun imkanlarını praktiki olaraq kopyalayır, lakin bütün sorğu rus dilində yazılmışdır. Buna görə də, əgər SQL ilə heç olmasa qeyri-müəyyən tanışsınızsa, o zaman 1C 8 sorğu dilini asanlıqla başa düşəcəksiniz.

Bu çap şəklində sorğu olduqca sadə olacaq və çoxları deyəcək ki, onsuz da bunu etmək mümkün olacaq, lakin sorğu dilini bilmək və ondan bacarıqla istifadə etmək bacarığı 1C proqramçısının əsas bacarıqlarından biridir. Sorğular daha az resursdan istifadə etməklə mürəkkəb verilənlər nümunələrini əldə etməyə imkan verir və sorğu mətni sorğudan istifadə etmədən (və ya ondan minimal istifadə etməklə) yazılmış proqram kodundan daha asan başa düşülür. Bundan əlavə, 1C 8-də lazımi cədvəllərdən sorğunu interaktiv şəkildə yığmağa imkan verən çox yaxşı sorğu dizayneri var.

Sorğunu ehtiva edən dəyişən yaradaq.

Sorğu = Yeni Sorğu;

Sorğu konstruktorundan istifadə edərək sorğu mətnini tərtib edəcəyik. Başlamaq üçün yazaq:

Request.Text = "";

Siçan kursorunu dırnaqların arasına qoyun və sağ siçan düyməsini basın. Açılan kontekst menyusunda elementi seçin Sorğu konstruktoru, 1C çap formasını yaratmaqda bizə çox kömək edəcək. Bundan sonra sorğu tərtibatçısı pəncərəsi açılacaq, onda çoxlu nişanlar var, lakin sorğumuz üçün bizə yalnız dörd lazımdır: "Cədvəllər və sahələr", "Əlaqələr", "Şərtlər", "Qoşulmalar / ləqəblər".

Sorğumuz üçün bizə iki cədvəl lazımdır: cədvəl hissəsi Mallar sənəd Malların və xidmətlərin qəbulu və reyestrin cari tarixinə dair ən son məlumatın şəkli Əşya qiymətləri.

Dizayner pəncərəsinin sol tərəfində sütunu tapırıq Verilənlər bazası. O, bütün metadata obyektlərinin ağacını ehtiva edir, bizə lazım olanları tapaq. Bunun üçün mövzunu açaq Sənədlər və sənədi tapın Malların və xidmətlərin qəbulu, gəlin onu açaq və cədvəl hissəsini tapaq Mallar, onu sorğu dizaynerinin sütununa sürükləyin Cədvəllər. Siz üç yolla sürükləyə bilərsiniz: sürükləməklə, masaya iki dəfə klikləməklə və ya onu seçib “>” düyməsini sıxmaqla. Mövzunu açaq Məlumat registrləri və orada masa tapın QiymətlərNomenklaturası.QısayolSonuncu, onu da sütuna dartın Cədvəllər. Bu iki cədvəl sorğumuz üçün kifayətdir.

Yaranan cədvəllərdən bizə lazım olan sahələri seçək. Bunu etmək üçün sütunda Cədvəllər masanı açaq və sahələri tapın: Nomenklatura, Məbləğ, Qiymət, Kəmiyyət və onları konstruktorun üçüncü sütununa sürükləyin - Sahələr. Gəlin cədvəli genişləndirək , sahəni tapaq Qiymət və həmçinin onu dartın Sahələr.

Sorğumuzun cədvəllərinin və sahələrinin strukturu hazırdır, indi şərtlərə keçək. Bizə cədvəl məlumatları lazımdır Mallar bütün qəbzlərdən deyil, yalnız çap etdiyimizdən alındı. Bunun üçün masaya şərt qoyacağıq Malların qəbuluXidmətlərMallar. Sorğu tərtibatçısının "Şərtlər" sekmesine keçək. Bir sütunda Sahələr daha əvvəl seçdiyimiz cədvəllər yerləşir, şərt üçün sahəyə ehtiyacımız olacaq Link masadan Malların və xidmətlərin qəbulu, Gəlin onu Şərtlər pəncərəsinə sürükləyək.

1C sorğularında məlumatları sorğuya ötürmək üçün lazım olan parametrlərdən istifadə edə bilərsiniz; Məsələn, sənədlərin seçimini müəyyən bir sənədlə məhdudlaşdırmaq istəyiriksə, o zaman bu sənədə keçidi sorğuya ötürmək üçün parametrdən istifadə edə bilərik və bu parametrdən vəziyyətdə istifadə edə bilərik. Sorğumuzda məhz bunu edəcəyik.

Pəncərədən sonra Şərtlər sahə əlavə etdik Link, sorğu dizayneri özü eyni adlı parametr yaradacaq və onu “=” işarəsindən sonra yerləşdirəcək. İstənilən halda bu parametrin adı dəyişdirilə bilər. Sorğu mətnində parametrlər "&" işarəsi ilə qeyd olunur, lakin bu halda bu lazım deyil, çünki şərtin ikinci hissəsində parametrin olduğu güman edilir, sadəcə bunu yadda saxlamaq lazımdır. 1C sorğu parametrinə dəyərin necə ötürülməsi aşağıda müzakirə olunacaq.

Sorğuda məhsul qiymətlərinin tam cədvəlindən deyil, virtualdan (bu halda sonuncunun bir dilimi) istifadə etdiyimiz üçün bu virtual cədvəlin formalaşması üçün şərtləri təyin etməliyik, bizim vəziyyətimizdə bu kəsilmə tarixi və qiymətlərin növünün şərti (ciddi müəyyən edilmiş qiymət növü olan qiymətlər bizim çap etdiyimiz qəbz sənədində göstərilən qiymətdir).

Virtual cədvəlin parametrlərini doldurmaq üçün nişana keçin Cədvəllər və sahələr sorğu konstruktoru, sütunda Cədvəllər cədvəli seçin QiymətlərNomenklaturaKəsməSon və düyməni basın Virtual Cədvəl Seçimləri, yuxarıda yerləşir. Açılan pəncərədə, sahədə Dövr qiymət endiriminin ediləcəyi tarixin keçiləcəyi parametri təyin etməlisiniz. Bizim vəziyyətimizdə bu, cari tarix (yəni bu gün) olacaq, ona görə də parametri “&CurrentDate” adlandıracağıq. Şərtlər sahəsinə qiymət növü üçün şərtləri yazacağıq, onu “&TypePrice” adlandıracağımız parametrdə də keçirəcəyik. Nəticədə vəziyyət belə görünəcək (burada Tip Qiymət- ölçmə qeydiyyatı Əşya qiymətləri):

Qiymət Növü = &Qiymət Növü

Virtual masa parametrləri doldurulur, düyməni basın tamam.

İndi seçimi yalnız bizə lazım olan sənədlə məhdudlaşdırdığımız üçün sorğu cədvəlləri arasında əlaqə yaradaq. Bu edilmədikdə, QiymətlərNomenklaturasıSliceSon cədvəlindəki qiymətlər qəbzdəki maddə ilə əlaqələndirilməyəcək. Gəlin nişana keçək Əlaqələr sorğu dizayneri. Sahə boyu əlaqə yaradaq Nomenklatura iki masamızın arasında. Bunu etmək üçün düyməni basın Əlavə et, sahədə Cədvəl 1 masa seçin Malların qəbuluXidmətlərMallar, və sahəsində Cədvəl 2 - PricesNomenclatureSliceLast. Rabitə şəraitində sahələri seçin Nomenklatura hər iki masadan.

Onu da qeyd etmək lazımdır ki, sorğu seçimində tab hissəsindən bütün sətirləri almalıyıq Mallar və qiymətlər yalnız sənəd qiymət növü üçün cari tarixdə mövcud olduqda. Beləliklə, cədvəl məlumatları Mallar məcburidir, lakin qiymət bölgüsü məlumatları mövcud deyil. Buna görə də, bu cədvəllər arasındakı əlaqələrdə LEFT JOIN adlanandan istifadə etmək lazımdır və sol (və ya tələb olunan) cədvəl olacaq. Malların qəbuluXidmətlərMallar, və sağ (və ya isteğe bağlı) PriceNomenclatureSliceLast. Sorğu cədvəllərinin sol birləşməsinin yuxarıda təsvir etdiyim kimi işləməsi üçün qutunu işarələməlisiniz Hamısı sahədən sonra Cədvəl 1.


Tələb demək olar ki, hazırdır, yalnız sahə ləqəbləri üzərində bir az işləmək qalır. Əlfəcinlərə gedək Birliklər/ləqəblər və sahə üçün ləqəb təyin edin QiymətlərNomenklatura Dilim Ən Son.Qiymət. ləqəb olacaq - PriceAsToday, ona görə lazımdır ki, sorğu seçim sahələrinin adları və çap edilmiş forma tərtibatındakı parametrlərin adları uyğun olsun.

Sorğu tərtibatçısındakı iş artıq tamamlandı, OK düyməsini basın. Dizayner pəncərəsi bağlandıqdan sonra sorğu mətni olan sətirin doldurulduğunu və belə göründüyünü görəcəksiniz:

Sorğu.Mətn = "SEÇ | Malların QəbuluXidmətlərMəhsullar.Nomenklatura, | Malların QəbuluXidmətlərMəhsullar.Məbləğ, | Malların QəbuluXidmətlərMəhsullar.Qiymət, |Malların QəbuluXidmətlərMəhsullar.Kəmiyyət, | QiymətlərNomenklaturası.Günlük Qiymətlər of MallarXidmətlər.Məhsullar AS Qəbz MəhsullarXidmətlərMəhsullar |.QeydiyyatMəlumat.QiymətlərNomenklatura.SliceSon (| &CariTarix, QiymətNövü = &QiymətNövü) AS QiymətlərNomenklaturaSliceSon Məsul

Müraciətin icrası

Lazım olan parametrləri sorğuya verək bunun üçün sorğu metodundan istifadə edəcəyik; SetParameter(<ИмяПараметра>,<Значение>). Cari tarixi əldə etmək üçün daxili funksiyadan istifadə edin Cari tarix(), kompüterin tarixi və vaxtını qaytarır.

Bizə lazım olan məlumatlarla nümunə əldə etmək üçün sorğu keçirək. Bunu etmək üçün əvvəlcə sorğu metodundan istifadə edin Çalışın(), sonra isə üsul seçin().

Select = Query.Run().Select();

Çap edilmiş forma cədvəlinin doldurulması

Nəticədə, dəyişəndə Nümunə sorğu nəticələrinin seçimini ehtiva edəcək, siz metoddan istifadə edərək onun arasında gedə bilərsiniz Sonrakı(), və hər şeyi keçmək üçün bir döngə lazımdır sağol. Dizayn aşağıdakı kimi olacaq:

While Select.Next() Loop EndLoop;

Məhz bu döngədə layout sahəsini doldurub göstərəcəyik Data. Ancaq əvvəlcə ədədi tipli iki dəyişəni işə salaq. Onlarda biz ərazidə göstərməli olduğumuz miqdar və məbləğə görə ümumiləri toplayacağıq Zirzəmi.

Ümumi Cəm = 0; Ümumi Kəmiyyət = 0;

Döngənin içərisində sahəni dolduracağıq Data cari seçim elementindən məlumatları dəyişənlərə Ümumi miqdarÜmumi Kəmiyyət cəmi və kəmiyyət dəyərləri əlavə edin və nəhayət, bizə artıq tanış olan metoddan istifadə edərək sahəni cədvəl sənədində göstərin Çıxış(). Sorğumuzun sahələrinin adları sahə parametrlərinin adları ilə tamamilə üst-üstə düşdüyündən Data, sonra doldurmaq üçün daxili FillPropertyValues ​​prosedurundan istifadə edəcəyik (<Приемник>, <Источник>), mülkiyyət dəyərlərini kopyalayan<Источника>xassələrə<Приемника>.

While Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); Total Sum = Total Sum + Nümunə.Cəm; Total Quantity = Total Quantity + Sample.Quantity; TabDoc.Output(AreaData); EndCycle;

Çap edilmiş formanın altbilgisinin elektron cədvəl sənədinə çıxarılması

Planın son sahəsini doldurmaq və göstərmək qalır - Zirzəmi. Doldurma üçün məlumatları artıq hazırlamışıq, doldurma və geri götürmə eyni sxemə uyğun olaraq həyata keçirilir.

AreaFooter.Parameters.TotalQuantity = Total Quantity; AreaFooter.Parameters.TotalSum = Total Sum; TabDoc.Output(AreaFooter);

Cədvəl sənədi tamamilə doldurulur, istifadəçinin çap edilmiş formaya baxması və lazım olduqda onu çap edə bilməsi üçün onu ekranda göstərmək qalır; Ancaq tipik 1C 8 konfiqurasiyalarında, xarici çap formalarının çıxarılması üçün xüsusi modulların prosedurları cavabdehdir. Ona görə də funksiyadan qayıtmaq kifayətdir Möhür() tamamlanmış elektron cədvəl sənədi.

TabDoc-u qaytarın;

Bu nöqtədə proqramlaşdırma mərhələsi tamamlanır və 1c çap formasının yaradılması demək olar ki, tamamlanır. Funksiyanın tam mətni Möhür() Mən burada verməyəcəyəm, məqalənin altındakı yükləyə biləcəyiniz çap forması faylına baxa bilərsiniz.

1C çap formasının yaradılması. Avtomatik qeydiyyat seçimləri

Xarici çap formasını verilənlər bazasına qoşarkən, sistem çap formasının hansı sənəd və ya arayış üçün nəzərdə tutulduğunu avtomatik olaraq müəyyənləşdirmir; Çap formasını başqa bir şəxs yazıbsa və yalnız onu birləşdirmək tapşırılıbsa, seçim birmənalı ola bilər. Belə problemlərin qarşısını almaq üçün bütün xarici çap formalarında avtomatik qeydiyyat parametrləri ilə tərtibat yaratmaq lazımdır. Yaradılıbsa və düzgün formatlaşdırılıbsa, sistem avtomatik olaraq çap formasının hansı sənəd və ya istinad kitabı üçün nəzərdə tutulduğunu müəyyənləşdirir.

Bu aşağıdakı kimi edilir:

  • Xarici emalda biz yeni layout yaradırıq. Biz bunu “Ayarlar_Avto-Qeydiyyat” adlandırırıq (səhv etməmək vacibdir!).
  • Planın ilk xanasına yazırıq Sənədlər.(və ya Kataloqlar.) və çap formasını qoşmaq lazım olan sənədin adı.

Xarici çap formasının bazaya qoşulması

  • 1C 8 rejimində işə salın Şirkət;
  • Menyuya keçin Xidmət -> Əlavə hesabatlar və emal -> Əlavə xarici çap formaları;
  • düyməni basın Əlavə et;
  • Açılan pəncərədə işarəni vurun Xarici emal faylını dəyişdirin;
  • Avtomatik qeydiyyat parametrləri yaratmısınızsa, biz onlardan istifadə etməyə razıyıq;
  • Avtomatik qeydiyyat parametrlərini yaratmamısınızsa, cədvəl hissəsində Çap lövhəsi aksesuarı tələb olunan sənədi və ya arayışı əlavə edin;
  • Düyməyə bas TAMAM.

Bundan sonra menyuda xarici çap forması mövcud olacaq Möhür sənəd Malların və xidmətlərin qəbulu. 1C çap formasının yaradılması artıq tamamlanmış hesab edilə bilər.

Həyat davam edir, qanunvericilik dəyişir, tərtibatçı konfiqurasiya yeniləmələrini buraxır və bizim yenə seçimimiz var: yeniləməni özümüz quraşdırın və ya yenidən proqramçıya zəng edərək “yeni buraxılışı quraşdırın”...

Konfiqurasiyanı dəyişdirmədən çap formalarının dəyişdirilməsi mexanizmi ilə tanış olaq.


1C-dən istifadə edən hər bir mühasibin praktikasında konfiqurasiyanı özləri üçün dəyişdirmək zərurəti yaranmışdır: bəziləri hesab-fakturada qiymət və ya məbləğin düzgünlüyünü tənzimləmiş, bəziləri loqo daxil etmiş və hesab-fakturanın görünüşünü tənzimləmişdir. Hər şey yaxşı olardı, amma vaxt keçdikcə çoxlu sayda belə dəyişikliklər toplanır və buraxılışı yeniləmək vaxtı gəldikdə, dilemma yaranır: ya edilən bütün dəyişiklikləri itirmək, ya da bütün dəyişiklikləri yeni buraxılışa (azadlığa) köçürmək üçün proqramçı çağırmaq. əlavə ödəniş üçün kurs). Necə olmaq? Konfiqurasiyaların yenilənməsini bir növ sadələşdirmək üçün tərtibatçılar yeni mexanizm yaratdılar: "Xarici emal, çap formaları, cədvəl hissələrinin doldurulması üçün emal." Bu gün biz bu mexanizmin yalnız bir hissəsinə - çap formalarına baxacağıq.


İstənilən mövzu ən yaxşı nümunə ilə öyrənilir. Gəlin özümüzə aşağıdakı vəzifəni qoyaq: konfiqurasiyaya faktura (sənəd) çap etmək imkanı əlavə edin. “Malların və xidmətlərin satışı”) şirkətimizin loqosu ilə. Bundan əlavə, sənədin başlığında yazıların olması lazımdır "provayder""alıcı" qalın hərflərlə vurğulanmış və nəhayət, sənədin aşağı hissəsində daşınmaya icazə verən təhlükəsizlik xidmətinin imzası üçün yer olmalıdır.


İki əlavə şərt təqdim edək:

  • Yeni çap forması köhnə formanı əvəz etməlidir "Faktura"
  • Konfiqurasiya dəyişdirilə bilməz, çünki biz gələcəkdə konfiqurasiyanın avtomatik yenilənməsindən istifadə etmək istəyirik

Yaxşı, vəzifə nədir? Çox mürəkkəb görünür? Yaxşı, nə qədər mürəkkəbdirsə, bir o qədər maraqlıdır və siz onu həll etmək istəyirsiniz. Sonra işə başla.


Biz verilənlər bazamızı Konfiqurator rejimində işə salırıq. Əsas menyuda əmri seçməklə konfiqurasiyanı açın "Konfiqurasiya > Açıq Konfiqurasiya". Biz heç bir halda konfiqurasiyanın özünü dəyişdirməyəcəyik. Biz ondan prototip kimi istifadə edəcəyik. Biz burada əsas işi görəcəyik, lakin xarici emalları redaktə edəcəyik. Əsas menyuda bir komanda ilə xarici emal yaradırıq "Fayl > Yeni". Sənədin növünün seçilməsi "Xarici emal". İlk emal üçün bir ad təyin edək "Brend faktura"


Vacibdir! Emal adında dəyişən adları kimi boşluqlar olmamalıdır.


İndi bir az edək "plagiat". Planı kopyalayaq "Faktura" sənəddən "Malların və xidmətlərin satışı". Bunu etmək üçün onu filialda tapacağıq "Sənədlər" konfiqurasiya ağacı. Simgeyə klikləməklə bu mövzunu genişləndirin «+» və bizə lazım olan düzeni tapın "Faktura"(mövzuda var "Layouts"). Bu obyekti köçürmək üçün ağacda bu layoutu seçmək və əmri yerinə yetirmək lazımdır "Düzenle > Kopyalayın"(eyni hərəkət birləşmə ilə baş verir CTRL+C). İndi yaratdığımız emala keçək, ağacda etiket seçin "Layouts" və əsas menyuda elementi seçin - "Düzəliş et > Yapıştır" (CTRL+V). Nəticə Şəkil 1-ə bənzəməlidir.


İndi planı açmaq üçün iki dəfə klikləyin.

"layout" nədir

Planın məqsədi haqqında bir neçə söz deyək.

Layout- saxlama "tikinti blokları", kərpic kimi, çap forması adlandırmağa adət etdiyimiz cədvəl sənədinin tikildiyi sahələr. Sahələr üfüqi və şaquli hissələrdən və ya onların kəsişmələrindən istifadə etməklə müəyyən edilir. Planımızda yalnız üfüqi hissələr var: “Başlıq”, “Təchizatçı”, “Alıcı”, “Cədvəl başlığı”, “Sıra” (bax. Şəkil 2). Sahə hüceyrələr toplusudur. MS Excel-də olduğu kimi, xanalar birləşdirilə, mətn və fon rəngləri, şriftlər və s. dəyişdirilə bilər. Bütün xana parametrləri hüceyrə xüsusiyyətləri pəncərəsində baxıla və dəyişdirilə bilər. Hüceyrəyə sağ tıklayarak və kontekst menyusunun elementini seçməklə parametrlər pəncərəsinə zəng edə bilərsiniz "Xüsusiyyətlər"(eyni nəticə klaviatura qısayolu ilə əldə edilir Alt+Enter).


Hüceyrə üç növ dəyərdən birini ehtiva edə bilər:

  1. mətn– bu cür qiymət eyni formada çap olunacaq;
  2. parametr– bu tip xana dəyəri çap olunacaq dəyişənin adını ehtiva edir.
  3. nümunə– bu tip xanalar birinci və ikinci variantların birləşməsidir. Hüceyrədə mətn və dəyişənlər ola bilər. Proqramın mətni dəyişəndən fərqləndirə bilməsi üçün dəyişənlər kvadrat mötərizə içərisində olmalıdır: "Bu gün [Tarix]".

Vacibdir! Cədvəl redaktoru ikinci və üçüncü növ xanaların dəyərlərini üçbucaqlı mötərizədə göstərir. Şəkil 2-də mətni olan bir xana var "Alıcı"- mətnə ​​bənzəyir və xananın sağında "Alıcının təqdimatı"- parametr.

Bütün bunları niyə deyirəm? İndi hansı hüceyrələrdə məzmunu asanlıqla dəyişdirə biləcəyinizi və hansında hər hansı bir şeyi dəyişdirməyin arzuolunmaz olduğunu bilirsiniz, çünki çap alqoritmində dəyişiklik etməli olacaqsınız.

İndi vəzifəmizə qayıdaq. Biz emal yaratdıq, tərtibatı kopyaladıq və özümüzə uyğunlaşdırmaq üçün onu dəyişdirməyə hazırıq. Əvvəlcə gəlin buna daha yaxından nəzər salaq.

Çap oluna bilən tərtibata nə daxildir

Bütün sənədlərin tərtibat strukturu çox oxşardır. Bir sənədi diqqətlə araşdırdıqdan sonra digərlərini başa düşə bilərik. Birinci bölmə "Başlıq". Bu bölmə göstərildikdə, növü, tarixi və sənəd nömrəsindən ibarət sənəd başlığı yaradılacaq. Ondan sonra bölmələr gəlir "Təchizatçı" və "Alıcı", bu proqramda müvafiq olaraq təchizatçı və alıcı haqqında məlumat göstərilir. Sonrakı hissə daha maraqlıdır "Əlavə informasiya", tərtibatçıların sənəddəki digər məlumatları, məsələn, nömrəsi və tarixi ilə müqavilə haqqında məlumatları göstərmək üçün istifadə edirlər. Bu bölmənin özəlliyi ondan ibarətdir ki, o, dəfələrlə göstərilə bilər və hər dəfə müxtəlif məlumatlar ola bilər. Nəyin çap edilməsi və nə vaxt çap alqoritmində təsvir edilmişdir.

Bu, sənədin başlığını tamamlayır. Başlıqdan sonra adətən cədvəl bölməsi gəlir. Maraqlıdır ki, tərtibat cədvəl hissəsini göstərmək üçün iki variantı təsvir edir: "Cədvəl başlığı", "String" və "Başlıq CədvəliPlaces""StringPlace". Sütununuzun dolu olub-olmamasından asılı olaraq "Mest" sənəddə, sənədin cədvəl hissəsini göstərmək üçün birinci və ya ikinci variantdan istifadə olunacaq. Maraqlı oxucu yəqin ki, artıq maraqlanıb: niyə başlıq çıxışı bölməsində "Qiymət""Cəm" dəyişənlər kimi üçbucaqlı mötərizədə yerləşdirilir? Düzdü - bunlar sənəd parametrlərindən asılı olaraq yazının göstəriləcəyi dəyişənlərdir "Qiymət", "ƏDV ilə qiymət" və ya "ƏDV-siz qiymət" və eyni şəkildə məbləğ üçün.

Yaxşı, aşağıda tərtibatda sənədin və imzanın nəticələrinin göstərildiyi bölmələr var.

Düzəlişin redaktə edilməsi

Loqotipi təchizatçı və alıcı haqqında məlumatın üstündə yerləşdirmək yaxşı olardı. Mən layout sahəsini redaktə etməyi təklif edirəm "Başlıq". Məzmunu olan hüceyrənin ölçüsünü azaltmaq lazımdır "Başlıq mətni". Bu hüceyrə birləşmiş bir neçə hüceyrədən ibarətdir. Ölçüsü aşağıdakı kimi dəyişirik:

  1. Birləşdirilmiş xananın məzmununu diqqətlə kopyalayaq "Başlıq mətni"(bunun üçün xananı seçmək və əmrdən istifadə etmək lazımdır “Redaktə et > Kopyalayın” və ya CTRL+C klaviatura qısa yolu)
  2. Bu xananı seçdikdən sonra əsas menyuda elementi seçin "Cədvəl - birləşdirin", əks effektə gətirib çıxaracaq - birləşdirilmiş hüceyrə bir çox orijinal hüceyrələrə bölünəcəkdir
  3. İndi daha az sayda xana seçək - sütunun 2-ci xanası əvəzinə 6-cı sütundan birləşdirməyə başlayacağıq, onu 32-ci sütunda bitirəcəyik - və yenidən düyməni sıxırıq. "Birləş"
  4. Komanda "Düzəliş et > Yapıştır" (CTRL+V)əvvəlki birləşdirilmiş xananın məzmununu yeni birləşdirilmiş xanaya daxil edin
  5. Biz sadəcə olaraq 2-5-ci sütunlardakı boş xanaları təmizləyirik (onları seçin və Sil düyməsini basın)

İndi boş yerə loqosu olan bir şəkil əlavə edə bilərsiniz. Bunu etmək üçün menyudan elementi seçin “Cədvəl > Şəkillər > Şəkil...”. Diskdə loqotipimiz olan faylı tapın və " düyməsini basın. tamam" İndi şəkli boş yerə köçürək. Nəticə Şəkil 3-dəki kimi görünməlidir.


İndi gəlin xanalardakı dəyərləri qalın hərflərlə vurğulayaq "Provayder""Alıcı"(şək. 4). Bunu etmək üçün hüceyrə xüsusiyyətlərində parametri tapın "Şrift" və üslubu qalın seçin.



Və nəhayət, təhlükəsizlik xidmətinin imzasını əlavə etmək qalır. Bu məlumatı bölmədə yerləşdirəcəyik "İmzalar". İmzalar üçün yer əldə etmək üçün bölməni genişləndirməlisiniz. 37-ci sətri seçin, üzərinə sağ klikləyin və seçin "Genişləndirmək", və s. iki dəfə. Əlavə edilmiş sətirlərdən birində təhlükəsizlik xidmətinin imzası üçün yer qoyacağıq. Nəticədə hər şey Şəkil 5-dəki kimi görünməlidir.



Vacibdir! Tipik bir konfiqurasiyada iki dil istifadə olunur: rus və ukrayna. Dizayn hər iki dildə mətn təsvirini saxlayır (hüceyrə dizaynı ümumidir). Əlavə etdiyimiz yazının Ukrayna versiyasına daxil olmaq üçün xana xüsusiyyətlərinə və sahəyə keçməlisiniz. "Mətn" Düyməyə bas "axtar". Müxtəlif dillərdə mətn təsvirlərini daxil etmək üçün bir pəncərə açılacaq (Şəkil 6).

Çapı necə təmin etmək olar

Beləliklə, layout hazırdır. İndi onu çap etmək üçün alqoritm üzərində işləməyin vaxtıdır.

Bu tərtibatı konfiqurasiyaya ağrısız şəkildə inteqrasiya etməyimiz və ondan istifadə etməyimiz üçün yaratdığımız emal aşağıdakı şərtlərə cavab verməlidir:

  1. Emalda rekvizit yaratmalısınız "Obyekt bağlantısı" növü ilə "AnyLink"
  2. Emal modulunda prosedur yaratmalısınız "Çap () İxrac" parametrlər olmadan və açar sözünü göstərdiyinizə əmin olun " İxrac"

Birinci nöqtə lazımdır ki, çap alqoritmi çap üçün məlumatları haradan əldə edəcəyini bilsin, ikincisi isə çap alqoritminin özüdür. Gəlin bu şərtləri yerinə yetirək.

Pəncərə panelində emalımızı redaktə etmək üçün pəncərəni seçin (Şəkil 7-də). Emalımız üçün obyektlər ağacı ilə bir pəncərə açılacaq. Filialın seçilməsi "Rekvizitlər" və düyməni basın "Əlavə et",. Atribut xüsusiyyətləri pəncərəsi açılacaq. Adını daxil edək - "Obyekt bağlantısı" və növünü göstərin "AnyLink". İndi çap modulunun mətninə keçə bilərik. Biz onu sıfırdan yazmayacağıq, sənəddən kopyalayacağıq; "Malların və xidmətlərin satışı".



Bunu etmək üçün sənədlər arasında konfiqurasiya ağacında tapın "Malların və xidmətlərin satışı", üzərinə sağ klikləyin və seçin "Açıq obyekt modulu"(Şəkil 8-ə baxın).



Bu sənəd modulunu açacaq. Bizə birinci funksiya lazımdır "Çap sənədi". Onun mətni seçilməli və kopyalanmalıdır. Funksiya mətni yıxıldıqda onu vurğulamaq çox rahatdır, lakin siz onun altındakı sətri də vurğulamalısınız, əks halda yalnız başlığı köçürmək riski daşıyırsınız.

Şəkil 9-a baxın, biz başlığı və onun altındakı xətti vurğulamışıq. Bundan sonra onu panoya kopyalayın. Əsas menyu "Düzəliş > Kopyalayın" (və ya CTRL+C).



Mübadilə buferindəki mətni yadda saxladıq, indi yenidən emalımıza keçək "Brend faktura". Düyməni basın "Fəaliyyətlər > Obyekt Modulunu Açın"(şək. 10).



Kopyalanmış mətni yapışdırın: "Düzəliş et > Yapıştır" (və ya CTRL+V).

İndi kopyalanan mətni bir az redaktə etmək lazımdır, çünki sənədin özündən bir sənəd çap etmək üçün yazılmışdır və biz onu xarici emaldan toplayırıq. Bunu etmək üçün sizə lazımdır:

  1. Funksiya adını "Çap" olaraq dəyişdirin
  2. Əvəz edin "Bu Obyekt" haqqında "Obyekt bağlantısı"
  3. Əvəz edin "Bu Obyekt" haqqında "Obyekt bağlantısı"
  4. Əvəz edin "Təşkilat Bank Hesabı" haqqında “Obyekt.Organization Bank Hesabına keçid”
  5. Əvəz edin "Məhsullar. Xülasə" haqqında "LinkToObject.Products.Total"

Bu hərəkətlər üçün əsas menyu elementindən istifadə edə bilərsiniz "Düzəliş et > Əvəz et".

Bundan sonra sintaksisi yoxlamaq lazımdır. Bunun üçün sehrli birləşmə var: CTRL+F7. Nəticədə, aşağıdakı mesaj görünməlidir: "Sintaksis xətası tapılmadı!"

Yaxşı, bununla biz bütün çirkin işləri başa vurduq. İndi işimizin nəticələrini, məsələn, faylda saxlaya bilərik "Brend Invoice.epf". Bunu etmək üçün, bu emal üçün pəncərəni aktiv etmək və proqramın əsas menyusundan istifadə edərək onu saxlamaq lazımdır "Fayl > Fərqli Saxla...". Fayl adı işlənir - "Brend Invoice.epf"(defolt olaraq təklif olunacaq). Siz onu müvəqqəti olaraq masaüstünüzdə saxlaya bilərsiniz ki, daha sonra daha tez tapa biləsiniz.

Vacibdir! Gördüyünüz kimi, konfiqurasiyamızda heç bir dəyişiklik etmədik. Yuxarıda təsvir edilən bütün hərəkətlər üçün onu dəstəkdən çıxarmağa belə ehtiyac yoxdur (yəni dəyişdirmə qabiliyyətini aktivləşdirin).

Xarici emalın konfiqurasiyaya qoşulması

İndi biz emalı fakturamıza qoşa bilərik. Bunu etmək üçün rejimdə işə salın. Menyuya keçin "Xidmət", burada mexanizmlə əlaqəli üç nöqtə var “Xarici emal, çap formaları, cədvəl hissələrinin doldurulması üçün emal”. Bizim vəziyyətimizdə bizə yalnız maddə lazımdır "Xarici çap formaları"(şək. 11-ə baxın).



Bu kataloqu açacaq. "Xarici emal", növə görə seçimlə "çap formaları". O, hansı sənədlər üçün olduğunu və hansı hallarda göstərilməli olduğunu göstərən bütün xarici çap formalarının siyahısını saxlayacaq.



Vacibdir! Emalın özü digər verilənlərlə birlikdə verilənlər bazasında saxlanılacaq, yəni verilənlər bazasında emal saxlandıqdan sonra bizə xarici fayl lazım olmayacaq.

Kataloqda yeni element yaratmalıyıq. klikləyin Daxil et. İndi elementin məzmununa baxaq. Adına bu formanın mahiyyətinin mənalı qısa təsvirini daxil edirik, məsələn, "Şirkət fakturası". Hər hansı digər kataloq kimi onun da kodu var. Gəlin onu standart olaraq buraxaq. Tip atributu defolt olaraq doldurulur və redaktə edilə bilməz - "Çap forması". Və başlığın son elementi şərhdir. Burada, həmişə olduğu kimi, çap formasının məqsədi haqqında daha ətraflı məlumat verilir. Başlığa əlavə olaraq, bu kataloqun elementlərində iki əlfəcin var. İkincisi bu emal üçün giriş hüquqlarını məhdudlaşdırmaq haqqında məlumatı ehtiva edir. Bu mövzu bu məqalənin əhatə dairəsindən kənardadır (gələcək məsələlərdən birində konfiqurasiyaya dəyişiklik etmədən bu və giriş hüquqlarının digər parametrləri haqqında danışacağıq).

Birinci nişanı daha yaxından nəzərdən keçirək.

Nişan dörd sütundan ibarətdir. Obyekt təmsili– çap formamızdan istifadə etmək istədiyimiz sənəd növü,

Seçim– bu çap formasının mövcud olması şərti. Məsələn, fakturanın çap formasını yenidən tərtib etdik və ingilis dilinə tərcümə etdik. Və biz qovluqdan müştərilər üçün istəyirik "Avropa" standart çap forması əvəzinə "Satış fakturası"İngilis dilində yeni forma çap olundu. Bunu etmək üçün sütundan istifadə edə bilərsiniz "Seçim". Belə seçim nümunəsi Şəkil 13-də göstərilmişdir.



Amma bizim vəzifəmizdə heç bir seçimə ehtiyac yoxdur.

Çap edilə bilən forma faylı– tərtibat və çap prosedurunun götürüləcəyi faylı göstərir. Bu xanada iş masasında saxladığımız faylı seçməlisiniz.

Dəyişdirilə bilən çap lövhəsi– yaratdığımız çap formasının bu sənəd üçün standart olanlardan birini əvəz etməsini istəyiriksə, onda hansının dəyişdirilməli olduğunu göstərməliyik. Seçmək üçün heç bir şey yoxdursa, əlavə çap forması görünəcək.

Bizim vəziyyətimizdə buna ehtiyacımız var "Brend faktura" adi faktura əvəzinə çap edilib. Bunu etmək üçün bu sahədə seçin "Satış fakturası".

İndi bu elementi saxlayaq. Və istənilən fakturanı açın.

Şəkil 14-də göstərildiyi kimi görünməlidir.



Bu, məqalənin əvvəlində qarşımıza qoyduğumuz vəzifəni yekunlaşdırır. İnanırıq ki, biz xarici emal mexanizminin istifadəsinin istifadəçi üçün açdığı imkanları göstərə bildik.

Bacarıqlarınızı gücləndirmək üçün müstəqil olaraq konfiqurasiyaya adi fakturanı təkrarlayan, lakin qiymətlər və məbləğlər olmadan "Malların və xidmətlərin qəbulu" sənədi üçün əlavə çap edilmiş "Anbara" formasını əlavə etməyə cəhd edə bilərsiniz. qəbul edilmiş kəmiyyəti daxil etmək üçün sahələri ehtiva edir.

Ən sadə çap formasını yazmağı nəzərdən keçirək 1s 8.1 - 8.2 konfiqurasiya nümunəsindən istifadə etməklə Müəssisə uçotu 2.0. Tutaq ki, sənəd üçün xarici çap forması yazmalısınız: sənədin əsas məlumatlarını, həmçinin cədvəl hissəsindən göstərin Mallar: nomenklatura, qiymət, miqdar və məbləğ.

Nəticə nümunəsini buradan yükləyə bilərsiniz.

Konfiquratorda 1C Müəssisələr 8 xarici emal yaratmaq ( Fayl->Yeni->Xarici emal), adı təyin edin, xarici çap forması üçün tələb olunan detalları yaradın Obyekt Referansı növü ilə DocumentLink malların və xidmətlərin satışı.

Çap formasının tərtibatının yaradılması

Yenisini əlavə edin layout, düzən növünü tərk edin elektron cədvəl sənədi. Dizaynda üç sahə yaradırıq: Başlıq, MəlumatZirzəmi. Bu, lazımi sayda sətirləri seçmək və menyuya klikləməklə edilə bilər Cədvəl->Adlar->Ad təyin edin (Ctrl+Shift+N).

Bundan sonra sahələrə mətn və parametrlər yerləşdirməyə başlayırıq. Başlığa qoyacağıq çap formasının adı, sənəd nömrəsitəşkilat, həmçinin cədvəl başlığının sərhədlərini çəkin və sütunların adlarını yazın. Hüceyrə xassələrində parametr yaratarkən Layout tabında xassəni təyin etməlisiniz Doldurma mənada Parametr.

Ərazidə Data cədvəl bölməsində sətirləri göstərmək üçün parametrlər yaradaq( Nomenklatura, qiymət və s.) və ərazidə Zirzəmi kəmiyyət və məbləğ üzrə ümumilər üçün.

Proqramlaşdırma

Çap formasının obyekt moduluna keçək Actions->Obyekt modulunu açın.

Orada çap formaları üçün məcburi olan ixrac funksiyasını yaradaq. Möhür().

Çap funksiyası () İxrac EndFunction

Funksiyada biz üçün dəyişən yaradacağıq elektron cədvəl sənədi, çap formasının çıxacağı, biz alırıq layoutlayout sahələri.

TabDoc = yeni Cədvəl Sənədi; Layout = GetLayout("Layout"); HeaderArea = Layout.GetArea("Başlıq" ); AreaData = Layout.GetArea("Data" ); AreaFooter = Layout.GetArea("Altbilgi");

Parametrləri dolduraq papaqlar və onu gətirin elektron cədvəl sənədi.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

Cədvəl sıralarını əldə etmək üçün Mallar sorğudan istifadə edirik.

Sorğu = yeni sorğu; Request.SetParameter("Link", ObjectLink); Query.Text = "SEÇ | Malların və xidmətlərin satışı, malların nomenklaturası. | Malların və xidmətlərin satışının məbləği, | Malların və xidmətlərin satış qiyməti, | Malların və xidmətlərin satışı Malların miqdarı|FROM | Malların və Xidmətlərin Satılması Malların SATIŞI|HARADA | Malların və Xidmətlərin Satışı Link = &Link".;

Təfərrüatları sorğu parametrinə ötürürük Obyekt Referansı, vəziyyətdə göstərmək HARADA, bizə yalnız çap formasını əldə etdiyimiz sənəddən məlumat lazımdır. Nümunə sorğu əldə etmək üçün əvvəlcə onu icra edirik və sonra sıraları seçirik.

Select = Query.Run().Select();

Sonrakı döngədə sahə parametrlərini doldururuq Data sənəd seçiminin hər sətri üçün onları göstərin elektron cədvəl sənədi. Döngədəki ümumi dəyərləri də hesablayırıq miqdarlarməbləğlər. Hər bir parametri ayrıca doldurmayacağıq, lakin prosedurdan istifadə edirik PropertyValues ​​doldurun((<Приемник>, <Источник>) -dan qlobal kontekst, mülkiyyət dəyərlərini kopyalayır <Источника> xassələrə <Приемника> . Uyğunlaşma əmlak adları ilə həyata keçirilir. Bu barədə ətraflı oxuya bilərsiniz sintaksis köməkçisi 1C Enterprise 8.

Ümumi Cəm = 0; Ümumi Kəmiyyət = 0 ; While Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); Total Sum = Total Sum + Nümunə.Cəm; Total Quantity = Total Quantity + Sample.Quantity; TabDoc.Output(AreaData); EndCycle;

Sahəni doldurun və göstərin Zirzəmi.

AreaFooter.Parameters.TotalQuantity = Total Quantity; AreaFooter.Parameters.TotalSum = Total Sum; TabDoc.Output(AreaFooter);

Tamamlanmış elektron cədvəl sənədinin funksiyadan qaytarılması Möhür().

TabDoc-u qaytarmaq;

Standart konfiqurasiyalardan birini istifadə edirsinizsə, elektron cədvəl sənədini qaytardıqdan sonra 1Cçap edilmiş formanı ekranda göstərəcək. Çıxış üçün elektron cədvəl metodundan da istifadə edə bilərsiniz. Göstər().

5. Çap edilmiş formanın sənədə qoşulması

IN standart konfiqurasiyalar 1C 8 Xarici çap formalarının qeydiyyatı üçün kataloq mövcuddur Xarici emal. Qoşulmaq üçün müəssisə rejimində menyuya keçin Xidmət->Əlavə hesabatlar və emal->Əlavə xarici çap formaları.

Yeni kataloq elementi əlavə edin, çap edilmiş formanı diskdən yükləyin və sənəd növünü seçin.

İndi sənəddə Malların və xidmətlərin satışı Yeni çap edilə bilən görünəcək.

Çap formasının avtomatik qeydiyyatı

Çap formasını birləşdirərkən sənəd növünü əl ilə seçməyinizə əmin olmaq üçün konfiqurasiya edə bilərsiniz avtomatik qeydiyyat. Bunu etmək üçün yeni layout əlavə edin və ona zəng edin Parametrlər_Avtomatik qeydiyyat(bu yeganə yoldur) və onun ilk xanasına yazırıq Sənədlər.<Наименование документа> (və ya Kataloqlar.<Наименование справочника> ).

İndi çap formasını birləşdirərkən bizdən istifadə etməyimiz xahiş olunacaq avtomatik qeydiyyat parametrləri.

Məlum olduğu kimi - bir kağız parçası olmadan... heç bir ciddi iş onsuz edə bilməz. 1C-də bir növ elektron sənədlərin olduğunu söylədikdə dərhal onları kağız şəklində necə çap etmək barədə sual yaranır.

1C elektron sənədinin çapı prosesinə çap forması 1C deyilir.

Hər bir sənədin bir neçə 1C çap forması ola bilər. Məsələn, malların və xidmətlərin satışı (yəni satış) sənədi 1C çap formalarında çap olunur: TORG-12, Faktura, Göndərmə qaiməsi, Göstərilən xidmətlərin sertifikatı və s.

1C çap formasının mahiyyəti dəyişənlərin göstərildiyi bir şablondur (məsələn, Excel sənədi). Çap prosesi zamanı elektron sənəddəki mətn dəyişənlərlə əvəz olunur. Şablon adətən konfiqurasiyada saxlanılır.

Standart 1C çap formasının dəyişdirilməsi ilə bağlı problem odur ki, adətən standart konfiqurasiyanı dəyişdirmək məsləhət görülmür, əks halda yeniləmək daha çətin olacaq. Buna görə də, xarici 1C çap formalarından istifadə üçün müxtəlif üsullar yenidən kəşf olunmağa başladı.

Xarici 1C çap forması konfiqurasiyanın özündən ayrı bir şəkildə saxlanılan çap şablonudur.

Halbuki bütün bunlar nəzəriyyədir. Öz çap formanızı necə yaratmaq olar? Və ya daha yaxşısı, mövcud birinə necə dəyişiklik etmək olar?

1C sənədi necə çap olunur

İstənilən 1C sənədini (çap oluna bilər) çap etmək üçün sənəddəki Çap düyməsini sıxmaq lazımdır. 1C siyahıdan bu sənəd üçün 1C çap formasını seçməyi təklif edəcək.

Çap düyməsinin solunda adətən sonuncu seçilmiş 1C çap formasına sürətli giriş düyməsi var.

Çap nəticəsi belə görünür. Onu printerdə çap etmək üçün kursoru 1C çap formasına yerləşdirmək, Ctrl+P və ya düymə panelində və ya Fayl/Çap menyusunda printer düyməsini sıxmaq lazımdır.

Çap parametrləri (kenar boşluqları, vərəq oriyentasiyası və s.) Fayl/Səhifə Quraşdırma menyusunda yerləşir. Siz həmçinin istifadəçi parametrlərini birbaşa printerdə çap etmək üçün konfiqurasiya edə bilərsiniz.

Bu çap materialı haradan gəlir?

1C çap forması haradadır?

Gəlin konfiquratora keçək. Konfiqurasiya pəncərəsində tələb olunan sənədi tapın. Onun Layouts filialını genişləndirək. Məhz onlar çap edildikdə 1C çap formasına çevrilirlər.

Bununla belə, bu kifayət etməyəcək - çap edərkən bizə daha çox variant seçmək təklif edildi. Fakt budur ki, bir çox 1C çap forması tərtibatı başqa yerdə gizlənir.

1C konfiqurasiya pəncərəsinin yuxarı hissəsinə qayıdaq. General filialını, sonra General Layouts filialını açaq. Planların əksəriyyətinin yerləşdiyi yer budur. Bu, xüsusilə dövlət tərəfindən tənzimlənən çap formaları üçün doğrudur 1C - TORG 12, Faktura və s.

Yeri gəlmişkən, TORG12 və ya Fakturanın bir neçə tərtibatını görəcəyinizi qeyd etmək çətin deyil. Niyə? Bunu izah etmək asandır. Qanunlar və tələblər vaxtaşırı dəyişir. Lakin biz eyni tərtibatı dəyişdirə bilmərik - və əgər sənədi dəyişiklik tarixindən əvvəl olan bir tarixdən çap etməli olsaq. Buna görə də, bir neçə layout hazırlanır və sənədin tarixindən asılı olaraq düzgün olanı istifadə olunur.

Ancaq bu hamısı deyil! Xarici planlar da var. Onlar harada saxlanılır?

1C Enterprise rejiminə qayıdaq. İnzibati hüquqlara malik istifadəçi menyusu vasitəsilə Əməliyyatlar/Kataloqlar, Xarici emal kataloqunu seçin.

Çap forması formasına malik olan bu kataloqun sətirləri çap formasının mülkiyyəti cədvəlində göstərilən sənəd üçün çap variantlarını əlavə edir (şəkildə bu, Malların və xidmətlərin satışıdır).

Bunun işləməsi üçün siz çap prosesini təşkil edən Export etiketli obyekt modulunda Print() proseduru olan xarici emal etməlisiniz.
Amma biz özümüzdən irəli gedirik. Əvvəlcə 1C çap formasının tərtibatının necə təşkil olunduğuna baxaq.

Çap formasının tərtibatı 1C

1C çap formasının tərtibatı belə görünür.

Gördüyünüz kimi, bloklara bölünür. Bloklar üfüqi (solda ad) və ya şaquli (yuxarıda ad) ola bilər.

Dizaynın özü, olduğu kimi, çap olunmur. Fərdi bloklar çap olunur. Çap emalı prosedurunda proqramçı blokların sırasını və hər blokun təkrarlarının sayını təyin edir. Nəticə çap olunmuş formadır.

Ərazi təyin etmək üçün bir neçə sətir (və ya bir neçə sütun) seçin və menyudan Cədvəl/Adlar/Ad təyin et seçin. Silmək üçün adı sil əmri də var.

Adı proqram kodundan əraziyə daxil olmaq üçün lazımdır. Ad yalnız sətirlərə və ya sütunlara deyil, həm də sadəcə bir neçə xanaya təyin edilə bilər. Bunu etmək üçün hüceyrələri seçin və eyni menyunu seçin.

Lakin, standart olaraq, xüsusi hüceyrə adları göstərilmir. Onları görmək üçün menyu elementini seçin Cədvəl/Adlar/Adlı hüceyrələri göstərin.

Beləliklə, bu gün öyrəndik ki, 1C çap forması tərtibatdan istifadə edərək formalaşır. Plan bloklardan ibarətdir - ağıllı şəkildə adlandırılan ərazilər.

Plitələrin çapı üçün tipik (ümumiyyətlə istifadə olunan) bloklar:

  • Başlıq – sənədin başlığı göstərilir
  • Sıra – cədvəlin bir sırası göstərilir, bu blok sətirlərin çap edilməsi lazım olan qədər təkrarlanır.
  • Altbilgi – sənədin sonu göstərilir.

İndi bununla məşğul olmalıyıq