1c iestatiet dinamiskā saraksta parametru. Ierobežojumi un funkcijas

Sākums Iesācējiem izstrādātājiem Mācās programmēt

Ir veidlapa, kurā ir dinamisks saraksts ar pielāgotu pieprasījumu. Kā instalēt, atverot veidlapu nepieciešamie parametrišajā pieprasījumā?

Viena no problēmām, kas rodas, atverot veidlapu, var būt tā, ka atvērtajā formā dinamiskajā sarakstā ir patvaļīgs vaicājums ar parametriem. Un, atverot šādu veidlapu, šim sarakstam ir jānodod konkrētas parametru vērtības.

Šī problēma tiek atrisināta, izveidojot papildu veidlapas parametrus, nododot tiem nepieciešamās vērtības un iestatot tos pieprasījuma parametriem formas notikumu apstrādātājā. Kad CreatedOnServer.

Pieņemsim, ka ir Preču cenu reģistrs. Šī reģistra saraksta forma satur dinamisku sarakstu ar patvaļīgu vaicājumu:

Izvēlēties biznesa preču reģistru Atļauja, transportlīdzekļu reģistrs Tovar, biznesa preču reģistrs. Centrs no reģistra Produkti kā biznesa preču reģistrs, kur transportlīdzekļu reģistrs ir = & preces un biznesa preču reģistrs Permiod> = & The Perioda sākums un ražošanas centrs.<= &КонецПериода

Kā redzams no pieprasījuma teksta, pieprasījumam ir trīs parametri: Produkts, Perioda sākums un Perioda beigas. Formas normālai darbībai, atverot veidlapu, jānorāda šo parametru vērtības, pretējā gadījumā veidlapas atvēršanas rezultātā tiks saņemta kļūda.

Lai formai nodotu savus parametrus, ieteicams tos izveidot veidlapu redaktorā.

Vispārīgi runājot, tas nav nepieciešams. Visi funkcijai OpenForm() nodotie parametri būs pieejami veidlapas notikumu apdarinātājā Kad CreatedOnServer. Bet joprojām ir labāk tos skaidri izveidot formā.

Tad, pirmkārt, veidlapas modulim nebūs jāpārbauda, ​​vai šādi parametri pastāv vai nav. Un, otrkārt, skaidra veidlapas parametru izveide atvieglo lietojumprogrammas risinājuma atbalstu tiem izstrādātājiem, kuri nepiedalījās tā izveidē.

Tātad izveidosim trīs parametrus informācijas reģistra saraksta formai: Perioda sākums, Perioda beigas (tips Datums) un Produkts (tips DirectoryLink.Produkti).

Tagad produktu kataloga elementa veidā izveidojiet komandu PricesInDecember ar šādu tekstu:

Veidlapas parametri = New Structure("Perioda sākums, Perioda beigas, Produkts", "20121201000000", "20121231235959", Object.Link); OpenForm("Informācijas reģistrs. Preču cenas. Form. List Form", Form Parameters);

Ar šo komandu mēs atveram informācijas reģistra saraksta formu un nododam tai trīs parametru vērtības.

Pašā informācijas reģistra veidlapā, veidlapā notikumu apstrādātājs Kad CreatedOnServer, iestatiet nodotās vērtības kā patvaļīga dinamiskā saraksta vaicājuma parametrus šādi:

&Servera procedūrā, kad izveidota serverī (kļūme, standarta apstrāde) List.Parameters.SetParameterValue("Perioda sākums", Parametri.Perioda sākums); List.Parameters.SetParameterValue("Perioda beigas", Parametri.Perioda beigas); List.Parameters.SetParameterValue("Produkts", Parametri.Produkts); Procedūras beigas

Papildus primitīviem datu tipiem, kurus var atrast jebkurā programmēšanas valodā, 1C ir arī unikāli veidi. Katrai no tām ir savas īpašības, metodes, funkcijas, mērķis un lietošanas nianses sistēmā. Viens no šiem veidiem ir dinamisks saraksts, kas ievērojami atvieglo daudzus lietišķos uzdevumus. Tāpēc izstrādātājiem ir jāzina un jāprot rīkoties ar šo universālo rīku.

Dinamisko sarakstu iezīmes 1C

Šī veida mērķis ir parādīt informāciju no jebkuras datu bāzes tabulām neatkarīgi no tās veida. Mehānisms tika izveidots, pamatojoties uz SKD, un tam ir līdzīgas iespējas. Bet tas nenozīmē, ka jums obligāti būs jāraksta pieprasījums 1C valodā, lai gan šī iespēja pastāv un ir jāizmanto. Jūs varat vienkārši norādīt tabulu, kuras informācija jūs interesē, un 1C neatkarīgi ģenerēs vienkāršu vaicājumu.

Lai redzētu, kā tiek veidots dinamiskais saraksts un kādi dati tajā tiek rādīti, konfiguratorā ir jāatver pārvaldītās formas, kur tas atrodas: detaļu sarakstā izmantojiet konteksta izvēlni, lai atvērtu tā rekvizītus un pievērsiet uzmanību “Pielāgots. Pieprasīt” vienumu. Ja izvēles rūtiņas nav, tad parametrs “Galvenā tabula” atspoguļo datu bāzes tabulu, no kuras tiek ņemti dati. Pretējā gadījumā dinamiskais saraksts atspoguļo pielāgota vaicājuma datus, kurus var redzēt, atverot saraksta iestatījumus.

Pielāgotā vaicājumu shēma tiek izmantota daudz biežāk, jo tā sniedz lielisku iespēju apvienot un parādīt visdažādākos datus. Visbiežāk šis mehānisms tiek izmantots, lai atspoguļotu noliktavas atlikumus, preču cenas, kvītis, izdevumus vai pirkumus. Izmantojiet to uzmanīgi, jo sarežģītu vaicājumu veiktspēja var samazināties.

Vēl viens noderīgs dinamiskā saraksta rekvizīts tiek atvērts, noklikšķinot uz uzraksta “Saraksta iestatījumi”. Šī izvēlne ļauj padarīt informāciju pieejamāku un saprotamāku galalietotājiem, pat izmantojot standarta lauku kopu. Neatkarīgi no tā, vai pieprasījums ir patvaļīgs vai nē, jūs redzēsit cilni “Iestatījumi”, kurā varēsit norādīt:

  • Dinamiskā saraksta izvēle;
  • Grupas;
  • Šķirošana;
  • Dekors.

Parametru izmantošana padara dinamiskos sarakstus universālus un diezgan elastīgus. Varat arī saistīt tos ar detalizētu informāciju pārvaldītajā veidlapā, un dati mainīsies atkarībā no lietotāja atlasītajiem parametriem. Šo mehānismu izmantošanu var saprast un novērtēt, apsverot reālās dzīves problēmu piemērus.

Kā piemēru apsveriet uzdevumu atspoguļot nomenklatūras paliekas kontrolētā formā. Reālajā praksē šādi pasūtījumi notiek diezgan bieži dažādās konfigurācijās, un dinamiskais saraksts ir ideāls kā rīks. Šim uzdevumam mums būs jāizmanto pielāgots vaicājums, dinamiskā saraksta parametri un tā iestatījumi.

Lielākai skaidrībai izveidosim atsevišķu ārējo apstrādi un ievietosim tajā dinamisku sarakstu. Lai īstenotu mūsu plānus, ar tabulu ar nomenklatūru nepietiks, tāpēc mums ir jāatļauj patvaļīgs vaicājums. Tajā mēs aprakstīsim direktorijas kreiso savienojumu ar preču sarakstu un atlikumu reģistru un iestatīsim direktoriju kā galveno tabulu. Šī shēma ļaus lietotājiem, kas strādā ar dinamisku sarakstu, pievienot vai mainīt vienumus.



