1c nastavite parameter dinamičnega seznama. Omejitve in funkcije

Domov Za razvijalce začetnike Učenje programiranja

Obstaja obrazec, ki vsebuje dinamični seznam z zahtevo po meri. Kako namestiti ob odpiranju obrazca zahtevane parametre v tej zahtevi?

Ena od težav, ki se pojavi pri odpiranju obrazca, je lahko ta, da dinamični seznam v odprtem obrazcu vsebuje poljubno poizvedbo s parametri. Ko odprete tak obrazec, morate na ta seznam posredovati določene vrednosti parametrov.

To težavo rešimo tako, da ustvarimo dodatne parametre obrazca, jim posredujemo potrebne vrednosti in jih nastavimo na parametre zahteve v obdelovalniku dogodkov obrazca Ko je CreatedOnServer.

Predpostavimo, da obstaja register cen izdelkov. Oblika seznama tega registra vsebuje dinamični seznam s poljubno poizvedbo:

Izberite register poslovnega blaga Dovoljenje register vozil Tovar register poslovnega blaga Center iz registra Izdelki kot register poslovnega blaga kjer sta register vozil = & blaga in register poslovnega blaga Dovoljenje> = & The Začetek obdobja in produkcijsko središče.<= &КонецПериода

Kot je razvidno iz besedila zahteve, ima zahteva tri parametre: produkt, začetek obdobja in konec obdobja. Za normalno delovanje obrazca je treba vrednosti teh parametrov določiti ob odpiranju obrazca, sicer bo zaradi odpiranja obrazca prejeta napaka.

Če želite obrazcu posredovati lastne parametre, je priporočljivo, da jih ustvarite v urejevalniku obrazcev.

Na splošno to ni potrebno. Vsi parametri, posredovani funkciji OpenForm(), bodo na voljo v obdelovalniku dogodkov obrazca Ko je CreatedOnServer. Vendar je še vedno bolje, da jih ustvarite izrecno v obrazcu.

Potem, prvič, modulu obrazca ne bo treba preverjati, ali takšni parametri obstajajo ali ne. In drugič, eksplicitna izdelava parametrov obrazca olajša podporo aplikacijski rešitvi s strani tistih razvijalcev, ki niso sodelovali pri njenem ustvarjanju.

Torej, ustvarimo tri parametre za obrazec seznama registra informacij: Začetek obdobja, Konec obdobja (tip Datum) in Produkt (tip DirectoryLink.Izdelki).

Zdaj v obliki elementa Imenik izdelkov ustvarite ukaz PricesInDecember z naslednjim besedilom:

Parametri obrazca = nova struktura ("Začetek obdobja, konec obdobja, izdelek", "20121201000000", "20121231235959", Object.Link); OpenForm("Register informacij. Cene izdelkov. Obrazec. Obrazec seznama", Parametri obrazca);

S tem ukazom odpremo obrazec seznama registra informacij in mu posredujemo vrednosti treh parametrov.

V samem obrazcu registra informacij, v obrazcu za obravnavo dogodkov Ko je CreatedOnServer, nastavite posredovane vrednosti kot parametre poljubne poizvedbe dinamičnega seznama, kot sledi:

&Na strežniškem postopku, ko je ustvarjen na strežniku (napaka, standardna obdelava) List.Parameters.SetParameterValue("Začetek obdobja", Parameters.Start of Period); List.Parameters.SetParameterValue("Konec obdobja", Parameters.End of Period); List.Parameters.SetParameterValue("Product", Parameters.Product); Konec postopka

Poleg primitivnih tipov podatkov, ki jih je mogoče najti v katerem koli programskem jeziku, obstajajo edinstveni tipi v 1C. Vsak od njih ima svoje lastnosti, metode, funkcije, namen in nianse uporabe v sistemu. Ena od teh vrst je dinamični seznam, ki močno olajša številna aplikativna opravila. Zato morajo razvijalci znati in znati ravnati s tem univerzalnim orodjem.

Značilnosti dinamičnih seznamov v 1C

Namen te vrste je prikazati informacije iz katere koli tabele zbirke podatkov, ne glede na vrsto. Mehanizem je bil ustvarjen na podlagi SKD in ima podobne zmogljivosti. Vendar to ne pomeni, da boste morali nujno napisati zahtevo v jeziku 1C, čeprav ta možnost obstaja in jo je treba uporabiti. Lahko preprosto določite tabelo, katere informacije vas zanimajo, in 1C bo samostojno ustvaril preprosto poizvedbo.

Če želite videti, kako je oblikovan dinamični seznam in katere podatke prikazuje, morate odpreti upravljane obrazce, kjer se nahaja v konfiguratorju: na seznamu podrobnosti uporabite kontekstni meni, da odprete njegove lastnosti in bodite pozorni na »Po meri Zahtevaj«. Če potrditvenega polja ni, potem parameter »Glavna tabela« odraža tabelo zbirke podatkov, iz katere so vzeti podatki. V nasprotnem primeru dinamični seznam odraža podatke poizvedbe po meri, ki jih lahko vidite tako, da odprete nastavitve seznama.

Veliko pogosteje se uporablja shema poizvedb po meri, saj nudi odlično priložnost za kombiniranje in prikaz najrazličnejših podatkov. Najpogosteje se ta mehanizem uporablja za prikaz stanja v skladišču, cen artiklov, prejemkov, stroškov ali nakupov. Uporabljati ga morate previdno, saj lahko pri zapletenih poizvedbah zmogljivost pade.

Druga uporabna lastnost dinamičnega seznama se odpre, ko kliknete napis »Nastavitve seznama«. Ta meni vam omogoča, da naredite informacije bolj dostopne in razumljive končnim uporabnikom, tudi če uporabljate standardni nabor polj. Ne glede na to, ali je zahteva poljubna ali ne, boste videli zavihek »Nastavitve«, kjer lahko določite:

  • Izbira dinamičnega seznama;
  • skupine;
  • Razvrščanje;
  • Dekoracija.

Zaradi uporabe parametrov so dinamični seznami univerzalni in precej prilagodljivi. Lahko jih tudi povežete s podrobnostmi na upravljanem obrazcu in podatki se bodo spreminjali glede na parametre, ki jih je izbral uporabnik. Uporabo teh mehanizmov je mogoče razumeti in ceniti z upoštevanjem primerov težav iz resničnega življenja.

Kot primer razmislite o nalogi odražanja ostankov nomenklature na nadzorovani obliki. V realni praksi se takšna naročila pojavljajo precej pogosto v različnih konfiguracijah, dinamični seznam pa je idealen kot orodje. Za to nalogo bomo morali uporabiti poizvedbo po meri, parametre dinamičnega seznama in njegove nastavitve.

