itthon / Windows oktatóanyagok / Mezőverzió külső adatforrások 1c. Külső adatforrások. A külső forrás tulajdonságai űrlap Adatok lapja

Mezőverzió külső adatforrások 1c. Külső adatforrások. A külső forrás tulajdonságai űrlap Adatok lapja

Dolgozzon velük listákban 1C Enterprise módban.

A munkában azonban gyakran adódik olyan helyzet, amikor az adatok egy részét máshol tárolják.

  • Online áruház (általában külső MySQL/SQL adatbázisban tárolja az adatokat)
  • Egy másik alap.

Ahhoz, hogy más adatbázisokban tárolt adatokkal dolgozhasson, speciális mechanizmusokat kell kidolgoznia.

Az 1C 8.2.14-es verzióban egy új jelent meg a név alatt Külső források 1C adatok, amelyek nagyban megkönnyítik a programozó munkáját, mivel:

  • most már nincs szükség speciális mechanizmusok létrehozására az adatok megszerzéséhez
  • az ilyen adatokhoz lehet hozzáférni
  • az ilyen adatok az 1C listákban tekinthetők meg.
    • 1C külső adatforrás - külső alap SQL

      Tegyük fel, hogy van egy SQL adatbázisunk, amely tárolja a szükséges adatokat. Próbáljunk meg adatokat olvasni belőle az 1C külső adatforrás mechanizmussal.

      Adjunk hozzá egy külső adatforrást 1C. A konfigurátorba kell lépni, a külső adatforrások a konfigurációs ablakban, a fa legalján találhatók.

      1. Csatlakozás

      Adjunk hozzá egy új külső adatforrást 1C, nevezzük tetszőlegesen.

      Az adatbázis táblázatokból áll. Hozzá kell adnunk őket a hozzáadott külső adatforráshoz. Kattintson a jobb gombbal rá, és válassza a Táblázat hozzáadása lehetőséget.

      Az első alkalommal kérni fogja, hogy adjon meg egy kapcsolati karakterláncot. Megadható manuálisan, vagy formálható, amihez a „…” gombra kell kattintani.

      Illesztőprogramként konkrét esetünkben az "SQL Server" lehetőséget választjuk.

      Töltsük ki az SQL-hez való csatlakozás alapvető paramétereit. A szerver neve beírható vagy kiválasztható a listából.

      Az 1C csatlakozik az SQL-hez, és felkéri, hogy válasszon ki egy adott adatbázist a listából.

      Ezt követően az 1C megjeleníti az adatbázisban lévő táblák listáját és oszlopait. Ki kell jelölnie a szükséges táblákat jelölőnégyzetekkel.

      A táblázatok és oszlopok hozzáadásra kerülnek. A nevek a távoli adatbázisban meghatározottak lesznek. 1C-ben átnevezheti őket (a tulajdonságokban).

      Íme egy példa egy hozzáadott táblázatra:

      Íme egy példa egy hozzáadott oszlopra:

      Annak érdekében, hogy az 1C platform ugyanúgy működjön egy külső táblával, mint az 1C könyvtárakkal, további paraméterek adhatók meg a táblázatban:

      • A Kulcsmező tulajdonságban adja meg az egyik oszlopot, amely a sor egyedi azonosítását biztosítja; ha több karakterlánc biztosít egyediséget, akkor Ily módon nem működik (a Kód mező analógja)
      • A Nézet mező tulajdonságban adja meg az egyik oszlopot, amely röviden ábrázolja a karakterláncot (a Név mező analógja).
      • A Táblázat adattípus tulajdonságban adja meg az Objektumadatokat.

      2. Megtekintés

      A távoli adatbázishoz való kapcsolat nem jön létre automatikusan. A csatlakozáshoz ki kell választania egy tipikus menüt.

      A Standard ágban van egy speciális Külső adatforrások kezelése parancs, amely lehetővé teszi a csatlakozási paraméterek megadását (az 1C Enterprise módhoz sajátjaikat) és a csatlakozást.

      Először meg kell adnia az adatbázishoz való csatlakozás paramétereit.

      Amikor elvégezte a konfigurációt a konfigurátorban, az eredményként megmutatta a kapcsolódási karakterláncot. Újra megtekintheti, ha ismét rákattint a Táblázat hozzáadása gombra a konfigurátorban.

      Másolja ki a kapcsolati karakterláncot, és adja meg 1C Enterprise módban.

      Ezt követően létre kell hoznia a tényleges kapcsolatot.

      A kapcsolat létrejötte után lehetőség van listákkal dolgozni.

      3. Használja 1C nyelven

      A kapcsolat létrejöhet a programkódból is 1C nyelven.

      A csatlakozási paraméterek a következők szerint vannak megadva:
      ConnectionParameters = ExternalDataSources.SourceNameConfigurator.GetCommonConnectionParameters();

      ConnectionParameters.AuthenticationStandard = igaz;
      ConnectionParameters.UserName = "sa";
      ConnectionParameters.Password = "jelszó";
      ConnectionParameters.ConnectionString = "kapcsolati karakterlánc a konfigurátorból";
      ConnectionParameters.DBMS = "MSSQLServer";

      ExternalDataSources.SourceNameConfigurator.SetCommonConnectionParameters(ConnectionParameters);
      ExternalDataSources.SourceNameConfigurator.SetUserConnectionParameters(UserName(), Parameters);
      ExternalDataSources.SourceNameConfigurator.SetSessionConnectionParameters(Parameters);
      ExternalDataSources.SourceNameConfigurator.SetConnection();

      Adatokat lekérdezhet az adatbázisból a szokásos módszerrel. Példa egy külső forrás lekérdezési szövegére: OurExternalSource and tablesExternalSourceTable:

      VÁLASZT
      ExternalSource Table.FieldName
      TÓL TŐL
      ExternalDataSource.OurExternalSource.Table.ExternalSourceTable"

      1C külső adatforrás - Excel fájllal dolgozik

      Próbáljunk ki egy másik lehetőséget - egy Excel-fájllal való munkavégzést egy külső 1C adatforráson keresztül.

      Hozzunk létre egy egyszerű Excel fájlt.

      Adjunk hozzá egy külső forrást, nevezzük tetszőlegesen FileExcelnek. Adja hozzá a "Sheet1 $" táblázatot. Amint láthatja, ez a munkalap neve az Excelben a „$” szimbólum hozzáadásával.

      Mint az SQL esetében, adjunk hozzá oszlopokat. Manuálisan hozzáadhatók. Fontos, hogy a hozzáadott oszlopok típusai megegyezzenek, különben később olyan hibaüzenetet kaphat, mint például az „Adattípus nem egyezik”.

      Az oszlophoz meg kell adni a nevet az 1C-ben és a nevet az adatforrásban.

      Az Excelhez van egy funkció (például "Túl kevés paraméter. 3 szükséges" hiba):

      • Ha az Excel táblázat első sora oszlopneveket tartalmaz, akkor csak meg kell adnia ennek az oszlopnak a nevét, például "Kód".
      • Ellenkező esetben meg kell adnia a teljes nevet a „Sheet1$.Code” táblanévvel, de a paraméterekhez hozzá kell adni a „HDR=NO;” értéket.

      Az Excel-fájlok csatlakozási paraméterei így néznek ki:

      • XLSX fájlok ( Office verzió 2007 és újabb)
        Driver=( Microsoft Excel Illesztőprogram (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\FileExcel.xlsx;
      • XLS fájlok (korábban)
        Illesztőprogram=(Microsoft Excel illesztőprogram (*.xls)); DriverID=790; DBQ=D:\FileExcel.xls;
        Meg kell adnia a saját nevét és elérési útját a fájlhoz.

Külső adatforrások Az 1C egy viszonylag új 1C 8.3 és 8.2 metaadat-objektum, amelynek segítségével külső adatforrások csatlakoztathatók az 1C-hez: SQL táblák, Excel, Access, FoxPro (dbf), másik 1C adatbázis, Oracle, Paradox (db), - és még olvasás is egyszerű fájlok txt/csv.

Ez sok lehetőséget ad más rendszerekkel való együttműködésre. Vizsgáljuk meg részletesebben.

Külső adatforrások beállítása az 1C 8-ban

A külső források beállítása rendszerenként egyedi. De általában a beállítás közös része ugyanaz - ez a kapcsolati karakterlánc beállítása:

Ingyenes 267 1C videóleckéket kaphat:

Ha a kapcsolati karakterlánc helyes, a rendszer felszólítja, hogy válassza ki a kívánt táblát az adatbázisból. Ennek eredményeként egy kész táblázatot kapunk, amelyben megadhatja a kulcsmezőt (egyedi mező) és a nézetmezőt (hogyan fog megjelenni a rekord az 1C-ben):

Külső adatforrások használata az 1C 8.3

Az 1C külső adatforrásai más adatbázistáblákhoz hasonlóan használhatók. A platform automatikusan létrehoz egy űrlapot számukra, ha nincs beállítva. A lekérdezések külső forrásokból származó adatokat is használhatnak.

A 8.3.5.1068 (és újabb) platformverzióban lehetővé vált a külső forrásokból származó adatok hozzáadása, módosítása és törlése szoftver eszközök 1C. Ebben a cikkben példákat mutatunk be erre a funkcióra.

A külső forrásokhoz való rögzítés lehetővé tétele érdekében az 1C új tulajdonságokkal egészítette ki az adattáblázatokat és a külső források mezőit:

  • Az egész asztalra - tulajdonság Csak olvasni. Csak olvasható = Igaz azt jelenti, hogy a táblázatban szereplő adatok megváltoztatása nem lehetséges;
  • Az egyes táblamezőkhöz - tulajdonságok Csak olvasni, AllowNullés Kitöltési érték:
    • Csak olvasható = Igaz azt jelenti, hogy ebben a mezőben az adatok megváltoztatása nem lehetséges;
    • AllowNull = Igaz azt jelenti, hogy érték írható ebbe a mezőbe NULLA;
    • Kitöltési érték a mező alapértelmezett értékét tartalmazza (ha van ilyen).

Ön (a táblák kézi leírásakor) vagy a platform (amikor táblákat hoz létre a tervezővel) a következő módon használhatja ezeket a tulajdonságokat.

  • Csak olvasható = Igazállítsa be például nézetekhez (nézethez), kifejezés alapján kapott táblázatokhoz (függvény eredménye) és hasonlókhoz. Az ilyen táblázatokban szereplő adatok nem módosíthatók;
  • Csak olvasható = Igaz adja meg az automatikusan beállított mezőket ( AUTOMATIKUS NÖVEKEDÉS), számított mezők és hasonlók. Az ezekben a mezőkben lévő adatok nem módosíthatók;
  • AllowNull = Igaz minden mezőre beállítva, kivéve a kulcsmezőket, és azokat, amelyek leírása külső forrásban mint NEM NULLA;
  • Kitöltési érték mezőket kell beállítani abban az esetben, ha ennek a mezőnek a standard értéke a külső forrásban van megadva (érték ALAPÉRTELMEZETT).

Hozzáadhat, módosíthat és törölhet adatokat külső forrásokból a beépített nyelv használatával vagy interaktív módon. A beépített nyelvben a táblázatkezelő alábbi metódusai használhatók erre:

  • RecordSet() létrehozása- nem objektum táblákhoz;
  • Új módszer CreateObject()- tárgytáblázatokhoz.

Ennek megfelelően a tárgyak ExternalDataSourceTableRecordSetés ExternalDataSourceTableObjectúj módszerek jelentek meg Ír()és Töröl().

Adatok hozzáadása

Amikor adatokat ad hozzá egy külső forráshoz, létrehoz egy objektumot (vagy rekordkészletet), beállítja a mezőértékeket, és ír. Vannak azonban olyan funkciók, amelyekről érdemes tudni.

Például, amikor megpróbálja beállítani egy olyan mező értékét, amely rendelkezik Csak olvasható = Igaz, hibaüzenet jelenik meg. És amikor közvetlenül az adatbázisba ír a kifejezésben BESZÁLLÍTÁS az ilyen mezők kimaradnak. A többi mező az Ön által hozzárendelt értékekkel van kitöltve. Ezért az értékek Nullaés az alapértelmezett értékeket kifejezetten hozzá kell rendelni a mezőkhöz.

  • id(AllowNull = igaz);
  • név(AllowNull = igaz);
mCharacteristic = ExternalDataSources.IM.Tables.shop_feature.CreateObject(); mCharacteristic.id = kód; mCharacteristic.name = Név; mCharacteristic.Write();

Nyilatkozat végrehajtása Ír() az eseménykezelőt hívja meg először Felvétel előtt, akkor fizikai írás történik a külső forrástáblába ( BESZÁLLÍTÁS), akkor a rendszer meghívja az eseménykezelőt Felvételkor.

A külső forrástábla kulcsmezőjével a következőket teheti. Ha a kulcsmező szerkeszthető, akkor az írás előtt "kézi" állítja be az értékét. Ha a kulcsmező megváltoztatása tilos, akkor a platform önállóan beszerzi a kulcsot BESZÁLLÍTÁS vagy közvetlenül utána. A módszerrel beavatkozhat ebbe a folyamatba SetReferenceNew() a fizikai rekord előtt (az eseménykezelőben Felvétel előtt) vagy közvetlenül a fizikai bejegyzés után (az eseménykezelőben Felvételkor).

Adatok módosítása

Az adatok megváltoztatásakor a táblázat összes mezőjének értékei, amelyek rendelkeznek Csak olvasható = Hamis.

MFeature = ExternalDataSources.IM.Tables.shop_feature.FindByField("id",kód); mObject = mCharacteristic.GetObject(); mObject.name = Név; mObject.Write();

Ha csak néhány mezőt kell rögzíteni, akkor ezek listája közvetlenül a beépített nyelvből adható meg a metódusok segítségével SetWritableFields()és GetWritableFields().

Adatok törlése

Az adatok törlésével egy sor közvetlenül törlődik az adatbázistáblából. Ugyanakkor a törölt objektumra mutató hivatkozásokat nem keresi. Ha ilyen funkcionalitásra van szükség, saját maga is beprogramozhatja az eseménykezelőben Törlés előtt().

MFeature = ExternalDataSources.IM.Tables.shop_feature.FindByField("id",Kód); mObject = mCharacteristic.GetObject(); mObject.Delete();

Tranzakciók

A külső forrásokból származó adatok beolvasása, mint korábban, a tranzakción kívül történik, és íráskor a platform implicit tranzakciót nyit meg. Ugyanakkor az explicit tranzakciókban objektummetódusok segítségével olvasást és írást is végrehajthat ExternalDataSourceManager:

  • Tranzakció indítása();
  • CommitTransaction();
  • Tranzakció törlése().

Zárak

  • Auto;
  • Kezelve;
  • Automatikus és vezérelt.

valamint a külső forrástábla tulajdonsága Isolation LevelTransactions:

Ezenkívül a módszerben önállóan beállíthatja a zárak szintjét Tranzakció indítása().

A tipikus cikket példákkal egészítettem ki) Lesz még idő - teszek még példákat.

8.2.14.533 kiadás – végre többé-kevésbé stabil változata a platform 14. kiadásának. Végül lehetőség nyílt egy csodálatos lehetőség – a „külső adatforrások” – kipróbálására.

Miért ez a lehetőség ekkora érdeklődést vált ki? Bárki, aki 1C-ben programozott, eléggé ismeri az SQL-t, és legalábbis általánosságban ismeri az üzleti alkalmazásokhoz használt egyéb technológiai platformok fejlesztésének architektúráját és elveit, határozottan elmondja, mit szeret a legjobban az 1C-ben. Természetesen a lekérdezéskészítő a legkényelmesebb és legátgondoltabb mechanizmus a relációs struktúrákból származó adatok lekérdezéséhez, amelyekkel személyesen találkoztam. És most az 1C olyan csodálatos lehetőséget adott nekünk, hogy ne csak az 1C-vel, hanem bármely más asztallal is használhassuk. Íme, csak egy csokor ebbe a "hordó mézbe" öntött "léggyenge". Minden rendben:

1) Beállítás és használat - "tamburával táncolás" nélkül nem fog működni