SELECT NomenclatureList.Name AS Name, GoodsInWarehousesRemainings.Warehouse AS Warehouse, GoodsInWarehousesRemainings.CuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList LEFT JOIN RegisterAccumulations.Goods.WaremainingS. maining software NomenclatureList.Link = ProduktiNoliktavāsAtlikušais krājums.Nomenklatūra KUR

Tā kā mūsu pieprasījumā tika izmantots parametrs “CurrentDate”, mums ir jāiestata tā vērtība pirms apstrādes. Lai to izdarītu, veidlapas modulī procedūrā “When CreatedOnServer”, izmantojot standarta komandu, piešķiriet tai funkciju “CurrentSessionDate”. Mums arī ir jāparāda dinamiskais saraksts vadības veidlapā un skaidrības labad jāmaina lauku secība. Velciet atribūtu “Nomenclature Remaining” veidlapas elementos (augšējā kreisajā daļā) un izmantojiet zilās bultiņas, lai mainītu lauku secību veidlapas tabulā.

&Servera procedūrā, kad izveidota serverī (kļūme, standarta apstrāde) paliek nomenklatūra. Parametri. Iestatīt ParameterValue("CurrentDate", CurrentSessionDate()) beigu procedūra


Jau šajā posmā mēs varam atvērt ārējo apstrādi 1C un redzēt, ka dinamiskais saraksts darbojas. Mēs varam apskatīt atlikumus, izveidot vienumus un grupas un meklēt. Bieži klienti lūdz pievienot iespēju izvēlēties datumu, kurā viņi redzēs atlikumus. Veidlapas ar dinamisku sarakstu gadījumā tas tiek panākts, izmantojot papildu lauku un iestatot parametrus, izmantojot to.

Pievienojiet "Datuma" tipa atribūtu "DateRemaining" un pārsūtiet to uz veidlapas elementiem. Lauka notikumos mēs izveidojam notikumu “OnChange” un ierakstām kodu dinamiskajā pieprasījumā izmantotā parametra “CurrentDate” iestatīšanai. Lai, atverot veidlapu, lietotājs uzreiz saprastu, kurā datumā viņš redz atlikumus, veiksim nelielas izmaiņas procedūrā “When CreatedOnServer”.



&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)RemainingDate = CurrentSessionDate(); Vienums Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Procedūras beigas &Klienta procedūrā Remaining DateWhenChanged(Element)Nomenklatūra Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Procedūras beigas

Rezultātā mūsu dinamiskā saraksta veidlapa var atspoguļot atlikumus jebkurā datumā.

Mēs esam apsvēruši tikai nelielu daļu no šī rīku komplekta iespējām, taču ar to jau ir pietiekami, lai saprastu šāda veida dinamiskā saraksta ērtības. Līdzīgs mehānisms tiek izmantots daudziem uzdevumiem, taču tas visbiežāk sastopams tipiskās konfigurācijās pārvaldītajās formās:

  1. Atlase;
  2. Saraksti.

Lai saņemtu dinamisko sarakstu un tā pieprasījumu standarta pārvaldītās formās, izstrādātājam ir jāatver vajadzīgā forma konfiguratorā. Detalizētās informācijas sadaļā atrodiet informāciju ar datu tipu “DynamicList” (visbiežāk tas ir izcelts treknrakstā). Tās rekvizīti satur pieprasījuma tekstu, atlases un citus iestatījumus.

Drukāt (Ctrl+P)

Dinamiskais saraksts

1. Vispārīga informācija

Dinamiskais saraksts ir īpašs datu tips, kas ļauj veidlapā parādīt patvaļīgu informāciju no datu bāzes tabulām. Lai to izdarītu, jānorāda tabula, no kuras vēlaties parādīt datus, vai jāapraksta iegūtā atlase vaicājuma valodā.
Mehānisms ir balstīts uz datu kompozīcijas sistēmu un nodrošina saņemto datu kārtošanas, atlases, meklēšanas, grupēšanas un nosacītā formatēšanas iespējas. Šajā gadījumā datu avots ir pieprasījums, ko sistēma ģenerē automātiski (pamatojoties uz norādītajiem datiem), vai arī manuāli raksta izstrādātājs.

Rīsi. 1. Dinamiskā saraksta izveides iespējas

Veidojot veida formas atribūtus Dinamiskais saraksts izstrādātājs var izvēlēties divus veidus, kā veidot datu vaicājumu:
● Norādot galveno tabulu - šajā gadījumā jums vienkārši jānorāda tabula (Main table property), no kuras vēlaties saņemt datus, un sistēma automātiski ģenerēs datu vaicājumu (skatiet att. labo daļu). 1).
● Manuāla pieprasījuma ģenerēšana — šim nolūkam ir jāiestata rekvizīts Pielāgots pieprasījums (skat. 1. att. kreiso pusi). Pēc tam būs pieejama manuāla pieprasījuma ģenerēšana, lai iegūtu datus no informācijas bāzes.
Vaicājums var izgūt datus no vairākām tabulām, lai jūs varētu norādīt primāro tabulu. Tas ir paredzēts, lai dinamiskais saraksts varētu noteikt, kuri dati ir primārie un kuri sekundārie, kā arī pareizi atlasīt un parādīt informāciju, kā arī nodrošināt standarta komandas. Taču, ja vaicājumā nav iespējams noteikt galveno tabulu, tad to nevar norādīt, bet tad
dinamiskais saraksts nesniegs komandas, kas saistītas ar galveno tabulu. Turklāt šajā gadījumā (nenorādot galveno tabulu) ievērojami samazināsies datu iegūšanas efektivitāte pēc dinamiskā saraksta.
Lai uzlabotu veiktspēju, ir ieteicams visus savienojumus, kas tiek izmantoti pielāgotajā vaicājumā tikai papildu datu izgūšanai, padarīt neobligātus, izmantojot datu kompozīcijas sistēmas vaicājuma valodas paplašinājumu.
Dinamiskajam sarakstam, kas ir galvenais formas atribūts, atlases vērtības var iestatīt, izmantojot formas parametru Atlase. Lai to izdarītu, parametrā ir jānorāda struktūras rekvizīta nosaukums Atlase,
sakrita ar dinamiskā saraksta atlases lauka nosaukumu. Šajā gadījumā struktūras rekvizīta vērtība tiks iestatīta kā pareizā atlases elementa vērtība. Ja masīvs, fiksēts masīvs vai vērtību saraksts tiek nodots kā dinamiskā saraksta formas Atlases parametra elementa vērtība, tad atlasei tiek pievienots nosacījums ar opciju Sarakstā, pareizajā vērtībā. no kuriem tiek ievietots vērtību saraksts (kurā tiek pārveidots masīvs un fiksētais masīvs).
Patvaļīgs vaicājums dinamiskajā sarakstā var būt vaicājums, kurā parametrs tiek izmantots, lai ģenerētu lauka vērtību, piemēram:

IZVĒLIES
IZVĒLE
KAD Piegāde.Koeficients = 1 TAD &Prezentācija
CITĀDI Piegāde. Koeficients
END AS attiecība
NO

Turklāt, ja parametra vērtības veids atšķiras no objekta atribūta veida (piemēram, Rekvizīti1 ir tips Numurs, un parametra vērtība ir tips Līnija), pēc tam, lai pareizi parādītu lauku, jums ir skaidri jāievada parametra vērtība vajadzīgajā veidā:

IZVĒLIES
IZVĒLE
KAD Piegāde.Koeficients = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Piegāde. Koeficients
END AS attiecība
NO
Dokuments.Produktu piegāde KĀ piegādāt

