Հարցումների ստեղծում և աշխատանք (սկսնակների համար): Հարցումների ստեղծում և աշխատանք (սկսնակների համար) Հարցումների փաթեթի ներդիր

Հարցումների ստեղծում և աշխատանք (սկսնակների համար): Հարցումների ստեղծում և աշխատանք (սկսնակների համար) Հարցումների փաթեթի ներդիր

Այս հոդվածում մենք ցանկանում ենք ամեն ինչ քննարկել ձեզ հետ 1C հարցումների լեզվի գործառույթներ, և հարցումների լեզվի կառուցվածքները. Ո՞րն է տարբերությունը ֆունկցիայի և դիզայնի միջև: Ֆունկցիան կանչվում է փակագծերով և դրանցում հնարավոր պարամետրերով, իսկ կոնստրուկցիան գրվում է առանց փակագծերի։ Անկասկած 1C հարցումների լեզվի բոլոր կառուցվածքներն ու գործառույթներըտվյալների հավաքագրման գործընթացը դարձնել ճկուն և բազմաֆունկցիոնալ: Այս ֆունկցիաները և կառուցվածքները կիրառվում են հարցումների դաշտերի համար, իսկ որոշները կիրառվում են նաև պայմանների համար:

1C Հարցման լեզվի գործառույթներ

Որովհետև հստակ նկարագրություն 1C հարցումների լեզվի գործառույթներշատ ավելի քիչ տարածված է, քան կառուցվածքների նկարագրությունները, մենք որոշեցինք սկսել դիտարկել գործառույթները: Այժմ եկեք նայենք յուրաքանչյուրին առանձին՝ նկարագրելով դրա նպատակը, շարահյուսությունը և օգտագործման օրինակը, այսպես.

1. Գործառույթ Ամսաթիվ ԺԱՄԱՆԱԿ- այս ֆունկցիան ստեղծում է մշտական ​​դաշտ «Ամսաթիվ» տիպով:

Շարահյուսություն: Ամսաթիվ ԺԱՄԱՆԱԿ (<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Օգտագործման օրինակ.

2. DATE DIFFERENCE ֆունկցիա- վերադարձնում է երկու ամսաթվերի տարբերությունը չափերից մեկում (տարի, ամիս, օր, ժամ, րոպե, վայրկյան): Չափումը փոխանցվում է որպես պարամետր:

Շարահյուսություն: ՏԱՐԲԵՐՎԵԼ (<Дата1>, <Дата2>, <Тип>)

Օգտագործման օրինակ.

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days";

3. VALUE ֆունկցիա- սահմանում է մշտական ​​դաշտ՝ տվյալների բազայից նախապես սահմանված գրառումով, կարող եք նաև ստանալ ցանկացած տեսակի դատարկ հղում:

Շարահյուսություն՝ VALUE(<Имя>)

Օգտագործման օրինակ.

Request.Text = "SELECT //նախասահմանված տարր | VALUE(Directory.Currencies.Dollar) AS Dollar, // դատարկ հղում | VALUE(Document. Receipt of Goods and Services.EmptyLink) AS անդորրագիր, //փոխանցման արժեքը | VALUE(փոխանցում) Իրավաբանական անհատ. Անհատական) ՀԾ Անհատական, //կանխորոշված ​​հաշիվ | VALUE (Հաշիվների գծապատկեր. Ինքնապահովվող. Նյութեր) AS Հաշիվ_10" ;

4. SELECT գործառույթը- մենք մեր առջև ունենք IF կոնստրուկցիայի անալոգը, որն օգտագործվում է կոդում, միայն այս մեկն է օգտագործվում 1C հարցումներում:

Շարահյուսություն: ԸՆՏՐԵԼ ԵՐԲ<Выражение>ՀԵՏՈ<Выражение>ՀԱԿԱՌԱԿԻՑ<Выражение>ՎԵՐՋ

Օգտագործման օրինակ.

Request.Text = //եթե գումարը 7500-ից ավելի է, ապա պետք է լինի 300 ռուբլի զեղչ, //այնպես որ, եթե պայմանը գործարկվի, ապա ֆունկցիան //վերադարձնում է Sum - 300 //հակառակ դեպքում հարցումը կվերադարձնի պարզապես Sum "SELECT | SELECT | WHEN TCreceipts. Amount > 7500 | THEN TCreceipts. Amount - 300 | ELSE TCReceipts. Amount | ԱՎԱՐՏ AS AmountWith Զեղչով | FROM | Document. Receiption of Goodsservices; TCGoodsipts"

5. EXPRESS ֆունկցիա- թույլ է տալիս արտահայտել հաստատուն դաշտ կոնկրետ տիպով:

Շարահյուսություն: ԷՔՍՊՐԵՍ (դաշտի անունը AS TypeName)

Օգտագործման օրինակ.

Query.Text = "SELECT VARIOUS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | THEN EXPRESS(Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINK Փաստաթղթեր | ԱՊԱ EXPRESS(Sales.Registrar AS Document.Implementation) | ԱՎԱՐՏ

Կա՞ EXPRESS ֆունկցիան խառը տիպերի դաշտերում օգտագործելու այլ տարբերակ, որտեղ են դրանք առաջանում: Ամենապարզ օրինակը ցանկացած ռեգիստրի «Գրանցողն» է: Ուրեմն ինչու՞ մեզ պետք է որակավորել տեսակը գրանցամատյանում: Դիտարկենք իրավիճակը, երբ գրանցողից ընտրում ենք «Թիվ» դաշտը, ո՞ր աղյուսակից է ընտրվելու համարը։ Բոլորի ճիշտ պատասխանը! Հետևաբար, որպեսզի մեր հարցումն արագ աշխատի, մենք պետք է նշենք հստակ տեսակ՝ օգտագործելով EXPRESS ֆունկցիան

Օգտագործման օրինակ.

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. ISNULL ֆունկցիա(այլընտրանքային ուղղագրություն ISNULL) - եթե դաշտը NULL տիպի է, ապա այն փոխարինվում է ֆունկցիայի երկրորդ պարամետրով:

Շարահյուսություն: ISNULL (<Поле>, <ПодставляемоеЗначение>)

Օգտագործման օրինակ.

Նկատի ունեցեք նաև, որ նպատակահարմար է ՄԻՇՏ փոխարինել NULL տեսակը ինչ-որ արժեքով, քանի որ NULL տիպի հետ համեմատությունը միշտ վերադարձնում է FALSE, նույնիսկ եթե NULL-ը համեմատում եք NULL-ի հետ: Ամենից հաճախ NULL արժեքները ձևավորվում են աղյուսակների միացման արդյունքում (բոլոր տեսակի միացումները, բացառությամբ ներքինի):

Query.Text = //Ընտրեք ամբողջ նյութը և դրա մնացորդները //եթե որևէ տարրում մնացորդ չկա, ապա կլինի դաշտ //NULL, որը կփոխարինվի 0 «SELECT | No. Link, | ISNULL» արժեքով (ProductsInStockRemains.InStockRemaining, 0) AS Remainder | FROM | Directory.Nomenclature AS No. | Ձախ միացում Գրանցվել կուտակումներ.

7. ՆԵՐԿԱՅԱՑՈՒՑՄԱՆ ֆունկցիա- թույլ է տալիս ստանալ հարցման դաշտի ներկայացում:

Շարահյուսություն: ԿԱՏԱՐՈՒՄ (<НаименованиеПоля>)

Օգտագործման օրինակ.

Query.Text = "SELECT | REPRESENTATION(FreeRemainingRemains.Nomenclature) AS Nomenclature, | REPRESENTATION(FreeRemainingRemaining.Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |RemainingRemainingAS"FROM |RemainingRemaining.AS"

Կառուցվում է 1C հարցումների լեզվով

Մենք ձեզ հետ քննարկել ենք վերևում 1C հարցումների լեզվի գործառույթներ, հիմա ժամանակն է մտածել կառուցում է 1C հարցումների լեզվով, դրանք պակաս կարևոր և օգտակար չեն, սկսենք։

1. Շինարարական ՀՂՈՒՄ- հղման տեսակը ստուգելու տրամաբանական օպերատոր է: Ամենից հաճախ հանդիպում է բարդ տիպի դաշտը որոշակի տեսակի հետ ստուգելիս: Շարահյուսություն: ՀՂՈՒՄ<Имя таблицы>

Օգտագործման օրինակ.

Request.Text = //եթե ձայնագրիչի արժեքի տեսակը document Receipt է, //ապա հարցումը կվերադարձնի «Ապրանքների անդորրագիր», հակառակ դեպքում «Ապրանքների վաճառք» «SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Goods and Ծառայություններ | ՀԵՏՈ ««Ստացում» | ԱՅԼ ««Սպառում»» | ԱՎԱՐՏ ՈՐՊԵՍ շարժման տեսակը | ԻՐԿ | Կուտակման գրանցամատյան. Պահեստներում մնացորդներ AS Remains" ;

2. Դիզայն ՄԻՋԵՎ- այս օպերատորը ստուգում է, թե արդյոք արժեքը նշված տիրույթում է:

Շարահյուսություն: ՄԻՋԵՎ<Выражение>ԵՎ<Выражение>

Օգտագործման օրինակ.

Request.Text = //ստացեք ամբողջ նոմենկլատուրան, որի կոդը գտնվում է 1-ից 100-ի միջակայքում.

3. Շինարարություն B և B ՀԻԵՐԱՐԽԻԱ- ստուգեք, արդյոք արժեքը փոխանցված ցանկում է (զանգվածները, արժեքների աղյուսակները և այլն կարող են փոխանցվել որպես ցուցակ): IN HIERARCHY օպերատորը թույլ է տալիս դիտել հիերարխիան (Հաշիվների աղյուսակի օգտագործման օրինակ):

Շարահյուսություն: IN(<СписокЗначений>), ՀԻԵՐԱՐԽԻԱՅՈՒՄ (<СписокЗначений>)

Օգտագործման օրինակ.

Request.Text = //ընտրեք հաշվի բոլոր ենթահաշիվները «SELECT | Self-served. Link AS Account | FROM | Հաշիվների գծապատկեր. Ինքնապահովվող AS Self-աջակցվող | ՈՐՏԵՂ | Self-աջակցվող. Հղում HIERARCHY VALUE-ում (Chart of Հաշիվներ. ինքնասպասարկման. Ապրանքներ)»;

4. Դիզայն ՆՄԱՆԻ- Այս ֆունկցիան թույլ է տալիս համեմատել տողը լարային նախշի հետ:

Շարահյուսություն: Հավանել»<ТекстШаблона>"

Տողերի օրինակի ընտրանքներ.

% - կամայական նիշերի ցանկացած քանակ պարունակող հաջորդականություն:

Մեկ կամայական կերպար.

[...] - քառակուսի փակագծերում նշված ցանկացած մեկ նիշ կամ նիշերի հաջորդականություն: Թվարկումը կարող է նշել միջակայքերը, օրինակ՝ a-z, ինչը նշանակում է կամայական նիշ, որը ներառված է տիրույթում, ներառյալ տիրույթի ծայրերը:

[^...] - քառակուսի փակագծերում նշված ցանկացած նիշ կամ նիշերի հաջորդականություն, բացառությամբ ժխտման նշանից հետո թվարկվածների:

Օգտագործման օրինակ.

Հարցում.Տեքստ = //գտնել ամբողջ անվանակարգը, որը պարունակում է TABUR արմատը և սկսվում է //կամ փոքր կամ մեծ տառով t "SELECT | Անվանակարգ. Հղում | FROM | Տեղեկատու. Անվանակարգ AS Nomenclature | WHERE | Ապրանքներ. Անունը LIKE "" [Tt ]abur%""" ;

5. Դիզայնը ԹՈՒՅԼԱՏՐՎԱԾ Է- այս օպերատորը թույլ է տալիս տվյալների բազայից ընտրել միայն այն գրառումները, որոնց համար զանգահարողը կարդալու թույլտվություն ունի: Այս իրավունքները կազմաձևված են ռեկորդային մակարդակում (RLS):

Շարահյուսություն: ALLOWED գրվում է SELECT բանալի բառից հետո

Օգտագործման օրինակ.

Request.Text = "ԸՆՏՐԵԼ ԹՈՒՅԼԱՏՐՎԱԾՆԵՐԸ | Կողմնակիցներ. Հղում | FROM-ից | տեղեկատու. Կոնտերկողմներ AS Conterparties";

6. Դիզայն ՏԱՐԲԵՐ- թույլ է տալիս ընտրել գրառումներ, որոնցում կրկնօրինակ գրառումներ չկան:

Շարահյուսություն: SELECT բանալի բառից հետո գրվում է VARIOUS

Օգտագործման օրինակ.

Request.Text = //ընտրում է գրառումները, որոնց նկատմամբ ընթերցողը իրավունք ունի "SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties" ;

Նաև ՏԱՐԲԵՐ կոնստրուկցիան կարող է օգտագործվել թույլատրված օպերատորի և այլ օպերատորների հետ:

Օգտագործման օրինակ.

Request.Text = //ընտրում է տարբեր գրառումներ, որոնց նկատմամբ ընթերցողը իրավունք ունի «Ընտրել թույլատրված տարբեր | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties»;

7. Դիզայն ԱՌԱՋԻՆ- հարցման արդյունքից ընտրում է պարամետրում նշված գրառումների քանակը:

Շարահյուսություն՝ ԱՌԱՋԻՆ<число>

Օգտագործման օրինակ.

Request.Text = //ընտրեք առաջին 4 CCD համարները գրացուցակից «SELECT FIRST 4 | CCD Numbers. Link | FROM | Directory. CCD Numbers AS CCD Numbers»;

8. Դիզայն ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ- թույլ է տալիս կողպել սեղանը, աշխատում է միայն գործարքներում (համապատասխան է միայն ավտոմատ կողպեքների համար):

Շարահյուսություն: ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ<НаименованиеТаблицы>

Օգտագործման օրինակ.

Query.Text = "SELECT | Ազատ մնացորդներ. Անվանակարգ, | Ազատ մնացորդներ. Պահեստ, | Ազատ մնացորդներ. Պահեստում մնացած | FROM | Կուտակումների գրանցում. Ազատ մնացորդներ. Մնացորդներ ՈՐՊԵՍ անվճար մնացորդներ Մնացորդներ | Կուտակման ՀԱՄԱՐ | Ազատ մնացորդներ. Մնացորդներ»;

9. Դիզայն ՊԱՏՎԵՐԸ- կազմակերպում է տվյալներ ըստ կոնկրետ դաշտի: Եթե ​​դաշտը հղում է, ապա դրոշը դնելիս ԱՎՏՈՊԱՏՎԵՐՏեսակավորումը տեղի կունենա ըստ հղման ներկայացման, եթե դրոշն անջատված է, ապա հղումները դասակարգվում են հիշողության մեջ հղման հասցեի հինությամբ:

Շարահյուսություն: ԴԱՍԱՎՈՐԵԼ ԸՍՏ<НаименованиеПоля>ԱՎՏՈՊԱՏՎԵՐ

Օգտագործման օրինակ.

Query.Text = "SELECT | Ազատ մնացորդներ. Անվանակարգ AS անվանակարգ, | Ազատ մնացորդներ. Պահեստ AS Պահեստ, | Ազատ մնացորդներ. Պահեստում մնացած | FROM | Գրանցեք կուտակումներ. Ազատ մնացորդներ. Մնացած AS անվճար մնացորդներ BORDERY | |Անվանակատուրա |AUTO ORDER VANIE»;

10. Դիզայնի ԽՄԲ- օգտագործվում է հարցումների տողերը ըստ որոշակի դաշտերի խմբավորելու համար: Թվային դաշտերը պետք է օգտագործվեն ցանկացած ագրեգատային ֆունկցիայի հետ:

Շարահյուսություն: ԽՈՒՄԲ ԸՍՏ<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Օգտագործման օրինակ.

Query.Text = "SELECT | ItemsInWarehouses.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInWarehouses.InStock) AS INSTOCK |FROM | Գրանցվել կուտակումներ. ItemsIn Warehouses AS | ItemsInWarehouses. tՊահեստ ah.Warehouse" ;

11. Դիզայն ՈՒՆԵՑՈՂ- թույլ է տալիս կիրառել ագրեգատ ֆունկցիա տվյալների ընտրության պայմանի վրա, որը նման է WHERE կառուցվածքին:

Շարահյուսություն: ՈՒՆԵՑՈՂ<агрегатная функция с условием>

Օգտագործման օրինակ.

Query.Text = //ընտրում է խմբավորված գրառումները, որտեղ InStock դաշտը մեծ է 3-ից «SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK.FROM | RegisterAccumStocksStocks | ԽՈՒՄԲ ԸՍՏ | Ապրանքներ Պահեստներում. Անվանակարգ, | Ապրանքներ Պահեստներում. Պահեստում | |ԱՌԿԱ է | ԳՈՒՄԱՐ (Ապրանքները Պահեստներում. Պահեստում) > 3" ;

12. Շինարարություն ԻՆԴԵՔՍ ԸՍՏ- օգտագործվում է հարցման դաշտի ինդեքսավորման համար: Ինդեքսավորմամբ հարցումը ավարտելու համար ավելի երկար է տևում, բայց արագացնում է որոնումը ինդեքսավորված դաշտերում: Կարող է օգտագործվել միայն վիրտուալ աղյուսակներում:

Շարահյուսություն: ԻՆԴԵՔՍ ԸՍՏ<Поле1, ... , ПолеN>

Օգտագործման օրինակ.

Query.Text = "SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS»;

13. Դիզայն ՈՐՏԵՂ- թույլ է տալիս պայման դնել ընտրության ցանկացած դաշտի վրա: Արդյունքը կներառի միայն պայմանը բավարարող գրառումներ:

Շարահյուսություն: ՈՐՏԵՂ<Условие1 ОператорЛогСоединения УсловиеN>

Օգտագործման օրինակ.

Query.Text = // CompensationRemaining ունեցող բոլոր գրառումներն ընտրված են<>0 and //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains.AmountForCalcCompRemains.AmountForCalcCompRemains.AmountForCalcCompRemains.AmountForCalcCompRemains.AmountForCalcCompRemains.AmountForCalcCompRemains.PlaCalcCompRemains RPRemains | WHERE |CompensationRPORmaining.CompensationRemaining<>0 | And CompensationRPORemains.AmountForCalcCompRemaining> 100";

14. Դիզայնի ԱՐԴՅՈՒՆՔՆԵՐ... ԸՆԴՀԱՆՈՒՐ- օգտագործվում է հանրագումարները հաշվարկելու համար; դիզայնը սահմանում է այն դաշտերը, որոնցով կհաշվարկվեն հանրագումարները և կկիրառվեն համախառն գործառույթները ընդհանուր դաշտերի վրա: TOTAL կառուցվածքին հաջորդող յուրաքանչյուր դաշտի համար ընդհանուր գումարներ օգտագործելիս տվյալները խմբավորվում են: Կա կամընտիր GENERAL կառուցվածք, դրա օգտագործումը նաև լրացուցիչ խմբավորում է ապահովում: Ստորև կտեսնեք հարցման արդյունքի օրինակ:

Շարահյուսություն: ԱՐԴՅՈՒՆՔՆԵՐ<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>ԿՈՂՄԻՑ<ОБЩИЕ> <Поле1, ... , ПолеN>

Օգտագործման օրինակ.

Request.Text = "SELECT | Հաշվարկներ. Կոնտրագենտի պայմանագիր. Համաձայնագրի տեսակը AS Պայմանագրի տեսակը, | Հաշվարկներ. Կողմնակիցների Համաձայնագիր AS Պայմանագիր, | Հաշվարկներ. Կոնտրագենտ, | Հաշվարկներ. Փոխադարձ հաշվարկային մնացորդի AS մնացորդ | FROM | Կուտակումների գրանցամատյան. Փոխադարձ Հաշվարկներ Կողմնակիցների ՀԵՏ Մնացորդներ ՈՐՊԵՍ հաշվարկներ | ԸՆԴԱՄԵՆԸ | ԳՈՒՄԱՐԸ (մնացորդ) |Ծրագրային | ԸՆԴՀԱՆՈՒՐ, | Պայմանագրի տեսակը»;

Նկարը ուրվագծում է այն խմբավորումները, որոնք ձևավորվել են հարցումը կատարելու ընթացքում, վերևը վերաբերում է ԸՆԴՀԱՆՈՒՐ բաժնին, իսկ երկրորդը՝ Կոնտրագենտի համաձայնագրի Համաձայնագրի տեսակ դաշտին։

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

Ստեղծեք հարցում

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

//Ստեղծել հարցում
Request = նոր հարցում;

//Լրացրեք հարցման տեքստը
Հայց. Տեքստ = «Այստեղ գրում ենք խնդրանքի տեքստը».;

//Անցնել պարամետրերը հարցումին
Հայց. SetParameter ("ParameterName", ParameterValue);

//Կատարել հարցումը
Արդյունք = Հարցում: Run() ;

//Վերբեռնեք հարցման արդյունքը ընտրության մեջ
Նմուշ = Արդյունք: Ընտրեք ();

//Վերբեռնեք հարցման արդյունքը արժեքների աղյուսակում
Աղյուսակ = Արդյունք. Բեռնաթափել() ;

//Վերջին գործողությունները կարելի է համատեղել
Բերել = Հարցում: Run() . Ընտրեք ();
//կամ
Աղյուսակ = Հարցում. Run() . Բեռնաթափել() ;

1C հարցումների լեզվի հիմունքները

Ամենապարզ և ամենահաճախ օգտագործվող հարցումներն օգտագործվում են ինչ-որ աղբյուրից տվյալներ ստանալու համար: Աղբյուրը կարող է լինել ցանկացած տվյալ պարունակող գրեթե բոլոր օբյեկտները՝ գրացուցակներ, փաստաթղթեր, գրանցամատյաններ, հաստատուններ, թվարկումներ, բնութագրերի տեսակների պլաններ և այլն:

Այս օբյեկտներից, օգտագործելով հարցում, կարող եք ստանալ մանրամասների արժեքները, աղյուսակի մասերը, աղյուսակի մասերի մանրամասները, փոփոխությունները, ռեսուրսները և այլն:

Հարցման տեքստը ստանալու համար այն հաճախ հարմար է օգտագործել Հայցող կոնստրուկտոր.Այն կոչվում է, երբ աջ սեղմում եք ծրագրի մոդուլի ցանկացած կետում:

Օրինակ, եթե Ձեզ անհրաժեշտ է ստանալ գրացուցակի բոլոր մանրամասների արժեքները Կողմնակիցներ, ապա հարցումը կունենա հետևյալ տեսքը.

Հայց. Տեքստ = «ԸՆՏՐԵՔ
| *
|ԻՑ
| տեղեկատու. Կոնտրագենտներ»
;

Եթե ​​Ձեզ անհրաժեշտ է ստանալ միայն անհատական ​​մանրամասներ, ապա արեք սա.

Հայց. Տեքստ = «ԸՆՏՐԵՔ
| Կոդ,
| Անուն,
| Ծնող
|ԻՑ
| տեղեկատու. Կոնտրագենտներ»
;

Նման հարցման տեքստ ստանալու համար Հարցման կառուցողդուք պետք է ընտրեք համապատասխան դաշտերը ներդիրում Աղյուսակներ և դաշտեր.

Հարցման մեջ ընտրված տարրերին և աղբյուրներին կարող եք վերագրել այլանուններ և հետագայում դրանք օգտագործել ինչպես հարցումում, այնպես էլ արդյունքի հետ աշխատելիս: Բացի այդ, հարցումը կարող է պարունակել դաշտեր՝ նախապես սահմանված հատուկ արժեքով կամ հաշվարկված արժեքով.

Հայց. Տեքստ = «ԸՆՏՐԵՔ
| Clients.Code AS համարը,

| 1000 AS FieldWithValue
|ԻՑ
;

Բերել = Հարցում: Run() . Ընտրեք ();

Հրաժեշտի ընտրություն: Հաջորդ () հանգույց
Հաճախորդի համարը = Նմուշ: Թիվ;
ClientName = Ընտրություն: Անուն;
Արժեք = Նմուշ: FieldWithValue;
Վերջնական ցիկլ;

Օգտագործեք ներդիրը՝ փոխանունները սահմանելու համար Միություններ/ԱնանուններՎ Հարցման ստեղծող.

Ֆիքսված կամ հաշվարկված արժեք ունեցող դաշտը ձեռքով ստեղծվում է ներդիրում Աղյուսակներ և դաշտեր, սյունակում Դաշտեր.

Բոլոր ընտրված տարրերը կարող են դասավորվել կամ առաջ, կամ հակառակ հերթականությամբ: Պատվիրելու համար կարող եք ընտրել մեկ կամ մի քանի դաշտ: Դասավորելու հետ մեկտեղ երբեմն կարող է օգտակար լինել ընտրել առաջին կետերից միայն մեկը կամ մի քանիսը:

//Պատվիրեք հաճախորդներին անուններով A-ից Z և ընտրեք առաջին 10-ը
Հայց. Տեքստ = «Ընտրեք ԱՌԱՋԻՆ 10
| Clients.Code AS համարը,
| Clients.Name AS Անուն,
| 1000 AS FieldWithValue
|ԻՑ

|ՊԱՏՎԵՐԸ ԸՆԴ
| Անուն"
;

//Ընտրեք ամենավերջին այբբենական հաճախորդը
Հայց. Տեքստ = «ԸՆՏՐԵԼ ԹՈՓ 1
| Clients.Code AS համարը,
| Clients.Name AS Անուն,
| 1000 AS FieldWithValue
|ԻՑ
| տեղեկատու Կոնտերպայմաններ AS Հաճախորդներ
|ՊԱՏՎԵՐԸ ԸՆԴ
| Անունը Նվազեցնել»
;

Դուք կարող եք սահմանափակել այն տարրերի ընտրությունը, որոնց նկատմամբ օգտատերը մուտքի իրավունք ունի: Կամ հեռացնել կրկնօրինակ տողերը հարցման արդյունքից:

//Օգտատիրոջը թույլատրված նմուշառման տվյալներ
Հայց. Տեքստ = «ԸՆՏՐԵԼ ԹՈՒՅԼԱՏՐՎԱԾ Է
| Clients.Code AS համարը,
| Clients.Name AS Անուն,
| 1000 AS FieldWithValue
|ԻՑ
| տեղեկատու. Կողմնակիցներ AS Հաճախորդներ»
;

//Չկրկնվող տարրերի ընտրություն
Հայց. Տեքստ = «ԸՆՏՐԵԼ ՏԱՐԲԵՐ
| Clients.Code AS համարը,
| Clients.Name AS Անուն,
| 1000 AS FieldWithValue
|ԻՑ
| տեղեկատու. Կողմնակիցներ AS Հաճախորդներ»
;

Պատվերը դրված է ներդիրում ՊատվերՎ Հարցման ստեղծողԸնտրված տարրերի քանակը, լուծաչափը և կրկնելիության պարամետրերը գտնվում են ներդիրում Լրացուցիչ.

Շարունակելի…

Հարցման լեզուն մշակողների համար 1C 8.3-ի հիմնարար մեխանիզմներից մեկն է: Օգտագործելով հարցումները, դուք կարող եք արագ առբերել տվյալների բազայում պահված ցանկացած տվյալ: Դրա շարահյուսությունը շատ նման է SQL-ին, սակայն կան որոշ տարբերություններ։

1C 8.3 (8.2) հարցումների լեզվի հիմնական առավելությունները SQL-ի նկատմամբ.

  • հղման դաշտերի հեռացում (առարկայի մանրամասներին մեկ կամ մի քանի կետերի հղում);
  • արդյունքների հետ աշխատելը շատ հարմար է;
  • վիրտուալ աղյուսակներ ստեղծելու ունակություն;
  • հարցումը կարող է գրվել ինչպես անգլերեն, այնպես էլ ռուսերեն;
  • փակուղուց խուսափելու համար տվյալները արգելափակելու ունակություն:

Հարցման լեզվի թերությունները 1C-ում.

  • ի տարբերություն SQL-ի, 1C հարցումները թույլ չեն տալիս փոխել տվյալները.
  • պահեստավորված ընթացակարգերի բացակայություն;
  • տողը թվի փոխարկելու անհնարինություն.

Եկեք նայենք մեր մինի ձեռնարկին 1C հարցումների լեզվի հիմնական կառուցվածքների վերաբերյալ:

Հաշվի առնելով այն հանգամանքը, որ 1C-ում հարցումները թույլ են տալիս ստանալ միայն տվյալներ, ցանկացած հարցում պետք է սկսվի «SELECT» բառով: Այս հրամանից հետո նշվում են այն դաշտերը, որոնցից պետք է տվյալներ ստանալ։ Եթե ​​նշեք «*», բոլոր առկա դաշտերը կընտրվեն: «FROM» բառից հետո նշվում է այն վայրը, որտեղից կընտրվեն տվյալները (փաստաթղթեր, գրանցամատյաններ, տեղեկատուներ և այլն):

Ստորև քննարկված օրինակում ամբողջ նոմենկլատուրայի անվանումներն ընտրված են «Nomenclature» գրացուցակից: «ԻՆՉՊԵՍ» բառից հետո նշվում են աղյուսակների և դաշտերի փոխանունները (անունները):

ԸՆՏՐԵԼ
Անվանում Անվանումը AS Անվանակարգի անվանումը
ԻՑ
Directory.Nomenclature AS Nomenclature

«SELECT» հրամանի կողքին կարող եք նշել հիմնաբառեր.

  • ՏԱՐԲԵՐ. Հարցումը կընտրի միայն տողերը, որոնք տարբերվում են առնվազն մեկ դաշտում (առանց կրկնօրինակների):
  • ԱՌԱՋԻՆ n, Որտեղ n– արդյունքի սկզբից տողերի քանակը, որոնք պետք է ընտրվեն: Ամենից հաճախ այս կոնստրուկցիան օգտագործվում է տեսակավորման հետ համատեղ (ORDER BY): Օրինակ, երբ դուք պետք է ընտրեք որոշակի թվով փաստաթղթեր, որոնք վերջին ամսաթվով են:
  • ԹՈՒՅԼԱՏՐՎԱԾ Է. Այս դիզայնը թույլ է տալիս տվյալների բազայից ընտրել միայն այն գրառումները, որոնք հասանելի են ընթացիկ օգտագործողին: Այս հիմնաբառի օգտագործման հիման վրա օգտվողը կստանա սխալի հաղորդագրություն, երբ փորձում է հարցումներ կատարել այն գրառումների վրա, որոնց հասանելիություն չունի:

Այս հիմնաբառերը կարող են օգտագործվել միասին կամ առանձին:

ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ

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

Ամենից հաճախ մնացորդներ ստանալիս օգտագործվում է «ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ» կետը: Ի վերջո, երբ մի քանի օգտատերեր միաժամանակ աշխատում են ծրագրում, մինչդեռ մեկը ստանում է մնացորդներ, մյուսը կարող է փոխել դրանք։ Այս դեպքում ստացված մնացորդն այլևս ճիշտ չի լինի: Եթե ​​այս առաջարկով արգելափակեք տվյալները, ապա մինչև առաջին աշխատակիցը ստանա ճիշտ հաշվեկշիռը և դրա հետ կատարի բոլոր անհրաժեշտ մանիպուլյացիաները, երկրորդ աշխատակիցը ստիպված կլինի սպասել։

ԸՆՏՐԵԼ
Փոխադարձ հաշվարկներ Աշխատակից,
Փոխադարձ հաշվարկներ Փոխադարձ հաշվարկների գումարը Մնացորդ
ԻՑ
Կուտակումների ռեգիստր Փոխադարձ հաշվարկներ աշխատողների հետ Մնացորդներ ՀԾ Փոխադարձ հաշվարկներ
ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ

ՈՐՏԵՂ

Դիզայնը անհրաժեշտ է բեռնված տվյալների վրա որոշակի ընտրություն պարտադրելու համար: Ռեգիստրներից տվյալներ ստանալու որոշ դեպքերում ավելի խելամիտ է վիրտուալ աղյուսակների պարամետրերում նշել ընտրության պայմանները։ «WHERE»-ն օգտագործելիս նախ բոլոր գրառումները վերցվում են, և միայն դրանից հետո կիրառվում է ընտրությունը, ինչը զգալիորեն դանդաղեցնում է հարցումը:

Ստորև բերված է կոնկրետ պաշտոնի համար կոնտակտային անձանց ձեռք բերելու հայտի օրինակ: Ընտրության պարամետրն ունի ձևաչափ՝ &ParameterName (պարամետրի անունը կամայական է):

ԸՆՏՐՈՒԹՅՈՒՆ (ԳՈՐԾՈՎ)

Դիզայնը թույլ է տալիս հստակեցնել պայմանները անմիջապես հարցման մարմնում:

Ստորև բերված օրինակում «Լրացուցիչ դաշտը» կպարունակի տեքստ՝ կախված նրանից՝ փաստաթուղթը տեղադրված է, թե ոչ.

ԸՆՏՐԵԼ
ԸնդունելությունT&U.Link,
ԸՆՏՐՈՒԹՅՈՒՆ
ԵՐԲ ԸնդունելությունT&U.Կատարվում է
ՀԵՏՈ «Փաստաթուղթը ընդունված է»։
ԱՅԼ «Փաստաթուղթը չի տեղադրվել...»
ԱՎԱՐՏ ՈՐՊԵՍ լրացուցիչ դաշտ
ԻՑ
Փաստաթուղթ Ապրանքների և ծառայությունների ստացում ԻՆՉՊԵՍ անդորրագիր T&C

ՄԻԱՑԵՔ

Միացումները կապում են երկու աղյուսակներ՝ հիմնված կոնկրետ հարաբերությունների պայմանի վրա:

ՁԱԽ/ԱՋ ՄԻԱՑՈՒՄ

LEFT միացման էությունը կայանում է նրանում, որ առաջին նշված աղյուսակը վերցված է ամբողջությամբ, իսկ երկրորդը կապվում է դրան՝ ըստ կապի պայմանի։ Եթե ​​երկրորդում առաջին աղյուսակին համապատասխան գրառումներ չկան, ապա որպես դրանց արժեքներ փոխարինվում է NULL-ը: Պարզ ասած, հիմնական աղյուսակը առաջին նշված աղյուսակն է, և երկրորդ աղյուսակի տվյալները (եթե այդպիսիք կան) արդեն փոխարինված են դրա տվյալներին:

Օրինակ, ապրանքների ապրանքները անհրաժեշտ է ձեռք բերել «Ապրանքների և ծառայությունների ստացում» փաստաթղթերից, իսկ գները՝ «Ապրանքների գներ» տեղեկատվական ռեգիստրից: Այս դեպքում, եթե որևէ դիրքի գինը չի գտնվել, փոխարենը փոխարինեք NULL-ը: Փաստաթղթից բոլոր կետերը կընտրվեն՝ անկախ նրանից՝ գին ունեն, թե ոչ։

ԸՆՏՐԵԼ
Անդորրագիր և U. անվանակարգ,
Գներ.Գին
ԻՑ
Փաստաթուղթ Ապրանքների և ծառայությունների ստացում Ապրանքներ ԻՆՉՊԵՍ ստացում և բնութագրեր
ՆԵՐՔԻՆ ՄԻԱՑՆԵԼ ԳրանցումInformation.PricesNomenclature.SliceՎերջին AS գները
Software Receipt&U.Nomenclature = Prices.Nomenclature

ԻՐԱՎՈՒՄ ամեն ինչ ճիշտ հակառակն է։

ԼԻՎԱԾ ՄԻԱՑՈՒՄ

Կապի այս տեսակը տարբերվում է նախորդներից նրանով, որ արդյունքում կվերադարձվեն ինչպես առաջին աղյուսակի, այնպես էլ երկրորդի բոլոր գրառումները: Եթե ​​առաջին կամ երկրորդ աղյուսակում որևէ գրառում չգտնվի՝ հիմնվելով նշված հղման պայմանի վրա, փոխարենը կվերադարձվի NULL-ը:

Նախորդ օրինակում լիարժեք միացում օգտագործելիս կընտրվեն «Ապրանքների և ծառայությունների ստացում» փաստաթղթի բոլոր տարրերը և «Ապրանքների գներ» ռեգիստրի բոլոր վերջին գները: Թե՛ առաջին, թե՛ երկրորդ աղյուսակներում չգտնված գրառումների արժեքները հավասար կլինեն NULL-ի:

ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ

INNER JOIN-ի և FULL Join-ի միջև տարբերությունն այն է, որ եթե աղյուսակներից գոնե մեկում գրառում չի գտնվել, հարցումն այն ընդհանրապես չի ցուցադրի: Արդյունքում «Ապրանքների և ծառայությունների ստացում» փաստաթղթից կընտրվեն միայն այն ապրանքները, որոնց համար տեղեկատվական ռեգիստրում կան գրառումներ «Ապրանքների գներ», եթե նախորդ օրինակում «ԼԻՎԱԾ»-ը փոխարինում ենք «INTERNAL»-ով:

ԽՈՒՄԲ ԸՍՏ

1C հարցումներում խմբավորումը թույլ է տալիս փլուզել աղյուսակի տողերը (խմբավորման դաշտերը) ըստ որոշակի ընդհանուր բնութագրի (խմբավորման դաշտեր): Խմբավորման դաշտերը կարող են ցուցադրվել միայն ագրեգատ գործառույթների միջոցով:

Հետևյալ հարցման արդյունքը կլինի ապրանքատեսակների ցանկ՝ դրանց համար առավելագույն գներով:

ԸՆՏՐԵԼ
,
MAX (Գին. Գին) AS Price
ԻՑ

ԽՈՒՄԲ ԸՍՏ
Գներ.Անվանակատուրա.Անվանացանկի տեսակը

ԱՐԴՅՈՒՆՔՆԵՐ

Ի տարբերություն խմբավորման, ընդհանուր գումարներն օգտագործելիս բոլոր գրառումները ցուցադրվում են և դրանց ընդհանուր տողերը ավելացվում են: Խմբավորումը ցուցադրում է միայն ընդհանրացված գրառումները:

Արդյունքները կարող են ամփոփվել ամբողջ աղյուսակի համար (օգտագործելով «GENERAL» հիմնաբառը), մի քանի դաշտերի, հիերարխիկ կառուցվածք ունեցող դաշտերի համար (հիմնաբառեր «HIERARCHY», «ONLY HIERARCHY»): Արդյունքներն ամփոփելիս անհրաժեշտ չէ օգտագործել ագրեգատային ֆունկցիաներ։

Եկեք դիտարկենք վերը նշված օրինակին նման օրինակ՝ օգտագործելով խմբավորումը: Այս դեպքում հարցման արդյունքը կվերադարձնի ոչ միայն խմբավորված դաշտերը, այլև մանրամասն գրառումները:

ԸՆՏՐԵԼ
Գներ.Անվանակատուրա.Անվանակոչի տեսակը AS անվանացանկի տեսակ,
Գներ.Գին AS գինը
ԻՑ
Տեղեկատվության ռեգիստր Անվանակատուրային գներ ՀԾ վերջին գների նկարը
ԱՐԴՅՈՒՆՔՆԵՐ
ՄԱՔՍԻՄՈՒՄ (գին)
ԿՈՂՄԻՑ
TypeNomenclature

ՈՒՆԵՑՈՂ

Այս օպերատորը նման է WHERE օպերատորին, բայց օգտագործվում է միայն ագրեգատ ֆունկցիաների համար։ Մնացած դաշտերը, բացառությամբ այս օպերատորի կողմից օգտագործվող դաշտերի, պետք է խմբավորվեն: WHERE օպերատորը կիրառելի չէ ագրեգատ գործառույթների համար:

Ստորև բերված օրինակում ապրանքի առավելագույն գները ընտրվում են, եթե դրանք գերազանցում են 1000-ը՝ խմբավորված ըստ ապրանքի տեսակի:

ԸՆՏՐԵԼ

MAX (Գին. Գին) AS Price
ԻՑ
Տեղեկատվության ռեգիստր Անվանակատուրային գներ ՀԾ վերջին գների նկարը
ԽՈՒՄԲ ԸՍՏ
Գներ.Անվանակատուրա.Անվանացանկի տեսակը
ՈՒՆԵՑՈՂ
ՄԱՔՍԻՄՈՒՄ (Գներ. Գին) > 1000

ԴԱՍԱՎՈՐԵԼ ԸՍՏ

ORDER BY օպերատորը տեսակավորում է հարցման արդյունքը: Ապահովելու համար, որ գրառումները ցուցադրվում են հետևողական հերթականությամբ, օգտագործվում է AUTO ORDER: Պարզունակ տեսակները դասակարգվում են ըստ սովորական կանոնների։ Հղումների տեսակները դասավորված են ըստ GUID-ի:

Աշխատակիցների անուններով տեսակավորված ցուցակ ստանալու օրինակ.

ԸՆՏՐԵԼ
Employees.Name AS Անուն
ԻՑ
Directory.Employees HOW Employees
ԴԱՍԱՎՈՐԵԼ ԸՍՏ
Անուն
ԱՎՏՈՊԱՏՎԵՐ

1C հարցումների լեզվի այլ կառուցվածքներ

  • ՄԻԱՎՈՐԵԼ- երկու հարցումների արդյունքները մեկում:
  • ՄԻԱՎՈՐԵԼ ԱՄԵՆ ԻՆՉ– նման է COMBINE-ին, բայց առանց նույնական տողերի խմբավորման:
  • ԴԱՏԱՐԿ ՍԵՂԱՆ– երբեմն օգտագործվում է հարցումները միացնելիս դատարկ ներդիր աղյուսակը նշելու համար:
  • ՏԵՂ– ստեղծում է ժամանակավոր աղյուսակ՝ բարդ 1C հարցումները օպտիմալացնելու համար: Նման հարցումները կոչվում են խմբաքանակի հարցումներ:

Հարցման լեզվի առանձնահատկությունները

  • ԵՆԹԱԴՐՈՒՄկտրում է տողը սահմանված դիրքից մինչև նշված թվով նիշ:
  • ՏԱՐԻ...ԵՐԿՐՈՐԴթույլ է տալիս ստանալ թվային տիպի ընտրված արժեքը: Մուտքի պարամետրը ամսաթիվն է:
  • ԺԱՄԱՆԱԿԻ ՍԿԶԲԸ և ԺԱՄԱՆԱԿԻ ԱՎԱՐՏԸօգտագործվում է ամսաթվերի հետ աշխատելիս: Որպես լրացուցիչ պարամետր նշվում է ժամանակաշրջանի տեսակը (ՕՐ, ԱՄԻՍ, ՏԱՐԻ և այլն):
  • ADDKDATEթույլ է տալիս ամսաթվից ավելացնել կամ հանել որոշակի տեսակի որոշակի ժամ (երկրորդ, րոպե, օր և այլն):
  • ՏԱՐԲԵՐՎԵԼորոշում է երկու ամսաթվերի տարբերությունը՝ նշելով ելքային արժեքի տեսակը (ՕՐ, ՏԱՐԻ, ԱՄԻՍ և այլն):
  • ISNULLփոխարինում է բաց թողնված արժեքը նշված արտահայտությամբ:
  • ՆԵՐԿԱՅԱՑՈՒՑՉՈՒԹՅՈՒՆ և ՆԵՐԿԱՅԱՑՈՒՑՄԱՆ ՀՂՈՒՄՆԵՐստանալ նշված դաշտի տողային ներկայացում: Կիրառեք համապատասխանաբար ցանկացած արժեքների և միայն հղման արժեքների վրա:
  • ՏԵՍԱԿ, ՏԵՍԱԿ ԱՐԺԵՔՆԵՐօգտագործվում են մուտքային պարամետրի տեսակը որոշելու համար:
  • ՀՂՈՒՄտրամաբանական համեմատական ​​օպերատոր է հատկանիշի արժեքի տեսակի համար:
  • EXPRESSօգտագործվում է արժեքը ցանկալի տեսակի փոխարկելու համար:
  • Ամսաթիվ ԺԱՄԱՆԱԿթվային արժեքներից ստանում է «Ամսաթիվ» տիպի արժեք (տարի, ամիս, օր, ժամ, րոպե, վայրկյան):
  • ԻՄԱՍՏՈՒԹՅՈՒՆ 1C հարցումով այն օգտագործվում է նախապես սահմանված արժեքները նշելու համար՝ տեղեկատուներ, թվարկումներ, բնութագրերի տեսակների պլաններ: Օգտագործման օրինակ. Որտեղ Legal Individual = Value (Enumeration. Legal Individual. Individual)«.

Հարցման ստեղծող

1C-ով հարցումներ ստեղծելու համար կա շատ հարմար ներկառուցված մեխանիզմ՝ հարցման դիզայներ: Այն պարունակում է հետևյալ հիմնական ներդիրները.

  • «Սեղաններ և դաշտեր» - պարունակում է այն դաշտերը, որոնք պետք է ընտրվեն և դրանց աղբյուրները:
  • «Միացումներ» - նկարագրում է ՄԻԱՑՄԱՆ կառուցվածքի պայմանները:
  • «Խմբավորում» - պարունակում է խմբավորման կառուցվածքների և դրանց հիման վրա ամփոփված դաշտերի նկարագրությունը:
  • «Պայմաններ» - պատասխանատու է հարցումի տվյալների ընտրության համար:
  • «Ընդլայնված»՝ հարցման լրացուցիչ պարամետրեր, ինչպիսիք են «SELECT» հրամանի հիմնաբառերը և այլն:
  • «Միացումներ/Անանուններ» - նշվում են աղյուսակների միացման հնարավորությունները և նշվում են անունները («ԻՆՉՊԵՍ» կառուցվածքը):
  • «Պատվերը» պատասխանատու է հարցումների արդյունքների տեսակավորման համար:
  • «Ընդամենը» - նման է «Խմբավորում» ներդիրին, բայց օգտագործվում է «TOTALS» կառուցվածքի համար:

Հարցման տեքստն ինքնին կարելի է դիտել՝ կտտացնելով ներքևի ձախ անկյունում գտնվող «Պահանջել» կոճակը: Այս ձևով այն կարելի է ուղղել ձեռքով կամ պատճենել:


Պահանջել կոնսոլ

Ձեռնարկությունների ռեժիմում հարցման արդյունքը արագ դիտելու կամ բարդ հարցումները վրիպազերծելու համար օգտագործեք: Այն պարունակում է հարցման տեքստը, սահմանում է պարամետրերը և ցուցադրում արդյունքը:

Դուք կարող եք ներբեռնել հարցման վահանակը ITS սկավառակի վրա կամ միջոցով:

1C 8-ի հարցումների լեզուն հայտնի «կառուցվածքային ծրագրավորման լեզվի» ​​պարզեցված անալոգն է (ինչպես այն ավելի հաճախ կոչվում է SQL): Բայց 1C-ում այն ​​օգտագործվում է միայն տվյալների ընթերցման համար, օբյեկտի տվյալների մոդելը օգտագործվում է տվյալները փոխելու համար:

Մեկ այլ հետաքրքիր տարբերություն ռուսերենի շարահյուսությունն է: Չնայած իրականում դուք կարող եք օգտագործել անգլալեզու կոնստրուկցիաներ:

Հարցման օրինակ.

ԸՆՏՐԵԼ
Բանկեր. Անունը,
Banks.CorrAccount
ԻՑ
Directory.Banks HOW Banks

Այս հարցումը թույլ կտա մեզ տեսնել տվյալների բազայում առկա բոլոր բանկերի անվանման և թղթակցային հաշվի մասին տեղեկատվություն:

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

Հարցման լեզվի կառուցվածքների նկարագրությունը

Հարցման կառուցվածքը

Տվյալներ ստանալու համար բավական է օգտագործել «SELECT» և «FROM» կոնստրուկցիաները: Ամենապարզ հարցումն այսպիսի տեսք ունի.

SELECT * FROM Directories.Nomenclature-ից

Որտեղ «*» նշանակում է աղյուսակի բոլոր դաշտերի ընտրություն, իսկ Directories.Nomenclature՝ տվյալների բազայի աղյուսակի անվանումը:

Դիտարկենք ավելի բարդ և ընդհանուր օրինակ.

ԸՆՏՐԵԼ
<ИмяПоля1>ԻՆՉՊԵՍ<ПредставлениеПоля1>,
Գումար (<ИмяПоля2>) ԻՆՉՊԵՍ<ПредставлениеПоля2>
ԻՑ
<ИмяТаблицы1>ԻՆՉՊԵՍ<ПредставлениеТаблицы1>
<ТипСоединения>ՄԻԱՑՈՒԹՅՈՒՆ<ИмяТаблицы2>ԻՆՉՊԵՍ<ПредставлениеТаблицы2>
ԿՈՂՄԻՑ<УсловиеСоединениеТаблиц>

ՈՐՏԵՂ
<УсловиеОтбораДанных>

ԽՈՒՄԲ ԸՍՏ
<ИмяПоля1>

ԴԱՍԱՎՈՐԵԼ ԸՍՏ
<ИмяПоля1>

ԱՐԴՅՈՒՆՔՆԵՐ
<ИмяПоля2>
ԿՈՂՄԻՑ
<ИмяПоля1>

Այս հարցումում մենք ընտրում ենք «FieldName1» և «FieldName1» դաշտերի տվյալները «TableName1» և «TableName» աղյուսակներից, «HOW» օպերատորի միջոցով դաշտերին հատկացնում ենք հոմանիշներ և միացնում դրանք որոշակի պայմանով «TableConnectionCondition»: »:

Ստացված տվյալներից «WHERE» «Տվյալների ընտրության պայմանից» ընտրում ենք միայն պայմանին համապատասխանող տվյալներ: Այնուհետև հարցումը խմբավորում ենք «Դաշտի անուն1» դաշտով, իսկ «Դաշտի անվանումը2» գումարում ենք: Դաշտի համար ստեղծում ենք հանրագումարներ: «Դաշտի անուն1» և վերջնական դաշտ՝ «Դաշտի անուն2»:

Վերջին քայլը հարցումը տեսակավորելն է՝ օգտագործելով ORDER BY կառուցվածքը:

Ընդհանուր նմուշներ

Դիտարկենք 1C 8.2 հարցումների լեզվի ընդհանուր կառուցվածքները:

ԱՌԱՋԻՆn

Օգտագործելով այս օպերատորը, դուք կարող եք ստանալ առաջին գրառումների n թիվը: Գրառումների հերթականությունը որոշվում է հարցման հերթականությամբ:

ԸՆՏՐԵՔ ԱՌԱՋԻՆ 100-ը
Բանկեր. Անունը,
Բանկեր Կոդը AS BIC
ԻՑ
Directory.Banks HOW Banks
ԴԱՍԱՎՈՐԵԼ ԸՍՏ
Բանկեր.Անուն

Հարցումը կստանա «Բանկեր» գրացուցակի առաջին 100 գրառումները՝ դասավորված այբբենական կարգով:

ԹՈՒՅԼԱՏՐՎԱԾ Է

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

Եթե ​​օգտատերը փորձի հարցման միջոցով կարդալ իր համար անհասանելի գրառումները, նա սխալի հաղորդագրություն կստանա: Դրանից խուսափելու համար դուք պետք է օգտագործեք «ԹՈՒՅԼԱՏՐՎԱԾ» կառուցվածքը, այսինքն՝ հարցումը կկարդա միայն այն գրառումները, որոնք թույլատրված են դրան:

ԸՆՏՐԵԼ թույլատրված է
Լրացուցիչ տեղեկատվության շտեմարան Հղում
ԻՑ
Directory.Repository of Additional Information

ՏԱՐԲԵՐ

«ՏԱՐԲԵՐ» օգտագործելը թույլ չի տա կրկնօրինակ տողերի մուտքը 1C հարցման արդյունք: Կրկնօրինակումը նշանակում է, որ բոլոր հարցումների դաշտերը համընկնում են:

ԸՆՏՐԵՔ ԱՌԱՋԻՆ 100-ը
Բանկեր. Անունը,
Բանկեր Կոդը AS BIC
ԻՑ
Directory.Banks HOW Banks

Դատարկ Աղյուսակ

Այս կոնստրուկցիան շատ հազվադեպ է օգտագործվում հարցումները միավորելու համար: Միանալիս գուցե անհրաժեշտ լինի աղյուսակներից մեկում նշել դատարկ ներդիր աղյուսակ: «EmptyTable» օպերատորը հենց դրա համար է:

Օրինակ 1C 8 օգնությունից.

ԸՆՏՐԵԼ Հղում.Համարը, ԴԱՏԱՐԿ ՍԵՂԱՆԱԿ.(Համար., Նյութ, Քանակ) ՈՐՊԵՍ կազմը
FROM Document.Expense Invoice-ից
ՄԻԱՎՈՐԵԼ ԱՄԵՆ ԻՆՉ
SELECT Link.Number, Content.(Line Number, Product, Quantity)
FROM Document.Invoice Document.Invoice.Composition.*

ISNULL

Շատ օգտակար հատկություն, որը թույլ է տալիս խուսափել բազմաթիվ սխալներից։ YesNULL()-ը թույլ է տալիս փոխարինել NULL արժեքը ցանկալիով: Շատ հաճախ օգտագործվում է միացված աղյուսակներում արժեքի առկայությունը ստուգելու համար, օրինակ.

ԸՆՏՐԵԼ
Անվանակարգի հղում,
IsNULL(Item Remaining.QuantityRemaining,0) AS QuantityRemaining
ԻՑ


Կարող է օգտագործվել այլ ձևերով: Օրինակ, եթե յուրաքանչյուր տողի համար հայտնի չէ, թե որ աղյուսակում կա արժեքը.

ISNULL (InvoiceReceived.Date, InvoiceIssued.Date)

HOW-ը օպերատոր է, որը թույլ է տալիս մեզ անուն (հոմանիշ) վերագրել աղյուսակին կամ դաշտին: Վերևում մենք տեսանք օգտագործման օրինակ:

Այս կոնստրուկցիաները շատ նման են. դրանք թույլ են տալիս ստանալ ցանկալի արժեքի լարային ներկայացում: Միակ տարբերությունն այն է, որ REPRESENTATION-ը ցանկացած արժեք փոխակերպում է լարային տիպի, մինչդեռ REPRESENTATIONREF-ը փոխակերպում է միայն հղման արժեքները: ՀԻՄՆԱԿԱՆ ՆԵՐԿԱՅԱՑՈՒՑՈՒՄԸ խորհուրդ է տրվում օգտագործել տվյալների կազմի համակարգի հարցումներում՝ օպտիմալացման համար, եթե, իհարկե, հղման տվյալների դաշտը նախատեսված չէ օգտագործել ընտրության մեջ:

ԸՆՏՐԵԼ
Դիտել (Հղում), //string, օրինակ՝ «Նախնական հաշվետվություն թիվ 123 10/10/2015 թ.
Դիտել (DeletionMark) AS DeleteMarkText, // string, «Այո» կամ «Ոչ»
Դիտել հղումները (DeletionMark) AS DeleteMarkBoolean //բուլյան, ճիշտ կամ սխալ
ԻՑ
Document.Advance Report

EXPRESS

Էքսպրեսը թույլ է տալիս դաշտի արժեքները փոխարկել ցանկալի տվյալների տեսակին: Դուք կարող եք փոխարկել արժեքը կամ պարզունակ տեսակի կամ հղման տեսակի:

Էքսպրեսը հղման տիպի համար օգտագործվում է պահանջվող տվյալների տեսակները սահմանափակելու համար բարդ տիպի դաշտերում, որոնք հաճախ օգտագործվում են համակարգի աշխատանքը օպտիմալացնելու համար: Օրինակ:

EXPRESS(TableCost.Subconto1 AS Directory.Cost Items).Գործունեության տեսակըՀարկային հաշվառման ծախսերի համար

Պարզունակ տիպերի համար այս ֆունկցիան հաճախ օգտագործվում է անսահմանափակ երկարությամբ դաշտերում նիշերի քանակը սահմանափակելու համար (այդպիսի դաշտերը չեն կարող համեմատվել): Սխալից խուսափելու համար» Համեմատության գործողության մեջ անվավեր պարամետրեր: Դուք չեք կարող համեմատել դաշտերը
անսահմանափակ երկարություն և անհամատեղելի տեսակների դաշտեր
«, դուք պետք է արտահայտեք նման դաշտերը հետևյալ կերպ.

EXPRESS (Մեկնաբանություն AS տող (150))

ՏԱՐԲԵՐՎԵԼ

Ստացեք 267 վիդեո դասեր 1C-ում անվճար.

1C հարցումում IS NULL օգտագործելու օրինակ.

ԸՆՏՐԵԼ
Հղ
ՁԱԽ ՄԻԱՑՈՒՄ RegisterAccumulations.ProductsIn Warehouses.Remaining AS Product Remaining
Software NomenclatureRef.Link = Sold GoodsCommitteesRemains.Nomenclature
ՈՐՏԵՂ ՉԻ ՄՆԱՑՎԱԾ ապրանքներ

Հարցման մեջ տվյալների տեսակը կարելի է որոշել՝ օգտագործելով TYPE() և VALUETYPE() ֆունկցիաները կամ օգտագործելով տրամաբանական REFERENCE օպերատորը: Երկու գործառույթները նման են.

Նախապես սահմանված արժեքներ

Բացի 1C հարցումների լեզվով հարցումներում անցած պարամետրեր օգտագործելուց, կարող եք օգտագործել նախապես սահմանված արժեքներ կամ . Օրինակ՝ փոխանցումներ, կանխորոշված ​​գրացուցակներ, հաշիվների գծապատկերներ և այլն: Դրա համար օգտագործվում է «Value()» կառուցվածքը:

Օգտագործման օրինակ.

WHERE Nomenclature.Type of Nomenclature = Value(Directory.Types of Nomenclature.Product)

WHERE Counterparties. Կոնտակտային տեղեկատվության տեսակը = Արժեք (Թվարկում. Կոնտակտային տեղեկատվության տեսակները. Հեռախոս)

WHERE Հաշվի մնացորդներ. Հաշվապահական Հաշիվ = Արժեք (Հաշիվների աղյուսակ. Շահույթ. Շահույթի կորուստ)

Միացումներ

Միացման 4 տեսակ կա. ՁԱԽ, ՃԻՇՏ, ԱՄԲՈՂՋԱԿԱՆ, ՆԵՐՔԻՆ.

ՁԱԽ և ԱՋ ՄԻԱՑՈՒՄ

Միացումներն օգտագործվում են երկու աղյուսակներ կապելու համար՝ հիմնված կոնկրետ պայմանի վրա: Հատկանիշը, երբ ՁԱԽ ՄԻԱՑԵԼայն է, որ մենք վերցնում ենք առաջին նշված աղյուսակն ամբողջությամբ և պայմանականորեն կապում երկրորդ աղյուսակը: Երկրորդ աղյուսակի այն դաշտերը, որոնք հնարավոր չէ կապել պայմանով, լրացվում են արժեքով ԴԱՏԱՐԿ.

Օրինակ:

Այն կվերադարձնի Կողմերի ամբողջ աղյուսակը և կլրացնի «Բանկ» դաշտը միայն այն վայրերում, որտեղ կբավարարվի «Counterparties.Name = Banks.Name» պայմանը: Եթե ​​պայմանը չկատարվի, Բանկի դաշտը կսահմանվի ԴԱՏԱՐԿ.

ԱՋԱԿԱՆ ՄԻԱՑՈՒՄ 1C լեզվովբացարձակապես նման ՁԱԽ կապ, բացառությամբ մեկ տարբերության՝ in ՄԻԱՑՄԱՆ ԻՐԱՎՈՒՆՔ«Հիմնական» աղյուսակը երկրորդն է, ոչ թե առաջինը։

ԼԻՎԱԾ ՄԻԱՑՈՒՄ

ԼԻՎԱԾ ՄԻԱՑՈՒՄձախից և աջից տարբերվում է նրանով, որ ցուցադրում է բոլոր գրառումները երկու աղյուսակներից և միացնում է միայն նրանց, որոնք կարող է միացնել ըստ պայմանի:

Օրինակ:

ԻՑ

ԼԻՎԱԾ ՄԻԱՑՈՒՄ
Directory.Banks HOW Banks

ԿՈՂՄԻՑ

Հարցման լեզուն ամբողջությամբ կվերադարձնի երկու աղյուսակները միայն այն դեպքում, եթե կատարվի գրառումներին միանալու պայմանը: Ի տարբերություն ձախ/աջ միացման, հնարավոր է, որ NULL-ը հայտնվի երկու դաշտում:

ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ

ՆԵՐՔԻՆ ՄԻԱՑՈՒՄլրիվից տարբերվում է նրանով, որ ցուցադրում է միայն այն գրառումները, որոնք կարող են միացվել տվյալ պայմանի համաձայն:

Օրինակ:

ԻՑ
տեղեկատու Կոնտերպայմաններ AS Հաճախորդներ

ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ
Directory.Banks HOW Banks

ԿՈՂՄԻՑ
Clients.Name = Banks.Name

Այս հարցումը կվերադարձնի միայն այն տողերը, որոնցում բանկը և կոնտրագենտը ունեն նույն անունը:

Ասոցիացիաներ

JOIN և JOIN ALL կոնստրուկցիաները միավորում են երկու արդյունք մեկում: Նրանք. Երկու կատարման արդյունքը «միաձուլվելու է» մեկի, ընդհանուրի։

Այսինքն, համակարգը աշխատում է ճիշտ այնպես, ինչպես սովորականները, միայն ժամանակավոր սեղանի համար:

Ինչպես օգտագործել INDEX BY-ը

Այնուամենայնիվ, պետք է հաշվի առնել մեկ կետ. Ժամանակավոր աղյուսակի վրա ինդեքս կառուցելը նույնպես ժամանակ է պահանջում ավարտելու համար: Ուստի նպատակահարմար է օգտագործել « » կոնստրուկցիան միայն այն դեպքում, եթե հաստատ հայտնի է, որ ժամանակավոր աղյուսակում կլինեն 1-2-ից ավելի գրառումներ։ Հակառակ դեպքում, ազդեցությունը կարող է լինել հակառակը. ինդեքսավորված դաշտերի կատարումը չի փոխհատուցում ինդեքսը կառուցելու համար պահանջվող ժամանակը:

ԸՆՏՐԵԼ
Արտարժույթի փոխարժեքներ Վերջին հատվածը Արժույթը AS արժույթ,
Արտարժույթի փոխարժեքներ Վերջին խաչմերուկ:
PUT արժույթի դրույքաչափեր
ԻՑ
Տեղեկատվական ռեգիստր.Արժույթի փոխարժեքներ.Վերջին հատված (&Ժամանակաշրջան,) AS արժույթի փոխարժեքներՎերջին հատված
ԻՆԴԵՔՍ ԸՍՏ
Արժույթ
;
ԸՆՏՐԵԼ
ԳներՆոմենկլատուրա.Անվանակատուրա,
ԳներԱնվանակարգեր.Գին,
ԳներԱնվանակարգեր.Արժույթ,
Արտարժույթի փոխարժեքներ
ԻՑ
Տեղեկատվական ռեգիստր.Անոմենկլատուրային գներ.Վերջին հատված(&Ժամանակաշրջան,
Անվանակարգ B (&Անվանակարգ) ԵՎ ԳինՏիպ = &ԳինՏիպ) AS PriceNomenclature
ՁԱԽ ՄԻԱՑԵՔ Արտարժույթի փոխարժեքները ՈՐՊԵՍ արժույթի փոխարժեքներ
Software PricesNomenclatures.Currency = Currency Rates.Currency

Խմբավորում

1C հարցումների լեզուն թույլ է տալիս օգտագործել հատուկ ագրեգատային գործառույթներ հարցման արդյունքները խմբավորելիս: Խմբավորումը կարող է օգտագործվել նաև առանց ագրեգատային ֆունկցիաների՝ կրկնօրինակները «վերացնելու» համար:

Գոյություն ունեն հետևյալ գործառույթները.

Գումարը, Քանակը, Տարբերների քանակը, Առավելագույն, Նվազագույն, Միջին:

Օրինակ #1:

ԸՆՏՐԵԼ
Ապրանքների և ծառայությունների վաճառք, ապրանքների անվանակարգ,
SUM(Sales of GoodsServicesGoods.Quantity) AS Քանակ,
SUM(Sales of GoodsServicesGoods.Amount) AS Amount
ԻՑ

ԽՈՒՄԲ ԸՍՏ
ապրանքների և ծառայությունների վաճառք Անվանակարգ

Հարցումը ստանում է ապրանքների հետ կապված բոլոր տողերը և ամփոփում դրանք ըստ քանակի և քանակի ըստ ապրանքների:

Օրինակ թիվ 2

ԸՆՏՐԵԼ
Banks.Code,
ՔԱՆԱԿՈՒԹՅՈՒՆ (ՏԱՐԲԵՐ ԲԱՆԿԵՐ. Հղում) ՈՐՊԵՍ կրկնօրինակների քանակ
ԻՑ
Directory.Banks HOW Banks
ԽՈՒՄԲ ԸՍՏ
Բանկեր.Կոդ

Այս օրինակը ցույց կտա BIC-ների ցանկը «Բանկեր» գրացուցակում և ցույց կտա, թե քանի կրկնօրինակ կա դրանցից յուրաքանչյուրի համար:

Արդյունքներ

Արդյունքները հիերարխիկ կառուցվածք ունեցող համակարգից տվյալներ ստանալու միջոց են: Ընդհանուր գործառույթները կարող են օգտագործվել ամփոփ դաշտերի համար, ինչպես խմբավորումների համար:

Արդյունքները գործնականում օգտագործելու ամենատարածված միջոցներից մեկը ապրանքների խմբաքանակի դուրսգրումն է:

ԸՆՏՐԵԼ




ԻՑ
Փաստաթուղթ Ապրանքների և ծառայությունների վաճառք Ապրանքներ ԻՆՉՊԵՍ ապրանքների և ծառայությունների ապրանքների վաճառք
ԴԱՍԱՎՈՐԵԼ ԸՍՏ

ԱՐԴՅՈՒՆՔՆԵՐ
SUM (Քանակ),
ԳՈՒՄԱՐ (Գումար)
ԿՈՂՄԻՑ
Անվանակարգ

Հարցման արդյունքը կլինի հետևյալ հիերարխիկությունը.

Ընդհանուր արդյունքներ

Եթե ​​Ձեզ անհրաժեշտ է գումարներ ստանալ բոլոր «տոտալների համար», օգտագործեք «GENERAL» օպերատորը:

ԸՆՏՐԵԼ
Ապրանքների և ծառայությունների վաճառք Ապրանքների անվանացանկ AS անվանակարգ,
Ապրանքների և ծառայությունների ապրանքների վաճառք: Հղում ՀԾ փաստաթուղթ,
Ապրանքների և ծառայությունների ապրանքների վաճառք Քանակը AS քանակ,
Ապրանքների և ծառայությունների ապրանքների վաճառք Գումարը AS Գումար
ԻՑ
Փաստաթուղթ Ապրանքների և ծառայությունների վաճառք Ապրանքներ ԻՆՉՊԵՍ ապրանքների և ծառայությունների ապրանքների վաճառք
ԴԱՍԱՎՈՐԵԼ ԸՍՏ
Ապրանքների և ծառայությունների ապրանքների վաճառք Հղում Ամսաթիվ
ԱՐԴՅՈՒՆՔՆԵՐ
SUM (Քանակ),
ԳՈՒՄԱՐ (Գումար)
ԿՈՂՄԻՑ
ՀԱՏՈՒԿ ԵՆ,
Անվանակարգ

Հարցման կատարման արդյունքում ստանում ենք հետևյալ արդյունքը.

Որում խմբավորման 1 մակարդակը բոլոր անհրաժեշտ դաշտերի համախմբումն է:

Կազմակերպում

ORDER BY օպերատորն օգտագործվում է հարցման արդյունքը տեսակավորելու համար:

Պարզունակ տեսակների (լարային, թվային, բուլյան) տեսակավորումը հետևում է սովորական կանոններին։ Հղման տիպի դաշտերի համար տեսակավորումը տեղի է ունենում հղման ներքին ներկայացմամբ (եզակի նույնացուցիչով), այլ ոչ թե կոդով կամ հղումային ներկայացմամբ:

ԸՆՏՐԵԼ

ԻՑ
Directory.Nomenclature AS Nomenclature
ԴԱՍԱՎՈՐԵԼ ԸՍՏ
Անուն

Հարցումը կցուցադրի անունների ցանկը նոմենկլատուրային գրացուցակում՝ դասավորված այբբենական կարգով:

Ավտոպատվեր

Առանց տեսակավորման հարցման արդյունքը տողերի քաոսային կերպով ներկայացված բազմություն է։ 1C պլատֆորմի մշակողները չեն երաշխավորում, որ նույնական հարցումները կատարելիս տողերը կարտադրվեն նույն հաջորդականությամբ:

Եթե ​​Ձեզ անհրաժեշտ է ցուցադրել աղյուսակի գրառումները մշտական ​​հերթականությամբ, դուք պետք է օգտագործեք Auto-Order կառուցվածքը:

ԸՆՏՐԵԼ
Անվանակարգ.Անուն AS Անուն
ԻՑ
Directory.Nomenclature AS Nomenclature
ԱՎՏՈՊԱՏՎԵՐ

Վիրտուալ սեղաններ

Վիրտուալ աղյուսակները 1C-ում 1C հարցումների լեզվի եզակի առանձնահատկությունն է, որը չի գտնվել նմանատիպ այլ շարահյուսություններում: Վիրտուալ աղյուսակը ռեգիստրներից պրոֆիլի տեղեկատվություն ստանալու արագ միջոց է:

Յուրաքանչյուր ռեգիստրի տեսակ ունի վիրտուալ աղյուսակների իր հավաքածուն, որոնք կարող են տարբերվել՝ կախված ռեգիստրի կարգավորումներից:

  • առաջինի կտրվածք;
  • վերջինիս կտրվածքը։
  • մնացորդներ;
  • հեղափոխություններ;
  • մնացորդներ և շրջանառություն:
  • շարժումներ ենթակոնտոյից;
  • հեղափոխություններ;
  • արագություն Dt Kt;
  • մնացորդներ;
  • մնացորդներ և շրջանառություն
  • ենթակոնտո.
  • հիմք;
  • գրաֆիկական տվյալներ;
  • վավերականության փաստացի ժամկետը.

Լուծումների մշակողի համար տվյալները վերցվում են մեկ (վիրտուալ) աղյուսակից, բայց իրականում 1C հարթակը վերցնում է բազմաթիվ աղյուսակներից՝ դրանք վերածելով պահանջվող ձևի։

ԸՆՏՐԵԼ
Ապրանքներ պահեստներում մնացորդներ և շրջանառություն Անվանակարգ,
Ապրանքներ Պահեստներում ՄնացածԵվ Շրջանառություն.Քանակ սկզբնական Մնացած,
Ապրանքներ Պահեստներում մնացորդներԵվ Շրջանառություն.Քանակ Շրջանառություն,
Ապրանքներ Պահեստներում մնացորդներ և Շրջանառություն.Քանակ Մուտքային,
Ապրանքներ Պահեստներում մնացորդներ և Շրջանառություն.Քանակ Սպառում,
Ապրանքներ Պահեստներում մնացորդներ և շրջանառություն.Քանակ Վերջնական Մնացած
ԻՑ
RegisterAccumulations.GoodsIn Warehouses.RemainsAndTurnover AS GoodsIn WarehousesRemainsAndTurnover

Այս հարցումը թույլ է տալիս արագ առբերել մեծ քանակությամբ տվյալներ:

Վիրտուալ սեղանի ընտրանքներ

Վիրտուալ աղյուսակների հետ աշխատելու շատ կարևոր կողմը պարամետրերի օգտագործումն է: Վիրտուալ աղյուսակի պարամետրերը մասնագիտացված պարամետրեր են ընտրության և կազմաձևման համար:

Նման աղյուսակների համար սխալ է համարվում «WHERE» կառուցման մեջ ընտրություն օգտագործելը: Բացի այն, որ հարցումը դառնում է ոչ օպտիմալ, հնարավոր է սխալ տվյալներ ստանալ։

Այս պարամետրերի օգտագործման օրինակ.

Կուտակումների գրանցամատյան: Ապրանքներ պահեստներում, մնացորդներ և շրջանառություններ (& ժամանակաշրջանի սկիզբ և ժամանակաշրջանի ավարտ, ամիս, տեղաշարժեր և սահմաններ, անվանացանկ = & պարտադիր անվանացանկ)

Վիրտուալ աղյուսակների ալգորիթմ

Օրինակ, «մնացորդներ» տեսակի ամենաշատ օգտագործվող վիրտուալ աղյուսակը պահում է երկու ֆիզիկական աղյուսակների տվյալները՝ մնացորդները և շարժումները:

Վիրտուալ աղյուսակ օգտագործելիս համակարգը կատարում է հետևյալ մանիպուլյացիաները.

  1. Մենք ստանում ենք ամենամոտ հաշվարկված արժեքը ամսաթվի և չափումների առումով ընդհանուր աղյուսակում:
  2. Շարժման աղյուսակից գումարը «ավելացնում ենք» գումարների աղյուսակից ստացված գումարին:


Նման պարզ գործողությունները կարող են զգալիորեն բարելավել համակարգի աշխատանքը որպես ամբողջություն:

Օգտագործելով Query Builder-ը

Հարցման ստեղծող– 1C Enterprise համակարգում ներկառուցված գործիք, որը մեծապես նպաստում է տվյալների բազայի հարցումների մշակմանը:

Հարցման ստեղծողն ունի բավականին պարզ, ինտուիտիվ ինտերֆեյս: Այնուամենայնիվ, եկեք ավելի մանրամասն նայենք հարցման կոնստրուկտորի օգտագործմանը:

Հարցման տեքստի կոնստրուկտորը գործարկվում է համատեքստի ընտրացանկից (մկնիկի աջ կոճակը) ծրագրի կոդի ցանկալի տեղում:

1C հարցումների կոնստրուկտորի նկարագրությունը

Եկեք ավելի մանրամասն նայենք դիզայների յուրաքանչյուր ներդիրին: Բացառություն է Builder ներդիրը, որը այլ քննարկման թեմա է։

Աղյուսակներ և դաշտեր ներդիր

Այս ներդիրը նշում է տվյալների աղբյուրը և դաշտերը, որոնք պետք է ցուցադրվեն զեկույցում: Ըստ էության այստեղ նկարագրված են SELECT.. FROM կոնստրուկցիաները:

Աղբյուրը կարող է լինել տվյալների բազայի ֆիզիկական աղյուսակը, վիրտուալ ռեգիստրի աղյուսակը, ժամանակավոր աղյուսակները, տեղադրված հարցումները և այլն:

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

Միացումների ներդիր

Ներդիրն օգտագործվում է մի քանի աղյուսակների միացումներ նկարագրելու համար և ստեղծում է կոնստրուկցիաներ ԿԱՊ բառով:

Խմբավորման ներդիր

Այս ներդիրում համակարգը թույլ է տալիս խմբավորել և ամփոփել աղյուսակի արդյունքի պահանջվող դաշտերը: Նկարագրում է կոնստրուկցիաների օգտագործումը ԽՄԲ ԸՍՏ, ԳՈՒՄԱՐ, ՆՎԱԶԱԳՈՒՅՆ, ՄԻՋԻՆ, ՄԱՔՍԻՄՈՒՄ, ՔԱՆԱԿ, ՏԱՐԲԵՐ ԹԻՎ:

Պայմանների ներդիր

Պատասխանատու է այն ամենի համար, ինչ գալիս է հարցման տեքստում WHERE կառուցումից հետո, այսինքն՝ ստացված տվյալների վրա դրված բոլոր պայմանների համար:

Ընդլայնված ներդիր

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

Խմբավորում Գրառումների ընտրություն:

  • Նախ Ն– պարամետր, որը վերադարձնում է հարցմանը միայն N գրառումներ (ԱՌԱՋԻՆ օպերատոր)
  • Կրկնօրինակներ չկան– ապահովում է ստացված գրառումների եզակիությունը (ՏԱՐԲԵՐ օպերատոր)
  • Թույլատրված է– թույլ է տալիս ընտրել միայն այն գրառումները, որոնք համակարգը թույլ է տալիս ընտրել՝ հաշվի առնելով (ԹՈՒՅԼԱՏՐՎԱԾ շինարարություն)

Խմբավորում Հարցման տեսակըորոշում է, թե ինչպիսի հարցում է լինելու՝ տվյալների որոնում, ժամանակավոր աղյուսակի ստեղծում կամ ժամանակավոր աղյուսակի ոչնչացում:

Ներքևում դրոշն է Կողպեք ստացված տվյալները հետագա փոփոխության համար. Այն թույլ է տալիս միացնել տվյալների կողպումը սահմանելու հնարավորությունը, որն ապահովում է տվյալների անվտանգությունը կարդալու պահից մինչև այն փոխելը (համապատասխան է միայն Ավտոմատ կողպման ռեժիմի համար, դիզայն ՓՈՓՈԽՈՒԹՅԱՆ ՀԱՄԱՐ):

Միացումներ/Փոխանունների ներդիր

Հարցման դիզայների այս ներդիրում դուք կարող եք սահմանել տարբեր աղյուսակներ և փոխանուններ միացնելու հնարավորությունը (HOW կառուցվածքը): Աղյուսակները նշված են ձախ կողմում: Եթե ​​դրոշակները դրեք սեղանի դիմաց, ապա կօգտագործվի UNITE կոնստրուկցիան, հակառակ դեպքում՝ ՄԻԱՎՈՐԵԼ ԲՈԼՈՐԸ (տարբերությունները երկու մեթոդների միջև): Աջ կողմում նշվում է տարբեր աղյուսակների դաշտերի համապատասխանությունը, եթե համապատասխանությունը նշված չէ, հարցումը կվերադարձնի NULL:

Պատվերի ներդիր

Սա սահմանում է արժեքների դասակարգման հերթականությունը (ORDER BY)՝ նվազող (DESC) կամ աճող (ASC):

Կա նաև մի հետաքրքիր դրոշ. Ավտոպատվեր(խնդրանքում - ԱՎՏՈՊԱՏՎԵՐՈՒՄ): Լռելյայնորեն, 1C համակարգը ցուցադրում է տվյալները «քաոսային» կարգով: Եթե ​​դուք սահմանեք այս դրոշը, համակարգը կտեսակավորի տվյալները ըստ ներքին տվյալների:

Հարցման խմբաքանակի ներդիր

Հարցման դիզայներ ներդիրում կարող եք ստեղծել նորերը, ինչպես նաև օգտագործել այն որպես նավիգացիա: Հարցման տեքստում փաթեթները բաժանվում են «;» (ստորակետ) նշանով:

«Հարցում» կոճակը հարցումների դիզայներում

Հարցման դիզայների ներքևի ձախ անկյունում կա Request կոճակ, որով ցանկացած պահի կարող եք դիտել հարցման տեքստը.

Այս պատուհանում կարող եք ճշգրտումներ կատարել հարցումին և կատարել այն:


Օգտագործելով Query Console-ը

Query Console-ը բարդ հարցումները վրիպազերծելու և տեղեկատվություն արագ ստանալու պարզ և հարմար միջոց է: Այս հոդվածում ես կփորձեմ նկարագրել, թե ինչպես օգտագործել Query Console-ը և տրամադրել հղում՝ Query Console-ը ներբեռնելու համար:

Եկեք ավելի սերտ նայենք այս գործիքին:

Ներբեռնեք 1C հարցումների վահանակը

Նախ, հարցման վահանակի հետ աշխատելու համար անհրաժեշտ է այն ինչ-որ տեղից ներբեռնել։ Բուժումները սովորաբար բաժանվում են երկու տեսակի՝ վերահսկվող ձևերի և սովորական (կամ, երբեմն, դրանք կոչվում են 8.1 և 8.2/8.3):

Ես փորձեցի համատեղել այս երկու տեսակետները մեկ մշակման մեջ. ցանկալի ձևը բացվում է ցանկալի աշխատանքային ռեժիմում (կառավարվող ռեժիմում վահանակն աշխատում է միայն հաստ ռեժիմում):

1C հարցման վահանակի նկարագրությունը

Եկեք սկսենք դիտարկել հարցման վահանակը հիմնական մշակման վահանակի նկարագրությամբ.

Հարցման կոնսոլի վերնագրում դուք կարող եք տեսնել վերջին հարցման կատարման ժամանակը միլիվայրկյան ճշգրտությամբ, սա թույլ է տալիս համեմատել տարբեր ձևավորումներ կատարողականի առումով:

Հրամանի տողում գտնվող կոճակների առաջին խումբը պատասխանատու է ընթացիկ հարցումները արտաքին ֆայլում պահելու համար: Սա շատ հարմար է, դուք միշտ կարող եք վերադառնալ բարդ հարցում գրելուն: Կամ, օրինակ, պահեք որոշակի նմուշների բնորոշ օրինակների ցանկը:

Ձախ կողմում, «Հարցում» դաշտում կարող եք ստեղծել նոր հարցումներ և պահպանել դրանք ծառի կառուցվածքում: Կոճակների երկրորդ խումբը պատասխանատու է հարցումների ցանկի կառավարման համար: Օգտագործելով այն կարող եք ստեղծել, պատճենել, ջնջել, տեղափոխել հարցում:

  • Կատարելխնդրանք- պարզ կատարում և արդյունքներ
  • Գործարկել փաթեթը– թույլ է տալիս դիտել բոլոր միջանկյալ հարցումները հարցումների խմբաքանակով
  • Ժամանակավոր աղյուսակների դիտում– թույլ է տալիս տեսնել աղյուսակի վրա ժամանակավոր հարցումների վերադարձի արդյունքները

Հարցման պարամետրեր.

Թույլ է տալիս սահմանել ընթացիկ պարամետրերը հարցման համար:

Հարցման պարամետրերի պատուհանում հետաքրքիր է հետևյալը.

  • Կոճակ Ստացեք հարցումիցավտոմատ կերպով գտնում է բոլոր պարամետրերը ծրագրավորողի հարմարության խնդրանքում:
  • Դրոշ Ընդհանուր պարամետրեր բոլոր հարցումների համար– երբ տեղադրվում է, դրա մշակումը չի մաքրում պարամետրերը հարցումների ընդհանուր ցանկում հարցումից հարցում անցնելիս:

Սահմանեք պարամետր արժեքների ցանկովԴա շատ պարզ է, պարզապես պարամետրի արժեք ընտրելիս սեղմեք մաքրել արժեքի կոճակը (խաչ), համակարգը կհուշի ձեզ ընտրել տվյալների տեսակը, որտեղ պետք է ընտրել «Արժեքների ցանկ».

Նաև վերին վահանակում կա հարցման վահանակի կարգավորումները կանչելու կոճակ.

Այստեղ դուք կարող եք նշել պարամետրերը ավտոմատ պահպանման հարցումների և հարցումների կատարման պարամետրերի համար:

Հարցման տեքստը մուտքագրվում է վահանակի հարցման դաշտում: Դա կարելի է անել՝ պարզապես մուտքագրելով հարցման թեստ կամ զանգահարելով հատուկ գործիք՝ հարցման դիզայներ:

1C 8 հարցումների դիզայները կանչվում է համատեքստի ընտրացանկից (մկնիկի աջ կոճակը), երբ սեղմում եք մուտքագրման դաշտը.

Այս ընտրացանկը ունի նաև այնպիսի օգտակար գործառույթներ, ինչպիսիք են հարցմանը գծերի ընդմիջումները («|») մաքրելը կամ ավելացնելը կամ այս հարմար ձևով հարցման կոդը ստանալը.

Request = Նոր հարցում;
Request.Text = ”
|ԸՆՏՐԵԼ
| Արժույթներ.Հղում
|ԻՑ
| Directory.Currencies AS Currency»;
RequestResult = Request.Execute();

Հարցման վահանակի ստորին դաշտը ցուցադրում է հարցման արդյունքի դաշտը, ինչի պատճառով ստեղծվել է այս մշակումը.



Նաև հարցման վահանակը, բացի ցուցակից, կարող է տվյալները ցուցադրել ծառի տեսքով՝ ընդհանուր գումարներ պարունակող հարցումների համար:

Հարցման օպտիմալացում

1C ձեռնարկության 8.3 արտադրողականության բարձրացման կարևորագույն կետերից է օպտիմալացումհարցումներ. Այս կետը նույնպես շատ կարևոր է, երբ սերտիֆիկացում անցնելը. Ստորև մենք կխոսենք հարցման ոչ օպտիմալ կատարման և օպտիմալացման մեթոդների բնորոշ պատճառների մասին:

Ընտրություններ վիրտուալ աղյուսակում՝ օգտագործելով WHERE կառուցվածքը

Վիրտուալ սեղանի մանրամասներին անհրաժեշտ է զտիչներ կիրառել միայն VT պարամետրերի միջոցով: Ոչ մի դեպքում չպետք է օգտագործեք WHERE կոնստրուկցիան վիրտուալ աղյուսակում ընտրության համար, սա լուրջ սխալ է օպտիմալացման տեսանկյունից: WHERE-ի միջոցով ընտրելու դեպքում, փաստորեն, համակարգը կստանա ԲՈԼՈՐ գրառումները և միայն դրանից հետո կընտրի անհրաժեշտները։

ՃԻՇՏ:

ԸՆՏՐԵԼ

ԻՑ
Կուտակումների ռեգիստր, կազմակերպությունների մասնակիցների հետ փոխադարձ հաշվարկներ, մնացորդներ (
,
Կազմակերպություն = &Կազմակերպություն
AND Individual = &Individual) ԻՆՉՊԵՍ Փոխադարձ հաշվարկներ կազմակերպությունների մասնակիցների հետ մնացորդներ

ՍԽԱԼ:

ԸՆՏՐԵԼ
Կազմակերպությունների մասնակիցների հետ փոխադարձ հաշվարկներ Գումարների մնացորդներ
ԻՑ
Կուտակումների գրանցամատյան Փոխադարձ հաշվարկներ կազմակերպությունների մասնակիցների հետ Մնացորդներ (,) ԻՆՉՊԵՍ Փոխադարձ հաշվարկներ կազմակերպությունների մասնակիցների հետ Մնացորդներ
ՈՐՏԵՂ
Փոխադարձ հաշվարկներ կազմակերպությունների մասնակիցների մնացորդների հետ Կազմակերպություն = & Կազմակերպություն
ԵՎ փոխադարձ հաշվարկներ կազմակերպությունների մասնակիցների հետ Մնացորդներ Անհատական ​​= &Անհատական

Ստանալով բարդ տիպի դաշտի արժեքը՝ օգտագործելով կետը

Հարցման մեջ բարդ տիպի տվյալներ կետի միջոցով ստանալիս, համակարգը միանում է ձախ միացմամբ ճիշտ այնքան աղյուսակների, որքան հնարավոր է բարդ տեսակի դաշտում:

Օրինակ, օպտիմալացման համար խիստ անցանկալի է մուտք գործել ռեգիստրի գրանցման դաշտ՝ ռեգիստրատոր: Գրանցողն ունի տվյալների կոմպոզիտային տեսակ, որոնց թվում կան բոլոր հնարավոր փաստաթղթերի տեսակները, որոնք կարող են տվյալներ գրել ռեգիստրում:

ՍԽԱԼ:

ԸՆՏՐԵԼ
Ձայնագրման հավաքածու. Գրանցիչ. Ամսաթիվ,
RecordSet.Quantity
ԻՑ
RegisterAccumulations.ProductsOrganizations AS SetRecords

Այսինքն, իրականում, նման հարցումը մուտք կունենա ոչ թե մեկ աղյուսակ, այլ տվյալների բազայի 22 աղյուսակ (այս ռեգիստրն ունի 21 գրանցող տեսակ):

ՃԻՇՏ:

ԸՆՏՐԵԼ
ԸՆՏՐՈՒԹՅՈՒՆ
WHEN ProductsOrg.Registrar LINK Document.Sales of Products and Services
ՀԵՏԵ EXPRESS (ProductsOrganization.Registrar AS Document.Sales of Goodsservice). Ամսաթիվ
WHEN GoodsOrg.Registrar LINK Փաստաթուղթ.Ապրանքների ծառայությունների ստացում
ՀԵՏԵՎ ԱՐՏԱՀԱՅՏԵՔ (GoodsOrg.Registrar AS Document.Goodsservices-ի ստացում) Ամսաթիվ
ԱՎԱՐՏԻ ՈՐՊԵՍ ԱՄՍՎԱԾ,
ProductsOrg.Quantity
ԻՑ
RegisterAccumulations.GoodsOrganizations AS GoodsOrganization

Կամ երկրորդ տարբերակը մանրամասներին նման տեղեկատվություն ավելացնելն է, օրինակ, մեր դեպքում ամսաթիվ ավելացնելը։

ՃԻՇՏ:

ԸՆՏՐԵԼ
ProductsOrganizations.Date,
ԱպրանքներԿազմակերպություններ.Քանակ
ԻՑ
Կուտակումների գրանցամատյան Կազմակերպությունների ապրանքներ AS Կազմակերպությունների ապրանքներ

Ենթագրերը միացված վիճակում

Օպտիմալացման համար անընդունելի է ենթհարցերի օգտագործումը միացման պայմաններում, ինչը զգալիորեն դանդաղեցնում է հարցումը: Նման դեպքերում նպատակահարմար է օգտագործել VT: Միացման համար անհրաժեշտ է օգտագործել միայն մետատվյալներ և VT օբյեկտներ՝ դրանք նախապես ինդեքսավորելով կապի դաշտերով:

ՍԽԱԼ:

ԸՆՏՐԵԼ…

ՄԻԱՑԵՔ (
Ընտրե՛ք RegisterInformation.Limits-ից
ՈՐՏԵՂ…
ԽՈՒՄԲԸ ԸՍՏ...
) ԿՈՂՄԻՑ…

ՃԻՇՏ:

ԸՆՏՐԵԼ…
PUT Սահմանափակումներ
FROM Information Register.Limits
ՈՐՏԵՂ…
ԽՈՒՄԲԸ ԸՍՏ...
ԻՆԴԵՔՍ ԸՍՏ...;

ԸՆՏՐԵԼ…
Փաստաթղթից Ապրանքների և ծառայությունների վաճառք
Ձախ միանալու սահմանները
ԿՈՂՄԻՑ…;

Գրառումների միացում վիրտուալ աղյուսակներով

Կան իրավիճակներ, երբ վիրտուալ աղյուսակը մյուսներին միացնելիս համակարգը օպտիմալ չի աշխատում: Այս դեպքում հարցման կատարումը օպտիմալացնելու համար կարող եք փորձել վիրտուալ աղյուսակը տեղադրել ժամանակավոր աղյուսակում՝ չմոռանալով ինդեքսավորել միացված դաշտերը ժամանակավոր աղյուսակի հարցում: Դա պայմանավորված է այն հանգամանքով, որ VT-ները հաճախ պարունակվում են մի քանի ֆիզիկական DBMS աղյուսակներում, արդյունքում, դրանք ընտրելու համար կազմվում է ենթահարկ, և խնդիրը պարզվում է, որ նման է նախորդ կետին:

Ընտրությունների օգտագործում՝ հիմնված չինդեքսավորված դաշտերի վրա

Հարցումներ գրելիս ամենատարածված սխալներից մեկը չինդեքսավորված դաշտերի պայմանների օգտագործումն է, ինչը հակասում է. հարցումների օպտիմալացման կանոններ. DBMS-ը չի կարող օպտիմալ կերպով կատարել հարցումը, եթե հարցումը ներառում է ընտրություն ոչ ինդեքսավորվող դաշտերում: Եթե ​​դուք վերցնում եք ժամանակավոր աղյուսակ, դուք նույնպես պետք է ինդեքսավորեք կապի դաշտերը:

Յուրաքանչյուր պայմանի համար պետք է լինի համապատասխան ցուցանիշ: Հարմար ինդեքսն այն ցուցանիշն է, որը բավարարում է հետևյալ պահանջները.

  1. Ցուցանիշը պարունակում է պայմանում նշված բոլոր դաշտերը:
  2. Այս դաշտերը գտնվում են ինդեքսի հենց սկզբում։
  3. Այս ընտրությունները հաջորդական են, այսինքն, արժեքները, որոնք ներգրավված չեն հարցման պայմանում, «սեպված» չեն նրանց միջև:

Եթե ​​DBMS-ը ճիշտ ինդեքսներ չընտրի, ամբողջ աղյուսակը կսկանավորվի, դա շատ բացասական ազդեցություն կունենա կատարողականի վրա և կարող է հանգեցնել գրառումների ամբողջ հավաքածուի երկարատև արգելափակման:

Օգտագործելով տրամաբանական ԿԱՄ պայմանները

Այսքանը, այս հոդվածը ընդգրկեց հարցումների օպտիմալացման հիմնական ասպեկտները, որոնք պետք է իմանա յուրաքանչյուր 1C փորձագետ:

Շատ օգտակար անվճար վիդեո դասընթաց հարցումների մշակման և օպտիմալացման վերաբերյալ, Ես խստորեն խորհուրդ եմ տալիսսկսնակների համար և ավելին:

Կլյուև Վ.Վ.

http://prof1c.kklab.ru

Ստեղծագործություն ևհարցումների հետ աշխատելը. Ամենապարզ գործողություններըսկսնակների համար(կանոնավոր դիմում)

Բարի օր

Այսօր ես ուզում եմ ձեզ պատմել, թե ինչպես սկսել աշխատել հարցումների հետ և սովորել (իհարկե աստիճանաբար) ինչպես աշխատել հարցումների հետ 1C-ում: Նրանց համար, ովքեր ծանոթ են MS հարցումներին
SQL-ն, իհարկե, շատ ավելի պարզ կլինի:

Այսպիսով, եկեք բացենք կոնֆիգուրատորը և ստեղծենք նոր արտաքին մշակում:

Որից հետո մենք կստանանք պատուհան մեր վերամշակմամբ: Եկեք ուղղակիորեն անցնենք հարցումների վերաբերյալ փորձերին, դրա համար մենք կստեղծենք նոր ձև մեր մշակման մեջ, և դրա համար ցուցակում (սպիտակ դաշտ) ընտրեք Ձևեր և կտտացրեք (+) Ավելացնել, համաձայնեք բոլոր առաջարկված լռելյայն ձևի պարամետրերին: , և սեղմեք արված:

Այսպիսով, մենք ձեզ համար ստեղծել ենք դատարկ ձև՝ կոճակներով և. Ձևով պատուհանում ընտրեք ներդիրները և ուղղակիորեն անցեք այն կոդը գրելուն, որը կկատարվի, երբ սեղմեք կատարման կոճակը: Դա անելու համար գտեք ButtonExecutePress(Button) ընթացակարգը:

և գրեք հետևյալ կոդը.

Procedure ButtonExecutePress(Button) Request = New Request() ; Հայց. Տեքստ = " ԸՆՏՐԵԼ | * | ԻՑ| Փաստաթուղթ . Գնորդին վճարման հաշիվ-ապրանքագիրԱրդյունք = Հարցում. Կատարել (). Բեռնաթափել (); Ընթացակարգի ավարտ

Եկեք մեկնաբանենք այն, ինչ գրել ենք այստեղ։ Մենք խնդրանքով ընտրել ենք «Գնորդին վճարման հաշիվ ապրանքագիր» բոլոր փաստաթղթերը: Անմիջապես կուզենայի նշել, որ կախված կոնֆիգուրացիայից, որում դուք փորձարկում եք, նայեք ձեր կազմաձևման փաստաթղթերի կազմին և իմ նշած «Գնորդին վճարման հաշիվ-ապրանքագրի» փոխարեն, փոխարինեք ցանկացած Փաստաթղթի օբյեկտ Ձեր կոնֆիգուրացիայի փաստաթղթերի ցանկը, ցանկալի է, որպեսզի այս տեսակի փաստաթղթերը ստեղծվեն տեղեկատվական բազայում, որպեսզի չստանաք հարցման դատարկ արդյունք: Ուզում եմ նաև նշել մի կարևոր կետ. եթե այդպիսի փաստաթղթերը չափազանց շատ են, ապա հարցման կատարումը կարող է որոշ ժամանակ տևել, քանի որ մենք հարցումը չենք սահմանափակում պայմաններով և ընտրում ենք բոլոր դաշտերը, որոնց աստղանիշը ( *) մեզ ասում է.

«Ընտրել» բանալի բառով մենք պատվիրում ենք մեր հարցումն ընտրել «Գնորդին վճարման հաշիվ» փաստաթղթից բոլոր դաշտերը (*) (փաստաթղթի մանրամասները):

Կարևոր է.
Կցանկանայի նաև նշել, որ հարցման լեզու գրելիս կոնֆիգուրացիայի օբյեկտները պետք է հասցեագրվեն եզակի, ոչ թե հոգնակի: Սրանում
դեպքում, Documents օբյեկտը կոնֆիգուրացիայի մեջ (Documents մասնաճյուղ) - հարցումը պարունակում է փաստաթուղթ: Նաև փաստաթղթերի կազմին` մենք անցնում ենք կետով (.) - և փաստաթղթի անվանումը:

Հարցման արդյունքը մենք ստանում ենք արժեքների աղյուսակի տեսքով, ինչի մասին վկայում է մեր օգտագործած մեթոդը (պարամետրը) - Վերբեռնում, այսինքն՝ նախ մենք կատարեցինք
հարցում (Գործարկել), և միայն դրանից հետո վերբեռնել հարցման արդյունքը արժեքների աղյուսակում, և արժեքների աղյուսակը գտնվում է Result փոփոխականում:

Այնուհետև մենք պահպանում ենք մեր մշակումը ֆայլում, դրա համար սեղմեք File->Save As և գրեք ֆայլի անունը, իմ մշակման համար ես դրել եմ «ExternalProcessing1Demo» անունը, որպեսզի երկար ժամանակ չփնտրեմ մշակումը, դուք կարող եք պահել այն աշխատասեղանին, այնուհետև մենք պետք է բացենք այն)):

Հիմա եկեք սովորենք մի փոքր կարգաբերման հիմունքներ: Դա անելու համար այժմ Արդյունք = ... տեքստի կողքին գտնվող դաշտում կրկնակի սեղմեք մկնիկի ձախ կոճակի վրա, որպեսզի կարմիր շրջանակ հայտնվի, դուք պետք է ստանաք հետևյալի պես մի բան.

Այսպիսով, մենք արդյունքով սահմանել ենք գծի ընդմիջման կետ, այժմ եկեք գործարկենք վրիպազերծման կոնֆիգուրացիան՝ սեղմելով ստեղնը (F 5) կամ կոճակը:
գործիքագոտու վրա.

Այժմ, մեր գործարկած 1C:Enterprise ռեժիմում, եկեք բացենք մեր պահպանված մշակման ֆայլը->Բացեք և գտնենք այն վայրը, որտեղ դուք պահել եք մշակվող ֆայլը, ընտրեք այն և սեղմեք բաց: Սեղմեք «Գործարկել» կոճակը մեր մշակման մեջ: Եթե ​​ամեն ինչ ճիշտ եք արել, դուք ավտոմատ կերպով կանցնեք կազմաձևողի ռեժիմին և կտեսնեք հետևյալը այն վայրում, որտեղ տեղադրվել է մեր ընդհատման կետը.

Մեր շրջանի վրա հայտնվեց սլաք. մենք անցանք մեր կոդի քայլ առ քայլ կատարմանը, այնուհետև կտեսնենք ամենահետաքրքիրը: Եթե ​​ամեն ինչ ճիշտ եք արել, այժմ կարող եք ստանալ խնդրանքի արդյունքը։

Հարցումը պատկերացնելու համար կատարեք հետևյալը. Կազմաձևողի վերևի ընտրացանկում գտեք վրիպազերծման ընտրացանկը և ընտրեք Tableau հրամանը:

Դատարկ պատուհան -> Tableau - կբացվի կոնֆիգուրատորի պատուհանի ներքևում: Այս պատուհանում դատարկ տողեր կան: Կրկնակի սեղմեք դատարկ ընդգծված տողի վրա և գրեք Result բառը: Դուք պետք է ստանաք հետևյալը.

Այսպիսով, մեր նշած պատուհանում մենք պետք է ստանանք մեր ծածկագրի կատարման արդյունքը, մասնավորապես, այժմ՝ «Արդյունք» փոփոխականը, քանի որ մենք դեռ չենք կատարել կոդի այս տողը, մենք ունենք դատարկ արժեք և փոփոխականի տվյալների տեսակը: «Չսահմանված» է:

Եկեք մի քայլ անենք՝ գործարկելու նշված կոդի տողը: Դա անելու համար սեղմեք ստեղնը կամ մենյուում Debug->Step through... (F 10):

Իսկ ի՞նչ ենք մենք տեսնում մեր աղյուսակում.

Մենք ձեզ հետ տեսնում ենք՝ փոփոխականի արժեքը և փոփոխականի տեսակը: Այժմ մենք կարող ենք նաև դիտել մեր արժեքների աղյուսակի բովանդակությունը, դա անելու համար մկնիկի կուրսորը տեղափոխեք արդյունքի դաշտ, աջ սեղմեք և ընտրեք «Ցույց տալ արժեքը առանձին պատուհանում»:

Մենք ստանում ենք պատուհան մեր ընտրած փաստաթղթերով, որոնք գտնվում են Result փոփոխականում

Ամփոփել:

Դուք սովորել եք, թե ինչպես ստեղծել պարզ հարցում, ինչպես նաև մասնակցել եք ձեր ծածկագրի վրիպազերծմանը և նույնիսկ նայեցիք մեր հարցման արդյունքին կոնֆիգուրատորում:

դիտումներ