Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

Mjuk öppning extern bearbetning utförs med hjälp av det globala kontextobjektet ExternalProcessing, som har typen External Processing Manager. För varje driftläge på 1C-plattformen (vanligt applikationsläge och hanterat applikationsläge) används olika objektmetoder för att arbeta med extern bearbetning.

Kör extern bearbetning i normalt applikationsläge

I ett typiskt program måste du använda metoden Create() för ExternalProcessing-objektet, som skickas med det fullständiga namnet på den externa bearbetningsfilen. Metoden returnerar ett objekt av typen Extern bearbetning, detta objekt är den externa bearbetning som öppnas. Om du behöver öppna ett externt bearbetningsformulär, anropa metoden GetForm() på det mottagna objektet, vilket returnerar huvudformuläret, och anropa sedan metoden Open() för att öppna det.


Processing = ExternalProcessing.Create(FullFileName);
Processing.GetForm().Open();

I extern bearbetning måste huvudformuläret alltid vara ett vanligt, och det kontrollerade formuläret måste alltid vara ytterligare ett, annars fungerar inte GetForm()-metoden i normalt applikationsläge.

Kör extern bearbetning i hanterat programläge

I läge kontrollerade former Algoritmen är uppdelad efter exekveringskontext. På klienten tar vi emot binära data med det fullständiga namnet på den externa bearbetningsfilen. Vi överför mottagna binära data till servern och placerar dem i tillfällig lagring. Därefter måste du anropa Connect()-metoden för ExternalProcessing-objektet, till vilken adressen för temporär lagring skickas. Metoden returnerar namnet på den anslutna externa bearbetningen. Vi returnerar namnet på den externa bearbetningen till klienten, skapar en strängsökväg till bearbetningsformuläret och använder metoden OpenForm() för att öppna det externa bearbetningsformuläret.

&PåServer
Funktion GetExternalProcessingName(BinaryData)
AddressInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Return ExternalProcessing.Connect(AddressInTemporaryStorage);
EndFunction

&OnClient
FullFileName = ""; // Fullständigt namn på den externa bearbetningsfilen.
FileData = new BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Säkert läge för extern bearbetning

Metoderna Create() och Connect() för ExternalProcessing-objektet har en inkommande parameter SafeMode - ett tecken på anslutning av extern bearbetning i säkert läge. Om parametern inte anges kommer anslutningen att göras i säkert läge.
Säkert läge Arbetet är avsett att skydda systemet från exekvering av "otillförlitlig" programkod på servern. Potentiell fara kommer från extern bearbetning eller programkod som angetts av användaren för användning i metoderna Run() och Calculate().
Säkert läge inför följande begränsningar:
  • privilegierat läge avbryts om det installerades;
  • försök att gå in i privilegierat läge ignoreras;
  • operationer med COM-objekt är förbjudna;
  • ladda och ansluta externa komponenter är förbjudet;
  • åtkomst nekad filsystem(förutom temporära filer);
  • Tillgång till internet är förbjuden.
Processer som öppnas interaktivt utförs inte i säkert läge, därför rekommenderas att implementera en mekanism för att öppna externa processorer i säkert läge, såväl som på behörighetsnivån för att förbjuda användaren från att interaktivt öppna externa processorer.
För att förbjuda interaktiv öppning av bearbetning, i alla roller som tilldelats användaren, är det nödvändigt att ta bort rätt "Interaktiv öppning av extern bearbetning" (se figur 1).
Figur 1. Rättigheter att interaktivt öppna extern bearbetning/rapporter
Rätten "Interaktiv öppning av extern bearbetning" påverkar inte objektet Extern bearbetning på något sätt.

Programmatisk öppning av externa rapporter liknar extern bearbetning, men du bör använda det globala kontextobjektet ExternalReports, som har typen ExternalReportsManager.

Med lanseringen av plattform 8.3.9.2033, ny mekanism "Skydd från farliga handlingar".

Tack vare denna innovation började 1C nu svära på öppningen av bearbetningen (och inte bara):

Säkerhetsvarning

