1s 8.3 odstrániť výber v dynamickom zozname

Tlačiť (Ctrl+P)

Dynamický zoznam

1. Všeobecné informácie

Dynamický zoznam je špeciálny dátový typ, ktorý vám umožňuje zobraziť ľubovoľné informácie z databázových tabuliek vo formulári. Ak to chcete urobiť, musíte zadať tabuľku, z ktorej chcete zobraziť údaje, alebo opísať výsledný výber v jazyku dotazu.
Mechanizmus je založený na systéme skladania údajov a poskytuje možnosti triedenia, výberu, vyhľadávania, zoskupovania a podmieneného formátovania prijatých údajov. V tomto prípade je zdrojom údajov požiadavka, ktorá je buď vygenerovaná systémom automaticky (na základe zadaných údajov), alebo zapísaná manuálne vývojárom.

Ryža. 1. Možnosti vytvorenia dynamického zoznamu

Pri vytváraní atribútov formulára typu DynamicList vývojár si môže zvoliť dva spôsoby vytvorenia dátového dotazu:
● Zadaním hlavnej tabuľky – v tomto prípade stačí zadať tabuľku (Vlastnosť hlavnej tabuľky), z ktorej chcete prijímať údaje, a systém automaticky vygeneruje dopyt na údaje (pozri pravú časť na obr. 1).
● Manuálne generovanie požiadavky - na to je potrebné nastaviť vlastnosť Vlastná požiadavka (pozri ľavú stranu Obr. 1). Potom bude k dispozícii manuálne generovanie požiadavky na získanie údajov z infobázy.
Dotaz môže získať údaje z viacerých tabuliek, takže môžete zadať primárnu tabuľku. Je to preto, aby dynamický zoznam mohol určiť, ktoré údaje sú primárne a ktoré sekundárne, a mohol správne vybrať a zobraziť informácie, ako aj poskytnúť štandardné príkazy. Ak však nie je možné určiť hlavnú tabuľku v dotaze, nemožno ju špecifikovať, ale potom
dynamický zoznam nebude poskytovať príkazy súvisiace s hlavnou tabuľkou. Okrem toho sa v tomto prípade (bez uvedenia hlavnej tabuľky) výrazne zníži efektivita získavania údajov dynamickým zoznamom.
Na zlepšenie výkonu sa odporúča, aby všetky spojenia používané vo vlastnom dotaze len na získanie dodatočných údajov boli voliteľné pomocou rozšírenia systému dotazovania na zloženie údajov.
Pre dynamický zoznam, ktorý je hlavným atribútom formulára, je možné nastaviť hodnoty výberu pomocou parametra formulára Výber. Na to je potrebné, aby sa názov vlastnosti štruktúry nachádzal v parametri Výber,
sa zhoduje s názvom poľa dynamického výberu zoznamu. V tomto prípade bude hodnota vlastnosti štruktúry nastavená ako správna hodnota prvku výberu. Ak sa pole, pevné pole alebo zoznam hodnôt odovzdá ako hodnota prvku parametra Výber formulára dynamického zoznamu, potom sa k výberu pridá podmienka s možnosťou V zozname so správnou hodnotou. z ktorých je umiestnený zoznam hodnôt (na ktoré sa konvertuje pole a pevné pole).
Ľubovoľným dotazom v dynamickom zozname môže byť dotaz, v ktorom sa parameter používa na generovanie hodnoty poľa, napríklad:

VYBERTE SI
VOĽBA
KEĎ Doručenie. Koeficient = 1 POTOM &Prezentácia
INAK Dodanie. Koeficient
KONIEC AS pomer
OD

Navyše, ak sa typ hodnoty parametra líši od typu atribútu objektu (napr. Rekvizity1 má typ číslo a hodnota parametra je typ Linka), potom na správne zobrazenie poľa musíte explicitne preniesť hodnotu parametra na požadovaný typ:

VYBERTE SI
VOĽBA
KEĎ Delivery.Coefficient = 1 TAK EXPRESS(&Representation AS String(100)) ELSE Delivery. Koeficient
KONIEC AS pomer
OD
Dokument.Dodanie produktov AKO doručiť

Ak je pole, ktorým sa nastavuje výber, deaktivované pomocou funkčných možností, výber pomocou takéhoto poľa sa nenainštaluje, aj keď sa hodnota výberu odovzdá ako parametre formulára alebo odkazy na parametre výberu.
Pomocou vlastnosti dynamického čítania údajov označíte dynamický zoznam potrebu čítať údaje po malých častiach
(ďalšie podrobnosti o spôsoboch získavania údajov pomocou dynamického zoznamu a ukladania údajov do vyrovnávacej pamäte nájdete nižšie). Bez ohľadu na tento atribút platia nasledujúce podmienky:

● Ak je režim zobrazenia nastavený na hierarchický zoznam, budú sa čítať iba údaje aktuálnej skupiny a údaje všetkých rodičovských prvkov (bez potomkov).
● Ak je nastavený režim stromového zobrazenia, budú sa čítať iba údaje z otvorených uzlov stromu.
● Jednorazové načítanie údajov dynamického zoznamu nie je podporované, ak je nastavené hierarchické prehliadanie (vlastnosť zobrazenia je nastavená na Strom) a počiatočné zobrazenie stromu je nastavené na možnosť Rozbaliť všetky úrovne. Na získanie údajov sa odošle toľko požiadaviek na server, koľko je uzlov v zobrazenom zozname.
V rámci jediného načítania údajov dynamický zoznam opätovne používa predtým vytvorené dočasné tabuľky, ak sú splnené nasledujúce podmienky:
● Dávkový dotaz zoznamu nemá po hlavnom dávkovom dotaze žiadne dotazy.
● Zloženie dočasných tabuliek a polí v nich je nezmenené od predchádzajúceho vykonania dávkovej požiadavky.

Vo svojej práci dynamický zoznam používa hodnoty nasledujúcich vlastností podrobností o objekte metadát:
● formát,
● úprava formátu,
● nápoveda,
● znak pre zvýraznenie záporných hodnôt,
● maska,
● viacriadkový znak režimu,
● znak pokročilých úprav,
● režim hesla.
Pri zobrazovaní a úprave výberu a parametrov systému skladania údajov sa používa formát úpravy príslušného poľa.

2. Obmedzenia a funkcie

Pri nastavovaní výberu v dynamickom zozname nezabudnite, že výber neovplyvní skupiny, ak je režim zobrazenia dynamického zoznamu Hierarchický zoznam alebo Strom. Pod „skupinami“ rozumieme prvok adresára alebo plánu typov charakteristík, ktorých vlastnosť ThisGroup je nastavená na hodnotu True.
Použijú sa kvalifikácie automaticky aplikované dynamickým zoznamom na štandardné podrobnosti Vlastník, Rodič, Dátum, Obdobie a Táto skupina
pomocou štandardných nástrojov systému na zostavovanie údajov. Výber, automaticky aplikovaný dynamickým zoznamom na kľúčové polia, je možné použiť štandardnými prostriedkami systému na zostavovanie údajov, ako aj priamym pridaním podmienok do textu požiadavky IN do polí hlavnej tabuľky. V dôsledku aplikovania výberov pomocou nástrojov rozloženia je možné ich použiť vo vnorených dopytoch aj v parametroch virtuálnych tabuliek.

Pri vývoji dynamických zoznamov sa odporúča otestovať všetky dynamické zoznamy pomocou vlastných dopytov. Počas procesu overovania by ste sa mali uistiť, že ak dotaz na zoznam obsahuje vnorené dotazy alebo virtuálne tabuľky a v nich polia s aliasmi, ktoré sa zhodujú s aliasmi štandardných podrobností Vlastník, Rodič, Dátum, Obdobie, Táto skupina alebo kľúčové polia sú k dispozícii pre výber, potom sú tieto polia platné, zodpovedajú štandardným údajom, s ktorými sa zhoduje ich prezývka. Ak to tak nie je, treba zmeniť požiadavku tak, aby sa zhodovali resp
prezývka bola iná.
Ak sa rozhodnete manuálne vygenerovať požiadavku, potom sa na žiadosť vzťahujú určité obmedzenia:
● Použitie príkazu FIRST v dotaze na dynamický zoznam nie je podporované. Ak potrebujete použiť výber obmedzený počtom záznamov v dynamickom zozname, mali by ste prepracovať požiadavku na generovanie dynamického zoznamu tak, aby sa skutočný obsah požiadavky umiestnil do poddotazu a obmedzili počet záznamov prijaté v tomto poddotaze. Namiesto poddotazu môžete použiť aj dočasnú tabuľku.
● Výber, triedenie a zoskupovanie nie sú podporované:

  • Podľa detailov tabuľkových častí.
  • Zobraziť polia.
  • Pole DataVersion.
  • Pole PredefinedDataName.
  • Pole typu tabuľky účtovnej osnovy.
  • Pole Typ pohybu tabuľky registra akumulácie.
  • Pole TypeValues ​​tabuľky charakteristického typového plánu.
  • Typ poľa Typ;
  • Pole typu String (neobmedzená dĺžka).
  • Pole typu BinaryData.

● Triedenie a zoskupovanie podľa polí subconto nie je podporované<НомерСубконто>a ViewSubconto<НомерСубконто>Tabuľky Pohyby Podkonto účtovného registra.
● Zoskupovanie podľa polí, ktoré sú výrazmi v jazyku dotazov obsahujúcich agregačné funkcie, nie je podporované.
● Keď je vybratá hlavná tabuľka, dotaz na dynamický zoznam má nasledujúce obmedzenia:

  • Pripojenia nie sú podporované.
  • Sekcia ORDER BY nie je podporovaná. Mali by ste použiť dotaz bez hlavnej tabuľky alebo nastaviť potrebné zoradenie prostredníctvom nastavení dynamického zoznamu.

● Ak je dynamický zoznam zobrazený ako hierarchický zoznam alebo strom, potom sa položka nezobrazí ako dynamický zoznam, pokiaľ nie je zobrazený aspoň jeden rodič tejto položky. Inými slovami, na zobrazenie prvku hierarchického zoznamu musí dynamický zoznam zobraziť aj všetkých rodičov tohto prvku až po začiatok zoznamu. V tomto prípade hornou časťou zoznamu máme na mysli jedno aj druhé
koreňový prvok hierarchického objektu zobrazeného dynamickým zoznamom alebo prvok nastavený ako vlastnosť ParentTopLevel rozšírenia tabuľky formulárov pre dynamický zoznam.

Použitie nasledujúcich tabuliek ako hlavnej tabuľky dynamického zoznamu nie je podporované:

● Tabuľka, ktorá nemá kľúč, ktorý jednoznačne identifikuje každý záznam tabuľky (odkaz pre tabuľky objektov a kľúč záznamu pre tabuľky registrov). Nasledujúce tabuľky však možno nastaviť ako hlavnú tabuľku dynamického zoznamu (napriek tomu, že nemajú kľúč):

● Tabuľka podsúborov účtovného registra;
● všetky virtuálne tabuľky účtovného registra okrem tabuľky MovementsSubconto;
● tabuľky konštantných hodnôt ​​(vrátane tabuľky konštant);
● tabuľky externých zdrojov údajov bez kľúčových polí;
● kockové tabuľky externých zdrojov údajov;
● tabuľky akumulačných registrov:

  • revolučný stôl;
  • bilančná tabuľka;
  • tabuľka obratov a zostatkov.

● tabuľky výpočtových registrov:

  • tabuľka skutočnej doby platnosti;
  • rozvrhové údaje;
  • základné údaje.

● Tabuľky tabuľkových častí objektov;
● Zmeniť registračné tabuľky (používané v mechanizmoch výmeny údajov);
● sekvenčné tabuľky;
● Konverzné tabuľky (používané v mechanizmoch pravidelného zúčtovania).
● Tabuľka, ktorá sa používa v dotaze iba vo vonkajšom spojení.

Inými slovami, dynamický zoznam so zadanou hlavnou tabuľkou bude fungovať správne, ak v dôsledku vykonania dotazu
zadaný ako zdroj údajov sa počet riadkov získaných z hlavnej tabuľky nezvýši (berúc do úvahy uložený výber). Ak sa v dôsledku vykonania dotazu zvýši počet riadkov získaných dotazom z hlavnej tabuľky, povedie to k narušeniu jedinečnosti kľúča záznamov tabuľky zobrazenej zoznamom. V tomto prípade musíte zakázať používanie hlavnej tabuľky dynamického zoznamu.
Pri práci s dynamickým zoznamom musíte brať do úvahy prístupové práva k detailom zobrazeným zoznamom:
● Údaje zo stĺpcov dynamického zoznamu, ktoré sú označené vlastnosťou Vždy použiť, ale pre ktoré aktuálny používateľ nemá právo Zobraziť, sa neprenášajú na stranu klienta. Prístup k údajom takýchto stĺpcov (pomocou vlastnosti CurrentData a metódy RowData())
na strane klienta nie je možné.
● Ak aktuálny používateľ nemá právo Zobraziť na kľúčové pole dynamického zoznamu, načítanie údajov z tohto dynamického zoznamu bude mať za následok chybu narušenia prístupu.
Pre dynamický zoznam, ktorý zobrazuje zoznam enumerácií, neexistuje možnosť interaktívneho prispôsobenia zoznamu.
Zloženie stĺpcov a nastavenia dynamického zoznamu sú spojené s poľami dotazu pomocou aliasov polí výberu. Ak alias nie je explicitne špecifikovaný v dotaze na výberové pole a pole je systémové, potom sa ako alias použije názov poľa pre anglickú verziu vstavaného jazyka.
Zadaný vzťah znamená, že pri zmene (alebo explicitnom určení aliasu pre pole, pre ktoré bol použitý automatický alias)
alias poľa dopytu, ktoré generuje údaje dynamického zoznamu, sa stratia nastavenia atribútov dynamického zoznamu, prvky formulára „stratia“ zobrazené podrobnosti, nastavenia dynamického zoznamu budú nesprávne atď.
Ak je zdrojom údajov dynamického zoznamu tabuľka (bežná alebo virtuálna), ktorá umožňuje nastaviť výber podľa obdobia, tak ak používateľ nastaví obdobie zobrazenia v takomto dynamickom zozname (príkaz Nastaviť interval dátumu...),
zadané hranice obdobia budú nastavené ako hodnoty výberu alebo parametre virtuálnej tabuľky. Ak pomocou jazykového rozšírenia
dopytov na systém skladania údajov boli explicitne špecifikované názvy parametrov virtuálnej tabuľky - parametre so zadanými
mená. Tabuľky, u ktorých je možné ovládať obdobie zobrazovania alebo spracovania údajov:
● registrovať tabuľky (hlavné alebo virtuálne), pre ktoré je možné vyberať podľa obdobia (pre kalkulačný register - podľa obdobia registrácie);
● hlavné tabuľky dokumentov, obchodných procesov a úloh;
● hlavné tabuľky denníkov dokumentov;
● hlavné sekvenčné tabuľky, sekvenčné hraničné tabuľky.
Parametrom dotazu na dynamický zoznam môže byť pole alebo zoznam hodnôt. Ak je však parametrom zoznam hodnôt, potom sa ako hodnota výberu použije iba prvá hodnota v zozname. Ak dynamický zoznam používa dotaz s parametrami, počiatočné nastavenie hodnôt parametrov sa musí vykonať v obslužnom programe OnCreateOnServer.
Pri zobrazovaní údajov dynamického zoznamu majte na pamäti nasledujúce body:
● Keď programovo zmeníte vlastnosti dynamického zoznamu, panely príkazov priradené k zoznamu sa automaticky znovu nevyplnia.
s týmto dynamickým zoznamom.
● Ak sú viaceré polia zoskupené do skupiny s režimom zoskupovania v bunke a v zoskupených poliach je pole, ktoré sa zobrazuje ako začiarkavacie políčko, potom sa toto začiarkavacie políčko vždy zobrazí ako prvé vo výslednej bunke (naľavo od text).
V dynamickom zozname pri určovaní typu údajov pre polia, ktorých výrazy zahŕňajú parametre, polia alebo literály, je výsledný typ určený typmi polí a literálov. Ak typ hodnoty parametra nie je zahrnutý vo výslednom dátovom type, jeho hodnota bude skrátená.
Napríklad v nasledujúcom príklade bude pole typu Číslo.

VOĽBA
KEĎ JE TO KLAMSTVO
POTOM 5
INAK
&Parameter
KONIEC

Ak nastavíte parameter Parameter na hodnotu iného typu, dynamický zoznam pre toto pole dostane hodnotu 0 (predvolená hodnota pre typ Číslo).
Ak v takejto situácii potrebujete vybrať parameter iného typu, odporúča sa použiť konštrukciu dotazovacieho jazyka EXPRESNÉ. Napríklad,
ak vo vyššie uvedenom príklade potrebujete do parametra vložiť reťazec nie dlhší ako 100 znakov, mali by ste nahradiť jednoduchú indikáciu parametra výrazom s explicitným typovým pretypovaním:

VOĽBA
KEĎ JE TO KLAMSTVO
POTOM 5
INAK
EXPRESS(&Parameter AS String(100))
KONIEC

Ak ľubovoľný text žiadosti o dynamický zoznam používa parametre vo výrazoch výberových polí, mali by ste explicitne uviesť typ parametrov pomocou konštrukcie EXPRESNÉ. Napríklad namiesto toho &Nomenklatúra AS Nomenklatúra použitie
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS Nomenklatúra. V opačnom prípade môže vyhľadávanie cez vyhľadávací panel fungovať
nesprávne alebo spôsobujú chyby.

3. Metódy na získavanie a ukladanie údajov do vyrovnávacej pamäte s dynamickým zoznamom

Pri získavaní údajov na zobrazenie využíva dynamický zoznam jednu z troch metód:
1. Čítanie z databázy sa vykonáva po častiach s počtom dátových prvkov o niečo väčším, ako je počet riadkov súčasne zobrazených v zozname (ale nie menej ako 20). Údaje sa neukladajú do vyrovnávacej pamäte na serveri.
2. Čítanie z databázy sa vykonáva po stranách 1 000 údajových položiek. Údaje sa ukladajú do vyrovnávacej pamäte na serveri. Hierarchické údaje sa ukladajú do vyrovnávacej pamäte: pre každého rodiča sa do vyrovnávacej pamäte neukladajú viac ako 2 stránky prvkov. Na jeden dynamický zoznam sa neukladá viac ako 20 stránok položiek. Ukladanie do vyrovnávacej pamäte bude povolené dynamickým zoznamom pre nasledujúce tabuľky:
● Kritériá výberu;
● všetky tabuľky účtovného registra okrem hlavnej tabuľky a tabuľky Pohyby Podkont;
● Všetky tabuľky akumulačných registrov okrem hlavnej tabuľky;
● všetky tabuľky informačného registra okrem hlavnej tabuľky;
● Všetky tabuľky výpočtového registra okrem hlavnej tabuľky;
● Virtuálna tabuľka úloh podľa účinkujúcich;
● Tabuľky externých zdrojov bez kľúčov;
● Kocky z externých zdrojov.

3. Čítanie z databázy sa vykonáva po stranách 1 000 prvkov. Prvá časť sa rovná 1 strane. Každá nasledujúca časť sa zväčší o 1 stranu (keď sa dosiahne koniec predchádzajúcej ukážky). Čím bližšie sa „bod pohľadu“ približuje ku koncu zobrazených údajov, tým väčšia je vzorka načítaná z databázy, ktorá sa prípadne rovná všetkým zobrazeným údajom. Údaje sa ukladajú do vyrovnávacej pamäte na serveri. Maximálny počet záznamov vo vyrovnávacej pamäti a dynamickom zozname je 1 000 000.
V závislosti od toho, čo je vybrané hlavnou tabuľkou dynamického zoznamu a akú hodnotu má vlastnosť Dynamické čítanie, sa používa jeden alebo druhý spôsob čítania údajov:

● Ako hodnota vlastnosti Hlavná tabuľka je určená jedna z nasledujúcich tabuliek: výmenný plán, adresár, zoznam dokladov, dokladový denník, plán druhov charakteristík, účtová osnova, plán druhov kalkulácií, obchodný proces, úloha, tabuľka body obchodného procesu:



● Ako hodnota vlastnosti Hlavná tabuľka je určená jedna z nasledujúcich tabuliek: hlavná tabuľka informačného registra, akumulačný register, účtovný register, kalkulačný register, virtuálna tabuľka účtovného registra PohybySubkonto:

● Vlastnosť dynamického čítania:
● Nainštalované: používa sa metóda 1 (popis metód je uvedený vyššie).
● Reset: Používa sa metóda 2 (popis metód je uvedený vyššie).

● Vlastnosť Hlavná tabuľka obsahuje tabuľku kritérií výberu alebo tabuľku úloh podľa vykonávateľa (Úlohy podľa interpreta):
● Kľúč identifikujúci riadok tabuľky: Odkaz.

● Vlastnosť Main table určuje virtuálnu tabuľku informačného registra SliceFirst alebo SliceLast:
● Kľúč identifikujúci riadok tabuľky: RecordKey.
● Nie je možné použiť vlastnosť Dynamické čítanie.
● Používa sa metóda 2 (popis metód je uvedený vyššie).

