Xavfsiz rejim 1s. Tashqi bosma plitani yoki ishlov berishni qanday qo'shish kerak

Document Upload dasturini oddiy foydalanuvchi sifatida ishga tushirganingizda, "Xavfsiz rejim o'rnatildi. Operatsiya taqiqlangan" xatosi.

Bu qiyinchilik, chunki paydo bo'ladi Tashqi ishlov berishni boshlash uchun huquqlar etarli emas. Kirish huquqlarini sozlash uchun 1C Enterprise rejimida ma'lumotlar bazasiga nomidan kiring Administrator va bo'limga o'ting Foydalanuvchi va huquq sozlamalari / Guruh profillariga kirish, bosing Guruh yaratish uchun.

Guruh nomini kiriting va ushbu guruh foydalanuvchilari uchun mavjud rollar uchun katakchalarni belgilang -

  • Tashqi hisobotlarni interaktiv ochish va qayta ishlash
  • Qo'shimcha hisobotlarni ishlatish va qayta ishlash

bosing Saqlash va yopish


Foydalanuvchilar menyusiga qayting va ro'yxatdan Hujjatni yuklash dasturi bilan ishlaydigan xodimni tanlang. Ruxsatlar-ni bosing. Profillar ro'yxatida avval yaratilgan profilni tanlang. bosing Yozing.


Foydalanuvchilar qayta ishlashni boshlashlari uchun tashqi ishlov berish ro'yxatiga Hujjatni yuklashni qo'shish tavsiya etiladi. Buni menyuda qilish uchun Ma'muriyat / Chop etilgan shakllar va qayta ishlash / Qo'shimcha hisobotlar va qayta ishlash yangi qayta ishlash yaratish. "Documents.epf yuklab olish" fayliga yo'lni belgilang va nom bering. Menyuda qayta ishlash joyini belgilang, u erdan foydalanuvchi uni keyinroq ishga tushirishi mumkin, masalan, menyuni tanlang Kataloglar

Tez kirish elementini bosish orqali siz qaysi foydalanuvchilarning qayta ishlashga ruxsati borligini ko'rsatasiz:


Sozlagandan so'ng, bosing Saqlash va yopish. Qayta ishlashni boshlash uchun foydalanuvchilar faqat ma'lumotlar bazasiga qayta kirishlari va uni kirish menyusidan ochishlari kerak (misolda - kataloglar) va tugmasini bosing. Bajarish.


Ochiq Menyu - Barcha funksiyalar.... va ro'yxatda "Xavfsizlik profillari ishlatiladi" variantini toping.


Shunchaki "Xavfsizlik profillari ishlatiladi" variantini olib tashlang.


Shundan so'ng dastur muvaffaqiyatli ishga tushadi.

8.3.9.2033 platformasining chiqarilishi bilan yangi mexanizm paydo bo'ldi "Xavfli harakatlardan himoya qilish".

Ushbu yangilik tufayli 1C endi qayta ishlashning ochilishida qasamyod qila boshladi (va nafaqat):

Xavfsizlik bo'yicha ogohlantirish

“My_External_Processing.epf” faylidan “Mening tashqi ishlovim”ni ochadi.

Ushbu fayl qaysi manbadan olinganiga e'tibor berish tavsiya etiladi. Agar qo'shimcha modullarni ishlab chiqish bo'yicha manba bilan kelishuv bo'lmasa yoki faylning mazmuniga shubha tug'ilsa, uni ochish tavsiya etilmaydi, chunki bu kompyuter va ma'lumotlarga zarar etkazishi mumkin.

Ushbu faylni ochishga ruxsat berasizmi?

Shunday qilib, 1C zararli kod bilan kurashishga qaror qildi!

Ushbu "zararli kod" korxonada qayerdan paydo bo'lishi hali ham sir)