Öppnar "My External Processing" från filen "My_External_Processing.epf"

Det rekommenderas att vara uppmärksam på källan från vilken den erhölls. denna fil. Om det inte finns någon överenskommelse om utveckling med källan ytterligare moduler, eller det finns tvivel om innehållet i filen, rekommenderas det inte att öppna den, eftersom det kan skada din dator och data.

Tillåt mig att öppna den här filen?

Så 1C bestämde sig för att bekämpa skadlig kod!

Var denna "skadliga kod" kommer ifrån i ett företag är fortfarande ett mysterium)

Potentiellt farliga åtgärder inkluderade:

  • Laddar en extern rapport, bearbetning eller konfigurationstillägg.
  • Laddar eller uppdaterar konfiguration/tillägg.
  • Åtkomst från en extern rapport/behandlare eller tillägg till följande funktioner:
  • Utför ett operativsystemkommando.
  • Användarhantering (spela in eller ta bort användarinformation informationsbas).
  • Anropar Connect()-metoden för hanteraren för extern bearbetning (rapporter).
  • Anropar metoden ExtendConfiguration.Write().
  • Arbeta med COM-objekt.

Hur kan detta "mirakel" stängas av?

För att göra detta måste du starta 1C Enterprise i konfiguratorläge.
Välj menyn "Administration" - "Användare".
I fönstret som öppnas för våra användare måste du öppna fönstret för användarinställningar och avmarkera fliken "Grundläggande" "Skydd från farliga handlingar"

Det finns andra sätt att inaktivera detta:

Det är nu möjligt att ange en lista över infobaser, när man arbetar med vilka skydd mot farliga handlingar kommer att inaktiveras.
För denna funktion svarar på parametern DisableUnsafeActionProtection i filen conf.cfg, som låter dig inaktivera skyddsmekanismen mot farliga åtgärder för alla användare av vissa infobaser vars anslutningssträngar uppfyller de masker som anges i parametern DisableUnsafeActionProtection.

I den här parametern kan du ange flera masker åtskilda av ";"-symbolen, till exempel:

DisableUnsafeActionProtection=test_.*;stage_.*;

Dessutom kan skydd mot farliga användaråtgärder inaktiveras programmatiskt, för vilka följande parametrar och egenskaper är tillgängliga:

  • Parameterskydd från farliga åtgärder av Connect()-metoderna för externa bearbetnings- (rapport)hanterare
  • Egenskapen Protection Against Dangerous Actions för Configuration Extension-objektet innan metoden Write() för detta objekt anropas.

Kontroll av behovet av att använda skydd mot farliga handlingar utförs i följande ordning:

1. Om den aktuella användarens kryssruta "Skydd mot farliga aktiviteter" är avmarkerad, anses skyddet vara inaktiverat.

2. Om anslutningssträngen till infobasen matchar ett av mönstren som anges i parametern DisableUnsafeActionProtection i filen conf.cfg, anses skyddet vara inaktiverat.

3. Om skyddet är uttryckligen inaktiverat med parametern Skydd mot farliga åtgärder för extern bearbetning eller rapport.

4. Om skyddet är uttryckligen inaktiverat med hjälp av tilläggsegenskapen Skydd mot farliga åtgärder.

Faktum är att när du använder klient-serverversionen av 1C, öppnas extern bearbetning/rapporter i säkert läge, där användning av privilegierat läge är förbjudet. Och det privilegierade läget används mycket ofta i typiska konfigurationer: generering av tryckta formulär, olika servicekontroller (registrering av utbyten), etc. Som ett resultat, även om du använder en vanlig rapport om åtkomstkontrollsystemet utan ett formulär (som standard används det allmänna formuläret "ReportForm") och sparar anpassade rapportinställningar (i motsvarande katalog), kommer du att få ett felmeddelande om otillräcklig åtkomst rättigheter till olika konstanter och sessionsparametrar som används för officiella ändamål efter raden SetPrivilegedMode(True) ;

