Bitrix Exchange 1c moduuli. Ladataan viitetietoja

Siitä on nyt luultavasti 2 kuukautta, kun olen tehnyt integraatioita uusille asiakkaille 1C-Bitrixin ja 1C Enterprisen kanssa vaihtomoduulien uudessa versiossa. Haluaisin heti huomauttaa, että vaihdon uusi versio on mahtava, taivas ja maa verrattuna siihen, mikä oli ennen. Mutta siellä on pieniä teräviä kiviä, sinun on käveltävä niiden yli kaapimalla kantapääsi ennen kuin sukeltaa tähän nautinnon mereen.

Suurin ongelmani uudessa integraatiomoduulissa oli se, että olin liian laiska vaihtamaan siihen - vanhan vaihtomoduulin olemassaolon aikana kehitimme sitä vakavasti asiakkaillemme, lisäsimme toimintoja 1C-puolelle, siirsimme kaiken ulkoiseen käsittelyyn ja lisäsi sen Bitrix-puolelle moduuliinsa ja lepäsi laakereillaan. Kun uusi asiakas tuli, löysin yksinkertaisesti samanlaisen kotelon ja hioimme joitain väistämättä olemassa olevia ominaisuuksia varmuuden vuoksi, että kaikki menee niin kuin pitää.

Kun Bitrixoids julkaisi uuden moduulin, katselin sitä tarkasti jonkin aikaa, mutta en halunnut ottaa sitä käyttöön - pelkäsin.

Ja sitten kesällä tapahtui jotain kauheaa - jossain vaiheessa älykkäät työntekijäni saivat kaikki projektinsa valmiiksi ja istuivat 3 päivää toimettomana. Tietysti löysin heille jotain - he päivittivät moduulimme markkinoilla, mutta pelko tämän apokalypsin toistumisesta säilyi. Tuolloin keksin "integraatio lahjaksi" -promoonnin ostaakseni minulta Bitrix Businessin lisenssin tai tehdäkseni kanssani vuodeksi teknisen tuen sopimuksen. Julkaisin kampanjan Bitrix-verkkosivuston affiliate-promootiot-osiossa, ja se lähti liikkeelle – kuulen edelleen kaiun.

Hassua oli, että kampanja-aikana vain 2 asiakasta käytti sitä, mutta sitten pitkään asiakkaat tulivat luokseni ja sanoivat nähneensä kampanjan ja vaikka heillä ei ollut aikaa hyödyntää sitä, he päättivät. ottaa minuun yhteyttä joka tapauksessa. Tämän seurauksena heinä- ja elokuussa noin 10 integraatiota putosi harteillemme. Useimmat tapaukset olivat tyypillisiä ja tylsiä, mutta mukana oli myös mielenkiintoisia, monimutkaisia ​​ongelmia.

Olin vaikean valinnan edessä - integroida uudet monimutkaiset asiakkaat vanhalla tavallani vai toteuttaa heille uusi vaihtomoduuli. Muuten, uusi vaihtomoduuli kattaa 80 % niistä tehtävistä, jotka olemme aiemmin tarjonneet asiakkaille epästandardeina. Katsoin sitä ja prosessointiamme ja ajattelin, että moduulini kehittäminen 1c-puolella ja Bitrixoidsin tahdissa ei olisi kannattavaa. Lisäksi solmin molempia osapuolia hyödyttävän kumppanuuden yrityksen kanssa, joka tarjoaa 1C Enterprisea "sovellusvuokrana", ja halusin yksinkertaistaa vuorovaikutustamme ja konfiguroida 1C-asiakkaita mahdollisimman paljon.
Sama tekijä pakotti minut ymmärtämään 1C UT -määrityskoodia syvemmin, ja kuten tavallista, ajattelin kaiken uudelleen uudelle tasolle. (Muuten, minulla on nyt tiimissäni täysin erillinen henkilö, joka käsittelee yksinomaan 1C UT:n alkuasetuksia kirjanpidon ja dokumenttien kulkua varten).

Joten aloin ottaa käyttöön uutta vaihtomoduulia, asentaa 1C Enterprise 8.3.5, 1C UT 11.1.6 asiakkaille, ladata Bitrix-lisäosan uusimman version 1C UT:hen ja ottaa uuden käyttöön ohjelman alkaessa. Bitrix-työtä. Muuten, Bitrix-versio oli yksi kivistä. Aloitan siitä.

1) Vaihtoversioiden vastaavuus 1C Bitrixin puolella ja 1C Enterprisen puolella

En muista tarkkaa päivämäärää, jolloin tämä tapahtui, mutta siirtymäkauden aikana, jolloin Bitrix-puolella ja 1C Enterprise -puolella uusia vaihtomoduuleja julkaistaan, eräillä asiakkailla ja minulla oli tilanne, jossa Bitrix päivitettiin uusimpaan versioon. , mutta 1C-puolta ei päivitetty, ja vaihtoprotokollan muutoksen vuoksi tämä vaihto ei mennyt läpi. Muistan paniikkini, jopa ryntäsin kopioimaan vanhan Bitrix-puolen vaihtomoduulin nimiavaruuteeni ja käyttämään sitä, mutta Bitrixoids tarjosi onneksi ratkaisun tähän tapaukseen. Bitrix-puolella sinun on syötettävä seuraavat komennot:

Asetukset -> Työkalut -> PHP-komentorivi
COption::SetOptionString("katalogi", "DEFAULT_SKIP_SOURCE_CHECK", "Y" ;
COption::SetOptionString("alennus", "suojattu_1c_vaihto", "N" ;

Ja tuki protokollan vanhalle versiolle otetaan käyttöön.

2) Vie 1C:lle suuri määrä tavaroita
Yhdessä projektista minun piti ladata noin 40 000 nimikettä kuvineen verkkosivustolta 1C:hen. "Import Assistant" -käsittely kesti hirveän kauan tämän toiminnon suorittamiseen - yli päivän, mikä ei ollut minulle hyväksyttävää, ja kirjoitin siinä joitain paikkoja uudelleen - otin tietokantaan kyselyt pois silmukasta. Kirjoitin tästä erillisen postauksen. Bitrixoids lupasi optimoida päivitysten käsittelyn.

3) Käänteinen tuonti ja ryhmäpuu
Saman asiakkaan projektissa, kun aloimme tehdä integraatiota päinvastaiseen suuntaan, meillä oli hyvin erityinen tilanne.

Aluksi luettelorakenne luotiin sivustolle - ei Bitrix-sivustolle, vaan toiselle vanhalle OpenCartin asiakassivustolle. Ladattiin luettelo Bitrixiin. (käyttäen muuten meidän tuontimoduuliamme yml:stä ja vientimoduuliamme yml:iin opencartista, jonka kirjoitin yhden ilmaisen perusteella ja annan nyt niille, jotka ostavat tuontimoduulini yml:stä Bitrixiin ja haluavat nouta tavarat kaupasta OpenCartilla)

Latasimme luettelon 1C:hen - kaikki toimi hienosti - tuoteryhmille määritettiin koodi, joka vastasi Bitrix-puolen XML_ID-osien ulkoista koodia. Sovimme asiakkaan kanssa, että sitten täytämme luettelon ja muokkaamme sen rakennetta 1C-puolella. Suoritimme luettelon käänteisen tuonnin varmistaaksemme, että kaikki oli kunnossa, määritimme hintojen ja saldojen vaihdon ja testasimme sen. Sitten asiakas sanoi, että hakemistorakenne verkkosivustolla ja 1C:ssä olisi erilainen. Uudessa vaihtomoduulissa voit mukauttaa ryhmäpuuta - eikä tämä tehtävä ole enää ongelma. Mielenkiintoinen tosiasia kuitenkin paljastui - tämä on enemmän ominaisuus kuin bugi, mutta se hämmensi minua aluksi. Kun perustin ryhmäpuun 1C-puolelle, ajattelin, että vaihdon jälkeen he - ryhmät, jotka oli jo tuotu paikalle ennen puun pystyttämistä - ottavat sen ja rakentaisivat itsensä uudelleen tämän puun mukaisesti. Kuitenkin uusia ryhmiä uusilla XML_ID-tunnisteilla alettiin luoda. Ja tämä piti ottaa huomioon.

4) Pienet ongelmat 1C-puolella
Kolmella asiakkaalla oli 1C UT toteutettu tyhjästä (+ integroitu Bitrixiin, tietysti). Tapaukset olivat identtisiä ja ne tehtiin itse asiassa rinnakkain. Tein sen yhdelle asiakkaalle, testasin sen ja sain avustajani tekemään kaiken täsmälleen samoin kahdessa muussa projektissa. Alan testata - vakioraportit eivät toimi kahdessa muussa projektissa. Tapahtuu virhe

Valintaluettelossa on oltava indeksoituja kenttiä
<>Segmentit. Nimikkeistö

Alan kiehua sisäisesti ja käyn mielessäni kaikki kirosanat, jotka tiedän. Olen hiljaa ja tarkistan. Kaikki näyttää olevan samaa. Ero paljastui alustaversioissa. Missä kaikki toimi hyvin, versio oli 8.3.5.1068 ja missä virhe tapahtui, alustaversio oli 8.3.5.1119, kokoonpano oli sama 1C UT 11.1.6.26 Ongelma ratkesi kytkemällä yhteensopivuustila päälle version 8.3 kanssa. 4 A at Lisäosaa asentaessani sammutin sen yleensä kokonaan - mutta ilmeisesti minun olisi pitänyt asentaa 8.3.4 Vaikka alustan alemmille versioille - erityisesti 8.3.5.1068:ssa kaikki oli ok, kun yhteensopivuustila ei ollut käytössä, ja Ajattelin jo, että söisin jonkun.

5) Toimituspalvelujen ja vastapuolten - rahdinkuljettajien - vaatimustenmukaisuus
Ratkaisimme tämän ongelman hyvin ja kätevästi vanhalla moduulilla, mutta vanha ratkaisu ei sopinut uuteen moduuliin ollenkaan. Uuden moduulin avulla ratkaisin ongelman tekemällä tilaustenvaihtomoduulin minimaalisia muutoksia, nimittäin "CreateUpdateOrder" -menettelyä.

Lisäsin tilauksen ominaisuudet, ehkä ei kovin optimaalisesti

Toimitustapa = GetDocumentAttributeValue(XMLDocument.AttributeValues, "Toimitustapa");
DeliveryAddress = GetDocumentAttributeValue(XMLDocument.AttributeValues, "Toimitusosoite");

//Saamme toimituskirjeen lisäasetuksistamme:
ObjectKey = "Bedrosova";
SettingsKey = "BedrosovSiteExchange";
//Käyttäjänimi = Käyttäjänimi();
Käyttäjänimi = "JAA";
StructureSettings = Uusi rakenne();
Yrittää
Asetukset Structure = Yleiset asetukset Storage.Load(ObjectKey,SettingsKey,UserName);
Poikkeus
Report("Sinulla ei ole oikeutta lukea muita vaihtoasetuksia.");
EndAttempt;
Jos SettingStructure = Undefined Sitten
Report("Lisävaihtoasetusten lukeminen epäonnistui!");
Muuten
FoundString = SettingsStructure.MatchingDeliveryMethods.Find(DeliveryMethod, "OnSite");
Jos EI löydy FoundString = Määrittämätön Sitten
Order.DeliveryMethod = FoundString.OnServer;
Order.CarrierPartner = FoundString.Counterparty;
loppu Jos;
loppu Jos;

Ja jätin lisäasetukset ulkoiseen käsittelyyn - aivan kuten aiemmin kuvailin.


6) Oikea valuutan siirto tilauksissa
Vaihdellessani tilauksia yhdelle asiakkaalleni kohtasin seuraavan ongelman: Itse vaihto sujui hyvin, mutta sitten sivustolta tullut tilaus ei voinut muuttaa tilaansa - se antoi virheilmoituksen

"Valuutta-kentän arvo ei voi olla tyhjä"

Vaihdossa käytetyissä vakiomyyntisopimuksissa valuuttana oli RUB.
Näyttää siltä, ​​​​että sivustolla sama valuutta oli ilmoitettu valuutta-asetuksissa.

Mutta sivustolta tulleissa tilauksissa valuuttaa ei täytetty.
Kävi ilmi, että valuutta oli määritettävä sivuston puolen integrointiasetuksissa:


Valitettavasti tätä ei ollut mahdollista testata usean valuutan myymälöissä.

7) Kohteiden valinta tuotteen ominaisuuksien mukaan

Yhdellä asiakkaista oli asennettuna 1C UT 10.3.29.1, ja se asensi siihen vastaavan vaihtomoduulin. Ladattaessa kohteita 1C:stä sivustolle, oli varmistettava, että vain ne tuotteet ladataan, joille tietty mukautettu ominaisuus vastasi tiettyä arvoa. Aluksi ajattelin, että valintaasetuksia voisi käyttää tähän tarkoitukseen.

Kävi ilmi, että ei.
Tämä valikoima ei ole tarkoitettu tavaroiden valintaan, vaan yleiseen kiinteistövalikoimaan. Nuo. Vain ne omaisuudet, jotka ovat tässä valinnassa, poistetaan (lisäominaisuuksista riippumatta).

Mutta 1C UT 10.3:ssa vaihtosuunnitelman objektienhallinnan "B_ExchangeSSite" moduulissa on menettely " CustomizeBuilderProducts". Korjasin siinä tavaran valintaan liittyvän pyyntöpaketin ongelmani ratkaisemiseksi.

9) Kuvia myyntitarjouksista

Uskomattoman mielenkiintoinen tapaus - jätän välipalaksi - kirjoitan ensi kerralla kuinka toteutin sen uudella tavalla vaatekauppojen uuteen moduuliin, jossa kirjaa pidetään ominaisuuksien - värin ja koon mukaan.

Standardin 1C-vaihdon asettamisen lisäksi<=>Bitrix, kohtaamme ajoittain ja ratkaisemme onnistuneesti epätyypillisiä konfigurointiongelmia.

Tällaisten ratkaisujen hinta voidaan määrittää vasta teknisiin eritelmiin tutustumisen jälkeen.

Alla on kuvattu erillinen tapaus, jos kohtaat jotain vastaavaa, ota meihin yhteyttä.

Esimerkki epätyypillisestä asetuksesta

Tosiasia on, että vakiojärjestelmä olettaa, että kaikki tuotteet syötetään alun perin 1C: hen ja vasta sitten ladataan sivustolle.

Tässä tapauksessa kävi päinvastoin: johtajien päätyöpaikka on verkkosivusto, ja siellä kaikki tavarat listattiin alun perin. Samanaikaisesti 1C:ssä ylläpidetään varastokirjanpitoa, ja siellä asetetaan myös hinnat offline-kaupankäynnissä käytettäville tavaroille.

Kaksinkertaisen työn poistamiseksi he asettivat tehtävän: ladata vain hinnat ja saldot 1C:stä, eikä muuttaa tavaroiden ominaisuuksia ja nimiä.

Lisäksi joissakin tuotteissa käytettiin kahta mittayksikköä - kappaletta ja pakkausta. Ja standardissa kunkin tuotteen saldo ja hinta ladataan vain yhdellä mittayksiköllä.

Siksi meidän piti muuttaa merkittävästi vaihtomoduulia sivuston kanssa.

Tietokannan synkronointi

Koska kaikki tuotteet syötettiin alun perin Bitrixiin, ensimmäinen askel oli luoda vastaavuus sivustolla olevan tuotteen ja 1C:n välillä. Tätä varten päätettiin käyttää tuoteartikkelia ja yksikkökoodia.

Kirjoitettiin PHP-skripti, joka päivittää "Ulkoinen koodi" -kentän jokaiselle tuotteelle (tuote) ja kauppatarjoukselle (tuote + yksikkökoodi).

1C:stä Bitrixiin lataamisen parantaminen

Moduuli 1C:stä Bitrixiin lataamista varten on säädetty lataamaan vain hinnat ja saldot mittayksiköiden mukaan eriteltyinä.

Säädetyn purkamisen tulos eroaa merkittävästi tavallisesta:

Tulos

Työ valmistui viikossa. Kaikki muutokset tehtiin ensin toimistossamme käyttöönotetun tietokannan kopioon. Kun ratkaisun virheenkorjaus tehtiin, muutokset siirrettiin tuotantopaikalle.

Sivuston toimintatila ei häiriintynyt.

Ja 1C: Enterprise Trade Management, painos 11.1 (11.1.2.31).
Artikkelin osuvuus on toukokuussa 2015.
Kiinnitä huomiota tähän.
Kun olemme oppineet monia asioita, teemme ne lähes mekaanisesti.
Kaikista, jotka osaavat ajaa autoa, eivät kuitenkaan voi tulla ajo-opettajia.
Yksi asia on tehdä se itse, aivan toinen asia on kertoa muille, kuinka se tehdään. Tämä vanha vitsi on monelle tuttu.
- Kulta, missä tee on? En löydä sitä... - Voi kuinka avuton oletkaan! Tee lääkekaapissa, kaakaotölkissä, jossa "SALT"-tarra.
Siksi useimmat ohjeet 1C:n ja Bitrixin integroimiseksi eivät keskity pisteisiin, joihin aloittelija voi viettää aikaa useista tunteista useisiin päiviin.
Yritän sulkea tämän kysymyksen mahdollisimman pitkälle nopean alun vuoksi
(En erehdy, jos sanon, että monet ihmiset haluavat nähdä, kuinka 1C Trade Management toimii yhdessä verkkokaupan kanssa).
Suuri kiitos Bitrix-kehittäjille virtuaalikoneesta. Sen myötä testausjärjestelmän luominen alkoi viedä minuutteja.
Seuraavaksi - ota yhteyttä foorumeihin, guruihin, kuru jne.

Aloitetaan.

Mitä sinun tulee ladata:

Käynnistämme virtuaalikoneen soittimessa.

Asennamme lisäosat 1C-malliluetteloon.

Malleista luomme peruskaupanhallinnan demon, versio 11.1 (11.1.2.31). Otamme käyttöön konfiguraattorissa muutoksen
, ja integroi Bitrixin lisäosamoduuli.
Tämä prosessi on kuvattu täysin moduulin mukana toimitetussa dokumentaatiotiedostossa. Lainaan sanatarkasti:




  1. Sisällytä Bitrix-alijärjestelmä yhdistämiseen (valitse ruutu): "Configuration" - "General" - "Subsystems" - "Administration" - "Bitrix".

10. Vertaa ja yhdistä määrityksiä ("Suorita"-painike).

Huomautus.
On suositeltavaa käynnistää 1C parametrilla " LaunchInformationBaseUpdate", jotta 1C voi täyttää kaikki 1C:n palvelutiedot. Käynnistys parametrilla voidaan käynnistää joko komentoriviltä tai konfiguraattorista.

Jotta voit suorittaa sen komentoriviltä, ​​sinun on määritettävä seuraavat parametrit:

"<Адрес к 1 CV8. exe>" YRITYS (/ Ftai /Spohjatyypistä riippuen) ""<Адрес к базе> " / N"<Логин>" / P"<Пароль>" /C RunInformationBaseUpdate

Käynnistääksesi konfiguraattorista sinun on mentävä kohtaan: Työkalut -> Asetukset. "Launch 1C: Enterprise" -välilehdellä sinun on määritettävä käynnistysparametri.

Samalla on parempi asettaa käynnistystilaksi "Paksu asiakashallintasovellus"

Kun työskentelimme 1C:n parissa, saapui virtuaalikone.

Lataa "Sivuston hallinta" -jakelupaketti Business Demo


Myymälän valinta ja perustaminen.

Jätämme kaikki asetukset oletusarvoiksi. Jos haluat tehdä sotkun, syötä välittömästi tietosi ja poista valinnat käyttämättömistä ruuduista (maksu- ja toimitustavat)

1C:ssä luomme yhteyden sivustoon. Tarkistamme, että sivusto on saavutettavissa.

Huomautus.
Teemme arkistoja.
1C - 1C-työkaluilla ja sivusto - virtuaalikoneen avulla (jos luot arkiston sivuston hallintapaneelin kautta, se katoaa ensimmäisen vaihdon aikana 1C:n kanssa).
Älä unohda poistaa "RunInformationBaseUpdate" -käynnistysparametria, jota ei enää tarvita.

Kohtuullinen toive on ladata nimikkeistö sivustolta.

Katso, miten kuvaukset, ominaisuudet jne. on järjestetty. Luomme tätä varten Vaatteet-tuotetyypin ja -ryhmän

Ensimmäinen ongelma on, että lataus ei toimi.
Saamme virheilmoituksen: "Tietojen lataaminen palvelimelta epäonnistui. Palvelimen vastaus: virhe Viennin alustusvirhe."

Koska oletuksena millään käyttäjäryhmällä ei ole oikeuksia tähän.

Huomautus.
Sinun on siirryttävä osioon Store - Integration with 1C - Export catalogue sivuston hallinnollisessa osassa. Valitse vähintään Järjestelmänvalvojat-ryhmä ja tallenna muutokset.

Tämän jälkeen tapahtuu tavaroiden lastaus työmaalta.

Kaikkien ominaisuuksiensa ja ominaisuuksineen tuotteen lisäksi ladataan PERUShinta (muista tämä nimi - se on hyödyllinen meille) ja hinnanasetusasiakirja

Voimme palauttaa 1C:n arkistosta, mutta jatkokokeilun puhtauden vuoksi meidän ei tarvitse palauttaa sitä.

Siirrytäänpä kohteiden lataamiseen Bitrixin verkkosivustolle 1C:stä.

Käytä aluksi tavallista 1C-vaihtoa.

Siirry välilehdelle Tavaran purku.

Huomautus.

Jos teet vaihdon nyt, sivustolla ei tapahdu lainkaan muutoksia. Kaikki kohteet ladataan uuteen tietolohkoon, joka ei näy sivuston käyttäjäosassa.
Päästäksesi oikein kauppaluettelon jo määritettyyn tietolohkoon (kutsumme sitä Vaatteiksi), sinun on täytettävä luettelon tunniste oikein. Kuinka hänet tunnistaa?
Sivuston hallinnollisessa osassa - siirry kohtaan Asetukset tietolohkoihin

Ja valitse ruutu "Näytä latauskoodi ulkoisista lähteistä"

Tämän jälkeen Clothes Information -lohkossa näemme ulkoisen koodin "vaatteet_s1"

Voit korjata sen täällä tai lisätä sen 1C:hen.

Seuraavaksi siirrymme valinnan asettamiseen 1C:ssä

Muista luoda ja valita sopimus

Kuten näet, on olemassa kaksi ehtoa: Ulkopuolisten käyttäjien käytettävissä ja Kumppani-segmentti - tyhjä

Huomautus.

Itse asiassa niitä on kolme muuta: Sen pitäisi olla BASE. Jos unohdat tämän kohdan, sivuston nimikkeistö korvataan, mutta kaikki tuotteet eivät ole tilattavissa. Niillä ei ole määriä eikä hintoja.

Muut sopimuksen asetukset voivat olla "maun mukaan". Hinta mukaan lukien (monet ihmiset ovat huolissaan tästä).

Kuten myös valintaasetukset.

Huomautus.

Kaikkien asetusten jälkeen vaihdamme vaihtotilan tilaan - lataa levyn hakemistoon.

Ja teemme vaihdon. Tämä antaa meille mahdollisuuden nähdä, mitä todella puretaan, ja 1C antaa meille mahdollisuuden tarkistaa mahdollisuus kirjoittaa hakemistoon.

Tämän jälkeen siirrymme suoraan vaihtotilaan sivuston kanssa.

Vaihdamme kaupan nettisivujen kanssa.

Vaihto meni läpi - nimikkeistö, hinnat, määrät, kuvat - kaikki on paikallaan.

Siirrytään Bitrixin vaihtomoduuliin.

Täällä on paljon enemmän asetuksia. Mutta tärkeimmät on täytettävä samalla tavalla kuin edellisessä tapauksessa.

Vaihdetaan ja katsotaan, että tavarat ovat loppuneet.
Jos kaivaa syvemmälle, hinnat eivät latautuneet.

Huomautus.

Jotta voit määrittää vaihdon Bitrix-moduulin kanssa, sinun on syötettävä oikein sivuston sisäinen hintakoodi.
Muista, että sovimme, että ensimmäinen vaihto ei mene suoraan sivustolle, vaan levyllä olevaan hakemistoon.
Etsimme tiedostojen hintoja_..
Avaa se missä tahansa tekstieditorissa ja etsi PriceTypeId-tunniste - tämä on sivuston ulkoinen hintakoodi.

Muokkaa perushintaa verkkosivuston Kauppa - Hintatyypit -osiossa. Kirjoita oikea ulkoinen koodi muistiin.

Tämän jälkeen kaupan verkkosivusto saa oikean ilmeen

Huomautus.

Jos haluamme palata vakiovaihtoon, se ei toimi. Sinun on mentävä verkkosivustolle Asetukset-osiossa - PHP-komentorivi - suoritettava kaksi koodiriviä

COption::SetOptionString("katalogi", "DEFAULT_SKIP_SOURCE_CHECK", "Y");

COption::SetOptionString("alennus", "suojattu_1c_vaihto", "N");

Tämän jälkeen voit vaihtaa sivuston kanssa sekä Bitrix-vaihtomoduulin että vakiokonfiguraatiovaihdon.

Ja siirry myös tilausten vaihtoon ja moniin muihin mielenkiintoisiin asioihin 1C: Enterprise - 1C Bitrix -yhteydessä.

Viesti inspiroi minua kirjoittamaan yksityiskohtaisemman huomautuksen Bitrixin vaihtamisesta 1C:n kanssa. Ensi silmäyksellä näyttää siltä, ​​​​että tämä on erittäin monimutkainen prosessi, mutta monien vuosien kokemuksella ymmärrät, että se ei ole vain vaikeaa: se on myös täysin g (yskä, yskä). Yritän kuvailla tätä prosessia sanoin. Tervetuloa helvettiin kuvaus vaihdosta 1C:n kanssa.

Minkä tahansa vaihdon aloittaja on 1C, sivusto ei lataa mitään 1C:hen, sivusto vastaanottaa vain pyyntöjä ja palauttaa tuloksen. Oletusarvoisesti 1C käyttää komentosarjaa /bitrix/admin/1c_exchange.php. Tämä polku on ilmoitettu itse 1C:n vaihtoasetuksissa. Tämä tiedosto sisältää tiedoston /bitrix/modules/sale/admin/1c_exchange.php. Jos avaat tiedoston, näet useiden komponenttien yhteyden $_GET["tyypistä"] riippuen. Yleensä kaksi niistä kiinnostaa:

bitrix:sale.export.1c- tilausten vienti.

bitrix:catalog.import.1c-luettelon tuonti.

Tilausten vienti 1C:hen

Vastaanotettuaan istunnon ID menee alustus Exchange, URL: /bitrix/admin/1c_exchange.php?type=sale&mode=init&sessid=ID_Session. Tässä vaiheessa sivusto antaa vaihtoasetukset sivustolta.

varten saada luettelo tilauksista URL /bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=Session_ID pyydetään. Tilaukset, joissa on kentät EXTERNAL_ORDER = "N", UPDATED_1C = "N" ja päivitetään viimeisen onnistuneen latauksen jälkeen 1C:ssä, ladataan (tämä tarkistetaan ajan mukaan myyntimoduulin ominaisuudesta "last_export_time_committed_/bitrix/admin/1c_excha").

Lippu EXTERNAL_ORDER osoittaa, että tilaus luotiin 1C:ssä ja sen lataamista 1C:hen ei vaadita.

Lippu UPDATED_1C sivuston onnistuneen tuonnin jälkeen 1C:stä on asetettu arvoon "Y", eivätkä tällaiset tilaukset osallistu jatkovientiin ennen kuin ne on päivitetty sivustolle. Verkkosivuston tilauspäivitysten aikana UPDATED_1C on asetettu arvoon "N".

Tilausten käsittelyn jälkeen 1C for vaihdon loppuun saattaminen pyytää URL-osoitetta /bitrix/admin/1c_exchange.php?type=sale&mode=success&sessid=Session_ID. Tässä tapauksessa tilausluettelon pyytämisen aika kirjataan myyntimoduulin omaisuuteen "last_export_time_committed_/bitrix/admin/1c_excha" (EI nykyinen aika, koska tilausten pyytämisestä niiden käsittelyyn asti, tilaukset olisi voitu lisätä, ja ne sisällytetään seuraavaan sivuston lataukseen).

Muokkaus

Tiedosto /bitrix/admin/1c_exchange.php, bitrix:sale.export.1c-komponentti ja CSaleExport-luokka ovat mukana tilausten viennissä. Täällä ei ole tapahtumia, joten tämän prosessin muokkaamiseksi sinun on korvattava komponentti omallasi, luotava luokka, joka perii CSaleExportista ja korvattava komponentin kutsut sillä. Bitrixin uusimmissa versioissa tämä luokka on tullut suhteellisen luettavaksi vanhoissa versioissa oli vain arkki php:tä ja "xml".

Versiosta 15.5 lähtien on lisätty tarkistuksia, ja jos soitat yksinkertaisesti /bitrix/admin/1c_exchange.php?type=sale&mode=query , saat virheilmoituksen Virhe pyynnön lähteen tarkistuksessa. Päivitä Exchange-moduuli. Jos et halua sotkea sessidin kanssa, voit poistaa pyyntölähteen tarkistuksen käytöstä suorittamalla:

// vanha koulu: COption::SetOptionString("alennus", "secure_1c_exchange", "N"); // d7 tyyli: \Bitrix\Main\Config\Option::set("alennus", "secure_1c_exchange", "N");

Tavaroiden tuonti 1C:stä

Seuraava tulee vaihdon alustaminen, URL /bitrix/admin/1c_exchange.php?type=catalog&mode=init&sessid=ID_Session. Tässä vaiheessa vaihtodatataulukko $_SESSION["BX_CML2_IMPORT"] alustetaan istunnossa ja sivusto tarjoaa vaihtoparametreja: mahdollisuuden käyttää zip-tiedostoa, tiedostokokorajoitusta jne. Myös tässä vaiheessa lataustiedostojen kansio tyhjennetään. Todennäköisesti tämä on /upload/1c_catalog/-kansio. Virheenkorjausta varten voit ottaa käyttöön vanhojen vaihtotiedostojen tallentamisen, jolloin uuden vaihdon aikana vanhat tiedot siirretään erillisiin kansioihin: 1c_catalog0, 1c_catalog1 jne. Tietojen tallentamiseksi sinun on määritettävä vakio tiedostossa dbconn.php:

// Älä unohda poistaa tätä riviä virheenkorjauksen jälkeen välttääksesi palvelimen ylivuodon define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

Tämän jälkeen alkaa 1C tietojen valmistelu ja lähettää ne sitten POST-pyynnöllä sivustolle osissa, URL: /bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=FILE_NAME.zip&sessid=Session_ID. Pyyntö jatkuu, kunnes tiedostot on siirretty kokonaan.

1C lähettää verkkosivustolle xml-tiedostoja, joissa on tuote- ja tarjoustietoja sekä kuvia. Jos sivusto sallii zipin käytön, 1C siirtää kaikki tiedostot yhteen arkistoon. Sitten seuraava vaihe alkaa sen purkamisesta.

Saa osallistua purkamiseen xml-tiedostoja:

  • import.xml - tuotteet, osat, hintatyypit, varastot, tuotteiden ominaisuudet ja mittayksiköt;
  • offers.xml - kauppatarjoukset tavaroista ja niiden ominaisuuksista;
  • hinnat.xml - kauppatarjousten hinnat (uusissa versioissa);
  • rests.xml - loput kaupan tarjouksista (uusissa versioissa);
  • references.xml - käyttäjäviitteet (korkealataustietolohkot, uusissa versioissa).

Kuvat ladataan import_files-kansioon.

Aloita sitten tuontivaiheet, URL: /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=UPLOAD_FILE_NAME.xml , jossa UPLOAD_TIEDOSTON_NAME - import.xml, offers.xml jne. Tiedoston käsittely päättyy, kun sivusto palauttaa sanan "menestys". Luokat CIBlockXMLFile (/bitrix/modules/iblock/classes/mysql/cml2.php) ja CIBlockCMLImport (/bitrix/modules/iblock/classes/general/cml2.php) vastaavat lataustiedoston käsittelystä.

Tiedostojen käsittely koostuu useista vaiheista (tiedot lisätään):

    Tyhjennä väliaikainen taulukko (taulukko b_xml_tree);

    CIBlockXMLFile::DropTemporaryTables() -menetelmä. B_xml_tree-taulukon normaali pudotus.

    Väliaikaisen taulukon luominen;

    CIBlockXMLFile::CreateTemporaryTables() -menetelmä. Täällä luodaan taulukko b_xml_tree. Muuten, voit asettaa tämän taulukon tallennusmoottorin, samoin kuin kaikki Bitrixin luomat, määrittämällä vakion MYSQL_TABLE_TYPE.

    Tiedoston lukeminen väliaikaiseen taulukkoon;

    CIBlockXMLFile::ReadXMLToDatabase() -menetelmä.

  1. Väliaikainen taulukon indeksointi;
  2. Tuo metatiedot;
  3. Tuo osat;
  4. Poista osiot käytöstä ja laske osioiden vasen ja oikea raja uudelleen;
  5. Tuo osia;
  6. Elementtien deaktivointi;
  7. menestys.

Jotkin vaiheet voidaan suorittaa useissa pyynnöissä, useiden sekuntien osissa (tämä aika määritetään Bitrixin hallintapaneelin 1C-integrointiasetuksissa "Interval of one step in seconds" -parametreilla).

Muokkaus

Vaiheessa 10, so. kun lataustiedoston käsittely on valmis (Huom. yksi tiedosto, esimerkiksi tuotteet tai tarjoukset), luettelomoduulin OnSuccessCatalogImport1C-tapahtuma kutsutaan. Käsittelijän argumentit ovat vaihtokomponentin parametrit ja polku lähetettävään tiedostoon.

Voit myös muuttaa vaihtoprosessia tavallisten tapahtumien avulla, esimerkiksi OnBeforeIBlockElementUpdate tai OnBeforeProductAdd. Käytän käsittelijässä seuraavaa kainalosauvaehtoa määrittääkseni, että tapahtuma laukesi vaihdon aikana 1C:n kanssa:

If (isset($_GET["tyyppi"], $_GET["tila"]) && $_GET["tyyppi"] === "luettelo" && $_GET["tila"] === "tuonti") ( //...)

No, jos mitään ei voida ratkaista tapahtumilla, voit aina muuttaa vaihtoprosessia kokonaan kopioimalla ja muuttamalla /bitrix/admin/1c_exchange.php-tiedoston, bitrix:catalog.import.1c-komponentin ja CIBlockCMLImport-luokan.

Pyynnön lähteen tarkistus poistetaan käytöstä

Kuten tavaroiden purkamisenkin tapauksessa, tavaroita tuodaessa tarkistetaan pyynnön lähde. Voit poistaa sen käytöstä seuraavalla koodilla:

// vanha koulu: COption::SetOptionString("katalogi", "DEFAULT_SKIP_SOURCE_CHECK", "Y"); // d7 tyyli: \Bitrix\Main\Config\Option::set("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y");

Artikkelia päivitetään, kun uutta tietoa ja inspiraatiota tulee saataville.

Tällaista ei ole koskaan ennen tapahtunut, ja taas sama asia.

V.S. Tšernomyrdin.

Puhuin jo artikkelissa tietojen vaihdosta 1C-perheen ohjelmistotuotteiden ja Bitrix-sivustojen välillä, mutta sitten puhuin yksinomaan yleisistä toimintaperiaatteista. Toisessa kirjoitin 1C:n ja Bitrixin ongelmista.

Tänään yritän paitsi kuvata Bitrix- ja 1C-ohjelmistotuotteiden sivustojen integrointiongelmaa, vaan puhun yksityiskohtaisesti mahdollisista asiantuntijoiden kohtaamista sudenkuopat, kuvailen erityisiä ongelmia sekä mahdollisia tapoja ratkaista ne.

Olen jo sanonut useammin kuin kerran, että 1C-perheen ohjelmistotuotteille on ominaista suuri määrä virheitä ja ne vaativat säännöllisiä päivityksiä, mutta niiden asentamisen jälkeen sinun on määritettävä kokoonpano uudelleen, samoin kuin kaikki laajennukset, lisäosat ja tiedonvaihto muiden komponenttien, ohjelmien, järjestelmien kanssa .

Eräs asiakas, web-studion edustaja, otti minuun juuri tällaisen ongelman kanssa vähän aikaa sitten. Tältä hänen yhteistyöehdotuksensa näytti:

Hei! Meidän on kiireellisesti saatava päätökseen sivuston ja 1C:n synkronointi, tai tarkemmin sanottuna, ladattava tuotteet, hinnat ja valokuvat 1C 8.3:sta (uusin versio) sivustolle. Apua kaivataan kiireesti, jos olet vapaa, kirjoita minulle miten ottaa sinuun yhteyttä kertoaksesi ongelmasta tarkemmin. Kiitos etukäteen

Kuten monet kollegat, olen myös rekisteröitynyt freelance-pörsseihin, joten tällaiset pyynnöt eivät yllätä minua. Minulla oli vapaa-aikaa. Ja vaikka tämä pyyntö saapui kauan puolenyön jälkeen, päätin silti ottaa tämän tehtävän.

Kuten odotin, sivusto päätyi Bitrixiin. Asiakas tarjosi minulle etäkäytön, hahmotteli ongelman ydintä ja aloin töihin.

Alkutiedot ovat siis seuraavat:

  1. Siellä on 1C Trade Management. Asiakkaan mukaan - uusin versio
  2. Integraatio lakkasi toimimasta. Heti päivitysten jälkeen.
  3. Asiakas väitti olevansa täysin päivitetty.
  4. Bitrix uusin versio
  5. Mitä tehdä?! Kaikki on menetetty

Ensimmäinen askel. Asetusversio

Ensimmäinen asia, jonka teen aina, on tarkistaa asiakkaan minulle antamat tiedot. Ja 1C:n tapauksessa tarkistan itse nykyisen version.

Tässä tapauksessa nykyisen kokoonpanon julkaisu osoittautui 11.1.9.5. Tämä tarkoitti, että kokoonpanoa ei päivitetty, versio ei ole uusin.

Ilmoitin luonnollisesti tästä virheestä asiakkaalle, minkä jälkeen asensin päivitykset itse. Kokoonpano on päivitetty. Integraatio ei koskaan toiminut.

Kun työskentelet 1C:n kanssa, tarkista aina alustan versio ja kokoonpano! Se on erittäin tärkeää!
Haluan muistuttaa, että Trade Management 11 ilmoittaa standardinmukaisen tiedonsiirtomoduulin UT.11:n ja Bitrixin välillä. Tämä on tavallinen sisäänrakennettu moduuli, jonka pitäisi toimia ilman lisäasetuksia. Mutta minun tapauksessani se ei vieläkään toiminut päivitysten jälkeen. Kun aloitin vaihdon, mitään ei yksinkertaisesti tapahtunut.

Vaihe kaksi. Alustan tarkistus

Sitten tarkistin alustan julkaisun. Periaatteessa kannattaa tarkistaa heti. Henkilökohtaisesti suosittelen, että tarkistat julkaisut ja alustat ja kokoonpanot aina itse. Tämä on niin tärkeää, että en pelkää kirjoittaa siitä uudelleen.

Tarkista itse kaikkien julkaisujen relevanssi!

Minun tapauksessani alustan kanssa kaikki oli kunnossa, julkaisu oli viimeinen, numero 8.3.5.1248, joka julkaistiin 31.10.14. (muuten, kun kirjoitin tätä artikkelia, julkaistiin toinen alustapäivitys).

Joten alusta- ja kokoonpanoversiot ovat kunnossa, mutta vaihto ei toimi.

Vaikuttaa siltä, ​​​​että seuraavaksi sinun on vain tarkistettava Bitrix-puolen moduuli. Mutta kuten käytäntö on osoittanut, sinun on suoritettava koko tehtävä, jotta voit selvittää, mikä moduuli tukee vaihtoa Bitrixistä. Mutta älkäämme menkö itsemme edellä. Kuten lupasin, kerron yksityiskohtaisesti ja järjestyksessä mitä tein, miten tein ja mitä ratkaisuja löysin.

Vaihe kolme. Tietokannan eheyden tarkistaminen

Joten ensimmäinen asia, jonka tein, oli mennä Bitrixin verkkosivustolle. Menin seuraavalle sivulle:

Siellä esitetystä taulukosta päätin, että kokoonpanoni vastaa täsmälleen vaihtomoduulin versiota.

Kuten monet vastaavassa tilanteessa olevat kollegat, käännyin Internetin puoleen saadakseni apua. Yhdeltä foorumilta (mista.ru) löysin tietoa, että jos jokin vaihtotyypeistä ei toimi, on välttämätöntä sulkea tietokantarakenteen eheyden loukkaus mahdollisten ongelmien luettelosta. Tämän toiminnon suorittamiseksi 1C:llä on sisäänrakennettu työkalu: tietokannan testaus ja korjaaminen.

Joten 1C-ohjelma teki paljon työtä ja melko pitkään, koska tässä tapauksessa tietokanta oli tiedostopohjainen, monet virheet korjattiin. Testauksen ja korjauksen kokonaisaika on 40 minuuttia.
Tietenkin jouduimme odottamaan pitkään. Mutta kaikki päättyy joskus. Ja niin, testauksen jälkeen, käynnistämme pörssin toivoen parasta. Tuloksia ei taaskaan ole.

Vaihe neljä. Erikoismoduuli: auttaako vaihtoehtoinen ratkaisu?

Kun tietokannan tarkistaminen ei auttanut, muistin lukeneeni myös yhdeltä foorumilta, että yksi Bitrix-asiantuntijoista asensi erityisen vaihtomoduulin ja suositteli sitä kaikille. Hyvin. Kävin myös verkossa etsiäkseni tätä moduulia ja selvittääkseni, miksi sitä tarvitaan.

Löysin vain yhden tämän moduulin julkaisuversion, joka on tarkoitettu versioon 4.0.5.1. Ajattelin sitä, päätin kokeilla sitä joka tapauksessa ja latasin tämän integrointimoduulin. Lataessani huomasin, että tämän tiedoston versio sivustollani on kaukana ensimmäisestä.

Tiedostoni latauksen jälkeen kutsuttiin seuraavasti:

4.0.5.1_UT_11.1.2(3).zip

Joten käy ilmi, että olen ainakin neljäs henkilö, joka on yrittänyt ratkaista tämän ongelman ja ladannut tämän moduulin.

Asensin sitten tämän moduulin joka tapauksessa. Sen mukana tulee arkistossa pieni esite, joka osoittautui erittäin hyödylliseksi. Mutta itse tiedoston versio kummitteli minua. Ja päätin kysyä asiakkaalta, mikä tilinumeroni on? Vastauksena kuulin, että olen jo viides tai kuudes asiantuntija, joka yrittää ratkaista tämän ongelman.

Olen jo kiinnostunut urheilusta. Huomaa: yli tunti on kulunut siitä, kun aloin ratkaisemaan näennäisesti yksinkertaista ongelmaa, mutta ongelmaa ei ole vieläkään ratkaistu, mutta ratkaisuja siihen ei ole vieläkään päätetty.

Asensin kuitenkin moduulin, jonka muut asiantuntijat olivat jo asentaneet nähdäkseni, mitä latauksella tapahtuu.

Ensimmäinen asia, jonka näin, olivat ilmeiset erot moduulin ja 1C:n vakiovaihtovaihtoehdon välillä, jonka pitäisi toimia. Oli erittäin hankalaa työskennellä epätavallisen käyttöliittymän kanssa.

Lisäksi kaikista näistä toimista ei ole ollut mitään hyötyä.

Tarkista 1C- ja Bitrix-tiedonvaihtomoduulin versio. Niitä voi olla useita samanaikaisesti: useita versioita sekä useita eri kokoonpanoja.

Kun yritin asentaa lisämoduulia, huomasin seuraavan viestin näytön yläosassa:

Luettuani tämän merkinnän ajattelin, että tämä oli viimeinen, uusin kokoonpano. Mutta se oli minun virheeni. Vasta myöhemmin tajusin, että oli olemassa uudempi versio ja mistä sen voi ladata.

Lisäksi sinun on seurattava huolellisesti moduulin valintaa. Henkilökohtaisesti olin aluksi hämmentynyt näistä Venäjän moduuleista:

Yleisesti ottaen, mitä sain kaikkien toimien ja tarkastusten tuloksena:

  • On olemassa vakiovaihto, joka menee 1C: hen. Hän ei työskentele.
  • Siellä on tiedonvaihtomoduuli "Venäjälle". Sekään ei toiminut.
  • Alareunassa on toinen vaihtomoduuli. Mutta sekään ei toimi.

Näin temppu käy. Erilaisia ​​moduuleja on monia, mutta mikään niistä ei halua toimia.

Mikä muu minua hämmensi. Jos napsautat "1C Requirements" -painiketta, näet seuraavan taulukon:

Löysin onnistuneesti tiedon virheestä aiheen sivulta 65.

Moderaattorien vastaus oli seuraava. He antoivat linkin toiseen aiheeseen ja selittivät, että tähän ongelmaan oli jo ratkaisu, ja voit myös löytää paljon mielenkiintoisia asioita tästä aiheesta.

Kehittäjä kirjoitti tästä seuraavaa:

Vaihtomoduulimme ei ole tällä hetkellä yhteensopiva alustan 8.3.5.1248 kanssa. Näyttää siltä, ​​​​että jotain pahaa on muuttunut tällä alustalla. Jotta moduuli toimisi, sinun on vaihdettava koodirivit:

|SIIN """"

Päällä
|WHEN OptionsConfigurationNomenclatureProducts.Characteristic IS NULL
|SIIN MÄÄRITTÄMÄTÖN
Vastaavat muutokset tehdään moduulin seuraavassa versiossa.

Mitä se tarkoittaa?

1C Bitrix -sivuston ylläpitäjä myönsi käytännössä, että virhe oli 1C-alustassa.

Kun löysin nämä tiedot, virhe korjattiin ja vaihto yleensä toimi. Mutta erityisesti kaikki ei ole.

Purkaessamme huomasimme, että valokuvat ja nimikkeistö siirrettiin, mutta hinnat eivät. Onneksi tiesin jo mitä tehdä tälle ongelmalle. Bitrixin puolella, vaikka se ei näytä toimivan vaihdon aikana, on tehtävä yksi muutos, nimittäin hintahakemistossa rasti "Käytettävissä ulkopuolisille käyttäjille" -ruutu.

Minusta myös outo vika. Jostain syystä tästä vivahteesta ei ole kirjoitettu sanaakaan dokumentaatiossa. Ja aikoinaan etsin ratkaisua tähän ongelmaan samankaltaisella menetelmällä, ts. kosketukseen.

Mitä lopussa tapahtui?

Ongelma ratkesi onnistuneesti. Laitoimme asiakkaan kanssa kaiken, tiedonvaihto alkoi toimia niin kuin pitääkin. Työskentelimme 1C:n puolella, ja Bitrix-asiantuntija aloitti työn tietojen kanssa hänen puolellaan. Tuloksena oli 3 tuntia kovaa työtä.

Miten tämä aika on kulunut?

Jokainen toimenpide vaatii tietyn ajan. Päivitykset vievät 10-15 minuuttia, tietokannan indeksointi ja korjaaminen - 40 minuuttia, jokainen vaihtoyritys - 15-18 minuuttia (jos suoritat täyden vaihdon).
Tämän seurauksena vietimme paljon aikaa täydellisesti toimivien toimintojen uudelleenmäärittämiseen ennen kokoonpanon ja 1C-alustan päivittämistä.

johtopäätöksiä

Tein seuraavat johtopäätökset oman kokemukseni perusteella sekä juuri tuon foorumin ketjun huolellisen lukemisen perusteella, jossa oli integraatioongelmia ja niiden ratkaisuja:
  1. Bitrix on vuorovaikutuksessa millään tavalla tai huonosti 1C-yrityksen kanssa. Kirjoitus 1C Bitrix ei tarkoita muuta kuin sitä, että näillä ohjelmistotuotteilla on yhteiset omistajat.
  2. Normaalilta näyttävän pörssin perustaminen vaatii huomattavia ponnisteluja, ja aina on olemassa riski joutua virheisiin arvaamattomalta puolelta. Nuo. Päivittäessäsi sinun on ymmärrettävä erittäin selvästi, mitä kokoonpanoa käytetään, alustaa, mitä moduulin versiota käytetään, ja sinun on myös tarkistettava, onko tässä moduulissa virheitä.
Kun olin käsitellyt kaikki vaiheessa 2 luetellut vivahteet, pystyin selviytymään tiedonvaihdon palauttamisen ongelmasta.

Ja muuta mielenkiintoista omakohtaisesta kokemuksestani

Työskentelen parhaillaan toisen projektin parissa, ja olen myös törmännyt mielenkiintoiseen tilanteeseen. Minä ja asiantuntijat, joiden kanssa työskentelen, vastaamme verkkosivustojen integroinnista 1C-puolella, ja kolmannen osapuolen asiantuntija työskentelee Bitrix-puolella. Periaatteessa alusta asti sovimme, että he kirjoittavat meille erillisen latauksen 1C:lle. Mutta työn aikana Bitrix-asiantuntijat ilmoittivat meille, että tätä sopimusta oli mahdotonta täyttää, ja ehdottivat vakiovaihdon käyttöä.

Mitä lopulta tapahtuu:

Meidän on ladattava hakuteokset ja muokkaamamme tiedot vakiomuodossa.
Meillä on siis ilmeinen ristiriita. Tietysti ratkaisemme ongelman tällä ja ensi kerralla. Tässä on tärkeää ymmärtää, että tällaiset päällekkäisyydet ja ristiriidat ovat jatkuvia kumppaneita kaikille, jotka ovat mukana 1C:n ja Bitrixin integroinnissa.

Jos päätät käyttää vakiovaihtoa

Ensimmäinen asia, joka sinun on ymmärrettävä, on, että sinulle tarjottava vaihto on universaalia, ja siksi itse moduuli on erittäin monimutkainen. Lisäksi jopa tällä sivulla v8.1c.ru/edi/edi_stnd/90/92.htm näet, että tästä vaihdosta on useita versioita, ja ne muuttuvat säännöllisesti. Ja jotta voit täysin mukauttaa tällaisen pörssin toiminnan ja lisäksi muokata sitä tarpeidesi mukaan, sinun on ymmärrettävä hyvin selvästi, miten se toimii.

Esimerkiksi:

UT:sta ladattujen tietojen muoto 11.1.9.56

UT 11.1.9.56:sta ladattujen tietojen muoto Bitrixin moduulilla:

Eli 1C:n ja Bitrixin latausmuodoissa on epäjohdonmukaisuuksia samalle alustaversiolle ja kokoonpanolle.

1C- ja 1C-Bitrix-tuotteiden vuorovaikutus toteutetaan kaksisuuntaisten tiedonvaihtomenettelyjen perusteella. Tiedonvaihto tapahtuu XML-pohjaisella avoimella Commerce Information Exchange Standardilla - CommerceML 2.0.

Jos luet CommerceML 2.0:n sisällöstä, olet yhtä hämmästynyt kuin minäkin siitä, kuinka monimutkainen tämä standardi on muihin verrattuna. Jopa pelkkä kuvaus, ts. Itse kuvausmallitiedosto txt-muodossa vie 107 kilotavua!

Ja mikä tahansa tekemäsi virhe johtaa todennäköisesti siihen, että pörssi lakkaa toimimasta kokonaan.

Normaalia vaihtoa käytettäessä joudut "kiinni" sekä itsesi että asiakkaansa jatkuvasti seuraamaan sekä 1C- että Bitrix-puolella tapahtuvia muutoksia. Jokaisella päivityksellä vaarana on, että menetät kaikki vaihtoon tekemäsi muutokset. Tämän seurauksena saat monimutkaisen, erittäin "bugisen" mekanismin, joka toimii melkein riippumattomasti sinusta. Ja jos lisäät tähän jatkuvat 1C:n ja Bitrixin päivitykset, niin toimivan vaihdon sijaan kohtaat jatkuvan "päänsärkyn".

Miten integraatio tehdään?

Olen jo antanut tämän neuvon ja annan sen uudelleen: sinun on kirjoitettava vaihto itse. Integrointimekanismien lisäksi sinulla voi olla toinen ongelma: moduuli itse luottaa tietyllä tavalla täytettyihin tietoihin. Ja nämä säännöt voivat muuttua ja muuttuvat säännöllisesti.

Joten "päivitysten taistelemisen" aikana olet hallinnut alustan, moduulin ja sitten törmäät myös virheeseen, joka johtuu väärästä tietomuodosta. Osoittautuu, että ne on myös täytettävä tietyllä ja implisiittisellä tavalla. Muista, kuinka esimerkissäni osoitin tarpeen tarkistaa ruutu 1C Bitrix -puolella, jonka onneksi tiesin. Muuten pörssin perustamiseen käytetty aika olisi viivästynyt entisestään. Eikä missään dokumentaatiossa ole sanaakaan tästä "tickistä"!

Periaatteessa, jos käytät tavallista vaihtoa, sinun tulee kuunnella, mitä 1C Bitrix itse sanoo järjestelmänvalvojan sanoin:
- älä päivitä (kun 1c sanoo - päivitä)

Jos haluat silti käyttää vakiomoduulia, toimintojesi järjestyksen tulisi olla seuraava:

  1. Tarkisti alustan version
  2. Tarkistettu asetusversio
  3. Moduulin versio tarkistettu.
  4. Tarkistimme kaikki tietokannat ja varmistimme, että tietoja poimittiin.
  5. Tarkistimme 1C Bitrixin ja 1C-ohjelmistotuotteen versioiden yhteensopivuuden.
  6. Tarkisti tietokantojen eheyden, jos ne ovat tiedostopohjaisia.
Todennäköisesti näiden toimien suorittamisen aikana havaitaan virhe. Lisäksi on erittäin tärkeää muistaa:
Älä muuta standardivaihtoa missään olosuhteissa.

Kaikilla yrityksillä parantaa standardivaihtoa, kohtaat tulevaisuudessa valtavan määrän ongelmia, joiden vuoksi sinun on tutkittava jokainen vaihtomoduulin päivitys ja joka kerta tehtävä parannuksiasi uuteen versioon.

Kuten näette, 1C-ohjelmistotuotteiden ja Bitrix-verkkosivustojen integrointi on melko monimutkainen tehtävä, joka vaatii tarkkaavaisuutta ja useimmiten kokemusta, eikä tämäkään aina auta. Valitettavasti apua uusiin bugeihin, jotka melko johdonmukaisesti korvaavat vanhat, löytyy vain foorumeilta. Tästä syystä kirjoitan mieluummin itse. Mutta jos tarvetta ilmenee, niin ratkaisu löytyy (toivottavasti).