Տպագիր ձևի ստեղծում 1s 8.3 scratch: Արտաքին տպագրական ձևի ավելացում տվյալների բազայում: Տպագիր հաշմանդամության խնդրանք գրելը

Եկեք քննարկենք ամենապարզ տպագիր ձևը գրելը 1s 8.1 - 8.2օգտագործելով կազմաձևման օրինակ Ձեռնարկությունների հաշվառում 2.0. Ենթադրենք, փաստաթղթի համար պետք է գրել արտաքին տպագիր ձև՝ ցուցադրել փաստաթղթի հիմնական տվյալները, ինչպես նաև աղյուսակային մասից։ Ապրանքնոմենկլատուրա, գին, քանակ և գումար:

Ստացված օրինակը կարող եք ներբեռնել այստեղից:

Կոնֆիգուրատորում 1C ձեռնարկություններ 8ստեղծել արտաքին մշակում ( Ֆայլ->Նոր->Արտաքին մշակում), սահմանեք անունը, ստեղծեք անհրաժեշտ մանրամասները արտաքին տպագիր ձևի համար Օբյեկտի հղումտեսակի հետ DocumentLink Ապրանքների և ծառայությունների վաճառք.

Տպագիր ձևի դասավորության ստեղծում

Ավելացնել նորը դասավորությունը, թողեք դասավորության տեսակը աղյուսակային փաստաթուղթ. Դասավորության վրա մենք ստեղծում ենք երեք տարածք. Վերնագիր, ՏվյալներԵվ Նկուղ. Դա կարելի է անել՝ ընտրելով անհրաժեշտ թվով տողեր և սեղմելով մենյու Աղյուսակ->Անուններ->Նշանակել անուն (Ctrl+Shift+N).

Դրանից հետո մենք սկսում ենք տեքստ և պարամետրեր տեղադրել տարածքներում: Մենք այն կդնենք վերնագրի մեջ տպագիր ձևի անվանումը, փաստաթղթի համարըԵվ կազմակերպություն, ինչպես նաև գծեք աղյուսակի վերնագրի սահմանները և գրեք սյունակների անվանումները։ Բջջի հատկություններում պարամետր ստեղծելիս Layout ներդիրում դուք պետք է սահմանեք հատկությունը Լցնումիմաստով Պարամետր.

Տարածքում Տվյալներեկեք ստեղծենք պարամետրեր աղյուսակային բաժնում տողեր ցուցադրելու համար ( Անվանակարգ, գինև այլն), և տարածքում Նկուղընդհանուրների համար ըստ քանակի և քանակի:

Ծրագրավորում

Եկեք գնանք տպագրական ձևի օբյեկտի մոդուլին Գործողություններ->Բացել օբյեկտի մոդուլը.

Եկեք այնտեղ ստեղծենք արտահանման ֆունկցիա, որը պարտադիր է տպագիր ձևաթղթերի համար։ Կնիք ().

Տպել ֆունկցիան () Արտահանում EndFunction

Ֆունկցիայում մենք կստեղծենք փոփոխական աղյուսակային փաստաթուղթ, որի մեջ կարտադրվի տպագիր ձևը, մենք ստանում ենք դասավորությունըԵվ դասավորության տարածքներ.

TabDoc = նոր TabularDocument; Layout = GetLayout ("Layout" ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea ("Տվյալներ" ); AreaFooter = Layout.GetArea ("Footer" );

Եկեք լրացնենք պարամետրերը գլխարկներև բերեք այն աղյուսակային փաստաթուղթ .

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

Սեղանի տողեր ստանալու համար Ապրանքմենք օգտագործում ենք հարցումը.

Request = նոր հարցում; Request.SetParameter ("Link", ObjectLink); Query.Text = «Ընտրել | Ապրանքների և ծառայությունների վաճառք, ապրանքների անվանակարգ, | Ապրանքների և ծառայությունների ապրանքների վաճառք Գումարը, | Ապրանքների և ծառայությունների ապրանքների վաճառք Գին, | Ապրանքների և Ծառայությունների Ապրանքների Վաճառք Քանակ|ԻՑ | Փաստաթուղթ Ապրանքների և ծառայությունների վաճառք Ապրանքներ ԻՆՉՊԵՍ ապրանքների և ծառայությունների ապրանքների վաճառք|ՈՐՏԵՂ | Ապրանքների և ծառայությունների ապրանքների վաճառք: Հղում = &Հղում";

Մենք մանրամասները փոխանցում ենք հարցման պարամետրին Օբյեկտի հղում, վիճակում նշելու համար ՈՐՏԵՂ, որ մեզ անհրաժեշտ են տվյալներ միայն այն փաստաթղթից, որից մենք բխում ենք տպագիր ձևը։ Հարցման նմուշ ստանալու համար նախ կատարում ենք այն, այնուհետև ընտրում ենք տողերը։

Ընտրել = Query.Run().Select();

Հաջորդ օղակում մենք լրացնում ենք տարածքի պարամետրերը Տվյալներփաստաթղթի նմուշի յուրաքանչյուր տողի համար և ցուցադրել դրանք աղյուսակային փաստաթուղթ. Մենք նաև հաշվարկում ենք ընդհանուր արժեքները հանգույցում քանակներըԵվ գումարներ. Մենք չենք լրացնի յուրաքանչյուր պարամետր առանձին, այլ օգտագործենք ընթացակարգը Լրացրեք PropertyValues ​​((<Приемник>, <Источник>) -ից գլոբալ համատեքստ, այն պատճենում է գույքի արժեքները <Источника> հատկությունների նկատմամբ <Приемника> . Համապատասխանեցումը կատարվում է սեփականության անվանումներով: Այս մասին ավելին կարող եք կարդալ այստեղ շարահյուսական օգնական 1C Enterprise 8.

Ընդհանուր գումար = 0 ; ԸնդհանուրՔանակ = 0 ; Մինչ Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output (Տվյալների տարածք); Վերջնական ցիկլ;

Լրացրեք և ցուցադրեք տարածքը Նկուղ.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output (AreaFooter);

Ավարտված աղյուսակի փաստաթուղթը ֆունկցիայից վերադարձվում է Կնիք ().

վերադարձ TabDoc;

Եթե ​​դուք օգտագործում եք ստանդարտ կոնֆիգուրացիաներից մեկը, ապա աղյուսակի փաստաթուղթը վերադարձնելուց հետո 1Cէկրանին կցուցադրի տպագիր ձևը: Արդյունքների համար կարող եք նաև օգտագործել աղյուսակի փաստաթղթի մեթոդը: Ցուցադրում().

5. Տպագիր ձևի միացում փաստաթղթին

IN ստանդարտ կոնֆիգուրացիաներ 1C 8Արտաքին տպագիր ձևաթղթերի գրանցման գրացուցակ կա Արտաքին մշակում. Միանալու համար անցեք մենյու ձեռնարկության ռեժիմում Ծառայություն->Լրացուցիչ հաշվետվություններ և մշակում->Լրացուցիչ արտաքին տպագիր ձևեր.

Ավելացնել նոր տարրգրացուցակում, բեռնեք տպագիր ձևը սկավառակից և ընտրեք փաստաթղթի տեսակը:

Այժմ փաստաթղթում Ապրանքների և ծառայությունների վաճառքՆոր տպագիր կհայտնվի:

Տպագիր ձևի ավտոմատ գրանցում

Ապահովելու համար, որ տպագրական ձևը միացնելիս պետք չէ ձեռքով ընտրել փաստաթղթի տեսակը, կարող եք կարգավորել ավտոմատ գրանցում. Դա անելու համար ավելացրեք նոր դասավորություն և զանգահարեք այն Settings_Auto-registration(սա միակ ճանապարհն է) և նրա առաջին վանդակում գրում ենք Փաստաթղթեր.<Наименование документа> (կամ տեղեկատուներ.<Наименование справочника> ).

Այժմ, տպագրական ձևը միացնելիս, մեզ կառաջարկվի օգտագործել ավտոմատ գրանցման պարամետրեր.

Այսպիսով! Կա կոնֆիգուրացիա (օրինակ, «Առևտրի կառավարում», հրատարակություն 10.3), և դրա համար անհրաժեշտ է մշակել արտաքին տպագիր ձև: Օրինակ, վերցնենք «Գնորդին վճարման հաշիվ ապրանքագիր» ստանդարտ փաստաթուղթը (չնայած արտաքին տպագիր ձևաթղթերը կարող են ստեղծվել ոչ միայն փաստաթղթերի, այլ նաև տեղեկատուների համար):

Օրինակ 1C 8.3-ի համար (Կառավարվող ձևեր)

Կարելի է դիտել կառավարվող հավելվածի արտաքին տպագիր ձևի մշակման օրինակ:

Առաջադրանք

Մշակել արտաքին տպագիր ձև, որը հասանելի կլինի «Գնորդին վճարման հաշիվ» փաստաթղթից և որը կպարունակի կազմակերպության անվանումը, կոնտրագենտը և ապրանքների ցանկը գնով, քանակով և քանակով:

Գնա՛

Առաջին բանը, որ դուք պետք է անեք, արտաքին մշակման ֆայլ ստեղծելն է: Մշակումը պետք է պարունակի երեք հիմնական կետ.
  1. «Օբյեկտի հղում» հատկանիշ՝ «DocumentLink. Գնորդին վճարման հաշիվ ապրանքագիր» տիպով
  2. Դասավորությունը, որը տպագրվելու է
  3. Արտահանել «Print()» ֆունկցիան, որը վերադարձնում է աղյուսակային փաստաթուղթ
Այս գործողությունները տեսանելի են Նկար 1-ում

«Դասավորություն նկարելը»

Մեր դասավորությունը կպարունակի երկու տարածք.
  1. Փաստաթղթի վերնագիրը (վերնագիրը) (այս տարածքում կտեղադրվեն կազմակերպության և կոնտրագենտի անվանումները), և աղյուսակի վերնագիրը (սյունակների անուններով)
  2. Սեղան ապրանքների հետ (սյունակներ՝ անվանումով, քանակով և քանակով)
Նկար 2-ում ներկայացված է արտաքին տպագրական ձևի դասավորությունը: Խնդրում ենք նկատի ունենալ, որ աղյուսակը և վերնագրի բջիջները պարունակում են պարամետրեր, ոչ միայն տեքստ:

«Տպել ()» ֆունկցիան

Ձևը գրեթե պատրաստ է։ Մնում է միայն գրել աղյուսակային փաստաթղթի դաշտերի ծրագրային լրացում։ Այս գործողությունները կատարվում են մշակման օբյեկտի մոդուլում, «Տպել» գործառույթով, որը ՊԵՏՔ է արտահանելի լինի:
Փուլ թիվ 1. Վերնագրի համար տվյալներ ստանալը, վերնագրի պարամետրերը լրացնելը և աղյուսակի փաստաթղթին դուրս բերելը TabularDocument = Նոր TabularDocument; Layout = GetLayout ("OurLayout"); Տվյալների խնդրանք = Նոր հարցում («Ընտրեք | ՆԵՐԿԱՅԱՑՈՒՑՉՈՒԹՅՈՒՆ (Գնորդին վճարման հաշիվ-ապրանքագիր. Կոնտերկողմ) AS Կողմնակից, | ՆԵՐԿԱՅԱՑՈՒՑՉՈՒԹՅՈՒՆ (Գնորդին վճարման հաշիվ-ապրանքագիր. Կազմակերպություն) AS Կազմակերպություն | FROM | Փաստաթուղթ. Գնորդին վճարման հաշիվ AS Invoice Գնորդին վճարելու համար | ՈՐՏԵՂ | Գնորդին վճարման հաշիվ-ապրանքագիր: Հղում = &Հղում»); Data Request.SetParameter("Link", ObjectLink); Վերնագիր = DataRequest.Execute().Select(); Cap.Next(); Տարածք = Layout.GetArea ("Header"); Area.Options.Fill(Header); TabularDocument.Output(Տարածք); Փուլ թիվ 2. Աղյուսակային տվյալների ստացում և ապրանքների տող առ տող ելք
Data Request.Text = "SELECT | _Products.Line Number, | REPRESENTATION(_Products.Nomenclature) AS Nomenclature, | _Products.Quantity, | _Products.Price, | _Products.Amount |FROM | Փաստաթուղթ.Ապրանքների վճարման հաշիվը AS _Products |WHERE | _Products. Link = &Link"; Fetch = DataRequest.Execute().Select(); Տարածք = Layout.GetArea («Տվյալներ»); Մինչ Selection.Next() Loop Area.Parameters.Fill(Selection); TabularDocument.Output(Տարածք); End Cycle; Փուլ թիվ 3. Վերադարձեք աղյուսակի փաստաթուղթը և տպման գործառույթըվերադարձ Աղյուսակ Փաստաթուղթ;

Արտաքին տպագրության ձևը ավելացնելով 1C-ին

Գնացեք «Ծառայություն - Արտաքին տպագրական ձևեր և մշակում - Արտաքին տպագրական ձևեր» ընտրացանկը

Տարրերի ստեղծման պատուհանում, որը բացվում է, կատարեք հետևյալ գործողությունները.

  1. Արտաքին մշակման ֆայլի բեռնում
  2. Մենք նշում ենք, թե որ կազմաձևման փաստաթղթի (կամ գրացուցակի) համար է նախատեսված տպագիր ձևը
  3. Փոփոխությունների ձայնագրում

Եկեք տպենք։

Բացեք «Գնորդին վճարման հաշիվ ապրանքագիր» ցանկացած փաստաթուղթ («Ապրանքներ» աղյուսակային մասով լրացված, քանի որ այնտեղից մենք ստանում ենք լրացման տվյալները), սեղմեք «Տպել» կոճակը, բացվող պատուհանում ընտրեք ՄԵՐ տպվածը։ ձևը և սեղմեք «Տպել»


ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Այս զարգացման ալգորիթմը հարմար է ՄԻԱՅՆ «Կանոնավոր հավելվածի» համար: Հավելվածի կառավարվող կոնֆիգուրացիաների համար տպվող տարբերակները տարբեր են:

Օրինակում ցուցադրված տպագիր ձևի ֆայլը կարող է լինել

Եկեք գնանք Ծառայություն->Լրացուցիչ հաշվետվություններ և մշակում->Լրացուցիչ արտաքին տպագրական թիթեղներ.

Բացվում է տեղեկատու ցուցակի ձևը արտաքին տպագիր ձևերով: Ցանկի վերևի ընտրացանկում կտտացրեք Ավելացնել. Հայտնվում է գրացուցակի տարր ստեղծելու ձևը:

Սեղմեք «Բացել» կոճակը և ընտրեք ցանկալի տպագրական ձևով ֆայլը: Դրանից հետո, անհրաժեշտության դեպքում, սահմանեք ցանկալի անունը (Անուն դաշտ):

Եթե ​​տպագիր ձևը պարունակում է ավտոմատ գրանցման պարամետրեր, այս մասին հաղորդագրություն կհայտնվի: Սեղմել Այո՛Եթե ​​դա տեղի չունենա, ապա պետք է նշեք, թե որ փաստաթղթին կկապվի այս ձևը: Դա անելու համար հարկավոր է տող ավելացնել «Տպագիր ձևի պատկանելություն» աղյուսակային մասում, որտեղ «Օբյեկտի ներկայացում» դաշտում ընտրեք փաստաթղթի տեսակը, որին մենք կապում ենք ձևը: Քանի որ մեր օրինակում սա նյութերը դուրս գրելու ակտ է, մենք ընտրում ենք Հարցում-հաշիվ-ապրանքագիր փաստաթուղթը:

Դրանից հետո գնացեք ցանկացած փաստաթուղթ Request-invoice, սեղմեք Տպել և ընտրեք նոր ավելացված ձևը:

BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0 համար:

Կառավարվող ինտերֆեյսում տպագիր ձևի ավելացումը ցուցադրելու համար ես ցույց կտամ Հաշվապահություն 3.0-ում նույնանուն փաստաթղթին վճարման համար հաշիվ-ապրանքագրի արտաքին ձև ավելացնելը:

Մենք գնում ենք ծրագրի համապատասխան բաժին.


Անհրաժեշտ է, որ արտաքին հաշվետվությունների օգտագործման և մշակման դրոշակը միացված լինի, հետևեք արտաքին օբյեկտների ցանկի հիպերհղմանը.

Բացվող ցանկում սեղմեք Ստեղծել:


Երկխոսության վանդակում ընտրեք ցանկալի ֆայլը.


Արտաքին օբյեկտի քարտը լրացվում է. դասավորության մեջ մենք տեսնում ենք բազային օբյեկտի տեսակը, որին կկցվի ձևը և հենց դրա անվան տակ.


Գրենք և փակենք ստեղծված արտաքին օբյեկտի ձևը։

Հիմա անցնենք ցանկացած փաստաթղթի Գնորդին վճարման հաշիվ-ապրանքագիրև ցուցադրել տպման ընտրացանկը՝


Հրահանգներ

Բացեք 1C:Enterprise ծրագրի 8-րդ տարբերակը: Ուշադրություն դարձրեք «Ծառայություն» ցանկի տարրին՝ «Արտաքին մշակման և տպագրության ձևեր»: Նրա օգնությամբ դուք կարող եք պահել արտաքին հաշվետվություններ, մշակումներ, տպագիր ձևեր, ինչպես նաև մշակում աղյուսակային տարրերը լրացնելու համար: Կարող եք նաև միացնել արտաքին ձևը` գոյություն ունեցողը փոխելու փոխարեն, ինչը կհանգեցնի ծրագրի կազմաձևման խանգարմանը:

Գործարկեք 1C:Enterprise ծրագիրը կոնֆիգուրատորի ռեժիմում, այնուհետև ստեղծեք արտաքին մշակում, դա անելու համար կատարեք «Ֆայլ» - «Նոր» հրամանը: Բացվող պատուհանում ընտրեք «Արտաքին մշակում»: Էկրանի վրա կհայտնվի նոր արտաքին մշակման ձև: Տվեք դրան «Արտաքին» անունը: Այնուհետև ավելացրեք նոր հատկանիշ, որը կոչվում է «Օբյեկտի հղում», նշեք դրա տեսակը՝ «Փաստաթուղթ. Հղում. Ապրանքների և ծառայությունների վաճառք»: Տարբեր տեսակի փաստաթղթի համար տպելի տարբերակ ստեղծելու համար օգտագործեք համապատասխան հղման տեսակը:

Ավելացնել նոր դասավորություն՝ սեղմելով համապատասխան կոճակը նոր ձևի պատուհանում: Անվանեք այն «Layout», ստեղծեք «Header» կոչվող տարածք, տվեք «Header Text» պարամետրը: Այնուհետև կտտացրեք «Գործողություններ» կոճակին, ընտրեք «Բաց օբյեկտի մոդուլ» հրամանը: Այնուհետև տեղադրեք մոդուլի տեքստը, կարող եք օգտագործել http://www.uasoft.com.ua/content/articles/315/ կայքում տեղադրված օրինակը:

Գործարկեք 1C:Enterprise ծրագիրը, գնացեք Գործիքներ ընտրացանկ, ընտրեք Արտաքին տպագրության ձևեր: Ավելացրեք նոր գրառում ձևերի ցանկում: Դա անելու համար ընտրեք ստեղծված մշակման ֆայլը և աղյուսակային բաժնում նշեք, որ ձևը պատկանում է «Ապրանքների վաճառք» փաստաթղթին: Ստուգեք, որ նոր տպագրական ափսեը ճիշտ է աշխատում: Դա անելու համար բացեք ստեղծված փաստաթուղթը, հետևեք այն, այնուհետև էկրանի ներքևում սեղմեք «Տպել» կոճակը, ընտրեք «Արտաքին տպագրության ձև» տարբերակը:

Աղբյուրներ:

  • ինչպես փոխել տպագիր ձևը 1c-ում

Օբյեկտների ձևերը ստեղծելու և խմբագրելու համար 1C:Enterprise ծրագիրը տրամադրում է հատուկ ձևերի խմբագրիչ (կամ Form Designer): Հավելվածի լուծման օբյեկտների ձևերը նախատեսված են ծրագրի հետ աշխատելիս տվյալները տեսողականորեն ներկայացնելու համար: Ձևերի խմբագրիչը պարունակում է մի քանի ներդիր, որոնք հնարավորություն են տալիս խմբագրել ձևի բոլոր տարրերը:

Ձեզ անհրաժեշտ կլինի

  • համակարգիչ, 1C ծրագիր

Հրահանգներ

Օգտագործելով ձևաթղթի խմբագրիչը՝ կարող եք ձևին ավելացնել մեկ կամ մի քանի «Խումբ – Էջեր» տարր: Դա անելու համար կտտացրեք խմբագրի վերին ձախ անկյունում գտնվող կանաչ գումարած նշանին՝ «Elements» ներդիրում:
1C:Enterprise ռեժիմում խմբի բոլոր գոյություն ունեցող տարրերը կցուցադրվեն յուրաքանչյուրը առանձին ներդիրում: Այն աշխատանքայինից վեր կամ ներքև տեղադրելու համար որոշակի խմբի «Հատկություններ» պատուհանում «Ցուցադրել» կետում ընտրեք համապատասխան հրամանը:

Դուք կարող եք նաև տարրեր ավելացնել ձևին՝ պահանջվող մանրամասները տարրի ծառի մեջ քաշելով: Տվյալները խմբագրելիս կամ մուտքագրելիս ձևի կառավարում նավարկելը հեշտացնելու համար սահմանեք ձեզ հարմար հերթականությունը՝ ծառի մեջ դասավորելով տարրերը և դրանք ստորադասելով այլ տարրերին և սահմանելով խմբային տարրերի հատկությունները ձեր կարիքներին համապատասխան:
Ձևի մանրամասները խմբագրելու համար՝ փոխեք դրանք, ստեղծեք նորերը կամ ջնջեք դրանք, օգտագործեք վահանակը մանրամասների ծառի տարածքում՝ համապատասխան ներդիրում:

Հրամանի միջերեսը խմբագրելու համար անցեք համապատասխան ներդիր: Դուք կտեսնեք հրամանի ծառ, որի հիմնական ճյուղերն են «Նավարկության վահանակը» և «Հրամանների վահանակը»: Որոշ հրամաններ ավտոմատ կերպով ավելացվում են հրամանների միջերեսի ծառին, բայց դուք կարող եք նաև դրանք ավելացնել ինքներդ՝ քաշելով ձեզ անհրաժեշտ հրամանները գլոբալ (ընդհանուր) հրամանների ցանկից կամ ձևի հրամանների ցանկից:

Ձևի հրամանները խմբագրվում են համապատասխան ցանկում: Դուք կարող եք դրանք ավելացնել, հեռացնել ցուցակից, սահմանել հատկություններ յուրաքանչյուր հրամանի համար՝ օգտագործելով հատկությունների ներկապնակը, որը կարող եք զանգահարել՝ սեղմելով ցանկի հրամանի տողում գտնվող մատիտի պատկերակը:
Ձևի պարամետրերը խմբագրելու համար անցեք «Պարամետրեր» ներդիր, որտեղ կարող եք նաև դրանք ավելացնել, ջնջել և սահմանել ցանկալի հատկությունները:

Տեսանյութ թեմայի վերաբերյալ

Հաշվապահական հաշվառման պլանը, որն օգտագործվում է հաշվապահական հաշվառման մեջ ձեռնարկության տնտեսական գործունեությունը ցուցադրելու համար, աջակցում է բազմաստիճան հիերարխիա. հաշիվ - ենթահաշիվներ: Որպեսզի օգտատերը կարողանա դիտել հաշվային աղյուսակում պարունակվող տվյալները և ուղղել դրանք, 1C համակարգը թույլ է տալիս փոխել հաշվի ձևը։ Բացի այդ, հաշիվ-ապրանքագրի տպագիր ձևը կարող է փոխվել ցանկացած այլ փաստաթղթում 1C-ում:

Ձեզ անհրաժեշտ կլինի

  • - անհատական ​​համակարգիչ 1C-ով:

Հրահանգներ

Յուրաքանչյուր հաշվի կամ ենթահաշվի համար տրամադրվում է վերլուծական հաշվառում: Հետևաբար, 1C-ում հաշվային աղյուսակ ստեղծելիս և հետագայում խմբագրելիս կարող են տրամադրվել ենթահաշիվների պահանջվող քանակը, այսինքն՝ վերլուծական հաշվառման օբյեկտները: Ավելին, հաշիվների և ենթահաշիվների ճշգրտումները կարող են կատարվել կամ ավտոմատացված հաշվապահական համակարգով աշխատող օգտվողի կամ ծրագրաշարի մշակողի կողմից:

Այս հոդվածը ձեզ մանրամասն կպատմի, թե ինչպես կարող է 1C 8-ի քիչ իմացությամբ սկսնակը ստեղծել տպագիր ձև: Օրինակ, եկեք վերցնենք ամենատարածված 1C 8 կոնֆիգուրացիաներից մեկը. Հաշվապահություն 2.0. Տպագիր ձևի ստեղծում Գրելու 1C փուլերը.

  • Արտաքին տպագրության ձևի ֆայլի ստեղծում;
  • Տպագիր ձևի դասավորության ստեղծում;
  • Ծրագրի կոդ գրելը` տպագիր ձևի տվյալները էկրանին ցուցադրելու համար.
  • Տպագիր ձևի ավտոմատ գրանցման պարամետրերի ստեղծում.
  • Արտաքին տպագրական ձևի միացում բազայի հետ 1C ձեռնարկություններ.

1C տպագիր ձևի ստեղծում: Խնդրի ձևակերպում

Մենք պահանջվում ենք կազմաձևում Հաշվապահություն 2.0ստեղծել փաստաթղթի տպագիր ձև Ապրանքների և ծառայությունների ստացում. Տպագիր ձևի վերնագրում ցուցադրեք հետևյալ տվյալները.

  • Կազմակերպություն;
  • Կոնտրակուսակցական;
  • Կողմնակիցների պայմանագիր;
  • Ստանալու ամսաթիվը.

Ցուցադրել տվյալները աղյուսակային բաժնում որպես աղյուսակ Ապրանքփաստաթուղթ։ Աղյուսակը պետք է ներառի հետևյալ սյունակները.

  • Անվանակարգ;
  • Քանակ;
  • Գին;
  • Գումար;
  • Եվ նաև ապրանքի գինը ընթացիկ ամսաթվի համար (ըստ փաստաթղթի գնի տեսակի):

Արտաքին մշակման ֆայլ

Անցնենք խնդրի լուծմանը։ Նախ, եկեք բացենք 1C 8 ռեժիմում Կոնֆիգուրատոր. Այս ռեժիմով է, որ բոլոր զարգացումները կատարվում են 1C 8 հարթակում: Այժմ մենք պետք է ստեղծենք արտաքին մշակման ֆայլ: Դա անելու համար սեղմեք ցանկի վրա Ֆայլ -> Նոր…կամ նոր ֆայլի պատկերակով:

Բացվող պատուհանում ընտրեք տարրը Արտաքին մշակում.

Հաջորդը դաշտում ԱնունԴուք պետք է մուտքագրեք արտաքին մշակման անունը: Մեր դեպքում մենք այն պարզապես կանվանենք «PrintedForm», հոմանիշ դաշտը կլրացվի ավտոմատ կերպով: Խնդրում ենք նկատի ունենալ, որ դաշտում Անուն,արտաքին մշակում, անունը պետք է գրվի առանց բացատների կամ կետադրական նշանների։

Ավելացնենք արտաքին մշակման ատրիբուտներ LinkToObject և ընտրեքտպեք նրա համար DocumentLink Ապրանքների և ծառայությունների ստացում. Դա անելու համար 1C արտաքին մշակման մետատվյալների ծառում ընտրեք տարրը Ռեկվիզիտներև սեղմեք կոճակը Ավելացնել(կոճակ կանաչ պլյուսով): Ատրիբուտի հատկությունների պատուհանը կբացվի էկրանի աջ կողմում՝ դաշտում Անունարի գրենք - ReferenceToObject. INդաշտ Տիպսեղմեք կոճակը երեք կետով:

Ընդլայնենք ճյուղը տիպի ծառի մեջ DocumentLink, և այնտեղ գտնեք Ապրանքների և ծառայությունների ստացում տարրը, նշեք դրա կողքի վանդակը և սեղմեք ԼԱՎ.

Եկեք պահպանենք արտաքին մշակման ֆայլը կոշտ սկավառակի վրա, դա անելու համար օգտագործեք ընտրացանկը Ֆայլ -> Պահպանել, պատկերագիր Պահպանել(կապույտ անգործունյա սկավառակ) կամ ստեղնաշարի դյուրանցում Ctrl+S. Պահված ֆայլը անվանենք «PrintForm»:

Տպագիր ձևի դասավորության ստեղծում

Եկեք սկսենք ստեղծել 1C տպագրական ձևի դասավորությունը: Դասավորությունը ծառայում է որպես ձևանմուշ տպագրական ձևի ելքի համար, այնպես որ, եթե ցանկանում եք, որ ձեր տպագրական ձևը լավ տեսք ունենա, պետք է ուշադրություն դարձնեք դրան:

Եկեք նոր դասավորություն ավելացնենք արտաքին մշակման մետատվյալների ծառում, մենք ոչինչ չենք փոխի դասավորության դիզայների պատուհանում և սեղմեք կոճակը Պատրաստ.

Բացվող նոր դասավորության մեջ մենք կստեղծենք մի քանի տարածքներ, որոնք անհրաժեշտ են տպագիր ձևը ցուցադրելու համար։ Մեզ անհրաժեշտ բոլոր դասավորության տարածքները կլինեն հորիզոնական, այնպես որ նոր տարածք ստեղծելու համար ընտրեք անհրաժեշտ թվով դասավորության տողեր և անցեք մենյու: Աղյուսակ -> Անուններ -> Նշանակել անունկամ օգտագործել ստեղնաշարի դյուրանցում Ctrl + Shift + N,ապա վանդակում մուտքագրեք տարածաշրջանի անունը: Դասավորության տարածք ստեղծելիս մի վախեցեք սխալվել տողերի քանակով, դուք միշտ կարող եք դրանք ավելացնել կամ հեռացնել: 1C դասավորության գիծը ջնջելու համար ընտրեք ցանկալի տողը և ընտրեք տարրը համատեքստի ընտրացանկում Ջնջել. Դասավորությանը նոր տող ավելացնելու համար ընտրեք դասավորության ցանկացած տող և ընտրեք տարրը համատեքստի ընտրացանկում: Ընդարձակել.

Դասավորության վերնագրի ավելացում

Նախ եկեք տարածք ստեղծենք Գլխարկ, այն կցուցադրի տպագիր ձևի վերնագրի տվյալները: Այս տարածքի համար մեզ անհրաժեշտ կլինի յոթ դասավորության տող: Ընտրենք դրանք և ինչպես վերևում գրեցի, սեղմենք ստեղների համակցությունը Ctrl + Shift + N, դաշտում Անունգրեք «Գլխարկ» և սեղմեք կոճակը լավ.

Եկեք լրացնենք դասավորության տարածքը մեզ անհրաժեշտ տվյալներով: Սովորաբար, ոչ մի տպագիր ձև ամբողջական չէ առանց վերնագրի, ուստի եկեք ստեղծենք մեկը նաև մեր դասավորության վերնագրում: Քանի որ վերնագրում, բացի տպագիր ձևի անունից, կցուցադրենք նաև այն փաստաթղթի համարը, որտեղից այն տպվել է, ապա դասավորության մեջ վերնագրի տեքստը կսահմանենք որպես պարամետր։ Դասավորության պարամետրը հատուկ նշանակված դասավորության բջիջ է, որի մեջ կարելի է տարբեր տվյալներ դուրս բերել ներկառուցված 1C 8 լեզվով: Վերնագիրը պետք է ցուցադրվի տպագիր ձևի ամբողջ լայնությամբ, ուստի եկեք որոշենք, թե դասավորության քանի բջիջ կլինի մեզ համար թերթի ստանդարտ լանդշաֆտային կողմնորոշման վրա տպելու համար:

Սովորաբար տասներեք կամ տասնչորս դասավորության բջիջները բավական են, ընտրեք դրանք տարածքի առաջին շարքում Գլխարկև միավորել մեկ բջիջի մեջ ( Համատեքստային ընտրացանկ -> Միաձուլել) Դրանից հետո կրկնակի սեղմեք ստացված մեծ բջիջի վրա և գրեք պարամետրի անունը, մեր դեպքում՝ «TitleText»: Որպեսզի մուտքագրված տեքստը դառնա լիարժեք պարամետր, աջ սեղմեք բջիջի վրա և ընտրեք կետը համատեքստի ընտրացանկում: Հատկություններ. Էջանիշի վրա Դասավորությունեկեք դաշտը գտնենք Լցնումև ընտրեք արժեքը Պարամետր. 1C դասավորության պարամետրերը նշված են փակագծերով «<>».

Տպագիր ձևի վերնագիրը պետք է առանձնանա այլ տեքստի մեջ, ուստի նորից ընտրեք բջիջը և օգտագործեք դասավորության ձևաչափման վահանակի պատկերակները՝ տեքստի հավասարեցումը սահմանելու համար։ Կենտրոնացվածև տառաչափը՝ 14։

Վերնագրի տեքստից հետո մենք այն կցուցադրենք տարածքում Գլխարկտեղեկատվություն կազմակերպության, կոնտրագենտի, կոնտրագենտի պայմանագրի և ապրանքների ստացման ամսաթվի մասին: Քանի որ այս բոլոր տվյալները նույնպես վերցված են փաստաթղթից, մենք այն նույնպես կձևակերպենք պարամետրերով։ Բացի այդ, յուրաքանչյուր պարամետրից առաջ պետք է գրել բացատրական տեքստ, որպեսզի օգտագործողը կարողանա հեշտությամբ հասկանալ, թե որտեղ է գտնվում կազմակերպությունը, որտեղ է կոնտրագենտը և այլն: Այս բոլոր գործողությունները նման են վերնագրի ստեղծմանը, ուստի ես դրանց մասին մանրամասն չեմ անդրադառնա, պարզապես կտամ պատկեր, թե ինչ պետք է լինի վերջում:

Նկարը ցույց է տալիս, թե ինչպես են դասավորության պարամետրերը տարբերվում սովորական տեքստից:

Դասավորության աղյուսակի վերնագրի ավելացում

Վերջին բանը, որ մենք պետք է ստեղծենք այս դասավորության տարածքում, աղյուսակի վերնագիրն է, որի մեջ կցուցադրվեն աղյուսակային մասի տվյալները: Ապրանք. Աղյուսակի համար պահանջվող սյունակները նկարագրված են «Խնդրի հայտարարություն» բաժնում: Մենք նաև կստեղծենք աղյուսակի վերնագիր՝ օգտագործելով բջիջների համակցությունը և գրելու տեքստը (սյունակների անունները): Գործիքի միջոցով ընտրեք աղյուսակի վերնագրի սահմանները Շրջանակ, որը գտնվում է դասավորության ձևաչափման վահանակում։

Սեղանի ավելացում դասավորությանը

Եկեք ստեղծենք մեկ այլ տարածք դասավորության մեջ. Տվյալներ. Դրանում կցուցադրվի աղյուսակային մասի տվյալների աղյուսակը Ապրանք.Այս տարածքի համար մեզ անհրաժեշտ է դասավորության միայն մեկ տող: Աղյուսակային մասի բոլոր տողերը տպագիր ձևով ցուցադրելու համար մենք կլցնենք և կցուցադրենք այս տարածքը անհրաժեշտ քանակությամբ անգամ։ Սյուներ տարածքում Տվյալներպետք է համընկնի աղյուսակի վերնագրի սյունակների հետ, ուստի այն լրացնելը դժվար չի լինի: Տարբերությունը միայն տարածքի մեջ է Տվյալներմեզ պետք են ոչ միայն տեքստ, այլ պարամետրեր: Նկատի ունեցեք նաև, որ լռելյայն թվային պարամետրերը ձևաչափված են աջ, իսկ տեքստային պարամետրերը՝ ձախ: Սյունակներ ընտրելու համար անհրաժեշտ է նաև օգտագործել գործիքը Շրջանակ.

Ստորագիր ավելացնելով դասավորությանը

Մեզ անհրաժեշտ դասավորության վերջին տարածքը Նկուղ. Այն կցուցադրի հանրագումարները ըստ քանակի և քանակի: Ստեղծագործությունը նման է տարածք ստեղծելուն Տվյալներ, բայց լրացուցիչ արդյունքները պետք է ընդգծվեն թավով:

Վերջնական արդյունքը պետք է լինի այսպիսի դասավորություն.

1C տպագիր ձևի ստեղծում: Ծրագրավորում

Եկեք սկսենք ծրագրավորումը. սա է ամենակարևոր փուլըտպագիր ձևի ստեղծում. Նախ, եկեք անցնենք արտաքին տպագրության ձևի օբյեկտի մոդուլին, այստեղ մենք կծրագրավորենք: Դա անելու համար հիմնական արտաքին մշակման պատուհանում սեղմեք Գործողություններ -> Բացել օբյեկտի մոդուլը:

Դուք պետք է արտահանման գործառույթ ստեղծեք արտաքին տպագրության ձևի օբյեկտի մոդուլում Կնիք ().

Function Print() Export EndFunction

Խնդրում ենք նկատի ունենալ, որ այս հատկությունը պահանջվում է սովորական հավելվածի օգտագործմամբ արտաքին տպագրական ձևաթղթերի կոնֆիգուրացիաներում: Տպագիր ձևը ցուցադրելու համար անհրաժեշտ բոլոր հետագա ծրագրերի կոդը կգրվեն այս ֆունկցիայի ներսում:

Հիմնական փոփոխականների սկզբնավորում

Եկեք ստեղծենք փոփոխական TabDoc, որը կպարունակի աղյուսակի փաստաթուղթ. սա հենց այն տպագիր ձևն է, որում մենք կցուցադրենք դասավորության լրացված տարածքները:

TabDoc = նոր TabularDocument;

Փոփոխականին ԴասավորությունՄենք կստանանք մեր ստեղծած տպագիր ձևի դասավորությունը: Դա անելու համար մենք օգտագործում ենք ներկառուցված գործառույթը GetLayout (<ИмяМакета>).

Layout = GetLayout ("Layout");

Մենք դասավորության բոլոր տարածքները կվերածենք փոփոխականների: Դա անելու համար մենք օգտագործում ենք դասավորության մեթոդը GetArea (<ИмяОбласти>) .

HeaderArea = Layout.GetArea ("Header"); AreaData = Layout.GetArea («Տվյալներ»); AreaFooter = Layout.GetArea ("Footer");

Տպագիր ձևի վերնագրի դուրսբերում աղյուսակի փաստաթղթում

Բոլոր անհրաժեշտ փոփոխականները սկզբնավորվում են: Եկեք սկսենք լրացնել և ցուցադրել դասավորության տարածքները աղյուսակային փաստաթղթում: Նախ լրացնենք տպվող ձևի վերնագիրը, դրա համար անհրաժեշտ է անցնել պարամետր Վերնագրի տեքստ, որը մենք ստեղծել ենք դասավորության մեջ, մեզ անհրաժեշտ տեքստը։ Դասավորության տարածքի պարամետրերի արժեքները լրացնելու համար կա հատուկ հավաքածու, որը կոչվում է. Ընտրանքներ.Որից միջոցով «»: դուք կարող եք ստանալ ցանկացած պարամետր: Վերնագրի տեքստում մենք կփոխանցենք տեքստը՝ «Տպագիր ձև», ինչպես նաև փաստաթղթի համարը:

Header Area.Parameters.TitleText = "Տպել ձևը"+LinkToObject.Number;

Մենք համանման ձևով կլրացնենք վերնագրի մնացած պարամետրերը, մանրամասներից կստանանք դրանց համար անհրաժեշտ բոլոր արժեքները: Օբյեկտի հղում, որը պարունակում է տպման ենթակա փաստաթղթի հղումը:

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Header Area.Parameters.Counterparty Agreement = LinkToObject.Counterparty պայմանագիր;

Վերնագրի բոլոր պարամետրերը լրացված են, մենք այն կցուցադրենք մեր ստեղծած աղյուսակի փաստաթղթում, դրա համար մենք օգտագործում ենք մեթոդը. Արդյունք (<Область>) .

TabDoc.Output (HeaderArea);

Տպագիր հաշմանդամության խնդրանք գրելը

Եկեք սկսենք լրացնել և գծել տարածքը Տվյալներ. 1C տպագիր ձևի ստեղծումը ներառում է նաև հարցում գրելը, այն մեզ անհրաժեշտ է աղյուսակային տվյալներ ստանալու համար Ապրանքև գները Անվանակարգերընթացիկ ամսաթվի համար, որը մենք կօգտագործենք Հայց. 1C 8 հարցումների լեզուն նման է SQL-ին, ավելի ճիշտ՝ գործնականում պատճենում է իր SELECT օպերատորի հնարավորությունները, բայց ամբողջ հարցումը գրված է ռուսերենով: Հետևաբար, եթե գոնե անորոշորեն ծանոթ եք SQL-ին, ապա հեշտությամբ կհասկանաք 1C 8 հարցումների լեզուն:

Այս տպագիր ձևով հարցումը բավականին պարզ կլինի, և շատերը կասեն, որ դա հնարավոր կլինի անել առանց դրա, բայց հարցման լեզվի իմացությունը և այն գրագետ օգտագործելու ունակությունը 1C ծրագրավորողի հիմնական հմտություններից մեկն է: Հարցումները թույլ են տալիս ստանալ տվյալների բարդ նմուշներ՝ օգտագործելով ավելի քիչ ռեսուրսներ, և հարցման տեքստը շատ ավելի հեշտ է հասկանալ, քան ծրագրի կոդը գրված առանց հարցում օգտագործելու (կամ դրա նվազագույն օգտագործմամբ): Բացի այդ, 1C 8-ն ունի հարցումների շատ լավ դիզայներ, որը թույլ է տալիս ինտերակտիվ կերպով հարցում հավաքել անհրաժեշտ աղյուսակներից:

Եկեք ստեղծենք փոփոխական, որը կպարունակի հարցումը։

Request = Նոր հարցում;

Մենք կկազմենք հարցման տեքստը՝ օգտագործելով հարցումների կառուցողը: Սկզբից գրենք.

Request.Text = "";

Տեղադրեք մկնիկի կուրսորը չակերտների միջև և սեղմեք մկնիկի աջ կոճակը: Համատեքստի ընտրացանկում, որը բացվում է, ընտրեք տարրը Հայցող կոնստրուկտոր,դա մեզ շատ կօգնի 1C տպագրական ձևաթղթի ստեղծման գործում: Դրանից հետո կբացվի հարցման դիզայների պատուհանը, որը պարունակում է բազմաթիվ ներդիրներ, բայց մեր հարցման համար մեզ անհրաժեշտ կլինի ընդամենը չորսը՝ «Սեղաններ և դաշտեր», «Հարաբերություններ», «Պայմաններ», «Միացումներ / Անանուններ»:

Մեր հարցման համար մեզ անհրաժեշտ կլինի երկու աղյուսակ՝ սեղանի մաս Ապրանքփաստաթուղթ Ապրանքների և ծառայությունների ստացումև գրանցամատյանի ընթացիկ ամսաթվի վերաբերյալ վերջին տեղեկատվության լուսանկարը Նյութերի գները.

Դիզայների պատուհանի ձախ կողմում մենք գտնում ենք սյունակը Տվյալների բազա. Այն պարունակում է բոլոր մետատվյալների օբյեկտների ծառը, եկեք գտնենք մեզ անհրաժեշտները: Դա անելու համար եկեք բացենք շարանը Փաստաթղթերև գտնել փաստաթուղթը Ապրանքների և ծառայությունների ստացում, բացենք ու գտնենք աղյուսակային մասը Ապրանք, քաշեք այն հարցումների դիզայների սյունակ Սեղաններ. Կարելի է քաշել երեք եղանակով՝ քաշելով, սեղանի վրա կրկնակի սեղմելով կամ ընտրելով այն և սեղմելով «>» կոճակը: Եկեք բացենք շարանը Տեղեկատվական ռեգիստրներև այնտեղ սեղան գտեք PricesNomenclature.ShortcutՎերջին, նաև քաշեք այն սյունակ Սեղաններ. Այս երկու աղյուսակները բավական են մեր հարցման համար։

Ստացված աղյուսակներից ընտրենք մեզ անհրաժեշտ դաշտերը։ Դա անելու համար սյունակում Սեղաններեկեք բացենք սեղանը և գտնել դաշտերը. Անվանակարգ, Գումար, Գին, Քանակև քաշեք դրանք կոնստրուկտորի երրորդ սյունակ. Դաշտեր. Եկեք ընդլայնենք աղյուսակը , եկեք դաշտը գտնենք Գինև նաև քաշել այն դեպի Դաշտեր.

Մեր հարցման աղյուսակների և դաշտերի կառուցվածքը պատրաստ է, հիմա անցնենք պայմաններին։ Մեզ անհրաժեշտ են աղյուսակային տվյալները Ապրանքվերցվել են ոչ բոլոր անդորրագրերից, այլ միայն նրանից, որը մենք տպում ենք: Դա անելու համար մենք պայման ենք դնելու սեղանին Ապրանքների ստացումԾառայություններԱպրանքներ. Եկեք գնանք հարցումների դիզայների «Պայմաններ» ներդիր: Սյունակում Դաշտերմեր ավելի վաղ ընտրած աղյուսակները գտնվում են, պայմանի համար մեզ անհրաժեշտ կլինի դաշտ Հղումսեղանից Ապրանքների և ծառայությունների ապրանքների ստացում,Եկեք այն քաշենք Պայմանների պատուհանի մեջ:

1C հարցումներում կարող եք օգտագործել պարամետրեր, դրանք անհրաժեշտ են տվյալներ հարցումին փոխանցելու համար: Օրինակ, եթե մենք ցանկանում ենք սահմանափակել փաստաթղթերի ընտրությունը կոնկրետ փաստաթղթով, ապա մենք կարող ենք օգտագործել պարամետր՝ այս փաստաթղթի հղումը հարցումին փոխանցելու համար և օգտագործել այս պարամետրը պայմանում: Սա հենց այն է, ինչ մենք կանենք մեր խնդրանքով։

Պատուհանից հետո Պայմաններմենք դաշտ ենք ավելացրել Հղում, հարցման դիզայներն ինքը կստեղծի նույն անունով պարամետր և կտեղադրի այն «=» նշանից հետո։ Ցանկության դեպքում այս պարամետրը կարող է վերանվանվել: Հարցման տեքստում պարամետրերը նշվում են «&»-ով, բայց in այս դեպքումդա անելու կարիք չկա, քանի որ ենթադրվում է, որ պայմանի երկրորդ մասը պարունակում է պարամետր, պարզապես պետք է հիշել սա: Ինչպես փոխանցել արժեքը 1C հարցման պարամետրին, կքննարկվի ստորև:

Քանի որ հարցումում մենք օգտագործում ենք ոչ թե ապրանքների գների ամբողջական աղյուսակը, այլ վիրտուալը (այս դեպքում վերջինիս մի հատվածը), մենք պետք է պայմաններ սահմանենք այս վիրտուալ աղյուսակի ձևավորման համար, մեր դեպքում սա է. վերջնաժամկետը և գների տեսակի պայմանը (գները, որոնք ունեն խստորեն սահմանված գնի տեսակ, նշված է անդորրագրի փաստաթղթում, որը մենք տպում ենք):

Վիրտուալ աղյուսակի պարամետրերը լրացնելու համար անցեք ներդիր Աղյուսակներ և դաշտերհարցման կոնստրուկտոր, սյունակում Սեղաններընտրեք աղյուսակը ԳներՆոմենկլատուրաԿտրումՎերջինև սեղմեք կոճակը Վիրտուալ սեղանի ընտրանքներ, գտնվում է վերևում։ Բացվող պատուհանում՝ դաշտում Ժամանակաշրջանդուք պետք է սահմանեք պարամետր, որին կփոխանցվի գնի իջեցման ամսաթիվը: Մեր դեպքում սա կլինի ընթացիկ ամսաթիվը (այսինքն՝ այսօր), ուստի պարամետրը կանվանենք «&CurrentDate»: Պայմանների դաշտում կգրենք գնի տեսակի պայմանները, այն կանցկացնենք նաև պարամետրում, որը կանվանենք «&TypePrice»: Ստացված պայմանը նման կլինի (որտեղ ՏեսակըԳին- գրանցել չափումը Նյութերի գները):

PriceType = &PriceType

Վիրտուալ աղյուսակի պարամետրերը լրացվում են, սեղմեք կոճակը լավ.

Այժմ, երբ մենք սահմանափակել ենք ընտրությունը միայն մեզ անհրաժեշտ փաստաթղթով, եկեք կապեր ստեղծենք հարցումների աղյուսակների միջև: Եթե ​​դա չկատարվի, ապա PricesNomenclatureSliceLast աղյուսակի գները չեն կապվի անդորրագրի ապրանքի հետ: Եկեք գնանք ներդիր Միացումներհարցման դիզայներ. Եկեք կապ ստեղծենք ամբողջ դաշտում Անվանակարգմեր երկու սեղանների միջև։ Դա անելու համար սեղմեք կոճակը Ավելացնել, դաշտում Աղյուսակ 1ընտրեք սեղան Ապրանքների ստացումԾառայություններԱպրանքներ, իսկ դաշտում Աղյուսակ 2 - PricesNomenclatureSliceLast. Կապի պայմաններում ընտրեք դաշտերը Անվանակարգերկու սեղաններից:

Հարկ է նաև նշել, որ հարցման ընտրության մեջ մենք պետք է ստանանք բոլոր տողերը ներդիր մասից Ապրանքև գները միայն այն դեպքում, եթե դրանք հասանելի են ընթացիկ ամսաթվին փաստաթղթի գնի տեսակի համար: Այսպիսով, աղյուսակային տվյալները Ապրանքպարտադիր են, սակայն գների բաշխման տվյալները հասանելի չեն: Հետևաբար, այս աղյուսակների միջև փոխհարաբերություններում անհրաժեշտ է օգտագործել այսպես կոչված LEFT JOIN, իսկ ձախ (կամ պահանջվող) աղյուսակը կլինի. Ապրանքների ստացումԾառայություններԱպրանքներ, և ճիշտ (կամ ընտրովի) PriceNomenclatureSliceLast: Որպեսզի ձախ միանալհարցումների աղյուսակները աշխատել են այնպես, ինչպես նկարագրեցի վերևում, դուք պետք է նշեք վանդակը Բոլորըդաշտից հետո Աղյուսակ 1.


Խնդրանքը գրեթե պատրաստ է, մնում է մի փոքր աշխատել խաղադաշտի այլանունների վրա։ Եկեք գնանք էջանիշին Միություններ/Անանուններև դաշտի համար մականուն դրեց ԳներՆոմենկլատուրային շերտ Վերջին.Գին. Մականունը կլինի. ԳինըԱյսօր, դա անհրաժեշտ է, որպեսզի հարցման ընտրության դաշտերի անունները և տպագիր ձևի դասավորության պարամետրերի անվանումները համընկնեն։

Հարցման դիզայների աշխատանքն այժմ ավարտված է, սեղմեք OK: Դիզայների պատուհանը փակվելուց հետո կտեսնեք, որ հարցման տեքստով տողը լրացված է և ունի հետևյալ տեսքը.

Request.Text = "SELECT | Receipt of GoodsServicesProducts.Nomenclature, | Receipt of GoodsServicesGoods.Amount, | Receipt of GoodsservicesProducts.Price, | Ապրանքների ստացումԾառայություններԱպրանքների.Քանակ, |Գների անդորրագիր: ipt-ի GoodsServices.Goods AS ReceiptTo varsServicesProducts ՁԱԽ ՄԻԱՑՈՒՄ ԳրանցվելInformation.PricesNomenclature.SliceLast (| &Ընթացիկ Ամսաթիվ, PriceType = &PriceType) ԻՆՉՊԵՍ անվանացանկ Գներհատված Վերջին | ON Receipt of Nomenclature.Nomenclature. մենկլատուրա |ԵՐՏԵՂ | Ապրանքների ԾառայություններԱպրանքների ստացում.Հղում = &Հղում";

Հարցման կատարում

Եկեք պահանջին փոխանցենք անհրաժեշտ պարամետրերը, դրա համար մենք կօգտագործենք հարցման մեթոդը SetParameter (<ИмяПараметра>,<Значение>). Ընթացիկ ամսաթիվը ստանալու համար օգտագործեք ներկառուցված գործառույթը Ընթացիկ ամսաթիվ (), այն վերադարձնում է համակարգչի ամսաթիվը և ժամը:

Եկեք հարցում կատարենք՝ մեզ անհրաժեշտ տվյալներով նմուշ ստանալու համար: Դա անելու համար նախ օգտագործեք հարցման մեթոդը Վազել (), իսկ հետո մեթոդը Ընտրել ().

Ընտրել = Query.Run().Select();

Լրացնելով տպագիր ձևի աղյուսակը

Արդյունքում փոփոխականում Նմուշկպարունակի հարցման արդյունքների ընտրություն, որի միջով կարող եք նավարկել՝ օգտագործելով մեթոդը Հաջորդ (), և ամբողջ գործն անցնելու համար անհրաժեշտ է օղակ Ցտեսություն. Դիզայնը կլինի հետևյալը.

Մինչ Select.Next() Loop EndLoop;

Հենց այս օղակում մենք կլցնենք և կցուցադրենք դասավորության տարածքը Տվյալներ. Բայց նախ, եկեք սկզբնավորենք թվային տիպի երկու փոփոխական: Դրանցում մենք կհավաքենք հանրագումարները ըստ քանակի և քանակի, որոնք պետք է ցուցադրենք տարածքում Նկուղ.

Ընդհանուր գումար = 0; ԸնդհանուրՔանակ = 0;

Օղակի ներսում մենք կլցնենք տարածքը Տվյալներտվյալներ ընթացիկ ընտրության տարրից փոփոխականների մեջ Ընդհանուր գումարԵվ Ընդհանուր Քանակավելացրեք գումարի և քանակի արժեքներ և վերջապես ցուցադրեք տարածքը աղյուսակի փաստաթղթում, օգտագործելով մեզ արդեն ծանոթ մեթոդը Արդյունք (). Քանի որ մեր հարցման դաշտերի անվանումները լիովին համընկնում են տարածքի պարամետրերի անվանումների հետ Տվյալներ, ապա լրացնելու համար մենք կօգտագործենք ներկառուցված FillPropertyValues ​​ընթացակարգը (<Приемник>, <Источник>), որը պատճենում է գույքի արժեքները<Источника>հատկությունների նկատմամբ<Приемника>.

Մինչ Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output (Տվյալների տարածք); End Cycle;

Տպագիր ձևի էջատակի դուրսբերում աղյուսակի փաստաթղթում

Մնում է լրացնել և ցուցադրել դասավորության վերջին տարածքը. Նկուղ. Մենք արդեն պատրաստել ենք տվյալները լրացման, լրացման և դուրսբերման համար կատարվում են նույն սխեմայով։

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output (AreaFooter);

Աղյուսակային փաստաթուղթն ամբողջությամբ լրացված է, մնում է այն ցուցադրել էկրանին, որպեսզի օգտագործողը կարողանա դիտել տպագիր ձևը և անհրաժեշտության դեպքում տպել այն: Բայց տիպիկ 1C 8 կոնֆիգուրացիաներում հատուկ մոդուլների ընթացակարգերը պատասխանատու են արտաքին տպագիր ձևերի թողարկման համար: Հետեւաբար, բավական է վերադառնալ ֆունկցիայից Կնիք ()լրացված աղյուսակային փաստաթուղթ:

Վերադարձ TabDoc;

Այս պահին ավարտված է ծրագրավորման փուլը և գրեթե ավարտված է 1c տպագրական ձևի ստեղծումը։ Գործառույթի ամբողջական տեքստը Կնիք ()Ես այն այստեղ չեմ տա, դուք կարող եք դիտել այն տպագրվող ֆայլում, որը կարող եք ներբեռնել հոդվածի ներքևում:

1C տպագիր ձևի ստեղծում: Ավտոմատ գրանցման տարբերակներ

Արտաքին տպագրական ձևը տվյալների շտեմարանին միացնելիս համակարգը ավտոմատ կերպով չի որոշում, թե որ փաստաթղթի կամ տեղեկատու գրքի համար է նախատեսված տպագրական ձևը, դուք պետք է այն ընտրեք ձեռքով: Եվ եթե մեկ այլ մարդ գրել է տպագիր ձևը, և ​​ձեզ հանձնարարված է միայն կապել այն, ապա ընտրությունը կարող է դառնալ երկիմաստ: Նման խնդիրներից խուսափելու համար բոլոր արտաքին տպագիր ձևերով անհրաժեշտ է ստեղծել դասավորություն՝ ավտոմատ գրանցման պարամետրերով։ Եթե ​​այն ստեղծվի և ճիշտ ձևաչափվի, համակարգը ավտոմատ կերպով որոշում է, թե որ փաստաթղթի կամ տեղեկատուի համար է նախատեսված տպագիր ձևը:

Այն արվում է հետևյալ կերպ.

  • Արտաքին մշակման ժամանակ մենք ստեղծում ենք նոր դասավորություն: Մենք այն անվանում ենք «Settings_Auto-Registration» (կարևոր է չսխալվել):
  • Դասավորության առաջին վանդակում մենք գրում ենք Փաստաթղթեր.(կամ տեղեկատուներ.) և փաստաթղթի անվանումը, որին պետք է միացնել տպագիր ձևը:

Արտաքին տպագրական ձևի միացում բազայի հետ

  • Սկսեք 1C 8 ռեժիմում Ընկերություն;
  • Գնացեք մենյու Ծառայություն -> Լրացուցիչ հաշվետվություններ և մշակում -> Լրացուցիչ արտաքին տպագիր ձևեր;
  • Սեղմեք կոճակը Ավելացնել;
  • Բացվող պատուհանում սեղմեք պատկերակը Փոխարինեք արտաքին մշակման ֆայլը;
  • Եթե ​​դուք ստեղծել եք ավտոմատ գրանցման պարամետրեր, ապա մենք համաձայնում ենք օգտագործել դրանք;
  • Եթե ​​դուք չեք ստեղծել ավտոմատ գրանցման պարամետրեր, ապա աղյուսակային մասում Տպագրական ափսեի աքսեսուարավելացնել պահանջվող փաստաթուղթկամ տեղեկատու գիրք;
  • սեղմել կոճակը ԼԱՎ.

Դրանից հետո արտաքին տպագրության ձևը հասանելի կլինի ընտրացանկում Կնիքփաստաթուղթ Ապրանքների և ծառայությունների ստացում. 1C տպագիր ձևի ստեղծումն այժմ կարելի է ավարտված համարել։

Կիսվեք ընկերների հետ կամ խնայեք ինքներդ.

Բեռնվում է...