Гаднах хэвлэх хавтан эсвэл боловсруулалтыг хэрхэн нэмэх вэ. Павел Чистов 8.3 аюулгүй горимыг суулгасан, ажиллахыг хориглоно

8.3.9.2033 платформ гарснаар шинэ механизм гарч ирэв "Аюултай үйлдлээс хамгаалах".

Энэхүү инновацийн ачаар 1С одоо боловсруулалтын нээлтийг тангараглаж эхлэв (зөвхөн биш):

Аюулгүй байдлын анхааруулга

"My_External_Processing.epf" файлаас "My External Processing"-г нээнэ.

Энэ файлыг олж авсан эх сурвалжид анхаарлаа хандуулахыг зөвлөж байна. Хэрэв нэмэлт модулиудыг хөгжүүлэх талаар эх сурвалжтай тохиролцоогүй эсвэл файлын агуулгын талаар эргэлзээтэй байгаа бол компьютер болон өгөгдөлд хор хөнөөл учруулж болзошгүй тул үүнийг нээхийг зөвлөдөггүй.

Энэ файлыг нээхийг зөвшөөрөх үү?

Тиймээс 1С хортой кодтой тэмцэхээр шийдсэн!

Аж ахуйн нэгжид энэ "хортой код" хаанаас гарах нь нууц хэвээр байна)

Аюултай байж болзошгүй үйлдлүүд нь:

  • Гадны тайлан, боловсруулалт эсвэл тохиргооны өргөтгөлийг ачаалж байна.
  • Тохиргоо/өргөтгөлийг ачаалж эсвэл шинэчилж байна.
  • Гадны тайлан/процессор эсвэл өргөтгөлөөс дараах боломжуудад хандах:
  • Үйлдлийн системийн командыг гүйцэтгэж байна.
  • Хэрэглэгчийн удирдлага (мэдээллийн сангийн хэрэглэгчийн талаарх мэдээллийг бичих, устгах).
  • Гадаад боловсруулалтын менежерийн Connect() аргыг дуудаж байна (тайлангууд).
  • ExtendConfiguration.Write() аргыг дуудаж байна.
  • COM объектуудтай ажиллах.

Энэ "гайхамшгийг" хэрхэн унтраах вэ?

Үүнийг хийхийн тулд та 1С Enterprise-ийг тохируулагч горимд ажиллуулах хэрэгтэй.
"Захиргаа" - "Хэрэглэгчид" цэсийг сонгоно уу.
Манай хэрэглэгчдэд нээгдэх цонхонд та хэрэглэгчийн тохиргооны цонхыг нээж, "Үндсэн" табын сонголтыг арилгах хэрэгтэй. "Аюултай үйлдлээс хамгаалах"

Үүнийг идэвхгүй болгох өөр аргууд байдаг:

Аюултай үйлдлээс хамгаалах хамгаалалт идэвхгүй болох мэдээллийн баазуудын жагсаалтыг одоо зааж өгөх боломжтой боллоо.
Энэ функц нь conf.cfg файл дахь DisableUnsafeActionProtection параметрийг хариуцдаг бөгөөд энэ нь холболтын мөр нь DisableUnsafeActionProtection параметрт заасан маскуудыг хангасан зарим мэдээллийн сангийн бүх хэрэглэгчдэд аюултай үйлдлээс хамгаалах механизмыг идэвхгүй болгох боломжийг олгодог.

Энэ параметрт та ";" тэмдгээр тусгаарлагдсан хэд хэдэн маскыг зааж өгч болно, жишээлбэл:

DisableUnsafeActionProtection=test_.*;thage_.*;

Нэмж дурдахад, хэрэглэгчийн аюултай үйлдлээс хамгаалах хамгаалалтыг програмын аргаар идэвхгүй болгож, дараах параметрүүд болон шинж чанаруудыг ашиглах боломжтой.

  • Гадны боловсруулалтын (тайлагнах) менежерүүдийн Connect() аргуудын аюултай үйлдлээс параметрийн хамгаалалт
  • Энэ объектын Write() аргыг дуудахын өмнө Configuration Extension объектын Аюултай үйлдлээс хамгаалах шинж чанар.

Аюултай үйлдлээс хамгаалах хамгаалалтыг ашиглах хэрэгцээг шалгах ажлыг дараах дарааллаар гүйцэтгэнэ.

1. Хэрэв одоогийн хэрэглэгчийн "Аюултай үйлдлээс хамгаалах" нүдийг арилгавал хамгаалалт идэвхгүй болсон гэж үзнэ.

2. Хэрэв infobase-тай холбогдох хэлхээ нь conf.cfg файлын DisableUnsafeActionProtection параметрт заасан загваруудын аль нэгийг хангаж байвал хамгаалалтыг идэвхгүй гэж үзнэ.

3. Гадны боловсруулалт эсвэл тайлангийн Аюултай үйлдлээс хамгаалах параметрийг ашиглан хамгаалалтыг тодорхой идэвхгүй болгосон бол.

4. Аюултай үйлдлээс хамгаалах өргөтгөлийн шинж чанарыг ашиглан хамгаалалтыг тодорхой идэвхгүй болгосон бол.

Баримт нь 1С-ийн клиент-серверийн хувилбарыг ашиглах үед гадаад боловсруулалт/тайлангууд аюулгүй горимд нээгддэг бөгөөд үүнд давуу эрхтэй горимыг ашиглахыг хориглодог. Мөн давуу эрхтэй горимыг ердийн тохиргоонд ихэвчлэн ашигладаг: хэвлэмэл маягт үүсгэх, янз бүрийн үйлчилгээний шалгалт (биржийн бүртгэл) гэх мэт. Үүний үр дүнд хандалтын хяналтын системийн тухай тогтмол тайланг маягтгүйгээр (өгөгдмөл байдлаар "ReportForm" ерөнхий хэлбэрийг ашигладаг) ашиглаж, захиалгат тайлангийн тохиргоог (харгалзах лавлах хэсэгт) хадгалсан ч гэсэн та нэвтрэх эрх хангалтгүй гэсэн алдаа хүлээн авах болно. мөрийн дараа албан хэрэгцээнд ашиглагддаг төрөл бүрийн тогтмолууд болон сесс параметрүүдийн эрх SetPrivilegedMode(Үнэн) ;

"Зөв" шийдэл нь аюулгүй горимыг идэвхгүй болгох эсвэл зөвшөөрөл нэмэх (миний бодлоор BSP хувилбар 2.2.2.1) бүхий BSP "Нэмэлт тайлан, боловсруулалт" механизмаар дамжуулан гадаад боловсруулалт, тайланг холбох явдал юм. Гэхдээ ямар нэг шалтгааны улмаас гадны тайлагнах/боловсруулах файлуудыг ашиглах шаардлагатай бол та тодорхой мэдээллийн сангийн аюулгүй горимын хамгаалалтын профайл болгон ашигладаг кластерын хамгаалалтын профайлыг тохируулж болно.

Энэ сонголтыг хийх нь илүү тохиромжтой биш гэдгийг би нэн даруй тэмдэглэхийг хүсч байна, гэхдээ янз бүрийн нөхцөл байдлаас шалтгаалан ийм хялбаршуулсан хэлбэрээр ашиглаж болно. Жишээлбэл, би өөр өөр хотуудад хэд хэдэн мэдээллийн сантай, хатуу хязгаарлагдмал эрхтэй, хаалттай USB гэх мэт нийтлэг орон нутгийн мэдээллийн сантай, хаа нэгтээ Нягтлан бодох бүртгэл 2.0, хаа нэгтээ 3.0 ашигладаг бол би бараг бүх тайланг ACS хэрэгслийг маягтгүйгээр хийдэг. хоёр хувилбарт нээгдсэн. Эдгээр бүх тайлангуудыг өөр өөр хувилбарууд болон өөр өөр мэдээллийн санд хөтлөх нь хөдөлмөр их шаарддаг бөгөөд дэмий зүйл юм. Нэг тохиргоо, суурь руу шилжих төлөвлөгөөтэй байгаа...

Профайл үүсгэцгээе.
Кластерийн консол дээр бид хамгаалалтын профайлыг үүсгэж, тугуудыг байрлуулдаг "Аюулгүй горимын хамгаалалтын профайл болгон ашиглаж болно""Бүрэн хандалтыг зөвшөөрсөн:" хэсэгт " "онцгой горимд".

Тайлан ашиглах, энгийн боловсруулалт хийх олон тохиолдолд энэ аргыг хэрэглэх болно. Илүү төвөгтэй нөхцөл байдлын хувьд үйл явцыг тайлбарлах нь утгагүй юм, учир нь Энэ нь баримт бичигт тусгагдсан байдаг (хэшийн хэмжээг зааж өгөх замаар тодорхой гадаад файлуудын аюулгүй байдлын профайлыг тохируулах чадвар гэх мэт).