A) Adjon hozzá egy külső adatforrást - úgy tűnik, semmi bonyolult
b) jelölje be a "Kiválasztás a listából" jelölőnégyzetet - szükséges - ez szükséges a teljesítmény ellenőrzéséhez, és megóvja Önt a felesleges problémáktól
ban ben)
(IMG:http://pics.livejournal.com/comol/pic/0000cr1r.png)
- feltétlenül nyomja meg a "..." gombot - a kapcsolat ODBC. Nem az OLEDB-t, mint azt mindannyian megszoktuk, hanem egy szinttel lejjebb

És legyen itt NAGYON FIGYELMES.

Ez egy ODBC illesztőprogram – ha kliens-szerver verziót használ, annak a szerveren kell lennie. Ha egy rendszeren fejleszt, és működő változat másrészt (mint általában) győződjön meg róla, hogy nem tartogat meglepetéseket. Furcsa javaslat, de válassza a legrégebbi vagy legelterjedtebb illesztőprogramot, ha nem foglalkozik különösebben a sebességgel, és nem kívánja túllépni az SQL92 szabvány határait. Ez biztosítja Önnek jobb kompatibilitás. Például SQL Server 2008 esetén a legjobb sofőr lesz SQL Server Native Client 11, de azt javaslom, hogy csak az SQL Servert válasszuk, különben ezt a nagyon natív klienst kell telepíteni vagy a szerverre, vagy az összes kliens gépre (fájlverzió használata esetén), és nem ad sok hasznot az egyszerű feladatokhoz.

E) Szabványos szerverválasztó párbeszédpanelek

G) Válasszon táblázatot és részleteket... egy nagyszerű lehetőség - azonnal átnevezheti tetszés szerint (és a részleteket is), míg a tulajdonságokban az adatforrás mezőinek nevei láthatók

H) És most fut, nyissa meg a lekérdezéstervezőt - hülye módon kiválasztja az összes rekordot a táblából és az OPA-ból - hiba. Mit kell tenni? Ha van menedzselt felületed, nézd meg a szerviz menüben, ha pedig normál...
Én személy szerint ezt a kódot használtam:

Paraméterek = ExternalDataSources.DAX.GetCommonConnectionParameters();
Paraméterek.AuthenticationStandard = igaz;
Parameters.UserName = "sa";
Parameters.Password = "pas";
Parameters.ConnectionString = "DRIVER=(SQL Server);SERVER=servet;UID=sa;PWD=;ADATBÁZIS=adatbázis";
Parameters.DBMS = "MSSQLServer";

ExternalDataSources.DAX.SetCommonConnectionParameters(Parameters);
ExternalDataSources.DAX.SetUserConnectionParameters(UserName(), Parameters);
ExternalDataSources.DAX.SetSessionConnectionParameters(Parameters);

ExternalDataSources.DAX.SetConnection();

Lehet, hogy néhány darabra nincs szükség, de működik. Kódot kell futtatni EGYSZER. Utána normálisan fog kapcsolódni... persze misztikum - miért volt erre szükség, nem világos...

2) Csak olvasható adatforrások
Igen, csodák nem történnek... de néha azt akarod...

3) NE HASZNÁLJA EGYÜTT BELSŐ ADATFORRÁSOKKAL
Személy szerint ez a tény a helyszínen megölt.

Hogy is van ez.... amit vártunk és már elképzeltük és nyaltuk, hogy most egy kérésben, összevonjuk az adatainkat 1C-vel, megforgatjuk - csoportosítjuk, beillesztjük a jelentésbe, de nem volt ott...

De persze ez nem állítja meg a tapasztalt embereket... mi jutott eszébe? Így van - ideiglenes táblázatok:

4) NE HASZNÁLJA EGYÜTT IDEIGLENES ASZTALOKKAL

De ez már nem technológiai nehézségnek tűnik, hanem nagyon úgy néz ki, hogy mit akarnak tőlünk, "hogy az élet ne tűnjön paradicsomnak" (IMG :) .

5) Csak SKD csatlakozásoknál használható

Azok számára, akik nem ismerik, az ACS-ben az "Adatkészlet hivatkozások" fülön található. Milyen gyakran használod őket? Kényelmes? Nyilván rá akarnak kényszeríteni, hogy gyakrabban használjuk őket. De van egy oszlop "Link feltétele" és "Link paramétere". Nem találtam példát a használatukra semmilyen tipikus konfigurációban, a dokumentációban és Khrustaleva-ban sem, valahogy nem minden átlátható. Valaki elmagyarázná nekem, hogyan működik a "linkfeltétel"? Ha odaírod, hogy a SourceAttribute = ReceiverRevision, akkor nem működik. Természetesen a "Kifejezés" mezőbe beírható a feltétel - a legtöbb esetben ez is elég... de valahogy nem túl egyszerű.

Összességében ezt a problémát korábban valahol így oldották meg:

InitializeDataSource() függvény

DateStart = BuilderSettings.Settings.DataParameters.Items.Value;
DateCon = BuilderSettings.Settings.DataParameters.Items.Value;
Ha DateCon > "20100101" Akkor
DateCon = "20100101";
EndIf;

QN = Új minősítőszám(15,2);
cs = NewStringQualifers(255);

ArrayNumber = Új tömb();
ArrayNumber.Add(Típus("Szám"));

ArrayString = Új tömb();
ArrayString.Add(Type("String"));

ArrayData = Új tömb();
ArrayDate.Add(Típus("Dátum"));

//A számviteli költséget a táblázatba fogjuk kitölteni
TypeNumber = ÚjTípusLeírás(TömbSzám,KN);
StringType = NewTypeDescription(ArrayString, CS);
TypeDate = NewTypeDescription(ArrayDate);

//tábla adatok betöltéséhez SQL-ből
TK = Új értéktábla();
TK.Columns.Add("NómenklatúraKód", TypeString);
TK.Columns.Add("Mennyiség", Típusszám);
TK.Columns.Add("Időszak", TípusDátum);

TK.Indexes.Add("Időszak");

// Csatlakozás SQL-hez
ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;Felhasználói azonosító=sa;Pwd=;Adatforrás=;Az előkészítési eljárás használata=1;Automatikus fordítás=Igaz;Csomagméret=4096;Munkaállomás-azonosító=;Titkosítás használata for Data=False;Címke oszlopsorolással, ha lehetséges=False;Kezdeti katalógus=Jelentések";
Kapcsolat = Új COMObject("ADODB.Kapcsolat");
Parancs = Új COMObject("ADODB.Command");
RecordSet = Új COMObject("ADODB.RecordSet");
Dátum = "";
Kísérlet
Connection.Open(ShortLP(ConnectionString));
Command.ActiveConnection = Kapcsolat;
Command.CommandText = "Válassza ki a *-ot a PH-ból ahol pont >= "" + String(Format(DateStart, "DF=yyyyMMnd")) + "" és pont RecordSet = Command.Execute();
RecordSet.MoveFirst();
Kivétel
TK visszatérése;
A kísérlet vége;

Míg RecordSet.EOF = False Loop
String = TK.Add();
String.NomenclatureCode = RecordSet.Fields(RecordSet.Fields.Item(1).Name).Érték;
String.Qnty = RecordSet.Fields(RecordSet.Fields.Item(12).Name).Érték;
Sor.Period = RecordSet.Fields(RecordSet.Fields.Item(13).Name).Érték;
RecordSet.MoveNext();
EndCycle;

Request = Új kérés();
VrTable = NewTempTableManager();
Query.SetParameter("vDataTable", TK);
Query.SetParameter("Kezdődátum", Kezdődátum);
Query.SetParameter("DateCon", DateCon);
Query.Text = "VÁLASZTÁS
| vrDataTable.NomenclatureCode,
| vrDataTable.Qnty,
| vrDataTable.Period
|PUT DataTable
| FROM
| &vrDataTable AS vrDataTable
|HOL
| vrDataTable.Period >= &DateStart
| És vrDataTable.Period Query.Execute();
TK = Undefined;

Request = Új kérés;
Query.TempTableManager = VrTable;
Query.Text = "Itt van egy ideiglenes táblát tartalmazó lekérdezés";

Eredmény = Request.Run();
Eredmény visszaküldése;

EndFunctions

OuterSet = InitializeDataSource();
DataSet = New Structure();
DataSet.Insert("SQL Table", ExternalSet);
GenericReports.Generate GenericReport(ThisObject, Result, Decryption Data, OutputToReportForm,DataSet);

Valójában nincs sok kódsor, és meglehetősen szabványosak ... ebben az esetben használhatja a lekérdezéskészítő teljes funkcióját, és csak az ADATÖSSZETÉTEL függvényt adhatja meg az ACS-ben

De persze egy kicsit nem olyan szépnek tűnik ... és az értéktáblázatba való feltöltéskor minden alkalommal kódot kell írnia, és ellenőriznie kell, hogy hibázott-e a részletek nevében ... egyébként amit 1C-ben kaptunk, az valahogy félkegyelműnek tűnik. Még nem döntöttem el, melyik a kényelmesebb használni. Ön dönt, és ír a döntéseiről, és arról, hogy mi késztetett arra, hogy meghozza azokat.

[a link megtekintéséhez regisztrálnod kell]

Az 1C program 8-as verziójában a fejlesztők hozzáadták a funkcionalitáshoz azt a lehetőséget, hogy harmadik féltől származó adatbázisokat kapcsolódjanak, és információkat szerezzenek belőlük közvetlenül a konfigurátorból, anélkül COM csatlakozásokés OLE objektumok. Ez a funkció egy új objektum segítségével valósul meg - "Külső adatforrások"

Az 1C külső adatforrásai ugyanúgy használhatók, mint a többi rendszertábla:

  1. Amikor jelentéseket és számításokat készít adatösszetételi rendszerrel (ACS);
  2. Harmadik féltől származó forrásokban tárolt információkra mutató hivatkozások beszerzése;
  3. A táblázatokban tárolt adatok megváltoztatása;
  4. A kérések benyújtásakor.

Fontos tudni, hogy ezt a mechanizmust nem úgy tervezték, hogy más 1C adatbázisokkal működjön, mivel maga az 1C.Enterprise működési modell nem jelent interferenciát az adatokkal a fizikai táblák szintjén.

Új forrás létrehozása

Új külső forrás hozzáadása a programhoz a "Konfigurátor" módban történik. Van egy megfelelő ág a konfigurációs fában (1. ábra)

Új forrás létrehozásakor izzadnia kell, annak ellenére, hogy az új objektum formája csak négy lappal rendelkezik:

  1. Alapvető;
  2. Adat;
  3. Funkciók;
  4. jogok.

Az első fülnek csak egy érdekes paramétere van - a zárvezérlési mód. Ha nem tesz fel kérdéseket az adatok blokkolásával kapcsolatban a tranzakciókban, a párhuzamosítás bonyolultságáról információáramlások ezt a beállítást hagyhatja automatikus zár módban. Ez a megközelítés azonban túlzott korlátozásokhoz vezethet (például amikor egyetlen rekord helyett a program zárolja a teljes fizikai táblát, megfosztva a többi felhasználót attól, hogy dolgozzon vele).

A felügyelt zárak az automatikus zárakkal ellentétben magában a programban rejlő tranzakciós mechanizmust használják, nem pedig a DBMS-ben, ami lehetővé teszi a táblarögzítések lefordítását sokkal többre. alacsony szint.

Ennek a paraméternek az "Automatikus és felügyelt" értékre állításával lehetőséget adunk a rendszernek, hogy az egyes táblák megfelelő tulajdonságára közvetlenül hivatkozva meghatározza, melyik módot használja.

A külső forrás tulajdonságai űrlap Adatok lapja

Az „Adatok” fül formája az ábrán látható. 2

Rizs. 2

Ide külső forrástáblákat és kockákat adhatunk hozzá. Kétféleképpen adhat hozzá táblázatot:

  1. Manuálisan, majd látni fogjuk a táblázat hozzáadásának űrlapját (3. ábra);

Rizs. 3

  1. Vagy válasszunk a fizikai forrástáblák listájából (4. ábra), ilyenkor egy speciális konstruktor nyílik meg előttünk.

Rizs. négy

Nézzük meg közelebbről a táblázat hozzáadásának űrlapját. A "Name" tulajdonság egy objektum egyedi azonosítására szolgál egy konfigurációban.

A metaadat-objektum és a végső fizikai tábla összehasonlítása a "Továbbiak" lapon található "Név az adatforrásban" tulajdonságon keresztül történik (5. ábra).

Rizs. 5

Ezután meg kell határoznunk a táblázat típusát, vagy inkább objektivitását. Ha a struktúrában tárolt adatok bármely mezőn keresztül egyedileg azonosíthatók, a tábla lehet objektumtábla. Ha a rekord azonosságát kulcsmezők halmaza határozza meg, akkor a táblának nem objektumtípusúnak kell lennie.

Az ilyen táblázatokat más metaadat-objektumokkal összehasonlítva a következő analógiát vonhatjuk le:

  • Az objektumtáblázatok referenciakönyvek;
  • A nem objektív információs nyilvántartások.

A kulcsmezők halmazát a következő űrlapparaméter ("Kulcsmezők") határozza meg. Ezt a mezőt kötelező kitölteni, üresen hagyva hiba lép fel a konfiguráció mentésekor.

Amint az 5. ábrán látható, egyes mezők és űrlapgombok nem szerkeszthetők:

  • Kifejezés adatforrásban;
  • Táblázat adattípusa;
  • Nézet mező;
  • Kezelők megtekintése.

Csak akkor használhatók, ha kitöltöttük a táblázat mezőit, meghatároztuk a típusukat és beállítottuk az azonosítóikat (6. ábra)

Rizs. 6

Itt érdemes figyelni az "Allow Null" opcióra, ha ez a négyzet be van jelölve, nem kívánatos ilyen mezőt kulcsként használni.

Asztalkészítő

Talán a legfontosabb és érdekes pont a külső forrásokkal való munka során egy kapcsolati karakterlánc létrehozása. Konstruktora akkor nyílik meg, ha rákattint a "Connection string" paraméter melletti három ponttal ellátott gombra.

Először is meg kell határoznunk, hogy melyik illesztőprogramot használjuk a csatlakozáshoz (7. ábra)

Rizs. 7

A paraméter helytelen meghatározása nem teszi lehetővé harmadik félhez való csatlakozást információs bázis. Azt is meg kell érteni, hogy nem minden, a legördülő listában megadott illesztőprogram használható a kapcsolati karakterlánc automatikus létrehozására. Ha a platform hibát jelez (8. ábra), akkor a kapcsolati karakterláncot kézzel kell megírni.

8. ábra

Rizs. 9

Maga a vonal szigorúan szabályozott építmény.

Csatlakozási karakterlánc példa

Vegyük fontolóra egy harmadik fél által létrehozott adatbázist Microsoft Accessés a D lemez gyökerében található. Ennek az alapnak a csatlakoztatásához a megfelelő illesztőprogramot kell használnunk, de annak kiválasztása a vonalkonstruktorban hibához vezet 8. ábra.

A csatlakozási paramétereket mi magunk írjuk meg.

Illesztőprogram=(Microsoft Access Driver (*.mdb)) - így néz ki a sor első része. Kapcsos zárójelben megadtuk az illesztőprogramot.

Mert Excel fájlokígy fog kinézni (Microsoft Excel Driver (*.xls)) , az irodában 2003-nál régebbi Excel fájlok esetén az illesztőprogram sora így fog kinézni (Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *). .xlsb )).

Ezt a paramétert pontosvesszővel elválasztva a következőtől, meg kell írnunk a tárhelyünk címét (esetünkben DBQ=D:\Database1.mdb).

Ezt a két paramétert összeadva a Driver=(Microsoft Access Driver (*.mdb));DBQ=D:\Database1.mdb értéket kapjuk, ezt a paramétert írva hozzáférünk ennek az adatbázisnak a belső struktúráihoz.

A "Külső forrás" objektumhoz nem elég csak a konfigurációban létrehozni, hanem "Vállalkozások" módban is csatlakoztatni kell. Ezt a "Minden funkció"->Külső források menüből teheti meg. Amikor először lépünk be a táblázatunkba, ugyanazt a kapcsolati karakterláncot kell megírnunk már "Enterprise" módban.