Ja lauks, ar kuru tiek iestatīta atlase, ir atspējots, izmantojot funkcionālās opcijas, atlase pēc šāda lauka netiek instalēta pat tad, ja atlases vērtība tiek nodota kā veidlapas parametri vai atlases parametru saites.
Izmantojot rekvizītu Dinamiskā datu lasīšana, jūs norādāt dinamiskajam sarakstam, ka dati ir jālasa nelielās porcijās
(plašāku informāciju par veidiem, kā iegūt datus, izmantojot dinamisko sarakstu un datu saglabāšanu kešatmiņā, skatiet tālāk). Neatkarīgi no šī atribūta ir spēkā šādi nosacījumi:

● Ja skata režīms ir iestatīts uz hierarhisku sarakstu, tiks nolasīti tikai pašreizējās grupas dati un visu vecāku elementu dati (bez bērniem).
● Ja ir iestatīts koka skata režīms, tiks nolasīti tikai dati no atvērtiem koka mezgliem.
● Vienreizēja dinamiskā saraksta datu ielāde netiek atbalstīta, ja ir iestatīta hierarhiskā pārlūkošana (rekvizīts Displejs ir iestatīts uz Tree) un sākotnējais koka displejs ir iestatīts uz Izvērst visus līmeņus. Lai iegūtu datus, serverim tiks nosūtīts tik daudz pieprasījumu, cik mezglu ir parādītajā sarakstā.
Vienā datu izguves laikā dinamiskais saraksts atkārtoti izmanto iepriekš izveidotās pagaidu tabulas, ja ir izpildīti šādi nosacījumi:
● Saraksta pakešu vaicājumam pēc galvenā pakešu vaicājuma nav vaicājumu.
● Pagaidu tabulu un tajās esošo lauku sastāvs ir nemainīgs, salīdzinot ar iepriekšējo pakešu pieprasījuma izpildi.

Savā darbā dinamiskais saraksts izmanto šādu metadatu objektu detaļu īpašību vērtības:
● formāts,
● rediģēšanas formāts,
● mājiens,
● zīme negatīvu vērtību izcelšanai,
● maska,
● vairāku līniju režīma zīme,
● uzlabotas rediģēšanas zīme,
● paroles režīms.
Parādot un rediģējot datu kompozīcijas sistēmas atlasi un parametrus, tiek izmantots atbilstošā lauka rediģēšanas formāts.

2. Ierobežojumi un funkcijas

Iestatot atlasi dinamiskā sarakstā, atcerieties, ka atlase neietekmē grupas, ja dinamiskā saraksta displeja režīms ir Hierarhiskais saraksts vai Koks. Ar “grupām” mēs domājam raksturīgu tipu direktorija vai plāna elementu, kura rekvizīts ThisGroup ir iestatīts uz True.
Tiek piemērotas kvalifikācijas, ko dinamiskais saraksts automātiski piemēro standarta informācijai Īpašnieks, vecāks, datums, periods un šī grupa
izmantojot standarta datu kompozīcijas sistēmas rīkus. Atlasi, ko dinamisks saraksts automātiski piemēro atslēgu laukiem, var lietot gan ar standarta datu kompozīcijas sistēmas līdzekļiem, gan tieši pievienojot nosacījumus pieprasījuma tekstam. IN uz galvenās tabulas laukiem. Atlases pielietošanas rezultātā, izmantojot izkārtojuma rīkus, tās var pielietot gan ligzdotajos vaicājumos, gan virtuālo tabulu parametros.

Izstrādājot dinamiskos sarakstus, ieteicams visus dinamiskos sarakstus pārbaudīt ar pielāgotiem vaicājumiem. Verifikācijas procesa laikā jums jāpārliecinās, vai, ja saraksta vaicājumā ir ietverti ligzdotie vaicājumi vai virtuālās tabulas un tajos ir pieejami lauki ar aizstājvārdiem, kas atbilst standarta informācijas aizstājvārdiem Īpašnieks, Vecāks, Datums, Periods, Šī grupa vai atslēgas lauki. atlasi, tad šie lauki ir derīgi atbilst standarta informācijai, ar kuru atbilst viņu segvārds. Ja tas tā nav, jums vajadzētu mainīt pieprasījumu, lai tie atbilstu vai
segvārds bija cits.
Ja izvēlaties manuāli ģenerēt pieprasījumu, tam tiek noteikti daži ierobežojumi:
● FIRST priekšraksta izmantošana dinamiskā saraksta vaicājumā netiek atbalstīta. Ja nepieciešams izmantot atlasi, ko ierobežo ierakstu skaits dinamiskajā sarakstā, dinamiskā saraksta ģenerēšanas pieprasījums ir jāpārstrādā tā, lai pieprasījuma faktiskais saturs tiktu ievietots apakšvaicājumā un ierobežotu ierakstu skaitu. saņemts šajā apakšvaicājumā. Apakšvaicājuma vietā varat izmantot arī pagaidu tabulu.
● Atlase, kārtošana un grupēšana netiek atbalstīta:

  • Saskaņā ar tabulas daļu detaļām.
  • Skatīt laukus.
  • Lauks DataVersion.
  • Lauks PredefinedDataName.
  • Kontu plāna tabulas tipa lauks.
  • Uzkrāšanas reģistra tabulas lauks Kustības veids.
  • Lauka tips Raksturīgā tipa plāna tabulas vērtības.
  • Tipa lauks Tips;
  • Lauks tipa String (neierobežots garums).
  • BinaryData tipa lauks.

● Kārtošana un grupēšana pēc subkonto laukiem netiek atbalstīta<НомерСубконто>un ViewSubconto<НомерСубконто>Tabulas Kustības Grāmatvedības reģistra apakškonts.
● Grupēšana pēc laukiem, kas ir vaicājumu valodas izteiksmes, kas satur apkopotas funkcijas, netiek atbalstīta.
● Ja ir atlasīta galvenā tabula, dinamiskā saraksta vaicājumam ir šādi ierobežojumi:

  • Pievienošanās netiek atbalstīta.
  • Sadaļa PASŪTĪT PĒC netiek atbalstīta. Jums vajadzētu izmantot vaicājumu bez galvenās tabulas vai iestatīt nepieciešamo secību, izmantojot dinamiskā saraksta iestatījumus.

● Ja dinamiskais saraksts tiek parādīts kā hierarhisks saraksts vai koks, ieraksts netiks parādīts kā dinamisks saraksts, ja vien nav parādīts vismaz viens šī ieraksta vecāks. Citiem vārdiem sakot, lai parādītu hierarhiskā saraksta elementu, dinamiskajā sarakstā ir jāparāda arī visi šī elementa vecākie līdz saraksta augšai. Šajā gadījumā ar saraksta augšdaļu mēs domājam vai nu
hierarhiskā objekta saknes elements, ko parāda dinamisks saraksts, vai elements, kas iestatīts kā dinamiskā saraksta veidlapas tabulas paplašinājuma ParentTopLevel rekvizīts.

Tālāk norādīto tabulu izmantošana kā dinamiskā saraksta galvenā tabula netiek atbalstīta.

● Tabula, kurai nav atslēgas, kas unikāli identificē katru tabulas ierakstu (atsauce objektu tabulām un ieraksta atslēga reģistru tabulām). Tomēr šādas tabulas var iestatīt kā dinamiskā saraksta galveno tabulu (neskatoties uz to, ka tām nav atslēgas):

● Grāmatvedības reģistra subkonto tabula;
● visas grāmatvedības reģistra virtuālās tabulas, izņemot tabulu MovementsSubconto;
● konstantu vērtību tabulas (ieskaitot tabulu Konstantes);
● ārējo datu avotu tabulas bez atslēgas laukiem;
● ārējo datu avotu kubu tabulas;
● uzkrāšanas reģistru tabulas:

  • revolūcijas galds;
  • bilances galds;
  • apgrozījuma un atlikumu tabula.

