Domov / Návody pre Windows / 1s 8.2 nemôže nainštalovať núdzový režim. Núdzový režim je nastavený. Operácia je zakázaná. Spustenie externého spracovania v normálnom aplikačnom režime

1s 8.2 nemôže nainštalovať núdzový režim. Núdzový režim je nastavený. Operácia je zakázaná. Spustenie externého spracovania v normálnom aplikačnom režime

Keď spustíte program Download Documents ako bežný používateľ, objaví sa chyba „Je nastavený núdzový režim. Prevádzka je zakázaná.“

Táto ťažkosť vzniká preto, že nie je dostatok práv na začatie externého spracovania. Ak chcete nastaviť prístupové práva, prejdite do databázy v režime 1C Enterprise v mene používateľa správca a prejdite do sekcie Nastavenia používateľov a práv / prístupové skupinové profily, kliknite Ak chcete vytvoriť skupinu.

Zadajte názov skupiny a začiarknite políčka k dispozícii používateľom táto skupina rolí -

  • Interaktívne otváranie externých reportov a ich spracovanie
  • Využitie dodatočných prehľadov a spracovania

Kliknite Napíšte a zatvorte


Vráťte sa do ponuky Používatelia a zo zoznamu vyberte zamestnanca, ktorý bude pracovať s programom Nahrávanie dokumentov. Kliknite na položku Povolenia. V zozname profilov označte predtým vytvorený profil. Kliknite horieť.


Aby používatelia mohli začať spracovávať, odporúča sa pridať Odovzdanie dokumentu do zoznamu externých spracovaní. K tomu menu Administrácia / Tlač formulárov a spracovanie / Doplnkové zostavy a spracovanie vytvoriť nové spracovanie. Zadajte cestu k súboru „DocumentUpload.epf“ a pomenujte ho. V menu zadajte umiestnenie spracovania, odkiaľ ho môže používateľ v budúcnosti spustiť, napríklad vyberte menu Referenčná literatúra

Kliknutím na položku Rýchly prístup určíte, ktorým používateľom je k dispozícii spracovanie:


Po nastavení kliknite Napíšte a zatvorte. Na spustenie spracovania budú používatelia musieť znova vstúpiť do databázy a otvoriť ju z prístupovej ponuky (v príklade - Adresáre) a kliknúť Bežať.


OTVORENÉ Menu - Všetky funkcie... a v zozname nájdite možnosť „Používanie bezpečnostných profilov“.


Stačí odškrtnúť možnosť „Používajú sa bezpečnostné profily“.


Potom sa program úspešne spustí.

Objav softvéru externé spracovanie sa vykonáva pomocou objektu globálneho kontextu ExternalProcessing, ktorý má typ ExternalProcessingManager. Pre každý prevádzkový režim platformy 1C (režim pravidelná aplikácia a režim riadenej aplikácie). rôzne metódy objekt pre prácu s externým spracovaním.

Spustenie externého spracovania v normálnom aplikačnom režime

V typickej aplikácii musíte použiť metódu Create() objektu ExternalProcessing, ktorej sa odovzdá úplný názov súboru externalprocessing. Metóda vracia objekt typu Externé spracovanie, tento objekt je otvorené externé spracovanie. Ak potrebujete otvoriť formulár externého spracovania, zavolajte metódu GetForm() prijatého objektu, ktorá vráti hlavný formulár, a potom zavolajte metódu Open() na jeho otvorenie.


Spracovanie = ExternalProcessings.Create(FullFileName);
Processing.GetForm().Open();

Pri externom spracovaní by hlavný formulár mal byť vždy bežný a spravovaný by mal byť vždy doplnkový, inak metóda GetForm() nebude fungovať v normálnom aplikačnom režime.

Spustite externé spracovanie v režime riadenej aplikácie

V režime riadené formuláre existuje rozdelenie algoritmu podľa kontextu vykonávania. Na klientovi získame binárne dáta podľa celého názvu externého spracovateľského súboru. Prijaté binárne dáta prenesieme na server a uložíme ich do dočasného úložiska. Ďalej je potrebné zavolať metódu Connect() objektu ExternalProcessing, ktorému sa odovzdá adresa dočasného úložiska. Metóda vráti názov pripojeného externého spracovania. Vrátime názov externého spracovania na klienta, vytvoríme reťazec cestu k formuláru spracovania a pomocou metódy OpenForm() otvoríme formulár externého spracovania.

