1c dinamikus lista, hogyan lehet karakterlánc-értéket szerezni. Dinamikus listaadatok lekérése

1c dinamikus lista, hogyan lehet karakterlánc-értéket szerezni. Dinamikus listaadatok lekérése

A konfigurációk véglegesítése során minden 1C programozó dinamikus listákkal találkozik.
A dinamikus lista egy interfészobjektum, amelyet adatbázis-objektumok vagy nem objektum adatok - regiszterbejegyzések - különféle listáinak megjelenítésére használnak.
Például egy dinamikus lista az elemek listájának megjelenítésére szolgál:

A dinamikus lista lehetőségeinek bemutatásához hozzunk létre egy külső feldolgozást, adjuk hozzá a fő űrlapot. Adjunk hozzá egy új „Dinamikus lista” típusú attribútumot az űrlaphoz. Menjünk a tulajdonságaihoz, és nézzük meg, mi van ott.
Az "Egyedi kérés" ingatlan érdekel bennünket. Engedélyezése megmutatja nekünk a dinamikus lista összes lehetőségét. Lekérdezést tudunk majd írni az 1C: Enterprise rendszer lekérdezési nyelvének szinte minden funkciójával. Jelölje be a négyzetet, és kattintson a "Megnyitás" linkre:

Alapértelmezés szerint listánkban az összes raktár teljes egyenlegével rendelkező cikkek listája jelenik meg. Egy ilyen lista megvalósításához adja hozzá a következő lekérdezést:


Fő táblázatként a "Könyvtár. Nómenklatúra" elemet választjuk, ez lehetővé teszi, hogy a dinamikus listával dolgozzunk, mint a nómenklatúra listájával - a könyvtár elemeinek hozzáadása, módosítása, törlésének megjelölése. Ezenkívül a főtábla beállítása lehetővé teszi a dinamikus adatolvasást - ez azt jelenti, hogy a kiválasztás igény szerint részenként történik.
Ezután űrlapelemeket kell létrehoznunk a listánkhoz:

Ha ebben a formában próbáljuk lefuttatni a feldolgozást, hibaüzenetet kapunk:


Ennek megszüntetéséhez be kell állítani az "Időszak" paraméter értékét. Ehhez használhatja a dinamikus lista "Parameters" gyűjteményének "SetParameterValue" metódusát. A módszer két paramétert igényel:
. "Paraméter" - Típus: Karakterlánc; DataCompositionParameter. Annak a paraméternek vagy adatösszetételi paraméternek a neve, amelynek értékét be kell állítani;
. "Érték" - Típus: Önkényes. A beállítandó érték.
Meghívható az űrlap "OnCreateOnServer" kezelőjében:

Kérdése van, tanácsadó segítségére van szüksége?


Adjunk lehetőséget a felhasználónak, hogy módosítsa az egyenlegek fogadásának időszakát. Ehhez adjuk hozzá az attribútumot és a hozzá tartozó "Dátum" űrlapelemet:


A "Date" űrlapelem "OnChange" kezelőjében hívja meg a "SetParameterValue" metódust, és adja át értékként a társított attribútum értékét. Hasonlóképpen megváltoztatjuk az űrlap "On CreationAtServer" eljárását. Mivel a módszer elérhető a kliensen, nem kell hívni a szervert:


Most, amikor a dátum megváltozik, az egyenlegek automatikusan frissülnek:




Tegyük fel, hogy a felhasználók az aktuális egyenlegeket vagy a tervezett bevételeket szeretnék látni. Tekintsük az egyik megvalósítási lehetőséget. Adjunk hozzá egy logikai űrlapattribútumot és egy kapcsolódó választógombot:


A kapcsoló értékének megváltoztatásakor megváltoztatjuk a kérés szövegét. Ehhez a "DisplayQuantityToReceipt" űrlapelem "OnChange" eseménykezelőjét fogjuk használni. A dinamikus lista "QueryText" tulajdonságát az attribútum értékétől függően módosítanunk kell. Mert adott ingatlan nem érhető el a kliensen, szerver eljáráshívás szükséges:


A változtatások eredménye:



Otthoni jegyzetek a szemüvegből

2014.04.21. Dinamikus listaadatok lekérése

Megvalósítva a 8.3.6.1977 verzióban.

Bevezettük a dinamikus lista segítségével megjelenített adatok egyszerű és kényelmes megszerzésének lehetőségét.

Szükség lehet a dinamikus listaadatokra, ha nem szabványos, "specifikus" formában szeretné kinyomtatni. Vagy azért, hogy bizonyos műveleteket hajtsanak végre velük. Például küldjön levelet minden olyan partnernek, amelyet bizonyos kritériumok szerint kiválasztott a listából.

Ezen kívül számos olyan feladat van, amelyben a felhasználó az elemlistán kívül az ehhez a listához tartozó összesítő adatokat is szeretné látni. Például bizonyos áruk kiválasztásával árucsoportés néhány szállító, azonnal látni akarja az ilyen áruk teljes számát az adatbázisban.

Maga a dinamikus lista nem tudja megadni ezt az információt. A dinamikus lista célja, hogy biztosítsa Gyors nézet nagy mennyiségű adat. Ezért az adatokat darabokban olvassa be, amelyek egy vagy két képernyőn történő megjelenítéséhez szükségesek. És „semmit sem tud”, például arról, hogy mennyi adatot kell elolvasnia.

Általában annak érdekében, hogy További információ amit a felhasználó akar, le kell kérdeznie az adatbázisban. Pontosan ugyanaz, mint a dinamikus listában.

Korábban is megtehette. De nem volt mindig könnyű. Hiszen az eredeti lekérdezés szövegén kívül, amely szerint a dinamikus lista működik, tudnia kellett minden olyan kijelölést, rendezést, egyéb paramétert, amit a felhasználó interaktívan beállított az adatokat megjelenítő táblázatban.

Most ez a feladat könnyen megoldható. A dinamikus listatábla két új módszerrel rendelkezik:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Így megkapja magát az adatösszetételi sémát, és ami a legfontosabb, annak összes beállítását, aminek köszönhetően a felhasználó pontosan úgy látja a listát, ahogy van. Mindössze annyit kell tennie, hogy programozottan elhelyezi az elrendezést, és kiadja egy értékgyűjteménybe (programozott feldolgozáshoz) vagy táblázatos dokumentum(megjeleníteni):

Ennek eredményeként egy olyan struktúrát (vagy jelentést) kap, amely oszlopokat és sorokat tartalmaz, amelyek egy dinamikus listatáblázatban jelennek meg.

A lényeg az, hogy a dinamikus listatáblázatból kapott elrendezés és beállítások figyelembe veszik többek között az oszlopok láthatóságát és az alkalmazott keresést. Mivel a beállításokat külön szerezzük be, saját céljaira módosíthatja a mezők összetételét, és például megkaphatja a lista összes oszlopát, nem csak azokat, amelyeket a felhasználó láthat.

Amikor egy táblázatos dokumentumba nyomtat, van még egy szép pillanat. Általában a jelentés megjelenése megfelel a kinézet dinamikus listatáblázatok a séma és a beállítások fogadásakor. Beleértve a táblázat feltételes kialakítását. Csak akkor lesz szükség további műveletekre, ha az űrlap feltételes kialakítását is át szeretné vinni a jelentésbe.

Az 1C:Enterprise 8.2 platform dinamikusan tud dolgozni több rekorddal egy adatbázistáblában, azaz képes darabokban olvasni az adatokat. A cikkekben korábban megvizsgáltuk a dinamikus listák mechanizmusát és a velük végzett munka optimalizálásának módszereit.

