Névjegyek

1c töltse be az értéktáblát a táblázatos szakaszba

A raktárosnak ki kell töltenie az összes elemet, amelyet nem jelöltek meg törléshez. Mezők feltöltése:

  1. Név.
  2. Kereskedői kód.
  3. Nómenklatúra típusa.
  4. Tárgy típus.

Így fog kinézni az Excel táblázat feltöltése után:

Vizsgáljuk meg a megoldás két módját: programozás nélkül és programozó részvételével.

Programozunk

Egy elem XLS fájlba való feltöltéséhez adatbázis-lekérdezést fogunk alkotni, hogy megszerezzük az elemet, és elhelyezzük az eredményt táblázatos rész kirakodás feldolgozása. Itt van a feldolgozási űrlap:

A "Kitöltés" gombra kattintva kitöltésre kerül a feldolgozás táblázatos szakasza "Adatok feltöltése", amelyhez hozzáadják a megfelelő részleteket. A gomb kezelője a következő programkód:

Eljárás Végrehajtás Gombnyomás (Gomb) Kérés = Új kérés; Kérés. Szöveg = "SELECT | Elnevezéstan. Referencia AS-nómenklatúra. | Elnevezéstan. Kereskedői kód, | Elnevezéstan. A nómenklatúra típusa, | Elnevezéstan. Nómenklatúra megtekintése. Nómenklatúra típusa AS Nómenklatúra típusa |TÓL TŐL| Könyvtár ... Nómenklatúra AS Nómenklatúra| HOL | NEM Nómenklatúra. Törlés Mark | ÉS NEM Nómenklatúra. Ez a csoport"; DataTable = Query. Execute (). Unload (); UnloadData. Load (DataTable); EndProcedure

Itt minden világosnak kell lennie. A szórakozás a „Mentés” gombra kattintva kezdődik. Először az útválasztó párbeszédablakot hívják meg az XLS tábla mentéséhez. Ezután a feldolgozás táblázatos szakaszának adatait felhasználva kitölti azokat táblázatdokumentum a korábban létrehozott elrendezés szerint. A feldolgozáshoz hozzáadott elrendezés a következő:

Eljárás Alapforma Műveletek Művelet (gomb) // Az XLS táblázat mentéséhez hívja meg a fájlválasztó párbeszédpanelt Mode = FileSelectDialogueMode. Megőrzés; OpenFile párbeszédpanel = Új FileChoice párbeszédpanel (mód); Fájl megnyitása párbeszédpanel. FullFileName = ""; Fájl megnyitása párbeszédpanel. MultipleChoice = Hamis; Szöveg = "ru = "" XLS asztal "" ; hu ="" XLS táblázat "" "; Szűrő = НСтр (szöveg) +" (*. xls) | *. xls"; FileOpen Dialogue. Filter = Filter; FileOpen Dialogue. Title =" Válasszon mentési utat"; Ha a FileOpen párbeszédablak. Válassza a () lehetőséget, majd a FilePath = FileOpenDialog. FullFileName; Egyébként Text =" Nincs kiválasztva mentési útvonal!"; Figyelmeztetés (szöveg); Return; EndIf; // Hozzon létre egy táblázatdokumentumot SaveTable = New TabularDocument; // A párnázási és elrendezési területek elrendezésének megszerzése Elrendezés = ThisObject. GetLayout (" Kibocsátási táblázat"); AreaHeat = Elrendezés. GetArea (" Fejléc "); AreaRow = Elrendezés. GetArea (" Vonal" ) ; // Adja ki az adatokat egy táblázatdokumentumba Táblázat mentése. Kijelző (AreaHap); A DataDownloading Cycle minden egyes sorához FillPropertyValues ​​(AreaString. Paraméterek, sorok); Táblázat mentése. Kimenet (AreaString); Ciklus vége; // Mentse a táblázatot a lemezre Táblázat mentése. Write (FilePath, TabularDocumentFileType. XLS); Az eljárás vége

A mentés után egy Excel táblázatfájl lesz a lemezen, amely tartalmazza a nem terhelt nómenklatúra listáját. A cikk elején láthat egy példát egy fájlra.

A felhasználó megteheti

Valójában a programozó sorsa nem szükséges egy ilyen feladathoz. A felhasználó mindent megtesz, trükk nélkül.

Például az elemlista megnyitásával és a parancs futtatásával "Minden művelet" -> "Lista" az elemek listájából a felhasználó megkapja a létrehozott táblázat dokumentumban található elemek listáját.

Miután a táblázatdokumentumot a "Mentés" gombra kattintva vagy a "Fájl-> Mentés" menüpontra kattintva generálta, a felhasználó a táblázatdokumentumot XLS-fájlba írhatja, megadva annak nevét és célkönyvtárát.

Ez minden! A kirakodáshoz nincs szükség feldolgozásra. Természetesen, ha meglehetősen egyszerű az adatok kirakása.

Ennyire egyszerű?

Valójában minden egyszerű, nincs szükség külső komponensek csatlakoztatására. Ezenkívül nem csak a formátumú fájlokba hajthatjuk végre a kirakodást Excel táblázatok hanem más, a platform által támogatott formátumokat is.

A cikkben szereplő példát kezelheti letöltés a linkről.

A pénz és az áruk elszámolása érdekében a különböző táblázatokat széles körben használják az üzleti életben. Szinte minden dokumentum egy táblázat.

Az egyik táblázat felsorolja a raktárból szállítandó tételeket. Egy másik táblázatban kötelesek fizetni ezekért az árukért.

Ezért az 1C-ben az asztalokkal végzett munka kiemelkedő helyet foglal el.

Az 1C táblázatokat táblázatos szakaszoknak is nevezzük. Referenciakönyvek, dokumentumok és mások rendelkeznek velük.

A lekérdezés a végrehajtása eredményeként egy olyan táblázatot ad vissza, amelyhez kétféle módon lehet hozzáférni.

Az első - gyorsabb - kiválasztás, a sorok lekérése belőle csak sorrendben lehetséges. A második a lekérdezés eredményének kirakása egy értéktáblázatba, majd véletlenszerű hozzáférés ahhoz.

// 1. lehetőség - szekvenciális hozzáférés a lekérdezési eredményekhez

// megkapja a táblázatot
Selection = Query.Run (). Válassza ki ();
// sorrendben végigmegyünk a lekérdezés eredményének minden során
Míg a Fetch.Next () hurok
Jelentés (Minta.Név);
Ciklus vége;

// 2. lehetőség - kirakodás egy értéktáblázatba
Request = Új kérés ("SELECT Name FROM Directory.Nomenclature");
// megkapja a táblázatot
Táblázat = Query.Run (). Unload ().
// akkor az összes sort is végigjárhatjuk
A táblázathurok minden egyes sorához
Jelentés (String.Name);
Ciklus vége;
// vagy tetszőlegesen fér hozzá a karakterláncokhoz
Karakterlánc = Táblázat. Keresse meg ("Lapát", "Név");

Fontos jellemző, hogy a lekérdezés eredményéből kapott táblázatban minden oszlop erősen be lesz írva. Ez azt jelenti, hogy ha a Név mezőt kéri a Nómenklatúra referenciakönyvéből, akkor egy String típusú oszlopot kap, amelynek megengedett hossza legfeljebb N karakter lehet.

Táblázat az űrlapon (kövér kliens)

A felhasználó akkor működik a táblával, amikor az űrlapra kerül.

Megbeszéltük a formákkal való munka alapelveit a továbbiakban és a továbbiakban

Tehát tegyük a táblázatot az űrlapra. Ehhez húzhatja a táblázatot a kezelőpanelről. Ehhez hasonlóan kiválaszthatja a Form / Insert Control menüben is.

Az adatok a konfigurációban tárolhatók - akkor ki kell választania a konfigurációs objektum meglévő (korábban hozzáadott) táblázatos szakaszát, amelynek űrlapját szerkesztette.

Kattintson a "..." gombra az Adatok tulajdonságban. A táblázatos szakaszok listájának megtekintéséhez ki kell terjesztenie az Object ágat.

Táblázatos szakasz kiválasztásakor maga az 1C oszlopokat ad hozzá az űrlap táblájához. A felhasználó által egy ilyen táblába beírt sorok automatikusan mentésre kerülnek a referenciával / dokumentummal együtt.

Ugyanabban az Data tulajdonságban megadhat egy tetszőleges nevet, és kiválaszthatja a ValuesTable típust.

Ez azt jelenti, hogy egy tetszőleges értéktáblát választottak ki. Nem ad automatikusan oszlopokat, nem menti automatikusan, de bármit megtehetsz vele.

Ha a jobb egérgombbal kattint a táblára, oszlopot vehet fel. Az oszlop tulajdonságaiban megadhatja annak nevét (referenciaként az 1C kódban), az űrlap oszlopfejlécét, a táblázatos szakasz attribútummal való hivatkozást (ez utóbbi - ha nem is tetszőleges tábla, de a táblázatos szakasz) kiválasztott).

Az űrlap táblájának tulajdonságaiban megadhatja, hogy a felhasználó felveheti / eltávolíthatja-e a sorokat. Haladóbb űrlap - jelölőnégyzet Csak nézet. Ezek a tulajdonságok hasznosak táblák rendezésében információk megjelenítésére, de nem szerkesztésre.

A táblázat kezeléséhez meg kell jelenítenie a parancssort az űrlapon. Válassza ki az Űrlap / Vezérlő / Parancs panel beszúrása menüpontot.

A parancssáv tulajdonságaiban jelölje be az Automatikus kiegészítés jelölőnégyzetet, hogy a sáv gombjai automatikusan megjelenjenek.

Táblázat az űrlapról (vékony / kezelt ügyfél)

A kezelt forma ezek a cselekedetek kissé másképp néznek ki. Ha táblázatos részt kell elhelyeznie az űrlapon, nyissa meg az Objektum ágat, és húzza az egyik táblázatos részt balra. És ez az!

Ha egy értéktáblát kell elhelyeznie, adjon hozzá egy új attribútumot az űrlaphoz, és adja meg a type - értéktáblát annak tulajdonságaiban.

Oszlopok hozzáadásához használja a jobb gombbal megjelenő menüt ezen az űrlapattribútumon, az Attribútum hozzáadása oszlop elemet.

Ezután húzza az asztalt is balra.

Annak érdekében, hogy a táblának legyen parancssora, a tábla tulajdonságaiban válassza ki a Használat - Parancssor helye szakaszban szereplő értékeket.

Táblázat exportálása az Excel programba

Az űrlapon található bármely 1C tábla kinyomtatható vagy letölthető az Excelbe.

Ehhez kattintson a jobb gombbal a táblázat egy üres helyére, és válassza a Lista lehetőséget.

Felügyelt (vékony) kliensben hasonló cselekvések az Összes művelet / Megjelenítési lista menüpont segítségével hajtható végre.

Az értéktábla egy specifikus általános objektum az adatok táblanézetben történő tárolására. A legfontosabb különbség a táblák és az alkalmazásobjektumok között az, hogy nem kötődnek fizikai adatbázis-táblákhoz. Az értéktábla csak itt található véletlen hozzáférésű memória, amely egyrészt egyedülálló lehetőségeket nyújt, másrészt bizonyos korlátozásokat ír elő. A táblával való interakció képessége azonban összehasonlítható az adatbázisban valójában létező objektumokkal való interakcióval.

Történelmileg az 1C értéktáblájának kettős célja van, virtuális analóg meglévő táblák, de ugyanakkor - és vezérlő. A kezelt alkalmazásra való áttéréssel ennek a funkcionalitásnak a nagy része elavult, de ez most már felhasználói felület eleme is lehet, de számos jelentős korlátozással.

Az értéktábla szerkezete objektumként

Az értéktábla tulajdonságait két előre definiált gyűjtemény kombinációja határozza meg: oszlopai és sorai.

Értéktáblázat Oszlopok

Az értéktábla oszlopa a meghatározó tulajdonsága. A táblázat oszlopkészlete határozza meg a szerkezetét. Az oszlopok megfelelnek a fizikai táblák mezőinek, vagy ismerősek felhasználói felület a táblázatos szakasz vagy a dokumentumnapló oszlopai. Az oszlopnak lehet belső neve, értéktípusa és címe, amely akkor jelenik meg, amikor interakcióba lép a táblával.

Mivel az oszlopok objektumok gyűjteménye, oszlopokat hozzáadhat, eltávolíthat és szerkeszthet.

Értékek táblázat sora

Programozási felület szempontjából a karakterláncok egy külön gyűjtemény, amely egy értéktáblába van ágyazva. Ezek hasonlóak a fizikai táblák rekordjaihoz, vagyis ismerik a táblázatos szakasz vagy a dokumentumnapló felhasználói sorait. Minden egyes sor külön-külön egy megnevezett tulajdonságokkal rendelkező objektum, amelynek neve megegyezik a táblázat oszlopainak nevével.

Így a húrral való interakció nagyon hasonlít más objektumokkal való interakcióra. Elolvashatja és megírhatja a tulajdonságait, beleértve az előre definiált FillPropertyValues ​​() függvény használatát. Mivel a sorok az értéktábla fő gyűjteménye, a "Clear ()" metódust használják a táblázat összes sorának törlésére.

Hozzon létre egy értéktáblát

Számos módja van annak, hogy az értékek táblázata használatra készen álljon. Vessünk egy pillantást néhányukra. Minden példát kódlistaként, megjegyzéssel látunk el.

Táblázat készítése a tervező részéről

A fejlesztőnek éppen olyan tábla létrehozásának fő módja, amelyre a fejlesztőnek szüksége van, sajnos a legidőigényesebb, mivel az összes szükséges tábla tulajdonságának manuális megadását igényli.

DemoTable = NewValuesTable; // Először is inicializáljuk a TK-t // Ezután meghatározzuk szükséges paraméterekúj oszlopokhoz, és adja hozzá a gyűjteményhez // Hozza létre a "Nómenklatúra" oszlopot Name = "Nomenklatúra"; ValueType = NewDescription of Types ("ReferenceLink.Nomenclature"); Cím = "Nómenklatúra (termék)"; DemoTable.Columns.Add (név, értéktípus, cím); // Oszlop létrehozása "Mennyiség" Név = "Mennyiség"; ValueType = NewTypeDescription ("Szám"); DemoTable.Columns.Add (Name, ValueType); // Ezen manipulációk eredményeként létrehoztunk egy üres táblázatot gépelt oszlopokkal // Ha pontosabb primitív tipizálást kell használnod, akkor a "TypeDescription" konstruktor kiterjesztett szintaxisát kell használnod

Táblázat létrehozása másolással

Ha kéznél van egy megfelelő felépítésű és / vagy összetételű referencia, lemásolhatja vagy letöltheti az értékek referenciatáblázatát. Ha a hivatkozás egy másik táblázat, akkor a "Referencia táblák másolása" módszert kell alkalmazni. Ha van dolga táblázatos rész vagy regisztrációs bejegyzések halmazával kell használni az "Értéktábla kirakása" módszert. Ha csak struktúrára van szüksége, akkor használhatja a "CopyColumns" módszert.

// Opció az összes sor másolásával a műszaki szabványból, de csak a két megadott oszlop megtartásával: A Standard oszlopai = "Nómenklatúra, Mennyiség"; DemoTable = TableDefault.Copy (, ColumnDefault); // Opció előre kiválasztott sorok másolásával a TZ-sablonból, megtartva a két megadott oszlopot. ColumnsStandard = "Nómenklatúra, mennyiség"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opció sorok másolásával a TZ-szabványból a megadott szűrőn keresztül, egy oszlop „Nomenklatúra” megtartása mellett // Minden sor kiválasztásra kerül, ahol a Mennyiség oszlop értéke 0, csak a Nómenklatúra oszlop szerepel majd a kapott eredményben táblázat., 0); ColumnsStandard = "Nómenklatúra"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opció a táblázat teljes másolásával, majd egy sor törlésével a mennyiség mező értékének nullával egyenlő és az egész oszlop törlésével „Mennyiség” Sorok kiválasztása = Új struktúra ("Mennyiség", 0); ColumnsStandard = "Nómenklatúra"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); TableRow = DemoTable.Find (0, "Mennyiség"); DemoTable.Delete (TableRow); DemoTable.Columns.Remove ("Mennyiség"); // Hasonló beállítások és azok módosításai alkalmazhatók a tábla szakaszokra és a nyilvántartási rekordokra

Táblázat létrehozása lekérdezéssel

Ha az adatbázis tartalmaz egy sablont a szükséges táblához, akkor egy lekérdezés segítségével gyorsan létrehozhat egy táblázatot a kívánt szerkezettel.

// Példa a létrehozással üres asztal a felhalmozási nyilvántartás felépítése alapján // Nem nehéz kitalálni, hogy ily módon megkapja a kitöltött táblázatot Query = New Query ("KIVÁLASZTJÁK AZ ELSŐ 0 * Az Accumulation Register.Products inStore-ból"); QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // Példa egy üres tábla létrehozására kifejezetten meghatározott típusú mezőkhöz és nevekhez Query = New Query; Query.Text = "SELECT FIRST 0 | Érték (Directory.Nomenclature.EmptyLink) AS Nómenklatúra, | EXPRESS (0 AS NUMBER (15, 3)) AS Quantity"; QueryResult = Query.Run (); DemoTable = QueryResult.Upload (); // FONTOS! Ne felejtsük el, hogy a lekérdezésből kapott oszlopértékek típusai mindig tartalmazzák a Null típus // értéket

Következtetés

Ebben a rövid cikkben részletesen bemutattuk az értéktábla létrehozásának alapvető tulajdonságait és bevált módszereit, amelyek elegendőek ahhoz, hogy elkezdhessék és megértsék. Maga az értéktábla objektum annyira sokoldalú, hogy Részletes leírás képességeihez külön cikk írása szükséges a munka technikáiról és módszereiről.



Tetszett a cikk? Oszd meg