Za večjo jasnost ustvarimo ločeno zunanjo obdelavo in nanjo postavimo dinamični seznam. Za uresničitev naših načrtov tabela z nomenklaturo ne bo dovolj, zato moramo omogočiti poljubno poizvedbo. V njem bomo opisali levo povezavo imenika s popisom postavk in registrom stanj ter nastavili imenik kot glavno tabelo. Ta shema bo uporabnikom, ki delajo z dinamičnim seznamom, omogočila dodajanje ali spreminjanje elementov.



SELECT NomenclatureList.Name AS Name, GoodsInWarehousesRemainings.Warehouse AS Warehouse, GoodsInWarehousesRemainings.QuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList LEVA POVEZAVA RegisterAccumulations.GoodsInWarehouses.Remainings(&CurrentDate,) AS Good sOnUS treasuresRemaining software NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenclature WHERE

Ker je naša zahteva uporabljala parameter »CurrentDate«, moramo pred uporabo obdelave nastaviti njegovo vrednost. Če želite to narediti, mu v modulu obrazca v postopku “When CreatedOnServer” s standardnim ukazom dodelite funkcijo “CurrentSessionDate”. Prav tako moramo prikazati dinamični seznam na obrazcu za nadzor in zaradi jasnosti spremeniti vrstni red polj. Povlecite atribut “Preostala nomenklatura” v elemente obrazca (zgornji levi del) in z modrimi puščicami spremenite vrstni red polj v tabeli na obrazcu.

&Na strežniškem postopku Ko je ustvarjen na strežniku (napaka, standardna obdelava) Ostaja nomenklatura Parametri Nastavi ParameterValue("CurrentDate", CurrentSessionDate()) EndProcedure


Že na tej stopnji lahko odpremo našo zunanjo obdelavo v 1C in vidimo, da dinamični seznam deluje. Ogledamo si lahko stanja, ustvarimo predmete in skupine ter iščemo. Stranke pogosto zahtevajo dodajanje možnosti izbire datuma, na katerega bodo videle stanja. V primeru obrazca z dinamičnim seznamom to dosežemo z dodatnim poljem in nastavitvijo parametrov z njim.

Dodajte atribut “DateRemaining” tipa “Date” in ga prenesite v elemente obrazca. V polju dogodki ustvarimo dogodek “OnChange” in zapišemo kodo za nastavitev parametra “CurrentDate”, ki se uporablja v dinamični zahtevi. Da bo uporabnik ob odpiranju obrazca takoj razumel, na kateri datum vidi bilance, bomo naredili majhne spremembe v postopku »When CreatedOnServer«.



&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)RemainingDate = CurrentSessionDate(); Item Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Konec postopka &Na odjemalskem postopku Remaining DateWhenChanged(Element)Nomenclature Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Konec postopka

Posledično lahko naš obrazec dinamičnega seznama prikazuje stanja na kateri koli datum.

Upoštevali smo le majhen del zmogljivosti tega kompleta orodij, vendar je že to dovolj, da razumemo priročnost te vrste dinamičnega seznama. Podoben mehanizem se uporablja za številne naloge, vendar ga najpogosteje najdemo v tipičnih konfiguracijah v upravljanih oblikah:

  1. Izbira;
  2. Seznami.

Za prejem dinamičnega seznama in njegove zahteve v standardnih upravljanih obrazcih mora razvijalec odpreti želeni obrazec v konfiguratorju. V razdelku s podrobnostmi poiščite podrobnosti s podatkovnim tipom »DynamicList« (najpogosteje je označen s krepkim tiskom). Njegove lastnosti vsebujejo besedilo zahteve, izbire in druge nastavitve.

Natisni (Ctrl+P)

Dinamični seznam

1. Splošne informacije

Dinamični seznam je posebna vrsta podatkov, ki omogoča prikaz poljubnih informacij iz tabel baze podatkov na obrazcu. Če želite to narediti, morate določiti tabelo, iz katere želite prikazati podatke, ali opisati nastali izbor v poizvedovalnem jeziku.
Mehanizem temelji na sistemu sestavljanja podatkov in omogoča zmožnosti razvrščanja, izbiranja, iskanja, združevanja in pogojnega oblikovanja prejetih podatkov. V tem primeru je vir podatkov zahteva, ki jo sistem generira samodejno (na podlagi podanih podatkov) ali ročno napiše razvijalec.

riž. 1. Možnosti za ustvarjanje dinamičnega seznama

Pri ustvarjanju atributov obrazca tipa DynamicList razvijalec lahko izbere dva načina za oblikovanje podatkovne poizvedbe:
● Z določitvijo glavne tabele - v tem primeru morate samo določiti tabelo (lastnost glavne tabele), iz katere želite prejeti podatke, in sistem bo samodejno ustvaril poizvedbo za podatke (glejte desni del na sl. 1).
● Ročno generiranje zahteve - za to morate nastaviti lastnost Zahteva po meri (glejte levo stran slike 1). Po tem bo na voljo ročno generiranje zahteve za pridobitev podatkov iz informacijske baze.
Poizvedba lahko pridobi podatke iz več tabel, tako da lahko določite primarno tabelo. To je zato, da lahko dinamični seznam določi, kateri podatki so primarni in kateri sekundarni, ter lahko pravilno izbere in prikaže informacije ter zagotovi standardne ukaze. Če pa v poizvedbi ni mogoče določiti glavne tabele, je ni mogoče določiti, ampak potem
dinamični seznam ne bo zagotavljal ukazov, povezanih z glavno tabelo. Poleg tega bo v tem primeru (brez podajanja glavne tabele) učinkovitost pridobivanja podatkov z dinamičnim seznamom znatno zmanjšana.
Za izboljšanje zmogljivosti je priporočljivo, da so vsa združevanja, ki se uporabljajo v poizvedbi po meri samo za pridobivanje dodatnih podatkov, neobvezna z uporabo razširitve poizvedbenega jezika sistema za sestavo podatkov.
Za dinamični seznam, ki je glavni atribut obrazca, je mogoče nastaviti izbirne vrednosti s parametrom obrazca Izbira. Če želite to narediti, je potrebno, da se ime lastnosti strukture nahaja v parametru Izbira,
sovpada z imenom izbirnega polja dinamičnega seznama. V tem primeru bo vrednost lastnosti strukture nastavljena kot prava vrednost izbirnega elementa. Če se matrika, fiksna matrika ali seznam vrednosti posreduje kot vrednost elementa izbirnega parametra obrazca dinamičnega seznama, se izboru doda pogoj z možnostjo Na seznamu v desni vrednosti od katerih je postavljen seznam vrednosti (v katere se pretvorita matrika in fiksna matrika).
Poljubna poizvedba na dinamičnem seznamu je lahko poizvedba, v kateri se parameter uporablja za ustvarjanje vrednosti polja, na primer:

IZBERI
IZBIRA
WHEN Delivery.Coefficient = 1 THEN &Presentation
DRUGAČE Dostava. Koeficient
KONEC KOT Razmerje
OD

Še več, če se vrsta vrednosti parametra razlikuje od vrste atributa objekta (npr. Rekviziti1 ima vrsto številka, vrednost parametra pa je vrsta Linija), potem morate za pravilen prikaz polja vrednost parametra izrecno pretvoriti v želeni tip:

IZBERI
IZBIRA
WHEN Delivery.Coefficient = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Delivery. Koeficient
KONEC KOT Razmerje
OD
Dokument. Dostava izdelkov KAKO dostaviti

Če je polje, s katerim je nastavljen izbor, onemogočeno s funkcionalnimi možnostmi, potem izbor s takim poljem ni nameščen, tudi če je vrednost izbora posredovana kot parametri obrazca ali povezave parametrov izbora.
Z lastnostjo Dinamično branje podatkov nakažete dinamičnemu seznamu potrebo po branju podatkov v majhnih delih
(za več podrobnosti o načinih pridobivanja podatkov z uporabo dinamičnega seznama in predpomnjenja podatkov glejte spodaj). Ne glede na ta atribut veljajo naslednji pogoji:

● Če je način pogleda nastavljen na hierarhični seznam, bodo prebrani samo podatki trenutne skupine in podatki vseh nadrejenih elementov (brez otrok).
● Če je nastavljen način drevesnega pogleda, bodo prebrani samo podatki iz odprtih drevesnih vozlišč.
● Enkratno nalaganje podatkov dinamičnega seznama ni podprto, če je nastavljeno hierarhično brskanje (lastnost Prikaz je nastavljena na Drevo) in je začetni prikaz drevesa nastavljen na Razširi vse ravni. Za pridobitev podatkov bo podanih toliko zahtev strežniku, kolikor je vozlišč na prikazanem seznamu.
Znotraj enega samega pridobivanja podatkov dinamični seznam ponovno uporabi predhodno ustvarjene začasne tabele, če so izpolnjeni naslednji pogoji:
● Paketna poizvedba seznama nima poizvedb po glavni paketni poizvedbi.
● Sestava začasnih tabel in polj v njih je nespremenjena glede na predhodno izvedbo paketne zahteve.

Dinamični seznam pri svojem delu uporablja vrednosti naslednjih lastnosti podrobnosti metapodatkovnega objekta:
● format,
● format za urejanje,
● namig,
● znak za poudarjanje negativnih vrednosti,
● maska,
● znak za večvrstični način,
● znak za napredno urejanje,
● način gesla.
Pri prikazu in urejanju izbora in parametrov sistema za sestavljanje podatkov se uporablja format urejanja ustreznega polja.

2. Omejitve in funkcije

Ko nastavljate izbiro na dinamičnem seznamu, ne pozabite, da izbira ne vpliva na skupine, če je način prikaza za dinamični seznam Hierarhični seznam ali Drevo. S "skupinami" mislimo na element imenika ali načrta značilnih vrst, katerih lastnost ThisGroup je nastavljena na True.
Uporabijo se kvalifikacije, ki jih dinamični seznam samodejno uporabi za standardne podrobnosti Lastnik, Starš, Datum, Obdobje in TaSkupina
z uporabo standardnih sistemskih orodij za sestavljanje podatkov. Izbor, ki ga dinamični seznam samodejno uporabi za ključna polja, je mogoče uporabiti s standardnimi sredstvi sistema za sestavljanje podatkov in z neposrednim dodajanjem pogojev v besedilo zahteve IN na polja glavne tabele. Kot rezultat uporabe izbir z uporabo orodij za postavitev, jih je mogoče uporabiti tako v ugnezdenih poizvedbah kot v parametrih virtualnih tabel.

Pri razvoju dinamičnih seznamov je priporočljivo testirati vse dinamične sezname s poizvedbami po meri. Med postopkom preverjanja se morate prepričati, da če poizvedba na seznamu vsebuje ugnezdene poizvedbe ali navidezne tabele in v njih polja z vzdevki, ki se ujemajo z vzdevki standardnih podrobnosti Owner, Parent, Date, Period, ThisGroup ali ključna polja so na voljo za izbor, potem so ta polja veljavna in ustrezajo standardnim podrobnostim, s katerimi se ujema njihov vzdevek. Če temu ni tako, spremenite zahtevo tako, da se ujemajo oz
vzdevek je bil drugačen.
Če se odločite za ročno ustvarjanje zahteve, so za zahtevo naložene nekatere omejitve:
● Uporaba stavka FIRST v poizvedbi po dinamičnem seznamu ni podprta. Če morate uporabiti izbor, omejen s številom zapisov v dinamičnem seznamu, predelajte zahtevo za generiranje dinamičnega seznama tako, da bo dejanska vsebina zahteve postavljena v podpoizvedbo in omejite število zapisov prejeli v tej podpoizvedbi. Namesto podpoizvedbe lahko uporabite tudi začasno tabelo.
● Izbira, razvrščanje in združevanje niso podprti:

  • Glede na podrobnosti tabelarnih delov.
  • Ogled polj.
  • Polje DataVersion.
  • Polje PredefinedDataName.
  • Polje vrste tabele kontnega načrta.
  • Polje Vrsta gibanja tabele registra akumulacije.
  • Vrednosti vrste polja značilnosti tabele načrta tipa.
  • Vrsta polja Vrsta;
  • Polje tipa String (neomejena dolžina).
  • Polje tipa BinaryData.

● Razvrščanje in združevanje po poljih Subconto ni podprto<НомерСубконто>in ViewSubconto<НомерСубконто>Tabele PremikiPodkonto knjigovodskega registra.
● Združevanje po poljih, ki so izrazi poizvedbenega jezika, ki vsebujejo združevalne funkcije, ni podprto.
● Ko je izbrana glavna tabela, ima poizvedba po dinamičnem seznamu naslednje omejitve:

  • Združitve niso podprte.
  • Razdelek ORDER BY ni podprt. Uporabite poizvedbo brez glavne tabele ali nastavite potrebno vrstni red prek nastavitev dinamičnega seznama.

● Če je dinamični seznam prikazan kot hierarhični seznam ali drevo, vnos ne bo prikazan kot dinamični seznam, razen če je prikazan vsaj en nadrejeni element tega vnosa. Z drugimi besedami, za prikaz elementa hierarhičnega seznama mora dinamični seznam prikazati tudi vse starše tega elementa do vrha seznama. V tem primeru z vrhom seznama mislimo bodisi
korenski element hierarhičnega objekta, ki ga prikazuje dinamični seznam, ali element, nastavljen kot lastnost ParentTopLevel razširitve tabele obrazca za dinamični seznam.

Uporaba naslednjih tabel kot glavne tabele dinamičnega seznama ni podprta:

● Tabela, ki nima ključa, ki enolično identificira vsak zapis tabele (sklic za tabele objektov in ključ zapisa za tabele registrov). Vendar pa lahko naslednje tabele nastavite kot glavne tabele dinamičnega seznama (kljub temu, da nimajo ključa):

● Podkonto tabela knjigovodskega registra;
● vse virtualne tabele knjigovodskega registra, razen tabele MovementsSubconto;
● tabele konstantnih vrednosti (vključno s tabelo Konstante);
● tabele zunanjih podatkovnih virov brez ključnih polj;
● kubusne tabele zunanjih virov podatkov;
● tabele akumulacijskega registra:

  • revolucijska miza;
  • bilančna miza;
  • tabela prometa in stanja.

● tabele računskega registra:

  • tabela dejanskega obdobja veljavnosti;
  • podatki o urniku;
  • osnovni podatki.

● Preglednice tabelarnih delov predmetov;
● Tabele registracije sprememb (uporabljajo se v mehanizmih za izmenjavo podatkov);
● tabele zaporedij;
● Pretvorbene tabele (uporabljene v mehanizmih periodične poravnave).
● Tabela, ki se uporablja v poizvedbi samo v zunanjem združevanju.

Z drugimi besedami, dinamični seznam z navedeno glavno tabelo bo deloval pravilno, če bo kot rezultat izvedbe poizvedbe
naveden kot vir podatkov, se število vrstic, pridobljenih iz glavne tabele, ne poveča (ob upoštevanju vsiljene izbire). Če se zaradi izvajanja poizvedbe poveča število vrstic, pridobljenih s poizvedbo iz glavne tabele, bo to povzročilo kršitev edinstvenosti ključa zapisov tabele, ki jih prikaže seznam. V tem primeru morate onemogočiti uporabo glavne tabele dinamičnega seznama.
Pri delu z dinamičnim seznamom morate upoštevati pravice dostopa do podrobnosti, ki jih prikazuje seznam:
● Podatki iz stolpcev dinamičnega seznama, ki so označeni z lastnostjo Vedno uporabi, vendar zanje trenutni uporabnik nima pravice pogleda, se ne prenesejo na stran odjemalca. Dostop do podatkov takih stolpcev (z uporabo lastnosti CurrentData in metode RowData())
ni mogoče na strani odjemalca.
● Če trenutni uporabnik nima pravice pogleda na ključno polje dinamičnega seznama, bo pridobitev podatkov s tega dinamičnega seznama povzročila napako kršitve dostopa.
Za dinamični seznam, ki prikazuje seznam oštevilčenja, ni možnosti za interaktivno prilagajanje seznama.
Sestava stolpcev in nastavitve dinamičnega seznama so povezani s poizvedbenimi polji z uporabo vzdevkov izbirnih polj. Če vzdevek ni izrecno naveden v poizvedbi za izbirno polje in je polje sistemsko, se kot vzdevek uporabi ime polja za angleško različico vgrajenega jezika.
Navedeno razmerje pomeni, da pri spreminjanju (ali izrecnem podajanju vzdevka za polje, za katerega je bil uporabljen samodejni vzdevek)
vzdevek polja poizvedbe, ki generira podatke dinamičnega seznama, bodo nastavitve atributa dinamičnega seznama izgubljene, elementi obrazca bodo »izgubili« prikazane podrobnosti, nastavitve dinamičnega seznama bodo postale napačne itd.
Če je vir podatkov dinamičnega seznama tabela (navadna ali virtualna), ki omogoča nastavitev izbire po obdobjih, potem, če uporabnik nastavi obdobje prikaza v takšnem dinamičnem seznamu (ukaz Nastavi datumski interval...),
podane meje obdobja bodo nastavljene kot izbirne vrednosti ali parametri virtualne tabele. Če s pomočjo jezikovne razširitve
poizvedbe za sistem sestavljanja podatkov so bila eksplicitno podana imena parametrov virtualne tabele - parametri z navedenim
imena. Tabele, za katere je možno kontrolirati obdobje prikaza oziroma obdelave podatkov:
● registrske tabele (glavne ali virtualne), za katere je možno izbirati po obdobju (za obračunski register - po registracijskem obdobju);
● glavne tabele dokumentov, poslovnih procesov in opravil;
● glavne tabele dnevnikov dokumentov;
● glavne zaporedne tabele, zaporedne mejne tabele.
Poizvedbeni parameter dinamičnega seznama je lahko matrika ali seznam vrednosti. Če pa je parameter seznam vrednosti, bo kot izbirna vrednost uporabljena le prva vrednost na seznamu. Če dinamični seznam uporablja poizvedbo s parametri, je treba začetno nastavitev vrednosti parametrov izvesti v upravljalniku OnCreateOnServer.
Ko prikazujete podatke dinamičnega seznama, upoštevajte naslednje:
● Ko programsko spremenite lastnosti dinamičnega seznama, se ukazne plošče, povezane s seznamom, ne ponovno samodejno zapolnijo.
s tem dinamičnim seznamom.
● Če je več polj združenih v skupino z načinom združevanja v celici in je v združenih poljih polje, ki je prikazano kot potrditveno polje, bo to potrditveno polje vedno prikazano najprej v nastali celici (levo od besedilo).
Na dinamičnem seznamu je pri določanju tipa podatkov za polja, katerih izrazi vključujejo parametre, polja ali literale, nastali tip določen s tipi polj in literalov. Če tip vrednosti parametra ni vključen v nastali podatkovni tip, bo njegova vrednost okrnjena.
Na primer, v naslednjem primeru bo polje tipa Število.

IZBIRA
KO JE LAŽ
POTEM 5
DRUGAČE
&Parameter
KONEC

Če parameter Parameter nastavite na vrednost drugega tipa, bo dinamični seznam za to polje prejel vrednost 0 (privzeta vrednost za vrsto Številka).
Če morate v takšni situaciji izbrati parameter drugačne vrste, je priporočljivo uporabiti konstrukcijo poizvedbenega jezika EKSPRES. na primer
če morate v zgornjem primeru v parameter posredovati niz, ki ni daljši od 100 znakov, potem preprosto navedbo parametra zamenjajte z izrazom z eksplicitnim tipom:

IZBIRA
KO JE LAŽ
POTEM 5
DRUGAČE
EXPRESS(&Parameter AS String(100))
KONEC

Če poljubno besedilo zahteve za dinamični seznam uporablja parametre v izrazih izbirnih polj, morate izrecno navesti vrsto parametrov z uporabo konstrukta EKSPRES. Na primer, namesto &Nomenklatura AS Nomenklatura uporaba
EXPRESS(&Nomenklatura AS Imenik.Nomenklatura) AS Nomenklatura. V nasprotnem primeru lahko deluje iskanje prek iskalne vrstice
napačni ali povzročajo napake.

3. Metode za pridobivanje in predpomnjenje podatkov z dinamičnim seznamom

Pri pridobivanju podatkov za prikaz dinamični seznam uporablja eno od treh metod:
1. Branje iz baze podatkov se izvaja v kosih s številom podatkovnih elementov, ki je nekoliko večje od števila vrstic, ki jih hkrati prikazuje seznam (vendar ne manj kot 20). Podatki se na strežniku ne shranjujejo v predpomnilnik.
2. Branje iz baze podatkov poteka na straneh po 1000 podatkovnih elementov. Podatki se shranjujejo v predpomnilnik na strežniku. Hierarhični podatki so predpomnjeni: največ 2 strani elementov sta predpomnjeni za vsakega starša. Na dinamični seznam se ne shrani več kot 20 strani elementov. Predpomnjenje bo omogočeno z dinamičnim seznamom za naslednje tabele:
● Merila za izbor;
● Vse tabele knjigovodskega registra, razen glavne tabele in tabele MovementsSubconto;
● Vse tabele akumulacijskega registra, razen glavne tabele;
● Vse tabele informacijskega registra, razen glavne tabele;
● Vse tabele računskega registra, razen glavne tabele;
● Virtualna tabela nalog po izvajalcu;
● Tabele zunanjih virov brez ključev;
● Kocke iz zunanjih virov.

3. Branje iz baze se izvaja na straneh po 1000 elementov. Prvi del je enak 1 strani. Vsak naslednji del se poveča za 1 stran (ko je dosežen konec prejšnjega vzorca). Bolj kot se »vidna točka« pomika koncu prikazanih podatkov, večji vzorec se prebere iz baze podatkov in sčasoma postane enak vsem prikazanim podatkom. Podatki se shranjujejo v predpomnilnik na strežniku. Največje število vnosov v predpomnilnik in dinamični seznam je 1.000.000.
Odvisno od tega, kaj izbere glavna tabela dinamičnega seznama in kakšno vrednost ima lastnost Dinamično branje, se uporabi ena ali druga metoda branja podatkov:

● Kot vrednost lastnosti glavne tabele je določena ena od naslednjih tabel: načrt izmenjave, imenik, seznam dokumentov, dnevnik dokumentov, plan karakteristik tipov, kontni načrt, plan obračunskih tipov, poslovni proces, naloga, tabela oz. točke poslovnega procesa:



● Kot vrednost lastnosti glavne tabele je podana ena od naslednjih tabel: glavna tabela informacijskega registra, akumulacijski register, obračunski register, računski register, virtualna tabela obračunskega registra MovementsSubconto:

● Lastnost dinamičnega branja:
● Nameščeno: uporabljena je metoda 1 (opis metod je podan zgoraj).
● Ponastavitev: Uporabljena je 2. metoda (opis metod je podan zgoraj).

● Lastnost glavne tabele vsebuje tabelo izbirnih kriterijev ali tabelo opravil po izvajalcu (Tasks By Performer):
● Ključ za identifikacijo vrstice tabele: povezava.

● Lastnost glavne tabele podaja navidezno tabelo informacijskega registra SliceFirst ali SliceLast:
● Ključ, ki identificira vrstico tabele: RecordKey.
● Lastnost dinamičnega branja ni uporabna.
● Uporabljena je metoda 2 (opis metod je podan zgoraj).

● Lastnost glavne tabele je nastavljena na eno od tabel navideznega registra, razen zgoraj navedenih:

● Lastnost dinamičnega branja ni uporabna.

● Lastnost glavne tabele ni navedena, uporabljena je poljubna poizvedba:
● Ključ za identifikacijo vrstice tabele: Število.
● Lastnost dinamičnega branja ni uporabna.
● Uporabljena je 3. metoda (opis metod je podan zgoraj).

Za prikaz se podatki prenesejo odjemalcu po delih, katerih velikost je podobna velikosti porcij pri 1. načinu branja podatkov (opisanem na začetku tega razdelka).
Ko ustvarite obrazec, ki vsebuje dinamični seznam, se 45 podatkovnih postavk za vsak viden dinamični seznam najprej posreduje odjemalcu (če ima seznam več kot 45 postavk). Če dinamični seznam prikazuje več kot 45 vrstic, bo ob odprtju obrazca izveden dodaten klic strežnika za pridobitev manjkajočih podatkovnih postavk.

4. Nastavitve dinamičnega seznama

Nastavitve seznama lastnosti - s klikom na hiperpovezavo Odpri se odpre obrazec za nastavitev prikaza dinamičnega seznama. Nastavitev seznama poteka na enak način kot podobne operacije v sistemu za sestavljanje podatkov.


riž. 2. Pogojno oblikovanje dinamičnega seznama

Pri nastavljanju dinamičnega seznama v konfiguraciji ima razvijalec aplikacije možnost narediti naslednje:
● nastavite polja, po katerih želite razvrščati;
● opiše izbor podatkov na seznamu;
● določite pogojne nastavitve videza;
● nastavite polja, po katerih želite združevati podatke.
Smiselno je, da razvrščanje nastavite razvijalcu, če niste zadovoljni s privzetim razvrščanjem, ki ga je namestil sistem.

NASVET. Ne smemo pozabiti, da slab izbor polj za razvrščanje (kot tudi izbor in združevanje podatkov) negativno vpliva na učinkovitost dinamičnega vzorčenja.
Z vidika razvijalca aplikacije so nastavitve dinamičnega seznama sestavljene iz več delov, ki so med seboj povezani. Glavna lastnost, prek katere lahko upravljate nastavitve dinamičnega seznama, je LinkerSettings. Ta objekt vsebuje tri nize nastavitev, ki ob zagonu sistema določajo končne nastavitve, uporabljene za dinamični seznam:
● Nastavitve – nastavitve, ustvarjene v načinu Konfigurator. Lastnost Order dinamičnega seznama omogoča hiter dostop do lastnosti Settings.Order graditelja nastavitev dinamičnega seznama, zato so naslednji konstrukti enakovredni:
List.Order in List.SettingsLinker.Settings.Order;
● Uporabniške nastavitve – to so nastavitve, ki jih uporabnik spremeni v načinu 1C:Enterprise;
● Fiksne nastavitve – te nastavitve se nastavijo iz vgrajenega jezika. Ta lastnost vsebuje tudi izbirne vrednosti, ki se prenesejo v obrazec z uporabo njegovih parametrov. Lastnosti dinamičnega seznama Izbira, Možnosti, Pogojni videz omogočajo hiter dostop do fiksnih nastavitev graditelja nastavitev dinamičnega seznama. Z drugimi besedami, ti klici so enakovredni:
List.Settings Composer.FixedSettings.Selection in List.Selection.
Pri ustvarjanju končnih nastavitev za dinamični seznam se različne možnosti nastavitev kombinirajo na naslednji način:
● Če je katera koli vrsta nastavitev v celoti označena kot po meri, potem nastale nastavitve vključujejo nastavitve po meri
(List.ComposerSettings.UserSettings). Poleg tega, če so kateri koli elementi nastavitev označeni kot nerazpoložljivi, bodo te nastavitve postavljene v nastale nastavitve iz lastnosti List.Settings Composer. nastavitve.
● Če je katera koli vrsta nastavitev označena kot po meri ne v celoti, ampak element za elementom, potem:
● Elementi, označeni kot po meri, bodo vključeni v nastale nastavitve iz lastnosti List.SettingsComposer.CustomSettings.
● Elementi, označeni kot nerazpoložljivi, bodo vključeni v nastale nastavitve iz lastnosti List.SettingsComposer.Settings.
● Fiksne nastavitve (List.SettingsComposer.FixedSettings) so dodane nastalim nastavitvam »kot so«. Hkrati je nesprejemljivo, da fiksne in uporabniške nastavitve vsebujejo istoimenske nastavitve, na primer izbor z isto levo vrednostjo v pogoju.

Če nastavitve dinamičnega seznama vsebujejo nastavitve, ki so onemogočene s funkcionalnimi možnostmi, bodo te nastavitve odstranjene s seznama razpoložljivih nastavitev, ko bodo podatki dinamičnega seznama pridobljeni.
Nadzor nad tem, katere nastavitve bodo na voljo uporabniku in katere ne, poteka v oknu z nastavitvami dinamičnega seznama.


riž. 3. Nadzor vključitve v uporabniških nastavitvah

Potrditveno polje na dnu okna (glej sliko 3) je odgovorno za postavitev celotne vrste nastavitev v nastavitve (normalno ali hitro). Ta funkcija je na voljo za izbiro, razvrščanje, združevanje in pogojevanje. Če so nastavitve podane z načinom urejanja Hitra izbira, morate v lastnosti Skupina uporabniških nastavitev tabele obrazca, ki prikazuje dinamični seznam, določiti prazno skupino obrazca, v kateri so elementi, povezani s hitrimi uporabniškimi nastavitvami dinamični seznam se bo nahajal. Če skupina ni navedena, hitre uporabniške nastavitve ne bodo prikazane na obrazcu. Prav tako je mogoče izrecno priklicati ustvarjanje nastavitev po meri z uporabo vgrajenega jezika z uporabo metode CreateCustomSettingsFormItems() razširitve dinamičnega seznama.
Izberete lahko tudi, ali želite v uporabniških nastavitvah umestiti določene elemente nastavitev. Ta funkcija je na voljo za izbiro in pogojne elemente oblikovanja (glej sliko 3).

Če želite ob odpiranju dinamičnega seznama naložiti kakšne posebne nastavitve, lahko to storite na dva načina:
● Uporaba parametra obrazca dinamičnega seznama UserSettings. Podatki, ki jih vsebuje ta parameter, bodo uvrščeni v nastavitve dinamičnega seznama uporabnika.
● Uporaba parametra obrazca dinamičnega seznamaUserSettingsKey. Če ta parameter določite ob odpiranju obrazca, se uporabniške nastavitve, ki se nahajajo v pomnilniku nastavitev z navedenim ključem, naložijo v dinamični seznam, ki je glavni atribut obrazca.

5. Iščite po dinamičnem seznamu

Dinamični seznam, ki se nahaja na obrazcu, omogoča interaktivno iskanje po prikazanih podatkih. Iskanje je možno z naslednjimi orodji: iskalna vrstica, iskalno pogovorno okno, iskanje trenutne vrednosti, uporaba zgodovine iskanja in nastavitev obdobja (za dinamične sezname, ki prikazujejo dokumente). Rezultat iskanja je omejen nabor zapisov
dinamični seznam (tistih, ki so na voljo danemu uporabniku), ki ustrezajo iskalnim kriterijem.
Za nadzor zmožnosti iskanja dinamičnega seznama so na upravljanem obrazcu tri lastnosti tabele, ki prikazuje dinamični seznam:
● Položaj iskalnega niza – določa položaj iskalnega niza. Lahko ima naslednje vrednosti: Auto, Command Bar, None, Top, Bottom.


riž. 4. Išči niz v dinamičnem seznamu

Če je vrednost te lastnosti nastavljena na ukazno ploščo, bo iskalni niz prikazan na ukazni plošči obrazca (če je dinamični seznam glavni atribut obrazca) ali na ukazni plošči, povezani z dinamičnim seznamom. Iskalna vrstica v ukazni vrstici je vedno pritisnjena na desni rob ukazne vrstice (skupaj z gumbi, ki se nahajajo desno od iskalne vrstice).
Če je lastnost nastavljena na Ne, iskalnega niza ne bo na obrazcu in ko začnete vnašati iskalni niz, se odpre pogovorno okno.
Če je lastnost nastavljena na Top, se iskalna vrstica nahaja med ukazno vrstico seznama in tabelo, ki prikazuje dinamični seznam. Če je lastnost nastavljena na Bottom, bo iskalni niz postavljen takoj za tabelo, ki prikazuje dinamični seznam.


● Če je lastnost Način združljivosti nastavljena na Ne uporabljaj ali je starejša od različice 8.3.4 – je vrednost Ukazna plošča.
Pojdite v iskalno vrstico na naslednji način:
● S pritiskom na kombinacijo tipk Ctrl+F;
● Miška;
● Ko začnete vnašati v dinamični seznam (ob upoštevanju vrednosti lastnosti SearchOnTyping dinamičnega seznama).
● Položaj stanja pogleda – opisuje, kje bo prikazano stanje pogleda: katera polja so bila preiskana in katere vrednosti
iskali na vseh področjih. Lahko ima naslednje vrednosti: Auto, None, Top, Bottom


riž. 5. Stanje iskanja v dinamičnem seznamu

Če je lastnost nastavljena na Ne, stanje pogleda ne bo prisotno na obrazcu. Posledično bo mogoče ugotoviti, ali je bilo iskanje končano ali ne le z razpoložljivostjo gumba Prekliči iskanje.
Če je lastnost nastavljena na Top, bo stanje pogleda med ukazno vrstico seznama in tabelo, ki prikazuje dinamični seznam. Če je lastnost nastavljena na Bottom, bo stanje pogleda postavljeno takoj za tabelo, ki prikazuje dinamični seznam.
Če je bil obrazec ustvarjen v 1C:Enterprise različici 8.3.4 in starejših, je lastnost nastavljena na Ne. Če je bil obrazec ustvarjen v 1C:Podjetju različice 8.3.5 in starejših, je lastnost nastavljena na Samodejno. Realna vrednost nepremičnine se v tem primeru določi na naslednji način:
● Če je lastnost Compatibility Mode nastavljena na različico 8.3.4 (in nižjo) – vrednost No;
● Če je lastnost Način združljivosti nastavljena na Ne uporabljaj ali je starejša od različice 8.3.4 – vrednost Top;
● Položaj nadzora iskanja – Določa, kje bo prikazan gumb za nadzor iskanja. Gumb odpre meni, ki vsebuje naslednje informacije: ukazi Najdi po trenutni vrednosti, Napredno iskanje, Prekliči iskanje, Nastavi obdobje (za sezname dokumentov in dnevnikov) in zgodovino iskalnih poizvedb (zadnjih 5 poizvedb). Lastnost ima lahko naslednje vrednosti: Samodejno, Brez, Ukazna plošča.


riž. 6. Upravljanje iskanja v dinamičnem seznamu

