Az ACS nem csak a jelentések készítésére szolgál - az univerzális kijelölések megvalósítására. Kijelölések használata SCD-ben Hogyan végezzünk kijelöléseket SDS nélkül

A feldolgozás írásához a programozóknak gyakran lekérdezéseket kellett használniuk az adatok megszerzéséhez, majd feldolgozásához. Az adatokat viszont a kérésből szereztük be. Nos, a kijelölés vagy szűrő nélküli kérés ritka. Beszéljünk az ilyen kérések kijelöléseiről, a példakérelem segítségével:

Annak érdekében, hogy a felhasználó partnerenkénti kiválasztását szabályos formában megszervezhesse, a programozónak három elemet kellett elhelyeznie az űrlapon, ami valahogy így nézett ki:

Mennyi erőfeszítést igényel egy programozó, hogy leírja a különböző típusú összehasonlításokat (egyenlő, nem egyenlő, listában, csoportban...), és ezekre az összehasonlításokra alapozva pontosítsa végső adatszerzési kérését.

Nézzük meg, hogyan lehet ezt megtenni ACS használatával. Feldolgozásunk során hozzunk létre egy Elrendezést az Adatösszetételi séma típussal, és töltsük ki kérésünkkel:

A Beállítások lapon egy új, részletezés nélküli csoportosítást adunk hozzá, példánkban pedig a Számla mezőt, mivel a végén mindent az értéktáblázatba kapunk:

A Kiválasztás lapon adja hozzá a partnert a kiválasztáshoz:

Most kezdjük el az űrlap létrehozását. Jelenítsük meg magán a feldolgozás űrlapján azt a Kijelölést, amellyel a felhasználó dolgozni fog. Az űrlapon megjelenítünk egy Táblázatmező típusú elemet, és a Selection nevet adjuk neki Composer.Settings.Selection adattípussal:

Most hozzunk létre eseménykezelőket az OnOpen űrlaphoz és egy kezelőt a Futtatás gombra kattintva, a kód alább látható:

Perem elrendezés; Eljárás GombVégrehajtásNyomja meg(Button) Eredmény.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Kimeneti processzor = az adatok értékgyűjteménybe való összeállításának eredménye új kimeneti feldolgozója; OutputProcessor.SetObject(Result); OutputProcessor.Output(CompositionProcessor); Ha FormElements.Result.Columns.Quantity() = 0, akkor FormElements.Result.CreateColumns(); endIf; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = Új SourceAvailableSettingsDataComposition(Layout); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); Az eljárás vége

A feldolgozás készen van, elindítása után a Kiválasztásunkban azonnal megtekintheti a Válogatásunkban megjelent Partnert, amelyből tetszőleges típusú összehasonlítást választhat, valamint további kiválasztási sorokat adhat hozzá a Partnerek címtár adatainak segítségével:

Ez minden, remélem, ez a cikk segít a kijelölések rugalmasságának javításában a feldolgozás során.

Kononov Szergej

Mire használható az SKD?

A megállapított vélemény jelentési célokat szolgál.

Valójában Az ACS képességei túlmutatnak az univerzális jelentések létrehozásán.

És ma megmutatjuk, hogyan a beléptető rendszer segítségével a felhasználó rugalmas adatkiválasztást konfigurálhat. Továbbá ez a választás az adatok beszerzése és feldolgozása során kerül felhasználásra.

Milyen feladatoknál lesz ez hasznos?

Adjunk példák tipikus konfigurációkból:

  • „Adatok feltöltése az oldalra” feldolgozása
  • Árlista kialakítása
  • Adatok feltöltése a TSD-re (adatgyűjtő terminál)
  • Termékek, partnerek szegmentálása
  • Megrendelések (ügyfelek, beszállítók) formálása igények szerint
  • Javítás tervezése 1C:ERP-ben.

Azaz az eszköz mindenhol hasznos, ahol széles választékot kell biztosítani a felhasználónak.

