1c ulkoisen tietolähteen yhteysmerkkijono. Ulkoiset tietolähteet

1C-ohjelman versiossa 8 kehittäjät lisäsivät toiminnallisuuksiin mahdollisuuden yhdistää kolmannen osapuolen tietokannat ja saada niistä tietoja suoraan konfiguraattorilta ilman COM-yhteyksiä ja OLE-objekteja. Tämä ominaisuus on toteutettu käyttämällä uutta objektia - "Ulkoiset tietolähteet"

1C:n ulkoisia tietolähteitä voidaan käyttää samalla tavalla kuin muita järjestelmän taulukoita:

  1. Kun luot raportteja ja laskelmia käyttämällä datan kokoamisjärjestelmää (DCS);
  2. Saadakseen linkkejä kolmansien osapuolien lähteisiin tallennettuihin tietoihin;
  3. Taulukoihin tallennettujen tietojen muuttaminen;
  4. Pyyntöjä luotaessa.

On tärkeää tietää, että tätä mekanismia ei ole suunniteltu toimimaan muiden 1C-tietokantojen kanssa, koska 1C.Enterprise-toimintamalli itsessään ei tarkoita häiriötä fyysisten taulukkojen tasolla.

Uuden lähteen luominen

Uuden ulkoisen lähteen lisääminen ohjelmaan tapahtuu "Configurator"-tilassa. Konfigurointipuussa on vastaava haara (kuva 1)

Sinun on työskenneltävä kovasti uutta lähdettä luotaessa huolimatta siitä, että uuden objektin muodossa on vain neljä välilehteä:

  1. Perus;
  2. Data;
  3. Toiminnot;
  4. Oikeudet.

Ensimmäisellä välilehdellä on vain yksi mielenkiintoinen parametri - lukon ohjaustila. Jos sinulla ei ole kysyttävää tapahtumien tietojen estämisestä tai tietovirtojen rinnakkaistamisen monimutkaisuudesta, voit jättää tämän vaihtoehdon automaattiseen estotilaan. Tällainen lähestymistapa voi kuitenkin johtaa liiallisiin rajoituksiin (esimerkiksi, kun ohjelma lukitsee erillisen tietueen sijaan koko fyysisen taulukon, mikä estää muilta käyttäjiltä mahdollisuuden työskennellä sen kanssa).

Hallitut lukot, toisin kuin automaattiset, käyttävät tapahtumamekanismia, joka on ominaista itse ohjelmalle, ei DBMS:lle, mikä mahdollistaa taulukoiden kaappauksen siirtämisen paljon alemmalle tasolle.

Asettamalla tämän parametrin arvoon "Automaattinen ja hallittu", tarjoamme järjestelmälle mahdollisuuden määrittää käytettävän tilan käyttämällä suoraan samanlaista ominaisuutta jokaiselle tietylle taulukolle.

Ulkoisen lähteen ominaisuuslomakkeen "Data"-välilehti

"Data"-välilehden muoto näkyy kuvassa. 2

Riisi. 2

Täällä voimme lisätä ulkoisia lähdetaulukoita ja kuutioita. Taulukon lisäämiseen on kaksi tapaa:

  1. Manuaalisesti sitten edessämme avautuu taulukko lisäyslomake (kuva 3);

Riisi. 3

  1. Tai valitse fyysisten lähdetaulukoiden luettelosta (kuva 4), jolloin edessämme avautuu erityinen konstruktori.

Riisi. 4

Katsotaanpa tarkemmin taulukon lisäyslomaketta. "Nimi"-ominaisuutta käytetään yksilöimään kokoonpanossa oleva objekti.

Metatietoobjektin ja lopullisen fyysisen taulukon vertailu tapahtuu "Lisäasetukset"-välilehden "Nimi tietolähteessä" -ominaisuuden kautta (kuva 5).

Riisi. 5

Seuraavaksi meidän on määritettävä taulukon tyyppi tai pikemminkin sen objektiivisuus. Jos rakenteeseen tallennetut tiedot voidaan tunnistaa yksiselitteisesti minkä tahansa kentän kautta, taulukko voi olla objekti. Jos tietueen yksilöllisyys määräytyy avainkenttien joukon perusteella, taulukon on oltava ei-oliotyyppinen.

Vertaamalla tällaisia ​​taulukoita muihin metatieto-objekteihin, voidaan antaa seuraava analogia:

  • Objektitaulukot ovat hakuteoksia;
  • Ei-objektit ovat tietorekistereitä.

Avainkenttien joukko määritellään seuraavassa lomakeparametrissa ("Key Fields"). Tämä kenttä on pakollinen; jos jätät sen tyhjäksi, asetusten tallentaminen epäonnistuu.

Kuten kuvasta 5 voidaan nähdä, joitain lomakkeen kenttiä ja painikkeita ei voi muokata:

  • Ilmaisu tietolähteessä;
  • Taulukon tietotyyppi;
  • Esittely alalla;
  • Näytä käsittelijät.

Niitä voidaan käyttää vasta, kun olemme täyttäneet taulukon kentät, määrittäneet niiden tyypin ja osoittaneet niille tunnisteet (kuva 6)

Riisi. 6

Tässä kannattaa kiinnittää huomiota "Allow Null" -parametriin; jos tämä valintaruutu on valittuna, tällaista kenttää ei kannata käyttää avaimena.

Pöydän rakentaja

Ehkä tärkein ja mielenkiintoisin kohta ulkoisten lähteiden kanssa työskentelyssä on yhteysmerkkijonon luominen. Sen rakentaja avautuu, kun napsautat "Connection string" -parametrin vieressä olevaa painiketta, jossa on kolme pistettä.

Ensinnäkin meitä pyydetään valitsemaan ajuri, jota käytetään yhteyden muodostamiseen (kuva 7)

Riisi. 7

Tämän parametrin virheellinen määritelmä ei salli sinun muodostaa yhteyttä kolmannen osapuolen tietokantaan. Sinun tulisi myös ymmärtää, että kaikkia avattavassa luettelossa määritettyjä ohjaimia ei voida käyttää yhteysmerkkijonon automaattiseen luomiseen. Jos alusta tuottaa virheen (kuva 8), yhteysmerkkijono on syötettävä manuaalisesti.

Kuva 8

Riisi. 9

Itse linja on tiukasti säänneltyä rakennetta.

Esimerkki yhteysmerkkijonosta

Tarkastellaan Microsoft Accessissa luotua kolmannen osapuolen tietokantaa, joka sijaitsee aseman D juuressa. Tämän tietokannan yhdistämiseksi meidän on käytettävä asianmukaista ohjainta, mutta sen valitseminen rivikonstruktorissa aiheuttaa virheen Kuva 8.

Asetamme yhteysparametrit itse.

Driver=(Microsoft Access Driver (*.mdb)) – tältä rivin ensimmäinen osa näyttää. Aaltosulkeissa määritimme kuljettajan.

Excel-tiedostoille se näyttää (Microsoft Excel Driver (*.xls)), Excel-tiedostoille, jotka on luotu toimistossa, joka on vanhempi kuin 2003, ohjainrivi näyttää (Microsoft Excel Driver (*.xls, *.xlsx, *. xlsm, *.xlsb)).

Erottamalla tämä parametri seuraavasta pilkulla, meidän on syötettävä muistimme osoite (tapauksessamme DBQ=D:\Database1.mdb).

Kun nämä kaksi parametria lisätään, saadaan Driver=(Microsoft Access Driver (*.mdb));DBQ=D:\Database1.mdb. Kirjoittamalla tämän parametrin saamme pääsyn tämän tietokannan sisäisiin rakenteisiin.

"Ulkoinen lähde" ​​-objektille ei riitä, että se luodaan konfiguraatiossa, vaan se on myös yhdistettävä "Enterprise"-tilassa. Tämä voidaan tehdä valikosta "Kaikki toiminnot" -> Ulkoiset lähteet. Kun astumme ensimmäisen kerran taulukkoomme, meidän on syötettävä sama yhteysmerkkijono "Enterprise"-tilassa.

Alustaversiossa 8.3.5.1068 (ja uudemmissa) tuli mahdolliseksi lisätä, muuttaa ja poistaa tietoja ulkoisista lähteistä 1C-ohjelmiston avulla. Tässä artikkelissa on esimerkkejä tästä ominaisuudesta.

Jotta tallennus ulkoisiin lähteisiin olisi mahdollista, 1C-yritys lisäsi uusia ominaisuuksia tietotaulukoihin ja ulkoisten lähteiden kenttiin:

  • Koko pöydälle - omaisuus Vain lukeminen. Vain luku = Totta tarkoittaa, että tämän taulukon tietojen muuttaminen on mahdotonta;
  • Yksittäisille taulukon kentille - ominaisuudet Vain lukeminen, AllowNull Ja Täyttöarvo:
    • Vain luku = Totta tarkoittaa, että tämän kentän tietojen muuttaminen on mahdotonta;
    • AllowNull = tosi tarkoittaa, että tähän kenttään voidaan kirjoittaa arvo TYHJÄ;
    • Täyttöarvo sisältää tämän kentän oletusarvon (jos sellainen on).

Sinä (kun kuvailet taulukoita manuaalisesti) tai alusta (kun luot taulukoita suunnittelijalla) voit käyttää näitä ominaisuuksia seuraavasti.

  • Vain luku = Totta asettaa esimerkiksi näkymille, lausekkeen (funktion tuloksen) perusteella saaduille taulukoille ja vastaaville. Tällaisten taulukoiden tietoja ei voi muuttaa;
  • Vain luku = Totta määritä kentät, jotka asetetaan automaattisesti ( AUTOMAATTINEN LISÄYS), lasketut kentät ja vastaavat. Tällaisten kenttien tietoja ei voi muuttaa;
  • AllowNull = tosi asetettu kaikille kentille paitsi avainkentille ja niille, jotka on kuvattu ulkoisessa lähteessä nimellä EI TYHJÄ;
  • Täyttöarvo kentät tulee asettaa siinä tapauksessa, että ulkoinen lähde määrittää tämän kentän vakioarvon (arvo OLETUS).

Voit lisätä, muuttaa ja poistaa tietoja ulkoisista lähteistä käyttämällä sisäänrakennettua kieltä tai interaktiivisesti. Sisäänrakennettu kieli käyttää tähän seuraavia taulukonhallintamenetelmiä:

  • CreateRecordSet()- ei-objektitaulukoille;
  • Uusi menetelmä LuoObject()- kohdetaulukoille.

Vastaavasti esineet ExternalDataSourceTableRecordSet Ja ExternalDataSourceTableObject uusia menetelmiä on ilmaantunut Kirjoittaa() Ja Poistaa().

Tietojen lisääminen

Kun lisäät tietoja ulkoiseen lähteeseen, luot objektin (tai tietuejoukon), asetat kenttäarvot ja kirjoitat. On kuitenkin joitakin ominaisuuksia, joista on hyödyllistä tietää.

Jos esimerkiksi yrität asettaa arvon kenttään, jolla on Vain luku = Totta, tulee virheilmoitus. Ja kun kirjoitat suoraan tietokantaan lausekkeessa LISÄÄ tällaiset kentät ohitetaan. Loput kentät sisältävät niille määrittämäsi arvot. Siksi arvot Tyhjä ja oletusarvot on määritettävä kenttiin erikseen.

  • id(AllowNull = tosi);
  • nimi(AllowNull = tosi);
mFeature = ExternalDataSources.TableIm.shop_feature.CreateObject(); mCharacteristic.id = Koodi; mCharacteristic.name = Nimi; mCharacteristic.Write();

Lausunnon toteutus Kirjoittaa() aiheuttaa sen, että tapahtumakäsittelijä kutsutaan ensin Ennen tallennusta, sitten suoritetaan fyysinen kirjoitus ulkoiseen lähdetaulukkoon ( LISÄÄ), tapahtumakäsittelijä kutsutaan Kun Recording.

Voit tehdä seuraavan ulkoisen lähdetaulukon avainkentällä. Jos avainkenttä on vaihdettavissa, asetat sen arvon "manuaalisesti" ennen kirjoittamista. Jos avainkentän muuttaminen on kielletty, alusta vastaanottaa avaimen itsenäisesti LISÄÄ tai heti sen jälkeen. Voit häiritä tätä prosessia käyttämällä menetelmää SetLinkNew() ennen fyysistä tallennusta (tapahtumakäsittelijässä Ennen tallennusta) tai välittömästi fyysisen tallennuksen jälkeen (tapahtumakäsittelijässä Kun Recording).

Tietojen muuttaminen

Kun tiedot muuttuvat, kaikkien taulukkokenttien arvot, joilla on Vain luku = epätosi.

MFeature = ExternalDataSources.TableIm.shop_feature.FindByField("id",koodi); mObject = mCharacteristic.GetObject(); mObject.name = Nimi; mObject.Write();

Jos haluat tallentaa vain joitain kenttiä, voit määrittää niistä luettelon suoraan sisäänrakennetusta kielestä käyttämällä menetelmiä AsetaWritableFields() Ja GetWrittenFields().

Tietojen poistaminen

Tietojen poistaminen poistaa rivin suoraan tietokantataulukosta. Tässä tapauksessa poistettavan objektin viittausten hakua ei suoriteta. Jos tällaista toimintoa tarvitaan, voit ohjelmoida sen itse tapahtumakäsittelijässä Ennen poistamista().

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

Tapahtumat

Tietojen lukeminen ulkoisista lähteistä, kuten ennenkin, suoritetaan tapahtuman ulkopuolella, ja kirjoittaessaan alusta avaa implisiittisen tapahtuman. Samalla voit suorittaa sekä lukemisen että kirjoittamisen eksplisiittisissä tapahtumissa objektimenetelmillä ExternalDataSourceManager:

  • Aloita tapahtuma();
  • CommitTransaction();
  • Peruuta tapahtuma().

Lukot

  • Auto;
  • Hallittu;
  • Automaattinen ja ohjattu.

sekä ulkoisen lähdetaulukon ominaisuus Tapahtuman eristystaso:

Lisäksi voit itsenäisesti asettaa menetelmässä lukitustason Aloita tapahtuma().

Olen lisännyt esimerkkejä vakioartikkeliin) Jos minulla on enemmän aikaa, lisään esimerkkejä.

Julkaisu 8.2.14.533 on vihdoin enemmän tai vähemmän vakaa versio alustan 14. julkaisusta. Lopuksi tarjoutui tilaisuus kokeilla upeaa mahdollisuutta - "ulkoisia tietolähteitä".

Miksi tämä mahdollisuus kiinnostaa niin paljon? Jokainen, joka on ohjelmoinut 1C:llä ja tuntee SQL:n melko hyvin ja tuntee ainakin yleisesti muiden yrityssovellusten teknologia-alustojen arkkitehtuurin ja kehitysperiaatteet, kertoo sinulle lujasti, mistä hän pitää 1C:ssä eniten. Tietenkin kyselynrakennusohjelma on kätevin ja harkituin mekanismi kyselyjen kirjoittamiseen tietojen hakemiseksi relaatiorakenteista, joita olen henkilökohtaisesti tavannut. Ja nyt 1C on antanut meille upean mahdollisuuden käyttää sitä paitsi 1C:n, myös muiden pöytien kanssa. Tässä "hunajatynnyrissä" on vain paljon "kärpäsiä". Ensimmäiset asiat ensin:

1) Asennus ja käyttö - ilman "tanssia tamburiinin kanssa" se ei toimi

A) Lisää ulkoinen tietolähde – se ei vaikuta monimutkaiselta
b) valitse "Valitse listasta" -valintaruutu - pakollinen - tämä on välttämätöntä toiminnan tarkistamiseksi alussa ja säästää tarpeettomilta ongelmilta
V)
(IMG:http://pics.livejournal.com/comol/pic/0000cr1r.png)
- muista klikata "..." - yhteys on ODBC. Ei OLEDB, kuten olemme kaikki tottuneet, vaan yhden tason alempana

Mutta ole täällä HYVIN VAROVAINEN.

Tämä on ODBC-ohjain - jos käytät asiakaspalvelinversiota, sen on oltava palvelimella. Jos kehität yhtä järjestelmää ja työskentelet toisessa (kuten yleensä), varmista, ettei sinua odota yllätyksiä. Outo suositus, mutta valitse vanhin tai yleisin ajuri, jos et ole erityisen huolissasi nopeudesta etkä aio mennä SQL92-standardin kykyjä pidemmälle. Tämä antaa sinulle paremman yhteensopivuuden. Esimerkiksi SQL Server 2008:lle paras ajuri on SQL Server Native Client 11, mutta suosittelen valitsemaan vain SQL Serverin, muuten tämä natiivi asiakas on asennettava joko palvelimelle tai kaikkiin asiakaskoneisiin (jos käytät tiedostoversio), ja etu on erityinen, sillä yksinkertainen hän ei anna sinulle tehtäviä.

E) Vakiopalvelimen valintaikkunat

G) Valitse taulukko ja tiedot... loistava mahdollisuus - voit heti nimetä sen uudelleen haluamallasi tavalla (ja myös yksityiskohdat), ja ominaisuuksissa näet tietolähteen kenttien nimet

Z) Ja nyt käynnistät sen, avaa kyselyn suunnittelija - valitse typerästi kaikki tietueet taulukosta ja OPA - virhe. Mitä tehdä? Jos sinulla on hallittu käyttöliittymä, katso huoltovalikkoa ja jos tavallinen...
Itse käytin tätä koodia:

Parametrit = ExternalDataSources.DAX.GetGeneralConnectionParameters();
Parameters.AuthenticationStandard = True;
Parameters.UserName = "sa";
Parameters.Password = "pas";
Parameters.ConnectionString = "OHJAIN=(SQL-palvelin);PALVELIN=palvelin;UID=sa;PWD=;TIETOKANTA=tietokanta";
Parameters.DBMS = "MSSQLServer";

ExternalDataSources.DAX.SetCommonConnectionParameters(Parameters);
ExternalDataSources.DAX.SetUserConnectionParameters(Käyttäjänimi(), Parametrit);
ExternalDataSources.DAX.SetSessionConnectionParameters(Parameters);

ExternalDataSources.DAX.SetConnection();

Jotkut osat eivät ehkä ole välttämättömiä, mutta se toimii. Sinun on suoritettava koodi KERRAN. Sen jälkeen on normaalia yhdistää... mystiikkaa tietysti - miksi tämä oli tarpeen, ei ole selvää...

2) Vain luku -tietolähteet
Kyllä, ihmeitä ei tapahdu, mutta joskus haluat sen niin...

3) NIITÄ EI VOI KÄYTTÄÄ YHDESSÄ SISÄISTEN TIETOLÄHTEIDEN KANSSA
Henkilökohtaisesti tämä tosiasia tappoi minut paikan päällä.

Miten tämä voi olla... mitä odotimme ja jo kuvittelimme ja nuolimme huuliamme siitä, kuinka nyt yhdistämme tietomme 1C:n kanssa yhdessä pyynnössä, tiivistämme sen - ryhmittelemme, lisäämme raporttiin, mutta niin ei ole ...

Mutta tämä ei tietenkään estä kokeneita ihmisiä... mikä ajatus tuli mieleen? Aivan oikein - väliaikaiset taulukot:

4) NE VOI KÄYTTÄÄ YHDESSÄ VÄLIAIKAISTEN PÖYÖDIEN KANSSA

Mutta tämä ei enää näytä teknisiltä vaikeuksilta, vaan näyttää paljon siltä, ​​mitä he haluavat meidän tekevän "jotta elämä ei näyttäisi paratiisilta" (IMG:).

5) Voidaan käyttää vain ACS-liitännöissä

Niille, jotka eivät tiedä, tämä on ACS:ssä "Data Set Links" -välilehdellä. Käytätkö niitä usein? Mukava? Ilmeisesti he haluavat pakottaa meidät käyttämään niitä useammin. Siellä on vain sarake "Kommunikaatioehto" ja "Yhteysparametri". En ole löytänyt esimerkkiä niiden käytöstä missään vakiokokoonpanossa, ja jotenkin kaikki ei ole läpinäkyvää dokumentaatiossa ja Khrustalevan työssäkään. Voisiko joku selittää minulle kuinka "yhteysehto" toimii? Jos kirjoitat sinne Source Attributes = Receiver Attributes, se ei toimi. Toki ehdon voi kirjoittaa "Expression"-kenttään - useimmissa tapauksissa tämä riittää... mutta jotenkin se ei toimi kovin helposti.

Kaiken kaikkiaan tämä ongelma on aiemmin ratkaistu jossain näin:

Funktio InitializeDataSource()

DateStart = SettingsComposer.Settings.DataParameters.Items.Value;
DataCon = SettingsBuilder.Settings.DataParameters.Items.Value;
Jos DataCon > "20100101" Sitten
DataCon = "20100101";
loppu Jos;

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

ArrayNumber = Uusi array();
ArrayNumber.Add(Tyyppi("Numero"));

ArrayString = Uusi array();
ArrayString.Add(Type("String"));

ArrayData = Uusi Array();
ArrayDate.Add(Tyyppi("Päiväys"));

//Täytämme kirjanpitokulun taulukkoon
TyyppiNumber = Uusi kuvaustyypit (Matriisinumero, CN);
TypeString = Uusi tyyppikuvaus(ArrayString, KS);
TyyppiPäivä = Uusi tyyppikuvaus(ArrayDate);

//taulukko tietojen lataamiseen SQL:stä
TZ = Uusi arvotaulukko();
TK.Columns.Add("NimikkeistöKoodi", TypeString);
TK.Columns.Add("Määrä", TyyppiNumber);
TK.Columns.Add("Jakso", Päivämäärätyyppi);

TK.Indexes.Add("Piste");

//Yhdistä SQL:ään
Yhteysmerkkijono = "Provider=SQLOLEDB.1;Suojaustiedot pysyvät voimassa Tietojen salaus=False;Tagi sarakkeiden lajittelulla, kun mahdollista=False;Alkuperäinen katalogi=Raportit";
Yhteys = Uusi COMObject("ADODB.Yhteys");
Komento = Uusi COMObject("ADODB.Komento");
RecordSet = Uusi COMObject("ADODB.RecordSet");
Päivämäärä = "";
Yrittää
Connection.Open(AbbrLP(ConnectionString));
Command.ActiveConnection = Yhteys;
Command.CommandText = "Valitse * arvosta PH, jossa piste >= "" + Merkkijono(Muoto(PäivämääräAloitus, "DF=vvvvKKpp")) + "" ja piste RecordSet = Command.Execute();
RecordSet.MoveFirst();
Poikkeus
Teknisten eritelmien palautus;
EndAttempt;

Vaikka RecordSet.EOF = Väärä silmukka
Rivi = TK.Lisää();
Row.NomenclatureCode = RecordSet.Fields(RecordSet.Fields.Item(1).Name).Arvo;
Rivi.Määrä = TietueSet.Kentät(Tietuejoukko.Kentät.Kohde(12).Nimi).Arvo;
Rivi.Jakso = TietueSet.Kentät(Tietuejoukko.Kentät.Kohde(13).Nimi).Arvo;
RecordSet.MoveNext();
EndCycle;

Pyyntö = Uusi pyyntö();
VrTable = Uusi väliaikaistaulukkohallinta();
Query.SetParameter("vrDataTable", TK);
Query.SetParameter("Aloituspäivä", Aloituspäivämäärä);
Request.SetParameter("DataCon", DateCon);
Query.Text = "VALITSE
| vrDataTable.NomenclatureCode,
| vrDataTable.Qnty,
| vrDataTable.Period
|Place DataTable
|FROM
| &vDataTable AS vrDataTable
| MISSÄ
| vrDataTable.Period >= &DateStart
| Ja vrDataTable.Period Query.Execute();
TZ = määrittelemätön;

Pyyntö = Uusi pyyntö;
Query.TemporaryTableManager = VrTable;
Query.Text = "Tässä on kysely, joka sisältää muuttujataulukon";

Tulos = Query.Run();
Palautustulos;

EndFunction

ExternalSet = InitializeDataSource();
Tietojoukko = uusi rakenne();
DataSet.Insert("SQL-taulukko", ulkoinen joukko);
TypicalReports.GenerateTypicalReport(ThisObject, Result, Decryption Data, OutputToReportForm, DataSet);

Itse asiassa koodirivejä ei ole montaa ja ne ovat melko vakioita... tässä tapauksessa voit käyttää kyselyn suunnittelijan kaikkia toimintoja ja antaa vain DATA COMPOSITION -funktion ACS:lle

Mutta se ei todellakaan näytä hyvältä... ja joka kerta, kun sinun on kirjoitettava koodi, jotta voit ladata arvot taulukkoon ja tarkistaa, oletko tehnyt virheen tietojen nimessä... ja mitä meille annettiin 1C näyttää jotenkin puolimieliseltä. En ole vielä päättänyt kumpi on kätevämpi käyttää. Sinä päätät ja kirjoitat päätöksistäsi ja siitä, mikä sai sinut niihin.

[sinun täytyy rekisteröityä nähdäksesi linkin]

Työskentele niiden kanssa luetteloissa 1C Enterprise -tilassa.

Työssä on kuitenkin usein tilanne, jossa osa tiedoista on tallennettu muualle.

  • Verkkokauppa (tallentaa yleensä tiedot ulkoiseen MySQL/SQL-tietokantaan)
  • Toinen tukikohta.

Tällaisten muihin tietokantoihin tallennettujen tietojen kanssa työskentelyä varten on kehitettävä erityisiä mekanismeja.

Versiossa 1C 8.2.14 on ilmestynyt uusi nimeltä 1C External Data Sources, joka helpottaa suuresti ohjelmoijan työtä, koska:

  • nyt ei tarvitse luoda erityisiä mekanismeja tietojen saamiseksi
  • tällaisia ​​tietoja voidaan käyttää tavalliseen tapaan
  • tällaisia ​​tietoja voidaan tarkastella 1C-luetteloissa.
    • Ulkoinen tietolähde 1C – ulkoinen SQL-tietokanta

      Oletetaan, että meillä on SQL-tietokanta, johon tarvitsemamme tiedot on tallennettu. Yritetään lukea tietoja siitä käyttämällä 1C External Data Source -mekanismia.

      Lisätään ulkoinen 1C-tietolähde. Sinun on siirryttävä konfiguraattoriin, ulkoiset tietolähteet sijaitsevat määritysikkunassa, aivan puun alaosassa.

      1. Yhteys

      Lisätään uusi ulkoinen tietolähde 1C, nimetään se mielivaltaisesti.

      Tietokanta koostuu taulukoista. Meidän on lisättävä ne lisättyyn ulkoiseen tietolähteeseen. Napsauta sitä hiiren kakkospainikkeella ja valitse Lisää taulukko.

      Ensimmäisellä kerralla se pyytää sinua antamaan yhteysmerkkijonon. Se voidaan syöttää manuaalisesti tai luoda napsauttamalla ”…”-painiketta.

      Erityistapauksessamme valitsemme ajuriksi "SQL Server".

      Täytämme SQL-yhteyden perusparametrit. Palvelimen nimi voidaan syöttää tai valita luettelosta.

      1C muodostaa yhteyden SQL:ään ja tarjoutuu valitsemaan tietyn tietokannan luettelosta.

      Tämän jälkeen 1C näyttää luettelon tämän tietokannan taulukoista ja niiden sarakkeista. Sinun on valittava valintaruudut valitaksesi tarvittavat taulukot.

      Taulukot ja sarakkeet lisätään. Nimet ovat samat kuin ne on määritelty etätietokannassa. 1C:ssä voit nimetä ne uudelleen (ominaisuuksissa).

      Tässä on esimerkki lisätystä taulukosta:

      Tässä on esimerkki lisätystä sarakkeesta:

      Jotta 1C-alusta toimisi ulkoisen taulukon kanssa samalla tavalla kuin 1C-hakemistojen kanssa, voit määrittää taulukossa lisäparametreja:

      • Määritä Key Field -ominaisuudessa yksi sarakkeista, joka antaa rivin yksilöllisen tunnisteen. jos useat rivit tarjoavat ainutlaatuisuutta, tämä menetelmä ei toimi (analogisesti Koodi-kentän kanssa)
      • Määritä Esityskenttä-ominaisuudessa yksi sarakkeista, joka antaa lyhyen esityksen rivistä (vastaavasti Nimi-kenttään).
      • Määritä Table Data Type -ominaisuudessa Objektitiedot.

      2. Näytä

      Yhteyttä etätukiasemaan ei muodosteta automaattisesti. Yhdistääksesi sinun on valittava vakiovalikko.

      Standard-haarassa on erityinen komento Ulkoisten tietolähteiden hallinta, jonka avulla voit määrittää yhteysparametrit (erityisesti 1C Enterprise -tilassa) ja muodostaa yhteyden.

      Ensin sinun on määritettävä parametrit yhteyden muodostamiseksi tietokantaan.

      Kun teit asetukset konfiguraattorissa, se näytti sinulle yhteysmerkkijonon tuloksena. Näet sen uudelleen napsauttamalla Lisää taulukko uudelleen konfiguraattorissa.

      Kopioi yhteysmerkkijono ja määritä se 1C Enterprise -tilassa.

      Tämän jälkeen sinun on muodostettava varsinainen yhteys.

      Kun yhteys on muodostettu, on mahdollista työskennellä listojen kanssa.

      3. Käytä 1C-kielellä

      Yhteys voidaan tehdä myös ohjelmakoodista 1C-kielellä.

      Yhteysparametrit määritetään seuraavasti:
      ConnectionParameters = ExternalDataSources.SourceNameConfigurator.GetGeneralConnectionParameters();

      ConnectionParameters.AuthenticationStandard = Tosi;
      ConnectionParameters.UserName = "sa";
      ConnectionParameters.Password = "salasana";
      ConnectionParameters.ConnectionString = "yhteysmerkkijono konfiguraattorista";
      ConnectionParameters.DBMS = "MSSQLServer";

      ExternalDataSources.SourceNameConfigurator.SetGeneralConnectionParameters(ConnectionParameters);
      ExternalDataSources.SourceNameConfigurator.SetUserConnectionParameters(Käyttäjänimi(), Parametrit);
      ExternalDataSources.SourceNameConfigurator.SetSessionConnectionParameters(Parameters);
      ExternalDataSources.SourceNameConfigurator.SetConnection();

      Voit hakea tietoja tietokannasta käyttämällä tavallista . Esimerkki kyselytekstistä ulkoiselle lähteelle OurExternalSource ja taulukot ExternalSource Table:

      VALITA
      ExternalSourceTable.FieldName
      FROM
      ExternalDataSource.OurExternalSource.Table.ExternalSourceTable"

      Ulkoinen tietolähde 1C - työskentelee Excel-tiedoston kanssa

      Kokeillaan toista vaihtoehtoa - työskennellä Excel-tiedoston kanssa ulkoisen 1C-tietolähteen kautta.

      Luodaan yksinkertainen Excel-tiedosto.

      Lisätään ulkoinen lähde, jota kutsutaan mielivaltaisesti FileExceliksi. Lisätään siihen taulukko “Sheet1$”. Kuten näet helposti, tämä on taulukon nimi Excelissä, johon on lisätty "$" -symboli.

      Kuten SQL:n tapauksessa, lisätään sarakkeita. Ne voidaan lisätä manuaalisesti. On tärkeää varmistaa, että lisäämäsi saraketyypit vastaavat toisiaan, sillä muuten saatat saada myöhemmin virheilmoituksen, kuten "Datatyyppi ei täsmää".

      Sarakkeelle on määritettävä nimi kohdassa 1C ja nimi tietolähteessä.

      Excelissä on ominaisuus (virhe, kuten "Liian vähän parametreja. 3 vaaditaan"):

      • Jos Excel-taulukon ensimmäinen rivi sisältää sarakkeiden nimiä, sinun on yksinkertaisesti ilmoitettava tämän sarakkeen nimi, esimerkiksi "Koodi".
      • Muussa tapauksessa sinun on määritettävä koko nimi taulukon nimellä "Sheet1$.Code", mutta lisättävä parametreihin "HDR=NO;".

      Excel-tiedoston yhteysparametrit näyttävät tältä:

      • XLSX-tiedostot (Office 2007 ja uudemmat)
        Ohjain=(Microsoft Excel -ohjain (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\FileExcel.xlsx;
      • XLS-tiedostot (aiemmin)
        Ohjain=(Microsoft Excel Driver (*.xls)); DriverID=790; DBQ=D:\FileExcel.xls;
        Sinun on määritettävä oma nimesi ja polku tiedostoon.

Ulkoiset tietolähteet 1C - suhteellisen uusi metatieto-objekti 1C 8.3 ja 8.2, jolla on mahdollista muodostaa yhteys 1C:n ulkoisiin tietolähteisiin: SQL-taulukot, Excel, Access, FoxPro (dbf), toinen 1C-tietokanta, Oracle, Paradox (db) , - ja jopa lukeminen yksinkertaisista txt/csv-tiedostoista.

Tämä antaa monia mahdollisuuksia muiden järjestelmien kanssa. Katsotaanpa tarkemmin.

Ulkoisten tietolähteiden määrittäminen kohdassa 1C 8

Ulkoisten lähteiden määrittäminen on yksilöllistä jokaiselle järjestelmätyypille. Mutta yleensä asennuksen yleinen osa on sama - tämä on yhteysmerkkijonon asettaminen:

Hanki 267 videotuntia 1C:llä ilmaiseksi:

Jos yhteysmerkkijono on määritetty oikein, järjestelmä kehottaa valitsemaan haluamasi taulukon tietokannasta. Tämän seurauksena saamme valmiin taulukon, jossa voimme määrittää avainkentän (yksilöllinen kenttä) ja esityskentän (miten tietue näkyy 1C:ssä):

Ulkoisten tietolähteiden käyttäminen kohdassa 1C 8.3

1C:n ulkoisia tietolähteitä voidaan käyttää kuten muita tietokantataulukoita. Alusta luo heille automaattisesti lomakkeen, jos sellaista ei ole määritetty. Myös ulkoisista lähteistä peräisin olevaa dataa voidaan käyttää kyselyissä.

Aiheeseen liittyviä julkaisuja