Paano i-disable ang safe mode sa 1s 8.3. Paano magdagdag ng panlabas na plato ng pag-print o pagproseso. Pagpapatakbo ng panlabas na pagpoproseso sa pinamamahalaang application mode

Ang katotohanan ay kapag ginagamit ang bersyon ng client-server ng 1C, ang panlabas na pagproseso/ulat ay binubuksan sa safe mode, kung saan ipinagbabawal ang paggamit ng privileged mode. At ang privileged mode ay madalas na ginagamit sa mga tipikal na pagsasaayos: pagbuo ng mga naka-print na form, iba't ibang mga pagsusuri sa serbisyo (pagpaparehistro ng mga palitan), atbp. Bilang resulta, kahit na gumamit ng regular na ulat sa sistema ng kontrol sa pag-access nang walang form (bilang default, ginagamit ang pangkalahatang form na "ReportForm") at pag-save ng mga setting ng custom na ulat (sa kaukulang direktoryo), makakatanggap ka ng error tungkol sa hindi sapat na pag-access karapatan sa iba't ibang mga constant at mga parameter ng session na ginagamit para sa mga opisyal na layunin pagkatapos ng linya SetPrivilegedMode(True) ;

Ang "tamang" solusyon ay ang pagkonekta ng panlabas na pagpoproseso at mga ulat sa pamamagitan ng BSP na "Mga karagdagang ulat at pagproseso" na mga mekanismo na may hindi pagpapagana ng safe mode o pagdaragdag ng mga pahintulot (sa aking opinyon, mula sa bersyon 2.2.2.1 ng BSP). Ngunit kung sa ilang kadahilanan ay kinakailangan na gumamit ng panlabas na pag-uulat/pagproseso ng mga file, maaari kang mag-configure ng isang profile ng seguridad ng cluster na ginamit bilang isang profile ng seguridad ng safe mode para sa isang partikular na infobase.

Nais kong agad na tandaan na ang pagpipiliang ito ay hindi mas kanais-nais, ngunit dahil sa iba't ibang mga pangyayari maaari itong magamit sa isang pinasimpleng anyo. Halimbawa, mayroon akong ilang mga database sa iba't ibang mga lungsod, isang karaniwang lokal na may mahigpit na limitadong mga karapatan, saradong USB, atbp., sa isang lugar na ginagamit ko ang Accounting 2.0, at sa isang lugar na 3.0, gumagawa ako ng halos lahat ng mga ulat gamit ang mga tool ng ACS na walang mga form, upang sila ay binuksan sa parehong bersyon. Ang pagpapanatili ng lahat ng mga ulat na ito para sa iba't ibang mga bersyon at iba't ibang mga database ay labor-intensive at walang saysay, dahil May mga planong lumipat sa iisang configuration at base...

Gumawa tayo ng profile.
Sa cluster console, lumikha kami ng profile ng seguridad kung saan itinatakda namin ang mga flag "Maaaring gamitin bilang isang safe mode na profile sa seguridad" at " sa seksyong "Pinapayagan ang buong pag-access:" "sa privileged mode".

Sa maraming kaso ng paggamit ng mga ulat at simpleng pagpoproseso, ang paraang ito ay malalapat. Para sa mas kumplikadong mga sitwasyon, walang punto sa paglalarawan ng proseso, dahil ito ay nakabalangkas sa dokumentasyon (ang kakayahang i-configure ang mga profile ng seguridad para sa mga partikular na panlabas na file sa pamamagitan ng pagtukoy sa halaga ng hash nito, atbp.).

P.S. Akala ko ay gumagana lang ang mga profile ng seguridad kapag gumagamit ng mga lisensya ng platform at server sa antas ng CORP, ngunit gumagana din ang functionality na ito sa 1C:Enterprise 8.3 platform (maaari itong tawaging PROF na may kundisyon, ayon sa pagkakatulad sa mga karaniwang configuration na Basic/PROF/CORP)

Gamit ang "Trade Management 11.3" bilang isang halimbawa, isasaalang-alang namin ang isang simpleng proseso ng pagkonekta sa isang panlabas na form sa pag-print. Isasaalang-alang din namin ang mga tampok ng bagong sistema ng seguridad.

Mabilis na Tumalon

Mga paunang aksyon

Una dapat paganahin ang functionality o tingnan ang availability nito

1. Mag-log in nang may ganap na karapatan sa database ng impormasyon.

2. Pumunta sa menu na “Master data and administration”/Block “Administration”/Command “Printed forms, reports and processing”.

Dagdag

Sa seksyong magbubukas:

Nagdaragdag kami ng pagproseso gamit ang "Lumikha" na buton (ito ay mahalaga) o "I-update!" umiiral:

  • Piliin ito sa listahan (kung hindi napili o walang laman, ang utos ay hindi gagana, ngunit walang sasabihin).
  • I-click ang button na “Mag-load mula sa file”.

Pagkatapos ng paglitaw para sa 1C sa panlabas na pagproseso, lumitaw ang mga pagsusuri sa seguridad sa mga bagong configuration.

Dapat mong i-install lamang ang pagpoproseso na ginawa nang nakapag-iisa o natanggap sa pamamagitan ng mga kilalang channel ng komunikasyon (hindi mula sa mail, mula lamang sa isang website na may wastong sertipiko, o ibinigay ng mga empleyado ng developer, na kinumpirma niya sa pamamagitan ng telepono).

Kung ang lahat ng bagay sa pagproseso ay inireseta ng developer, pagkatapos ay "Placement" ay itatakda - ang mga bagay kung saan ang pagproseso ay kasangkot, ang (mga) command ay lilitaw.
Upang magtrabaho, i-click lamang ang "I-save at isara".

Pagsusulit

Kaagad pagkatapos nito, depende sa uri ng paggamot:

  • Nagiging available ang naka-print na form kapag binubuksan ang isang dokumento o mula sa listahan nito (para sa nakabukas na kapag binubuksan itong muli) sa pamamagitan ng pag-click sa pindutang "I-print".
  • Available ang pagproseso sa mga seksyong "Karagdagang Pagproseso" sa bawat subsystem
  • Pagproseso ng pagpuno gamit ang "Fill" na buton ng listahan o ang pangunahing command panel ng object form.

Para sa pagproseso sa itaas, ang paglulunsad ay magiging ganito:

Kung ang dokumento ay bago, dapat itong isulat sa panlabas na mekanismo ng pagpoproseso ay magbibigay ng babala sa iyo tungkol dito:

Ang karagdagang pag-uugali ay nakasalalay sa built-in na pag-andar: posible na magbukas ng isang form o magproseso lamang ng data.

Mga babala sa seguridad sa 1C

Ang mga bagong paglabas at pagsasaayos ng platform ay nagpapataas ng proteksyon laban sa paglulunsad ng mga nakakahamak na programa.

Ang pagpoproseso ay maaaring maging sanhi ng paglulunsad ng Excel na mag-load, kung saan babalaan ka rin ng bagong subsystem ng seguridad:

Sa kasong ito, naaantala ang handler code.

Kung na-click mo ang "Oo", hihilingin sa iyo ng system na patakbuhin muli ang command:

Posible para sa isang user ng infobase na huwag paganahin ang proteksyon mula sa mga mapanganib na pagkilos sa pamamagitan ng "Configurator":

Hindi ito mababago mula sa mode na "Enterprise", marahil ito ay ginawa nang kusa, at maaaring lumitaw pagkatapos ng pag-update.

Dapat ding tandaan na kung ang pagproseso ay gumagamit ng Excel, dapat itong tumakbo sa hindi ligtas na mode (ito ang kaso bago ang pagpapakilala ng bagong system, ito ay gumagana nang magkatulad):

"Hindi ma-load ang MS EXCEL!!!" “Nakatakda na ang safe mode. Ipinagbabawal ang operasyon"

Sa panlabas na pagproseso, ganito ang hitsura:

Dapat itong itakda ng developer sa "False" sa panloob na paglalarawan ng pagproseso, pagkatapos ay magiging maayos ang lahat:

Function InformationOnExternalProcessing() ExportRegistrationParameters = Bagong Structure;

Mga Parameter ng Pagpaparehistro.Insert("SafeMode", False);

Kapag ina-update ang configuration, lumabas din ang text ng babala tungkol sa pinagmulan kung saan nakuha ang configuration file:

I-print (Ctrl+P)

Mga Bagay sa Configuration

Kung kinakailangang gumamit ng “untrusted” program code sa server: external processing o program code na ipinasok ng user para gamitin sa Run() at Calculate() na pamamaraan, maaari mong gamitin ang safe operating mode.

  • Sa safe mode: Privileged mode.
  • kinansela Lumipat sa privileged mode.
  • hindi pinansin Ipinagbabawal
  • mga operasyon na humahantong sa paggamit ng mga panlabas na paraan na may kaugnayan sa 1C:Enterprise platform (kabilang ang mga non-block na analogue ng mga tinukoy na pamamaraan):
    • Mga mekanismo ng COM:
    • COMObject();
    • GetCOMObject();
  • WrapperHTMLDocument.GetCOMObject().
    • Naglo-load ng mga panlabas na bahagi:
    • LoadExternalComponent();
  • ConnectExternalComponent().
    • Access sa file system:
    • ValueInFile();
    • CopyFile();
    • MergeFiles();
    • MoveFile();
    • SplitFile();
    • CreateDirectory();
    • DeleteFiles();
    • Bagong File;
    • Bagong xBase;
    • EntryHTML.OpenFile();
    • ReadHTML.OpenFile();
    • ReadXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadingFastInfoset.OpenFile();
    • RecordFastInfoset.OpenFile();
    • CanonicalXMLRecord.OpenFile();
    • TransformXSL.LoadFromFile();
    • WriteZipFile.Open();
    • ReadingZipFile.Open();
    • ReadText.Open(), kung ang unang parameter ay isang string;
    • NewTextRecord(), kung ang unang parameter ay isang string;
    • WriteText.Open(), kung ang unang parameter ay isang string;
    • NewTextExtract();
    • pagpapalit ng property na ExtractText.FileName;
    • ExtractText.Write();
    • Bagong Larawan(), kung ang unang parameter ay isang string;
    • Picture.Write();
    • bagong BinaryData();
    • BinaryData.Write();
    • NewDataRecord(), kung ang unang parameter ay isang string;
    • Bagong ReadData(), mayroong isang unang parameter - isang string;
    • lahat ng mga pamamaraan ng object ng FileStreamManager;
    • Bagong FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • TabularDocument.Read();
    • TabularDocument.Write();
    • TabularDocument.Print(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDocument.Read();
    • TextDocument.Write().
  • Internet access:
    • Bagong Koneksyon sa Internet,
    • Bagong InternetMail,
    • Bagong InternetProxy,
    • Bagong HTTPConnection,
    • Bagong FTPConnection.

PANSIN! Kapag nagsasagawa ng mga ipinagbabawal na operasyon, ang isang pagbubukod ay itinapon sa runtime.

Tandaan. Ang mga panlabas na ulat at pagproseso ay binuksan gamit ang File - Open menu ay isinasagawa sa safe mode kung ang user ay walang mga administratibong karapatan sa pag-access.

Ang dami ng beses na naka-on ang safe mode ay dapat tumugma sa dami ng beses na naka-off ito. Gayunpaman, kung na-on ang safe mode sa loob ng isang procedure o function (isang beses o higit pa), ngunit hindi na-off, awtomatikong magsasara ang system nang maraming beses hangga't may mga hindi kumpletong pag-on sa procedure o function na natitira.

Kung sa isang procedure o function ay tumatawag ng method SetSafeMode(False) gumawa ng higit sa method calls SetSafeMode(True), pagkatapos ay itatapon ang isang pagbubukod.

Maaaring kailanganin ang pag-install ng software ng safe mode sa kaso kapag ang developer ng configuration ay nagnanais na gumamit ng third-party (kaugnay ng configuration) program code, ang pagiging maaasahan na hindi magagarantiya ng developer. Ang isang halimbawa ng naturang code ay ang pagpapatupad ng Execute() at Compute() na mga pamamaraan sa mga kaso kung saan ang executable code ay nakuha mula sa labas ng mundo. Sa kasong ito, isang magandang kasanayan ang magtakda ng Safe Mode bago isagawa ang mga pamamaraang ito:

// Ang code ng programa ay nabuo na dapat isagawa // Posibleng ang code ay na-load mula sa mga panlabas na mapagkukunan // o manu-manong ipinasok ExecutableCode = GetExecutedCodeFromExternalWorld(); // Paganahin ang safe mode SetSafeMode(True); // Ipatupad ang potensyal na mapanganib na code Execute(ExecutableCode); // I-off ang safe mode SetSafeMode(False);

Sa ilang mga kaso, ang mga setting ng Safe Mode ay maaaring sumalungat sa mga setting ng Privileged Mode. Ang isang halimbawa ng naturang salungatan ay ang pag-post ng isang dokumento kung saan nakatakda ang Privileged mode kapag nagpo-post ng property, mula sa code sa built-in na wika na isinasagawa sa safe mode. Sa kasong ito, ang privileged mode ay hindi pinagana at ang mga pagtatangka na paganahin ito ay binabalewala. Bilang resulta, ang code sa naka-embed na wika, na "nagbibilang" sa pinaganang privileged mode, ay "nakaharap" sa kawalan nito, na humahantong sa mga error na may hindi halatang mga dahilan para sa kanilang hitsura. Upang maiwasan ang sitwasyong ito, awtomatikong dini-disable ng 1C:Enterprise system ang safe mode para sa mga tagapangasiwa ng kaganapan na available sa object module o manager module, sa kondisyon na ang executable code sa built-in na wika ay hindi matatagpuan sa configuration extension. Ang mga naturang handler ay minarkahan sa isang espesyal na paraan sa syntax assistant.

Nagbibigay din ito ng kakayahang i-disable ang Safe Mode mula sa built-in na wika (kung ang program code na sinusubukang i-disable ito ay wala sa isang configuration extension). Upang hindi paganahin ang safe mode mayroong isang paraan SetDisableSafeMode(). Maaari mong suriin na ang safe mode ay kasalukuyang hindi pinagana (awtomatikong o sa pamamagitan ng pagtawag sa isang paraan) gamit ang pamamaraan GetDisableSafeMode().

Sa loob ng isang paraan sa built-in na wika, hindi maaaring magkaroon ng higit sa isang antas ng nesting ng pagtatakda ng safe mode (sa pamamagitan ng pagtawag sa SetSafeMode() method) at pagtatakda ng hindi pagpapagana ng safe mode (awtomatikong sa panahon ng pagpapatupad ng mga event handler ng metadata object o sa pamamagitan ng pagtawag sa SetDisableSafeMode() method). Kapag sinusubukang dagdagan ang nesting, itinapon ang isang pagbubukod:

// Tamang paggamit ng ProcedureProcedureName() SetDisableSafeMode(True);

SetSafeMode(totoo); SetSafeMode(False); SetDisableSafeMode(False); End of Procedure // Maling paggamit ng Procedure ProcedureName() SetDisableSafeMode(True);

SetSafeMode(totoo);

SetDisableSafeMode(False); // Exception EndProcedure ProcedureProcedureName() SetSafeMode(True); SetDisableSafeMode(False); // Exception EndProcedure Ang programmatic na pagbubukas ng panlabas na pagproseso ay isinasagawa gamit ang global context object na ExternalProcessing, na mayroong uri


ExternalProcessingManager
. Para sa bawat operating mode ng 1C platform (regular application mode at managed application mode), iba't ibang object method ang ginagamit para gumana sa external processing.

Pagpapatakbo ng panlabas na pagpoproseso sa normal na mode ng aplikasyon

Sa isang karaniwang application, dapat mong gamitin ang Create() na paraan ng ExternalProcessing object, na ipinapasa ang buong pangalan ng external processing file. Ang pamamaraan ay nagbabalik ng isang bagay ng uri

Panlabas na Pagproseso

, ang bagay na ito ay ang panlabas na pagproseso na binubuksan. Kung kailangan mong magbukas ng external processing form, pagkatapos ay tawagan ang GetForm() method sa natanggap na object, na magbabalik ng main form, at pagkatapos ay tawagan ang Open() method para buksan ito.
Processing = ExternalProcessing.Create(FullFileName);
Processing.GetForm().Open();
Sa panlabas na pagproseso, ang pangunahing form ay dapat palaging isang regular, at ang kinokontrol na form ay dapat palaging isang karagdagang isa, kung hindi, ang GetForm() na paraan ay hindi gagana sa normal na mode ng aplikasyon.
EndFunction

&OnClient
FullFileName = ""; // Buong pangalan ng external processing file.
FileData = bagong BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Safe mode para sa panlabas na pagproseso

Ang Create() at Connect() na mga paraan ng ExternalProcessing object ay may papasok na parameter na SafeMode - isang senyales ng pagkonekta ng external processing sa safe mode. Kung ang parameter ay hindi tinukoy, ang koneksyon ay gagawin sa secure na mode.
Ang safe mode ay idinisenyo upang protektahan ang system mula sa pag-execute ng “untrusted” program code sa server. Ang potensyal na panganib ay nagmumula sa panlabas na pagproseso o program code na ipinasok ng user para gamitin sa Run() at Calculate() na mga pamamaraan.
Ang safe mode ay nagpapataw ng mga sumusunod na paghihigpit:
  • ang privileged mode ay kinansela kung ito ay na-install;
  • ang mga pagtatangka na pumasok sa privileged mode ay binabalewala;
  • ang mga operasyon na may mga bagay na COM ay ipinagbabawal;
  • ipinagbabawal ang paglo-load at pagkonekta sa mga panlabas na bahagi;
  • ang pag-access sa file system ay ipinagbabawal (maliban sa mga pansamantalang file);
  • Ang internet access ay ipinagbabawal.
Ang mga prosesong binuksan nang interactive ay hindi ginaganap sa safe mode, samakatuwid inirerekumenda na ipatupad ang isang mekanismo para sa pagbubukas ng mga panlabas na processor sa safe mode, pati na rin sa antas ng pahintulot upang ipagbawal ang user mula sa interactive na pagbubukas ng mga panlabas na processor.
Upang ipagbawal ang interactive na pagbubukas ng pagproseso, sa lahat ng mga tungkuling itinalaga sa user, kinakailangang alisin ang tamang "Interactive na pagbubukas ng panlabas na pagproseso" (tingnan ang Larawan 1).
Figure 1. Mga karapatan sa interactive na buksan ang panlabas na pagproseso/ulat
Ang "Interactive na pagbubukas ng panlabas na pagpoproseso" ay hindi nakakaapekto sa External Processing object sa anumang paraan.

Ang programmatic na pagbubukas ng mga panlabas na ulat ay katulad ng panlabas na pagpoproseso, ngunit dapat mong gamitin ang pangkalahatang object ng konteksto na ExternalReports, na may uri ExternalReportsManager.

Kapag pinatakbo mo ang programa sa Pag-upload ng Dokumento bilang isang regular na user, ang error na "Nakatakda ang Safe mode. Ipinagbabawal ang operasyon."

Ang kahirapan na ito ay lumitaw dahil Walang sapat na mga karapatan upang simulan ang panlabas na pagproseso. Upang i-configure ang mga karapatan sa pag-access, mag-log in sa database sa 1C Enterprise mode sa ngalan ng Tagapangasiwa at pumunta sa section Mga setting ng user at mga karapatan / I-access ang mga profile ng pangkat, i-click Gumawa ng grupo.

Ilagay ang pangalan ng pangkat at lagyan ng check ang mga kahon para sa mga tungkuling magagamit ng mga gumagamit ng pangkat na ito -

  • Interactive na pagbubukas ng mga panlabas na ulat at pagproseso
  • Paggamit ng mga karagdagang ulat at pagproseso

I-click I-save at isara


Bumalik sa menu ng Mga User at piliin mula sa listahan ang empleyado na gagana sa programang Pag-upload ng Dokumento. I-click ang Mga Pahintulot. Sa listahan ng mga profile, piliin ang naunang ginawang profile. I-click Isulat mo.


Upang masimulan ng mga user ang pagproseso, inirerekomendang idagdag ang Pag-load ng Dokumento sa listahan ng panlabas na pagproseso. Upang gawin ito sa menu Pangangasiwa / Mga naka-print na form at pagproseso / Karagdagang mga ulat at pagproseso lumikha ng bagong pagproseso. Tukuyin ang path sa file na "Download Documents.epf" at magtalaga ng pangalan. Tukuyin ang lokasyon ng pagpoproseso sa menu, kung saan maaaring ilunsad ito ng user sa ibang pagkakataon, halimbawa, piliin ang menu Mga direktoryo

Sa pamamagitan ng pag-click sa item na Mabilis na pag-access, ipinapahiwatig mo kung sinong mga user ang may access sa pagproseso:


Pagkatapos mag-set, mag-click I-save at isara. Upang simulan ang pagproseso, kakailanganin lamang ng mga user na muling ipasok ang database at buksan ito mula sa menu ng pag-access (sa halimbawa - Mga Direktoryo) at i-click Ipatupad.


Bukas Menu - Lahat ng function.... at hanapin ang opsyon na "Ginamit ang mga profile sa seguridad" sa listahan.


I-uncheck lang ang opsyong "Ginamit ang mga profile sa seguridad".


Pagkatapos nito, matagumpay na ilulunsad ang programa.