Den "korrekta" lösningen skulle vara att koppla extern bearbetning och rapporter genom BSP:s mekanismer för "Ytterligare rapporter och bearbetning" med inaktivering av säkert läge eller lägga till behörigheter (enligt min mening, från BSP version 2.2.2.1). Men om det av någon anledning är nödvändigt att använda externa rapporterings-/bearbetningsfiler, kan du konfigurera en klustersäkerhetsprofil som används som en säkerhetsprofil för säkert läge för en specifik infobas.

Jag vill omedelbart notera att det här alternativet inte är att föredra, men på grund av olika omständigheter kan det användas i en sådan förenklad form. Jag har till exempel flera databaser i olika städer, allmänt lokalt sitta ner med strikt begränsade rättigheter, stängd USB etc, någonstans använder de Accounting 2.0, och någonstans 3.0 gör jag nästan alla rapporter med hjälp av passersystem utan blanketter, så att de öppnar i båda versionerna. Servera alla dessa rapporter för olika versioner Och olika databaser saken är arbetskrävande och föga lovande, eftersom Det finns planer på att byta till en enda konfiguration och bas...

Låt oss skapa en profil.
Skapa en säkerhetsprofil i klusterkonsolen där vi ställer in flaggorna "Kan användas som en säkerhetsprofil för säkert läge" och " i avsnittet "Tillåtet". full tillgång:" "till privilegierat läge".

I många fall av att använda rapporter och enkel bearbetning denna metod kommer att gälla. För mer svåra situationer Det är ingen idé att beskriva processen, eftersom det beskrivs i dokumentationen (möjligheten att konfigurera säkerhetsprofiler för specifika externa filer genom att ange dess hash-mängd, etc.).

P.S. Jag trodde att säkerhetsprofiler bara fungerar när man använder plattforms- och serverlicenser på CORP-nivå, men denna funktion fungerar även på plattformen 1C:Enterprise 8.3 (den kan villkorligt kallas PROF, analogt med typiska konfigurationer Basic/PROF/CORP)

När du startar programmet Ladda upp dokument under vanlig användare Felet "Säkert läge är inställt. Operationen är förbjuden."

Denna svårighet uppstår pga Det finns inte tillräckligt med rättigheter för att starta extern behandling. För att konfigurera åtkomsträttigheter, logga in i databasen i 1C Enterprise-läge på uppdrag av Administratör och gå till avsnittet Användar- och rättighetsinställningar / Åtkomstgruppsprofiler, klick Skapa en grupp.

Ange gruppnamnet och markera rutorna tillgängliga för användarna denna rollgrupp -

  • Interaktiv öppning av externa rapporter och bearbetning
  • Använda ytterligare rapporter och bearbetning

Klick Spara och stäng


Gå tillbaka till menyn Användare och välj från listan den medarbetare som ska arbeta med programmet Dokumentuppladdning. Klicka på Behörigheter. Välj den tidigare skapade profilen i listan över profiler. Klick Skriva ner.


För att användarna ska kunna börja bearbeta, rekommenderas det att lägga till Dokumentladdning i listan över extern bearbetning. För att göra detta i menyn Administration / Tryckta blanketter och bearbetning / Ytterligare rapporter och bearbetning skapa ny behandling. Ange sökvägen till filen "Download Documents.epf" och tilldela ett namn. Ange platsen för bearbetningen i menyn, varifrån användaren kan starta den senare, till exempel välj menyn Kataloger

Klicka på objektet Snabb åtkomst du anger vilka användare som har tillgång till bearbetning:


Klicka på efter inställningen Spara och stäng. För att börja bearbeta behöver användare bara gå in i databasen igen och öppna den från åtkomstmenyn (i exemplet - Kataloger) och klicka på Utföra.


Öppna Meny - Alla funktioner.... och hitta alternativet "Säkerhetsprofiler används" i listan.


Avmarkera bara alternativet "Säkerhetsprofiler används".


Efter detta kommer programmet att starta framgångsrikt.



Om du upptäcker ett fel markerar du ett textstycke och trycker på Ctrl+Enter
DELA: