Moduulin laajennus. Moduulien laajentaminen Palvelinmenetelmiä ei aina laajenneta

Se osoittautui erittäin tärkeäksi :)

Ok, tehdään tästäkin viikonlopusta hyödyllinen.

Joten tänään toinen aihe "sovelletusta operaatiosta 1C":

Laajennusmekanismi alustassa 8.3.6

Mistä puhutaan?

Alustassa 8.3.6 otettiin käyttöön uusi mekanismi - laajennusmekanismi, joka helpottaa sovellusratkaisun mukauttamista tietylle asiakkaalle.

Laajennuksia käytettäessä konfigurointi on viimeistelty uudessa entiteetissä– kokoonpanolaajennus:

  • Laajennus on itse asiassa myös kokoonpano, mutta tietyin rajoituksin
  • Valmis laajennus voidaan liittää asiakkaan toimivaan tietokantaan käyttäjätilassa
  • Tärkein - viimeisteltyä kokoonpanoa ei tarvitse poistaa tuesta, eli se pysyy vakiona, muuttumattomana
  • Muokatun kokoonpanon päivittäminen käyttäjä voi suorittaa sen automaattisesti

Näin ollen asiakas saa parantamisen mahdollisuus kokoonpano ja samaan aikaan yksinkertainen automaattinen päivitys.

Jotta voit käsitellä tätä tarkemmin, julkaisemme vielä muutaman videon + PDF:n laajennuksista.

Mennään siis:

Määritetään määrityslaajennuksia

Video kattaa uuden 8.3.6-alustan kokoonpanolaajennusmekanismin. Se on tarkoitettu ratkaisujen jalostukseen, mukauttamiseen toteutuksen aikana. Samalla asiakas saa yksinkertaisen automaattisen kokoonpanopäivityksen ja mahdollisuuden tehdä parannuksia.

Objektit, joita voidaan muokata laajennuksessa

Tämä video käsittelee laajennusmekanismin olemassa olevia rajoituksia. Tällä hetkellä vain rajoitettu määrä objekteja voidaan käyttää laajennuksissa.

Työskentely laajennusten kanssa konfiguraattorissa

Tämä video kattaa laajennusten kehittämisen konfiguraattorissa. Laajennus on kokoonpano, vaikkakin hieman rajoitettu. Laajennuksen kanssa työskentely tapahtuu myös metatieto-objektien puussa. Tuloksena oleva laajennus voidaan tallentaa tiedostoon levylle.

Lainaa esineitä

Tässä videossa tarkastellaan perusmääritysobjektien lainaamista laajennukseen. Tämä on tärkein mekanismi, jota tarvitaan itse laajennuksen kehittämiseen. Siinä puhutaan myös ohjatuista ominaisuuksista, joiden arvo tarkistetaan, kun alaliittymä yhdistetään.

Omien objektien luominen määrityslaajennuksessa

Tämä video näyttää, kuinka voit luoda omia objekteja laajennuksessa. Tällaisten objektien luettelo on edelleen rajallinen - nämä ovat raportteja, käsittelyä ja alijärjestelmiä. Tällaisten objektien kehittäminen laajennuksessa suoritetaan analogisesti pääkokoonpanon kanssa.

Työskentely laajennusten kanssa käyttäjätilassa

Tämä video näyttää, kuinka valmis laajennus liitetään asiakkaan työasemaan. Tässä tapauksessa yhteys voidaan muodostaa käyttäjätilasta ilman konfiguraattorin käyttöä.

Hallittujen lomakkeiden käyttäminen määrityslaajennuksissa

Tämä video opastaa sinua käsittelemään laajennuksen hallinnoituja lomakkeita. On huomattava, että alkuperäistä lomaketta ei synkronoida automaattisesti laajennuksen kanssa. Selittää, kuinka järjestelmä luo tuloksena olevan lomakkeen ulkoasun laajennuksen läsnä ollessa.

Hallittu lomakemoduuli ja tapahtumakäsittelijät määrityslaajennuksissa

Tämä video opastaa sinua käsittelemään tapahtumakäsittelijöitä Managed Configuration Extension Formsissa.

Tapahtumakäsittelijöiden suoritusjärjestys pääkonfiguraatiossa ja laajennuksessa on esitetty.

Toteutettu versiossa 8.3.9.1818.

Lyhyesti sanottuna, nyt laajennusten avulla voit vaihtaa tyypillisen kokoonpanon moduuleja ja lisätä omia moduuleja.

Ja tarkemmin, voit muuttaa mitä tahansa moduuleja, paitsi tavallisten muotojen moduuleja:

  • Yleiset moduulit;
  • Objektimoduulit (objektimoduuli, hallintamoduuli jne.) kaikentyyppisille objekteille;
  • istunto moduuli;
  • Hallittu sovellusmoduuli;
  • Ulkoinen liitäntämoduuli;
  • Komentomoduulit;
  • Lomake moduulit;
  • jne.

Sanomattakin on selvää, että olet saattanut muokata hallittuja lomakemoduuleja aiemmin, mutta nyt olemme tehneet joitain muutoksia prosessiin.

Sieppaus
Voit siepata minkä tahansa yleisen määritystavan, kehystää ne omallasi tai jopa korvata ne kokonaan.

Omat ohjaajat
Voit lisätä omia mukautettuja määritystapahtumien käsittelijöitä. Jos niitä ei esimerkiksi ole määritetty tyypillisessä kokoonpanossa.

Omat moduulit
Voit luoda omia jaettuja moduuleja laajennuksessa.

Puhelu
Ja lopuksi, voit kutsua minkä tahansa tyyppisiä määritysmenetelmiä laajennuksessasi.

Kun lainaat ja laajennat yleistä konfigurointimoduulia, laajennusmoduulisi on samassa nimitilassa kuin yleinen moduuli. Siksi laajennusmoduulissa ollessasi voit käyttää suoraan yleisen moduulin muuttujia ja menetelmiä.

Jos olet toisessa laajennuksessa olevassa moduulissa, omat laajennusmoduulin viemäsi muuttujat ja menetelmät ovat käytettävissäsi. Koska ne lisätään tuloksena olevaan yleisen moduulin julkiseen kontekstiin.

Menetelmä puhelun sieppaus

Puhelujen sieppauksen tehtävänä on useimmissa tapauksissa ympäröidä yleisen menetelmän kutsu jollain esi- ja/tai jälkitoimilla. Samalla emme sulkeneet pois mahdollisuutta tyypillisen menetelmän kutsun täysin päällekkäisyyteen ja toteutimme sellaisen mahdollisuuden.

Kuvaat täysin tarpeen siepata tämä tai tuo tyyppinen menetelmä laajennusmoduulissa. Tätä varten lisäsimme sisäänrakennettuun kieleen uuden rakenneelementin - huomautuksen. Metodin määritelmän edelle sijoitetulla huomautuksella määrität minkä tyyppisen menetelmän proseduuri/funktio sieppaa ja millä tavalla. Esimerkiksi:

Merkintä &Ennen("Procedure1") tarkoittaa, että yleinen menettely nimeltä Procedure1 siepataan. Huomautuksen nimi Before tarkoittaa, että koukkuproseduurisi Extend_Proc1() suoritetaan ensin, ja sitten yleinen Procedure1() suoritetaan.

Merkintä ja etuosa

Tämänniminen huomautus tarkoittaa, että sieppaajasi suoritetaan ennen kuin yleinen menetelmä alkaa suorittaa.

Kaaviossa tyyppi- ja laajennusmoduulit on esitetty suorakulmioina ja nuoli näyttää sisäänrakennetun kielen suoritusjärjestyksen.

Merkintä &Jälkeen

Tämä huomautus tarkoittaa, että sieppaajasi suoritetaan tyyppimenetelmän suorittamisen jälkeen.

Merkintä &Sen sijaan

Tämä huomautus vain toteuttaa mahdollisuuden tyypillisen menetelmän täydelliseen päällekkäisyyteen. Toisin sanoen yleistä menetelmää ei suoriteta ollenkaan. Sen sijaan vain sieppaajasi teloitetaan.

Voit asentaa laajennukseen yhden seuraavista sieppainten yhdistelmistä samaa esimerkkimenettelyä varten:

  • &Ennen;
  • &Jälkeen;
  • &Sijasta;
  • &Ennen ja jälkeen.

Viimeinen sieppaajien yhdistelmä (&Ennen ja &jälkeen) suoritetaan seuraavasti:

Jos sieppaat yleistä funktiota etkä toimintosarjaa, voit käyttää vain &-merkkiä sieppaajan sijaan.

Menetelmän kutsuminen, joka peittää &merkinnän sijaan

Jotain epäoikeudenmukaisuutta on olemassa. Voit peittää tai kehystää toimenpiteen. Ja toiminto - vain kokonaan estetty.

Päästäksemme eroon tästä epäoikeudenmukaisuudesta otimme käyttöön uuden menetelmän sisäänrakennetulla kielellä - Continue Call (). Jos kutsut tätä menetelmää sieppaajafunktiossasi, ohittamasi toiminto suoritetaan, minkä jälkeen koodin suoritus palaa sieppaajaasi:

Sisäänrakennetulla kielellä tällainen sieppaustoiminto saattaa näyttää tältä:

Sieppaajatoimintosi on siis jaettu kahteen osaan. Osa, joka suoritetaan ennen tyyppifunktion suorittamista, ja osa, joka suoritetaan tyypin jälkeen.

Voit käyttää ContinueCall()-menetelmää paitsi päällekkäisten funktioiden lisäksi myös proseduurien päällekkäisyydessä. Tässä tapauksessa sen soveltamisen tulos on merkitykseltään sama kuin käytettäessä sieppaajaparia &Ennen ja &jälkeen. Ainoa ero on, että tässä tapauksessa "ennen"-osa ja "jälkeen"-osa ovat olemassa samassa kontekstissa. Joissakin tilanteissa tämä voi olla kätevää. Ensimmäisellä kielellä tällainen sieppaustoiminto saattaa näyttää tältä:

Kumpi on parempi, &Ennen, &Jälkeen vai &Sen sijaan?

Kun ohitat yleiset määritystavat, on aina hyvä pitää mielessä kaksi asiaa:

  • Kun olet kirjoittanut laajennuksen, oletuskokoonpano muuttuu;
  • Tavoitteesi on lisätä toiminnallisuutesi, etkä hylätä pysyvästi sitä, mikä on ja mikä tulee olemaan tyypillisessä kokoonpanossa.

Tästä näkökulmasta katsottuna &Ennen ja &Jälkeen sieppaajien käyttö on edullisinta. Koska niillä siepatun tyypin menetelmä suoritetaan aina ilman ehtoja. Ja jos tyypillisen kokoonpanon kehittäjät tekevät myöhemmin muutoksia tähän menetelmään, nämä muutokset tulevat varmasti toimimaan laajennustasi käytettäessä.

On myös täysin hyväksyttävää käyttää &ContinueCall()-menetelmän sijaan. Tässä sinulla on kuitenkin mahdollisuus ja kiusaus kutsua geneeristä menetelmää ei aina, vaan riippuen joistakin omista ehdoistasi. Sinun on oltava varovainen tämän suhteen ja muistaa, että sillä hetkellä, kun kieltäydyt kutsumasta yleistä menetelmää, kieltäydyt kutsumasta paitsi menetelmää, joka on nyt kokoonpanossa, vaan myös kaikkia sen muunnelmia, jotka tulevat näkyviin tulevaisuudessa. Ja tulevaisuudessa siihen voi esimerkiksi tulla tärkeitä ja hyödyllisiä muutoksia.

Ja lopuksi, "huonoin" vaihtoehto on tyypillisen menetelmän täydellinen päällekkäisyys sieppaajan kanssa. Tässä tapauksessa tyyppikäsittelijää ei varmasti suoriteta nyt eikä tulevissa versioissa. Toisin sanoen otat täyden vastuun laajennuksen tulevien versioiden toiminnasta. Tietysti on tilanteita, joissa tällainen täysi kattavuus on tarpeen, mutta kehotamme sinua suhtautumaan sen käyttöön erittäin huolellisesti ja huolellisesti.

Puhelujen järjestys siepattaessa menetelmiä

Tässä, ennen kertomista, on tarpeen tehdä pieni selitys. Laajennusten tärkeä, voisi sanoa, "ideologinen" ominaisuus on niiden autonomia. Toisin sanoen laajennukset tulee suunnitella siten, että ne eivät ole riippuvaisia ​​toisistaan.

Mutta kun sovellus on käynnissä, luonnollisesti ja luonnollisesti on tietty sarja kutsua yhdistettyjä laajennuksia. Tämä sarja on tiedossa, ja nyt kerromme siitä. Mutta emme aio kertoa sinulle siitä, jotta voit luoda sen perusteella toisistaan ​​riippuvaisia ​​laajennuksia tai laajennuksia, jotka edellyttävät yhtä, kovakoodattua yhteyssekvenssiä. Ja jotta voit analysoida ilmeneviä ongelmia ja korjata ohjelmakoodia.

Kun liität laajennukset tyypilliseen kokoonpanoon, muodostuu "kerrospiirros". Tämän kakun alaosassa on oletuskokoonpano, ja yläosassa on viimeinen kytketty laajennus.

Sekä konfiguraattorissa että 1C:Enterprise-tilassa viimeinen yhdistetty laajennus on viimeinen luettelossa.

Joten tässä esimerkissä Tyyppi on alhaalla, Laajennus2 on ylhäällä ja Laajennus1 on välissä. Jokainen seuraava laajennus sieppaa (laajenee) sen alla olevan.

Kun alusta kohtaa laajennuksissa määritettyjä koukkuja, upotusprosessi etenee kakun ylhäältä alas koukuissa olevien huomautusten mukaan. Niin pitkälle kuin hän voi mennä. Sen jälkeen se palaa alkuun, jos sieppaajia on, ja palaa tyypilliseen kokoonpanoon.

Esimerkki 1

Esimerkiksi, jos samantyyppinen menetelmä siepataan (kehystetään) kahdessa laajennuksessa, kutsunkäsittelijöiden järjestys on seuraava:

  • Extension2:n koukku kutsutaan ensin, koska se on päällä. Se on &Ennen sieppaaja, koska siinä on tämä huomautus;
  • Laajennuksen1 koukkua kutsutaan sitten, koska se on seuraava piirakka. Se on jälleen &Ennen, koska siinä on tällainen huomautus;
  • Sen jälkeen yleistä menetelmää kutsutaan, koska sen suorittamisen estämiseksi ei ole enää sieppaajia;
  • Sitten kakun käänteisessä järjestyksessä kutsutaan &After-koukku laajennuksesta1 ja &After-koukku laajennuksesta2.

Tästä esimerkistä voidaan hyvin ymmärtää seuraava piirre: jos jossakin sieppaajassa tapahtuu käsittelemätön poikkeus, koko ketju katkeaa ja poikkeus jatkaa etenemistä.

Esimerkki 2

Jos sieppaajissa käytetään ContinueCall()-menetelmää, pätee sama "piirakka"-periaate.

  • Extension3:n koukku kutsutaan ensin, koska se on päällä. Se on sieppaaja &Sen sijaan, koska siinä on tällainen merkintä;
  • Kun yrität kutsua yleistä menetelmää, jäljellä oleva "piirakka" analysoidaan. Se analysoidaan täsmälleen samalla tavalla kuin edellisessä esimerkissä;
  • Tämän seurauksena koodin suoritus palautuu &Siepparin sijasta ja sen valmistuttua tyypilliseen kokoonpanoon.

Esimerkki 3

Tärkeä ymmärtää on se tosiasia, että kun ohitat &Instead-merkinnän, itse asiassa ei vain päämenetelmän kutsu ohiteta, vaan myös alla olevat sieppaajat "piirakassa".

Tässä esimerkissä vain &Inplace of Extension2 sieppaaja suoritetaan. Koska se ohittaa yleisen menetelmän, eli koko sen alla olevan "piirakan".

Esimerkki 4

Tämä on itse asiassa muunnelma toisen esimerkin teemasta, mutta kun ylälaajennuksen alla on alaliittymä, se "heittää" myös vakiomenettelyn kutsun alas.

Itse asiassa se vain visualisoi jälleen kerran, että yleisen menetelmän kutsu koskee koko laajennuksen alla olevaa "piirakkaa". Tästä syystä sen jälkeen, kun alaliittymästä 2 on kutsuttu sieppaajaa, alaliittymästä 1 soitetaan sieppaajalle. Koska jäljelle jäävässä "piirakassa" hän ohittaa tyypillisen menetelmän kutsun, johon haluat "tavoita" laajennuksen2.

Tapahtumakäsittelijöiden ja omien käsittelijöiden sieppaus objektimoduuleissa, managereissa jne.

Kaikkien näiden moduulien menetelmien sieppaus tapahtuu täsmälleen alussa kuvatulla tavalla. Kuitenkin, jos koukussa oleva menettely on tapahtumakäsittelijä, siinä on joitain erityispiirteitä. Nämä ominaisuudet johtuvat siitä, että näissä moduuleissa kaikilla tapahtumakäsittelijöillä on kiinteät nimet.

Ensin tapahtuman nimi määritetään siepatun menetelmän nimeksi. Esimerkiksi BeforeWrite:

Toiseksi yleisen käsittelijän läsnäolo tälle tapahtumalle on valinnainen. Jos tyyppikäsittelijää ei ole, sieppaajaltasi kutsutaan. Tämän ominaisuuden ansiosta voit määrittää omat käsittelijät niille tapahtumille, joita ei käsitellä tyypillisessä kokoonpanossa.

Koska objektimoduulien tapahtumakäsittelijöillä on kiinteät nimet ja merkintöjen luettelo on tiedossa, olemme toteuttaneet sinulle pienen "palvelun". Kun luot käsittelijän alaliittymään, avautuu valintaikkuna, jossa voit valita puhelutyypin. Tämän jälkeen moduuliin luodaan sieppausproseduurin tynkä.

Tapahtumakäsittelijöiden ja mukautettujen käsittelijöiden sieppaus lomakemoduuleissa

Myös näiden moduulien menetelmien sieppaus suoritetaan samalla tavalla kuin alussa on kuvattu. Kuitenkin myös täällä on ominaisuuksia, jotka liittyvät tapahtumakäsittelijöiden sieppaamiseen. Nämä ominaisuudet liittyvät siihen, että näissä moduuleissa kaikki tapahtumakäsittelijät ovat osoitettavissa eikä niillä ole kiinteitä nimiä. Kuten luultavasti tiedät, jotta alusta ymmärtäisi, kuinka tämä tai toinen tapahtuma tulisi käsitellä, konfiguraattorissa, ominaisuuspaneelissa, on oltava tietty toimintosarja sidottu tiettyyn tapahtumaan.

Tästä syystä ja vain siepattaessa lomakkeen tapahtumakäsittelijöitä, sinun on käytettävä ominaisuuspalettia huomautusten sijaan. Vaikka kaikki muut moduulimenetelmät, jotka eivät ole tapahtumakäsittelijöitä, voit siepata käyttämällä huomautuksia.

Ulkoisesti tapahtuman kuuntelija lomakemoduulissa näyttää tältä:

Toisin sanoen huomautusta ei käytetä, ja sieppaajan tyyppi ilmoitetaan ominaisuuspaletissa. Tämä tehdään melko yksinkertaisesti. Kun luot käsittelijän laajennukseen napsauttamalla suurennuslasipainiketta, valintaikkuna avautuu. Sen avulla voit kontekstin lisäksi määrittää sieppaajan tyypin (ennen, jälkeen tai sen sijaan).

Kun olet luonut toimenpidemallin, sieppaajan nimen viereen ominaisuuspaletissa näkyy kuvake, joka näyttää sieppauksen tyypin.

Jos ohitat tyypin käsittelijän (sen sijaan), se on vain piste.

Jos luot Ennen- tai After-koukun, se on piste pystypalkin vieressä. Pisteen sijainti ennen viivaa tai sen jälkeen osoittaa sieppaajan tyypin. Ja tämän lisäksi toinen (tyhjä) kenttä tämän tapahtuman vieressä näkyy ominaisuuspaletissa. Sen avulla voit asettaa parisoittimen, jos on tarvetta kehystää tyypillinen käsittelijä Ennen - jälkeen -parilla.

Tällä tavalla määritetyt tapahtumakoukut toimivat, vaikka tälle tapahtumalle ei ole oletuskäsittelijää. Näin voit määrittää omat käsittelijät niille lomaketapahtumille, joita ei käsitellä oletuskokoonpanossa.

Lomakemoduuleista puhuttaessa on vielä yksi pieni huomautus. Muutimme hieman aiemmin olemassa olevia lomakemoduuleita laajentavien moduulien toimintaa. Jotta se vastaa muiden moduulien käyttäytymistä ja varmistaa ohjelmakoodin vakauden.

Aiemmin kaikki lomakemoduulia laajentavat moduulit ja itse lomakemoduuli olivat samassa nimiavaruudessa. Siten ylhäältä alaliittymästä oli mahdollista kutsua paitsi tyypillisen konfiguraation menetelmiä myös alla olevien alaliittymien menetelmiä. Nyt olemme sulkeneet tämän "porsaanreiän", ja alla olevien laajennusten menetelmät eivät ole enää käytettävissä. Nyt voit käyttää vain laajennettavan tyyppimoduulin sisältämiä menetelmiä.

Yleiset moduulit

Laajennuksessa voit luoda mukautettuja jaettuja moduuleja. Rajoja on vain kaksi:

  • Niiden ei tarvitse olla globaaleja palvelimia;
  • Heidän ei tarvitse olla etuoikeutettuja.

Kun laajennat yleistä yleistä määritysmoduulia, myös samanlaisia ​​rajoituksia on:

  • Et voi lainata globaaleja palvelinmoduuleja;
  • Laajennuksestasi tuleva koodi toimii vain etuoikeutetussa tilassa (ellei suojausprofiilissa toisin sallita).

Itse globaalin palvelinmoduulin lainaustoimintoa ei ole kielletty konfiguraatiopuussa, mutta saat virheilmoituksen tietokannan konfiguraatiopäivitysvaiheessa eikä päivitystä suoriteta.

Palvelinmenetelmiä ei aina laajenneta

Se, että laajennuksesi on yhdistetty onnistuneesti tyypilliseen kokoonpanoon, ei tarkoita, että kaikki laajennuksessasi olevat sieppaajat otetaan käyttöön ja niitä aletaan suorittaa. Tässä on joitain turvaominaisuuksia.

Jos käytetty ratkaisu toimii tiedostoversiossa tai asiakaspalvelinversiossa ilman suojausprofiileja, liitettäessä laajennus:

  • Sisäänrakennetun kielen normaalissa suoritustilassa kaikki vakioratkaisun menetelmät laajenevat, sekä asiakas että palvelin;
  • Turvallisessa 1C:Enterprise-kielen suoritustilassa vain asiakasmenetelmät ja palvelinlomakekäsittelijät laajennetaan. Laajennusta ei sovelleta muihin palvelinproseduureihin/toimintoihin.

Kun sovellus toimii asiakas-palvelin-versiossa ja laajennusta yhdistettäessä on määritetty erityinen suojausprofiili tai tietokantaan on määritetty normaalin ja vikasietotilan profiilit, otetaan käyttöön laajennuksen "palvelin"-osa. vastaavan profiilin mukaisesti.

Yksinkertaisin näistä on valintaruutu laajentaaksesi kaikki moduulit Täysi käyttöoikeus -ryhmässä. Se "yhdellä iskulla" mahdollistaa palvelinkontekstin laajentamisen.

On myös tarkempi asetus käyttämällä kenttiä Käytettävissä laajennusmoduuleille ja Ei käytettävissä laajennusmoduuleille. Oletamme, että käytät niitä seuraavalla tavalla:

  • Jos et sallinut täydellistä pääsyä laajennuksiin, luetellaan Moduulit, jotka ovat käytettävissä laajennuksille -kentässä niiden moduulien nimet, joille palvelinkontekstin laajennus on sallittu eikä vaarallinen;
  • Jos olet sallinut täyden pääsyn laajennuksiin, Moduulit eivät saatavilla laajennukselle -kentässä luetellaan joitakin moduuleja, joissa sinun ei silti tarvitse sallia palvelinkontekstilaajennuksia.

Tänään haluamme kertoa lisäraporttien ja -käsittelyn sekä erityisesti konfigurointilaajennusten käytöstä palvelumallissa. Tekniikat eivät pysähdy, 1C-tietokantojen ylläpidosta pilvessä on tulossa yhä houkuttelevampi palvelu. Mitä sinun on tiedettävä, jotta yrityksesi tarvitsemat toiminnallisuudet toteutuvat vuokratietokannassa ja miltä tämä prosessi näyttää palveluntarjoajan puolelta - tästä voit lukea leikkeen alta.

Mitä ovat ulkoiset raportit ja käsittely

1C-käsittely on erilainen, mutta joka tapauksessa ne laajentavat kokoonpanon toimintoja ja mahdollistavat nopean pääsyn tietokantaan tallennettuihin tietoihin muuttamatta kokoonpanoa ja poistamatta sitä tuesta. Ne voidaan rakentaa suoraan kokoonpanoon, lisätä kokoonpanolaajennuksiksi tai olla ulkoisia tiedostoja.

Käsittelyn toimivuuden mukaan ne jaetaan dataa muuttaviin ja yksinkertaisesti tietoa analysoiviin ja tuloksen näyttäviin käyttäjäystävällisessä muodossa (raportit). Jotta asiakirjojen tulostuksen vakioasetteluja ei muuteta, kehitetään ulkoisia tulostuslomakkeita. Myös ulkoinen käsittely voidaan suorittaa tietyn aikataulun mukaan 1C-sovelluspalvelimella - nämä ovat ajoitettuja tehtäviä.

Buttoniin on kehitetty useita kymmeniä prosessointeja, joiden avulla kirjanpitäjämme voivat käyttää "käytännöllistä taikuutta". Esimerkiksi Buttonin kirjanpidon oikeellisuuden analysointiin käytetään ulkoista raporttia ”Autoaudit-tietokannat”. Helposti luettavissa taulukoissa on analyysi 120 kriteeristä tilisaldoille ja liikevaihdoille, veroilmoitusten ja kirjanpitotietojen yhteensopivuus, käyttöomaisuuden analyysi ja paljon muuta.

Esimerkki ulkopuolisesta painetusta lomakkeesta "lainasopimus" lakimiestemme kehittämän lomakkeen mukaisesti. On tapauksia, joissa yrittäjä ottaa yritykseltään yksityishenkilönä korotonta lainaa tai päinvastoin siirtää omat varat yritykselle, niin sopimus on mahdollista tulostaa heti.

Avautuu lomake vaadittujen tietojen täyttämiseksi:

Ja sopimuksen painettu muoto näytetään:

Aikataulutettua prosessointia (aikataulutettuja tehtäviä) käytetään esimerkiksi otteen korjaamiseen. Buttonilla on integraatiot suurten pankkien kanssa, ja erikoisrobotit lataavat tiliotteen suoraan 1C:hen. Koneoppimistekniikan ansiosta kassalla tapahtuneiden virheiden prosenttiosuus putosi 3 prosenttiin. Mutta kuten aina, on poikkeuksia, esimerkiksi asiakkaat, jotka käyttävät välitysjärjestelmää tavaroiden myyntiin, tässä tapauksessa tiliotteen tekemisen säännöt ovat yksilöllisiä. Jotta robottia ei ohjelmoida uudelleen tiettyä tapausta varten, ennen konfiguraatiolaajennusten tuloa käytettiin ajoitettua tehtävää robotin lausekkeen korjaamiseen 10 minuutin välein.

Mitä ovat määrityslaajennukset

Laajennus on minikokoonpano, joka perii objektit päätietokantakokoonpanosta ja sisältää koodia, joka sisältää lisäyksiä tai korjauksia objekteihin ja moduuleihin. Samanaikaisesti pääkonfiguraatiota tuetaan, muokkausta ei tarvitse ottaa käyttöön, mikä yksinkertaistaa huomattavasti päivitysprosessia.

Mekanismissa oletetaan kolmea käyttötapaa, jotka itse asiassa ilmoitetaan "Tarkoitus" -kentässä laajennusta luotaessa:

Tekniikan keskeinen osa on Palvelupäällikkö, se tallentaa kaikki tiedot tilaajista, käyttäjistä, sovelluksista, tietokannoista ja niiden välisistä yhteyksistä, ja sen avulla hallitaan ulkoista käsittelyä ja konfigurointilaajennuksia.

Kaikki käsitellyt tiedostot ladataan palvelunhallinnan erityiseen hakemistoon. Mutta ennen tiedoston lataamista hakemistoon, toisin sanoen "julkaisemista palvelussa", se on valmisteltava erityisellä tavalla.

Ulkopuolisten raporttien valmistelu ja käsittely palvelumallissa julkaistavaksi

Lisäraportti tai -käsittely luodaan "1C: Enterprise 8" -konfiguraattorissa vakiona ulkoisina raportteina ja käsittelynä ja tallennetaan tiedostoon, jonka tunniste on - .epf (lisäkäsittelyä varten) tai .erf (lisäraportteja varten).

Objektimoduulissa on oltava menettelyt ja toiminnot rekisteröintiparametrien määrittämiseksi.

Huomaa, että tärkeä parametri on "Versio". Jos teet muutoksia käsittelyyn, joka on jo ladattu palvelunhallinnan hakemistoon, muista vaihtaa versionumero, muuten palvelupäällikkö kieltäytyy lähettämästä tiedostoa. Raporttia tai käsittelyä kehitettäessä on otettava huomioon, että käyttäjät työskentelevät palvelumallissa verkkoasiakkaan kautta (hyvä artikkeli 1C-blogissa). Jos käsittely sisältää lomakkeita, niiden on toimittava verkkoasiakasohjelmassa kaikissa 1C: Enterprise 8 -teknologiaalustan tukemissa verkkoselaimissa.

1cfresh.com-palvelun standardien mukaan lisäraportin tai -käsittelyn on oltava täysin toimiva, kun se suoritetaan vikasietotilassa, eli sen on toimittava ilman ulkoisten objektien käyttöä määritystä varten.

Palveluun toimituspakkauksena lataamista varten on laadittava lisäraportti tai käsittely. Toimitussarja on arkisto (zip-tiedosto), joka sisältää:

  • lisäraportti tai käsittelytiedosto;
  • manifestin xml-tiedosto, joka sisältää metatietoja, joita palvelupäällikkö tarvitsee lisäraportin tai -prosessin julkaisemiseksi palvelussa.
Valmistelu suoritetaan paikallisesti käyttöönotetussa tietokannassa kokoonpanosta, jota varten lisäraportti tai -käsittely on tarkoitettu. Käytämme erityistä paketin luontiavustajaa, ulkoista käsittelyä Valmistele lisäraportteja ja prosessijulkaisuja ServiceModel.epf:ssä. Lisätietoja on 1C Fresh Solutions Publishing Technologyn dokumentaatiossa.

Lisäraporttien asennus ja käsittely palvelumallissa

1C Fresh -tekniikan erottuva piirre on, että ulkoista raporttia tai käsittelyä ei voi ladata suoraan tietoalueelle. Lisäämisen suorittaa vain palvelun ylläpitäjä palvelunhallinnan kautta. Kun zip-arkisto ja käsittelytiedosto on valmis, se on ladattava palvelunhallintahakemistoon ja asennettava tietylle palvelun tilaajalle.

Palvelun tilaaja on jonkin periaatteen mukaan yhdistynyt käyttäjäryhmä. Tästä syystä tietylle käyttäjäryhmälle saatavilla olevia tietokantoja kutsutaan tilaajasovelluksiksi.

Sovelluksilla voi olla erilaisia ​​1C-konfiguraatioita (Yrityslaskenta, Palkka- ja henkilöstöhallinta, Yrityksemme hallinta jne.), joita voidaan käyttää palvelumallissa. Ylimääräinen raportti tai käsittely voidaan asentaa vain tiedoston latauksen yhteydessä määritellyn tilaajan sovelluksiin.

Tältä näyttää lisäraportin ominaisuuslomake versioineen. Hyperlinkillä "Asenna / Poista" pääsemme sovellusluetteloon ja valitsemme tarvittavat tietokannat.

Kun käsittely on ladattu ja sovellus valittu, palvelupäällikkö soittaa sovelluksen osoitteeseen ja antaa komennon asentaa se tietokantaan.

Aloitamme käsittelyn aikataulun mukaisesti

Kun työskentelet suuren määrän kirjanpitotietokantoja, käsittelyä on suoritettava säännöllisesti. Esimerkiksi kerran kuukaudessa tai muutaman minuutin välein. On myös tärkeää automatisoida manuaaliset ja rutiinikäyttäjät. Käytämme tätä varten aktiivisesti proseduuritehtäviä.

Ajastettavalla käsittelyllä ei ole lomaketta. Kaikki logiikka on kirjoitettu objektimoduuliin ja näyttää tältä.



Toimitussarjaa valmistellessa määritämme aikataulun. Nyt käsittelymme suoritetaan tunnin välein.

Lisätietoja määrityslaajennuksista

Samanaikaisesti ulkoisten raporttien ja käsittelyn kanssa, jotka on valmisteltava ja hallinnoitava "vanhaan tapaan", aloimme aktiivisesti käyttää konfiguraatiolaajennusten mekanismia. 1C Enterprise 8.3.10 -alustasta lähtien tämä mekanismi on helpottanut elämäämme paljon ja mahdollistanut kokoonpanojen mukauttamisen Buttonin ominaisuuksiin.

Kirjoitimme yllä esimerkiksi rutiinitoimenpiteistä asiakirjojen korjaamiseksi 10 minuutin välein käynnistetyille roboteille. Nyt voit käyttää laajennusta moduulien toiminnan määrittämiseen. Näin voimme välittömästi, kun tallennamme tai lähetämme asiakirjan, suorittaa tarvittavat toimenpiteet. Tämä on paljon optimaalisempaa, koska tietokannan työjono ei ole tukkeutunut toimista 10 minuutin välein, ja nopeampi, koska muutokset tehdään välittömästi.

Uuden laajennuksen valmistelu on melko yksinkertaista. Katsotaanpa laajennusten luomisprosessia erityisillä esimerkeillä.
Työkokemuksen mukaan säätöpyyntöjen johtaja on painettu lomake TORG-12. Meidän on esimerkiksi tehtävä laajennus mahdollisuudelle tulostaa lähetystodistus tietyssä valuutassa (oletusarvoisesti se voidaan luoda vain ruplissa).
Avaa Valikko → Asetukset → Määrityslaajennukset
Luo uusi laajennus tehtävällä "Sopeutuminen".

Laajennus näyttää tutulta asetuspuulta, mutta ilman objekteja. Ensinnäkin lisätään uusi TORG-12-asettelu, johon lisäsimme sarakkeita, joissa on valuutat.

Koska rahtikirja on tulostettu asiakirjasta "Tavaroiden ja palveluiden myynti", lisätään tämä asiakirja laajennukseseemme pääkokoonpanosta ja tehdään tarvittavat muutokset hallintamoduuliin. Voit tehdä tämän valitsemalla toteutuksen kontekstivalikosta "lisää laajennukseen".

Nyt voit muokata toteutuksenhallintamoduulia. Meidän on lisättävä uusi lomake tulostettavien luetteloon ja täytettävä valuuttamäärät.

Tyypillisten menettelytapojen muuttamiseksi käytämme &After-merkintää, tarvitsemme myös pari toimintoamme ja menettelyä.

Tarkastellaan lähemmin huomautuksia. Laajennuksissa voit käyttää: &Ennen, &Jälkeen, &Sen sijaan (erittäin huolellisesti). Toimintaperiaate on yksinkertainen: haluamme, että laajennuksen algoritmit suoritetaan ensin, laita merkintä &Ennen ja suluissa ilmoita proseduurin nimi tyypillisestä konfiguraatiosta. Jos tyypillinen moduuli toimii ensin ja sitten meidän, käytämme &After-funktiota.

&Ennen ja &jälkeen -merkintöjä ei voi käyttää funktioissa. Siksi, jos joudumme muuttamaan funktion algoritmia pääkokoonpanosta, käytämme &merkinnän sijaan.

&Instead-merkintää tulisi käyttää mahdollisimman vähän, koska se korvaa kokonaan pääkonfiguraation proseduurin ja toiminnon suorittamisen laajennusproseduurilla/funktiolla. Tällä sieppausmenetelmällä pääkokoonpanon toimintoa / toimintoa ei yleensä suoriteta, kun laajennus on asennettu, edes versioiden päivittäminen ei auta.

Johtopäätös

Laajennusten ja ulkoisten raporttien/käsittelyn käytöstä on monia erilaisia ​​mielipiteitä. Kokemuksemme perusteella kannatamme laajentumista molemmin käsin. Tämä on nykyaikainen ja mukautuvampi tekniikka, siinä on paljon enemmän ominaisuuksia ja niiden julkaiseminen on monta kertaa helpompaa. Laajennukseen sijoitetaan vain tarvittava osa koodista; ei myöskään tarvitse erikseen määrätä toimenpiteitä ja toimintoja rekisteröintiparametrien määrittämiseksi, versioiden valvomiseksi ja jakelupaketin luomiseksi.

Voit käyttää useita laajennuksia samalle tietoalueelle.
1C Freshin erityispiirteisiin tiedonjakotilassa (yksi kokoonpano, useita itsenäisiä alueita) laajennusmenetelmä on erinomainen tapa.

Laajennusten kanssa työskentelyn suurin ongelma on puolueellinen arvio kehittäjien / toteuttajien tulevista parannuksista. Viestistä "kyllä, meillä on vain muutama painike lomakkeen muuttamiseen" alkaa työ laajennusten kanssa. Parannuksien määrä kasvaa, laajennuksia käytetään edelleen viestin "käytämme jo laajennuksia, jatketaan niiden läpi" perusteella.

Sitten tietokantaan on lisättävä uusia kokonaisuuksia, laajennettava olemassa olevien rakennetta. Tai muuta minkä tahansa tyypillisen osajärjestelmän toimintaperiaatetta. Laajennusten kanssa työskentely on yhä vaikeampaa tai jopa mahdotonta. Kokoonpano sisältää mahdollisuuden muuttaa ja alkaa "pehmeä" tai "kova" jalostus tyypillistä kokoonpanoa, riippuen pätevyydestä kehittäjät.

Tämä on hetki, jolloin teknologian eläintarha saapuu. Heterogeenisuus, joka elää jo yritysjärjestelmässä, hieroo iloisesti käsiään tajuten, että se on saanut niin hyvän jalansijan selkeydestä ja yksinkertaisuudesta.

Tietenkin tässä vaiheessa voit päästä eroon yhdestä teknologiaeläintarhan eläimistä ja siirtää kaikki muutokset oikein kokoonpanoon. Loppujen lopuksi sinun on edelleen "huolehdittava" kahdesta eläimestä - sekä laajennuksista että parannuksista tyypillisimpään kokoonpanoon. Siivoa heidän jälkensä, ruoki niitä, sovita jotenkin toistensa kanssa, jotta he eivät rikkoisi mitään yhteistyöprosessissa, lisää vielä yksi rivi Headhunter-avoimien kehittäjien vaatimusluetteloon.

No näinhän se pitää tehdä. Mutta Heterogeneity tietää, että ihmiset ovat laiskoja, he pelkäävät koskea siihen, mikä jotenkin toimii, heillä ei aina ole aikaa, eivätkä viranomaiset pysty arvioimaan uudelleenjärjestelyn tarvetta tässä vaiheessa, mikä on kriittistä tarpeettoman teknologian luopumisen kannalta. . Laajennusten kautta tehtyjen muutosten parannukset jatkuvat laajennusten kautta. Kokoonpanoon tehdyt parannukset - jatkuvat kokoonpanossa. Yritysohjelmistoarkkitehtuurin päävihollinen on lujasti juurtunut valloitettuun jalansijaan.

Yleensä on parempi harkita huolellisesti ennen kuin aloitat erittäin erikoistuneen tekniikan käytön. Jos on vaara, että objektien rakennetta on muutettava tai uusia tietokantaobjekteja lisättävä, on tarpeen aloittaa virheenkorjaus usein ja ilman ongelmia, on ihmisiä, jotka ymmärtävät kuinka aluksi muuttaa kokoonpanoa ilman ongelmia myöhempää päivitystä varten , silloin on parempi heti päättää olla tekemättä eläintarhaa. Kukaan ei ottanut pois uudelleenmääriteltäviä moduuleja, lomakkeiden ohjelmallista muokkausta ja tilauksia tapahtumiin. Jos yritys on pieni ja työntekijöille on tärkeää, että kokoonpano päivitetään yhdellä painikkeella nyt ja aina tulevaisuudessa, ei varmasti tule suuria muutoksia (todella varmaa?), Silloin ei tule eläintarhaa laajennuksilla.

Ja tietysti pienille laajennuksille laajennukset ovat hyviä. On esimerkkejä hyvästä käytöstä IP:ssä, kun laajennuksia julkaistaan ​​cf-tiedoston sijaan, jossa on ohje vertaamiseen ja yhdistämiseen. Mutta tämä on jälleen tietty alue, ja kätevää pysyvää käyttöä varten on parempi siirtää toiminnallisuus kokoonpanoon, jotta käynnistys yritystilassa ei hidastu.