Az 1s 8.2 nem tudja telepíteni a csökkentett módot. Biztonságos üzemmód. Külső feldolgozás indítása normál alkalmazási módban

11.05.2020 hírek

Szoftver felfedezés külső feldolgozás az ExternalProcessing globális kontextusobjektum használatával történik, amelynek típusa van ExternalProcessingManager. Az 1C platform minden egyes üzemmódjához (normál alkalmazási mód és felügyelt alkalmazásmód) különböző objektummódszereket használnak a külső feldolgozással való együttműködé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 meg kell nyitnia egy külső feldolgozási űrlapot, 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ódussal nyitjuk meg a külső feldolgozási űrlapot.

&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 kontextus objektumot használni, amely a következő típusú ExternalReportsManager.

A program elindításakor Dokumentumok letöltése alatt rendszeres felhasználó hibaüzenet: "Biztonságos mód beállítva. A művelet tiltva."

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 csoport felhasználói számára elérhető szerepköröket -

  • 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ó / Űrlapok nyomtatása és feldolgozása / 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.

A lényeg, hogy használat közben kliens-szerver verzió munka 1C, a külső feldolgozás / jelentések biztonságos módban kerülnek megnyitásra, amelyben tilos a privilegizált mód használata. A privilegizált módot pedig nagyon gyakran használják tipikus konfigurációkban: nyomtatott űrlapok, különféle irodai csekkeket(tőzsdék regisztrációja) stb. Ennek eredményeként még az ACS-en űrlap nélküli rendszeres jelentés használata (alapértelmezés szerint az általános "Jelentésűrlap") és mentés felhasználói beállítások jelentést (a megfelelő könyvtárba), akkor a sor után hibaüzenetet kap arról, hogy nem rendelkezik megfelelő hozzáférési jogokkal a szolgáltatási célokra használt különféle állandókhoz és munkamenet-paraméterekhez. SetPrivilegedMode(True) ;

A "helyes" megoldás a külső processzorok és jelentések összekapcsolása a BSP "További jelentések és feldolgozás" mechanizmusain keresztül a csökkentett mód letiltásával vagy engedélyek hozzáadásával (véleményem szerint a BSP 2.2.2.1-es verziójától). De ha valamilyen oknál fogva pontosan kell használni külső fájlok jelentések/feldolgozás, akkor konfigurálhatja a fürt biztonsági profilját, amelyet egy adott információs bázis csökkentett módú biztonsági profiljaként használnak.

Azonnal szeretném megjegyezni, hogy ezt a lehetőséget nem részesítjük előnyben, de különféle körülmények miatt ilyen egyszerűsített formában is használható. Például több adatbázisom van különböző városokban, közös helyi hálózat szigorúan korlátozott jogokkal, zárt USB stb., valahol a Accounting 2.0-t használják, valahol pedig a 3.0-t, szinte minden jelentést ACS-sel készítek űrlapok nélkül, hogy megnyíljanak mindkét változatban. Kiszolgálni az összes jelentést különböző verziók a különböző alapok pedig időigényes és kilátástalan üzlet, mert tervben van az egységes konfigurációra és alapra váltás...

Profilt készítünk.
A fürtkonzolban hozzon létre egy biztonsági profilt, amelyben beállítjuk a zászlókat "Biztonságos mód biztonsági profilként használható"és a "Teljes hozzáférés engedélyezett" alatt: "kiváltságos módba".

Sok esetben jelentések és egyszerű feldolgozás ez a módszer alkalmazható lesz. Bonyolultabb helyzeteknél nincs értelme leírni a folyamatot, mert. a dokumentációban van leírva (biztonsági profilok konfigurálása adott külső fájlokhoz a hash összegének megadásával stb.).

P.S. Azt hittem, hogy a biztonsági profilok csak akkor működnek, ha a CORP szintű platformhoz és szerverhez licenceket használnak, de ez a funkció az 1C: Enterprise 8.3 platformon is működik (feltételesen hívhatjuk a PROF-ot a tipikus Basic / PROF / CORP konfigurációk analógiájával)

A 8.3.9.2170-es verzióban a biztonság fokozódott – most a rendszer megerősítést kér a külső feldolgozás megkezdéséhez, a bővítményekhez stb. Nyilván a trójai után:

A veszélyes akciók elleni védelem mechanizmusa megvalósul. Egy potenciálisan veszélyes művelet végrehajtásakor a rendszer figyelmeztetést ad ki, amely információkat tartalmaz a végrehajtott műveletről és a művelet lehetséges veszélyéről. 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.

A felhasználónak lehetősége van engedélyezni vagy elutasítani egy potenciálisan veszélyes műveletet. Ha egy művelet engedélyezett, bizonyos esetekben szükség lehet az engedélyezett művelet ismételt végrehajtására.

Az üzenet így néz ki:

Biztonsági figyelmeztetés

Megnyitja a "" fájlt a "C:\.......epf" fájlból. Javasoljuk, hogy figyeljen a forrásra, ahonnan érkezett. 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élyezze ennek a fájlnak a megnyitását. NEM IGAZÁN

Megoldás:

A konfigurátorban az IB felhasználói tulajdonságainál törölje a "Védelem a veszélyes műveletektől" jelölőnégyzetből.

A dokumentációból:A veszélyes tevékenységek elleni védelmi mechanizmus letiltása

Bizonyos esetekben ki kell kapcsolni a veszélyes tevékenységek elleni védelmi mechanizmust. Ehhez a következő lehetőségeket használhatja:

1. Kapcsolja ki a Veszélyes műveletek elleni védelem (Védelem a veszélyes tevékenységek ellen) jelölőnégyzetet a tulajdonságokban. konkrét felhasználó. Ezzel letiltja a felhasználó védelmét.

2. Használja a külső feldolgozáskezelők (jelentések) Connect() metódusainak ProtectionFromDangerousActions paraméterét. Ebben az esetben lehetőség van külső feldolgozás (jelentés) betöltésére felhasználói kérések nélkül.

3. Használja a ConfigurationExtension objektum SafeActionProtection tulajdonságát, mielőtt meghívná az objektum Write() metódusát.

4. Használja a conf.cfg fájl DisableUnsafeActionProtection paraméterét. Ebben az esetben a veszélyes műveletek védelmi mechanizmusa le lesz tiltva minden információsbázis-felhasználónál, akinek a kapcsolati karakterláncai megegyeznek a megadott maszkokkal.

A veszélyes tevékenységek elleni védelem letiltása a következő szabályok szerint történik (ebben a sorrendben):

1. A védelem letiltottnak minősül, ha jelenlegi felhasználó a Veszélyes műveletek elleni védelem jelölőnégyzet törlődik.

2. A védelem letiltottnak minősül, ha a kapcsolati karakterlánc a információs bázis egyezik a conf.cfg fájl DisableUnsafeActionProtection paraméterében megadott egyik mintával.

3. Ha a külső feldolgozás (jelentés) kifejezetten letiltott védelemmel van összekötve a Védelem a veszélyes műveletektől paraméter használatával.

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