Če je lastnost nastavljena na Ne, gumb za nadzor iskanja ne bo na obrazcu (vendar bodo ukazi na voljo v meniju Več). Vrednost lastnosti ukazne vrstice postavi gumb v ukazno vrstico, povezano s tabelo, ki prikazuje dinamični seznam.
Če je bil obrazec ustvarjen v 1C:Enterprise različici 8.3.4 in starejših, je lastnost nastavljena na Ne. Če je bil obrazec ustvarjen v 1C:Podjetju različice 8.3.5 in starejših, je lastnost nastavljena na Samodejno. Realna vrednost nepremičnine se v tem primeru določi na naslednji način:
● Če je lastnost Compatibility Mode nastavljena na različico 8.3.4 (in nižjo) – vrednost No;
● Če je lastnost Način združljivosti nastavljena na Ne uporabljaj ali je starejša od različice 8.3.4 – vrednost je Ukazna plošča;
Če je na obrazcu več ukaznih plošč, katerih vir ukazov je ena tabela upravljanega obrazca (prikaz podatkov dinamičnega seznama), se bosta vrstica za iskanje in kontrolni gumb za iskanje nahajala samo v eni ukazni plošči:
● Ali v ukazni vrstici samega dinamičnega seznama (če ima omogočeno samodejno dokončanje)
● Ali v kateri koli od preostalih ukaznih plošč.

Oglejmo si značilnosti uporabe iskanja na dinamičnem seznamu:
● Da bo iskanje priročno za uporabo (vključno z vidika zmogljivosti), morate omogočiti iskanje po celotnem besedilu za vse konfiguracijske objekte, ki jih je mogoče uporabiti kot glavno tabelo dinamičnega seznama. Prav tako mora iskanje po celotnem besedilu vključevati vse podrobnosti o konfiguracijskih objektih, ki so lahko prikazani na dinamičnem seznamu in za katere je morda potrebno iskanje.
Če je predmet izključen iz iskanja po celotnem besedilu, bo zadevni iskalni mehanizem deloval, vendar bo zmogljivost takšnega iskanja izjemno nizka. Ni priporočljivo uporabljati iskanja po objektih, ki niso indeksirani z iskanjem po celotnem besedilu.
● Aplikacijska rešitev mora imeti rutinsko opravilo, ki redno posodablja indeks iskanja po celotnem besedilu.

● Iskanje se ne izvaja po vseh stolpcih dinamičnega seznama (in konfiguracijskega objekta), ampak le po tistih stolpcih, ki so prikazani v tabeli.
● Iskanje v dinamičnem seznamu po poljih referenčnih vrst s poljubnim prikazom se izvaja po poljih, ki se uporabljajo za
oblikovanje reprezentance (glej tukaj). Polja, vključena v pogled, so pridobljena ob upoštevanju upravljalnika ViewFieldGettingProcessing() ustreznega predmeta.
● Za dinamične sezname z določeno glavno tabelo se v glavni tabeli uporablja iskanje po celotnem besedilu. Vse neindeksirane povezave iz glavne tabele bodo dodane v rezultate iskanja po celotnem besedilu. Rezultat iskanja po celotnem besedilu za glavno tabelo se uporabi kot izbor na podlagi ključnih polj. Iskanje po celotnem besedilu se izvaja tudi na poljih, prikazanih na seznamu iz drugih tabel (če polje in objekt konfiguracije uporabljata iskanje po celotnem besedilu). Brez omogočenega iskanja po celotnem besedilu so lahko podatki
našli, vendar bo samo iskanje zelo počasno.
Če med poskusom iskanja po celotnem besedilu pride do napake, bo iskanje izvedeno brez uporabe iskanja po celotnem besedilu.
To se lahko na primer zgodi pri iskanju ene črke in velikega števila vrstic v informacijski bazi, ki se začnejo s to črko.
● Če je za polje v glavni tabeli dinamičnega seznama uporabljen izbor s primerjalno vrsto Equals, bo pri izvajanju iskanja po celotnem besedilu iskalni poizvedbi za to tabelo dodana vrednost izbora.
● Iskalni niz je razdeljen na besede. Ta razdelitev se izvaja v skladu z naslednjimi pravili:
● Vrstica je prekinjena z uporabo presledkov in tabulatorjev kot ločil.
● Nato se vsak nastali fragment obdela:
● Če je fragment predstavitev datuma (s časom ali brez), ki temelji na trenutni področni nastavitvi seje, potem je beseda fragment.
● V nasprotnem primeru se fragment razdeli naprej z uporabo znakov “,.-/\” kot ločila. V tem primeru se vsak nastali del niza vzame kot beseda.

● Za vsako besedo se oblikuje svoj niz pogojev, ki se združujejo z ALI. Ta nabor pogojev je ustvarjen, če je iskanje po celotnem besedilu za dano besedo v tabeli, iz katere je bilo pridobljeno to polje, vrnilo vsaj en predmet ali če za to polje ni bilo uporabljeno iskanje po celotnem besedilu. Pogoji so oblikovani na naslednji način:
● Za polje tipa String je pogoj FieldName LIKE %Word%.
● Za polje vrste Število ima pogoj obliko ImePolja=Vrednost, kjer je Vrednost beseda, pretvorjena v vrsto Število. Če oddajanja ni mogoče izvesti, se iskanje na terenu ne izvede.
● Beseda se išče kot podniz v privzeti logični predstavitvi, definirani za trenutno sejo. Če je iskalna beseda najdena v pogledu, nato išče vrednost, ki ustreza pogledu, v katerem je bila beseda najdena. V tem primeru iskanje ne uporablja pogledov, ki so podani z lastnostjo Oblikuj element obrazca.
● Za polje vrste Datum je pogoj videti takole ImePolja>=ZačetekDana(Beseda) ANDImePolja<=КонецДня(Слово). Если Слово подобно дате, в которой год
označeno z eno ali dvema števkama, bo leto zmanjšano na trenutno stoletje in ta vrednost bo dodana iskalnemu pogoju.
● Za referenčna polja se iskanje izvede po poljih, uporabljenih za oblikovanje referenčnega pogleda. V vsakem od teh polj poiščite
izvedeno po zgoraj opisanih pravilih. Iskanje ne uporablja polj, ki se uporabljajo za oblikovanje predstavitve podatkov po meri.
Nabor pogojev za vsako besedo je združen z "IN".
● Za vrednosti z začetnimi ničlami ​​lahko iščete niz z začetnimi ničlami ​​ali niz, naveden brez začetnih ničel.
● Če dinamični seznam prikazuje seznam dokumentov ali zgodovino dokumenta, je interval pogleda seznama, ki ga določite, prikazan tudi v območju obrazca, ki je rezerviran za prikaz statusa pogleda za želeni dinamični seznam.
● Ukaz Iskanje po trenutni vrednosti ni na voljo, če je izbirni kriterij glavna tabela dinamičnega seznama.
● Najdeni fragmenti niza so označeni, ko so prikazani v tabeli.
● Za en stolpec je podprt samo en iskalni niz. Pri dodajanju nove iskalne poizvedbe za stolpec, ki ga že iščete, bo iskalni izraz zamenjan, namesto da bi bili dve iskalni poizvedbi dodani skupaj.
● Če obrazec nima dodatka elementa obrazca za prikaz iskalnega niza obrazca, povezanega s tabelo (lastnost izvora dodatka elementa obrazca), ki prikazuje dinamični seznam, se s pritiskom na kombinacijo tipk Ctrl+F odpre pogovorno okno za iskanje.


riž. 7. Pogovorno okno za iskanje

Če obrazec vsebuje dodatek elementa obrazca Prikaz iskalnega niza obrazca, ki je povezan s tabelo (lastnost izvora dodatka elementa obrazca), ki prikazuje dinamični seznam, morate za odpiranje iskalnega pogovornega okna uporabiti ukaz Napredno iskanje.
● Ko uporabljate pogovorno okno za iskanje, upoštevajte naslednje:
● Če odprete iskalno pogovorno okno z bližnjico na tipkovnici, se vrednost trenutne celice prikaže v vrstici Kaj iskati, vrednost stikala Kako iskati pa je nastavljena na Po natančnem ujemanju.

● Odpiranje iskalnega pogovornega okna z neposrednim začetkom vnašanja iskalnega niza v dinamičnem seznamu vodi do dejstva, da je vrednost stikala Kako iskati nastavljena na vrednost Po delu niza in vneseno besedilo konča v Kaj v iskalno polje.

6. Pridobivanje podatkov, prikazanih z dinamičnim seznamom

Pri uporabi dinamičnih seznamov boste morda morali izvesti različna dejanja na podatkih, ki jih trenutno prikazuje dinamični seznam, ob upoštevanju uporabljenih izbir in iskanj. Takšna dejanja vključujejo: obdelavo prikazanih informacij, na primer ponovno pošiljanje izbranih dokumentov ali nastavitev nekaterih podrobnosti za izbrane predmete, ustvarjanje seznama razpoložljivih predmetov (z dizajnom itd.), na primer za tiskanje ali shranjevanje v dokument preglednice.
Če želite pridobiti podatke, ki jih prikaže dinamični seznam, morate uporabiti GetExecutableDataCompositionSchema() in
GetExecutableDataCompositionSettings().
Primer prejema podatkov:

Shema = Elements.List.GetExecutableDataCompositionSchema();
Nastavitve = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Shema, Settings);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Pridobivanje podatkov v zbirko vrednosti (tabelo ali seznam vrednosti) poteka na enak način.
Pridobivanje podatkov dinamičnega seznama na ta način ima številne značilnosti, ki jih je treba upoštevati pri razvoju aplikacijskih rešitev:
● Ta oblika tabele ni podprta:
● Izmenične barve črt;
● Slika glave;
● Slika kleti;
● Barva ozadja noge;
● Barva besedila v nogi;
● Pisava noge;
● Horizontalna lega v kleti;
● Način gesla.
● Pogojni videz, določen za upravljani obrazec, ni podprt;
● Pri urejanju hierarhične tabele v naraščajočem vrstnem redu po polju tipa Povezava so zapisi, ki vsebujejo prazno povezavo, vedno postavljeni na prvo mesto.

V procesu dokončanja konfiguracij se vsak programer 1C sreča z dinamičnimi seznami.
Dinamični seznam je vmesniški objekt, ki se uporablja za prikaz različnih seznamov objektov baze podatkov ali neobjektnih podatkov – vnosov v register.
Na primer, dinamični seznam se uporablja za prikaz seznama elementov:

Za prikaz zmožnosti dinamičnega seznama ustvarimo zunanjo obdelavo in dodamo glavni obrazec. V obrazec dodamo nov atribut z vrsto "Dinamični seznam". Pojdimo v njegove lastnosti in poglejmo, kaj je tam.
Zanima nas nepremičnina »Zahteva po meri«. Če ga omogočimo, se nam bodo pokazale vse zmožnosti dinamičnega seznama. Zahtevo bomo lahko napisali s skoraj vsemi zmožnostmi poizvedovalnega jezika sistema 1C: Enterprise. Potrdite polje in kliknite povezavo »Odpri«:

Naš seznam bo privzeto prikazal seznam artiklov s skupnim stanjem za vsa skladišča. Če želite izvesti tak seznam, dodajte naslednjo poizvedbo:


Kot glavno tabelo bomo izbrali »Imenik.Nomenklatura«, to nam bo omogočilo delo z dinamičnim seznamom, kot s seznamom nomenklature - dodajanje, spreminjanje, označevanje elementov imenika za brisanje. Prav tako namestitev glavne tabele omogoča dinamično branje podatkov - to pomeni, da bo izbiranje narejeno po delih, kot je potrebno.
Nato moramo ustvariti elemente obrazca za naš seznam:

Če poskusimo zagnati našo obdelavo v tem obrazcu, bomo prejeli napako:


Če ga želite odpraviti, morate nastaviti vrednost za parameter »Obdobje«. Če želite to narediti, lahko uporabite metodo »SetParameterValue« zbirke »Parametri« dinamičnega seznama. Metoda upošteva dva parametra:
. "Parameter" - vrsta: niz; Parameter sestave podatkov. Ime parametra ali parametra sestave podatkov, katerega vrednost želite nastaviti;
. “Vrednost” - Vrsta: Poljubno. Vrednost, ki jo želite nastaviti.
Lahko se prikliče v upravljalniku »OnCreateOnServer« obrazca:

Imate vprašanje ali potrebujete pomoč svetovalca?


Uporabniku bomo omogočili spremembo obdobja prejemanja stanj. Če želite to narediti, dodajte atribut in z njim povezan element obrazca »Datum«:


V upravljalniku »OnChange« elementa obrazca »Datum« bomo poklicali metodo »SetParameterValue« in posredovali vrednost povezanega atributa kot vrednost. Na podoben način spremenimo postopek obrazca »Pri ustvarjanju na strežniku«. Ker je metoda na voljo na odjemalcu, ni treba klicati strežnika:


Zdaj, ko se datum spremeni, se stanja samodejno posodobijo:




Predpostavimo, da uporabniki želijo videti trenutna stanja ali načrtovane prejemke. Razmislimo o eni od možnosti izvedbe. Dodajmo atribut obrazca logičnega tipa in povezano stikalo:


Pri spremembi vrednosti stikala bomo spremenili besedilo zahteve. Za to bomo uporabili obravnavo dogodka »Ob spremembi« za element obrazca »Prikaži količino ob prevzemu«. Lastnost »QueryText« dinamičnega seznama moramo spremeniti glede na vrednost atributa. Ker ta lastnost ni na voljo na odjemalcu, je treba poklicati strežniško proceduro:


Rezultat opravljenih sprememb: