1c připojovací řetězec externího zdroje dat. Externí zdroje dat

Ve verzi 8 programu 1C přidali vývojáři k funkcionalitě možnost propojovat databáze třetích stran a získávat z nich informace přímo z konfigurátoru, bez použití COM připojení a OLE objektů. Tato funkce je implementována pomocí nového objektu – „Externí zdroje dat“

Externí zdroje dat v 1C lze používat stejným způsobem jako jiné tabulky v systému:

  1. Při vytváření sestav a výpočtů pomocí systému skládání dat (DCS);
  2. Získání odkazů na informace uložené ve zdrojích třetích stran;
  3. Změna dat uložených v tabulkách;
  4. Při generování požadavků.

Je důležité vědět, že tento mechanismus není navržen pro práci s jinými databázemi 1C, protože samotný operační model 1C.Enterprise neznamená zásah do dat na úrovni fyzických tabulek.

Vytvoření nového zdroje

Přidání nového externího zdroje do programu probíhá v režimu „Konfigurátor“. V konfiguračním stromu je odpovídající větev (obr. 1)

Při vytváření nového zdroje budete muset tvrdě pracovat, přestože formulář nového objektu má pouze čtyři záložky:

  1. Základní;
  2. Data;
  3. Funkce;
  4. Práva.

První záložka má pouze jeden zajímavý parametr – režim ovládání zámku. Pokud nemáte žádné dotazy ohledně blokování dat v transakcích nebo složitosti paralelizace informačních toků, můžete tuto možnost ponechat v režimu automatického blokování. Takový přístup však může vést k přílišným omezením (např. když místo samostatného záznamu program uzamkne celou fyzickou tabulku a připraví tak ostatní uživatele o možnost s ní pracovat).

Spravované zámky, na rozdíl od automatických, využívají transakční mechanismus vlastní programu samotnému, nikoli DBMS, což umožňuje přenést zachycení tabulek na mnohem nižší úroveň.

Nastavením tohoto parametru na „Automatický a spravovaný“ poskytujeme systému možnost určit, který režim použít, přímým přístupem k podobné vlastnosti pro každou konkrétní tabulku.

Karta „Data“ formuláře vlastností externího zdroje

Podoba záložky „Data“ je znázorněna na obr. 2

Rýže. 2

Zde můžeme přidat externí zdrojové tabulky a kostky. Tabulku lze přidat dvěma způsoby:

  1. Ručně se pak před námi otevře formulář pro přidání tabulky (obr. 3);

Rýže. 3

  1. Nebo vyberte ze seznamu fyzických zdrojových tabulek (obr. 4), v takovém případě se před námi otevře speciální konstruktor.

Rýže. 4

Podívejme se blíže na formulář pro přidání tabulky. Vlastnost „Name“ se používá k jednoznačné identifikaci objektu v konfiguraci.

Porovnání objektu metadat a finální fyzické tabulky probíhá prostřednictvím vlastnosti „Name in data source“ umístěné na záložce „Advanced“ (obr. 5).

Rýže. 5

Dále musíme určit typ tabulky, respektive její objektivitu. Pokud lze data uložená ve struktuře jednoznačně identifikovat prostřednictvím libovolného pole, tabulka může být objektová. Pokud je individualita záznamu určena sadou klíčových polí, tabulka musí mít neobjektový typ.

Porovnáním takových tabulek s jinými objekty metadat lze uvést následující analogii:

  • Tabulky objektů jsou referenční knihy;
  • Neobjektové jsou informační registry.

Sada klíčových polí je definována v dalším parametru formuláře („Klíčová pole“). Toto pole je povinné; pokud jej ponecháte prázdné, uložení konfigurace se nezdaří.

Jak je vidět z obr. 5, některá pole a tlačítka formuláře nelze upravovat:

  • Výraz ve zdroji dat;
  • Datový typ tabulky;
  • Prezentační pole;
  • Zobrazit ovladače.

Lze je použít až poté, co vyplníme pole tabulky, nadefinujeme jejich typ a přiřadíme k nim identifikátory (obr. 6).

Rýže. 6

Zde byste měli věnovat pozornost parametru „Allow Null“; pokud je toto políčko zaškrtnuté, není vhodné používat takové pole jako klíč.

Tvůrce stolů

Snad nejdůležitějším a nejzajímavějším bodem při práci s externími zdroji je vytvoření připojovacího řetězce. Jeho konstruktor se otevře, pokud kliknete na tlačítko se třemi tečkami vedle parametru „Připojovací řetězec“.

Nejprve budeme požádáni o rozhodnutí o ovladači, který bude použit pro připojení (obr. 7)

Rýže. 7

Nesprávná definice tohoto parametru vám neumožní připojit se k infobázi třetí strany. Měli byste také pochopit, že ne všechny ovladače uvedené v rozevíracím seznamu lze použít k automatickému generování připojovacího řetězce. Pokud platforma vygeneruje chybu (obr. 8), bude nutné zadat připojovací řetězec ručně.

Obr.8

Rýže. 9

Samotná linka je přísně regulovaná stavba.

Příklad připojovacího řetězce

Uvažujme databázi třetí strany vytvořenou v Microsoft Access a umístěnou v kořenovém adresáři jednotky D. Pro připojení této databáze musíme použít příslušný ovladač, ale jeho výběr v konstruktoru řádků má za následek chybu obr. 8. Obr.

Parametry připojení si nastavíme sami.

Driver=(Microsoft Access Driver (*.mdb)) – takto vypadá první část řádku. Ve složených závorkách jsme definovali driver.

U souborů Excel bude vypadat takto (Ovladač Microsoft Excel (*.xls)), u souborů Excel vytvořených v kanceláři starší než 2003 bude řádek ovladače vypadat (Ovladač Microsoft Excel (*.xls, *.xlsx, *. xlsm, *.xlsb)).

Oddělením tohoto parametru od dalšího čárkou musíme zadat adresu našeho úložiště (v našem případě DBQ=D:\Database1.mdb).

Sečtením těchto dvou parametrů dostaneme Driver=(Microsoft Access Driver (*.mdb));DBQ=D:\Database1.mdb Zápisem tohoto parametru získáme přístup k vnitřním strukturám této databáze.

U objektu „External Source“ jej nestačí pouze vytvořit v konfiguraci, ale také je potřeba jej připojit v režimu „Enterprise“. To lze provést z nabídky „Všechny funkce“->Externí zdroje. Když poprvé vstoupíme do naší tabulky, musíme zadat stejný připojovací řetězec v režimu „Enterprise“.

Ve verzi platformy 8.3.5.1068 (a novější) bylo možné přidávat, měnit a mazat data v externích zdrojích pomocí softwaru 1C. Příklady této funkce jsou uvedeny v tomto článku.

Aby bylo možné nahrávat do externích zdrojů, přidala společnost 1C do datových tabulek a polí externích zdrojů nové vlastnosti:

  • Pro celý stůl - majetek Pouze čtení. ReadOnly = True znamená, že změna dat v této tabulce není možná;
  • Pro jednotlivá pole tabulky - vlastnosti Pouze čtení, AllowNull A Vyplnit hodnotu:
    • ReadOnly = True znamená, že změna údajů v tomto poli není možná;
    • AllowNull = True znamená, že do tohoto pole lze zapsat hodnotu NULA;
    • Vyplnit hodnotu obsahuje výchozí hodnotu tohoto pole (pokud existuje).

Vy (při ručním popisu tabulek) nebo platforma (při vytváření tabulek pomocí návrháře) můžete tyto vlastnosti používat následovně.

  • ReadOnly = True nastavit například pro pohledy, tabulky získané na základě výrazu (výsledek funkce) a podobně. Data v těchto tabulkách nelze měnit;
  • ReadOnly = True zadejte pro pole, která se nastavují automaticky ( AUTOINCREMENT), počítaná pole a podobně. Údaje v těchto polích nelze změnit;
  • AllowNull = True nastavit pro všechna pole kromě klíčových polí a těch, která jsou popsána v externím zdroji jako NENULOVÝ;
  • Vyplnit hodnotu pole by měla být nastavena v případě, kdy externí zdroj specifikuje standardní hodnotu tohoto pole (value VÝCHOZÍ).

Data v externích zdrojích můžete přidávat, měnit a odstraňovat pomocí vestavěného jazyka nebo interaktivně. Vestavěný jazyk k tomu používá následující metody správce tabulek:

  • CreateRecordSet()- pro neobjektové tabulky;
  • Nová metoda CreateObject()- pro tabulky objektů.

V souladu s tím objekty ExternalDataSourceTableRecordSet A ExternalDataSourceTableObject objevily se nové metody Napsat() A Vymazat().

Přidávání dat

Když přidáte data do externího zdroje, vytvoříte objekt (nebo sadu záznamů), nastavíte hodnoty polí a zapíšete. Existují však některé funkce, o kterých je užitečné vědět.

Pokud se například pokusíte nastavit hodnotu pole, které má ReadOnly = True, bude vyvolána chyba. A to při zápisu přímo do databáze ve výrazu VLOŽIT taková pole budou přeskočena. Zbývající pole obsahují hodnoty, které jste jim přiřadili. Proto hodnoty Nula a výchozí hodnoty musí být polím přiřazeny explicitně.

  • id(AllowNull = True);
  • název(AllowNull = True);
mFeature = ExternalDataSources.TableIm.shop_feature.CreateObject(); mCharacteristic.id = Kód; mCharacteristic.name = Jméno; mCharakteristika.Write();

Provedení výpisu Napsat() způsobí, že bude jako první zavolána obsluha události Před nahráváním, pak se provede fyzický zápis do externí zdrojové tabulky ( VLOŽIT), pak bude zavolána obsluha události Při nahrávání.

S polem klíče externí zdrojové tabulky můžete provést následující. Pokud je pole klíče měnitelné, nastavte jeho hodnotu před zápisem „ručně“. Pokud je změna pole klíče zakázána, platforma přijme klíč nezávisle VLOŽIT nebo hned poté. Pomocí této metody můžete zasahovat do tohoto procesu SetLinkNew() před fyzickým záznamem (v obsluze události Před nahráváním) nebo bezprostředně po fyzickém záznamu (v obsluze event Při nahrávání).

Změna údajů

Když se data změní, hodnoty všech polí tabulky, která mají ReadOnly = False.

MFeature = ExternalDataSources.TableIm.shop_feature.FindByField("id",code); mObject = mCharakteristic.GetObject(); mObject.name = Jméno; mObject.Write();

Pokud potřebujete zaznamenat pouze některá pole, můžete pomocí metod určit jejich seznam přímo z vestavěného jazyka SetWritableFields() A GetWrittenFields().

Mazání dat

Odstranění dat přímo odstraní řádek z databázové tabulky. V tomto případě se hledání odkazů na odstraňovaný objekt neprovádí. Pokud je taková funkce potřebná, můžete ji sami naprogramovat v obslužné rutině události BeforeDelete().

MFeature = ExternalDataSources.TableIm.shop_feature.FindByField("id",Code); mObject = mCharakteristic.GetObject(); mObject.Delete();

Transakce

Čtení dat z externích zdrojů se stejně jako dříve provádí mimo transakci a při zápisu platforma otevře implicitní transakci. Současně můžete provádět čtení i zápis v explicitních transakcích pomocí objektových metod ExternalDataSourceManager:

  • StartTransaction();
  • CommitTransaction();
  • CancelTransaction().

Zámky

  • Auto;
  • Podařilo se;
  • Automatické a řízené.

stejně jako vlastnost externí zdrojové tabulky Úroveň izolace transakcí:

Kromě toho můžete v metodě nezávisle nastavit úroveň uzamčení StartTransaction().

Do standardního článku jsem přidal příklady) Pokud budu mít více času, přidám další příklady.

Vydání 8.2.14.533 je konečně víceméně stabilní verzí 14. vydání platformy. Nakonec se naskytla příležitost vyzkoušet skvělou příležitost – „externí zdroje dat“.

Proč je tato příležitost tak zajímavá? Každý, kdo programoval v 1C a je docela obeznámen s SQL a je alespoň obecně obeznámen s architekturou a principy vývoje jiných technologických platforem pro obchodní aplikace, vám s pevnou důvěrou řekne, co se mu na 1C líbí nejvíce. Tvůrce dotazů je samozřejmě nejpohodlnější a nejpromyšlenější mechanismus pro psaní dotazů pro získávání dat z relačních struktur, se kterým jsem se kdy osobně setkal. A nyní nám 1C poskytlo tak úžasnou příležitost jej použít nejen s 1C, ale také s jakýmikoli jinými tabulkami. Jde jen o to, že tento „sud medu“ má spoustu „mouch“. Pěkně popořádku:

1) Nastavení a používání – bez „tančení s tamburínou“ to nepůjde

A) Přidejte externí zdroj dat – nezdá se to složité
b) zaškrtněte políčko „Vybrat ze seznamu“ - povinné - je nutné na začátku zkontrolovat funkčnost a ušetří vás zbytečných problémů
PROTI)
(IMG: http://pics.livejournal.com/comol/pic/0000cr1r.png)
- nezapomeňte kliknout na "..." - připojení je ODBC. Ne OLEDB, jak jsme všichni zvyklí, ale o level níže

Ale buď tady VELICE OPATRNÝ.

Toto je ovladač ODBC - pokud používáte verzi klient-server, musí být na serveru. Pokud vyvíjíte na jednom systému a pracujete na jiném (jak tomu obvykle bývá), ujistěte se, že na vás nečeká žádná překvapení. Zvláštní doporučení, ale zvolte nejstarší nebo nejběžnější ovladač, pokud vám nejde o rychlost a nehodláte jít nad rámec možností standardu SQL92. Získáte tak lepší kompatibilitu. Například pro SQL Server 2008 bude nejlepším ovladačem SQL Server Native Client 11, ale doporučuji zvolit pouze SQL Server, jinak bude nutné tento velmi nativní klient nainstalovat buď na server, nebo na všechny klientské počítače (pokud používáte verze souboru) a výhoda je speciální pro jednoduché, že vám nebude dávat žádné úkoly.

E) Standardní dialogová okna pro výběr serveru

G) Vyberte tabulku a podrobnosti... skvělá příležitost - můžete ji okamžitě přejmenovat, jak chcete (a podrobnosti také), a ve vlastnostech uvidíte názvy polí zdroje dat

Z) Teď to spustíš, otevřeš návrhář dotazů - hloupě vybereš všechny záznamy z tabulky a OPA - chyba. Co dělat? Pokud máte spravované rozhraní, podívejte se do servisního menu, a pokud běžné...
Osobně jsem použil tento kód:

Parametry = ExternalDataSources.DAX.GetGeneralConnectionParameters();
Parameters.AuthenticationStandard = True;
Parameters.UserName = "sa";
Parameters.Password = "pas";
Parameters.ConnectionString = "DRIVER=(SQL Server);SERVER=servet;UID=sa;PWD=;DATABASE=databáze";
Parametry.DBMS = "MSSQLServer";

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

ExternalDataSources.DAX.SetConnection();

Některé kousky možná nejsou nutné, ale jde to. Musíte spustit kód JEDNOU. Poté bude normální se připojit... mystika samozřejmě - proč to bylo nutné, není jasné...

2) Zdroje dat pouze pro čtení
Ano, zázraky se nedějí... ale někdy to tak chcete...

3) NELZE JE POUŽÍVAT SPOLU S INTERNÍMI ZDROJI DAT
Osobně mě tato skutečnost na místě zabila.

Jak to může být... ​​na co jsme čekali a už jsme si představovali a olizovali si rty o tom, jak nyní spojíme naše data s 1C v jedné žádosti, sbalíme je - seskupíme, vložíme do sestavy, ale není tomu tak ...

Ale to samozřejmě zkušené lidi nezastaví... jaká myšlenka vás napadla? To je pravda - dočasné tabulky:

4) NELZE JE POUŽÍVAT SPOLU S DOČASNÝMI ​​TABULKY

Ale to už nevypadá jako technologické potíže, ale vypadá to hodně jako to, co po nás chtějí, „aby se život nezdál jako ráj“ (IMG:).

5) Lze použít pouze v připojeních ACS

Pro ty, kteří nevědí, je to v ACS na kartě „Odkazy na datové sady“. Používáte je často? Komfortní? Zřejmě nás chtějí donutit, abychom je používali častěji. Je zde pouze sloupec „Podmínka komunikace“ a „Parametr komunikace“. Nenašel jsem příklad jejich použití v žádné standardní konfiguraci a jaksi není vše transparentní v dokumentaci a ani v Khrustalevově práci. Může mi někdo vysvětlit, jak funguje "podmínka připojení". Pokud tam napíšete Source Attributes = Receiver Attributes, tak to nefunguje. Podmínku lze samozřejmě zapsat do pole „Výraz“ - ve většině případů to stačí... ale nějak to nejde moc snadno.

Celkově byl tento problém dříve vyřešen někde takto:

Funkce InitializeDataSource()

DateStart = SettingsComposer.Settings.DataParameters.Items.Value;
DataCon = SettingsBuilder.Settings.DataParameters.Items.Value;
Pokud DataCon > "20100101" Pak
DataCon = "20100101";
endIf;

CN = New QualifiersNumbers(15,2);
KS = NewStringQualifiers(255);

Číslo pole = Nové pole();
ArrayNumber.Add(Type("Číslo"));

ArrayString = New Array();
ArrayString.Add(Type("String"));

ArrayData = New Array();
ArrayDate.Add(Type("Datum"));

//Účetní náklad vyplníme do tabulky
TypeNumber = New DescriptionTypes(ArrayNumber, CN);
TypeString = New TypeDescription(ArrayString, KS);
TypeDate = New TypeDescription(ArrayDate);

//tabulka pro načítání dat z SQL
TZ = New ValueTable();
TK.Columns.Add("NomenclatureCode", TypeString);
TK.Columns.Add("Qnty", TypeNumber);
TK.Columns.Add("Období", DateType);

TK.Indices.Add("Období");

//Připojení k SQL
Připojovací řetězec = "Poskytovatel=SQLOLEDB.1;Trvalé informace o zabezpečení=True;ID uživatele=sa;Pwd=;Zdroj dat=;Použít postup pro přípravu=1;Automatický překlad=True;Velikost paketu=4096;ID pracovní stanice=;Použít Encryption for Data=False;Tag s řazením sloupců, je-li to možné=False;Initial Catalog=Reports";
Connection = New COMObject("ADODB.Connection");
Příkaz = New COMObject("ADODB.Command");
RecordSet = New COMObject("ADODB.RecordSet");
Datum = "";
Pokus
Connection.Open(AbbrLP(ConnectionString));
Command.ActiveConnection = Připojení;
Command.CommandText = "Vyberte * z PH kde období >= "" + String(Format(DateStart, "DF=yyyyMMdd")) + "" a období RecordSet = Command.Execute();
RecordSet.MoveFirst();
Výjimka
Vrácení technických specifikací;
EndPokus;

Zatímco RecordSet.EOF = False Loop
Linka = TZ.Add();
Row.NomenclatureCode = RecordSet.Fields(RecordSet.Fields.Item(1).Name).Value;
Row.Qnty = RecordSet.Fields(RecordSet.Fields.Item(12).Name).Value;
Row.Period = RecordSet.Fields(RecordSet.Fields.Item(13).Name).Value;
RecordSet.MoveNext();
EndCycle;

Požadavek = Nový požadavek();
VrTable = Nový TemporaryTableManager();
Query.SetParameter("vrDataTable", TK);
Query.SetParameter("Datum zahájení", Datum zahájení);
Request.SetParameter("DataCon", DateCon);
Query.Text = "VYBRAT
| vrDataTable.NomenclatureCode,
| vrDataTable.Qnty,
| vrDataTable.Period
|Umístit DataTable
|OD
| &vDataTable AS vrDataTable
| KDE
| vrDataTable.Period >= &StartDate
| A vrDataTable.Period Query.Execute();
TZ = Nedefinováno;

Žádost = Nová žádost;
Query.TemporaryTableManager = VrTable;
Query.Text = "Zde je dotaz zahrnující tabulku proměnných";

Výsledek = Query.Run();
Návratový výsledek;

EndFunction

ExternalSet = InitializeDataSource();
DataSet = new Structure();
DataSet.Insert("SQL tabulka", ExternalSet);
TypicalReports.GenerateTypicalReport(ThisObject, Result, Decrypt Data, OutputToReportForm, DataSet);

Ve skutečnosti není mnoho řádků kódu a jsou docela standardní... v tomto případě můžete využít plnou funkčnost návrháře dotazů a dát do ACS pouze funkci DATA COMPOSITION

Ale rozhodně to nevypadá tak hezky... a pokaždé, když potřebujete napsat kód pro nahrání hodnot do tabulky a zkontrolovat, zda jste neudělali chybu ve jménu detailů... a co jsme dostali v 1C vypadá tak nějak polovičatě. Ještě jsem se nerozhodl, co je výhodnější použít. Vy rozhodujete a píšete o svých rozhodnutích a o tom, co vás k nim přimělo.

[pro zobrazení odkazu se musíte zaregistrovat]

Pracujte s nimi v seznamech v režimu 1C Enterprise.

V práci však často nastává situace, kdy je část dat uložena někde jinde.

  • Internetový obchod (obvykle ukládá data do externí databáze MySQL/SQL)
  • Další základna.

Pro práci s takovými daty uloženými v jiných databázích je třeba vyvinout speciální mechanismy.

Ve verzi 1C 8.2.14 se objevil nový s názvem 1C External Data Sources, který výrazně usnadňuje práci programátora, protože:

  • nyní již není potřeba vytvářet speciální mechanismy pro získávání dat
  • k takovým údajům lze přistupovat běžným způsobem
  • taková data lze zobrazit v seznamech 1C.
    • Externí zdroj dat 1C – externí SQL databáze

      Řekněme, že máme SQL databázi, ve které jsou uložena data, která potřebujeme. Zkusme z něj načíst data pomocí mechanismu 1C External Data Source.

      Přidejme externí zdroj dat 1C. Musíte jít do konfigurátoru, externí zdroje dat se nacházejí v konfiguračním okně, úplně dole ve stromu.

      1. Připojení

      Přidáme nový externí datový zdroj 1C, pojmenujeme jej libovolně.

      Databáze se skládá z tabulek. Musíme je přidat do přidaného externího zdroje dat. Klikněte na něj pravým tlačítkem a vyberte Přidat tabulku.

      Poprvé vás vyzve k zadání připojovacího řetězce. Lze jej zadat ručně nebo vygenerovat kliknutím na tlačítko „…“.

      V našem konkrétním případě vybereme jako ovladač „SQL Server“.

      Vyplníme základní parametry pro připojení k SQL. Název serveru lze zadat nebo vybrat ze seznamu.

      1C se připojí k SQL a nabídne výběr konkrétní databáze ze seznamu.

      Poté 1C zobrazí seznam tabulek v této databázi a jejich sloupce. Chcete-li vybrat požadované tabulky, musíte zaškrtnout políčka.

      Budou přidány tabulky a sloupce. Názvy budou stejné, jak jsou definovány ve vzdálené databázi. V 1C je můžete přejmenovat (ve vlastnostech).

      Zde je příklad přidané tabulky:

      Zde je příklad přidaného sloupce:

      Aby platforma 1C pracovala s externí tabulkou stejným způsobem jako s adresáři 1C, můžete v tabulce zadat další parametry:

      • Ve vlastnosti pole klíče zadejte jeden ze sloupců, který bude poskytovat jednoznačnou identifikaci řádku; pokud několik řádků poskytuje jedinečnost, pak tato metoda nefunguje (analogicky jako pole Kód)
      • Ve vlastnosti Pole prezentace určete jeden ze sloupců, který poskytne stručnou reprezentaci řádku (analogicky jako pole Název)
      • Ve vlastnosti Typ dat tabulky zadejte Data objektu.

      2. Zobrazit

      Připojení ke vzdálené základně se neprovádí automaticky. Chcete-li se připojit, musíte vybrat standardní nabídku.

      Ve větvi Standard je speciální příkaz Správa externích datových zdrojů, který umožňuje zadat parametry připojení (specifické pro režim 1C Enterprise) a vytvořit připojení.

      Nejprve je třeba zadat parametry pro připojení k databázi.

      Když jste provedli nastavení v konfigurátoru, zobrazilo se vám jako výsledek připojovací řetězec. Znovu jej zobrazíte kliknutím na Přidat tabulku v konfigurátoru.

      Zkopírujte připojovací řetězec a zadejte jej v režimu 1C Enterprise.

      Poté musíte provést skutečné připojení.

      Po navázání spojení je možné pracovat se seznamy.

      3. Použití v jazyce 1C

      Spojení lze provést také z programového kódu v jazyce 1C.

      Parametry připojení jsou specifikovány takto:
      ConnectionParameters = ExternalDataSources.SourceNameConfigurator.GetGeneralConnectionParameters();

      ConnectionParameters.AuthenticationStandard = True;
      ConnectionParameters.UserName = "sa";
      ConnectionParameters.Password = "heslo";
      ConnectionParameters.ConnectionString = “řetězec připojení z konfigurátoru”;
      ConnectionParameters.DBMS = "MSSQLServer";

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

      Data z databáze můžete dotazovat pomocí běžného . Příklad textu dotazu pro externí zdroj OurExternalSource a tabulky ExternalSource Table:

      VYBRAT
      ExternalSourceTable.FieldName
      Z
      ExternalDataSource.OurExternalSource.Table.ExternalSourceTable"

      Externí zdroj dat 1C - práce se souborem Excel

      Zkusme jinou možnost – práci se souborem Excel přes externí zdroj dat 1C.

      Vytvoříme jednoduchý soubor Excel.

      Přidejme externí zdroj, libovolně jej nazvěme FileExcel. Přidejme k němu tabulku „Sheet1$“. Jak můžete snadno vidět, toto je název listu v aplikaci Excel s přidáním symbolu „$“.

      Stejně jako v případě SQL přidáme sloupce. Lze je přidat ručně. Je důležité zajistit, aby se typy sloupců, které přidáváte, shodovaly, jinak se může později zobrazit chyba jako „Neshoda typu dat“.

      Pro sloupec musíte zadat název v 1C a název ve zdroji dat.

      Existuje funkce pro Excel (chyba jako „Příliš málo parametrů. Je vyžadováno 3“):

      • Pokud první řádek tabulky Excel obsahuje názvy sloupců, musíte jednoduše uvést název tohoto sloupce, například „Kód“.
      • V opačném případě musíte zadat celý název s názvem tabulky „Sheet1$.Code“, ale do parametrů přidat „HDR=NO;“.

      Parametry připojení pro soubor Excel vypadají takto:

      • Soubory XLSX (Office 2007 a novější)
        Driver=(Ovladač Microsoft Excel (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\FileExcel.xlsx;
      • XLS soubory (dříve)
        Driver=(Ovladač Microsoft Excel (*.xls)); DriverID=790; DBQ=D:\FileExcel.xls;
        Musíte zadat svůj vlastní název a cestu k souboru.

Externí zdroje dat 1C - relativně nový metadatový objekt 1C 8.3 a 8.2, se kterým je možné se připojit k 1C externím zdrojům dat: SQL tabulky, Excel, Access, FoxPro (dbf), další databáze 1C, Oracle, Paradox (db) , - a dokonce i čtení z jednoduchých souborů txt/csv.

To dává mnoho možností s jinými systémy. Pojďme se na to blíže podívat.

Nastavení externích zdrojů dat v 1C 8

Nastavení externích zdrojů je pro každý typ systému individuální. Obecná část nastavení je však zpravidla stejná - jde o nastavení připojovacího řetězce:

Získejte 267 videolekcí na 1C zdarma:

Pokud je připojovací řetězec zadán správně, systém vás vyzve k výběru požadované tabulky z databáze. V důsledku toho získáme hotovou tabulku, ve které můžeme zadat klíčové pole (unikátní pole) a pole prezentace (jak se záznam projeví v 1C):

Použití externích zdrojů dat v 1C 8.3

Externí zdroje dat v 1C lze použít jako jiné databázové tabulky. Platforma pro ně automaticky vygeneruje formulář, pokud není zadán. V dotazech je také možné použít data z externích zdrojů.

Publikace na dané téma