Ma a dinamikus listák egy nem szabványos problémáját fogjuk megoldani. Ki kell számítanunk az "Összeg" dokumentumattribútum végösszegét, és meg kell jelenítenünk a lista láblécében. Hasonló módon számítsa ki az "Értékelés" mező átlagos értékét, és jelenítse meg a dinamikus lista láblécében. Az összes mező kiszámításakor figyelembe kell venni a kiválasztást, felhasználói készlet a dokumentumlista beállításaiban.

Az egész nehézség abban rejlik, hogy a dinamikus lista nem egyszerre, hanem részletekben kapja meg az összes rekordot. Ennek megfelelően nem tudjuk azonnal lekérni az összes, az aktuális kijelölésnek megfelelő dokumentum végösszegét. Hogyan kell kiszámítani a végösszeget?

Végrehajtás

És így, menjünk tovább a probléma megoldására. Kezdjük az űrlap megváltoztatásával, majd leírjuk a végső értékek megszerzésének algoritmusát.

Forma és felület

Először készítsünk elő egy dokumentum űrlapot a végső mezők megjelenítéséhez. Ehhez adjunk hozzá két karakterlánc-attribútumot: „Rating” és „Amount”.

Ezek az adatok tartalmazzák a dokumentumok összértékét.

Az attribútumértékek dinamikus lista láblécében való megjelenítéséhez engedélyeznie kell a kapcsolódó lista űrlapelemének megfelelő opcióját (lásd a következő képernyőképet).

Most el kell döntenie, hogy melyik eseménynél frissüljenek az eredmények a lista láblécében. A fejlesztés kényelme érdekében adjuk hozzá az "Update" parancsot és a hozzá tartozó űrlapelemet a parancspanelhez. Amikor ez a parancs végrehajtódik, az összegek frissülnek.

BAN BEN tesztkonfiguráció, amit a cikk végén található linkről tudtok letölteni, dokumentum írásakor hozzáadtam egy totals update eseményt is. Ez az űrlapértesítési mechanizmust használja. Ezzel nem foglalkozunk részletesebben.

Algoritmus

Marad a legproblémásabb rész - meg kell szereznie az összegek értékeit. Folytassa a következőképpen: adatbázis-lekérdezést készítünk, hogy megkapjuk a végleges mezők értékét a dinamikus listában beállított kijelölésnek megfelelően. Nem szabad megfeledkezni arról, hogy a kiválasztás során előfordulhat egy összetett feltétel a csoportokból.

Megjegyzés: A dinamikus listabeállítások (lásd a fenti képernyőképet) az adatösszetételi rendszer (ACS) mechanizmusain alapulnak. Ennek megfelelően hasonló módon lehet velük dolgozni (programozottan hozzáadni, módosítani, olvasni stb.).

Az eredmények eléréséhez szükséges lekérdezés létrehozásának lépései a következők:

1. Kérje le a dinamikus lista kezdeti kérését.

Amint látjuk, a kérelem a dokumentum összes részletét kiválasztja. Egy kis bonyodalom kedvéért hozzáadtam a saját "LevelRating" mezőmet, amelyet a "CHOICE" konstrukció alkot.

2. Az igénylési feltételek szövegét ("HOL" rész) megalkotjuk és behelyettesítjük az eredeti kérésbe.

A kérelem beérkezett forrásszövegéhez feltételeket kell hozzáadnunk a dinamikus lista konfigurált kiválasztásának megfelelően.

Az eljárás az átadott szűrőelem (csoport vagy szűrőelem) típusától függően generálja a feltétel megfelelő szövegét. A csoportban minden feltétel zárójelben van bekeretezve, a csoport tagjai is be vannak keretezve zárójelben. A kifejezések közötti feltételek a szülőcsoporttól függenek (az „ÉS” feltétel a hierarchia legfelső elemei közé kerül).

Ha az elemnek van használati jelzője ("Usage" tulajdonság), akkor az elem feldolgozásra kerül. A generált szöveg az összehasonlítási feltételtől is függ (Egyenlő, nem egyenlő, a listában stb.). A feltétel generált szövegének az összehasonlítás típusától való függése a következő függvényben látható.

Egy másik érdekes funkció szerintem a "GetFieldTextOnView". Arra van szükség, hogy mezőket helyettesítsünk a lekérdezési feltételekben, amelyeket a lekérdezési nyelv kifejezései alkotnak. Fent hozzáadtam a "LevelRating" mezőt az eredeti kéréshez. Ha a felhasználó ezt fogja használni a kijelölésben, akkor a teljes kifejezést be kell cserélni a lekérdezési feltételbe. Ez a funkció reprezentációjával megkapja a mező szövegét a kérésből. Az ilyen összetett mezőknél a kifejezés teljes szövegét adja vissza.

Az algoritmus további részleteiért tekintse meg a cikkhez csatolt tesztkonfigurációt. Az alábbiakban egy képernyőkép látható a kiválasztási beállításokról és a hozzájuk generált lekérdezési feltételekről.

A generált feltételszöveg az eredeti dinamikus listakéréshez csatolva van. A lekérdezés eredménye egy ideiglenes táblába kerül.

3. Az első lekérdezést egy ideiglenes táblába helyezzük, és az összesítő mezők szerinti csoportosítást végezzük a szükséges összesítő függvényekkel.

Hadd emlékeztessem Önt arra, hogy meg kell kapnunk az „Értékelés” mező átlagos értékét és az „Összeg” mező teljes összegét. A kijelölések figyelembevételével már kialakítottunk egy lekérdezést, hátra van az összértékek kiszámítása. Ez a következő lekérdezéssel történik:

A kérés teljesítése után az eredményt feldolgozzuk, visszaküldjük az ügyfélnek és beírjuk az általunk korábban elkészített űrlapadatokba. Végül megkaptuk a dinamikus lista láblécében az összegek megjelenítését (lásd a cikk első képernyőképét).

Megoldásoptimalitás

Általában ez a megközelítés hátrányosan befolyásolhatja a teljesítményt. Például, ha a program a végösszeget a dinamikus listában meghatározott kijelölés nélkül számítja ki, akkor a kiválasztott rekordok száma óriási lehet (például több évre). Ennek eredményeként az eredmények minden frissítése több tíz (!!!) másodpercig tarthat. Ezért csak akkor van értelme a végösszegeket kiszámítani, ha kiválasztásra került. Ezt a feltételt a tesztkonfigurációban állítottam be.

Ráadásul az eredmények kiszámítása, kérést csak a szerver oldalon tudunk intézni. Ezért komolyan meg kell közelítenie a szerverhez intézett kérést, mivel az összegek frissítésének eljárása nagyon gyakran elvégezhető. Képzeljünk el egy KKM-csekk-nyilvántartást egy kereskedelmi szervezetben, ahol percenként legfeljebb 5, óránként pedig 300 csekket lehet bevinni. A dokumentum megírása után minden alkalommal meghívódik az összegek frissítése. Ezért indokolt lenne a továbbított forgalmat kontextuson kívüli eljárások alkalmazásával csökkenteni.

A következő képernyőképen látható a programkód egy kontextuson kívüli kiszolgáló függvény hívásához, amely összegeket ad vissza.

Az első paraméter egy dinamikus lista kiválasztása, a második a "FilterFieldNameFilterFieldValueType" típusú szerkezet. Vegye figyelembe, hogy a függvény első paramétere önálló értékként érkezik. Nem tudom pontosan megmondani, hogy miért, de ha átadja a kijelölést linkként, akkor a platform hibát ad, hogy a kijelölés nem módosítható. A hibát csak így lehetett megkerülni.->

Megjegyzés: a kontextuson kívüli eljárások használata lehetővé teszi az átvitt forgalom többszörös csökkentését, mivel az űrlapadatok nem kerülnek továbbításra a szerverre, ellentétben a kontextusszerver eljárásokkal (az "&AtServer" direktíva).

Következtetés

Végezetül leszögezem, hogy a dinamikus listában szereplő összegek kiszámításának ilyen megközelítése a fejlesztési módszertan szempontjából helytelen. Helyes lenne, ha a regiszterekben összeget kapnánk. Például a csekkek naplójában ismét az aktuális pénztárgépben lévő pénzösszeghez juthatunk akár bizonylatok szerint, akár a megfelelő felhalmozási nyilvántartás szerint.

Ráadásul a felhalmozási regiszterek használata lehetővé teszi a végösszeg kiszámítását a kiválasztás figyelembevétele nélkül, mivel a rendszer optimálisan működik az elmúlt hónapok már kiszámított összegeivel.

A cikkben leírt módszer azonban a problémák megoldása során érvényesül.

Letöltések:

Nyomtatás (Ctrl+P)

dinamikus lista

1. Általános információk

A dinamikus lista egy speciális adattípus, amely lehetővé teszi az adatbázistáblák tetszőleges információinak megjelenítését egy űrlapon. Ehhez meg kell adni a táblát, a megjeleníteni kívánt adatokat, vagy le kell írni az eredményül kapott kijelölést a lekérdezési nyelven.
A mechanizmus egy adatösszeállítási rendszeren alapul, és lehetőséget biztosít a fogadott adatok rendezésére, kiválasztására, keresésére, csoportosítására és feltételes feldolgozására. Ebben az esetben az adatforrás egy kérés, amelyet vagy automatikusan generál a rendszer (a megadott adatok alapján), vagy a fejlesztő ír kézzel.

Rizs. 1. Dinamikus lista létrehozásának lehetőségei

típusú form attribútum létrehozásakor DynamicList A fejlesztő két mód közül választhat az adatok lekérdezéséhez:
● A főtábla megadásával – ebben az esetben elég csak megadni azt a táblát (Main table property), amelyből adatokat akarunk szerezni, és a rendszer automatikusan lekérdezést generál az adatokról (lásd a jobb oldalt a 2. ábrán). . 1).
● Kérelem kézi generálása – ehhez be kell állítani az Egyéni kérés tulajdonságot (lásd az 1. ábra bal oldalát). Ezt követően elérhetővé válik az információs bázisból való adatok lekérésére vonatkozó kérés manuális generálása.
Egy lekérdezéssel több táblából is kiválaszthatunk adatokat, így megadhatunk egy elsődleges táblát. Erre azért van szükség, hogy a dinamikus lista meg tudja határozni, melyik adat az elsődleges és melyik a másodlagos, és megfelelően tudja kiválasztani és megjeleníteni az információkat, valamint szabványos parancsokat adjon. Ha azonban a lekérdezésben nem lehet meghatározni a főtáblát, akkor az elhagyható, de akkor
a dinamikus lista nem ad parancsokat az alapul szolgáló táblához. Ezenkívül ebben az esetben (a fő táblázat megadása nélkül) jelentősen csökken a dinamikus listával történő adatgyűjtés hatékonysága.
A teljesítmény javítása érdekében ajánlatos az összes olyan összekapcsolást, amelyet egy tetszőleges lekérdezésben csak további adatok lekérésére használnak, kötelezővé tenni egy adatösszetételi rendszerlekérdezési nyelvi kiterjesztéssel.
Egy dinamikus listához, amely az űrlap fő attribútuma, lehetőség van a kiválasztási értékek beállítására az űrlap paraméterrel Kiválasztás. Ehhez szükséges, hogy a paraméterben szereplő szerkezet tulajdonságának neve Kiválasztás,
megegyezett a dinamikus lista kiválasztási mező nevével. Ebben az esetben a struktúra tulajdonság értéke lesz beállítva a kiválasztási elem megfelelő értékeként. Ha a Dinamikus lista űrlap Selection paraméter elemének értékeként egy tömböt, egy rögzített tömböt vagy egy értéklistát adunk át, akkor a kijelöléshez hozzáadódik a Listában opcióval ellátott feltétel, amelynek megfelelő értékében az értékek listája kerül elhelyezésre (amelyre a tömb és a rögzített tömb konvertálódik).
Egy tetszőleges lekérdezés egy dinamikus listában lehet olyan lekérdezés, amelyben egy paramétert használnak egy mező értékének generálására, például:

VÁLASZT
VÁLASZTÁS
WHEN Delivery.Factor = 1 THEN &Submission
ELSE Szállítás. Együttható
END AS Együttható
TÓL TŐL

Ebben az esetben, ha a paraméter érték típusa eltér az objektum attribútum típusától (pl. Kellékek1 típusa van Szám, és a paraméter értéke a típus Vonal), majd a mező helyes megjelenítéséhez kifejezetten át kell adnia a paraméterértéket a kívánt típusra:

VÁLASZT
VÁLASZTÁS
WHEN Delivery.Factor = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Delivery. Együttható
END AS Együttható
TÓL TŐL
Document.DeliveryProducts AS Szállítás

Ha az a mező, amelyen a szűrő be van állítva, le van tiltva a funkcionális beállításokkal, akkor a mező szűrője nincs beállítva, még akkor sem, ha a szűrő értéke űrlapparaméterként vagy kiválasztási paraméter hivatkozásként kerül átadásra.
A Dinamikus adatolvasás tulajdonság használatával egy dinamikus lista jelzi, hogy az adatokat kis részletekben kell olvasni
(Az adatok dinamikus listából való lekérésével és az adatok gyorsítótárazásával kapcsolatos további részletekért lásd alább). Ettől a tulajdonságtól függetlenül a következő feltételek érvényesek:

● Ha a nézet mód hierarchikus listára van állítva, akkor csak az aktuális csoport adatait és az összes szülőelem adatait olvassa be (nincs gyermekelem).
● Ha a fanézet mód van beállítva, csak a nyitott fa csomópontjainak adatai kerülnek beolvasásra.
● A dinamikus listaadatok egyszeri betöltése nem támogatott, ha hierarchikus nézet van beállítva (a Megjelenítés tulajdonság Fa értékre van állítva), és a kezdeti fanézet az Összes szint kibontása értékre van állítva. Az adatok lekéréséhez annyi kérés érkezik a szerverhez, ahány csomópont van a megjelenített listában.
Egyetlen adatgyűjtésen belül a dinamikus lista újra felhasználja a korábban létrehozott ideiglenes táblákat, a következő feltételekkel:
● A listás köteglekérdezésben nincsenek lekérdezések a fő köteglekérdezés után.
● Az ideiglenes táblák és mezőik összetétele nem változott a kötegelt lekérdezés előző végrehajtása óta.

Munkájában a dinamikus lista a metaadat-objektumok attribútumai következő tulajdonságainak értékeit használja:
● formátum,
● szerkesztési formátum,
● tipp,
● a negatív értékek kiemelésének jele,
● maszk,
● többsoros mód jele,
● haladó szerkesztés jele,
● jelszó mód.
Az adatösszeállítási rendszer kijelölésének és paramétereinek megjelenítése és szerkesztése során a megfelelő mező szerkesztési formátuma kerül felhasználásra.

2. Korlátozások és jellemzők

Amikor szűrőt állít be egy dinamikus listában, ne feledje, hogy a szűrő nincs hatással a csoportokra, ha a dinamikus lista megjelenítési módja Hierarchikus lista vagy Fa. A "csoportok" alatt egy referenciakönyv elemét vagy jellemzőtípusok tervét értjük, amelyben a ThisGroup tulajdonság True értékre van állítva.
A dinamikus lista által a Tulajdonos, Szülő, Dátum, Időszak és ThisGroup standard attribútumokra automatikusan alkalmazott szűrők kerülnek alkalmazásra.
szabvány azt jelenti adatösszetételi rendszerek. A dinamikus lista által a kulcsmezőkre automatikusan alkalmazott szűrők az adatösszeállítási rendszer szabványos eszközeivel és a lekérdezési szöveghez feltétel közvetlen hozzáadásával is alkalmazhatók. BAN BEN a főtábla mezőin. Az elrendezési eszközök által használt szűrők eredményeként beágyazott lekérdezésekben és virtuális tábla paraméterekben egyaránt alkalmazhatók.

Dinamikus listák fejlesztésekor célszerű az összes dinamikus listát egyéni lekérdezésekkel tesztelni. Az ellenőrzési folyamat során meg kell győződnie arról, hogy ha a listalekérdezés beágyazott lekérdezéseket vagy virtuális táblákat tartalmaz, és a Tulajdonos, Szülő, Dátum, Időszak, ThisGroup vagy kulcsmezők szabványos attribútumainak álneveivel megegyező álnevekkel rendelkező mezők rendelkezésre állnak-e kiválasztásra, akkor ezek a mezők érvényesek, és megegyeznek azokkal a szabványos attribútumokkal, amelyekkel ugyanaz az álnév. Ha ez nem így van, akkor módosítani kell a kérést, hogy megfeleljenek ill
az alias más.
Ha manuális lekérdezésgenerálás van kiválasztva, akkor bizonyos korlátozások vonatkoznak a lekérdezésre:
● A FIRST záradék használata dinamikus listalekérdezésekben nem támogatott. Ha egy dinamikus listában olyan kijelölést kell használni, amelyet a rekordok száma korlátoz, akkor a dinamikus lista létrehozására szolgáló lekérdezést úgy kell átdolgozni, hogy a lekérdezés tényleges tartalma egy részlekérdezésbe kerüljön, és korlátozza a lekérdezést. ebben az allekérdezésben kapott rekordok száma. Allekérdezés helyett ideiglenes táblát is használhat.
● A szűrés, rendezés és csoportosítás nem támogatott:

  • Részletek szerint táblázatos részek.
  • Mezők megtekintése.
  • DataVersion mező.
  • A PredefinedDataName mező.
  • Mező Számladiagram tábla típusa.
  • A felhalmozási regiszter tábla MovementType mezője.
  • Mezőtípus A jellemzők táblázatának típusterv értékei.
  • Típus mezője Típus;
  • String típusú mező (korlátlan hosszúságú).
  • BinaryData típusú mező.

● A Subconto mezők szerinti rendezés és csoportosítás nem támogatott<НомерСубконто>és írja be a Subconto-t<НомерСубконто>Táblázatok MovementsSubconto számviteli nyilvántartás.
● Csoportosítás mezők szerint, amelyek lekérdezési nyelvi kifejezéseket tartalmaznak összesített függvények.
● Ha a fő tábla van kiválasztva, a dinamikus listalekérdezésnek a következő korlátai vannak:

  • A csatlakozások nem támogatottak.
  • Az ORDER BY szakasz használata nem támogatott. Használjon főtábla nélküli lekérdezést, vagy állítsa be a szükséges sorrendet a dinamikus lista beállításain keresztül.

● Ha egy dinamikus lista hierarchikus listaként vagy faként jelenik meg, akkor a bejegyzés csak akkor jelenik meg dinamikus listaként, ha legalább az egyik szülője megjelenik. Más szavakkal, egy elem hierarchikus listában való megjelenítéséhez a dinamikus listának az adott elem összes szülőjét is meg kell jelenítenie a lista tetejéig. Ebben az esetben a lista teteje bármelyiket jelenti
a dinamikus lista által megjelenített hierarchikus objektum gyökéreleme, vagy a dinamikus lista űrlap táblakiterjesztésének ParentTopLevel tulajdonságaként beállított elem.

A következő táblák használata a dinamikus lista fő táblázataként nem támogatott:

● Olyan tábla, amely nem rendelkezik olyan kulccsal, amely egyedileg azonosítja az egyes táblabejegyzéseket (hivatkozás az objektumtáblákhoz és bejegyzési kulcs a regisztertáblákhoz). A következő táblázatok azonban beállíthatók egy dinamikus lista főtáblájaként (a kulcs hiánya ellenére):

● A számviteli nyilvántartás alkontó táblázata;
● a számviteli nyilvántartás összes virtuális táblája, kivéve a MovementsSubconto táblát;
● konstans értékek táblázatai (beleértve az Állandók táblát);
● külső adatforrások táblázatai kulcsmezők nélkül;
● külső adatforrások kockatáblázatai;
● felhalmozási regiszter táblák:

  • forgalmi táblázat;
  • mérleg asztal;
  • forgalmi és mérlegtáblázat.

● számítási regiszter táblázatok:

  • tényleges érvényességi időszak táblázat;
  • grafikon adatok;
  • alapadatok.

● Tárgyak táblázatos részeinek táblázatai;
● Regisztrációs táblák módosítása (adatcsere-mechanizmusokban használatos);
● Sorozattáblázatok;
● Konverziós táblák (visszatérő elszámolási motorokban használatos).
● Egy tábla, amelyet a lekérdezésben csak külső összekapcsolásban használnak.

Más szóval, egy dinamikus lista egy megadott főtáblával akkor fog megfelelően működni, ha a lekérdezés végrehajtásának eredményeként
adatforrásként megadva a főtáblából kapott sorok száma nem növekszik (figyelembe véve a kiszabott kijelölést). Ha a lekérdezés végrehajtása következtében megnövekszik a lekérdezés által a főtáblából kapott sorok száma, az a lista által megjelenített tábla rekordkulcsának egyediségének megsértéséhez vezet. Ebben az esetben le kell tiltania a fő dinamikus listatábla használatát.
Amikor dinamikus listával dolgozik, figyelembe kell venni a lista által megjelenített részletekhez való hozzáférési jogokat:
● A Mindig használat tulajdonsággal megjelölt dinamikus listaoszlopok adatai, amelyekre az aktuális felhasználónak nincs megtekintési joga, nem kerülnek át a kliens oldalra. Az ilyen oszlopok adatainak elérése (a CurrentData tulajdonság és a RowData() metódus használatával)
ügyféloldalon nem lehetséges.
● Ha az aktuális felhasználónak nincs Nézet joga egy dinamikus lista kulcsmezőjében, az adatok lekérése ezen a dinamikus listán keresztül hozzáférési megsértési hibát eredményez.
Felsorolási listát megjelenítő dinamikus listák esetén nincs mód a lista interaktív testreszabására.
Az oszlopok összetételét és a dinamikus lista beállításait a kijelölő mezők álnevei társítják a lekérdezés mezőihez. Ha a kiválasztási mező álneve nincs kifejezetten megadva a lekérdezésben, és a mező egy rendszermező, akkor a beépített nyelv angol változatának mezőneve lesz álnév.
A megadott kapcsolat azt jelenti, hogy amikor módosít (vagy kifejezetten megad egy álnevet egy olyan mezőhöz, amely automatikus álnevet használt)
a dinamikus lista adatokat generáló lekérdező mező álneve, a dinamikus lista attribútum beállításai elvesznek, az űrlapelemek „elvesztik” a megjelenített attribútumokat, a dinamikus lista beállításai hibásak lesznek stb.
Abban az esetben, ha egy dinamikus lista adatforrása egy táblázat (normál vagy virtuális), amely lehetővé teszi a kijelölés időszakonkénti beállítását, akkor ha a felhasználó egy ilyen dinamikus listában állítja be a megjelenítési időszakot (a Dátumintervallum beállítása .. . parancs),
a megadott időszakhatárok kiválasztási értékként vagy virtuális tábla paraméterként lesznek beállítva. Ha a nyelvkiterjesztés eszközei
az adatösszeállítási rendszer lekérdezései kifejezetten megadták a virtuális tábla paramétereinek nevét - a paraméterek a megadott értékkel lesznek beállítva
neveket. Táblázatok, amelyeknél szabályozható az adatok megjelenítésének vagy feldolgozásának időtartama:
● regisztertáblázatok (fő vagy virtuális), amelyeknél lehetőség van időszakonkénti kiválasztásra (számítási regiszternél - regisztrációs időszak szerint);
● dokumentumok, üzleti folyamatok és feladatok főbb táblái;
● dokumentumnaplók főtáblái;
● fő sorozattáblák, szekvenciahatárok táblái.
A dinamikus lista lekérdezési paramétere lehet tömb vagy értéklista. Ha azonban a paraméter értéklista, akkor csak a lista első értéke lesz szűrőértékként. Ha a dinamikus lista paraméterekkel rendelkező lekérdezést használ, kezdeti telepítés a paraméterértékeket az OnCreateAtServer kezelőben kell végrehajtani.
A dinamikus listaadatok megjelenítésekor ügyeljen a következő jellemzőket:
● Mikor programváltás A dinamikus lista tulajdonságai nem töltik fel automatikusan újra a kapcsolódó parancssorokat
ezzel a dinamikus listával.
● Ha több mező csoportosítási móddal van csoportosítva A cellában és a csoportosított mezőkben van egy mező, amely egy jelölőnégyzettel jelenik meg, akkor mindig ez a jelölőnégyzet jelenik meg először a kapott cellában (a szövegtől balra ).
Egy dinamikus listában, amikor olyan mezők adattípusát határozza meg, amelyek kifejezései paramétereket, mezőket vagy literálokat tartalmaznak, az eredményül kapott típust a mezők és a literálok típusa határozza meg. Ha a paraméter értéktípusa nem szerepel a kapott adattípusban, akkor annak értéke csonkolva lesz.
Például a következő példában a mező Szám típusú lesz.

VÁLASZTÁS
AMIKOR HAMIS
AKKOR 5
MÁSKÉPP
&Paraméter
VÉGE

Ha a Paraméter paraméterhez más típusú értéket rendel, a mező dinamikus listája 0 értéket kap (a Szám típus alapértelmezett értéke).
Ha ilyen helyzetben más típusú paramétert kell kiválasztani, akkor javasolt a lekérdező nyelvi konstrukció használata EXPRESSZ. Például,
ha a fenti példában 100 karakternél nem hosszabb karakterláncot szeretne átadni a paraméternek, akkor a paraméter egyszerű jelzését cserélje ki egy kifejezett típuskonverziós kifejezésre:

VÁLASZTÁS
AMIKOR HAMIS
AKKOR 5
MÁSKÉPP
EXPRESS(¶méter AS String(100))
VÉGE

Ha a dinamikus listalekérdezés szabad szövegében a kiválasztási mezők kifejezéseiben paramétereket használunk, akkor a konstrukcióval kifejezetten meg kell adni a paraméterek típusát. EXPRESSZ. Például ahelyett &Nómenklatúra AS Nómenklatúra használat
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS Nómenklatúra. Ellenkező esetben a keresősávon keresztül történő keresés működhet.
hibás vagy dobott hibákat.

3. Adatok megszerzésének és gyorsítótárazásának módszerei dinamikus listával

A megjelenítendő adatok fogadásakor a dinamikus lista a három módszer egyikét használja:
1. Az adatbázisból történő kiolvasás kötegekben történik, az adatelemek száma kismértékben meghaladja a lista által egyidejűleg megjelenített sorok számát (de nem kevesebb, mint 20). Az adatok nem tárolódnak a szerveren.
2. Az adatbázisból való kiolvasás 1000 adatelem oldalain történik. Az adatok gyorsítótárban vannak a szerveren. A hierarchikus adatok gyorsítótárazása: legfeljebb 2 elemoldal kerül gyorsítótárba minden szülőhöz. Egy dinamikus lista legfeljebb 20 elemoldalt tárol a gyorsítótárban. A gyorsítótárazást a következő táblázatok dinamikus listája engedélyezi:
● Kiválasztási kritériumok;
● Minden számviteli főkönyvi tábla, kivéve a főtáblát és a MovementsSubconto táblát;
● A felhalmozási regiszter összes táblája, kivéve a főtáblát;
● Az információs nyilvántartás összes táblája, kivéve a főtáblát;
● A számítási regiszter összes táblája, kivéve a főtáblát;
● Virtuális asztal TasksBy Performer;
● Külső források táblázatai kulcsok nélkül;
● Külső forráskockák.

3. Az adatbázisból való kiolvasás 1000 tételes oldalakon történik. Az első rész 1 oldal. Minden következő rész 1 oldallal növekszik (ha az előző minta végéhez értünk). Minél közelebb kerül a "nézőpont" a megjelenített adatok végéhez, annál nagyobb a kijelölés az adatbázisból, és a határérték egyenlővé válik az összes megjelenített adattal. Az adatok gyorsítótárban vannak a szerveren. A gyorsítótárban és a dinamikus listában a bejegyzések maximális száma 1 000 000.
Attól függően, hogy mit választ ki a dinamikus lista főtáblája, és milyen értéket vesz fel a Dinamikus olvasás tulajdonság, az adatok olvasásának egyik vagy másik módszere használatos:

● A Fő tábla tulajdonság értékeként a következő táblázatok egyike van megadva: csereterv, keresés, bizonylatok listája, bizonylatnapló, jellemző típusok diagramja, számlatükör, számítási típusok diagramja, üzleti folyamat, feladat, táblázat üzleti folyamat pontjai:



● A Fő tábla tulajdonság értékeként a következő táblák egyike van megadva: az információs nyilvántartás főtáblája, felhalmozási regiszter, számviteli nyilvántartás, elszámolási nyilvántartás, a számviteli nyilvántartás virtuális táblája MovementsSubconto:

● Dinamikus olvasási tulajdonság:
● Telepítve: Az 1. módszert használja (a módszereket fentebb ismertettük).
● Reset: A 2. módszert használja (a módszereket fentebb ismertettük).

● A Main table tulajdonságként kiválasztási feltételek táblája vagy végrehajtó szerinti feladatok táblázata (TasksBy Executor) van megadva:
● A táblázatsort azonosító kulcs: Hivatkozás.