Potentsial xavfli harakatlarga quyidagilar kiradi:

  • Tashqi hisobot yuklanmoqda, ishlov berish yoki konfiguratsiya kengaytmasi.
  • Konfiguratsiya/kengaytma yuklanmoqda yoki yangilanmoqda.
  • Tashqi hisobot/protsessor yoki kengaytmadan quyidagi imkoniyatlarga kirish:
  • Operatsion tizim buyrug'ini bajarish.
  • Foydalanuvchilarni boshqarish (infobase foydalanuvchisi haqidagi ma'lumotlarni yozib olish yoki o'chirish).
  • Tashqi ishlov berish (hisobotlar) menejerining Connect() usulini chaqirish.
  • ExtendConfiguration.Write() usulini chaqirish.
  • COM ob'ektlari bilan ishlash.

Bu "mo''jiza" ni qanday o'chirish mumkin?

Buning uchun siz 1C Enterprise-ni konfigurator rejimida ishga tushirishingiz kerak.
"Ma'muriyat" - "Foydalanuvchilar" menyusini tanlang.
Foydalanuvchilarimiz uchun ochilgan oynada siz foydalanuvchi sozlamalari oynasini ochishingiz va "Asosiy" yorlig'ini olib tashlashingiz kerak. "Xavfli harakatlardan himoya qilish"

Buni o'chirishning boshqa usullari mavjud:

Endi xavfli harakatlardan himoyalanish o'chirib qo'yiladigan infobazalar ro'yxatini belgilash mumkin.
Ushbu funktsiya conf.cfg faylidagi DisableUnsafeActionProtection parametri uchun javobgar bo'lib, ulanish satrlari DisableUnsafeActionProtection parametrida ko'rsatilgan niqoblarni qondiradigan ma'lum infobazalarning barcha foydalanuvchilari uchun xavfli harakatlardan himoya mexanizmini o'chirish imkonini beradi.

Ushbu parametrda siz “;” belgisi bilan ajratilgan bir nechta niqoblarni belgilashingiz mumkin, masalan:

DisableUnsafeActionProtection=test_.*;stage_.*;

Bundan tashqari, foydalanuvchining xavfli harakatlaridan himoyalanishni dasturiy jihatdan o'chirib qo'yish mumkin, ular uchun quyidagi parametrlar va xususiyatlar mavjud:

  • Parametrlarni tashqi ishlov berish (hisobot) menejerlarining Connect() usullarining xavfli harakatlaridan himoya qilish
  • Ushbu ob'ektning Write() usulini chaqirishdan oldin Konfiguratsiya kengaytmasi ob'ektining Xavfli harakatlardan himoya qilish xususiyati.

Xavfli harakatlardan himoya vositalaridan foydalanish zarurligini tekshirish quyidagi tartibda amalga oshiriladi:

1. Agar joriy foydalanuvchining "Xavfli faoliyatdan himoya qilish" katagi o'chirilsa, himoya o'chirilgan deb hisoblanadi.

2. Agar ma'lumotlar bazasiga ulanish qatori conf.cfg faylining DisableUnsafeActionProtection parametrida ko'rsatilgan naqshlardan birini qondirsa, himoya o'chirilgan hisoblanadi.

3. Agar tashqi ishlov berish yoki hisobotning Xavfli harakatlardan himoya qilish parametri yordamida himoya aniq o'chirilgan bo'lsa.

4. Xavfli harakatlardan himoya qilish kengaytmasi xususiyati yordamida himoya aniq o'chirilgan bo'lsa.

Gap shundaki, 1C mijoz-server versiyasidan foydalanganda tashqi ishlov berish/hisobotlar xavfsiz rejimda ochiladi, bunda imtiyozli rejimdan foydalanish taqiqlanadi. Imtiyozli rejim odatiy konfiguratsiyalarda juda tez-tez ishlatiladi: bosma shakllarni yaratish, turli xil xizmat tekshiruvlari (birjalarni ro'yxatdan o'tkazish) va boshqalar. Natijada, kirishni boshqarish tizimi bo'yicha muntazam hisobotni formasiz ishlatsangiz ham (sukut bo'yicha "ReportForm" umumiy shakli ishlatiladi) va shaxsiy hisobot sozlamalarini saqlasangiz (tegishli katalogda), siz kirishning etarli emasligi haqida xato olasiz. qatordan keyin rasmiy maqsadlarda foydalaniladigan turli konstantalar va seans parametrlariga bo‘lgan huquqlar SetPrivilegedMode(To'g'ri);

