itthon / Windows oktatóanyagok / Az 1s 8.2 nem tudja telepíteni a csökkentett módot. Biztonságos mód be van állítva. A művelet tilos. Külső feldolgozás indítása normál alkalmazási módban

Az 1s 8.2 nem tudja telepíteni a csökkentett módot. Biztonságos mód be van állítva. A művelet tilos. Külső feldolgozás indítása normál alkalmazási módban

Amikor normál felhasználóként futtatja a Dokumentumok letöltése programot, hibaüzenet jelenik meg: „A csökkentett mód be van állítva. A művelet tilos”.

Ez a nehézség abból adódik, hogy nincs elegendő jogosultság a külső feldolgozás megkezdéséhez. A hozzáférési jogok beállításához nyissa meg az adatbázist 1C Enterprise módban a nevében adminisztrátorés menj a szakaszhoz Felhasználói és jogosultsági beállítások / hozzáférési csoportprofilok, kattintson Csoport létrehozásához.

Írja be a csoport nevét, és jelölje be a négyzeteket elérhető a felhasználók számára ez a szerepcsoport -

  • Külső jelentések interaktív megnyitása és feldolgozása
  • További jelentések használata és feldolgozás

Kattintson Írj és zárd be


Térjen vissza a Felhasználók menübe, és válasszon ki egy alkalmazottat a listából, aki a Dokumentumfeltöltő programmal fog dolgozni. Kattintson az Engedélyek elemre. A profillistában jelölje be a korábban létrehozott profilt. Kattintson éget.


Ahhoz, hogy a felhasználók elkezdhessék a feldolgozást, ajánlatos a Dokumentumfeltöltést hozzáadni a külső feldolgozások listájához. Ehhez a menü Adminisztráció / Nyomtatványok és feldolgozás / További jelentésekés feldolgozás hozzon létre egy új feldolgozást. Adja meg a „DocumentUpload.epf” fájl elérési útját, és adjon neki nevet. Adja meg a menüben a feldolgozás helyét, ahonnan a felhasználó a jövőben elindíthatja, például válassza ki a menüt Útmutató könyvek

Egy elemre kattintva Gyors hozzáférés megadja, hogy mely felhasználói feldolgozás elérhető:


A beállítás után kattintson Írj és zárd be. A feldolgozás megkezdéséhez a felhasználóknak csak újra be kell lépniük az adatbázisba, meg kell nyitniuk azt a hozzáférési menüből (a példában - Könyvtárak), majd kattintson a Fuss.


nyisd ki Menü - Minden funkció... és keresse meg a „Biztonsági profilok használata” lehetőséget a listában.


Elég, ha eltávolítja a „Biztonsági profilok használatos” opció bejelölését.


Ezt követően a program sikeresen fut.

Szoftver felfedezés A külső feldolgozás az ExternalProcessing globális kontextusobjektum használatával történik, amelynek típusa ExternalProcessingManager. Az 1C platform minden egyes üzemmódjához (mód rendszeres alkalmazásaés felügyelt alkalmazás mód) használatosak különféle módszerek objektum külső feldolgozással való munkavégzéshez.

Külső feldolgozás indítása normál alkalmazási módban

Egy tipikus alkalmazásban az ExternalProcessing objektum Create() metódusát kell használnia, amely az externalprocessing fájl teljes nevét adja át. A metódus egy típusú objektumot ad vissza Külső feldolgozás, ez az objektum a megnyitás alatt álló külső feldolgozás. Ha egy külső feldolgozási űrlapot szeretne megnyitni, akkor hívja meg a kapott objektum GetForm() metódusát, amely visszaadja a fő űrlapot, majd hívja meg az Open() metódust a megnyitásához.


Feldolgozás = ExternalProcessings.Create(FullFileName);
Feldolgozás.GetForm().Open();

Külső feldolgozásnál a fő űrlap mindig egy normál, a kezelt pedig egy kiegészítő legyen, különben a GetForm() metódus nem fog működni normál alkalmazási módban.

Indítsa el a külső feldolgozást felügyelt alkalmazás módban

módban kezelt űrlapok van az algoritmus felosztása a végrehajtás kontextusa szerint. Az ügyfélen a bináris adatokat a külső feldolgozó fájl teljes nevével kapjuk meg. A kapott bináris adatokat a szerverre továbbítjuk és átmeneti tárhelyen helyezzük el. Ezután meg kell hívnia az ExternalProcessing objektum Connect() metódusát, amelyhez az ideiglenes tároló címét továbbítják. A metódus visszaadja a csatlakoztatott külső feldolgozás nevét. Visszaadjuk a kliensen a külső feldolgozás nevét, létrehozunk egy karakterlánc elérési utat a feldolgozási űrlaphoz, és az OpenForm() metódust használjuk a külső feldolgozási űrlap megnyitásához.

&A szerveren
GetExternalProcessName(BinaryData) függvény
AddressInTempStorage = PlaceInTempStorage(BinaryData);
Return ExternalProcessing.Connect(AddressInTempStorage);
EndFunctions

&AtClient
FullFileName = ""; // A külső feldolgozófájl teljes neve.
FileData = Új bináris adat(Teljes fájlnév);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("Külső feldolgozás." + ExternalProcessingName + ".Form");

Biztonságos mód külső feldolgozáshoz

Az ExternalProcessing objektum Create() és Connect() metódusainak SafeMode bemeneti paramétere van, amely azt jelzi, hogy a külső feldolgozás csökkentett módban csatlakozik. Ha a paraméter nincs megadva, a kapcsolat biztonságos módban jön létre.
Biztonságos mód A művelet célja, hogy megvédje a rendszert attól, hogy "nem megbízható" programkódot hajtson végre a szerveren. A potenciális veszélyek a felhasználó által az Execute () és Calculate () metódusokban történő használatra beírt külső feldolgozás vagy programkód.
A csökkentett módra a következő korlátozások vonatkoznak:
  • privilegizált mód törlődik, ha be van állítva;
  • a privilegizált módba való belépési kísérleteket figyelmen kívül hagyja;
  • COM objektumokkal végzett műveletek tilosak;
  • tilos külső alkatrészek berakása és csatlakoztatása;
  • megtagadták a hozzáférést fájlrendszer(az ideiglenes fájlok kivételével);
  • az internethez való hozzáférés tilos.
Az interaktívan megnyitott feldolgozások nem biztonságos módban kerülnek végrehajtásra, ezért javasolt a külső feldolgozás csökkentett módban történő megnyitásának mechanizmusát megvalósítani, valamint megtiltani, hogy a felhasználó jogosultsági szinten interaktívan nyissa meg a külső feldolgozást.
A feldolgozások interaktív megnyitásának tiltásához a felhasználóhoz rendelt összes szerepkörben el kell távolítani a „Külső feldolgozások interaktív megnyitása” jogot (lásd 1. ábra).
1. ábra: A külső feldolgozás/jelentések interaktív megnyitásának jogai
Az "Interaktívan megnyitott külső feldolgozás" jog semmilyen módon nem érinti az ExternalProcessing objektumot.

A külső jelentések programozott megnyitása hasonló a külső feldolgozáshoz, de érdemes az ExternalReports globális kontextusobjektumot használni, amely a következő típusú ExternalReportsManager.

A 8.3.9.2033 platform kiadásával egy új mechanizmus jelent meg "Védelem a veszélyes akciók ellen".

Ennek az innovációnak köszönhetően az 1C most a feldolgozás (és nem csak) megnyitásakor esküdni kezdett:

Biztonsági figyelmeztetés

Megnyitja a "Saját külső feldolgozás" elemet a "My_External_Processing.epf" fájlból

Javasoljuk, hogy fordítson figyelmet a forrásra, ahonnan kapta adott fájl. Ha nincs egyetértés a forrással a további modulok fejlesztéséről, vagy kétségek merülnek fel a fájl tartalmával kapcsolatban, akkor nem ajánlott megnyitni, mert ez károsíthatja a számítógépet és az adatokat.

Engedélyezi a fájl megnyitását?

Ezért az 1C úgy döntött, hogy felveszi a harcot a rosszindulatú kódok ellen!

Honnan lesz ez? rosszindulatú kód» a vállalkozásnál még mindig rejtély)

A potenciálisan veszélyes tevékenységek közé tartozik:

  • Külső jelentés, feldolgozás vagy konfigurációs bővítmény betöltése.
  • Konfiguráció/bővítmény betöltése vagy frissítése.
  • Hozzáférés külső jelentésből/feldolgozásból vagy bővítményből a következő szolgáltatásokhoz:
  • Operációs rendszer parancsának végrehajtása.
  • Felhasználókezelés (felhasználói adatok rögzítése vagy törlése információs bázis).
  • A külső feldolgozás (jelentések) menedzser Connect() metódusának meghívása.
  • A ConfigurationExtension.Write() metódus meghívása.
  • Munkavégzés COM-objektumokkal.

Hogyan lehet ezt a "csodát" kikapcsolni?

Ehhez az 1C Enterprise programot konfigurátor módban kell futtatnia.
Válassza az "Adminisztráció" - "Felhasználók" menüt.
Felhasználóink ​​megnyíló ablakában meg kell nyitnia a felhasználói beállítások ablakot, és az „Általános” fülön el kell távolítania a madarat "Védelem a veszélyes akciók ellen"

Van más mód is a kikapcsolására:

Megvalósította azon információs bázisok listájának megadását, amelyekkel a veszélyes műveletek elleni védelem le lesz tiltva.
Per ezt a funkciót A conf.cfg fájl DisableUnsafeActionProtection paramétere válaszol, amely lehetővé teszi a veszélyes műveletek elleni védelmi mechanizmus letiltását bizonyos információs bázisok összes olyan felhasználója számára, akiknek kapcsolati karakterláncai megegyeznek a DisableUnsafeActionProtection paraméterben megadott maszkokkal.

NÁL NÉL adott paramétert Több maszkot is megadhat a ";" szimbólummal elválasztva, például:

DisableUnsafeActionProtection=teszt_.*;stage_.*;

Ezenkívül a veszélyes felhasználói műveletek elleni védelem programozottan letiltható, amelyhez a következő paraméterek és tulajdonságok állnak rendelkezésre:

  • A külső feldolgozáskezelők (jelentések) Connect() metódusainak ProtectionFromDangerousActions paramétere
  • A ConfigurationExtension objektum SafeActionProtection tulajdonsága az objektum Write() metódusának meghívása előtt.

A veszélyes tevékenységek elleni védelem szükségességének ellenőrzése a következő sorrendben történik:

1. Ha a "Védelem a veszélyes műveletek ellen" jelölőnégyzetet törölték az aktuális felhasználónál, akkor a védelem letiltottnak minősül.

2. Ha az infobase kapcsolati karakterlánc egyezik a conf.cfg fájl DisableUnsafeActionProtection paraméterében megadott egyik mintával, akkor a védelem letiltottnak minősül.

3. Ha a védelem kifejezetten le van tiltva egy külső feldolgozás vagy jelentés Veszélyes műveletektől való védelem paraméterével.

4. Ha a védelem kifejezetten le van tiltva a ProtectionFromDangerousActions kiterjesztési tulajdonság használatával.

A Trade Management 11.3 példáját használva megvizsgáljuk a külső csatlakoztatásának egyszerű folyamatát nyomtatott formában. Figyelembe vesszük az új biztonsági rendszer jellemzőit is.

Gyors átjárás

Előzetes intézkedések

Kezdetnek meg kell funkció engedélyezése vagy ellenőrizze a rendelkezésre állást

1. Teljes joggal rendelkezünk az információs bázishoz.

2. Lépjen az "NSI és adminisztráció" / "Adminisztráció" blokk / "Űrlapok, jelentések és feldolgozás" parancsra.

Függelék

A megnyitott részben:

Adja hozzá a feldolgozást a "Létrehozás" gombbal (ez fontos) vagy a "Frissítés!" létező:

  • Jelölje ki a listában (ha nincs kiválasztva vagy üres, a parancs nem működik, de nem mond semmit).
  • Kattintson a "Betöltés fájlból" gombra.

Az 1C külső feldolgozásban való megjelenése után a biztonsági ellenőrzések új konfigurációkban jelentek meg.

Csak önállóan létrehozott vagy ismert kommunikációs csatornákon (nem postai úton, csak érvényes tanúsítvánnyal rendelkező webhelyről, vagy a fejlesztő munkatársai által biztosított, telefonon visszaigazolt) feldolgozást telepítsen.

Ha mindent beírt a feldolgozásba a fejlesztő, akkor az "Elhelyezés" lesz beállítva - az objektumok, amelyekben a feldolgozás részt vesz, megjelennek a parancs(ok).
A munkához elegendő a "Rögzítés és bezárás" gombra kattintani.

Vizsgálat

Közvetlenül ezután, a feldolgozás típusától függően:

  • A nyomtatott űrlap akkor válik elérhetővé, amikor megnyit egy dokumentumot, vagy a listából (a már megnyitott esetében újranyitva) a "Nyomtatás" gombra kattintva.
  • A kezelések elérhetők a " További feldolgozás» minden alrendszerben
  • Kitöltés feldolgozása a lista „Kitöltés” ​​gombjával vagy az objektuműrlap fő parancspaneljével.

A fenti feldolgozáshoz az indítás így fog kinézni:

Ha a dokumentum új, akkor rögzíteni kell, a külső feldolgozó mechanizmus figyelmezteti Önt erre:

A további viselkedés a benne rejlő funkcionalitástól függ: lehetséges az űrlap megnyitása vagy egyszerű adatfeldolgozás.

Biztonsági figyelmeztetések az 1C-ben

A platform és konfigurációk új kiadásaiban megerősítették a rosszindulatú programok elindítása elleni védelmet.

A feldolgozás hatására az Excel betöltődik, ebben az esetben az új biztonsági alrendszer figyelmezteti is:

Ebben az esetben a kezelőkód megszakad.

Ha az "Igen" gombra kattint, a rendszer kéri, hogy hívja újra a parancsot:

Az infobase felhasználója a Configurator segítségével letilthatja a veszélyes műveletek elleni védelmet:

"Vállalati" módból ezen nem lehet változtatni, lehet, hogy szándékosan csinálták, a frissítés után jelentkezhet.

Azt is figyelembe kell venni, hogy ha a feldolgozás Excelt használ, akkor annak nem biztonságos módban kell indulnia (ez az új rendszer bevezetése előtt is így volt, ez párhuzamosan működik):

"Nem sikerült betölteni az MS EXCEL-t!!!" "A csökkentett mód be van állítva. A művelet tilos"

Külső feldolgozás során ez így néz ki:

A fejlesztőnek a belső feldolgozási leírásban "False"-ra kell állítania, akkor minden rendben lesz:

ExternalProcessingDetails() ExportRegistrationParameters = Új struktúra; RegistrationParameters.Insert("SafeMode", False);

A konfiguráció frissítésekor figyelmeztető szöveg is volt a konfigurációs fájl forrásáról:

Nyomtatás (Ctrl+P)

Konfigurációs objektumok

Ha "megbízhatatlan" programkódot kell használni a szerveren: külső feldolgozást vagy a felhasználó által az Execute() és Calculate() metódusokban történő felhasználásra beírt programkódot, akkor használhatja a biztonságos üzemmódot.

Biztonságos módban:

  • Kiváltságos mód törölve.
  • Váltás kiemelt módba figyelmen kívül hagyva.
  • Tiltott olyan műveletek, amelyek külső eszközök használatához vezetnek az 1C:Enterprise platformmal kapcsolatban (beleértve a fenti módszerek nem blokkoló analógjait):
  • COM mechanizmusok:
    • COMObject();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Külső alkatrészek betöltése:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Fájlrendszer hozzáférés:
    • valueToFile();
    • Fájl másolás, fájl másolása();
    • MergeFiles();
    • MoveFile();
    • SplitFile();
    • CreateDirectory();
    • Fájlok törlése();
    • Új fájl;
    • Új xBase;
    • WriteHTML.OpenFile();
    • HTML olvasása.OpenFile();
    • ReadingXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadFastInfoset.OpenFile();
    • WriteFastInfoset.OpenFile();
    • CanonicalWriterXML.OpenFile();
    • XSL Transformation.LoadFromFile();
    • WriteZipFile.Open();
    • ReadZipFile.Open();
    • NewTextReader() ha az első argumentum egy karakterlánc;
    • ReadText.Open(), ha az első paraméter egy karakterlánc;
    • New TextWrite(), ha az első paraméter egy karakterlánc;
    • WriteText.Open(), ha az első paraméter egy karakterlánc;
    • New ExtractText();
    • az ExtractText.FileName tulajdonság módosítása;
    • ExtractText.Write();
    • New Image(), ha az első paraméter egy karakterlánc;
    • Picture.Record();
    • New BinaryData();
    • BinaryData.Write();
    • New DataWrite(), ha az első paraméter egy karakterlánc;
    • New DataRead(), az első paraméter egy karakterlánc;
    • a FileStreamManager objektum összes metódusa;
    • New FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • SpreadsheetDocument.Read();
    • SpreadsheetDocument.Write();
    • SpreadsheetDocument.Print(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDocument.Read();
    • TextDocument.Write().
  • Internet-hozzáférés:
    • Új Internet kapcsolat,
    • Új InternetMail,
    • Új internetes proxy,
    • Új HTTP kapcsolat,
    • Új FTP kapcsolat.

FIGYELEM! Kivételt dob, amikor tiltott műveleteket hajt végre futás közben.

Jegyzet. A Fájl - Megnyitás menü segítségével megnyitott külső jelentések és feldolgozások csökkentett módban futnak, ha a felhasználó nem rendelkezik adminisztrátori hozzáférési jogokkal.

A csökkentett mód aktiválások számának meg kell egyeznie a leállások számával. Ha azonban a csökkentett módot engedélyezték (egyszer vagy többször) egy eljáráson vagy funkción belül, de nem tiltották le, a rendszer automatikusan leáll, ahányszor nem fejeződött be az eljárás vagy funkció megszakítása.

Ha egy eljárásban vagy függvényben metódushívások SetSafeMode (hamis) többet tett, mint metódushívások SetSafeMode (igaz), akkor kivételt teszünk.

A csökkentett mód programozott telepítésére akkor lehet szükség, ha a konfigurációfejlesztő harmadik féltől származó (a konfigurációhoz kapcsolódó) programkód használatát feltételezi, amelynek megbízhatóságát a fejlesztő nem tudja garantálni. Ilyen kód például az Execute() és Calculate() metódusok végrehajtása olyan esetekben, amikor a végrehajtható kód a külvilágból érkezik. Ebben az esetben célszerű biztonságos módot beállítani az alábbi módszerek végrehajtása előtt:

// Programkód generálódik végrehajtásra // Lehetséges, hogy a kód innen töltődik be külső források// vagy kézzel beírva ExecutableCode = GetExecutableCodeFrom OutsideWorld(); // Csökkentett mód engedélyezése SetSafeMode(True); // Potenciálisan veszélyes kód végrehajtása Execute(ExecutableCode); // A biztonságos mód letiltása SetSafeMode(False);

Egyes esetekben a csökkentett mód beállításai ütközhetnek a kiemelt mód beállításaival. Ilyen ütközésre példa egy olyan dokumentum feladása, amelynek a Privileged Posting Mode tulajdonsága csökkentett módban futó 1C kódból van beállítva. Ebben az esetben a privilegizált mód le van tiltva, és az engedélyezési kísérleteket figyelmen kívül hagyja. Ennek eredményeként az engedélyezett privilegizált módra "támaszkodó" 1C:Enterprise kód "ütközik" annak hiányával, ami nem nyilvánvaló okokkal járó hibákhoz vezet. Az ilyen helyzetek elkerülése érdekében az 1C:Enterprise automatikusan letiltja a csökkentett módot az objektummodulban vagy a kezelőmodulban elérhető eseménykezelők számára, feltéve, hogy az 1C:Enterprise nyelvű végrehajtható kód nem található a konfigurációs bővítményben. Az ilyen kezelők speciális módon vannak megjelölve a szintaxissegédben.

Lehetőséget biztosít a csökkentett mód letiltására is az 1. nyelven belül (ha a kód, amelyből a letiltást megkísérli, nem egy konfigurációs kiterjesztésben található). A csökkentett mód letiltásának módja SetDisableSafeMode(). Ellenőrizze, hogy a csökkentett mód be van-e kapcsolva Ebben a pillanatban letiltva (automatikusan vagy metódushívással), használhatja a metódust GetDisableSafeMode().

Egy 1C:1 metóduson belül nem lehet egynél több beágyazási szint a biztonságos mód beállításához (a SetSafeMode() metódus meghívásával) és a biztonságos mód letiltásának beállításához (automatikusan a metaadat objektum eseménykezelők végrehajtásakor vagy a SetSafeModeDisable() metódus). Amikor megpróbálja növelni a beágyazást, kivételt dob:

// Helyes használati eljárás ProcedureName() SetSafeModeDisable(True); SetSafeMode(True); SetSafeMode(False); SetSafeModeDisable(False); EndProcedure // Helytelen használat Procedure ProcedureName() SetSafeModeDisable(True); SetSafeMode(True); SetSafeModeDisable(False); // Kivétel EndProcedure ProcedureProcedureName() SetSafeMode(True); SetSafeModeDisable(False); // Kivétel EndProcedure