P.S. Аюулгүй байдлын профайл нь зөвхөн CORP түвшинд платформ болон серверийн лицензийг ашиглах үед л ажилладаг гэж би бодсон, гэхдээ энэ функц нь 1C: Enterprise 8.3 платформ дээр ажилладаг (үүнийг үндсэн/PROF/CORP стандарт тохиргооны адил нөхцөлтэйгээр PROF гэж нэрлэж болно)

Баримт нь 1С-ийн клиент-серверийн хувилбарыг ашиглах үед гадаад боловсруулалт/тайлангууд аюулгүй горимд нээгддэг бөгөөд үүнд давуу эрхтэй горимыг ашиглахыг хориглодог. Мөн давуу эрхтэй горимыг ердийн тохиргоонд ихэвчлэн ашигладаг: хэвлэмэл маягт үүсгэх, янз бүрийн үйлчилгээний шалгалт (биржийн бүртгэл) гэх мэт. Үүний үр дүнд хандалтын хяналтын системийн тухай тогтмол тайланг маягтгүйгээр (өгөгдмөл байдлаар "ReportForm" ерөнхий хэлбэрийг ашигладаг) ашиглаж, захиалгат тайлангийн тохиргоог (харгалзах лавлах хэсэгт) хадгалсан ч гэсэн та нэвтрэх эрх хангалтгүй гэсэн алдаа хүлээн авах болно. мөрийн дараа албан хэрэгцээнд ашиглагддаг төрөл бүрийн тогтмолууд болон сесс параметрүүдийн эрх SetPrivilegedMode(Үнэн) ;

"Зөв" шийдэл нь аюулгүй горимыг идэвхгүй болгох эсвэл зөвшөөрөл нэмэх (миний бодлоор BSP хувилбар 2.2.2.1) бүхий BSP "Нэмэлт тайлан, боловсруулалт" механизмаар дамжуулан гадаад боловсруулалт, тайланг холбох явдал юм. Гэхдээ ямар нэг шалтгааны улмаас гадны тайлагнах/боловсруулах файлуудыг ашиглах шаардлагатай бол та тодорхой мэдээллийн сангийн аюулгүй горимын хамгаалалтын профайл болгон ашигладаг кластерын хамгаалалтын профайлыг тохируулж болно.

Энэ сонголтыг хийх нь илүү тохиромжтой биш гэдгийг би нэн даруй тэмдэглэхийг хүсч байна, гэхдээ янз бүрийн нөхцөл байдлаас шалтгаалан ийм хялбаршуулсан хэлбэрээр ашиглаж болно. Жишээлбэл, би өөр өөр хотуудад хэд хэдэн мэдээллийн сантай, хатуу хязгаарлагдмал эрхтэй, хаалттай USB гэх мэт нийтлэг орон нутгийн мэдээллийн сантай, хаа нэгтээ Нягтлан бодох бүртгэл 2.0, хаа нэгтээ 3.0 ашигладаг бол би бараг бүх тайланг ACS хэрэгслийг маягтгүйгээр хийдэг. хоёр хувилбарт нээгдсэн. Эдгээр бүх тайлангуудыг өөр өөр хувилбарууд болон өөр өөр мэдээллийн санд хөтлөх нь хөдөлмөр их шаарддаг бөгөөд дэмий зүйл юм. Нэг тохиргоо, суурь руу шилжих төлөвлөгөөтэй байгаа...

Профайл үүсгэцгээе.
Кластерийн консол дээр бид хамгаалалтын профайлыг үүсгэж, тугуудыг байрлуулдаг "Аюулгүй горимын хамгаалалтын профайл болгон ашиглаж болно""Бүрэн хандалтыг зөвшөөрсөн:" хэсэгт " "онцгой горимд".

Тайлан ашиглах, энгийн боловсруулалт хийх олон тохиолдолд энэ аргыг хэрэглэх болно. Илүү төвөгтэй нөхцөл байдлын хувьд үйл явцыг тайлбарлах нь утгагүй юм, учир нь Энэ нь баримт бичигт тусгагдсан байдаг (хэшийн хэмжээг зааж өгөх замаар тодорхой гадаад файлуудын аюулгүй байдлын профайлыг тохируулах чадвар гэх мэт).

P.S. Аюулгүй байдлын профайл нь зөвхөн CORP түвшинд платформ болон серверийн лицензийг ашиглах үед л ажилладаг гэж би бодсон, гэхдээ энэ функц нь 1C: Enterprise 8.3 платформ дээр ажилладаг (үүнийг үндсэн/PROF/CORP стандарт тохиргооны адил нөхцөлтэйгээр PROF гэж нэрлэж болно)

Та Document Upload програмыг энгийн хэрэглэгчээр ажиллуулахад "Аюулгүй горим тохируулагдсан. Үйлдлийг хориглосон" гэсэн алдаа гарч ирнэ.

Учир нь энэ хүндрэл үүсдэг Гадны боловсруулалтыг эхлүүлэх хангалттай эрх байхгүй. Хандалтын эрхийг тохируулахын тулд нэрийн өмнөөс 1С Enterprise горимд мэдээллийн сан руу нэвтэрнэ үү Администратормөн хэсэг рүү очно уу Хэрэглэгч ба эрхийн тохиргоо / Бүлгийн профайл руу нэвтрэх,дарна уу Бүлэг үүсгэхийн тулд.

Бүлгийн нэрийг оруулаад, энэ бүлгийн хэрэглэгчид ашиглах боломжтой дүрүүдийн нүдийг чагтална уу -

  • Гадны тайланг интерактив нээх, боловсруулах
  • Нэмэлт тайланг ашиглах, боловсруулах

дарна уу Хадгалаад хаа


Хэрэглэгчдийн цэс рүү буцаж очоод жагсаалтаас Баримт бичиг байршуулах програмтай ажиллах ажилтныг сонгоно уу. Зөвшөөрөл дээр дарна уу. Профайлуудын жагсаалтаас өмнө нь үүсгэсэн профайлыг сонгоно уу. дарна уу Бичнэ үү.


Хэрэглэгчид боловсруулж эхлэхийн тулд гадаад боловсруулалтын жагсаалтад Баримт бичгийн ачааллыг нэмэхийг зөвлөж байна. Үүнийг хийхийн тулд цэсэнд оруулна уу Захиргаа / Хэвлэсэн маягт ба боловсруулалт / Нэмэлт тайлан, боловсруулалтшинэ боловсруулалт үүсгэх. "Documents.epf татаж авах" файлын замыг зааж, нэр өгнө үү. Цэс дэх боловсруулалтын байршлыг зааж, хэрэглэгч үүнийг дараа нь эхлүүлэх боломжтой, жишээлбэл, цэсийг сонгоно уу Лавлахууд

Түргэн хандалтын зүйл дээр дарснаар та ямар хэрэглэгчид боловсруулахад хандах эрхтэй болохыг зааж өгнө.


Тохируулсны дараа товшино уу Хадгалаад хаа. Боловсруулалтыг эхлүүлэхийн тулд хэрэглэгчид зөвхөн мэдээллийн санд дахин нэвтэрч, нэвтрэх цэснээс (жишээ нь - лавлах) нээгээд дарна уу. Гүйцэтгэх.


Нээлттэй Цэс - Бүх функцууд.... жагсаалтаас "Аюулгүй байдлын профайл ашиглаж байна" гэсэн сонголтыг олоорой.


Зүгээр л "Аюулгүй байдлын профайл ашиглаж байна" гэсэн сонголтыг арилгана уу.


Үүний дараа програм амжилттай эхлэх болно.

Гадны боловсруулалтыг программчлан нээх нь тухайн төрөлтэй ExternalProcessing глобал контекст объектыг ашиглан хийгддэг Гадаад боловсруулалтын менежер. 1С платформын үйлдлийн горим бүрийн хувьд (ердийн хэрэглээний горим ба удирддаг програмын горим) гадаад боловсруулалттай ажиллахын тулд өөр өөр объектын аргыг ашигладаг.

Ердийн хэрэглээний горимд гадаад боловсруулалтыг ажиллуулж байна

Ердийн программ дээр та гадаад боловсруулалтын файлын бүтэн нэрийг дамжуулсан ExternalProcessing объектын Create() аргыг ашиглах ёстой. Арга нь төрлийн объектыг буцаана Гадаад боловсруулалт, энэ объект нь нээгдэж буй гадаад боловсруулалт юм. Хэрэв та гадаад боловсруулалтын маягтыг нээх шаардлагатай бол хүлээн авсан объект дээр үндсэн маягтыг буцаах GetForm() аргыг дуудаж, нээхийн тулд Open() аргыг дуудна уу.


Боловсруулж байна = ExternalProcessing.Create(FullFileName);
Processing.GetForm().Open();

Гадны боловсруулалтад үндсэн хэлбэр нь үргэлж энгийн байх ёстой бөгөөд хяналттай хэлбэр нь үргэлж нэмэлт байх ёстой, эс тэгвээс GetForm() арга нь ердийн хэрэглээний горимд ажиллахгүй.

Удирдлагатай програмын горимд гадаад боловсруулалтыг ажиллуулж байна

Удирдлагатай маягтын горимд алгоритм нь гүйцэтгэлийн контекстээр хуваагдана. Үйлчлүүлэгч дээр бид гадаад боловсруулалтын файлын бүтэн нэрийг ашиглан хоёртын өгөгдлийг хүлээн авдаг. Бид хүлээн авсан хоёртын өгөгдлийг сервер рүү шилжүүлж, түр хадгалах газарт байрлуулна. Дараа нь та түр хадгалах хаягийг дамжуулдаг ExternalProcessing объектын Connect() аргыг дуудах хэрэгтэй. Энэ арга нь холбогдсон гадаад боловсруулалтын нэрийг буцаана. Бид гадаад боловсруулалтын нэрийг үйлчлүүлэгч рүү буцааж, боловсруулах маягт руу мөрийн замыг үүсгэж, OpenForm() аргыг ашиглан гадаад боловсруулалтын маягтыг нээдэг.

&Сервер дээр
GetExternalProcessingName функц (BinaryData)
AddressInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Буцах ExternalProcessing.Connect(AddressInTemporaryStorage);
Төгсгөлийн функц

&OnClient
FullFileName = ""; // Гадаад боловсруулах файлын бүтэн нэр.
FileData = шинэ BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Гадны боловсруулалтын аюулгүй горим

ExternalProcessing объектын Create() болон Connect() аргууд нь аюулгүй горимд гадаад боловсруулалтыг холбосон шинж тэмдэг болох SafeMode ирж буй параметртэй байна. Хэрэв параметрийг заагаагүй бол холболтыг аюулгүй горимд хийнэ.
Аюулгүй горим нь сервер дээр "найдваргүй" програмын кодыг ажиллуулахаас системийг хамгаалах зорилготой юм. Боломжит аюул нь Run() болон Calculate() аргуудад ашиглахаар хэрэглэгчийн оруулсан гадаад боловсруулалт эсвэл програмын кодоос үүдэлтэй.
Аюулгүй горим нь дараахь хязгаарлалтуудыг тавьдаг.
  • хэрэв суулгасан бол давуу эрхтэй горим цуцлагдана;
  • давуу горимд орох оролдлогыг үл тоомсорлодог;
  • COM объектуудтай ажиллахыг хориглоно;
  • гадаад эд ангиудыг ачаалах, холбохыг хориглоно;
  • файлын системд хандахыг хориглоно (түр зуурын файлуудаас бусад);
  • Интернетэд нэвтрэхийг хориглоно.
Интерактив байдлаар нээгдсэн процессууд нь аюулгүй горимд хийгддэггүй тул гадаад процессоруудыг аюулгүй горимд нээх механизмыг хэрэгжүүлэхийг зөвлөж байна, түүнчлэн хэрэглэгчийн гадаад процессорыг интерактив байдлаар нээхийг хориглох зөвшөөрлийн түвшинд.
Боловсруулалтыг интерактив нээхийг хориглохын тулд хэрэглэгчдэд олгосон бүх үүрэгт "Гадаад боловсруулалтын интерактив нээх" зөвийг арилгах шаардлагатай (Зураг 1-ийг үз).
Зураг 1. Гадны боловсруулалт/тайланг интерактив байдлаар нээх эрх
"Гадаад боловсруулалтын интерактив нээх" эрх нь Гадаад боловсруулалтын объектод ямар ч байдлаар нөлөөлөхгүй.

Гадны тайланг программчлан нээх нь гадаад боловсруулалттай төстэй боловч та төрөлтэй ExternalReports глобал контекст объектыг ашиглах хэрэгтэй. Гадаад тайлангийн менежер.