● Vlastnosť Hlavná tabuľka je nastavená na jednu z tabuliek virtuálnych registrov, okrem tých, ktoré sú uvedené vyššie:

● Nie je možné použiť vlastnosť Dynamické čítanie.

● Nie je špecifikovaná vlastnosť Main table, používa sa ľubovoľný dotaz:
● Kľúč identifikujúci riadok tabuľky: Číslo.
● Nie je možné použiť vlastnosť Dynamické čítanie.
● Používa sa metóda 3 (popis metód je uvedený vyššie).

Na zobrazenie sa dáta prenášajú klientovi po častiach, ktorých veľkosť je podobná veľkosti časti pri 1. spôsobe čítania dát (popísaný na začiatku tejto časti).
Keď vytvoríte formulár, ktorý obsahuje dynamický zoznam, klientovi sa na začiatku odovzdá 45 údajových položiek pre každý viditeľný dynamický zoznam (ak má zoznam viac ako 45 položiek). Ak dynamický zoznam zobrazuje viac ako 45 riadkov, pri otvorení formulára sa uskutoční dodatočné volanie servera na získanie chýbajúcich údajových položiek.

4. Nastavenia dynamického zoznamu

Nastavenia zoznamu nehnuteľností - kliknutím na hypertextový odkaz Otvoriť sa otvorí formulár pre nastavenie zobrazenia dynamického zoznamu. Nastavenie zoznamu sa vykonáva rovnakým spôsobom ako podobné operácie v systéme zostavovania údajov.


Ryža. 2. Podmienený štýl dynamického zoznamu

Pri nastavovaní dynamického zoznamu v konfigurácii má vývojár aplikácie možnosť vykonať nasledovné:
● nastavte polia, podľa ktorých chcete triediť;
● popísať výber údajov v zozname;
● špecifikovať podmienené nastavenia vzhľadu;
● nastavte polia, podľa ktorých chcete zoskupiť údaje.
Má zmysel nastaviť triedenie vývojárovi, ak nie ste spokojní s predvoleným triedením nainštalovaným systémom.

RADY. Je potrebné pripomenúť, že zlý výber triediacich polí (ako aj výber a zoskupovanie údajov) negatívne ovplyvňuje účinnosť dynamického vzorkovania.
Z pohľadu vývojára aplikácie sa nastavenia dynamického zoznamu skladajú z niekoľkých častí, ktoré sú vzájomne prepojené. Hlavnou vlastnosťou, prostredníctvom ktorej môžete spravovať nastavenia dynamického zoznamu, je LinkerSettings. Tento objekt obsahuje tri sady nastavení, ktoré po spustení systému určujú konečné nastavenia použité na dynamický zoznam:
● Nastavenia – nastavenia vytvorené v režime Konfigurátor. Vlastnosť Order dynamického zoznamu poskytuje rýchly prístup k vlastnosti Settings.Order nástroja na tvorbu nastavení dynamického zoznamu, takže nasledujúce konštrukcie sú ekvivalentné:
List.Order a List.SettingsLinker.Settings.Order;
● UserSettings – sú to nastavenia, ktoré mení používateľ v režime 1C:Enterprise;
● Pevné nastavenia – tieto nastavenia sa nastavujú zo vstavaného jazyka. Táto vlastnosť obsahuje aj hodnoty výberu, ktoré sa prenesú do formulára pomocou jeho parametrov. Vlastnosti dynamického zoznamu Výber, Možnosti, Podmienený vzhľad poskytujú rýchly prístup k pevným nastaveniam nástroja na tvorbu nastavení dynamického zoznamu. Inými slovami, tieto hovory sú ekvivalentné:
List.Settings Composer.FixedSettings.Selection a List.Selection.
Pri vytváraní konečných nastavení pre dynamický zoznam sa rôzne možnosti nastavení kombinujú takto:
● Ak je akýkoľvek typ nastavení úplne označený ako vlastný, výsledné nastavenia zahŕňajú vlastné nastavenia
(List.ComposerSettings.UserSettings). Navyše, ak sú niektoré prvky nastavení označené ako nedostupné, potom sa tieto nastavenia umiestnia do výsledných nastavení z vlastnosti List.Settings Composer. Nastavenie.
● Ak je akýkoľvek typ nastavení označený ako vlastný nie celý, ale prvok po prvku, potom:
● Položky označené ako vlastné budú zahrnuté do výsledných nastavení z vlastnosti List.SettingsComposer.CustomSettings.
● Položky označené ako nedostupné budú zahrnuté do výsledných nastavení z vlastnosti List.SettingsComposer.Settings.
● Pevné nastavenia (List.SettingsComposer.FixedSettings) sa pridajú k výsledným nastaveniam „tak, ako sú“. Zároveň je neprijateľné, aby pevné a používateľské nastavenia obsahovali nastavenia s rovnakým názvom, napríklad výber s rovnakou ľavou hodnotou v podmienke.

Ak nastavenia dynamického zoznamu obsahujú nastavenia, ktoré sú vypnuté pomocou funkčných možností, tieto nastavenia budú odstránené zo zoznamu dostupných nastavení, keď sa načítajú údaje dynamického zoznamu.
Ovládanie toho, ktoré nastavenia budú pre používateľa dostupné a ktoré nie, sa vykonáva v okne nastavení dynamického zoznamu.


Ryža. 3. Kontrolujte zahrnutie do používateľských nastavení

Zaškrtávacie políčko v spodnej časti okna (pozri obr. 3) je zodpovedné za umiestnenie celého typu nastavení do nastavení (normálne alebo rýchle). Táto funkcia je k dispozícii na výber, zoradenie, zoskupenie a podmienenie. Ak sú nastavenia zadané v režime úprav Rýchly výber, potom vo vlastnosti Skupina používateľských nastavení tabuľky formulára zobrazujúceho dynamický zoznam musíte zadať prázdnu skupinu formulára, v ktorej budú prvky spojené s rýchlymi používateľskými nastaveniami nájde sa dynamický zoznam. Ak nie je zadaná skupina, rýchle užívateľské nastavenia sa vo formulári nezobrazia. Je tiež možné explicitne vyvolať vytvorenie vlastných nastavení pomocou vstavaného jazyka pomocou metódy CreateCustomSettingsFormItems() rozšírenia dynamického zoznamu.
V používateľských nastaveniach je možné zvoliť aj umiestnenie konkrétnych položiek nastavení. Táto funkcia je dostupná pre prvky výberu a podmieneného návrhu (pozri obrázok 3).

Ak pri otváraní dynamického zoznamu potrebujete načítať nejaké špeciálne nastavenia, môžete to urobiť dvoma spôsobmi:
● Použitie parametra formulára dynamického zoznamu UserSettings. Údaje obsiahnuté v tomto parametri budú umiestnené v nastaveniach dynamického zoznamu používateľa.
● Použitie formulára dynamického zoznamu parametraUserSettingsKey. Ak pri otváraní formulára zadáte tento parameter, do dynamického zoznamu, ktorý je hlavným atribútom formulára, sa načítajú používateľské nastavenia nachádzajúce sa v úložisku nastavení so zadaným kľúčom.