● A Main table tulajdonság a SliceFirst vagy SliceLast információregiszter virtuális táblára van állítva:
● A táblázatsort azonosító kulcs: RecordKey.
● A Dynamic Read tulajdonság nem alkalmazható.
● A 2. módszert használjuk (a módszereket fentebb ismertettük).

● A Main Table tulajdonság az egyikre van állítva virtuális asztalok a fent felsoroltaktól eltérő nyilvántartások:

● A Dynamic Read tulajdonság nem alkalmazható.

● A Main table tulajdonság nincs megadva, tetszőleges lekérdezést használ:
● A táblázatsort azonosító kulcs: Szám.
● A Dynamic Read tulajdonság nem alkalmazható.
● A 3. módszert használjuk (a módszereket fentebb ismertettük).

A megjelenítéshez az adatok darabokban kerülnek átvitelre a klienshez, amelyek mérete hasonló az 1. adatolvasási módszerben (a fejezet elején ismertetett) használt darabmérethez.
Dinamikus listát tartalmazó űrlap létrehozásakor minden látható dinamikus listához 45 adatelem kerül először az ügyfélnek (ha a lista 45-nél több elemet tartalmaz). Ha a dinamikus lista 45-nél több sort jelenít meg, akkor az űrlap megnyitásakor egy további szerverhívás történik a hiányzó adatelemek lekérésére.

4. Dinamikus lista beállításai

Listabeállítások tulajdonság – a Megnyitás hivatkozásra kattintva megnyílik a dinamikus lista megjelenítési beállítások űrlapja. A lista beállítása ugyanúgy történik, mint az adatösszeállítási rendszer hasonló műveletei.


Rizs. 2. Dinamikus lista feltételes stílusa

Amikor a konfigurációban dinamikus listát állít fel, az alkalmazott megoldás fejlesztőjének lehetősége van a következőkre:
● állítsa be azokat a mezőket, amelyekre a rendelést végre kell hajtani;
● írja le a listában szereplő adatok kiválasztását;
● feltételes formázási beállítások megadása;
● állítsa be azokat a mezőket, amelyek szerint csoportosítani szeretné az adatokat.
A rendezést a fejlesztőre érdemes beállítani, ha a rendszer által beállított alapértelmezett rendezés nem megfelelő.

TANÁCS. Emlékeztetni kell arra, hogy a rendezési mezők rossz kiválasztása (valamint az adatok kiválasztása és csoportosítása) negatívan befolyásolja a dinamikus mintavétel hatékonyságát.
Az alkalmazásfejlesztő szemszögéből a dinamikus listabeállítások több, egymással összefüggő részből állnak. A fő tulajdonság, amelyen keresztül a dinamikus lista beállításait szabályozhatja LinkerSettings. Ez az objektum három beállításkészletet tartalmaz, amelyek a rendszer futása közben meghatározzák a dinamikus listára alkalmazott végső beállításokat:
● Beállítások – a Konfigurátor módban létrehozott beállítások. A rendelés dinamikus lista tulajdonsága biztosítja gyors hozzáférés a Settings.Order dinamikus listabeállítások készítője tulajdonsághoz, így a következő konstrukciók egyenértékűek:
List.Order és List.SettingsComposer.Settings.Order;
● A UserSettings azok a beállítások, amelyeket a felhasználó módosíthat 1C:Enterprise módban;
● FixedSettings – Ezek a beállítások a beépített nyelvből származnak. Ez a tulajdonság olyan kiválasztási értékeket is tartalmaz, amelyeket a paraméterei segítségével adnak át az űrlapnak. A dinamikus lista Filter, Parameters, Conditional Appearance tulajdonságai gyors hozzáférést biztosítanak a dinamikus lista beállításkészítőjének rögzített beállításaihoz. Más szóval, ezek a hívások egyenértékűek:
List.SettingsComposer.FixedSettings.Filter és List.Filter.
A dinamikus lista végső beállításának kialakításakor a különböző beállításokat az alábbiak szerint kombinálják:
● Ha bármely beállítás teljes mértékben felhasználó által meghatározottként van megjelölve, akkor a felhasználói beállítások szerepelnek az eredményül kapott beállításokban
(List.SettingsComposer.UserSettings). Ebben az esetben, ha bármely beállítási elem nem elérhetőként van megjelölve, akkor ezek a beállítások a List.Settings Composer tulajdonságból származó beállításokba kerülnek. Beállítások.
● Ha bármely típusú beállítás nem teljesen, hanem elemenként van felhasználóspecifikusként megjelölve, akkor:
● Az egyéniként megjelölt elemek bekerülnek a List.SettingsComposer.CustomSettings tulajdonság eredő beállításaiba.
● A nem elérhetőként megjelölt elemek bekerülnek a List.SettingsComposer.Settings tulajdonság eredő beállításaiba.
● A rögzített beállítások (List.SettingsComposer.FixedSettings) „ahogy vannak” hozzáadódnak a kapott beállításokhoz. Ugyanakkor elfogadhatatlan az a helyzet, amikor a fix és a felhasználói beállítások azonos nevű beállításokat tartalmaznak, például a feltételben azonos bal értékkel történő kijelölést.

Ha a dinamikus lista beállításai között vannak olyan beállítások, amelyek le vannak tiltva a funkcionális beállításokkal, ezek a beállítások törlődnek a listáról elérhető beállítások dinamikus listaadatok lekérésekor.
A dinamikus lista beállítási ablakában szabályozhatja, hogy mely beállítások legyenek elérhetők a felhasználó számára, és melyek ne.


Rizs. 3. Felvétel kezelése a felhasználói beállításokban

Az ablak alján található jelölőnégyzet (lásd 3. ábra) felelős a beállítások teljes típusának (normál vagy gyors) beállításáért. Ez a funkció a kiválasztáshoz, a rendezéshez, a csoportosításhoz és a feltételes stílushoz használható. Ha a beállítások szerkesztési móddal vannak megadva Gyors választás, akkor a dinamikus listát megjelenítő űrlaptábla Felhasználói beállítások csoport tulajdonságában meg kell adni egy üres űrlapcsoportot, amelyben a dinamikus lista felhasználói gyorsbeállításaihoz társított elemek kerülnek. Ha a csoport nincs megadva, a gyors felhasználói beállítások nem jelennek meg az űrlapon. Lehetőség van arra is, hogy a dinamikus listabővítmény CreateUserSettingsFormItems() metódusával kifejezetten meghívjuk a felhasználói beállítások létrehozását az 1C:Enterprise nyelv használatával.
Lehetőség van arra is, hogy a felhasználói beállításokban bizonyos beállításokat helyezzen el. Ez a funkció a kiválasztáshoz és a feltételes tervezési elemekhez érhető el (lásd 3. ábra).

Ha egy dinamikus lista megnyitásakor speciális beállításokat kell betölteni, akkor ezt kétféleképpen teheti meg:
● A CustomSettings dinamikus lista űrlapparaméterének használata. Az ebben a paraméterben szereplő adatok a dinamikus lista felhasználói beállításaiba kerülnek.
● A dinamikus lista űrlap UserSettingsKey paraméterének használatával. Ha az űrlap megnyitásakor megadja ezt a paramétert, akkor a beállítások tárolójában található felhasználói beállítások a megadott kulccsal betöltődnek a dinamikus listába, amely az űrlap fő attribútuma.

5. Keresés egy dinamikus listában

Az űrlapon található dinamikus lista lehetőséget ad interaktív keresés végrehajtására a megjelenített adatokban. A keresés a következő eszközökkel végezhető el: keresési karakterlánc, keresési párbeszédpanel, aktuális érték keresése, keresési előzmények felhasználása és időszak beállítása (dokumentumokat megjelenítő dinamikus listák esetén). A keresés eredménye korlátozott számú rekord
dinamikus lista (az elérhető adott felhasználó), amelyek megfelelnek a keresési feltételeknek.
Három táblázattulajdonság van a dinamikus lista keresési képességeinek vezérlésére kezelt formában, amely egy dinamikus listát jelenít meg:
● Keresési karakterlánc pozíciója – meghatározza a keresési karakterlánc pozícióját. A következő értékeket veheti fel: Auto, Command Panel, No, Top, Bottom.


Rizs. 4. Keresősáv a dinamikus listában

Ha ennek a tulajdonságnak az értéke Parancssor, akkor a keresősáv megjelenik az űrlap parancssorában (ha a dinamikus lista az űrlap fő attribútuma) vagy a dinamikus listához tartozó parancssorban. A parancssorba helyezett keresősáv mindig a parancssor jobb széléhez van nyomva (a keresősáv jobb oldalán található gombokkal együtt).
Ha a tulajdonság értéke Nem, akkor a keresési karakterlánc hiányzik az űrlapon, és egy párbeszédablak nyílik meg, amikor elkezdi beírni a keresési karakterláncot.
Ha a tulajdonság Top értékre van állítva, akkor a keresősáv a lista parancssora és a dinamikus listát megjelenítő táblázat között található. Ha a tulajdonság alsó értékre van állítva, akkor a keresési karakterlánc közvetlenül a dinamikus listát megjelenítő táblázat mögé kerül.


● Ha a Kompatibilitási mód tulajdonság beállítása Ne használjon, vagy a 8.3.4-es verziónál régebbi, az érték a Parancspult.
A keresősávra való áttérés a következőképpen történik:
● A Ctrl+F billentyűkombináció megnyomásával;
● Egér;
● Amikor elkezd beírni egy dinamikus listát (a dinamikus lista SearchOnType tulajdonságának értéke alapján).
● Nézet állapotának pozíciója – leírja, hogy hol jelenik meg a nézet állapota: mely mezőkben keresett és milyen értékeket
minden területen keresett. A következő értékeket veheti fel: Auto, None, Top, Bottom


Rizs. 5. Keresés állapota a dinamikus listában

Ha a tulajdonság értéke Nem, akkor a nézet állapota nem lesz jelen az űrlapon. Ennek eredményeként csak a Keresés megszakítása gomb elérhetősége alapján lehet majd megállapítani, hogy a keresés megtörtént-e vagy sem.
Ha a tulajdonság Top értékre van állítva, akkor a nézet állapota a lista parancssora és a dinamikus listát megjelenítő táblázat között lesz. Ha a tulajdonság alsó értékre van állítva, akkor a nézet állapota közvetlenül a dinamikus listát megjelenítő táblázat mögé kerül.
Ha az űrlapot az 1C:Enterprise 8.3.4-es vagy korábbi verziójában hozták létre, akkor a tulajdonság értéke No. Ha az űrlapot az 1C:Enterprise 8.3.5-ös vagy újabb verziójában hozták létre, akkor a tulajdonság Auto értékre van állítva. Az ingatlan valós értéke ebben az esetben a következőképpen kerül meghatározásra:
● Ha a Kompatibilitási mód tulajdonság értéke 8.3.4 (és régebbi) – Nem;
● Ha a Kompatibilitási mód tulajdonság beállítása Ne használjon, vagy a 8.3.4-es verziónál régebbi, az érték Top;
● Keresési vezérlő pozíciója – meghatározza, hogy hol jelenjen meg a keresésvezérlő gomb. A gomb megnyit egy menüt, amely a következő információkat tartalmazza: Keresés parancsok alapján jelenlegi érték, Speciális keresés, Keresés megszakítása, Időszak beállítása (dokumentum- és folyóiratlistákhoz) és keresési lekérdezések előzményei (utolsó 5 lekérdezés). A tulajdonság értékeket vehet fel: Auto, No, Command panel.


Rizs. 6. Keresés kezelése dinamikus listában

Ha a tulajdonság értéke Nem, akkor a keresésvezérlő gomb nem lesz az űrlapon (de a parancsok elérhetők lesznek a További menüben). A Command Bar tulajdonság értéke egy gombot helyez el a dinamikus listát megjelenítő táblázathoz társított parancssorban.
Ha az űrlapot az 1C:Enterprise 8.3.4-es vagy korábbi verziójában hozták létre, akkor a tulajdonság értéke No. Ha az űrlapot az 1C:Enterprise 8.3.5-ös vagy újabb verziójában hozták létre, akkor a tulajdonság Auto értékre van állítva. Az ingatlan valós értéke ebben az esetben a következőképpen kerül meghatározásra:
● Ha a Kompatibilitási mód tulajdonság értéke 8.3.4 (és régebbi) – Nem;
● Ha a Kompatibilitási mód tulajdonság beállítása Ne használjon, vagy a 8.3.4-es verziónál régebbi, az érték a Parancspult;
Ha az űrlapon több parancspanel is található, amelyek parancsforrása a kezelt űrlap egyik táblája (amely dinamikus listaadatokat jelenít meg), akkor a keresési karakterlánc és a keresés vezérlőgombja csak egy parancspanelben található:
● Vagy magának a dinamikus lista parancssorában (ha automatikus befejezés)
● Vagy a többi parancspanelen.

Fontolja meg a dinamikus listában történő keresés használatának jellemzőit:
● Ahhoz, hogy a keresés kényelmes legyen (a teljesítmény szempontjából is), engedélyeznie kell a teljes szöveges keresést minden konfigurációs objektumra, amely a dinamikus lista fő táblázataként használható. Ezenkívül a teljes szöveges keresésnek tartalmaznia kell a konfigurációs objektumok minden részletét, amely megjeleníthető egy dinamikus listában, és amelyekhez keresésre lehet szükség.
Ha az objektumot kizárjuk a teljes szöveges keresésből, akkor a kérdéses keresési mechanizmus működni fog, de egy ilyen keresés teljesítménye rendkívül alacsony lesz. Nem ajánlott a keresést olyan objektumokon használni, amelyeket nem indexel a teljes szöveges keresés.
● Az alkalmazási megoldásnak rendelkeznie kell rutinfeladat, amely rendszeresen frissíti a teljes szövegű keresési indexet.

● A keresés nem a dinamikus lista (és a konfigurációs objektum) összes oszlopában történik, hanem csak a táblázatban megjelenő oszlopokban.
● A dinamikus listában a referenciatípusok tetszőleges ábrázolású mezői alapján történő keresést a használt mezők végzik
reprezentáció kialakítása (lásd itt). A nézetben szereplő mezőket a megfelelő objektum ViewFieldsGetProcess() kezelőjének figyelembevételével kapjuk meg.
● Meghatározott főtáblázattal rendelkező dinamikus listák esetén teljes szöveges keresést használ a főtábla alapján. A fő táblázat összes nem indexelt hivatkozása hozzáadódik a teljes szöveges keresési eredményekhez. A főtábla teljes szöveges keresésének eredménye kulcsmezők szerinti szűrőként szolgál. A teljes szöveges keresést a listában más táblákból megjelenített mezőkre is végrehajtja (ha teljes szöveges keresést használ a mezőhöz és a konfigurációs objektumhoz). A teljes szöveges keresés engedélyezése nélkül előfordulhat, hogy az adatok
talált, de maga a keresés nagyon lassú lesz.
Ha hiba történik a teljes szöveges keresés során, a keresés a teljes szöveges keresés használata nélkül történik.
Ez például akkor fordulhat elő, ha egyetlen betűre keresünk és egy nagy szám sorok be információs bázis ezzel a levéllel kezdve.
● Ha a dinamikus lista főtáblájának mezőjéhez az Egyenlő összehasonlítás típusú kijelölést használjuk, akkor teljes szöveges keresés végrehajtásakor a keresési lekérdezés ennek a táblázatnak megfelelően a kiválasztási érték hozzáadódik.
● A keresési karakterlánc szavakra van felosztva. Ez a particionálás a következő szabályok szerint történik:
● A sor felosztása szóköz és tabulátor karakterek használatával történik elválasztóként.
● Ezután minden eredményül kapott fragmentum feldolgozásra kerül:
● Ha a töredék egy dátum ábrázolása (idővel vagy anélkül), a munkamenet aktuális területi beállításai alapján, akkor a töredék a szó.
● Ellenkező esetben a töredék további felosztásra kerül, elválasztóként a „,.-/\” karakterek használatával. Ebben az esetben a karakterlánc minden egyes eredő töredéke szónak minősül.

● Minden szóhoz saját feltételrendszer jön létre, amelyeket „VAGY”-val kombinál. Ez a feltételkészlet akkor jön létre, ha egy teljes szöveges keresés egy adott szóra abban a táblázatban, amelyből ezt a mezőt kapta, legalább egy objektumot adott vissza, vagy ha nem használt teljes szöveges keresést ehhez a mezőhöz. A feltételek a következők szerint alakulnak:
● A String típusú mezőnél a feltétel a FieldName LIKE %Word%.
● A Number típusú mező esetében a feltétel FieldName=Érték, ahol az Érték egy olyan szó, amelyet a Számba öntöttek. Ha a dobás nem hajtható végre, a mezőkeresés nem történik meg.
● A szó az aktuális munkamenethez definiált logikai típus alapértelmezett megjelenítésében részkarakterláncként keresendő. Ha a keresett szó megtalálható egy nézetben, akkor a keresés a nézetnek megfelelő értékre történik, amelyben a szó megtalálható. Ugyanakkor a Format form elem tulajdonsággal megadott nézetek nem használatosak a kereséshez.
● A Dátum típusú mezőnél a feltétel: FieldName>=DayStart(Word) ÉS Mezőnév<=КонецДня(Слово). Если Слово подобно дате, в которой год
egy vagy két számjeggyel megadva, az évet az aktuális századra konvertálja, és ez az érték behelyettesítésre kerül a keresési feltételbe.
● Referencia mezők esetén a keresés a hivatkozás ábrázolásához használt mezőkön történik. Mindegyik mezőben keressen
a fent leírt szabályok szerint végezzük. A keresés nem használja az adatok tetszőleges megjelenítéséhez használt mezőket.
Az egyes szavakra vonatkozó feltételeket "ÉS"-vel kombinálják.
● A kezdő nullákkal rendelkező értékek esetén kereshet egy kezdő nullákkal rendelkező karakterláncon vagy egy kezdő nullák nélkül megadott karakterláncon.
● Ha a dinamikus lista dokumentumok listáját vagy dokumentumelőzményeket jeleníti meg, akkor a megadott listanézeti intervallum is megjelenik a kívánt dinamikus lista nézeti állapotának megjelenítésére szolgáló űrlapterületen.
● Az aktuális érték szerinti keresés parancs nem érhető el, ha a dinamikus lista főtáblája kiválasztási feltétel.
● A talált sortöredékek kiemelve jelennek meg a táblázatban.
● Oszloponként csak egy keresési karakterlánc támogatott. Ha új keresőkifejezést ad hozzá egy már keresett oszlophoz, akkor a keresési kifejezés lecserélődik a két keresési kifejezés hozzáadása helyett.
● Ha az űrlapnak nincs űrlapelem-bővítménye, jelenítsen meg egy táblázathoz társított keresési karakterláncot (az űrlapelem-bővítmény Forrás tulajdonsága), amely egy dinamikus listát jelenít meg, majd nyomja meg a Ctrl+F billentyűkombinációt. megnyitja a keresési párbeszédpanelt.


Rizs. 7. Keresés párbeszédpanel

Ha az űrlapnak van egy űrlapelem-bővítménye egy táblázathoz társított keresési karakterlánc megjelenítése (az űrlapelem-bővítmény Forrás tulajdonsága), amely dinamikus listát jelenít meg, akkor a Speciális keresés parancsot kell használni a megnyitáshoz. a keresési párbeszédpanel.
● A keresési párbeszédpanel használatakor tartsa szem előtt a következőket:
● Ha a keresési párbeszédpanelt billentyűparancs segítségével nyitja meg, akkor az aktuális cella értéke megjelenik a Miben keresendő sorban, a Keresés módja választógomb értéke pedig Pontos egyezés.

● Ha a keresési párbeszédpanelt úgy nyitja meg, hogy közvetlenül elkezd beírni egy keresési karakterláncot egy dinamikus listába, akkor a Hogyan keressünk rádiógombot a karakterlánc része értékre állítja, és a beírt szöveg megjelenik a Mit kell keresni mezőben.

6. A dinamikus lista által megjelenített adatok lekérése

Dinamikus listák használatakor előfordulhat, hogy különféle műveleteket kell végrehajtania a dinamikus lista által aktuálisan megjelenített adatokon, figyelembe véve az előírt szűrőket és az alkalmazott keresést. Ilyen műveletek a következők: a megjelenített információk feldolgozása, például a kiválasztott dokumentumok újraküldése vagy a kiválasztott objektumok egyes részleteinek beállítása, az elérhető objektumok listájának létrehozása (tervvel stb.), például nyomtatáshoz vagy táblázatos dokumentumba mentéshez.
A dinamikus listában megjelenő adatok lekéréséhez használja a GetDataCompositionSchemeExecutable() és
GetDataCompositionSettingsExecutable().
Példa adatlekérésre:

Schema = Items.List.GetExecutableDataCompositionSchema();
Beállítások = Items.List.GetDataCompositionSettingsExecutable();
Layout Layout Builder = New Data Layout Layout Builder();
LayoutLayout = LayoutComposer.Run(Séma, Beállítások);
CompositionProcessor = NewDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorofDataCompositionResultIntoSpreadsheetDocument;
Return OutputProcessor.Output(CompositionProcessor);

Az adatok értékgyűjteménybe (táblázatba vagy értéklistába) történő bejuttatása hasonló módon történik.
Az adatok dinamikus listából történő ilyen módon történő lekérése számos olyan tulajdonsággal rendelkezik, amelyeket figyelembe kell venni az alkalmazásmegoldások fejlesztése során:
● A következő táblázatkialakítás nem támogatott:
● Vonalszín váltakozása;
● Fejléc kép;
● pincekép;
● Pince háttérszíne;
● A lábléc szövegének színe;
● Footer betűtípus;
● Vízszintes helyzet az alagsorban;
● Jelszó mód.
● A kezelt űrlaphoz megadott feltételes megjelenés nem támogatott;
● Ha egy hierarchikus táblát növekvő sorrendbe rendez, egy Link típusú mező szerint, mindig a null hivatkozást tartalmazó rekordok kerülnek az első helyre.