● aprēķinu reģistru tabulas:

  • faktiskā derīguma termiņa tabula;
  • grafika dati;
  • pamatdati.

● Objektu tabulu daļu tabulas;
● Mainīt reģistrācijas tabulas (izmanto datu apmaiņas mehānismos);
● Secību tabulas;
● Konversijas tabulas (izmanto periodisko norēķinu mehānismos).
● Tabula, kas tiek izmantota vaicājumā tikai ārējā savienojumā.

Citiem vārdiem sakot, dinamiskais saraksts ar norādīto galveno tabulu darbosies pareizi, ja vaicājuma izpildes rezultātā
norādīts kā datu avots, no galvenās tabulas iegūto rindu skaits nepalielinās (ņemot vērā uzlikto atlasi). Ja vaicājuma izpildes rezultātā palielinās ar vaicājumu iegūto rindu skaits no galvenās tabulas, tas novedīs pie sarakstā parādītās tabulas ierakstu atslēgas unikalitātes pārkāpuma. Šādā gadījumā ir jāatspējo galvenās dinamiskā saraksta tabulas izmantošana.
Strādājot ar dinamisko sarakstu, jāņem vērā piekļuves tiesības sarakstā parādītajai informācijai:
● Dati no dinamiskā saraksta kolonnām, kas ir atzīmētas ar rekvizītu Vienmēr lietot, bet uz kurām pašreizējam lietotājam nav skatīšanas tiesību, netiek pārsūtīti uz klienta pusi. Piekļuve šādu kolonnu datiem (izmantojot rekvizītu CurrentData un metodi RowData())
nav iespējams no klienta puses.
● Ja pašreizējam lietotājam nav skatīšanas tiesības dinamiskā saraksta atslēgas laukā, datu izgūšana no šī dinamiskā saraksta rada piekļuves pārkāpuma kļūdu.
Dinamiskajam sarakstam, kas parāda uzskaitījumu sarakstu, nav iespējas interaktīvi pielāgot sarakstu.
Dinamiskā saraksta kolonnu sastāvs un iestatījumi ir saistīti ar vaicājuma laukiem, izmantojot atlases lauku aizstājvārdus. Ja vaicājumā atlases laukam aizstājvārds nav skaidri norādīts un lauks ir sistēmas lauks, kā aizstājvārds tiek izmantots iebūvētās valodas versijas angļu valodā.
Norādītā attiecība nozīmē, ka, mainot (vai skaidri norādot aizstājvārdu laukam, kuram tika izmantots automātiskais aizstājvārds)
vaicājuma lauka aizstājvārds, kas ģenerē dinamiskā saraksta datus, tiks zaudēti dinamiskā saraksta atribūtu iestatījumi, formas elementi “zaudēs” parādītās detaļas, dinamiskā saraksta iestatījumi kļūs nepareizi utt.
Ja dinamiskā saraksta datu avots ir tabula (parastā vai virtuālā), kas ļauj iestatīt atlasi pēc perioda, tad, ja lietotājs iestata attēlošanas periodu šādā dinamiskā sarakstā (komanda Iestatīt datuma intervālu...),
norādītās perioda robežas tiks iestatītas kā atlases vērtības vai virtuālās tabulas parametri. Ja ar valodas paplašinājuma palīdzību
vaicājumus datu kompozīcijas sistēmai, tika skaidri norādīti virtuālās tabulas parametru nosaukumi - parametri ar norādīto
vārdus. Tabulas, kurām iespējams kontrolēt datu parādīšanas vai apstrādes periodu:
● reģistru tabulas (galvenās vai virtuālās), kurām iespējams izvēlēties pēc perioda (aprēķinu reģistram - pēc reģistrācijas perioda);
● galvenās dokumentu, biznesa procesu un uzdevumu tabulas;
● dokumentu žurnālu galvenās tabulas;
● galveno secību tabulas, secību robežu tabulas.
Dinamiskā saraksta vaicājuma parametrs var būt masīvs vai vērtību saraksts. Taču, ja parametrs ir vērtību saraksts, kā atlases vērtība tiks izmantota tikai pirmā vērtība sarakstā. Ja dinamiskajā sarakstā tiek izmantots vaicājums ar parametriem, sākotnējā parametru vērtību iestatīšana jāveic OnCreateOnServer apdarinātājā.
Rādot dinamiskā saraksta datus, ņemiet vērā tālāk minētos punktus.
● Programmatiski mainot dinamiskā saraksta rekvizītus, ar sarakstu saistītie komandu paneļi netiek automātiski atkārtoti aizpildīti.
ar šo dinamisko sarakstu.
● Ja vairāki lauki ir sagrupēti grupā ar grupēšanas režīmu šūnā un grupētajos laukos ir lauks, kas tiek parādīts kā izvēles rūtiņa, šī izvēles rūtiņa vienmēr tiks parādīta vispirms iegūtajā šūnā (pa kreisi no teksts).
Dinamiskajā sarakstā, nosakot datu tipu laukiem, kuru izteiksmēs ir ietverti parametri, lauki vai literāļi, iegūtais veids tiek noteikts pēc lauku un literāļu veidiem. Ja parametra vērtības tips nav iekļauts iegūtajā datu tipā, tā vērtība tiks saīsināta.
Piemēram, nākamajā piemērā lauka tips būs Number.

IZVĒLE
KAD TAS IR MELI
TAD 5
CITĀDI
&Parametrs
BEIGAS

Ja parametram Parametrs iestatāt cita veida vērtību, šī lauka dinamiskais saraksts saņems vērtību 0 (noklusējuma vērtība numura veidam).
Ja šādā situācijā ir jāizvēlas cita veida parametrs, ieteicams izmantot vaicājuma valodas konstrukciju EXPRESS. Piemēram,
ja iepriekš minētajā piemērā parametrā ir jāievada virkne, kas nav garāka par 100 rakstzīmēm, tad vienkārši parametra norāde jāaizstāj ar izteiksmi ar precīza tipa cast:

IZVĒLE
KAD TAS IR MELI
TAD 5
CITĀDI
EXPRESS(¶metrs AS virkne(100))
BEIGAS

Ja dinamiskā saraksta pieprasījuma patvaļīgajā tekstā atlases lauku izteiksmēs tiek izmantoti parametri, jums ir skaidri jānorāda parametru veids, izmantojot konstrukciju EXPRESS. Piemēram, tā vietā &Nomenklatūra AS Nomenklatūra izmantot
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS Nomenklatūra. Pretējā gadījumā meklēšana, izmantojot meklēšanas joslu, var darboties
nepareizi vai radīt kļūdas.

3. Metodes datu izgūšanai un saglabāšanai kešatmiņā ar dinamisko sarakstu

Iegūstot attēlojamos datus, dinamiskajā sarakstā tiek izmantota viena no trim metodēm:
1. Nolasīšana no datu bāzes tiek veikta gabalos ar datu elementu skaitu, kas ir nedaudz lielāks par sarakstā vienlaikus parādīto rindu skaitu (bet ne mazāk kā 20). Dati netiek saglabāti servera kešatmiņā.
2. Nolasīšana no datu bāzes tiek veikta 1000 datu vienību lapās. Dati tiek saglabāti servera kešatmiņā. Hierarhiskie dati tiek saglabāti kešatmiņā: katram vecākam tiek saglabātas ne vairāk kā 2 elementu lapas. Vienā dinamiskajā sarakstā kešatmiņā tiek saglabātas ne vairāk kā 20 vienumu lapas. Kešatmiņas saglabāšana tiks iespējota, izmantojot dinamisku sarakstu šādām tabulām:
● Atlases kritēriji;
● Visas grāmatvedības reģistra tabulas, izņemot galveno tabulu un MovementsSubconto tabulu;
● Visas uzkrāšanas reģistra tabulas, izņemot galveno tabulu;
● Visas informācijas reģistra tabulas, izņemot galveno tabulu;
● Visas aprēķinu reģistra tabulas, izņemot galveno tabulu;
● Virtuālā uzdevumu tabula pēc izpildītāja;
● Ārējo avotu tabulas bez atslēgām;
● Kubi no ārējiem avotiem.

3. Nolasīšana no datu bāzes tiek veikta 1000 elementu lapās. Pirmā daļa ir vienāda ar 1 lapu. Katra nākamā daļa palielinās par 1 lappusi (kad ir sasniegts iepriekšējā parauga beigas). Jo tuvāk "skata punkts" virzās uz parādīto datu beigām, jo ​​lielāks paraugs tiek nolasīts no datu bāzes, galu galā kļūstot vienāds ar visiem parādītajiem datiem. Dati tiek saglabāti servera kešatmiņā. Maksimālais ierakstu skaits kešatmiņā un dinamiskajā sarakstā ir 1 000 000.
Atkarībā no tā, kas ir atlasīts dinamiskā saraksta galvenajā tabulā un kādu vērtību iegūst rekvizīts Dinamiskā lasīšana, tiek izmantota viena vai otra datu nolasīšanas metode:

● Kā galvenās tabulas rekvizīta vērtība ir norādīta viena no tabulām: apmaiņas plāns, direktorijs, dokumentu saraksts, dokumentu žurnāls, raksturlielumu veidu plāns, kontu plāns, aprēķinu veidu plāns, biznesa process, uzdevums, tabula biznesa procesa punkti:



● Kā rekvizīta Galvenā tabula vērtība ir norādīta viena no tabulām: informācijas reģistra galvenā tabula, uzkrāšanas reģistrs, uzskaites reģistrs, aprēķinu reģistrs, grāmatvedības reģistra MovementsSubconto virtuālā tabula:

● Dinamiskās lasīšanas rekvizīts:
● Instalēts: tiek izmantota 1. metode (metožu apraksts sniegts iepriekš).
● Atiestatīt: tiek izmantota 2. metode (metožu apraksts ir sniegts iepriekš).

● Rekvizīts Galvenā tabula satur atlases kritēriju tabulu vai uzdevumu tabulu pēc izpildītāja (uzdevumi pēc izpildītāja):
● Atslēga, kas identificē tabulas rindu: saite.

● Rekvizīts Galvenā tabula norāda informācijas reģistra SliceFirst vai SliceLast virtuālo tabulu:
● Atslēga, kas identificē tabulas rindu: RecordKey.
● Rekvizīts Dinamiskā lasīšana nav piemērojams.
● Tiek izmantota 2. metode (metožu apraksts sniegts iepriekš).

● Galvenās tabulas rekvizīts ir iestatīts uz vienu no virtuālo reģistru tabulām, izņemot tās, kas uzskaitītas iepriekš:

● Rekvizīts Dinamiskā lasīšana nav piemērojams.

● Rekvizīts Galvenā tabula nav norādīts, tiek izmantots patvaļīgs vaicājums:
● Taustiņš, kas identificē tabulas rindu: numurs.
● Rekvizīts Dinamiskā lasīšana nav piemērojams.
● Tiek izmantota 3. metode (metožu apraksts sniegts iepriekš).

Attēlošanai dati tiek pārsūtīti klientam porcijās, kuru lielums ir līdzīgs porcijas izmēram 1. datu nolasīšanas metodē (aprakstīts šīs sadaļas sākumā).
Kad veidojat veidlapu, kurā ir dinamisks saraksts, klientam sākotnēji tiek nodoti 45 datu vienumi katram redzamajam dinamiskajam sarakstam (ja sarakstā ir vairāk nekā 45 vienumi). Ja dinamiskajā sarakstā ir redzamas vairāk nekā 45 rindas, atverot veidlapu, tiks veikts papildu servera izsaukums, lai izgūtu trūkstošos datu vienumus.

4. Dinamiskā saraksta iestatījumi

Rekvizītu saraksta iestatījumi — noklikšķinot uz hipersaites Atvērt, tiek atvērta veidlapa dinamiskā saraksta displeja iestatīšanai. Saraksta iestatīšana tiek veikta tāpat kā līdzīgas darbības datu kompozīcijas sistēmā.


Rīsi. 2. Dinamiskā saraksta nosacītais stils

Iestatot dinamisko sarakstu konfigurācijā, lietojumprogrammas izstrādātājam ir iespēja veikt šādas darbības:
● iestatīt laukus, pēc kuriem vēlaties kārtot;
● apraksta datu atlasi sarakstā;
● norādīt nosacījuma izskata iestatījumus;
● iestatiet laukus, pēc kuriem vēlaties grupēt datus.
Ir jēga iestatīt kārtošanu izstrādātājam, ja neesat apmierināts ar sistēmas instalēto noklusējuma kārtošanu.

PADOMS. Jāatceras, ka slikta šķirošanas lauku atlase (kā arī datu atlase un grupēšana) negatīvi ietekmē dinamiskās izlases efektivitāti.
No lietojumprogrammu izstrādātāja viedokļa dinamiskā saraksta iestatījumi sastāv no vairākām daļām, kas ir savstarpēji saistītas. Galvenais rekvizīts, ar kuru varat pārvaldīt dinamiskā saraksta iestatījumus, ir LinkerSettings. Šajā objektā ir trīs iestatījumu kopas, kas, kad sistēma darbojas, nosaka galīgos iestatījumus, kas tiek lietoti dinamiskajam sarakstam:
● Iestatījumi – iestatījumi, kas izveidoti režīmā Configurator. Dinamiskā saraksta rekvizīts Pasūtījums nodrošina ātru piekļuvi dinamiskā saraksta iestatījumu veidotāja rekvizītam Settings.Order, tāpēc šādas konstrukcijas ir līdzvērtīgas:
List.Order un List.SettingsLinker.Settings.Order;
● UserSettings – tie ir iestatījumi, kurus lietotājs maina režīmā 1C:Enterprise;
● Fiksētie iestatījumi — šie iestatījumi tiek iestatīti no iebūvētās valodas. Šis īpašums satur arī atlases vērtības, kas tiek pārsūtītas uz formu, izmantojot tās parametrus. Dinamiskā saraksta rekvizīti Atlase, Opcijas, Nosacīta izskats nodrošina ātru piekļuvi dinamiskā saraksta iestatījumu veidotāja fiksētajiem iestatījumiem. Citiem vārdiem sakot, šie zvani ir līdzvērtīgi:
List.Settings Composer.FixedSettings.Selection un List.Selection.
Veidojot dinamiskā saraksta galīgos iestatījumus, dažādas iestatījumu opcijas tiek apvienotas šādi:
● Ja kāda veida iestatījumi ir pilnībā atzīmēti kā pielāgoti, iegūtie iestatījumi ietver pielāgotos iestatījumus
(List.ComposerSettings.UserSettings). Turklāt, ja kādi iestatījumu elementi ir atzīmēti kā nepieejami, šie iestatījumi tiks ievietoti rekvizīta List.Settings Composer iestatījumos. Iestatījumi.
● Ja kāda veida iestatījumi ir atzīmēti kā pielāgoti nevis pilnībā, bet elementi pēc elementa, tad:
● Vienumi, kas atzīmēti kā pielāgoti, tiks iekļauti iegūtajos iestatījumos no īpašuma List.SettingsComposer.CustomSettings.
● Vienumi, kas atzīmēti kā nepieejami, tiks iekļauti iegūtajos iestatījumos no īpašuma List.SettingsComposer.Settings.
● Fiksētie iestatījumi (List.SettingsComposer.FixedSettings) tiek pievienoti iegūtajiem iestatījumiem “kā tie ir”. Tajā pašā laikā ir nepieņemami, ka fiksētajos un lietotāja iestatījumos ir ietverti viena nosaukuma iestatījumi, piemēram, atlase ar vienādu kreiso vērtību nosacījumā.

