Parameter v dinamičnem seznamu 1s 8.3. Obdelava in oblikovanje podatkov dinamičnega seznama

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:



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 pa jo 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 kopičnega 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 podana 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 določena ena od naslednjih tabel: glavna tabela informacijskega registra, akumulacijski register, obračunski register, obračunski register, navidezna 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 nastavi 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.

Implementirano v različici 8.3.10.2168.

Kot veste, je dinamični seznam priročen in uporaben za hitro prikazovanje velikih seznamov. Je precej prilagodljiv, saj vam omogoča spreminjanje standardne poizvedbe in celo ustvarjanje lastne zapletene poizvedbe. Zahvaljujoč temu imate možnost prikazati različne dodatne podatke na seznamu, povezane z glavnimi podatki seznama.

Vendar ima takšna vsestranskost tudi slabo stran. Želja, da bi "pokazali vse naenkrat", vas lahko privede do tega, da zahtevo znatno zapletete. Posledično boste imeli neučinkovite izvedbene načrte in posledično zmanjšano zmogljivost pri prikazovanju in premikanju po seznamu.

Poleg tega obstajajo številni uporabni problemi, pri katerih je algoritem za izbiro in oblikovanje podatkov seznama precej zapleten. V teh primerih poizvedbe po meri in zmožnosti pogojnega oblikovanja preprosto niso dovolj. Želel bi imeti bolj »brezplačno« in bolj »natančno« orodje, ki mi bo omogočilo, da naredim »karkoli« in »samo tam, kjer je potrebno«.

Dogodek ob prejemu podatkov na strežniku

Posebej za te namene smo uvedli nov upravljalnik. Doda se v razširitev tabele, ki prikazuje dinamični seznam.

Ta upravljalnik se pokliče na strežniku, potem ko dinamični seznam prejme in oblikuje naslednji podatek za prikaz.

Pomembna lastnost je, da kontekst obrazca ni na voljo v tem upravljalniku. Delujete lahko samo s zbirko tistih vrstic seznama, ki so prejete iz baze podatkov, že izbrane in oblikovane v skladu z nastavitvami dinamičnega seznama.

Podatke v teh vrsticah lahko spremenite ali celicam uporabite svoj dizajn. Na voljo so naslednje možnosti oblikovanja: Barva ozadja, Barva besedila, Pisava, Vodoravni položaj, Vidnost, Razpoložljivost, Zaslon, Besedilo in Oblika.

Po potrebi si lahko tudi ogledate in analizirate kopijo nastavitev celotnega dinamičnega seznama. Vendar ne boste mogli spremeniti nastavitev.

Najenostavnejši primer uporabe

Namen tega upravljalnika najlažje razumete s primerom. Primer je prikaz stanja iz akumulacijskega registra v seznamu blaga. Količina, manjša od določene vrednosti, je označena z rdečo barvo.

Do sedaj je bil ta problem rešen z levim združevanjem v zahtevi za dinamični seznam in pogojno zasnovo seznama, nastavljeno v konfiguratorju.

Zdaj se je tako odločila. Standardna poizvedba s seznamom ni zapletena; doda le navidezno polje Ostanek.

In v vodniku WhenReceivingDataOnServer() Samo za prejete vrstice se izračunajo ostanki. In potem so majhni ostanki označeni z rdečo.

Tukaj, po metodi GetKeys(), iz zbirke vrstic dinamičnega seznama dobite njihove ključe (povezave) in te ključe posredujete preostali poizvedbi.

Potem, ko prečkate rezultate poizvedbe, dobite zahtevane vrstice po ključu v stolpcu Ostanek postavite vrednost in po potrebi nastavite obliko tega polja.

Kot rezultat, uporabnik vidi naslednji seznam:

Kakšna je prednost te možnosti?

Prvič, poizvedba po seznamu ostaja preprosta. Ali pa ne ostane preprost, ampak se število povezav v njem zmanjša. To pomeni, da bo z veliko verjetnostjo zanj izdelan dober načrt.

Drugič, pridobivanje ostankov v obdelovalniku bo izvedeno samo enkrat, medtem ko se lahko zahteva za seznam izvede večkrat (odvisno od nastavitev seznama in ostranjevalne skripte).

In tretjič, novi upravljalnik se izvede, ko so glavni podatki prejeti iz baze podatkov in so opravili preverjanje pravic. To pomeni, da je v nekaterih scenarijih mogoče pridobivanje povezanih podatkov v upravljalniku izvesti v privilegiranem načinu, brez preverjanja dovoljenj. To pospeši seznam.

Omejitve za urejanje in dodana polja

Dejstvo, da lahko v upravljalniku spreminjate vrednosti polj seznama, ima lastnost, ki jo je treba vedno upoštevati.

Če ne boste sprejeli dodatnih ukrepov, bo uporabnik lahko zelo presenečen nad rezultati združevanja, razvrščanja ali izbire (vključno z iskanjem) po poljih, ki ste jih spremenili. Konec koncev bodo ta dejanja izvedena na podlagi izvirnih podatkov, ki jih prejme zahteva, in ne na podlagi podatkov, ki jih vidi uporabnik.

Zato v primerih, ko spremenite vrednosti polj, jih ne pozabite izključiti iz združevanja, razvrščanja in izbire. Posebej za ta namen smo uvedli tri nove metode.

Poleg tega je v nekaterih scenarijih morda smiselno vizualno poudariti takšne stolpce v tabeli, tako da lahko uporabniki vidijo, da so ti stolpci »posebni«, ne kot vsi ostali.

Končno so se uresničile sanje vsakega sedemletnika. Kako pogosto so uporabniki programa 7.7 zahtevali normalen izbor artiklov? Da lahko vidite stanja, cene in nastavite filtre. Morali smo se domisliti raznih trikov, tudi pisanja zunanjih komponent. V 1C 8.2 so se pojavili dinamični seznami. Predlagam, da razmislimo, kaj je in kaj nam lahko dajo v 1C 8.3.

Za osnovo vzemimo določeno testno konfiguracijo 1C: "Enterprise Accounting 3.0". Zdaj ne bomo izbirali, samo dodali bomo še en obrazec za izbor v imenik »Nomenklatura« in ga začasno postavili za glavnega:

Ko je ustvarjen, bo sistem obrazcu privzeto dodal polje tabele tipa "Dinamični seznam".

Pojdimo v njegove lastnosti in poglejmo, kaj je tam.

Najprej nas zanima potrditveno polje »Zahteva po meri«. To nam bo razkrilo vse prednosti dinamičnega seznama. Imeli bomo možnost napisati lastno zahtevo, s parametri. Potrdite polje in kliknite povezavo »Odpri«:

Odpre se okno s končano kodo v . Zaenkrat so tam preprosto navedena vsa polja imenika »Nomenklatura«.

Pridobite 267 video lekcij o 1C brezplačno:

Kot lahko vidite, obstaja gumb za klicanje “ ” in potrditveno polje, ki omogoča dinamično spreminjanje vsebine seznama. Se pravi, ko drug uporabnik nekaj spremeni v imeniku, se bo to spremenilo tudi na našem seznamu. Poleg tega obstaja zavihek »Nastavitve«, vendar se bomo tega dotaknili kasneje.

Poizvedba po meri na dinamičnem seznamu

Najprej ustvarimo zahtevo, ki jo potrebujemo, s stanjem in cenami. Kot to:

Zavihek »Nastavitve«.

In zdaj najboljši del! Pojdite na zavihek »Nastavitve«. In takoj vidimo, da lahko na prvem zavihku naredimo poljubne izbire za katero koli polje v zahtevi:

Programska nastavitev parametrov poizvedbe v dinamičnem seznamu 1C 8.3

Ne pozabite, da imamo v zahtevku dva parametra: »Obdobje« in »Vrsta cene«. Posredovati jih moramo v zahtevo, sicer bo prišlo do napake.

Te parametre zapišimo v parametre obrazca in v modul obrazca dodajmo naslednje vrstice:

&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing) List. Opcije. SetParameterValue("Obdobje" , Parametri. Datum) ; Seznam. Opcije. SetParameterValue("PriceType", Parameters.PriceType) ; EndProcedures Domači zapiski skozi ogledalo

21.04.2014 Prejem podatkov dinamičnega seznama

Izvedeno v različici 8.3.6.1977.

Implementirali smo možnost enostavnega in priročnega pridobivanja podatkov, prikazanih z uporabo dinamičnega seznama.

Morda boste potrebovali podatke dinamičnega seznama, da jih natisnete v nestandardni, »posebni« obliki. Ali da bi z njimi izvedli določena dejanja. Na primer, pošljite pismo vsem izvajalcem, ki ste jih izbrali na seznamu po določenih kriterijih.

Poleg tega obstajajo številna opravila, pri katerih želi uporabnik poleg seznama elementov videti tudi povzetek podatkov, povezanih s tem seznamom. Na primer, ko izbere izdelke določene skupine izdelkov in določenega dobavitelja, takoj želi videti skupno število teh izdelkov v bazi podatkov.

Dinamični seznam sam po sebi ne more zagotoviti teh informacij. Namen dinamičnega seznama je omogočiti hiter pregled velikih količin podatkov. Zato bere podatke v kosih, ki so potrebni za prikaz na enem ali dveh zaslonih. In "ne ve ničesar", na primer, o skupni količini podatkov, ki jih mora prešteti.

Na splošno morate za pridobitev dodatnih informacij, ki jih uporabnik želi, zagnati poizvedbo po bazi podatkov. Popolnoma enak tistemu, uporabljenemu v dinamičnem seznamu.

Včasih si to lahko počel. A ni bilo vedno lahko. Navsezadnje ste morali poleg besedila prvotne zahteve, na podlagi katere deluje dinamični seznam, poznati vse izbire, razvrščanja in druge parametre, ki jih je uporabnik interaktivno nastavil v tabeli, ki prikazuje podatke.

Zdaj je to težavo mogoče preprosto rešiti. Tabela dinamičnega seznama ima zdaj dve novi metodi:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Tako dobite samo shemo postavitve podatkov in, kar je najpomembneje, vse njene nastavitve, zaradi katerih uporabnik vidi seznam točno tako. Vse kar morate storiti je, da programsko sestavite postavitev in jo prikažete v zbirki vrednosti (za programsko obdelavo) ali v dokumentu preglednice (za prikaz):

Kot rezultat boste prejeli strukturo (ali poročilo), ki vsebuje stolpce in vrstice, prikazane v tabeli dinamičnega seznama.

Pomembno je, da postavitev in nastavitve, ki jih prejmete iz tabele z dinamičnim seznamom, med drugim upoštevajo vidnost stolpcev in uporabljeno iskanje. Ker se nastavitve pridobivajo ločeno, lahko spremenite sestavo polj za lastne namene in dobite na primer vse stolpce seznama in ne le tistih, ki so vidni uporabniku.

Pri izpisu v dokument s preglednico je še en prijeten trenutek. Na splošno bo videz poročila ustrezal videzu tabele dinamičnega seznama v času prejema sheme in nastavitev. Vključno s pogojno zasnovo tabele. Nekaj ​​dodatnih dejanj boste potrebovali le, če želite prenesti pogojno zasnovo obrazca v poročilo.