&Na serveri
Funkcia GetExternalProcessName(BinaryData).
AddressInTempStorage = PlaceInTempStorage(BinaryData);
Return ExternalProcessing.Connect(AddressInTempStorage);
EndFunctions

&AtClient
FullFileName = ""; // Úplný názov súboru externého spracovania.
FileData = New BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Núdzový režim pre externé spracovanie

Metódy Create() a Connect() objektu ExternalProcessing majú vstupný parameter SafeMode, ktorý označuje, že externé spracovanie je pripojené v núdzovom režime. Ak parameter nie je zadaný, pripojenie sa uskutoční v zabezpečenom režime.
Bezpečnostný mód operácia je navrhnutá tak, aby chránila systém pred spustením "nedôveryhodného" programového kódu na serveri. Potenciálne nebezpečenstvo predstavuje externé spracovanie alebo kód programu zadaný používateľom na použitie v metódach Execute () a Calculate ().
Núdzový režim má nasledujúce obmedzenia:
  • privilegovaný režim sa zruší, ak bol nastavený;
  • pokusy o vstup do privilegovaného režimu sa ignorujú;
  • operácie s objektmi COM sú zakázané;
  • nakladanie a pripojenie externých komponentov je zakázané;
  • zakázaný prístup k systém súborov(okrem dočasných súborov);
  • prístup na internet je zakázaný.
Spracovania otvorené interaktívne sa nevykonávajú v núdzovom režime, preto sa odporúča implementovať mechanizmus otvárania externého spracovania v núdzovom režime, ako aj zakázať používateľovi otvárať externé spracovanie interaktívne na úrovni práv.
Aby sa zakázalo interaktívne otváranie spracovaní, vo všetkých rolách priradených používateľovi je potrebné odstrániť právo „Interaktívne otváranie externých spracovaní“ (pozri obrázok 1).
Obrázok 1. Práva na interaktívne otváranie externého spracovania/správ
Právo „Interaktívne otvorené externé spracovanie“ nijako neovplyvňuje objekt ExternalProcessing.

Programové otváranie externých zostáv je podobné externému spracovaniu, ale mali by ste použiť objekt globálneho kontextu ExternalReports, ktorý je typu ExternalReportsManager.

S vydaním platformy 8.3.9.2033 sa objavil nový mechanizmus "Ochrana pred nebezpečnými akciami".

Vďaka tejto inovácii teraz 1C začala prisahať pri otvorení spracovania (a nielen):

Bezpečnostné varovanie

Otvorí "Moje externé spracovanie" zo súboru "My_External_Processing.epf"

Odporúča sa venovať pozornosť zdroju, z ktorého boli prijaté daný súbor. Ak neexistuje dohoda so zdrojom o vývoji ďalších modulov alebo existujú pochybnosti o obsahu súboru, neodporúča sa ho otvárať, pretože to môže poškodiť počítač a údaje.

Povoliť otvorenie tohto súboru?

1C sa teda rozhodla bojovať proti škodlivému kódu!

Odkiaľ príde tento? škodlivý kód» v podniku je stále záhadou)

Medzi potenciálne nebezpečné činnosti patria:

  • Načítanie externého reportu, spracovania alebo rozšírenia konfigurácie.
  • Načítavanie alebo aktualizácia konfigurácie/rozšírenia.
  • Prístup z externej zostavy/spracovania alebo rozšírenia k nasledujúcim funkciám:
  • Vykonanie príkazu operačného systému.
  • Správa používateľov (zaznamenávanie alebo odstraňovanie informácií o používateľovi informačnú základňu).
  • Volanie metódy Connect() manažéra externého spracovania (správ).
  • Volanie metódy ConfigurationExtension.Write().
  • Práca s COM-objektmi.

Ako sa dá tento „zázrak“ vypnúť?

Ak to chcete urobiť, musíte spustiť 1C Enterprise v režime konfigurátora.
Vyberte ponuku "Správa" - "Používatelia".
V otvorenom okne našich používateľov musíte otvoriť okno používateľských nastavení a na karte „Všeobecné“ odstrániť vtáka "Ochrana pred nebezpečnými akciami"

Existujú aj iné spôsoby, ako to vypnúť:

Implementovaná možnosť zadať zoznam infobáz, pri práci s ktorými bude vypnutá ochrana pred nebezpečnými akciami.
Za túto funkciu Reaguje parameter DisableUnsafeActionProtection v súbore conf.cfg, ktorý umožňuje vypnúť mechanizmus ochrany pred nebezpečnými akciami pre všetkých používateľov určitých infobáz, ktorých reťazce pripojenia sa zhodujú s maskami špecifikovanými v parametri DisableUnsafeActionProtection.

AT daný parameter Môžete zadať niekoľko masiek oddelených symbolom „;“, napríklad:

DisableUnsafeActionProtection=test_.*;stage_.*;

Okrem toho je možné programovo vypnúť ochranu pred nebezpečnými akciami používateľa, pre ktoré sú k dispozícii nasledujúce parametre a vlastnosti:

  • Parameter ProtectionFromDangerousActions metód Connect() externých manažérov spracovania (správ)
  • Vlastnosť SafeActionProtection objektu ConfigurationExtension pred volaním metódy Write() tohto objektu.

Kontrola potreby ochrany pred nebezpečnými činnosťami sa vykonáva v nasledujúcom poradí:

1. Ak je pre aktuálneho používateľa začiarknuté políčko „Ochrana pred nebezpečnými akciami“, ochrana sa považuje za vypnutú.

2. Ak sa reťazec pripojenia infobase zhoduje s jednou zo šablón špecifikovaných v parametri DisableUnsafeActionProtection súboru conf.cfg, ochrana sa považuje za zakázanú.

3. Ak je ochrana explicitne vypnutá pomocou parametra Ochrana pred nebezpečnými akciami externého spracovania alebo správy.

4. Ak je ochrana explicitne zakázaná pomocou vlastnosti rozšírenia ProtectionFromDangerousActions.

Na príklade Trade Management 11.3 zvážime jednoduchý proces pripojenia externého tlačená forma. Zvážime aj vlastnosti nového bezpečnostného systému.

Rýchly prechod

Predbežné opatrenia

Na začiatok by ste mali povoliť funkčnosť alebo skontrolujte dostupnosť

1. Máme plné práva na informačnú základňu.

2. Prejdite do menu "NSI a správa" / Blok "Správa" / Príkaz "Tlač formulárov, zostáv a spracovanie".

Dodatok

V otvorenej sekcii:

Pridajte spracovanie pomocou tlačidla "Vytvoriť" (to je dôležité) alebo "Aktualizovať!" existujúce:

  • Vyberte ho v zozname (ak nie je označený alebo prázdny, príkaz nebude fungovať, ale nebude nič hovoriť).
  • Kliknite na tlačidlo "Načítať zo súboru".

Po objavení sa pre 1C v externom spracovaní sa bezpečnostné kontroly objavili v nových konfiguráciách.

Mali by ste nainštalovať iba spracovanie vytvorené nezávisle alebo prijaté prostredníctvom známych komunikačných kanálov (nie z pošty, iba zo stránky s platným certifikátom alebo poskytnuté zamestnancami vývojára, ním potvrdené telefonicky).

Ak je všetko napísané v spracovaní vývojárom, potom sa nastaví "Placement" - objekty, na ktorých sa bude spracovanie podieľať, objaví sa príkaz (príkazy).
Ak chcete pracovať, bude stačiť kliknúť na „Nahrať a zavrieť“.

Vyšetrenie

Ihneď potom, v závislosti od typu spracovania:

  • Tlačový formulár sa sprístupní po otvorení dokumentu alebo z jeho zoznamu (pre už otvorený dokument pri opätovnom otvorení) kliknutím na tlačidlo "Tlačiť".
  • Ošetrenia sú dostupné v sekciách " Dodatočné spracovanie» v každom podsystéme
  • Spracovanie vyplnenia tlačidlom "Vyplniť" zoznamu alebo hlavného príkazového panela formulára objektu.

Pre vyššie uvedené spracovanie bude spustenie vyzerať takto:

Ak je dokument nový, mal by byť zaznamenaný, mechanizmus externého spracovania vás na to upozorní:

Ďalšie správanie závisí od vlastnej funkcionality: je možné otvoriť formulár alebo jednoduché spracovanie údajov.

Bezpečnostné upozornenia v 1C

V nových vydaniach platformy a konfigurácií bola posilnená ochrana pred spustením škodlivých programov.

Spracovanie môže spôsobiť, že sa Excel začne načítavať, v takom prípade vás nový bezpečnostný subsystém tiež upozorní:

V tomto prípade je kód obsluhy prerušený.

Ak kliknete na „Áno“, systém vás požiada o opätovné zavolanie príkazu:

Používateľ infobase môže vypnúť ochranu pred nebezpečnými akciami prostredníctvom konfigurátora:

Z režimu "Enterprise" sa to nedá zmeniť, možno to bolo urobené zámerne, môže sa to objaviť po aktualizácii.

Mali by ste si tiež uvedomiť, že ak spracovanie používa Excel, musí sa spustiť v nebezpečnom režime (takto to bolo pred zavedením nového systému, funguje to paralelne):

"Nedá sa načítať MS EXCEL!!!" „Bezpečný režim je nastavený. Prevádzka je zakázaná"

Pri externom spracovaní to vyzerá takto:

Vývojár by ho mal v popise interného spracovania nastaviť na „False“, potom bude všetko v poriadku:

ExternalProcessingDetails() ExportRegistrationParameters = Nová štruktúra; RegistrationParameters.Insert("SafeMode", False);

Pri aktualizácii konfigurácie sa objavil aj varovný text o zdroji, z ktorého bol konfiguračný súbor získaný:

Tlačiť (Ctrl+P)

Konfiguračné objekty

Ak je potrebné na serveri použiť „nedôveryhodný“ programový kód: externé spracovanie alebo programový kód zadaný používateľom na použitie v metódach Execute() a Calculate(), môžete použiť bezpečný režim prevádzky.

V núdzovom režime:

  • Privilegovaný režim zrušené.
  • Prepnutie do privilegovaného režimu ignoroval.
  • Zakázané operácie, ktoré vedú k používaniu externých nástrojov vo vzťahu k platforme 1C:Enterprise (vrátane neblokujúcich analógov vyššie uvedených metód):
  • COM mechanizmy:
    • COMObject();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Načítanie externých komponentov:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Prístup k súborovému systému:
    • valueToFile();
    • CopyFile();
    • MergeFiles();
    • MoveFile();
    • SplitFile();
    • CreateDirectory();
    • Vymazať súbory();
    • Nový súbor;
    • Nový xBase;
    • WriteHTML.OpenFile();
    • ReadingHTML.OpenFile();
    • ReadingXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadFastInfoset.OpenFile();
    • WriteFastInfoset.OpenFile();
    • CanonicalWriterXML.OpenFile();
    • XSL Transformation.LoadFromFile();
    • WriteZipFile.Open();
    • ReadZipFile.Open();
    • NewTextReader(), ak je prvým argumentom reťazec;
    • ReadText.Open(), ak je prvým parametrom reťazec;
    • New TextWrite(), ak je prvým parametrom reťazec;
    • WriteText.Open(), ak je prvým parametrom reťazec;
    • Nový text extraktu();
    • zmena vlastnosti ExtractText.FileName;
    • ExtrahovaťText.Write();
    • New Image(), ak je prvým parametrom reťazec;
    • Obrázok.Záznam();
    • New BinaryData();
    • BinaryData.Write();
    • New DataWrite(), ak je prvým parametrom reťazec;
    • New DataRead(), prvý parameter je reťazec;
    • všetky metódy objektu FileStreamManager;
    • New FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • SpreadsheetDocument.Read();
    • Tabuľkový hárokDokument.Write();
    • Tabuľkový hárokDokument.Tlač(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDocument.Read();
    • TextDocument.Write().
  • Prístup na internet:
    • Nové internetové pripojenie,
    • Nový InternetMail,
    • Nový internetový proxy,
    • Nové pripojenie HTTP,
    • Nové FTP pripojenie.

POZOR! Vyvolá výnimku pri vykonávaní zakázaných operácií za behu.

Poznámka. Externé správy a spracovanie otvorené pomocou ponuky Súbor - Otvoriť sa vykonáva v núdzovom režime, ak používateľ nemá práva správcu.

Počet aktivácií núdzového režimu sa musí zhodovať s počtom vypnutí. Ak však v rámci procedúry alebo funkcie bol bezpečný režim povolený (raz alebo viackrát), ale nebol zakázaný, systém sa automaticky vypne toľkokrát, koľkokrát bolo čakajúcich aktivácií v procedúre alebo funkcii, ktorá sa opúšťa.

Ak v procedúre alebo funkcii volá metóda SetSafeMode(False) urobil viac ako volania metód SetSafeMode (True), potom bude vyvolaná výnimka.

Programová inštalácia núdzového režimu môže byť potrebná, keď vývojár konfigurácie predpokladá použitie programového kódu tretej strany (v súvislosti s konfiguráciou), ktorého spoľahlivosť vývojár nemôže zaručiť. Príkladom takéhoto kódu je vykonávanie metód Execute() a Calculate() v prípadoch, keď je spustiteľný kód prijatý z vonkajšieho sveta. V tomto prípade je dobrým zvykom nastaviť bezpečný režim pred vykonaním týchto metód:

// Kód programu sa vygeneruje na vykonanie // Je možné, že kód je načítaný z externých zdrojov// alebo zadané manuálne ExecutableCode = GetExecutableCodeFrom OutsideWorld(); // Povolenie bezpečného režimu SetSafeMode(True); // Spustenie potenciálne nebezpečného kódu Execute(ExecutableCode); // Vypnutie bezpečného režimu SetSafeMode(False);

V niektorých prípadoch môžu byť nastavenia núdzového režimu v konflikte s nastaveniami privilegovaného režimu. Príkladom takéhoto konfliktu je odoslanie dokumentu, ktorý má vlastnosť Privilegovaný režim pri odosielaní nastavenú z 1D kódu, ktorý je spustený v núdzovom režime. V tomto prípade je privilegovaný režim zakázaný a pokusy o jeho aktiváciu sú ignorované. Výsledkom je, že kód 1C:Enterprise, ktorý sa „spolieha“ na povolený privilegovaný režim, „naráža“ na jeho absenciu, čo vedie k chybám s nezrejmými dôvodmi na objavenie sa. Aby sa predišlo takejto situácii, 1C:Enterprise automaticky zakáže bezpečný režim pre obsluhu udalostí, ktoré sú dostupné v objektovom module alebo manažérskom module, za predpokladu, že spustiteľný kód v jazyku 1C:Enterprise sa nenachádza v konfiguračnom rozšírení. Takéto manipulátory sú v asistentovi syntaxe označené špeciálnym spôsobom.

Poskytuje tiež možnosť zakázať núdzový režim v rámci 1. jazyka (ak kód, z ktorého sa pokúšate o deaktiváciu, nie je v rozšírení konfigurácie). Spôsob zakázania núdzového režimu SetDisableSafeMode(). Skontrolujte, či je zapnutý bezpečný režim tento moment vypnuté (automaticky alebo pomocou volania metódy), môžete metódu použiť GetDisableSafeMode().

V rámci jednej metódy 1C:1 nemôže existovať viac ako jedna úroveň vnorenia nastavenia bezpečného režimu (volaním metódy SetSafeMode()) a nastavením zakázania bezpečného režimu (automaticky v čase spustenia obsluhy udalostí metaúdajových objektov alebo volaním Metóda SetSafeModeDisable()). Pri pokuse o zvýšenie vnorenia sa vyvolá výnimka:

// Postup správneho použitia ProcedureName() SetSafeModeDisable(True); SetSafeMode(True); SetSafeMode(False); SetSafeModeDisable(False); EndProcedure // Nesprávne použitie ProcedureName ProcedureName() SetSafeModeDisable(True); SetSafeMode(True); SetSafeModeDisable(False); // Výnimka EndProcedure ProcedureProcedureName() SetSafeMode(True); SetSafeModeDisable(False); // Výnimka EndProcedure