Dinamikus lista 1s 8.2 tetszőleges kérési paraméterek. Keresés dinamikus listában

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 lehetőségek bemutatására dinamikus lista teremt külső feldolgozás, adja 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. Mivel ez a tulajdonság nem érhető el a kliensen, meg kell hívni a kiszolgálót:


Eredmény változtatások:



A primitív adattípusokon kívül, amelyek bármely programozási nyelvben megtalálhatók, vannak egyedi típusok az 1C-ben. Mindegyiknek megvannak a saját tulajdonságai, módszerei, funkciói, célja és a rendszerben való felhasználás árnyalatai. Az egyik ilyen típus a dinamikus lista, amely nagyban leegyszerűsíti számos alkalmazott feladatot. Éppen ezért a fejlesztőknek ismerniük kell és tudniuk kell kezelni ezt a sokoldalú eszközt.

A dinamikus listák jellemzői az 1C-ben

célja ebből a típusból az adatbázis-táblázatok információinak megjelenítése, azok típusától függetlenül. A mechanizmust az SKD alapján hozták létre, és hasonló képességekkel rendelkezik. De ez nem jelenti azt, hogy feltétlenül le kell írnia egy lekérdezést az 1C nyelven, bár ez a lehetőség létezik, és használnia kell. Egyszerűen megadhatja a táblázatot, az Önt érdeklő információkat, és az 1C önállóan generál egy egyszerű lekérdezést.

Ha látni szeretné, hogyan jön létre a dinamikus lista, és milyen adatokat jelenít meg, meg kell nyitnia a kezelt űrlapokat, ahol az található, a konfigurátorban: a részletek listájában keresztül helyi menü nyissa meg a tulajdonságait, és figyeljen az "Önkényes kérelem" elemre. Ha nincs jelölőnégyzet, akkor a "Fő tábla" paraméter azt az adatbázistáblát tükrözi, ahonnan az adatok származnak. Ellenkező esetben a dinamikus lista egyéni lekérdezési adatokat tükröz, amelyek a listabeállítás megnyitásával tekinthetők meg.

Egy tetszőleges lekérdezési sémát sokkal gyakrabban használnak, mivel ez nagyszerű lehetőséget biztosít sokféle adat kombinálására és megjelenítésére. Ezt a mechanizmust leggyakrabban a készletegyenlegek, cikkárak, bevételek, kiadások vagy vásárlások tükrözésére használják. Óvatosan kell használni, mivel a teljesítmény csökkenhet összetett lekérdezések esetén.

A dinamikus lista egy másik hasznos tulajdonsága a "Lista beállítások" feliratra kattintva nyílik meg. Ez a menü még szabványos mezőkészlet használata esetén is lehetővé teszi az információk elérhetőbbé és érthetőbbé tételét a végfelhasználók számára. Akár tetszőleges kérésről van szó, akár nem, megjelenik egy „Beállítások” lap, ahol megadhatja:

  • Dinamikus lista kiválasztása;
  • csoportosulások;
  • válogatás;
  • Dekoráció.

A paraméterek használata kellően sokoldalúvá és rugalmassá teszi a dinamikus listákat. Ezeket egy kezelt űrlapon kellékekhez is kötheti, és az adatok a felhasználó által kiválasztott opcióktól függően változnak. Ezeknek a mechanizmusoknak a használata megérthető és értékelhető, ha a való világ problémáira példákat nézünk.

Példaként tekintsük a nómenklatúra maradványainak egy kezelt űrlapon való tükrözésének problémáját. A gyakorlatban az ilyen rendelések meglehetősen gyakoriak a különféle konfigurációkban, és a dinamikus lista ideális eszköz. Ehhez a feladathoz tetszőleges lekérdezést, dinamikus lista paramétereket és annak beállításait kell használnunk.

A nagyobb áttekinthetőség érdekében hozzunk létre egy külön külső feldolgozást, és helyezzünk el rajta egy dinamikus listát. Terveink megvalósításához kevés nómenklatúrával ellátott tábla lesz, így tetszőleges kérést kell engedélyeznünk. Ebben leírjuk a referenciakönyv bal oldali kapcsolatát a nómenklatúra és a szermaradék-nyilvántartással, és a referenciakönyvet állítjuk be fő táblázatként. Egy ilyen séma lehetővé teszi a felhasználók számára, hogy a dinamikus listákkal való munka során hozzáadják vagy módosítsák a nómenklatúrát.



Válasszon egy nómenklatúrát Név Név névként, áruk és értékesítési költségek. Sklad mint raktár, áruk és értékesítési költségek Társadalmi -tervezés, mint számos telepítés egy címtárból Nómenklatúra, mint a nyilvántartás bal oldali kapcsolatának nómenklatúrája. Folytonosság. Kimenet (iv auhitsaydata,)

Mivel a CurrentDate paramétert használtuk a kérésünkben, a feldolgozás előtt be kell állítanunk az értékét. Ehhez az űrlapmodulban az "On CreationOnServer" eljárásban szabványos paranccsal rendelje hozzá a "CurrentSessionDate" funkciót egy szabványos paranccsal. Ezenkívül meg kell jelenítenünk egy dinamikus listát a vezérlőlapon, és az áttekinthetőség kedvéért módosítanunk kell a mezők sorrendjét. Húzza a "Nómenklatúra marad" kellékeket az űrlapelemek közé (bal felső sarokban), és a kék nyilakkal módosítsa a mezők sorrendjét az űrlapon lévő táblázatban.

&Kiszolgálónál eljárás a CreationAt Server(hiba, szabványos feldolgozás) nómenklatúrája Remains.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Már ebben a szakaszban megnyithatjuk a külső feldolgozásunkat az 1C-ben, és láthatjuk, hogy a dinamikus lista működik. Megnézhetjük a mérlegeket, létrehozhatunk nómenklatúrát és csoportokat, és kereshetünk. Az ügyfelek gyakran kérik, hogy adják hozzá azt a lehetőséget, hogy kiválasszák azt a dátumot, amelyre vonatkozóan látni fogják az egyenleget. Dinamikus listát tartalmazó űrlap esetén ezt a kiegészítő mezőés paramétereket állítunk be vele.

Hozzáadjuk a „Dátum” típusú „Fennmaradás dátuma” attribútumot, és átvisszük az űrlapelemek közé. A mezőeseményekben létrehozunk egy "OnChange" eseményt, és megírjuk a dinamikus lekérdezésben használt "CurrentDate" paraméter beállításához szükséges kódot. Annak érdekében, hogy az űrlap megnyitásakor a felhasználó azonnal megértse, melyik napon látja az egyenlegeket, apró változtatásokat hajtunk végre az OnCreateOnServer eljáráson.



&OnServerProcedureOnCreateOnServer(hiba, StandardProcessing)RemainsDate = CurrentSessionDate(); Elem Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Eljárás vége &Az ügyfélnél RemainsDateOnChange(Element) Elem Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); Vége eljárás

Ennek eredményeként a Dinamikus lista űrlapunk bármely dátumra képes egyenleget megjeleníteni.

Az eszközkészlet képességeinek csak egy kis részét ismertettük, de ez már elegendő ahhoz, hogy megértsük az ilyen típusú dinamikus listák kényelmét. Hasonló mechanizmust használnak különféle feladatokhoz, de leggyakrabban az tipikus konfigurációk V kezelt űrlapok:

  1. kiválasztás;
  2. Listák.

Ahhoz, hogy egy dinamikus listát és kérését tipikusan felügyelt űrlapokon kapja meg, a fejlesztőnek meg kell nyitnia a szükséges űrlapot a konfigurátorban. Az attribútumok részben keresse meg a „DynamicList” adattípusú attribútumot (leggyakrabban félkövér). Tulajdonságai tartalmazzák a kérés szövegét, a kijelöléseket és egyéb beállításokat.

Végre minden "hétjátékos" álma valóra vált. Milyen gyakran kérték a 7.7 program felhasználói az elemek normál kiválasztását. Így láthatja az egyenlegeket, árakat és beállított szűrőket. Különféle trükköket kellett kitalálnom, egészen a külső komponensek írásáig. Az 1C 8.2-ben dinamikus listák jelentek meg. Azt javaslom, hogy fontoljuk meg, mi ez, és mit adhatnak nekünk az 1C 8.3-ban.

Vegyünk néhányat alapul tesztkonfiguráció 1C: „Vállalati számvitel 3.0”. Most nem fogunk kiválasztani, csak adjunk hozzá egy másik kiválasztási űrlapot a "Nómenklatúra" hivatkozási könyvhöz, és ideiglenesen tegyük főként:

Létrehozásakor a rendszer alapértelmezés szerint hozzáad egy "Dinamikus lista" típusú táblázatmezőt az űrlaphoz.

Menjünk a tulajdonságaihoz, és nézzük meg, mi van ott.

Mindenekelőtt az "Önkényes kérés" jelölőnégyzet érdekel bennünket. Ő az, aki feltárja előttünk a dinamikus lista minden előnyét. Lehetőségünk lesz saját lekérdezést írni, méghozzá paraméterekkel. Jelölje be a négyzetet, és kattintson a "Megnyitás" linkre:

Megnyílik egy ablak a következő kóddal. Eddig a "Nómenklatúra" könyvtár összes mezője egyszerűen felsorolva van.

Ingyenes 267 1C videóleckéket kaphat:

Amint láthatja, van egy hívásgomb "" és egy jelölőnégyzet, amely lehetővé teszi a lista tartalmának dinamikus módosítását. Vagyis ha egy másik felhasználó módosít valamit a könyvtárban, az a mi listánkban is megváltozik. Ezen kívül van egy Beállítások fül, de ezt később érintjük.

Egyéni lekérdezés dinamikus listában

Először is hozzuk létre a szükséges lekérdezést az egyenlegekkel és árakkal. Mint az:

Beállítások lap

És most a legfinomabb! Lépjen a "Beállítások" fülre. És azonnal látjuk, hogy az első lapon tetszőleges kiválasztást végezhetünk a kérés bármely mezőjéhez:

Lekérdezési paraméterek programozott beállítása dinamikus listában 1C 8.3

Ne felejtse el, hogy két paraméterünk van a kérésben: "Időszak" és "Ártípus". Ezeket át kell adnunk a kérésnek, különben hiba történik.

Írjuk be ezeket a paramétereket az űrlapparaméterekbe, és adjuk hozzá a következő sorokat az űrlapmodulban:

&OnServerProcedure OnCreateOnServer(hiba, StandardProcessing) lista. Lehetőségek. SetParameterValue("Időszak", Paraméterek. Dátum) ; Lista. Lehetőségek. SetParameterValue("PriceType" , Parameters.PriceType) ; EndProcedures Otthoni jegyzetek az üvegen keresztü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, miután kiválasztotta egy bizonyos termékcsoport és egy bizonyos szállító áruit, azonnal látni szeretné 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 azt egy értékgyűjteménybe (az szoftver feldolgozás) vagy benne 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.



Betöltés...
Top