5. Hľadajte v dynamickom zozname

Dynamický zoznam umiestnený na formulári poskytuje možnosť interaktívneho vyhľadávania zobrazených údajov. Vyhľadávanie je možné vykonať pomocou nasledujúcich nástrojov: vyhľadávací panel, vyhľadávacie dialógové okno, vyhľadávanie aktuálnej hodnoty, používanie histórie vyhľadávania a nastavenie obdobia (pre dynamické zoznamy zobrazujúce dokumenty). Výsledkom vyhľadávania je obmedzený súbor záznamov
dynamický zoznam (tých, ktoré sú dostupné danému používateľovi), ktoré zodpovedajú kritériám vyhľadávania.
Na ovládanie možností vyhľadávania dynamického zoznamu existujú tri vlastnosti tabuľky v riadenom formulári, ktorý zobrazuje dynamický zoznam:
● Pozícia vyhľadávacieho reťazca – určuje pozíciu vyhľadávacieho reťazca. Môže nadobudnúť nasledujúce hodnoty: Auto, Panel príkazov, Žiadny, Horný, Dolný.


Ryža. 4. Vyhľadajte reťazec v dynamickom zozname

Ak je hodnota tejto vlastnosti nastavená na Panel príkazov, potom sa hľadaný reťazec zobrazí na paneli príkazov formulára (ak je dynamický zoznam hlavným atribútom formulára) alebo v paneli príkazov pridruženom k ​​dynamickému zoznamu. Panel vyhľadávania umiestnený na paneli príkazov je vždy stlačený na pravom okraji panela príkazov (spolu s tlačidlami umiestnenými napravo od panela vyhľadávania).
Ak je vlastnosť nastavená na Nie, potom hľadaný reťazec nebude vo formulári a keď začnete písať hľadaný reťazec, otvorí sa dialógové okno.
Ak je vlastnosť nastavená na Hore, vyhľadávací panel sa bude nachádzať medzi panelom príkazov zoznamu a tabuľkou zobrazujúcou dynamický zoznam. Ak je vlastnosť nastavená na Dole, hľadaný reťazec sa umiestni hneď za tabuľku zobrazujúcu dynamický zoznam.


● Ak je vlastnosť Režim kompatibility nastavená na Nepoužívať alebo je staršia ako verzia 8.3.4 – hodnota je Príkazový panel.
Prejdite na riadok vyhľadávania takto:
● Stlačením kombinácie kláves Ctrl+F;
● Myš;
● Keď začnete písať do dynamického zoznamu (berúc do úvahy hodnotu vlastnosti SearchOnTyping dynamického zoznamu).
● Pozícia stavu zobrazenia – popisuje, kde sa zobrazí stav zobrazenia: aké polia boli vyhľadávané a aké hodnoty
hľadali v každej oblasti. Môže nadobudnúť nasledujúce hodnoty: Auto, None, Top, Bottom


Ryža. 5. Stav vyhľadávania v dynamickom zozname

Ak je vlastnosť nastavená na Nie, potom sa vo formulári nebude nachádzať stav zobrazenia. V dôsledku toho bude možné určiť, či bolo vyhľadávanie dokončené alebo nie, iba dostupnosťou tlačidla Zrušiť vyhľadávanie.
Ak je vlastnosť nastavená na Top, stav zobrazenia sa bude nachádzať medzi panelom príkazov zoznamu a tabuľkou zobrazujúcou dynamický zoznam. Ak je vlastnosť nastavená na Dole, stav zobrazenia sa umiestni hneď za tabuľku zobrazujúcu dynamický zoznam.
Ak bol formulár vytvorený vo verzii 1C:Enterprise 8.3.4 a staršej, vlastnosť je nastavená na No. Ak bol formulár vytvorený vo verzii 1C:Enterprise 8.3.5 a staršej, vlastnosť je nastavená na Auto. Skutočná hodnota nehnuteľnosti sa v tomto prípade určí takto:
● Ak je vlastnosť Režim kompatibility nastavená na Verzia 8.3.4 (a nižšia) – hodnota Nie;
● Ak je vlastnosť Režim kompatibility nastavená na Nepoužívať alebo je staršia ako verzia 8.3.4 – hodnota Top;
● Pozícia ovládania vyhľadávania – určuje, kde sa zobrazí tlačidlo ovládania vyhľadávania. Tlačidlom sa otvorí ponuka, ktorá obsahuje nasledujúce informácie: príkazy Hľadať podľa aktuálnej hodnoty, Rozšírené vyhľadávanie, Zrušiť vyhľadávanie, Nastaviť obdobie (pre zoznamy dokladov a denníkov) a históriu vyhľadávacích dopytov (posledných 5 dotazov). Vlastnosť môže nadobúdať nasledujúce hodnoty: Auto, Žiadne, Panel príkazov.


Ryža. 6. Správa vyhľadávania v dynamickom zozname

Ak je vlastnosť nastavená na Nie, potom ovládacie tlačidlo vyhľadávania nebude vo formulári (príkazy však budú dostupné pomocou ponuky Viac). Hodnota vlastnosti Panel príkazov umiestni tlačidlo na panel príkazov priradený k tabuľke zobrazujúcej dynamický zoznam.
Ak bol formulár vytvorený vo verzii 1C:Enterprise 8.3.4 a staršej, vlastnosť je nastavená na No. Ak bol formulár vytvorený vo verzii 1C:Enterprise 8.3.5 a staršej, vlastnosť je nastavená na Auto. Skutočná hodnota nehnuteľnosti sa v tomto prípade určí takto:
● Ak je vlastnosť Režim kompatibility nastavená na Verzia 8.3.4 (a nižšia) – hodnota Nie;
● Ak je vlastnosť Režim kompatibility nastavená na Nepoužívať alebo je staršia ako verzia 8.3.4 – hodnota je Príkazový panel;
Ak je na formulári niekoľko panelov príkazov, ktorých zdrojom príkazov je jedna tabuľka spravovaného formulára (zobrazuje údaje dynamického zoznamu), potom sa riadok vyhľadávania a tlačidlo ovládania vyhľadávania budú nachádzať iba v jednom paneli príkazov:
● Alebo na paneli príkazov samotného dynamického zoznamu (ak má povolené automatické dokončovanie)
● Alebo v ktoromkoľvek zo zostávajúcich príkazových panelov.

Pozrime sa na funkcie používania vyhľadávania v dynamickom zozname:
● Aby bolo vyhľadávanie pohodlné (aj z hľadiska výkonu), musíte povoliť fulltextové vyhľadávanie pre všetky konfiguračné objekty, ktoré možno použiť ako hlavnú tabuľku dynamického zoznamu. Fulltextové vyhľadávanie by malo zahŕňať aj všetky podrobnosti o konfiguračných objektoch, ktoré sa môžu zobraziť v dynamickom zozname a pre ktoré môže byť potrebné vyhľadávanie.
Ak je objekt vylúčený z fulltextového vyhľadávania, príslušný mechanizmus vyhľadávania bude fungovať, ale výkon takéhoto vyhľadávania bude extrémne nízky. Neodporúča sa používať vyhľadávanie na objektoch, ktoré nie sú indexované fulltextovým vyhľadávaním.
● Aplikačné riešenie musí mať rutinnú úlohu, ktorá pravidelne aktualizuje index fulltextového vyhľadávania.

● Vyhľadávanie sa nevykonáva vo všetkých stĺpcoch dynamického zoznamu (a konfiguračného objektu), ale iba v tých stĺpcoch, ktoré sú zobrazené v tabuľke.
● Vyhľadávanie v dynamickom zozname podľa polí referenčných typov s ľubovoľným zastúpením sa vykonáva podľa polí, na ktoré sa používajú
zastupovanie (pozri tu). Polia zahrnuté v zobrazení sa získajú s prihliadnutím na obslužný program ViewFieldGettingProcessing() príslušného objektu.
● Pre dynamické zoznamy so zadanou hlavnou tabuľkou sa používa fulltextové vyhľadávanie v hlavnej tabuľke. Všetky neindexované odkazy z hlavnej tabuľky sa pridajú do výsledkov fulltextového vyhľadávania. Výsledok fulltextového vyhľadávania hlavnej tabuľky sa použije ako výber na základe kľúčových polí. Fulltextové vyhľadávanie sa vykonáva aj v poliach zobrazených v zozname z iných tabuliek (ak pole a konfiguračný objekt používajú fulltextové vyhľadávanie). Bez zapnutého fulltextového vyhľadávania môžu byť údaje
nájdené, ale samotné vyhľadávanie bude veľmi pomalé.
Ak sa pri pokuse o vykonanie fulltextového vyhľadávania vyskytne chyba, vyhľadávanie sa vykoná bez použitia fulltextového vyhľadávania.
Môže sa to stať napríklad pri hľadaní jedného písmena a veľkého počtu riadkov v informačnej báze začínajúcich na toto písmeno.
● Ak sa pre pole v hlavnej tabuľke dynamického zoznamu použije výber s typom porovnania Rovná sa, potom pri vykonávaní fulltextového vyhľadávania sa k vyhľadávaciemu dopytu pre túto tabuľku pridá hodnota výberu.
● Hľadaný reťazec je rozdelený na slová. Toto rozdelenie sa vykonáva podľa nasledujúcich pravidiel:
● Riadok je prerušený pomocou medzery a tabulátorov ako oddeľovačov.
● Potom sa spracuje každý výsledný fragment:
● Ak je fragment reprezentáciou dátumu (s časom alebo bez času) na základe aktuálneho miestneho nastavenia relácie, potom slovo je fragment.
● V opačnom prípade sa fragment ďalej rozdelí pomocou znakov „,.-/\“ ako oddeľovačov. V tomto prípade sa každý výsledný fragment reťazca berie ako slovo.

● Pre každé slovo sa vytvorí vlastný súbor podmienok, ktoré sa kombinujú „alebo“. Táto sada podmienok sa vygeneruje, ak fulltextové vyhľadávanie daného slova v tabuľke, z ktorej bolo toto pole získané, vrátilo aspoň jeden objekt, alebo nebolo pre toto pole použité fulltextové vyhľadávanie. Podmienky sa tvoria takto:
● Pre pole typu String je podmienkou názov poľa LIKE %Word%.
● Pre pole typu Číslo má podmienka tvar NázovPoľa=Hodnota, kde Hodnota je slovo skonvertované na typ Číslo. Ak nie je možné vykonať obsadenie, vyhľadávanie poľa sa nevykoná.
● Slovo sa vyhľadá ako podreťazec v predvolenej boolovskej reprezentácii definovanej pre aktuálnu reláciu. Ak sa hľadané slovo nájde v zobrazení, potom vyhľadá hodnotu zodpovedajúcu zobrazeniu, v ktorom sa slovo našlo. V tomto prípade vyhľadávanie nepoužíva zobrazenia, ktoré sú zadané pomocou vlastnosti prvku formulára Formát.
● Pre pole typu Dátum bude podmienka vyzerať takto<=КонецДня(Слово). Если Слово подобно дате, в которой год
označené jednou alebo dvoma číslicami, rok sa zredukuje na aktuálne storočie a táto hodnota sa pripočíta k podmienke vyhľadávania.
● V prípade referenčných polí sa vykoná vyhľadávanie v poliach použitých na vytvorenie referenčného zobrazenia. V každom z týchto polí hľadajte
vykonávané podľa vyššie opísaných pravidiel. Vyhľadávanie nepoužíva polia používané na vytvorenie vlastnej reprezentácie údajov.
Súbor podmienok pre každé slovo je kombinovaný „A“.
● Pre hodnoty s úvodnými nulami môžete hľadať buď reťazec s úvodnými nulami, alebo reťazec zadaný bez úvodných núl.
● Ak dynamický zoznam zobrazuje zoznam dokumentov alebo históriu dokumentov, interval zobrazenia zoznamu, ktorý určíte, sa zobrazí aj v oblasti formulára vyhradenej na zobrazenie stavu zobrazenia pre požadovaný dynamický zoznam.
● Príkaz na vyhľadávanie podľa aktuálnej hodnoty nie je dostupný, ak je kritériom výberu hlavná tabuľka dynamického zoznamu.
● Nájdené fragmenty reťazcov sú pri zobrazení v tabuľke zvýraznené.
● Pre jeden stĺpec je podporovaný iba jeden vyhľadávací reťazec. Pri pridávaní nového vyhľadávacieho dopytu pre stĺpec, ktorý sa už prehľadáva, sa namiesto sčítania dvoch vyhľadávacích dopytov nahradí hľadaný výraz.
● Ak formulár nemá pridanie prvku formulára k formuláru Zobrazenie reťazca vyhľadávania spojeného s tabuľkou (vlastnosť zdroja pridania prvku formulára), ktorá zobrazuje dynamický zoznam, stlačením kombinácie kláves Ctrl+F sa otvorí dialógové okno vyhľadávania.


Ryža. 7. Dialógové okno vyhľadávania

Ak formulár obsahuje pridanie prvku formulára do formulára Zobrazenie vyhľadávacieho reťazca spojeného s tabuľkou (vlastnosť zdroja pridania prvku formulára) zobrazujúceho dynamický zoznam, potom na otvorenie dialógového okna vyhľadávania by ste mali použiť príkaz Rozšírené vyhľadávanie.
● Pri používaní dialógového okna vyhľadávania majte na pamäti nasledujúce body:
● Otvorenie dialógového okna vyhľadávania pomocou klávesovej skratky spôsobí, že hodnota aktuálnej bunky sa zobrazí v riadku Čo hľadať a hodnota prepínača Ako hľadať je nastavená na Podľa presnej zhody.

● Otvorenie dialógového okna vyhľadávania priamym zadávaním hľadaného reťazca do dynamického zoznamu vedie k tomu, že hodnota prepínača Ako hľadať je nastavená na hodnotu Podľa časti reťazca a zadaný text skončí v poli Čo do vyhľadávacieho poľa.

6. Zobrazenie údajov pomocou dynamického zoznamu

Pri používaní dynamických zoznamov možno budete musieť vykonať rôzne akcie s údajmi, ktoré sú aktuálne zobrazené v dynamickom zozname, berúc do úvahy použité výbery a vyhľadávania. Takéto akcie zahŕňajú: spracovanie zobrazených informácií, napríklad opätovné odoslanie vybraných dokumentov alebo nastavenie niektorých detailov pre vybrané objekty, vygenerovanie zoznamu dostupných objektov (s dizajnom atď.), napríklad na tlač alebo uloženie do tabuľkového dokumentu.
Na získanie údajov, ktoré sú zobrazené v dynamickom zozname, by ste mali použiť GetExecutableDataCompositionSchema() a
GetExecutableDataCompositionSettings().
Príklad prijímania údajov:

Schema = Elements.List.GetExecutableDataCompositionSchema();
Settings = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Scheme, Settings);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = Nový OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Získavanie údajov do kolekcie hodnôt (tabuľky alebo zoznamu hodnôt) sa vykonáva rovnakým spôsobom.
Získavanie údajov dynamického zoznamu týmto spôsobom má množstvo funkcií, ktoré je potrebné vziať do úvahy pri vývoji aplikačných riešení:
● Nasledujúci dizajn tabuľky nie je podporovaný:
● Striedajúce sa farby čiar;
● Obrázok hlavičky;
● Obrázok suterénu;
● Farba pozadia päty;
● Farba textu päty;
● Písmo päty;
● Vodorovná poloha v suteréne;
● Režim hesla.
● Podmienený vzhľad určený pre spravovaný formulár nie je podporovaný;
● Pri zoradení hierarchickej tabuľky vo vzostupnom poradí podľa poľa typu Odkaz sa vždy na prvé miesto umiestnia záznamy obsahujúce prázdny odkaz.

Nastavenie výberu 1C v dynamickom zozname nie je také ťažké, ako si mnohí používatelia spočiatku myslia. Takéto konfigurátory sa používajú aj pre tabuľky hodnôt. V softvéri 1C je často potrebné triediť údaje v grafoch a bunkách podľa určitých kritérií.

Ako nastaviť výber na zoznam?

Výber môžete vytvoriť dvoma spôsobmi: vo forme samotného zoznamu alebo ho zaregistrovať programovo. V prvom prípade musíte do formulára pridať dynamický zoznam 1C 8, definovať preň hlavnú tabuľku a potom prejsť na jeho vlastnosti. Spravovaný formulár vám umožňuje pracovať so širokou škálou hodnôt. Tam musíte nájsť položku „Nastavenia zoznamu“ a prejsť do tejto ponuky. V okne, ktoré sa otvorí po prechode, môžete manuálne nastaviť ľubovoľný zoraďovač pre zoznam, ktorý používate, a potom spravovať vygenerovaný výber programovo.

Ak chcete nainštalovať dynamický triedič programovo, mali by ste vedieť, že výber v 1C sa považuje za vlastnosť dynamického zoznamu. Ak chcete pridať výber pomocou tejto kvality, musíte do vlastnosti výberu pridať nový prvok. Aby všetko fungovalo, musíte nastaviť parameter v pravom a ľavom poli výberu hodnoty a tiež v poli „Typ porovnania“. Do poľa použitia je dôležité zadať hodnotu „true“. Týmto spôsobom môžete vytvoriť najjednoduchší výber. Pridaním podmienok do iných polí ho môžete urobiť zložitejším a prispôsobiť ho svojim potrebám.

Výber v tabuľke hodnôt 1C

Na nastavenie výberu v tabuľke môžete použiť jednu z niekoľkých možností. Môžete urobiť manuálny výber - iterujte cez tabuľku a skryte všetky riadky, ktoré nepotrebujete. Je to však veľmi náročný proces, ktorý nie každý chce robiť. Táto metóda je vhodná len pre tých, ktorí s 1C ešte len začínajú pracovať a ešte nevedia zvládnuť zložitejšie, no produktívne techniky.

Druhá možnosť výberu tabuľky funguje prostredníctvom metódy tabuľky nazývanej „nájsť riadky“. Významnou nevýhodou tejto metódy je, že jediný typ na porovnanie bude „rovnaký“, čo výrazne znižuje možnosť použitia výberu.

Najracionálnejší spôsob výberu tabuľky možno vykonať pomocou nástroja na tvorbu dotazov.

Ďalšie funkcie dynamického zoznamu v 1C

Dynamické zoznamy poskytujú dostatok príležitostí na prácu s údajmi, ktoré neboli dostupné v 1C 7. Jedným z najpohodlnejších z nich je vytváranie výberových formulárov. Napríklad v 1C: Účtovníctvo musíte prejsť do ponuky „Nomenklatúra“ a pridať nový formulár výberu a označiť ho ako hlavný.

Ak chcete nastaviť parametre v dynamickom zozname:

  • Môžete použiť výberové formuláre;
  • Keď vytvoríte tento formulár, v poli sa automaticky zobrazí dynamický výberový zoznam;
  • Keď prejdete na jeho vlastnosti, môžete vidieť položku „Vlastná požiadavka“. Práve tento dotaz vám umožňuje využiť všetky výhody dynamického zoznamu;
  • Do tejto požiadavky môžete zadať svoje parametre;
  • Zaškrtnutím políčka a otvorením tohto okna môžete vidieť novú požiadavku so všetkými poliami z referenčnej knihy položiek;
  • Kliknutím na tlačidlo vytvárača dotazov môžete zmeniť obsah tohto zoznamu.

Ak chcete do rozbaľovacieho zoznamu pridať vlastnú požiadavku, musíte prejsť na kartu nastavení. V prvej záložke uvidíte možnosť ľubovoľného výberu podľa vašich potrieb.

Programová inštalácia požiadavky

Požiadavku môžete nastaviť aj programovo. Na to stačí zadať niekoľko riadkov do modulu formulára. Potom stačí dvakrát kliknúť na aktuálny riadok a preniesť riadky s vybranými hodnotami do dokumentu.

V 1C je zoznam hodnôt vo formulári skvelým spôsobom, ako urobiť prácu so softvérom 1C racionálnejšou a produktívnejšou. To vám umožní optimalizovať všetku prácu v podniku.

Výber na riadených formulároch v 1C 8.3

Článok bude diskutovať o možnostiach inštalácie výberu v spravovaných formulároch 1C 8.3. Výber pre dynamický zoznam je možné nastaviť staticky alebo dynamicky v používateľskom rozhraní alebo v konfigurátore. Nižšie zvážime všetky možnosti výberu.

  • Výber nastavenia v konfigurátore

Výber nastavenia v užívateľskom režime

Dynamický zoznam je na rozdiel od tabuľky alebo stromu hodnôt vhodnejším riešením na implementáciu formulárov obsahujúcich ľubovoľné zoznamy, pretože Dynamický zoznam poskytuje najširšiu škálu nástrojov na prácu s výberom, zoskupovaním polí a triedením. Tento výber je možné nastaviť pri práci v užívateľskom režime alebo konfigurátore, princíp je rovnaký.

Ak chcete nastaviť výber v podnikovom režime, musíte zavolať príkaz „Prispôsobiť zoznam“.

Otvorí sa okno.


Karta „výber“ predstavuje zoznam polí, ktoré sú v aktuálnom zozname. Vyberte polia zoznamu, podľa ktorých budeme filtrovať. Môžete to urobiť dvojitým kliknutím alebo pomocou drag and drop.


Nastavíme typ a hodnotu porovnania, klikneme na „Dokončiť úpravy“, výber je nastavený.


Keď nastavíte výber v podnikovom režime, vo formulári zoznamu sa automaticky vytvoria takzvané polia rýchleho výberu.


Aby platforma 1C automaticky vytvorila polia rýchleho výberu, pri vývoji formulára v konfigurátore musíte zadať skupinu používateľských nastavení.


Tento výber sa uloží len pre aktuálneho používateľa, čo umožňuje flexibilné prispôsobenie dynamického zoznamu. Ak je však úlohou urobiť pevný výber pre konkrétny zoznam pre všetkých používateľov systému, vieme to vyriešiť len cez konfigurátor.

Výber nastavenia v konfigurátore

V konfigurátore môžeme nastaviť dva typy dynamického výberu zoznamu – pevný a dynamický. Pevný výber je možné nakonfigurovať raz, dynamický alebo programový je možné nastaviť v závislosti od akýchkoľvek údajov v systéme.

Princíp nastavenia pevného výberu v konfigurátore sa nelíši od jeho nastavenia vo vyššie popísanom užívateľskom režime. Pre nastavenie výberu musíme otvoriť nastavenia dynamického zoznamu.


Otvorí sa okno.


Výber sa nastavuje rovnakým spôsobom ako v užívateľskom režime.

Možnosť „Zahrnúť do používateľských nastavení“ určuje, či bude výber nastavený v konfigurátore dostupný v používateľskom režime cez položku ponuky „Prispôsobiť zoznam“.


Dynamický (softvérový) výber

Často vzniká potreba nastavovať výber programovo, napríklad pri otváraní výberového formulára, keď potrebujeme otvoriť riadený formulár s výberom. Do formulára sa odovzdá parameter a na základe tohto parametra sa nastaví výber. Bežným príkladom je výber položiek adresára podľa vlastníka.

Metódy

Ak vyvíjaná konfigurácia obsahuje podsystém BSP „Basic Functionality“, výber softvéru v dynamickom zozname je možné nainštalovať pomocou štandardnej metódy:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

Podpis tejto metódy:

DynamicList Typ: DynamicList – Zoznam, v ktorom chcete nastaviť výber.

Názov poľa Typ: Reťazec – pole, podľa ktorého chcete nastaviť výber.

RightValue Typ: Arbitrary – Hodnota výberu (Voliteľné. Predvolená hodnota: Nedefinované. Poznámka: Ak prejdete na Nedefinované, hodnota sa nezmení).

ViewComparison Typ: DataComposition Typ porovnania – Podmienka výberu.

Výkon Typ: String – Reprezentácia prvku kompozície údajov (Voliteľné. Predvolená hodnota: Nedefinované. Ak je zadaný, vytlačí sa iba príznak použitia so zadanou reprezentáciou (nevytlačí sa žiadna hodnota). Na vymazanie je potrebné zadať prázdny reťazec, aby sa hodnota vytlačila znova.)

Použitie Typ: Boolean – Označte na použitie tohto výberu (Voliteľné. Predvolené: Nedefinované).

Režim zobrazenia Typ: ItemDisplayModeDataCompositionSettings – Ako sa tento výber zobrazí používateľovi. Možné hodnoty:

  • Režim zobrazenia prvku Nastavenia rozloženia údajov. Rýchly prístup – V skupine rýchlych nastavení nad zoznamom.
  • Element Režim zobrazenia Nastavenia rozloženia údajov Normálne – V nastaveniach zoznamu (v podponuke Viac).
  • ElementDisplayModeDataCompositionSettings.Inaccessible – zabráni používateľovi zmeniť tento výber.

IdentifierUserSettings Typ: Reťazec – Jedinečný identifikátor pre tento výber (Slúži na komunikáciu s používateľskými nastaveniami).

Ak chcete odstrániť hodnotu výberu, musíte použiť štandardnú metódu:

General PurposeClientServer. RemoveGroupElementsSelectionDynamicList()

Podpis tejto metódy:

DynamicList Typ: DynamicList – atribút formulára, pre ktorý chcete nastaviť výber.

Názov poľa Typ: String – názov poľa rozloženia (nepoužíva sa pre skupiny).

Výkon Typ: Reťazec – Reprezentácia poľa rozloženia.

Ak v systéme nie je BSP, výber je možné nastaviť nezávisle pomocou objektu DataComposition Field.

Element výberu = List.Selection.Elements.Add(Type("Prvok výberu DataComposition")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Voliteľný prvok výberu RightValue = "Ivanov";

Tento výber vyberie riadky, v ktorých je hodnota „Celé meno“ = „Ivanov“.

Na použitie logického „AND“, „ALEBO“, „NOT“ je určený dátový typ DataCompositionSelectionElementGroup

Skupina výberu = List.Selection.Elements.Add(Type("Skupina prvkov výberu DataComposition")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Element výberu = skupina výberu. Prvky. Add(Type("Prvok výberu kompozície údajov")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Element výberu.RightValue = "Ivanov"; Element výberu = skupina výberu. Prvky. Add(Type("Prvok výberu kompozície údajov")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.RightValue = "Petrov";

Tento výber vyberie riadky, v ktorých je hodnota „Celé meno“ = „Ivanov“ alebo „Petrov“.

Výber v dynamickom zozname možno vykonať aj zmenou textu požiadavky na dynamický zoznam. Táto možnosť funguje, keď sa dynamický zoznam vytvára prostredníctvom „vlastnej požiadavky“.


Ak to chcete urobiť, pridajte do textu dopytu podmienku „KDE JE PRAVDA“...


Ako vidíte, tento prístup je kompaktnejší z hľadiska písania kódu. Čím zložitejšie sú podmienky výberu v tabuľkovej časti, ktorú chceme nastaviť, tým ťažkopádnejšia bude možnosť pomocou výberu prostredníctvom prvku výberu kompozície dát. Príklad so zmenou textu požiadavky má však svoje nevýhody - táto implementácia nie je odolná voči zmenám kódu. Napríklad ste urobili takúto implementáciu a zabudli ste, ale ak v budúcnosti budete chcieť upraviť text požiadavky pridaním nejakého operátora za WHERE (ORDER, GROUP), musíte si uvedomiť, že kód programu obsahuje:

List.QueryText = Zoznam.QueryText + " And DirectoryUsers.Celé meno V(""Ivanov"",""Petrov"")";

Ak sa to neberie do úvahy, dôjde k chybe, ale aby ste sa tomu vyhli, môžete to zmeniť na inú implementáciu. K textu žiadosti pridávame nasledujúcu podmienku:

WHERE (NOT &SelectionInstalled OR DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("SelectionSet", Full Name.Quantity() > 0); List.Parameters.SetParameterValue("Povolené celé meno", Celé meno);

Celé meno je tu pole.

Ako vidíte, 2 riadky kódu oproti 10. Ktorú metódu zvoliť, závisí od konkrétnej úlohy aplikácie.