Ja dinamiskā saraksta iestatījumos ir ietverti iestatījumi, kas ir atspējoti, izmantojot funkcionālās opcijas, šie iestatījumi tiks noņemti no pieejamo iestatījumu saraksta, kad tiek izgūti dinamiskā saraksta dati.
Kontrolēt, kuri iestatījumi būs pieejami lietotājam un kuri nē, tiek veikti dinamiskā saraksta iestatījumu logā.


Rīsi. 3. Kontrolējiet iekļaušanu lietotāja iestatījumos

Loga apakšā esošā izvēles rūtiņa (skat. 3. att.) ir atbildīga par visa veida iestatījumu ievietošanu iestatījumos (parasti vai ātri). Šī funkcija ir pieejama atlasei, kārtošanai, grupēšanai un nosacījumu noteikšanai. Ja iestatījumi ir norādīti ar ātrās atlases rediģēšanas režīmu, tad dinamisko sarakstu attēlojošās formas tabulas rekvizītā User Settings Group ir jānorāda tukša formas grupa, kurā tiks iekļauti elementi, kas saistīti ar ātrās atlases lietotāja iestatījumiem. tiks atrasts dinamiskais saraksts. Ja grupa nav norādīta, veidlapā netiks parādīti ātrie lietotāja iestatījumi. Ir arī iespējams tieši izsaukt pielāgotu iestatījumu izveidi, izmantojot iebūvēto valodu, izmantojot dinamiskā saraksta paplašinājuma metodi CreateCustomSettingsFormItems().
Tāpat ir iespējams izvēlēties, vai lietotāja iestatījumos ievietot konkrētus iestatījumu vienumus. Šī funkcija ir pieejama atlasei un nosacīti dizaina elementiem (sk. 3. attēlu).

Ja, atverot dinamisko sarakstu, ir jāielādē kādi īpaši iestatījumi, to var izdarīt divos veidos:
● Izmantojot dinamiskā saraksta formas parametru UserSettings. Šajā parametrā ietvertie dati tiks ievietoti lietotāja dinamiskā saraksta iestatījumos.
● Izmantojot dinamiskā saraksta formas parametruUserSettingsKey. Ja norādāt šo parametru, atverot formu, tad lietotāja iestatījumi, kas atrodas iestatījumu krātuvē ar norādīto atslēgu, tiks ielādēti dinamiskajā sarakstā, kas ir galvenais formas atribūts.

5. Meklēt dinamiskajā sarakstā

Dinamiskais saraksts, kas atrodas veidlapā, nodrošina iespēju interaktīvi meklēt parādītos datus. Meklēšanu var veikt, izmantojot šādus rīkus: meklēšanas josla, meklēšanas dialoglodziņš, pašreizējās vērtības meklēšana, meklēšanas vēstures izmantošana un perioda iestatīšana (dinamiskiem sarakstiem, kas parāda dokumentus). Meklēšanas rezultāts ir ierobežots ierakstu kopums
dinamisks saraksts (no tiem, kas ir pieejami konkrētam lietotājam), kas atbilst meklēšanas kritērijiem.
Lai kontrolētu dinamiskā saraksta meklēšanas iespējas, pārvaldītajā formā, kurā tiek parādīts dinamiskais saraksts, ir trīs tabulas rekvizīti.
● Meklēšanas virknes pozīcija – nosaka meklēšanas virknes pozīciju. Var izmantot šādas vērtības: Auto, Command Bar, None, Top, Bottom.


Rīsi. 4. Meklēšanas virkne dinamiskajā sarakstā

Ja šī rekvizīta vērtība ir iestatīta uz Komandu panelis, meklēšanas virkne tiks parādīta formas komandu panelī (ja dinamiskais saraksts ir galvenais formas atribūts) vai ar dinamisko sarakstu saistītajā komandu panelī. Komandjoslā ievietotā meklēšanas josla vienmēr tiek nospiesta līdz komandjoslas labajā malā (kopā ar pogām, kas atrodas pa labi no meklēšanas joslas).
Ja rekvizīts ir iestatīts uz Nē, meklēšanas virkne nebūs veidlapā, un, sākot rakstīt meklēšanas virkni, tiks atvērts dialoglodziņš.
Ja rekvizīts ir iestatīts uz Top, meklēšanas josla atradīsies starp saraksta komandjoslu un tabulu, kurā tiek rādīts dinamiskais saraksts. Ja rekvizīts ir iestatīts uz Apakšā, meklēšanas virkne tiks ievietota uzreiz aiz tabulas, kurā tiek parādīts dinamiskais saraksts.


● Ja rekvizīts Saderības režīms ir iestatīts uz Nelietot vai vecāka par versiju 8.3.4, vērtība ir komandu panelis.
Dodieties uz meklēšanas rindu šādi:
● Nospiežot taustiņu kombināciju Ctrl+F;
● Pele;
● Kad sākat rakstīt dinamiskajā sarakstā (ņemot vērā dinamiskā saraksta rekvizīta SearchOnTyping vērtību).
● View State Position – apraksta, kur tiks parādīts skata stāvoklis: kādi lauki tika meklēti un kādas vērtības
meklēja katrā jomā. Var izmantot šādas vērtības: Auto, None, Top, Bottom


Rīsi. 5. Meklēšanas stāvoklis dinamiskajā sarakstā

Ja rekvizīts ir iestatīts uz Nē, skata stāvoklis veidlapā nebūs redzams. Rezultātā būs iespējams noteikt, vai meklēšana ir pabeigta vai ne, tikai pēc pogas Atcelt meklēšanu pieejamības.
Ja rekvizīts ir iestatīts uz Augšpusē, skata stāvoklis atradīsies starp saraksta komandjoslu un tabulu, kurā tiek rādīts dinamiskais saraksts. Ja rekvizīts ir iestatīts uz Apakšā, skata stāvoklis tiks novietots uzreiz aiz tabulas, kurā tiek parādīts dinamiskais saraksts.
Ja veidlapa tika izveidota 1C:Enterprise versijā 8.3.4 un vecākā versijā, rekvizīts ir iestatīts uz Nē. Ja veidlapa tika izveidota 1C:Enterprise versijā 8.3.5 un vecākajā versijā, rekvizīts ir iestatīts uz Auto. Īpašuma reālā vērtība šajā gadījumā tiks noteikta šādi:
● Ja rekvizīts Compatibility Mode ir iestatīts uz Version 8.3.4 (un jaunāku) – vērtība Nr;
● Ja rekvizīts Compatibility Mode ir iestatīts uz Nelietot vai vecāka par versiju 8.3.4 – vērtība Top;
● Search Control Position — nosaka, kur tiks parādīta meklēšanas vadības poga. Poga atver izvēlni, kurā ir šāda informācija: komandas Meklēt pēc pašreizējās vērtības, Izvērstā meklēšana, Atcelt meklēšanu, Iestatīt periodu (dokumentu un žurnālu sarakstiem) un meklēšanas vaicājumu vēsturi (pēdējie 5 vaicājumi). Īpašumam var būt šādas vērtības: Auto, None, Command panel.


Rīsi. 6. Meklēšanas pārvaldība dinamiskajā sarakstā

Ja rekvizīts ir iestatīts uz Nē, veidlapā nebūs meklēšanas vadības pogas (bet komandas būs pieejamas, izmantojot izvēlni Vairāk). Komandjoslas rekvizīta vērtība novieto pogu komandjoslā, kas saistīta ar tabulu, kurā tiek parādīts dinamiskais saraksts.
Ja veidlapa tika izveidota 1C:Enterprise versijā 8.3.4 un vecākā versijā, rekvizīts ir iestatīts uz Nē. Ja veidlapa tika izveidota 1C:Enterprise versijā 8.3.5 un vecākajā versijā, rekvizīts ir iestatīts uz Auto. Īpašuma reālā vērtība šajā gadījumā tiks noteikta šādi:
● Ja rekvizīts Compatibility Mode ir iestatīts uz Version 8.3.4 (un jaunāku) – vērtība Nr;
● Ja rekvizīts Saderības režīms ir iestatīts uz Nelietot vai vecāka par versiju 8.3.4 – vērtība ir Command Panel;
Ja formā ir vairāki komandu paneļi, kuru komandu avots ir viena pārvaldītās formas tabula (tiek rādīti dinamiskā saraksta dati), tad meklēšanas rinda un meklēšanas vadības poga atradīsies tikai vienā komandu panelī:
● Vai arī paša dinamiskā saraksta komandjoslā (ja tajā ir iespējota automātiskā pabeigšana)
● Vai jebkurā no atlikušajiem komandu paneļiem.

Apskatīsim meklēšanas izmantošanas iespējas dinamiskajā sarakstā:
● Lai meklēšana būtu ērti lietojama (tostarp veiktspējas ziņā), ir jāiespējo pilna teksta meklēšana visiem konfigurācijas objektiem, kurus var izmantot kā dinamiskā saraksta galveno tabulu. Turklāt pilna teksta meklēšanā jāiekļauj visa informācija par konfigurācijas objektiem, kas var tikt parādīti dinamiskajā sarakstā un kuriem var būt nepieciešama meklēšana.
Ja objekts tiek izslēgts no pilna teksta meklēšanas, tad attiecīgais meklēšanas mehānisms darbosies, taču šādas meklēšanas veiktspēja būs ārkārtīgi zema. Nav ieteicams izmantot meklēšanu objektiem, kas nav indeksēti ar pilna teksta meklēšanu.
● Lietojumprogrammas risinājumam ir jābūt parastam uzdevumam, kas regulāri atjaunina pilna teksta meklēšanas indeksu.

● Meklēšana netiek veikta visās dinamiskā saraksta kolonnās (un konfigurācijas objektā), bet tikai tajās kolonnās, kas tiek parādītas tabulā.
● Meklēšana dinamiskajā sarakstā pēc atsauces tipu laukiem ar patvaļīgu attēlojumu tiek veikta pēc laukiem, kas tiek izmantoti
reprezentācijas veidošana (skatīt šeit). Skatā iekļautie lauki tiek iegūti, ņemot vērā attiecīgā objekta ViewFieldGettingProcessing() apdarinātāju.
● Dinamiskajiem sarakstiem ar noteiktu galveno tabulu galvenajā tabulā tiek izmantota pilna teksta meklēšana. Visas neindeksētās saites no galvenās tabulas tiks pievienotas pilna teksta meklēšanas rezultātiem. Galvenās tabulas pilna teksta meklēšanas rezultāts tiek izmantots kā atlase, pamatojoties uz galvenajiem laukiem. Pilna teksta meklēšana tiek veikta arī laukos, kas parādīti sarakstā no citām tabulām (ja lauks un konfigurācijas objekts izmanto pilna teksta meklēšanu). Ja nav iespējota pilna teksta meklēšana, dati var būt
atrasts, bet pati meklēšana būs ļoti lēna.
Ja, mēģinot veikt pilna teksta meklēšanu, rodas kļūda, meklēšana tiks veikta, neizmantojot pilna teksta meklēšanu.
Piemēram, tas var notikt, meklējot vienu burtu un lielu skaitu rindu informācijas bāzē, kas sākas ar šo burtu.
● Ja dinamiskā saraksta galvenās tabulas laukam tiek izmantota atlase ar salīdzināšanas veidu Vienāds, tad, veicot pilna teksta meklēšanu, šīs tabulas meklēšanas vaicājumam tiks pievienota atlases vērtība.
● Meklēšanas virkne tiek sadalīta vārdos. Šis nodalījums tiek veikts saskaņā ar šādiem noteikumiem:
● Rinda tiek pārtraukta, kā atdalītājus izmantojot atstarpes un tabulēšanas rakstzīmes.
● Pēc tam katrs iegūtais fragments tiek apstrādāts:
● Ja fragments ir datuma attēlojums (ar vai bez laika), pamatojoties uz pašreizējās sesijas lokalizāciju, vārds ir fragments.
● Pretējā gadījumā fragments tiek sadalīts tālāk, izmantojot rakstzīmes “,.-/\” kā atdalītājus. Šajā gadījumā katrs iegūtais virknes fragments tiek uzskatīts par vārdu.

● Katram vārdam tiek veidots savs nosacījumu kopums, kas tiek apvienots “ar VAI”. Šī nosacījumu kopa tiek ģenerēta, ja pilna teksta meklēšana konkrētam vārdam tabulā, no kuras iegūts šis lauks, atgrieza vismaz vienu objektu vai arī šim laukam netika izmantota pilna teksta meklēšana. Nosacījumi tiek veidoti šādi:
● Laukam, kura tips ir String, nosacījums ir FieldName LIKE %Word%.
● Laukam, kura tips ir Skaitlis, nosacījumam ir forma FieldName=Value, kur Vērtība ir vārds, kas pārveidots par skaitļa tipu. Ja metienu nevar veikt, lauka meklēšana netiks veikta.
● Vārds tiek meklēts kā apakšvirkne noklusējuma Būla attēlojumā, kas definēts pašreizējai sesijai. Ja meklējamais vārds tiek atrasts skatā, tas meklē vērtību, kas atbilst skatam, kurā vārds tika atrasts. Šajā gadījumā meklēšanā netiek izmantoti skati, kas norādīti, izmantojot rekvizītu Format form element.
● Laukam, kura veids ir datums, nosacījums izskatās šādi: FieldName>=StartofDay(Word) ANDFieldName<=КонецДня(Слово). Если Слово подобно дате, в которой год
apzīmēts ar vienu vai diviem cipariem, gads tiks samazināts līdz pašreizējam gadsimtam un šī vērtība tiks pievienota meklēšanas nosacījumam.
● Atsauces laukiem tiek veikta meklēšana atsauces skata veidošanai izmantotajos laukos. Katrā no šiem laukiem meklējiet
veic saskaņā ar iepriekš aprakstītajiem noteikumiem. Meklēšanā netiek izmantoti lauki, kas tiek izmantoti, lai izveidotu pielāgotu datu attēlojumu.
Katra vārda nosacījumu kopa ir apvienota “UN”.
● Vērtībām ar nullēm sākumā varat meklēt virkni ar nullēm sākumā vai virkni, kas norādīta bez nullēm.
● Ja dinamiskajā sarakstā tiek parādīts dokumentu saraksts vai dokumentu vēsture, jūsu norādītais saraksta skatīšanas intervāls tiek parādīts arī veidlapas apgabalā, kas rezervēts vēlamā dinamiskā saraksta skata statusa parādīšanai.
● Komanda Meklēt pēc pašreizējās vērtības nav pieejama, ja atlases kritērijs ir dinamiskā saraksta galvenā tabula.
● Atrastie virknes fragmenti tiek izcelti, kad tie tiek parādīti tabulā.
● Vienai kolonnai tiek atbalstīta tikai viena meklēšanas virkne. Pievienojot jaunu meklēšanas vaicājumu kolonnai, kas jau tiek meklēta, meklēšanas izteiksme tiks aizstāta, nevis abi meklēšanas vaicājumi tiks pievienoti kopā.
● Ja veidlapai nav veidlapas veidlapas elementa papildinājuma Meklēšanas virknes displejs, kas saistīts ar tabulu (veidlapas elementa pievienošanas avota rekvizīts), kas parāda dinamisko sarakstu, tad, nospiežot taustiņu kombināciju Ctrl+F, tiek atvērts meklēšanas dialoglodziņš.


Rīsi. 7. Meklēšanas dialoglodziņš

Ja veidlapā ir veidlapas veidlapas elementa papildinājums Meklēšanas virknes displejs, kas saistīts ar tabulu (veidlapas elementa papildinājums Avota rekvizīts), kurā tiek parādīts dinamisks saraksts, tad, lai atvērtu meklēšanas dialoglodziņu, jāizmanto komanda Izvērstā meklēšana.
● Izmantojot meklēšanas dialoglodziņu, ņemiet vērā tālāk norādītos punktus.
● Atverot meklēšanas dialoglodziņu, izmantojot īsinājumtaustiņu, pašreizējās šūnas vērtība tiek parādīta rindā Ko meklēt, un slēdža Kā meklēt vērtība tiek iestatīta uz Pēc precīzas atbilstības.

● Atverot meklēšanas dialoglodziņu, tieši sākot rakstīt meklēšanas virkni dinamiskajā sarakstā, slēdža Kā meklēt vērtība tiek iestatīta uz vērtību Pēc virknes daļas, un ievadītais teksts nonāk sadaļā Kas meklēšanas laukam.

6. Datu iegūšana dinamiskā sarakstā

Izmantojot dinamiskos sarakstus, iespējams, būs jāveic dažādas darbības ar datiem, kas pašlaik tiek rādīti dinamiskajā sarakstā, ņemot vērā lietotās atlases un meklējumus. Šādas darbības ietver: parādītās informācijas apstrādi, piemēram, atlasīto dokumentu atkārtotu nosūtīšanu vai dažu detaļu iestatīšanu atlasītajiem objektiem, pieejamo objektu saraksta ģenerēšanu (ar dizainu utt.), piemēram, drukāšanai vai saglabāšanai izklājlapas dokumentā.
Lai iegūtu datus, kas tiek parādīti dinamiskā sarakstā, jāizmanto GetExecutableDataCompositionSchema() un
GetExecutableDataCompositionSettings().
Datu saņemšanas piemērs:

Schema = Elements.List.GetExecutableDataCompositionSchema();
Iestatījumi = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(shēma, iestatījumi);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Datu nokļūšana vērtību kolekcijā (tabulā vai vērtību sarakstā) tiek veikta tādā pašā veidā.
Dinamiskā saraksta datu iegūšanai šādā veidā ir vairākas funkcijas, kas jāņem vērā, izstrādājot lietojumprogrammu risinājumus:
● Šis tabulas dizains netiek atbalstīts:
● Mainīgas līniju krāsas;
● Virsraksta attēls;
● Pagraba attēls;
● Kājenes fona krāsa;
● Kājenes teksta krāsa;
● Kājenes fonts;
● Horizontāls novietojums pagrabā;
● Paroles režīms.
● Pārvaldītajai formai norādītais nosacījuma izskats netiek atbalstīts;
● Sakārtojot hierarhisku tabulu augošā secībā pēc lauka tipa Link, ieraksti, kas satur tukšu saiti, vienmēr tiek ievietoti vispirms.

Konfigurāciju pabeigšanas procesā katrs 1C programmētājs saskaras ar dinamiskiem sarakstiem.
Dinamiskais saraksts ir interfeisa objekts, ko izmanto, lai parādītu dažādus datu bāzes objektu sarakstus vai neobjekta datus - reģistra ierakstus.
Piemēram, dinamiskais saraksts tiek izmantots, lai parādītu vienumu sarakstu:

Lai demonstrētu dinamiskā saraksta iespējas, izveidosim ārējo apstrādi un pievienosim galveno formu. Pievienosim veidlapai jaunu atribūtu ar tipu “Dinamiskais saraksts”. Iedziļināsimies tās īpašībās un redzēsim, kas tur ir.
Mūs interesē īpašums “Pielāgots pieprasījums”. Iespējojot to, tiks parādītas visas dinamiskā saraksta iespējas. Mēs varēsim uzrakstīt pieprasījumu, izmantojot gandrīz visas 1C: Enterprise sistēmas vaicājumu valodas iespējas. Atzīmējiet izvēles rūtiņu un noklikšķiniet uz saites "Atvērt":

Pēc noklusējuma mūsu sarakstā tiks parādīts preču saraksts ar visu noliktavu kopējo atlikumu. Lai ieviestu šādu sarakstu, pievienojiet šādu vaicājumu:


Kā galveno tabulu mēs izvēlēsimies "Directory.Nomenclature", tas ļaus mums strādāt ar dinamisku sarakstu, tāpat kā ar nomenklatūras sarakstu - pievienot, mainīt, atzīmēt direktoriju elementus dzēšanai. Arī galvenās tabulas instalēšana ļauj dinamiski nolasīt datus - tas nozīmē, ka atlase tiks veikta porcijās pēc vajadzības.
Tālāk mums ir jāizveido veidlapas elementi mūsu sarakstam:

Ja mēģināsim veikt apstrādi šajā formā, mēs saņemsim kļūdu:


Lai to novērstu, ir jāiestata parametra “Periods” vērtība. Lai to izdarītu, varat izmantot dinamiskā saraksta kolekcijas “Parameters” metodi “SetParameterValue”. Metode aizņem divus parametrus:
. "Parametrs" - tips: virkne; DataCompositionParameter. Tā parametra vai datu sastāva parametra nosaukums, kura vērtību vēlaties iestatīt;
. “Vērtība” — veids: patvaļīgs. Iestatāmā vērtība.
Var izsaukt veidlapas “OnCreateOnServer” apdarinātājā:

Vai jums ir jautājums vai nepieciešama konsultanta palīdzība?


Lietotājam nodrošināsim iespēju mainīt atlikumu saņemšanas periodu. Lai to izdarītu, pievienojiet atribūtu un ar to saistīto veidlapas elementu “Datums”.


Veidlapas elementa “Datums” apdarinātājā “OnChange” mēs izsauksim metodi “SetParameterValue”, kā vērtību nododot saistītā atribūta vērtību. Līdzīgā veidā mainīsim veidlapas procedūru “Izveidojot uz servera”. Tā kā metode ir pieejama klientam, nav nepieciešams izsaukt serveri:


Tagad, mainoties datumam, atlikumi tiks automātiski atjaunināti:




Pieņemsim, ka lietotāji vēlas redzēt pašreizējos atlikumus vai plānotos ieņēmumus. Apsvērsim vienu no ieviešanas iespējām. Pievienosim Būla tipa formas atribūtu un saistīto slēdzi:


Mainot slēdža vērtību, mainīsim pieprasījuma tekstu. Lai to izdarītu, veidlapas elementam “Rādīt daudzumu kvītī” izmantosim notikumu apdarinātāju “Mainoties”. Mums ir jāmaina dinamiskā saraksta rekvizīts “QueryText” atkarībā no atribūta vērtības. Tā kā šis rekvizīts klientam nav pieejams, ir jāizsauc servera procedūra:


Veikto izmaiņu rezultāts: