Hali salama imewekwa kwa ubadilishanaji wa jumla wa xml. Hali salama imewekwa. Operesheni hiyo imepigwa marufuku. Hali salama kwa usindikaji wa nje

Kwa kutumia "Usimamizi wa Biashara 11.3" kama mfano, tutazingatia mchakato rahisi wa kuunganisha fomu ya uchapishaji ya nje. Pia tutazingatia vipengele vya mfumo mpya wa usalama.

Kuruka Haraka

Hatua za awali

Kwanza unapaswa wezesha utendakazi au angalia upatikanaji wake

1. Ingia na haki kamili kwenye hifadhidata ya habari.

2. Nenda kwenye menyu "data na usimamizi mkuu"/Zuia "Utawala"/Amri "Chapisha fomu, ripoti na uchakataji".

Nyongeza

Katika sehemu inayofungua:

Tunaongeza usindikaji kwa kutumia kitufe cha "Unda" (hii ni muhimu) au "Sasisha!" zilizopo:

  • Chagua kwenye orodha (ikiwa haijachaguliwa au tupu, amri haitafanya kazi, lakini haitasema chochote).
  • Bonyeza kitufe cha "Pakia kutoka kwa faili".

Baada ya kuonekana kwa 1C katika usindikaji wa nje, ukaguzi wa usalama ulionekana katika usanidi mpya.

Unapaswa kusakinisha usindikaji tu ulioundwa kwa kujitegemea au kupokea kupitia njia za mawasiliano zinazojulikana (sio kutoka kwa barua, tu kutoka kwa tovuti iliyo na cheti halali, au iliyotolewa na wafanyakazi wa msanidi programu, iliyothibitishwa naye kwa simu).

Ikiwa kila kitu katika usindikaji kimewekwa na msanidi programu, basi "Uwekaji" utawekwa - vitu ambavyo usindikaji utahusika, amri (s) itaonekana.
Ili kufanya kazi, bonyeza tu "Hifadhi na ufunge".

Uchunguzi

Mara baada ya hii, kulingana na aina ya matibabu:

  • Fomu iliyochapishwa inapatikana wakati wa kufungua hati au kutoka kwenye orodha yake (kwa tayari kufungua wakati wa kuifungua tena) kwa kubofya kitufe cha "Chapisha".
  • Uchakataji unapatikana katika sehemu za "Uchakataji wa Ziada" katika kila mfumo mdogo
  • Usindikaji wa kujaza kwa kutumia kitufe cha "Jaza" cha orodha au paneli kuu ya amri ya fomu ya kitu.

Kwa usindikaji hapo juu, uzinduzi utaonekana kama hii:

Ikiwa hati ni mpya, inapaswa kuandikwa chini; utaratibu wa usindikaji wa nje utakuonya kuhusu hili:

Tabia zaidi inategemea utendaji uliojengwa: inawezekana kufungua fomu au tu kuchakata data.

Maonyo ya usalama katika 1C

Matoleo mapya ya jukwaa na usanidi umeongeza ulinzi dhidi ya uzinduzi wa programu hasidi.

Usindikaji unaweza kusababisha Excel kuzindua kupakia, katika hali ambayo mfumo mpya wa usalama pia utakuonya:

Katika kesi hii, msimbo wa kushughulikia umeingiliwa.

Ukibonyeza "Ndiyo", mfumo utakuuliza uendeshe amri tena:

Inawezekana kwa mtumiaji wa infobase kuzima ulinzi dhidi ya vitendo hatari kupitia "Configurator":

Hii haiwezi kubadilishwa kutoka kwa hali ya "Biashara", labda hii ilifanyika kwa makusudi, na inaweza kuonekana baada ya sasisho.

Ikumbukwe pia kwamba ikiwa usindikaji unatumia Excel, lazima iendeshwe kwa hali isiyo salama (hii ilikuwa kesi kabla ya kuanzishwa kwa mfumo mpya, hii inafanya kazi sambamba):

"Imeshindwa kupakia MS EXCEL!!!" "Hali salama imewekwa. Operesheni hiyo ni marufuku"

Katika usindikaji wa nje inaonekana kama hii:

Msanidi anapaswa kuiweka kuwa "Uongo" katika maelezo ya usindikaji wa ndani, basi kila kitu kitakuwa sawa:

Maelezo ya KaziOnExternalProcessing() ExportRegistrationParameters = Muundo Mpya;

Vigezo vya Usajili.Ingiza("Modi Salama", Uongo);

Wakati wa kusasisha usanidi, maandishi ya onyo pia yalionekana kuhusu chanzo ambacho faili ya usanidi ilipatikana: Ukweli ni kwamba wakati wa kutumia toleo la mteja-server la 1C, usindikaji wa nje / ripoti hufunguliwa kwa hali salama, ambayo matumizi ya hali ya upendeleo ni marufuku. Na hali ya upendeleo hutumiwa mara nyingi sana katika usanidi wa kawaida: kizazi cha fomu zilizochapishwa, hundi mbalimbali za huduma (usajili wa kubadilishana), nk. Matokeo yake, hata kutumia ripoti ya mara kwa mara kwenye mfumo wa udhibiti wa upatikanaji bila fomu (kwa default, fomu ya jumla "ReportForm" hutumiwa) na kuhifadhi mipangilio ya ripoti ya desturi (katika saraka sambamba), utapokea kosa kuhusu upatikanaji wa kutosha. haki kwa vipengele mbalimbali na vigezo vya kikao vinavyotumiwa kwa madhumuni rasmi baada ya mstari

SetPrivilegedMode(True);

Ningependa kutambua mara moja kwamba chaguo hili halipendekezi, lakini kutokana na hali mbalimbali linaweza kutumika kwa fomu iliyorahisishwa. Kwa mfano, nina hifadhidata kadhaa katika miji tofauti, moja ya kawaida ya ndani iliyo na haki ndogo, USB iliyofungwa, nk, mahali fulani ninatumia Uhasibu 2.0, na mahali pengine 3.0, mimi hufanya karibu ripoti zote kwa kutumia zana za ACS bila fomu, ili waweze. kufunguliwa katika matoleo yote mawili. Kudumisha ripoti hizi zote kwa matoleo tofauti na hifadhidata tofauti ni kazi kubwa na ni bure, kwa sababu Kuna mipango ya kubadili usanidi mmoja na msingi ...

Wacha tuunde wasifu.
Katika koni ya nguzo, tunaunda wasifu wa usalama ambamo tunaweka bendera "Inaweza kutumika kama wasifu wa usalama wa Njia salama" na " katika sehemu "Ufikiaji kamili unaruhusiwa:" "kwa hali ya upendeleo".

Katika hali nyingi za kutumia ripoti na usindikaji rahisi, njia hii itatumika. Kwa hali ngumu zaidi, hakuna maana katika kuelezea mchakato, kwa sababu imeelezwa katika nyaraka (uwezo wa kusanidi maelezo ya usalama kwa faili maalum za nje kwa kutaja kiasi chake cha hashi, nk).

P.S. Nilidhani kuwa wasifu wa usalama hufanya kazi tu wakati wa kutumia leseni za jukwaa na seva katika kiwango cha CORP, lakini utendakazi huu pia hufanya kazi kwenye jukwaa la 1C:Enterprise 8.3 (inaweza kuitwa PROF kwa masharti, kwa mlinganisho na usanidi wa kawaida Basic/PROF/CORP)

Chapisha (Ctrl+P)

Vitu vya Usanidi

Ikiwa ni muhimu kutumia msimbo wa programu "isiyoaminika" kwenye seva: usindikaji wa nje au msimbo wa programu ulioingizwa na mtumiaji kwa matumizi katika njia za Run () na Calculate (), unaweza kutumia hali ya uendeshaji salama.

Katika hali salama:

  • Hali ya upendeleo imeghairiwa.
  • Inabadilisha hadi hali ya upendeleo kupuuzwa.
  • Imepigwa marufuku shughuli zinazoongoza kwa utumiaji wa njia za nje kuhusiana na 1C: jukwaa la Biashara (pamoja na analogi zisizo za kuzuia za njia maalum):
  • Mbinu za COM:
    • COMOb();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Inapakia vipengele vya nje:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Ufikiaji wa mfumo wa faili:
    • ValueInFile();
    • CopyFile();
    • UnganishaFiles();
    • MoveFile();
    • SplitFile();
    • Unda Saraka();
    • FutaFaili();
    • Faili Mpya;
    • xBase Mpya;
    • EntryHTML.OpenFile();
    • ReadHTML.OpenFile();
    • ReadXML.OpenFile();
    • AndikaXML.OpenFile();
    • ReadingFastInfoset.OpenFile();
    • RecordFastInfoset.OpenFile();
    • CanonicalXMLRecord.OpenFile();
    • TransformXSL.LoadFromFile();
    • AndikaZipFile.Open();
    • ReadingZipFile.Open();
    • New ReadText(), ikiwa parameta ya kwanza ni kamba;
    • ReadText.Open(), ikiwa parameta ya kwanza ni kamba;
    • NewTextRecord(), ikiwa kigezo cha kwanza ni kamba;
    • AndikaText.Open(), ikiwa parameta ya kwanza ni kamba;
    • NewTextExtract();
    • kubadilisha mali ExtractText.FileName;
    • ExtractText.Andika();
    • Picha Mpya(), ikiwa parameta ya kwanza ni kamba;
    • Picha.Andika();
    • BinaryData mpya ();
    • BinaryData.Andika();
    • NewDataRecord(), ikiwa parameta ya kwanza ni kamba;
    • New ReadData(), kuna parameta ya kwanza - kamba;
    • njia zote za kitu cha FileStreamManager;
    • Mtiririko mpya wa faili ();
    • FormattedDocument.Andika();
    • Mpango wa Kijiografia.Soma ();
    • Mpango wa Kijiografia.Andika();
    • Mpango wa Kijiografia.Chapisha();
    • TabularDocument.Soma();
    • TabularDocument.Andika();
    • TabularDocument.Print(); GraphicScheme.Soma();
    • GraphicScheme.Andika();
    • GraphicScheme.Print();
    • NakalaDocument.Soma();
    • NakalaDocument.Andika().
  • Ufikiaji wa mtandao:
    • Muunganisho Mpya wa Mtandao,
    • Barua pepe Mpya ya Mtandaoni,
    • Wakala Mpya wa Mtandao,
    • Muunganisho Mpya wa HTTP,
    • Muunganisho Mpya wa FTP.

TAZAMA! Wakati wa kufanya shughuli zilizopigwa marufuku, ubaguzi hutupwa wakati wa kukimbia.

Kumbuka. Ripoti za nje na uchakataji hufunguliwa kwa kutumia Faili - Menyu ya Fungua hutekelezwa katika hali salama ikiwa mtumiaji hana haki za ufikiaji wa msimamizi.

Nambari ya kuwezesha hali salama lazima ilingane na idadi ya kulemaza. Hata hivyo, ikiwa hali ya usalama iliwashwa ndani ya utaratibu au chaguo za kukokotoa (mara moja au zaidi), lakini haikuzimwa, mfumo utazima kiotomatiki mara nyingi kuliko kuwashwa kwa kutokamilika katika utaratibu au chaguo la kukokotoa lililokuwa limesalia.

Ikiwa katika utaratibu au kazi huita njia WekaModiSafe(Uongo) imepigwa zaidi ya simu za mbinu SetSafeMode(Kweli), basi ubaguzi utatupwa.

Ufungaji wa programu ya hali salama inaweza kuhitajika katika kesi wakati msanidi wa usanidi ana nia ya kutumia msimbo wa programu ya tatu (kuhusiana na usanidi), kuegemea ambayo msanidi hawezi kuthibitisha. Mfano wa msimbo kama huo ni utekelezaji wa njia za Execute() na Compute() katika hali ambapo nambari inayoweza kutekelezwa inapatikana kutoka kwa ulimwengu wa nje. Katika kesi hii, mazoezi mazuri yatakuwa kuweka Njia salama kabla ya kutekeleza njia hizi:

// Nambari ya programu inazalishwa ambayo inapaswa kutekelezwa // Inawezekana kwamba msimbo umepakiwa kutoka kwa vyanzo vya nje // au umeingia kwa manually ExecutableCode = GetExecutedCodeFromExternalWorld (); // Wezesha hali salama SetSafeMode (Kweli); // Tekeleza msimbo unaoweza kuwa hatari Tekeleza(Msimbo unaotekelezwa); // Zima hali salama ya SetSafeMode (Uongo);

Katika baadhi ya matukio, mipangilio ya Hali salama inaweza kukinzana na mipangilio ya Hali ya Upendeleo. Mfano wa mzozo kama huo ni uchapishaji wa hati ambayo hali ya Upendeleo wakati wa kuchapisha mali imewekwa, kutoka kwa msimbo katika lugha iliyojumuishwa ambayo inatekelezwa katika hali salama. Katika kesi hii, hali ya upendeleo imezimwa na majaribio ya kuiwezesha yanapuuzwa. Matokeo yake, msimbo katika lugha iliyoingia, ambayo "huhesabu" kwenye hali ya upendeleo iliyowezeshwa, "hukutana" na kutokuwepo kwake, ambayo husababisha makosa na sababu zisizo wazi za kuonekana kwao. Ili kuzuia hali hii, 1C:Mfumo wa Biashara huzima kiotomatiki hali salama kwa vidhibiti tukio vinavyopatikana katika sehemu ya kipengee au moduli ya kidhibiti, mradi tu msimbo unaoweza kutekelezeka katika lugha iliyojengewa ndani haupo katika kiendelezi cha usanidi. Washughulikiaji vile huwekwa alama kwa njia maalum katika msaidizi wa syntax.

Pia hutoa uwezo wa kuzima Hali salama kutoka kwa lugha iliyojengewa ndani (ikiwa msimbo wa programu unaojaribu kuuzima hauko katika kiendelezi cha usanidi). Ili kuzima hali salama kuna njia WekaDisableSafeMode(). Unaweza kuangalia kuwa hali salama imezimwa kwa sasa (moja kwa moja au kwa kupiga njia) kwa kutumia njia GetDisableSafeMode().

Ndani ya njia moja katika lugha iliyojengewa ndani, hakuwezi kuwa na zaidi ya kiwango kimoja cha kuweka hali salama (kwa kupiga njia ya SetSafeMode()) na kuweka kulemaza kwa hali salama (otomatiki wakati wa utekelezaji wa tukio la kitu cha metadata. washikaji au kwa kupiga njia ya SetSafeModeDisable()). Wakati wa kujaribu kuongeza kiota, ubaguzi hutupwa:

// Matumizi sahihi ya ProcedureProcedureName() SetDisableSafeMode(True);

SetSafeMode(kweli); SetSafeMode(Uongo); SetDisableSafeMode(Uongo); Mwisho wa Utaratibu // Matumizi yasiyo sahihi ya Procedure ProcedureName() SetDisableSafeMode(True);

SetSafeMode(kweli);

SetDisableSafeMode(Uongo); // Isipokuwa EndProcedure ProcedureProcedureName() SetSafeMode(True); SetDisableSafeMode(Uongo); // Utaratibu wa Mwisho wa Isipokuwa Ufunguzi wa programu ya usindikaji wa nje unafanywa kwa kutumia kitu cha muktadha wa kimataifa ExternalProcessing, ambacho kina aina


ExternalProcessingMeneja
. Kwa kila hali ya uendeshaji ya jukwaa la 1C (hali ya maombi ya kawaida na hali ya maombi iliyosimamiwa), mbinu tofauti za kitu hutumiwa kufanya kazi na usindikaji wa nje.

Inaendesha usindikaji wa nje katika hali ya kawaida ya programu

Katika programu ya kawaida, lazima utumie Unda() njia ya kitu cha ExternalProcessing, ambacho hupitishwa jina kamili la faili ya usindikaji wa nje. Njia inarudisha kitu cha aina

Usindikaji wa Nje

, kitu hiki ni usindikaji wa nje unaofunguliwa. Ikiwa unahitaji kufungua fomu ya usindikaji wa nje, kisha piga njia ya GetForm () kwenye kitu kilichopokelewa, ambacho kitarudi fomu kuu, na kisha piga njia ya Open () ili kuifungua.
Inachakata = ExternalProcessing.Create(FullFileName);
Inachakata.GetForm().Fungua();
Katika usindikaji wa nje, fomu kuu lazima iwe mara kwa mara, na fomu iliyodhibitiwa lazima iwe ya ziada, vinginevyo njia ya GetForm () haitafanya kazi katika hali ya kawaida ya maombi.
EndFunction

&OnClient
FullFileName = ""; // Jina kamili la faili ya usindikaji wa nje.
FileData = BinaryData mpya (FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Hali salama kwa usindikaji wa nje

Njia za Unda() na Unganisha() za kitu cha ExternalProcessing zina kigezo kinachoingia cha SafeMode - ishara ya kuunganisha usindikaji wa nje katika hali salama. Ikiwa parameter haijainishwa, uunganisho utafanywa kwa hali salama.
Hali salama imeundwa ili kulinda mfumo kutokana na kutekeleza msimbo wa programu "usioaminika" kwenye seva. Hatari inayoweza kutokea inatokana na uchakataji wa nje au msimbo wa programu uliowekwa na mtumiaji kwa matumizi katika mbinu za Run() na Calculate().
Hali salama inaweka vikwazo vifuatavyo:
  • hali ya upendeleo imeghairiwa ikiwa imewekwa;
  • majaribio ya kuingia katika hali ya upendeleo yanapuuzwa;
  • shughuli na vitu vya COM ni marufuku;
  • kupakia na kuunganisha vipengele vya nje ni marufuku;
  • upatikanaji wa mfumo wa faili ni marufuku (isipokuwa faili za muda);
  • Ufikiaji wa mtandao umepigwa marufuku.
Michakato iliyofunguliwa kwa maingiliano haifanyiki katika hali salama, kwa hivyo inashauriwa kutekeleza utaratibu wa kufungua vichakataji vya nje katika hali salama, na vile vile katika kiwango cha ruhusa ili kumkataza mtumiaji kufungua kwa maingiliano vichakataji vya nje.
Ili kuzuia ufunguzi wa mwingiliano wa usindikaji, katika majukumu yote yaliyotolewa kwa mtumiaji, ni muhimu kuondoa haki "Ufunguzi wa kuingiliana wa usindikaji wa nje" (angalia Mchoro 1).
Kielelezo 1. Haki za kufungua kwa maingiliano usindikaji/ripoti za nje
Haki ya "Ufunguaji mwingiliano wa usindikaji wa nje" haiathiri kitu cha Uchakataji wa Nje kwa njia yoyote ile.

Ufunguzi wa programu wa ripoti za nje ni sawa na uchakataji wa nje, lakini unapaswa kutumia kitu cha muktadha wa kimataifa ExternalReports, ambacho kina aina. Meneja wa Taarifa za Nje.

Wakati wa kusasisha usanidi, maandishi ya onyo pia yalionekana kuhusu chanzo ambacho faili ya usanidi ilipatikana: Ukweli ni kwamba wakati wa kutumia toleo la mteja-server la 1C, usindikaji wa nje / ripoti hufunguliwa kwa hali salama, ambayo matumizi ya hali ya upendeleo ni marufuku. Na hali ya upendeleo hutumiwa mara nyingi sana katika usanidi wa kawaida: kizazi cha fomu zilizochapishwa, hundi mbalimbali za huduma (usajili wa kubadilishana), nk. Matokeo yake, hata kutumia ripoti ya mara kwa mara kwenye mfumo wa udhibiti wa upatikanaji bila fomu (kwa default, fomu ya jumla "ReportForm" hutumiwa) na kuhifadhi mipangilio ya ripoti ya desturi (katika saraka sambamba), utapokea kosa kuhusu upatikanaji wa kutosha. haki kwa vipengele mbalimbali na vigezo vya kikao vinavyotumiwa kwa madhumuni rasmi baada ya mstari

SetPrivilegedMode(True);

Ningependa kutambua mara moja kwamba chaguo hili halipendekezi, lakini kutokana na hali mbalimbali linaweza kutumika kwa fomu iliyorahisishwa. Kwa mfano, nina hifadhidata kadhaa katika miji tofauti, moja ya kawaida ya ndani iliyo na haki ndogo, USB iliyofungwa, nk, mahali fulani ninatumia Uhasibu 2.0, na mahali pengine 3.0, mimi hufanya karibu ripoti zote kwa kutumia zana za ACS bila fomu, ili waweze. kufunguliwa katika matoleo yote mawili. Kudumisha ripoti hizi zote kwa matoleo tofauti na hifadhidata tofauti ni kazi kubwa na ni bure, kwa sababu Kuna mipango ya kubadili usanidi mmoja na msingi ...

Wacha tuunde wasifu.
Katika koni ya nguzo, tunaunda wasifu wa usalama ambamo tunaweka bendera "Inaweza kutumika kama wasifu wa usalama wa Njia salama" na " katika sehemu "Ufikiaji kamili unaruhusiwa:" "kwa hali ya upendeleo".

Katika hali nyingi za kutumia ripoti na usindikaji rahisi, njia hii itatumika. Kwa hali ngumu zaidi, hakuna maana katika kuelezea mchakato, kwa sababu imeelezwa katika nyaraka (uwezo wa kusanidi maelezo ya usalama kwa faili maalum za nje kwa kutaja kiasi chake cha hashi, nk).

P.S. Nilidhani kuwa wasifu wa usalama hufanya kazi tu wakati wa kutumia leseni za jukwaa na seva katika kiwango cha CORP, lakini utendakazi huu pia hufanya kazi kwenye jukwaa la 1C:Enterprise 8.3 (inaweza kuitwa PROF kwa masharti, kwa mlinganisho na usanidi wa kawaida Basic/PROF/CORP)