"To'g'ri" yechim tashqi ishlov berish va hisobotlarni BSP "Qo'shimcha hisobotlar va qayta ishlash" mexanizmlari orqali xavfsiz rejimni o'chirib qo'yish yoki ruxsatlarni qo'shish orqali ulash bo'ladi (mening fikrimcha, BSP 2.2.2.1 versiyasidan). Ammo, agar biron sababga ko'ra tashqi hisobot / ishlov berish fayllaridan foydalanish kerak bo'lsa, siz ma'lum bir ma'lumot bazasi uchun xavfsiz rejim xavfsizlik profili sifatida ishlatiladigan klaster xavfsizlik profilini sozlashingiz mumkin.

Men darhol shuni ta'kidlashni istardimki, bu variant afzal emas, lekin turli holatlar tufayli uni shunday soddalashtirilgan shaklda ishlatish mumkin. Misol uchun, menda turli shaharlarda bir nechta ma'lumotlar bazalari bor, umumiy mahalliy ma'lumotlar bazasi cheklangan huquqlarga ega, yopiq USB va boshqalar, men qaerdadir Buxgalteriya 2.0 dan foydalanaman va qayerdadir 3.0 dan foydalanaman, men deyarli barcha hisobotlarni ACS vositalaridan shakllarsiz tuzaman, shunda ular ikkala versiyada ham ochilgan. Ushbu hisobotlarning barchasini turli versiyalar va turli ma'lumotlar bazalari uchun saqlash juda ko'p mehnat talab qiladi va befoyda, chunki Yagona konfiguratsiya va bazaga oʻtish rejalashtirilgan...

Keling, profil yarataylik.
Klaster konsolida biz xavfsizlik profilini yaratamiz, unda biz bayroqlarni o'rnatamiz "Xavfsiz rejim xavfsizlik profili sifatida foydalanish mumkin" va "" bo'limida "To'liq kirishga ruxsat berilgan:" "imtiyozli rejimga".

Hisobotlardan foydalanish va oddiy ishlov berishning ko'p hollarda ushbu usul qo'llaniladi. Keyinchalik murakkab vaziyatlar uchun jarayonni tavsiflashning ma'nosi yo'q, chunki u hujjatlarda ko'rsatilgan (xesh miqdorini belgilash orqali ma'lum tashqi fayllar uchun xavfsizlik profillarini sozlash qobiliyati va boshqalar).

P.S. Men xavfsizlik profillari faqat CORP darajasida platforma va server litsenziyalaridan foydalanganda ishlaydi deb o'yladim, lekin bu funksiya 1C: Enterprise 8.3 platformasida ham ishlaydi (uni shartli ravishda PROF deb atash mumkin, Basic/PROF/CORP standart konfiguratsiyalariga o'xshash).

Tashqi ishlov berishning dasturiy ochilishi turiga ega bo'lgan ExternalProcessing global kontekst ob'ekti yordamida amalga oshiriladi Tashqi ishlov berish menejeri. 1C platformasining har bir ish rejimi uchun (muntazam dastur rejimi va boshqariladigan dastur rejimi) tashqi ishlov berish bilan ishlash uchun turli xil ob'ekt usullari qo'llaniladi.

Oddiy dastur rejimida tashqi ishlov berishni ishga tushirish

Oddiy dasturda siz tashqi ishlov berish faylining to'liq nomini olgan ExternalProcessing ob'ektining Create() usulidan foydalanishingiz kerak. Usul ob'ekt turini qaytaradi Tashqi ishlov berish, bu ob'ekt ochilayotgan tashqi ishlovdir. Agar siz tashqi ishlov berish shaklini ochishingiz kerak bo'lsa, qabul qilingan ob'ektda GetForm() usulini chaqiring, bu asosiy shaklni qaytaradi va uni ochish uchun Open() usulini chaqiring.


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

Tashqi ishlov berishda asosiy forma har doim oddiy, boshqariladigan forma esa qo'shimcha bo'lishi kerak, aks holda GetForm() usuli oddiy dastur rejimida ishlamaydi.

Boshqariladigan dastur rejimida tashqi ishlov berishni ishga tushirish

Boshqariladigan shakllar rejimida algoritm ijro kontekstiga ko'ra bo'linadi. Mijozda biz tashqi ishlov berish faylining to'liq nomidan foydalangan holda ikkilik ma'lumotlarni olamiz. Qabul qilingan ikkilik ma'lumotlarni serverga o'tkazamiz va uni vaqtincha saqlashga joylashtiramiz. Keyinchalik, vaqtinchalik saqlash manzili uzatiladigan ExternalProcessing ob'ektining Connect() usulini chaqirishingiz kerak. Usul ulangan tashqi ishlov berish nomini qaytaradi. Biz mijozga tashqi ishlov berish nomini qaytaramiz, ishlov berish shakliga string yo'lini yaratamiz va tashqi ishlov berish shaklini ochish uchun OpenForm() usulidan foydalanamiz.

&Serverda
Funktsiya GetExternalProcessingName(BinaryData)
AddressInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Qaytish ExternalProcessing.Connect(AddressInTemporaryStorage);
EndFunction

&OnClient
FullFileName = ""; // Tashqi ishlov berish faylining to'liq nomi.
FileData = yangi BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("Tashqi ishlov berish." + ExternalProcessingName + ".Form");

Tashqi ishlov berish uchun xavfsiz rejim

ExternalProcessing ob'ektining Create() va Connect() usullari kiruvchi SafeMode parametriga ega - tashqi ishlov berishni xavfsiz rejimda ulash belgisi. Agar parametr ko'rsatilmagan bo'lsa, ulanish xavfsiz rejimda amalga oshiriladi.
Xavfsiz rejim tizimni serverda "ishonchsiz" dastur kodini bajarishdan himoya qilish uchun mo'ljallangan. Potensial xavf Run() va Calculate() usullarida foydalanish uchun foydalanuvchi tomonidan kiritilgan tashqi ishlov berish yoki dastur kodidan kelib chiqadi.
Xavfsiz rejim quyidagi cheklovlarni qo'yadi:
  • agar u o'rnatilgan bo'lsa, imtiyozli rejim bekor qilinadi;
  • imtiyozli rejimga kirishga urinishlar e'tiborga olinmaydi;
  • COM ob'ektlari bilan operatsiyalarni amalga oshirish taqiqlanadi;
  • tashqi komponentlarni yuklash va ulash taqiqlanadi;
  • fayl tizimiga kirish taqiqlangan (vaqtinchalik fayllardan tashqari);
  • Internetga kirish taqiqlangan.
Interaktiv ravishda ochilgan jarayonlar xavfsiz rejimda bajarilmaydi, shuning uchun foydalanuvchiga tashqi protsessorlarni interaktiv ravishda ochishni taqiqlash uchun xavfsiz rejimda, shuningdek ruxsat darajasida tashqi protsessorlarni ochish mexanizmini amalga oshirish tavsiya etiladi.
Qayta ishlashning interaktiv ochilishini taqiqlash uchun foydalanuvchiga tayinlangan barcha rollarda "Tashqi ishlov berishning interaktiv ochilishi" ni to'g'ri olib tashlash kerak (1-rasmga qarang).
Shakl 1. Tashqi ishlov berish/hisobotlarni interaktiv ravishda ochish huquqlari
"Tashqi ishlov berishning interaktiv ochilishi" huquqi hech qanday tarzda Tashqi ishlov berish ob'ektiga ta'sir qilmaydi.

Tashqi hisobotlarning dasturiy ochilishi tashqi qayta ishlashga o'xshaydi, lekin siz tashqi hisobot turiga ega global kontekst ob'ektidan foydalanishingiz kerak. Tashqi hisobotlar menejeri.

Gap shundaki, 1C mijoz-server versiyasidan foydalanganda tashqi ishlov berish/hisobotlar xavfsiz rejimda ochiladi, bunda imtiyozli rejimdan foydalanish taqiqlanadi. Imtiyozli rejim odatiy konfiguratsiyalarda juda tez-tez ishlatiladi: bosma shakllarni yaratish, turli xil xizmat tekshiruvlari (birjalarni ro'yxatdan o'tkazish) va boshqalar. Natijada, kirishni boshqarish tizimi bo'yicha muntazam hisobotni formasiz ishlatsangiz ham (sukut bo'yicha "ReportForm" umumiy shakli ishlatiladi) va shaxsiy hisobot sozlamalarini saqlasangiz (tegishli katalogda), siz kirishning etarli emasligi haqida xato olasiz. qatordan keyin rasmiy maqsadlarda foydalaniladigan turli konstantalar va seans parametrlariga bo‘lgan huquqlar SetPrivilegedMode(To'g'ri);

"To'g'ri" yechim tashqi ishlov berish va hisobotlarni BSP "Qo'shimcha hisobotlar va qayta ishlash" mexanizmlari orqali xavfsiz rejimni o'chirib qo'yish yoki ruxsatlarni qo'shish orqali ulash bo'ladi (mening fikrimcha, BSP 2.2.2.1 versiyasidan). Ammo, agar biron sababga ko'ra tashqi hisobot / ishlov berish fayllaridan foydalanish kerak bo'lsa, siz ma'lum bir ma'lumot bazasi uchun xavfsiz rejim xavfsizlik profili sifatida ishlatiladigan klaster xavfsizlik profilini sozlashingiz mumkin.

Men darhol shuni ta'kidlashni istardimki, bu variant afzal emas, lekin turli holatlar tufayli uni shunday soddalashtirilgan shaklda ishlatish mumkin. Misol uchun, menda turli shaharlarda bir nechta ma'lumotlar bazalari bor, umumiy mahalliy ma'lumotlar bazasi cheklangan huquqlarga ega, yopiq USB va boshqalar, men qaerdadir Buxgalteriya 2.0 dan foydalanaman va qayerdadir 3.0 dan foydalanaman, men deyarli barcha hisobotlarni ACS vositalaridan shakllarsiz tuzaman, shunda ular ikkala versiyada ham ochilgan. Ushbu hisobotlarning barchasini turli versiyalar va turli ma'lumotlar bazalari uchun saqlash juda ko'p mehnat talab qiladi va befoyda, chunki Yagona konfiguratsiya va bazaga oʻtish rejalashtirilgan...

Keling, profil yarataylik.
Klaster konsolida biz xavfsizlik profilini yaratamiz, unda biz bayroqlarni o'rnatamiz "Xavfsiz rejim xavfsizlik profili sifatida foydalanish mumkin" va "" bo'limida "To'liq kirishga ruxsat berilgan:" "imtiyozli rejimga".

Hisobotlardan foydalanish va oddiy ishlov berishning ko'p hollarda ushbu usul qo'llaniladi. Keyinchalik murakkab vaziyatlar uchun jarayonni tavsiflashning ma'nosi yo'q, chunki u hujjatlarda ko'rsatilgan (xesh miqdorini belgilash orqali ma'lum tashqi fayllar uchun xavfsizlik profillarini sozlash qobiliyati va boshqalar).

P.S. Men xavfsizlik profillari faqat CORP darajasida platforma va server litsenziyalaridan foydalanganda ishlaydi deb o'yladim, lekin bu funksiya 1C: Enterprise 8.3 platformasida ham ishlaydi (uni shartli ravishda PROF deb atash mumkin, Basic/PROF/CORP standart konfiguratsiyalariga o'xshash).