Véletlenszerű kiválasztás készítése ellenőrzött formában ACS segítségével

A lecke a vele való munkáról szól beállítások készítője adatelrendezési sémák:

  • Kiválasztás kimenet az űrlapon
  • Szoftverkapcsolat a beállításkészítő és az elrendezési diagram között
  • Alapértelmezett kijelölések létrehozása a beléptető rendszerben.

Adatok fogadása az adatbázisból ACS-választás szerinti szűréssel

A videó bemutatja, hogyan választhat ki adatokat a beállítások készítőjében korábban beállított kijelöléssel.

„Ijesztő” tárgyat használnak – ProcessorOutputResultCompositionDataIntoValueCollection.

Valójában nem minden olyan bonyolult – 8 perc alatt megoldjuk a problémát.

SKD-kiválasztások tárolása az információs bázisban

A leckében megnézzük az ACS-készítő beállításainak mentése az Értéktár használatával.

Nézzük meg, hogyan lehet megoldani ezt a problémát az „1C: Manufacturing Enterprise Management 1.3” konfigurációban.

Jó szórakozást! :)

Általában véve az ACS sok lehetőséget kínál.

Íme néhány „trükk”, amit nem is volt időnk leírni a tanfolyam oldalán.

Ha gyűjteni kell különböző forrásokból származó adatok, három lehetőség közül választhat.

Megpróbálhat egy "univerzális" lekérdezést összeállítani az összes adathoz (hosszú), megjelenítheti több lekérdezés adatait ciklusban (merev, rugalmatlan szerkezet) - vagy egyszerűen ACS és adatkészletek csatlakoztatása egy kérés helyett.

Ugyanakkor fontos a helyes eredmények elérése - ennek megvannak a sajátosságai, ha több forrás létezik

Az SKD segítségével egyszerűen pillanatképet kaphat a jelentésben szereplő minden dátum legfrissebbről.

Vagy az egyértelműség kedvéért... kapja meg a termék árát minden értékesítési dátumra.

Az ACS segítségével szervezheti az időszak összes dátumának megjelenítése a jelentésben, és nem csak azok, amelyekre vonatkozóan szerepeltek adatok a jelentésben (dátumok hozzáadása programozás nélkül, csak a beléptető rendszer lehetőségeivel)

Az ACS használatával beágyazott csoportosításokat szervezhet időszakok hozzáadásával (év/negyed/hónap stb.)

Tetszés szerint rendezze el a jelentést, például jelenítse meg az oszlopfejlécet függőlegesen, az oszlopban lévő adatokat pedig vízszintesen.

Lehetővé teszi a felhasználónak, hogy megválassza, hogy az adatok milyen gyakorisággal jelenjenek meg a jelentésben (évenként, negyedévenként, hónaponként) - kizárólag beállítások szerint, a jelentés modul szerkesztése nélkül.

Hogyan kombinálhat több feltételt a VAGY használatával egy jelentésben? Ez a lehetőség például nem érhető el a jelentéskészítőben, de elérhető az ACS-ben

Ha az összefoglaló adatokat diagram formájában jeleníti meg, pontosan szabályoznia kell a megjelenését: a sorozat markereinek láthatóságát, a diagramsorozatok színeinek váltakozását, a múltbeli adatok és a jövőbeli adatok elválasztását a diagramon függőleges vonallal. stb.

Természetesen vannak árnyalatok, amelyekre figyelni kell.

A jelentés létrehozásakor a fejlesztő hibakeresőt végzett a lekérdezés szövegében, de ha ezt a lekérdezést használja a beléptető rendszer jelentésében, a rendszer hibás eredményt ad.

Ezért fontos, hogy a rendszer által ténylegesen végrehajtott lekérdezést le lehessen szerezni az adatbázisból való adatok beszerzéséhez, és az ilyen lekérdezések hibakeresése.

Amikor egy dokumentumrögzítőhöz részleteket ad hozzá a jelentéshez, a rendszer néha „hibás” nyitó- és záróegyenleget állít elő.

Ezért fontos, hogy a beléptető rendszer jelentésében megfelelően konfigurálják a mezőket, hogy az egyenlegek megfelelően jelenjenek meg a dokumentum részleteivel és anélkül.

A jelentés eredménye változhat attól függően, hogy hol van konfigurálva az erőforrásérték szerinti kiválasztás – jelentésszinten és egy egyedi csoport szintjén ezt figyelni kell.

Ha akarod szakszerűen elsajátítja az ACS-tés naponta alkalmazni a munkájában, jelentkezz a tanfolyamra:

Támogatás - 2 hónap. A tanfolyam terjedelme - 34 tanítási óra.

Ne késleltesse tanulmányait!

Lekérdezési nyelvi kiterjesztés az adatalkotó rendszerhez

Az adatösszeállítási rendszer lekérdezési nyelvének kiterjesztése speciális szintaktikai utasítások segítségével történik, amelyek kapcsos zárójelekbe vannak zárva, és közvetlenül a lekérdezés szövegében vannak elhelyezve.

Az adatösszeállítási rendszer lekérdezési nyelvi kiterjesztésének szintaktikai elemei

VÁLASZT

Ez a mondat azokat a mezőket írja le, amelyeket a felhasználó kiválaszthat a kimenethez. A kulcsszó után a fő lekérdezési listából a konfigurálható mezők álnevei jelennek meg, vesszővel elválasztva.

Például:

(Cikk kiválasztása, Raktár)

A mező alias után egy „.*” karakterkombináció állhat, amely azt jelzi, hogy ebből a mezőből lehet gyermekmezőket használni.

Például a Nomenclature.* bejegyzés a „Nómenklatúra” mező gyermekmezőinek használatának lehetőségét jelzi (például a „Nómenklatúra.Kód” mező). A SELECT elem csak az első összekapcsolási lekérdezésben jelenhet meg.

AHOL

Leírják azokat a mezőket, amelyeken a felhasználó kiválasztást alkalmazhat. Ez a javaslat táblázatmezőket használ. A kiválasztási lista mezőinek álneveinek használata nem megengedett. Az unió minden része tartalmazhat saját WHERE elemet.

(HOL Nómenklatúra.*, Raktár)

Egy egyszerű példa

Az időszakra vonatkozó eladásokat kell szerezni + a teljes tételt megjeleníteni, függetlenül attól, hogy volt-e eladás vagy sem. Vagyis az Értékesítési nyilvántartás forgalmi táblájából kell adatokat kiválasztani, adatokat a nómenklatúra címtárból. Hagyjuk azt a kérdést, hogy miért van szükségünk az összes nómenklatúrára.

A probléma megoldásához készíthet egy lekérdezést, amely a cikket és az Értékesítési forgalom táblát bal oldali összekapcsolással köti össze, ennek eredményeként a kiválasztott időszakban nem értékesített cikkhez a mező értékeket kapjuk Ügyfél, Megegyezés, Mennyiség, Összeg= Null. Ez a kérés:

SELECT ReferenceNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty, SalesTurnover.Counterparty Agreement, SalesForgalom.MennyiségForgalom AS Mennyiség, ÉrtékesítésiForgalom.KöltségForgalom AS Költség FROM Referencia.Nómenklatúra AS ReferenciaNómenklatúra RegiszterAccTurnovernations. .Link = SalesTurnover.Nomenclature

Íme az eredmény:

Ügyfél Megegyezés Elnevezéstan Mennyiség Összeg
nulla nulla _Teszt1 nulla nulla
LLC "Szarvak és paták" Megállapodás 1 Papucs 10 1200
"Gazprom" Klassz szerződés Csizma 5 13000
nulla nulla Galoshes nulla nulla
nulla nulla Palák nulla nulla

Ebben a példában nem értékesítették a következő cikkeket: „Felsőcipő” és „Papucs”

És minden rendben is lenne, ha partnerek szerint csoportosítanánk a mintát, akkor minden eladatlan tétel egy külön csoportba kerül, ahol Counterparty = Null, de az ügyfél azt szeretné, hogy a riportban véletlenszerűen válasszon partner mező (természetesen ez az Értékesítési nyilvántartásban szereplő szerződő felet jelenti). Mit kellene tennem? Hiszen valójában csak a táblázatot kell szűrnünk Értékesítés. Ha az ACS konstruktorban automatikus kiegészítést használunk, akkor a rendelkezésre álló kiválasztási mezők tartalmazzák a mezőt Ügyfél, úgy tűnik, hogy minden rendben van, de a szerződő fél által kiválasztott jelentés elkészítésekor elveszítjük az összes bejegyzést a cikkel való kapcsolatból. Például állítsuk be a kijelölést: Ügyfél = LLC "Szarvak és paták". Az eredmény így fog kinézni:

Egyáltalán nem az, amire szükségünk van, igaz?

A probléma megoldásához természetesen hozzáadhat egy paramétert a lekérdezéshez, például egy virtuális tábla paramétereihez Értékesítés Forgalom, de ugyanakkor elvész az összehasonlítás típusának beállításának rugalmassága.

Van megoldás: erre be lekérdezéskészítő a lapon Adatösszetétel => Táblázatok adjon hozzá egy feltételmezőt a virtuális tábla feltételeihez Értékesítés Forgalomés változtassa meg a becenevét Partner kiválasztása

Annak érdekében, hogy ne keverjük össze a felhasználót a kiválasztási mezőkkel, letiltjuk a feltételmezőt Ügyfélés módosítsa a mező címét Partner kiválasztása


A séma végrehajtása során a partner mező által engedélyezett kiválasztással az eredményül kapott lekérdezés a következő formában jelenik meg:

SELECT SprNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty AS Counterparty, SalesTurnover.Counterparty Agreement AS Counterparty Agreement, SalesTurnover.QuantityTurnover AS >Mennyiség, ÉrtékesítésiForgalom.KöltségForgalom AS Költség, PRESENTATION a ContractPresentTurnover.LINK (Értékesítési forgalom. Ügyfél ) AS CounterpartyPresentation, SprNomenclature.Presentation AS NomenclaturePresentation FROM Directory.Nomenclature AS SprNómenklatúra BAL KAPCSOLAT Regisztráció Felhalmozások.Eladások.Forgalom(&P , , , Partner = &P3 ) AS ÉrtékesítésiNomenklatúra SPRNómenklatúra BY.

És ennek megfelelően az eredmény:

Ügyfél Megegyezés Elnevezéstan Mennyiség Összeg
nulla nulla _Teszt1 nulla nulla
LLC "Szarvak és paták" Megállapodás 1 Papucs 10 1200
nulla nulla Csizma nulla nulla
nulla nulla Galoshes nulla nulla
nulla nulla Palák nulla nulla

A teszt1 egy csoport a Nomenclature könyvtárban, amelyben minden található

A kiadványhoz csatoljuk a kiadványban használt jelentés XML sémáját. Az áramkört az Integrated Automation-ban hoztam létre, de úgy gondolom, hogy UPP-ben és UT 10-ben is minden jól fog működni

Összegzés

Ez a példa bemutatja, hogyan hozhat létre saját kiválasztási beállításokat a beléptető rendszerben, és hogyan tilthatja le az automatikusan létrehozottakat, ha olyan áramkört tervez, amelyen a zászló engedélyezett Automatikus kitöltés.

Ha van elegendő tapasztalata áramkörök létrehozásához használat nélkül Automatikus kitöltés- akkor ennek a tanácsnak nincs értelme.

Használt szoftver

  • Screenshot programSnimOK!
  • XML fájlszerkesztő