Kuinka näyttää työnantajalle, että osaat työskennellä ryhmässä. Joukkuepelit eivät sovi kaikille

Ikivanha kysymys: miksi kaikille ei riitä ammattilaisia? Ajattelin tätä jälleen kerran ystävieni perhepäivän jälkeen ...
Tällaisen merkittävän tapahtuman järjestämiseksi he kutsuivat nais-seremonian mestari ja tyttö-DJ. Niiden hinta oli 3 kertaa pienempi kuin minun hintani DJ:n kanssa sellaisina iltoina. Kaikenlainen halpa herättää minussa aina epäilyksiä. Tietysti olin valmis viettämään tämän loman itse täysin ilmaiseksi, mutta minulle kerrottiin heti: "Olet vieras! Kutsumme muita ammattilaisia."
Ammattilaiset alkoivat jo ensimmäisten minuuttien jälkeen eksyä, kun yleisö kokoontui hyvin erilaisina ja vapautta rakastavina. Lisäksi DJ:n laitteet oli ilmeisesti poistettu kotikaraokesta: mikrofoni sihisi, soi, murisi, sumisesi, mutta ei vain toiminut.

Olen vieras, joten pidin itseni hallinnassa kaikin mahdollisin tavoin, jotta en häiritse työprosessia. Ja nyt on onnitteluni aika. Otin mikrofonin käteeni ja pyysin tyttöä - DJ:tä laittamaan taustalle jotain instrumentaalista lyyristä. Ei ollut selvää, mitä kaiuttimista vuodatti, kuten lyyrinen vain aikana, jolloin maaliskuussa kissa etsii kissaa.

No, kaikkialla on vivahteita. Aloin onnitella. Mutta kun toin mikrofonin lähelle huuliani, se alkoi huminaa ja soitella. Kun päinvastoin otin sen pois huulilta, minua ei kuultu. Katsottuaan piinaani toastmaster sanoi lopulta loistavan lauseen: "On heti selvää, että et osaa työskennellä mikrofonin kanssa..."

Kyllä, luultavasti 20 vuoden aikana työskennellyt radiossa ja johtaessaan joukkolomia mikrofonin kanssa, hän ei koskaan oppinut hallitsemaan sitä: hän ilmeisesti tiesi sen paremmin ... Mistä ihmiset saavat sellaisen kyvyn tehdä johtopäätöksiä edes ajattelematta mitä Sinä olet sanomassa?

Tiimi yhdistää asiantuntijoita yhteisillä tavoitteilla, joista riippuu koko organisaation ja jokaisen tiimin jäsenen menestys erikseen. Kun tiimi toimii yhtenä organismina, se voi saavuttaa enemmän kuin kaikki sen jäsenet erikseen. Kyky työskennellä ryhmässä on arvokasta monille työnantajille, mutta mitä tiimityötaidot tarkoittaa?

Osaat työskennellä ryhmässä, jos

…voit yhdistää omasitehtäviä ja yleistä

Tärkeää ei ole vain tehtävien suorittaminen, vaan myös mahdollisuus yhdistää henkilökohtaiset tavoitteet ja yrityksen edut. Ryhmässä työskennellessä joudut joskus luopumaan henkilökohtaisesta kenraalin hyväksi. Kokonaistuloksen saavuttaminen riippuu pitkälti siitä, kuinka hyvin kukin ryhmän jäsen tekee työnsä ja tukee työtovereidensa pyrkimyksiä.

apu sinulle ei ole tyhjä lause

Joukkueen tuloksen saavuttamiseksi on tärkeää olla valmis auttamaan kollegoita, mutta myös olemaan ujo ottamaan heiltä apua.

…olet vastuussa noudattamisesta

Tiimityössä on tärkeää vakaa, suunniteltu, tavoitteita ja määräaikoja noudattava työ, ei minkään tiimin jäsenen säännölliset saavutukset. Tekemällä yhteinen projekti Kaikkien tiimin jäsenten on oltava varmoja siitä, että jokainen selviää omasta tehtävästään ajallaan.

…osaa toimia oikein konfliktitilanteissa

Joukkuepelaajalle on tärkeää, että hän pystyy kommunikoimaan tehokkaasti muiden kanssa konfliktitilanteita: kuuntele, vakuuta, pysy rakentavana, etsi argumentteja ja pyri kompromisseihin, älä ole henkilökohtainen. Avain tiimityöskentelyyn on yhteistyö.

Ryhmätyötaidot ovat erityisen tärkeitä niille, jotka työskentelevät monimutkaisten, monitahoisten tehtävien parissa, joita yksittäinen asiantuntija ei pysty ratkaisemaan. LifeWriterin tuote auttaa ymmärtämään, mikä rooli sinulla on tiimissä. Sen avulla saat myös selville, kuinka voit tehostaa tiimityötä entisestään.

"Kyky työskennellä ryhmässä" - tällaisia ​​sanoja löytyy ehkä joka toisesta ansioluettelosta. Mutta mitä tiimipelaajana oleminen tarkoittaa ja onko se aina välttämätöntä? Kenen on erityisesti kehitettävä tiimivuorovaikutustaitoja, ja kenellä on parempi työskennellä, kuten sanotaan, yksilökategoriassa?

Ryhmä vai tiimi?
SISÄÄN Neuvostoliiton vuodet sana "joukkue" yhdistettiin enemmän urheiluun kuin liiketoimintaan. Yrityksen työntekijöistä oli tapana puhua "kollektiivina". Nykyään on tullut muotia kutsua mitä tahansa joukkuetta joukkueeksi (siis tiimin rakentamisen muoti), mutta asiantuntijat selventävät, että nämä eivät ole identtisiä käsitteitä.

Jos tiimin muodostavat kaikki yrityksessä tai sen divisioonassa työskentelevät työntekijät (esimerkiksi tehdastiimi), niin tiimi on asiantuntijoita, joita yhdistää yhteinen tavoite ja sen saavuttamiseksi määrätyt roolit. Samalla yhteinen tavoite toteutuu jokaisen tiimin jäsenen toimesta ja henkilökohtaisena. Epäviralliset suhteet ja ystävyyssuhteet ovat mahdollisia sekä tiimissä että tiimissä.

Esimerkiksi myyntiosastoa ei useimmissa tapauksissa voida pitää tiiminä sanan vakiintuneessa merkityksessä, koska jokaisella johtajalla on oma myyntisuunnitelmansa ja siten oma tavoitteensa. Mutta kunnallisvaaleissa kansanedustajaehdokkaan tukemiseksi vaalikampanjaa järjestävän pienen PR-toimiston pitäisi olla vain tiimi: työntekijöillä on yhteinen tehtävä (ehdokkaan voitto vaaleissa), roolit jaetaan ja tarvittaessa asiantuntijat voivat auttaa toisiaan.

Ryhmä voi olla hyvin suuri (satoja ja tuhansia ihmisiä), kun taas tiimi on pikemminkin kamariyhdistys. Oikeassa tiimissä on harvoin mukana yli 10-15 jäsentä - liian monta ihmistä on vaikea yhdistää yhteiseen päämäärään, jonka jokainen toteuttaisi henkilökohtaisena.

Kenelle se on tärkeää
Pitääkö sinun osata työskennellä ryhmässä? Todennäköisimmin kyllä, jos työstäsi tulee yleensä osa yhteistä tehtävää ja olet henkilökohtaisesti kiinnostunut sen ratkaisusta. Esimerkiksi yrityksen tuotteen onnistunut promootio riippuu koko markkinointiosaston ponnisteluista, kun taas roolisi (esimerkiksi tuotteiden kehittäminen) on tiimille erittäin tärkeä, ja bränditietoisuus on myös henkilökohtainen tavoitteesi.

Ja kenelle joukkuepelaajan taidot eivät ole avainasemassa? Pääsääntöisesti niille asiantuntijoille, joiden työssä työn suhteellinen itsenäisyys ja päätöksenteon riippumattomuus sekä yksilölliset tulokset ovat erityisen tärkeitä. Näitä ovat opettajat, myyntiedustajat ja myyntipäälliköt, tutkijat (ellei tietenkään ole kyse tutkimusprojektista, joka työllistää useita ihmisiä), lääkäreitä (mutta yhdessä leikkauksen suorittavia kirurgia ja sairaanhoitajia voidaan hyvin pitää tiiminä), toimittajat (poikkeuksena voidaan pitää kuvausryhmässä työskenteleviä tv-toimittajia) jne.

Vakaus ja keskinäinen apu
Mitä ominaisuuksia sinun tulee kehittää itsessäsi tullaksesi todelliseksi joukkuepelaajaksi? Ensinnäkin tiimityössä on tärkeää kyky työskennellä tasaisesti ja tehokkaasti pitkään. Joukkue ei pääsääntöisesti tarvitse jäsentensä kertaluonteisia työhyökkäyksiä, vaan heidän jatkuvaa tehokasta toimintaansa - urheilullisesti puhuen, ei sarjaa sprinttejä, vaan pitkän maratonin. Jokainen vakaa järjestelmä tarvitsee vakautta, joten opettele suunnittelemaan aikasi yleisten suunnitelmien mukaan, tule kokouksiin ajoissa ja noudata määräaikoja. Muista - kun jätät osasi työstäsi myöhässä, petät vakavasti ihmiset, jotka luottavat sinuun.

Toinen ominaisuus, jota joukkuepelaajalle kipeästi tarvitaan, on kyky joskus luopua henkilökohtaisesta kenraalin hyväksi. Se tarkoittaa hylkäämistä erilainen juonittelu ja halvan uraismin hylkääminen. Huovan vetäminen päällesi, oman roolisi korostaminen yhteisen asian eteen joka kerta ei ole sitä paras laatu joukkueen jäsenelle. Tietysti osa itsensä edistämisestä on tarpeen menestyvä ura Ryhmäprojekteissa suhteellisuus on kuitenkin erityisen tärkeää.

Lisäksi tiimissä toimivan asiantuntijan tulee aina olla valmis auttamaan kollegoita. Periaate "sinä minulle - minä sinulle" tai "quid pro quo" ei toimi tässä. Jos työskentelet ryhmässä, anna tietoja, jaa yhteystietoja, kehoita ja turvaa muita jäseniä ilmaiseksi – muista, että perimmäiset tavoitteesi ovat samat. Tämä ei kuitenkaan tarkoita, että sinun pitäisi systemaattisesti ja nöyrästi työskennellä itsesi ja sen kaverin hyväksi. Jos näin tapahtuu, roolit tiimissä voidaan tarkistaa. Yrityksen liiketoimintaprosessien oikealla organisoinnilla tällaista kysymystä ei kuitenkaan pitäisi syntyä.

Lopuksi, tiimipelaajalle kyky puhua ihmisten kanssa on erittäin tärkeää - kuunnella, ymmärtää, antaa periksi, vakuuttaa ja päästä kompromissiin. Miten tämä saavutetaan? Voit käydä läpi erityiskoulutuksen tai oppia itse, valmistautuen huolellisesti tuleviin kokouksiin ja neuvotteluihin, pohtien perusteluja.

Kilpailueduna on kyky työskennellä ryhmässä
Lähes joka toinen ansioluettelo huutaa kyvystä työskennellä ryhmässä, mutta kokeneet rekrytoijat eivät kiirehdi ottamaan perusteettomia lausuntoja uskosta. Tehdäksesi tästä laadusta kilpailuetusi, sinun on korostettava sitä haastattelussa keskeisenä ominaisuutena.

Anna tätä varten konkreettisia esimerkkejä onnistuneesta tiimityöstä urallasi, esimerkiksi: ”Työskentelin PR-tiimissä tunnetun tuotemerkin tuotteen edistämiseksi, vastasin yleisötilaisuuksien järjestämisestä. Yhdessä saavutimme 50 % myynnin kasvun kuudessa kuukaudessa.” Tai: ”Ostostamme tunnustettiin vuoden lopussa yhtiön parhaaksi. Olen iloinen, että olen osallistunut siihen." On kuitenkin oltava varovainen ja painotettava paitsi kokonaistulosta myös omaa rooliaan asiassa.

Olisi mukavaa korostaa myös tiimitaitojasi ansioluettelossasi. Tämä on erityisen tärkeää johtotehtäviin hakeville. "Kokemus tehokkaan markkinointitiimin luomisesta tyhjästä"; "Projektinhallinta uusien ohjelmistojen käyttöönotossa - tehokkaan ja tehokkaan tiimin luominen, tehtävien asettaminen, vastuiden jakaminen, nykyinen ohjaus» - korosta CV:n asianomaisissa kohdissa kykyäsi organisoida tiimi.

Ryhmätyö kehittyy, asiantuntijat sanovat. Kuuntelemalla kollegoiden mielipiteitä laajennat ammatillista horisonttiasi ja kehität tunneälyä.!

Otsikko tuli tarttuva, mutta kiehui. Minun on sanottava heti, että puhumme 1C:stä. Hyvät 1C-lempinimet, et tiedä kuinka toimia tapahtumien kanssa etkä ymmärrä, mitä poikkeuksia on. Tulin tähän johtopäätökseen katsomalla suuri määrä 1C-koodi, syntynyt kotimaisen yrityksen erämaassa. Tyypillisissä kokoonpanoissa tämä kaikki on riittävän hyvää, mutta hirvittävä määrä mukautettua koodia on kirjoitettu epäpätevästi tietokannan kanssa työskentelyn kannalta. Oletko koskaan nähnyt virhettä "Tässä tapahtumassa on jo tapahtunut virheitä"? Jos näin on, artikkelin otsikko koskee sinua. Selvitetään lopuksi leikkauksen alla, mitä tapahtumat ovat ja miten niitä käsitellään oikein työskennellessäsi 1C:n kanssa.

Miksi sinun pitää soittaa hälytys

Aluksi selvitetään, mikä on virhe "Tässä tapahtumassa on jo tapahtunut virheitä". Tämä on itse asiassa äärimmäisen yksinkertainen asia: yrität työskennellä tietokannan kanssa jo peruutetun (peruutetun) tapahtuman sisällä. Esimerkiksi CancelTransaction-menetelmää kutsuttiin jossain, ja yrität sitoutua siihen.

Miksi se on huono? Koska tämä virhe ei kerro mitään siitä, missä ongelma todella tapahtui. Kun käyttäjältä tulee tukea tällaisella tekstillä varustettu kuvakaappaus, ja varsinkin palvelinkoodille, jolla henkilö ei toimi interaktiivisesti, tämä on ... Halusin kirjoittaa "kriittisen virheen", mutta ajattelin, että tämä on muotisana johon kukaan ei enää kiinnitä huomiota... Se on perse. Tämä on ohjelmointivirhe. Tämä ei ole satunnainen epäonnistuminen. Tämä on bugi, joka on korjattava välittömästi. Koska kun taustapalvelinprosessisi ovat päällä yöllä ja yritys alkaa menettää rahaa nopeasti, "Tässä tapahtumassa on jo tapahtunut virheitä" on viimeinen asia, jonka haluat nähdä diagnostiikkalokeissa.

Tietysti on mahdollista, että palvelimen tekninen loki (se on käytössä tuotannossa, eikö?) auttaa jotenkin ongelman diagnosoinnissa, mutta nyt en keksi vaihtoehtoa suoraan - kuinka tarkalleen löytää todellinen syy siinä ilmoitetusta virheestä. Ja on vain yksi todellinen syy - ohjelmoija Vasya sai poikkeuksen kaupan sisällä ja päätti, että kerran - ei karabaa "ajattele, se on virhe, mennään eteenpäin."

Mitä ovat tapahtumat 1C:ssä

On noloa kirjoittaa alkeellisista totuuksista, mutta ilmeisesti vähän on tehtävä. Tapahtumat 1C:ssä ovat samat kuin tapahtumat DBMS:ssä. Nämä eivät ole erityisiä "1C"-tapahtumia, nämä ovat tapahtumia DBMS:ssä. Transaktioiden yleiskäsityksen mukaan ne voidaan joko toteuttaa kokonaan tai jättää toteuttamatta ollenkaan. Kaikki tapahtuman aikana tehdyt tietokantataulukoihin tehdyt muutokset voidaan kumota kerralla, ikään kuin mitään ei olisi tapahtunut.

Lisäksi sinun on ymmärrettävä, että sisäkkäisiä tapahtumia ei tueta 1C:ssä. Itse asiassa niitä ei tueta "1C:ssä", mutta niitä ei tueta ollenkaan. Ainakin ne tietokantajärjestelmät, joiden kanssa 1C pystyy toimimaan. Sisäkkäiset tapahtumat eivät esimerkiksi ole käytettävissä MS SQL:ssä ja Postgresissa. Jokainen "sisätetty" kutsu StartTransactionille yksinkertaisesti lisää tapahtumalaskuria ja jokainen "CommitTransaction" -kutsu pienentää laskuria. Tämä käyttäytyminen on kuvattu monissa kirjoissa ja artikkeleissa, mutta tämän käyttäytymisen johtopäätöksiä ei ilmeisesti ole analysoitu riittävästi. Tarkkaan ottaen SQL:llä on ns SAVEPOINT, mutta 1C ei käytä niitä, ja tämä asia on melko tarkka.

Toimenpide Erittäin hyödyllinen&tärkeäKoodi(Lista viiteviittauksista) StartTransaction(); Jokaiselle linkille viitesilmukan linkkiluettelosta Viiteobjekti = Reference.GetObject(); ReferenceObject.WhichField = "Olen vaihtanut koodia"; DirectoryObject.Write(); EndCycle; CommitTransaction(); EndProcedure

Koodi englanniksi

Ei oikeastaan. En todellakaan halua kopioida englanninkielisiä esimerkkejä vain huvittavien holivarien ja pyhien sotien fanien vuoksi.

Varmasti kirjoitat tällaista koodia, eikö? Annettu koodiesimerkki sisältää virheitä. Ainakin kolme. Tiedätkö mitä? Kerron heti ensimmäisestä, se liittyy objektilukkoihin, eikä sillä ole mitään tekemistä suoraan tapahtumien kanssa. Toisesta - hieman myöhemmin. Kolmas virhe on umpikuja, joka tapahtuu, kun tämä koodi suoritetaan rinnakkain, mutta tämä on erillisen artikkelin aihe, emme harkitse sitä nyt, jotta koodia ei monimutkaistaisi. Avainsana googlaamiseen: lukkiutuneen hallitut lukot.

Huomio, koodi on yksinkertainen. Tämä on vain auto 1C-järjestelmissäsi. Ja se sisältää vähintään 3 virhettä kerralla. Ajattele rauhassa, kuinka paljon virheitä on monimutkaisemmissa skenaarioissa työskennellessäsi 1C-ohjelmoijasi kirjoittamien tapahtumien kanssa :)

Objektin lukot

Ensimmäinen virhe siis. 1C:ssä on objektilukot, niin sanotut "optimistiset" ja "pessimistiset". Kuka keksi termin, en tiedä, olisi tappanut :). On täysin mahdotonta muistaa, kumpi on vastuussa mistäkin. Niistä on kirjoitettu yksityiskohtaisesti, samoin kuin muussa yleiskäyttöisessä IT-kirjallisuudessa.

Ongelman ydin on, että määritetyssä koodiesimerkissä tietokantaobjektia muutetaan, mutta interaktiivinen käyttäjä (tai viereinen taustasäie) voi istua toisessa istunnossa, joka myös muuttaa tämän objektin. Tässä joku teistä saattaa saada "merkintää on muokattu tai poistettu" -virheen. Jos näin tapahtuu interaktiivisessa istunnossa, käyttäjä raapia päätään, vannoo ja yrittää avata lomakkeen uudelleen. Jos tämä tapahtuu taustaketjussa, sinun on etsittävä sitä lokeista. Ja rekisteröintiloki, kuten tiedätte, on hidas, ja ELK-pinon 1C-lokit alallamme on perustanut muutama ... (muuten, olemme niitä, jotka perustavat ja autamme muita perustamaan: ))

Lyhyesti sanottuna tämä on ärsyttävä virhe, ja on parempi olla tekemättä sitä. Siksi kehitysstandardeissa todetaan selvästi, että ennen objektien vaihtamista on tarpeen asettaa niihin objektilukko käyttämällä " ReferenceObject.Lock() Tällöin samanaikainen istunto (jonka pitäisi myös tehdä niin) ei voi aloittaa muutostoimintoa ja saa odotetun, hallitun virheen.

Ja nyt kaupoista

Kun ensimmäinen virhe on korjattu, siirrytään toiseen.

Jos et anna poikkeustarkistusta tässä menetelmässä, poikkeus (esimerkiksi hyvin todennäköisesti "Record ()" -menetelmässä heittää sinut pois tästä menetelmästä suorittamatta kauppaa. Poikkeus "Kirjoitus"-menetelmästä voi johtua useista syistä, esimerkiksi jotkin liiketoimintalogiikan sovellusten tarkistukset toimivat tai yllä mainittu objektilukko tapahtuu. Joka tapauksessa toinen virhe kuuluu: tapahtuman aloittanut koodi ei ole vastuussa sen loppuun saattamisesta.


Näin kutsuisin tätä ongelmaa. SonarQubeen perustuvassa staattisen koodin analysaattorissamme 1C rakensimme jopa tällaisen diagnosoinnin erikseen. Nyt työskentelen sen kehittämisen parissa, ja 1C-ohjelmoijien fantasia, jonka koodi tulee minulle analysoitavaksi, joskus järkyttää ja hämmästyttää minua ...

Miksi? Koska tapahtuman sisällä esiintyvä poikkeus 90 %:ssa tapauksista ei salli tapahtuman korjaamista ja johtaa virheeseen. On ymmärrettävä, että 1C peruuttaa automaattisesti keskeneräisen tapahtuman vasta palattuaan komentosarjakoodista alustakooditasolle. Niin kauan kuin olet 1C-kooditasolla, tapahtuma pysyy aktiivisena.

Nostetaan tasoa ylöspäin puhelupinossa:

Toimenpide ImportantCode() LinkList = GetWhereToLinkList(); Erittäin hyödyllinen&tärkeäkoodi(Viiteluettelo); EndProcedure

Katso mitä tapahtuu. Meidän ongelmamenetelmä soitti jostain ulkopuolelta, korkeammalta pinosta. Tämän menetelmän tasolla kehittäjällä ei ole aavistustakaan siitä, tuleeko Very UsefulAnd ImportantCode -menetelmän sisällä tapahtumia vai ei. Ja jos he tekevät, valmistuvatko ne kaikki... Olemme kaikki täällä rauhan ja kapseloitumisen vuoksi, eikö niin? "ImportantCode"-menetelmän kirjoittajan ei pitäisi ajatella, mitä hänen kutsumansa menetelmän sisällä tapahtuu. Se, jossa tapahtuma käsitellään väärin. Tämän seurauksena yritys työskennellä tietokannan kanssa tapahtuman sisällä tapahtuneen poikkeuksen heittämisen jälkeen johtaa suurella todennäköisyydellä siihen, että "Tässä tapahtumassa blaa blaa ..."

Tapahtumien tahraaminen eri menetelmien välillä

Tapahtumaturvallisen koodin toinen sääntö: menetelmän alussa ja lopussa olevalla tapahtumaviitemäärällä on oltava sama arvo. Et voi aloittaa tapahtumaa yhdellä menetelmällä ja lopettaa sitä toisella. Tähän sääntöön voi luultavasti löytää poikkeuksia, mutta se on jonkinlainen matalan tason koodi, jonka kirjoittavat osaavammat ihmiset. Yleensä näin ei voi kirjoittaa.

Esimerkiksi:

Toimenpide ImportantCode() LinkList = GetWhereToLinkList(); Erittäin hyödyllinen&tärkeäkoodi(Viiteluettelo); CommitTransaction(); // Lippu helvettiin, vakava keskustelu kirjoittajan kanssa vaikeista työsuhteistamme. EndProcedure

Yllä oleva on sietämätöntä paskakoodia. Menetelmiä ei voida kirjoittaa siten, että soittaja muistaa ja pitää kirjaa mahdollisista (tai todennäköisistä - kuka tietää) tapahtumista muiden kutsumiensa menetelmien sisällä. Tämä rikkoo kapselointia ja spagettikoodin kasvua, jota ei voida jäljittää mielenterveyden säilyttäen.

On erityisen hauskaa muistaa, että todellinen koodi on paljon suurempi kuin synteettiset 3 rivin esimerkit. Tapahtumien alkamisen ja lopettamisen etsiminen kuuden sisäkkäisen tason mukaan – tämä motivoi suoraan sydämestä sydämeen keskusteluun tekijöiden kanssa.

Yritetään korjata koodia

Palataan alkuperäiseen menetelmään ja yritetään korjata se. Minun on sanottava heti, että emme vielä korjaa objektilukkoa, jotta emme vaikeuta esimerkkikoodia.

Ensimmäinen lähestymistapa tyypilliseen 1C-lempinimeen

Yleensä 1C-ohjelmoijat tietävät, että kirjoitettaessa voidaan tehdä poikkeus. He myös pelkäävät poikkeuksia, joten he yrittävät saada ne kaikki kiinni. Esimerkiksi näin:

Toimenpide Erittäin hyödyllinen&tärkeäKoodi(Lista viiteviittauksista) StartTransaction(); Jokaiselle linkille viitesilmukan linkkiluettelosta Viiteobjekti = Reference.GetObject(); ReferenceObject.WhichField = "Olen vaihtanut koodia"; Yritä ReferenceObject.Write(); Poikkeus Log.Error("Elementin %1 kirjoittaminen epäonnistui", Viite); Jatkaa; Yrityksen loppu; EndCycle; CommitTransaction(); EndProcedure

No, se parani, eikö? Loppujen lopuksi nyt mahdolliset tallennusvirheet käsitellään ja jopa kirjataan. Poikkeuksia ei enää tehdä objektia kirjoitettaessa. Ja lokista voit jopa nähdä - missä objektissa hän ei ollut liian laiska, hän näytti viestissä linkin lakonisen "Hakemistomerkintävirheen" sijaan, koska aina kiireiset kehittäjät kirjoittavat usein. Toisin sanoen on olemassa huoli käyttäjästä ja osaamisen kasvusta.

Kokenut 1C-lempinimi täällä sanoo kuitenkin, että ei, se ei parantunut. Itse asiassa mikään ei ole muuttunut, ja ehkä vielä pahempaa. "Write()"-menetelmässä 1C-alusta itse aloittaa kirjoitustapahtuman, ja tämä tapahtuma on jo sisäkkäinen suhteessa meidän. Ja jos tietokannan kanssa työskennellessään 1C peruuttaa tapahtumansa (esimerkiksi liiketoimintalogiikkapoikkeus heitetään), huipputason tapahtumamme merkitään silti "pilaantuneeksi" eikä sitä ole mahdollista Korjaa se. Tämän seurauksena tämä koodi pysyy ongelmallisena, ja kun yrität sitoutua, se näyttää "virheitä on jo tapahtunut".

Kuvittele nyt, että emme puhu pienestä menetelmästä, vaan syvästä puhelupinosta, jossa aivan alareunassa joku otti ja "vapautti" aloitetun tapahtuman menetelmästään. Huipputason menettelyillä ei ehkä ole aavistustakaan, että joku siellä aloitti liiketoimia. Tämän seurauksena koko koodi kaatuu epäselvällä virheellä, jota periaatteessa on mahdotonta tutkia.

Koodi, joka aloittaa tapahtuman, tarvitaan sen suorittamiseen tai palauttamiseen. Poikkeuksista riippumatta. Jokainen koodipolku tulee tutkia sen selvittämiseksi, poistuuko menetelmä ilman tapahtuman sitomista tai keskeyttämistä.

Tapahtumien käsittelymenetelmät 1C:ssä

Ei olisi tarpeetonta muistaa, että yleensä 1C tarjoaa meille liiketoimia, joiden kanssa voimme työskennellä. Nämä ovat hyvin tunnettuja menetelmiä:

  • Aloita tapahtuma()
  • CommitTransaction()
  • Peruuta tapahtuma()
  • TransactionActive()

Ensimmäiset 3 menetelmää ovat ilmeisiä ja tekevät sen, mitä niiden nimissä sanotaan. Viimeinen menetelmä palauttaa arvon True, jos tapahtumalaskuri on suurempi kuin nolla.

Ja siinä on mielenkiintoinen ominaisuus. Tapahtuman lopetustavat (Commit ja Cancel) heittävät poikkeuksia, jos tapahtumamäärä on nolla. Eli jos soitat jollekin niistä tapahtuman ulkopuolella, tapahtuu virhe.

Kuinka käyttää näitä menetelmiä oikein? Hyvin yksinkertainen: sinun on luettava yllä muotoiltu sääntö:

Kuinka voit noudattaa tätä sääntöä? Kokeillaan:

Yllä olemme jo ymmärtäneet, että DoSomething-menetelmä on mahdollisesti vaarallinen. Se voi aiheuttaa jonkinlaisen poikkeuksen, ja tapahtuma "ryömii" pois menetelmästämme. Okei, lisätään mahdollinen poikkeuskäsittelijä:

StartTransaction(); Yritä DoSomething(); Poikkeus // mitä tänne kirjoittaa? Yrityksen loppu; CommitTransaction();

Hienoa, havaitsimme tapahtuneen virheen, mutta mitä tehdä sille? Kirjoita viesti lokiin? No, ehkä jos virheen kirjauskoodin pitäisi olla juuri tällä tasolla ja odotamme virhettä täällä. Ja jos ei? Jos emme odottaneet virheitä tässä? Sitten meidän pitäisi vain ohittaa tämä poikkeus yllä, antaa toisen arkkitehtuurin kerroksen käsitellä niitä. Tämä tehdään "CauseException"-operaattorilla ilman argumentteja. Näissä java-sippluseissäsi tämä tehdään täsmälleen samalla tavalla heittolausekkeen kanssa.

StartTransaction(); Yritä DoSomething(); Exception ThrowException; Yrityksen loppu; CommitTransaction();

Joten, odota... Jos me vain levitämme poikkeusta pidemmälle, niin miksi yritämme ylipäätään? Ja tässä syy: sääntö pakottaa meidät varmistamaan aloittamamme tapahtuman loppuunsaattamisen.

StartTransaction(); Yritä DoSomething(); Poikkeus CancelTransaction(); ThrowException; Yrityksen loppu; CommitTransaction();

Nyt näyttää olevan kaunis. Muistamme kuitenkin, että emme luota DoSomething()-koodiin. Yhtäkkiä sisällä sen kirjoittaja ei lukenut tätä artikkelia, eikä osaa työskennellä tapahtumien kanssa? Yhtäkkiä hän vei sen sinne ja kutsui CancelTransaction-menetelmää tai päinvastoin, korjasi sen? Se on meille erittäin tärkeää poikkeuskäsittelijä ei antanut uutta poikkeusta, muuten alkuperäinen virhe katoaa ja ongelmien tutkiminen tulee mahdottomaksi. Ja muistamme, että Commit- ja Cancel-menetelmät voivat tehdä poikkeuksen, jos tapahtumaa ei ole olemassa. Tässä TransactionActive-menetelmä on hyödyllinen.

viimeinen versio

Lopuksi voimme kirjoittaa oikean, "tapahtumaturvallisen" koodin. Täällä hän on:

StartTransaction(); Yritä DoSomething(); Poikkeus jos TransactionActive() Then CancelTransaction(); Loppu Jos; ThrowException; Yrityksen loppu; CommitTransaction();

Odota, ei vain "CancelTransaction" voi aiheuttaa virheitä. Miksi sitten "CommitTransaction" ei ole samassa tilassa kuin "TransactionActive"? Jälleen samaa sääntöä noudattaen: tapahtuman aloittaneen koodin tulee olla vastuussa sen loppuun saattamisesta. Tapahtumamme ei välttämättä ole ensimmäinen, se voidaan sisäkkäin. Abstraktiotasollamme meidän tulee välittää vain liiketoimistamme. Kaikki muut eivät saa kiinnostaa meitä. He ovat vieraita, meidän ei pitäisi olla vastuussa heistä. Juuri EI PITÄÄ. Tapahtumalaskurin todellista tasoa ei pidä yrittää selvittää. Tämä rikkoo jälleen kapseloinnin ja johtaa tapahtumien hallintalogiikan "tahroitumiseen". Tarkistimme vain poikkeuskäsittelijän toimintaa ja vain varmistaaksemme käsittelijämme ei luo uutta poikkeusta, joka "piilottaa" vanhan.

Refaktoroinnin tarkistuslista

Katsotaanpa muutamia yleisimpiä tilanteita, jotka vaativat puuttumista koodiin.

Kuvio:

StartTransaction(); Tee jotain(); CommitTransaction();

Kääri "turvalliseen" rakenteeseen Kokeile, pidä elossa ja tee poikkeus.

Kuvio:

Jos Not TransactionActive() then StartTransaction() EndIf

Analyysi ja refaktorointi. Kirjoittaja ei tiennyt mitä oli tekemässä. Sisäkkäisten tapahtumien aloittaminen on turvallista. Sinun ei tarvitse tarkistaa kuntoa, sinun tarvitsee vain aloittaa sisäkkäinen tapahtuma. Moduulin alapuolella hän luultavasti edelleen vääristelee siellä niiden fiksaatioiden kanssa. Tämä on taattu peräpukamia.

Suunnilleen samanlainen vaihtoehto:

If TransactionActive() Then CommitTransaction() EndIf

samoin: tapahtuman tekeminen ehdon perusteella on outoa. Miksi on olemassa ehto? Mitä, joku muu olisi voinut jo tehdä tämän kaupan? Oikeudenkäynnin syy.

Kuvio:

StartTransaction() While Selection.Next() Loop // lukee objektia viittauksella // kirjoittaa objektia EndCycle; CommitTransaction();

  1. ota käyttöön hallittu lukitus umpikujan välttämiseksi
  2. syötä menetelmäkutsu Estä
  3. kääri "kokeile" yllä olevan kuvan mukaisesti

Kuvio:

StartTransaction() While Selection.Next() Loop Attempt Object.Write(); Poikkeusraportti("Kirjoittaminen epäonnistui"); Yrityksen loppu; EndCycle; CommitTransaction();

Tätä tapahtumaa ei enää suoriteta poikkeuksen sattuessa. Kiertoa ei kannata jatkaa. Koodi on kirjoitettava uudelleen alkuperäiseen tehtävään viitaten. Anna vaihtoehtoisesti informatiivisempi virheilmoitus.

Lopulta

Kuten luultavasti jo arvasit, kuulun ihmisiin, jotka rakastavat 1C-alustaa ja sen kehitystä. Tietysti alustasta on valituksia, etenkin Highload-ympäristössä, mutta yleensä sen avulla voit kehittää edullisesti ja nopeasti erittäin laadukkaita yrityssovelluksia. Käyttöönotto ja ORM, GUI, verkkokäyttöliittymä, raportointi ja paljon muuta. Habrén kommenteissa he kirjoittavat yleensä mitä tahansa ylimielistä, joten, kaverit, 1C:n pääongelma ekosysteeminä ei ole alusta tai myyjä. Tämä on liian matala sisääntulokynnys, joka sallii ihmisten, jotka eivät ymmärrä mitä tietokone, tietokanta, asiakas-palvelin, verkko ja kaikki muu on, päästä alalle. 1C on tehnyt yrityssovellusten kehittämisestä liian helppoa. Osaan kirjoittaa 20 minuutissa ostojen/myyntien kirjanpitojärjestelmän joustavilla raporteilla ja web-asiakasohjelmalla. Sen jälkeen minun on helppo ajatella itsestäni, että suuressa mittakaavassa voi kirjoittaa pitkälti samalla tavalla. Jotenkin 1C tekee kaiken sisällään, en tiedä miten, mutta todennäköisesti se tekee sen. Kirjoitan "Aloita tapahtuma ()" ....

Ja tiedäthän – tärkeintä on, että se on ihanaa. 1C:n kehittämisen helppouden ansiosta voit toteuttaa liikeideoita välittömästi ja integroida ne yrityksen prosesseihin. Sitten voit aina refaktoida, tärkeintä on ymmärtää miten. Ja jos yhtäkkiä tarvitset apua "hidas 1C" -tarkastuksessa - ota yhteyttä optimointiasiantuntijoihin. Hän ei ole ollenkaan hidas.

Ryhmän tuottavuus, jossa jokainen työntekijä on paikallaan ja samalla taitavasti vuorovaikutuksessa kollegoiden kanssa, on paljon korkeampi kuin missä, kuten Krylov tapasi sanoa, "Toverien kesken ei ole yksimielisyyttä". Ja melkein jokainen työnantaja haluaa, että hakijalla on sama "ryhmätyötaito".

Keskustelee siitä, mitä tiimin jäsenenä oleminen tarkoittaa ja kuinka voit hyödyntää sitä työnhaussa.

Millainen eläin?

Ensin selvitetään, millainen joukkuepelaaja hän on.

Tietenkin ansioluettelossasi kuvailit kuinka hyvin tulet toimeen kollegoiden kanssa, olet seurallinen, vielä enemmän "luoda joukkue tyhjästä", "jakaa vastuut", "asettaa ja ohjata tehtäviä".

Mutta kysymys kuuluu: kuinka vakuuttaa työnantaja, joka on huolissaan tiimipelaajan löytämisestä haastattelun aikana, että olet juuri se, jota hän tarvitsee?

Tässä, kuten tarinassa muista taidoista, toimi faktoilla. Onko koko osasto saavuttanut myynnin lisäämisen? - Loistava! Tekivätkö he yhdessä yrityksestä tai tuotteesta tunnistettavan markkinoilla? - Mahtavaa! Oletko kirjoittanut osan koodista verkkosivustolle tai sovellukselle? - No, tässä se on!

Lisäksi, kun puhut siitä, mitä onnistuit saavuttamaan, varmista, että monologisi ei sisällä vain pronominia "minä"-käyttö "Me" Ja "meidän". Esimerkiksi, ”Hävisimme tehtävästä laadukkaasti ja asiakas oli tyytyväinen työmme tuloksiin” tai ”Raportointikauden tulosten yhteenvedon jälkeen osastomme valittiin parhaaksi”.

Mutta älä unohda itseäsi. Silti sinä saat työpaikan, ja menestyvän uran rakentaminen edellyttää osuutta itsensä edistämisestä. Selitä siis, minkä panoksen olet antanut yhteisen asian hyväksi. Voit siis kertoa henkilöstöpäällikölle henkilökohtaisista saavutuksistasi. Pystyt korostamaan osaavasi työskennellä yhdessä ja ymmärrät ammattilaistiimin koordinoidun työn tärkeyden.

Joukkuepelit eivät sovi kaikille

Kaikki eivät kuitenkaan tarvitse samaa kykyä ollakseen joukkuepelaaja. Onhan niitä, joiden työhön liittyy tietty autonomia, jossa on tarpeen tehdä itsenäisiä päätöksiä ja saavuttaa yksilöllisiä tuloksia.

Tähän luokkaan kuuluvat ja tutkijat (ellei tietenkään ole kyse tutkimusprojektista, jossa työskentelee useita ihmisiä) (yhdessä leikkauksen suorittavia kirurgia ja sairaanhoitajia voidaan kuitenkin pitää ryhmänä) (poikkeus voidaan laskea tv-toimittajia, jotka työskentelevät osana kuvausryhmää) jne.

On tärkeää ymmärtää itse, kuulutko joukkuepelaajien luokkaan. Ehkä olet yksinäinen ammattilainen, joka hioessaan taitojaan on valmis kilpailemaan kollegoiden kanssa. On tietty luokka työnantajia, jotka suosivat juuri tällaisia ​​työntekijöitä. Ymmärtäen tämän, voit valita itsellesi työn mukavimmissa olosuhteissa ja samalla olla osallistumatta konflikteihin.

Ja jos unelmatyösi yhtäkkiä vaatii sinua vaihtamaan rooliasi, ei ole koskaan liian myöhäistä tehdä muutoksia työtyyliisi.