របៀបសុវត្ថិភាពត្រូវបានកំណត់ទៅជាការផ្លាស់ប្តូរ xml ជាសកល។ របៀបសុវត្ថិភាពត្រូវបានកំណត់។ ប្រតិបត្តិការនេះត្រូវបានហាមឃាត់។ របៀបសុវត្ថិភាពសម្រាប់ដំណើរការខាងក្រៅ

ដោយប្រើ "ការគ្រប់គ្រងពាណិជ្ជកម្ម 11.3" ជាឧទាហរណ៍ យើងនឹងពិចារណាពីដំណើរការសាមញ្ញនៃការភ្ជាប់ទម្រង់បោះពុម្ពខាងក្រៅ។ យើងក៏នឹងពិចារណាផងដែរអំពីលក្ខណៈពិសេសនៃប្រព័ន្ធសុវត្ថិភាពថ្មី។

លោតរហ័ស

សកម្មភាពបឋម

ដំបូងអ្នកគួរតែ បើកមុខងារឬពិនិត្យមើលភាពអាចរកបានរបស់វា។

1. ចូលដោយមានសិទ្ធិពេញលេញទៅកាន់មូលដ្ឋានទិន្នន័យព័ត៌មាន។

2. ចូលទៅកាន់មឺនុយ "ទិន្នន័យមេ និងការគ្រប់គ្រង"/ទប់ស្កាត់ "រដ្ឋបាល"/បញ្ជា "បោះពុម្ពទម្រង់ របាយការណ៍ និងដំណើរការ"។

ការបន្ថែម

នៅក្នុងផ្នែកដែលបើក៖

យើងបន្ថែមដំណើរការដោយប្រើប៊ូតុង "បង្កើត" (នេះសំខាន់) ឬ "ធ្វើបច្ចុប្បន្នភាព!" ដែលមានស្រាប់៖

  • ជ្រើសរើសវានៅក្នុងបញ្ជី (ប្រសិនបើមិនបានជ្រើសរើស ឬទទេ ពាក្យបញ្ជានឹងមិនដំណើរការ ប៉ុន្តែនឹងមិននិយាយអ្វីទេ)។
  • ចុចប៊ូតុង "ផ្ទុកពីឯកសារ" ។

បន្ទាប់ពីរូបរាងសម្រាប់ 1C នៅក្នុងដំណើរការខាងក្រៅ ការត្រួតពិនិត្យសុវត្ថិភាពបានបង្ហាញខ្លួននៅក្នុងការកំណត់រចនាសម្ព័ន្ធថ្មី។

អ្នកគួរតែដំឡើងតែដំណើរការដែលបានបង្កើតដោយឯករាជ្យ ឬទទួលបានតាមរយៈបណ្តាញទំនាក់ទំនងដែលគេស្គាល់ (មិនមែនមកពីសំបុត្រទេ តែមកពីគេហទំព័រដែលមានវិញ្ញាបនបត្រត្រឹមត្រូវ ឬផ្តល់ដោយបុគ្គលិករបស់អ្នកអភិវឌ្ឍន៍ បញ្ជាក់ដោយគាត់តាមទូរស័ព្ទ)។

ប្រសិនបើអ្វីៗគ្រប់យ៉ាងនៅក្នុងដំណើរការត្រូវបានចេញវេជ្ជបញ្ជាដោយអ្នកអភិវឌ្ឍន៍ នោះ "ទីកន្លែង" នឹងត្រូវបានកំណត់ - វត្ថុដែលដំណើរការនឹងត្រូវពាក់ព័ន្ធ ពាក្យបញ្ជានឹងលេចឡើង។
ដើម្បីដំណើរការគ្រាន់តែចុច "រក្សាទុកនិងបិទ" ។

ការប្រឡង

ភ្លាមៗបន្ទាប់ពីនេះអាស្រ័យលើប្រភេទនៃការព្យាបាល៖

  • ទម្រង់ដែលបានបោះពុម្ពមាននៅពេលបើកឯកសារ ឬពីបញ្ជីរបស់វា (សម្រាប់ឯកសារដែលបានបើករួចហើយនៅពេលបើកវាម្តងទៀត) ដោយចុចប៊ូតុង "បោះពុម្ព" ។
  • ដំណើរការមាននៅក្នុងផ្នែក "ដំណើរការបន្ថែម" នៅក្នុងប្រព័ន្ធរងនីមួយៗ
  • ដំណើរការនៃការបំពេញដោយប្រើប៊ូតុង "បំពេញ" នៃបញ្ជី ឬផ្ទាំងបញ្ជាសំខាន់នៃទម្រង់វត្ថុ។

សម្រាប់ដំណើរការខាងលើ ការបើកដំណើរការនឹងមើលទៅដូចនេះ៖

ប្រសិនបើឯកសារថ្មី វាគួរតែត្រូវបានសរសេរចុះ យន្តការដំណើរការខាងក្រៅនឹងព្រមានអ្នកអំពីបញ្ហានេះ៖

ឥរិយាបថបន្ថែមទៀតអាស្រ័យលើមុខងារដែលភ្ជាប់មកជាមួយ៖ វាអាចទៅរួចក្នុងការបើកទម្រង់ ឬដំណើរការទិន្នន័យ។

ការព្រមានសុវត្ថិភាពក្នុង 1C

ការចេញផ្សាយ និងការកំណត់រចនាសម្ព័ន្ធវេទិកាថ្មីបានបង្កើនការការពារប្រឆាំងនឹងការចាប់ផ្តើមកម្មវិធីព្យាបាទ។

ដំណើរការអាចបណ្តាលឱ្យ Excel ចាប់ផ្តើមដំណើរការ ក្នុងករណីនេះប្រព័ន្ធរងសុវត្ថិភាពថ្មីក៏នឹងព្រមានអ្នកផងដែរ៖

ក្នុងករណីនេះ កូដអ្នកដោះស្រាយត្រូវបានរំខាន។

ប្រសិនបើអ្នកចុច “បាទ/ចាស” ប្រព័ន្ធនឹងសួរអ្នកឱ្យដំណើរការពាក្យបញ្ជាម្តងទៀត៖

វាអាចទៅរួចសម្រាប់អ្នកប្រើប្រាស់ infobase ដើម្បីបិទការការពារពីសកម្មភាពគ្រោះថ្នាក់តាមរយៈ "អ្នកកំណត់រចនាសម្ព័ន្ធ"៖

វាមិនអាចផ្លាស់ប្តូរពីរបៀប "សហគ្រាស" បានទេ ប្រហែលជាវាត្រូវបានធ្វើដោយចេតនា ហើយវាអាចលេចឡើងបន្ទាប់ពីការអាប់ដេត។

វាគួរតែត្រូវបានកត់សម្គាល់ផងដែរថាប្រសិនបើដំណើរការប្រើ Excel វាត្រូវតែដំណើរការក្នុងរបៀបមិនមានសុវត្ថិភាព (នេះជាករណីមុនពេលការណែនាំប្រព័ន្ធថ្មីនេះដំណើរការស្របគ្នា):

"មិនអាចផ្ទុក MS EXCEL បានទេ!!!" "របៀបសុវត្ថិភាពត្រូវបានកំណត់។ ប្រតិបត្តិការត្រូវបានហាមឃាត់"

នៅក្នុងដំណើរការខាងក្រៅវាមើលទៅដូចនេះ:

អ្នកអភិវឌ្ឍន៍គួរតែកំណត់វាទៅជា "មិនពិត" នៅក្នុងការពិពណ៌នាដំណើរការខាងក្នុង នោះអ្វីៗនឹងល្អ៖

Function InformationOnExternalProcessing() ExportRegistrationParameters = រចនាសម្ព័ន្ធថ្មី;

ប៉ារ៉ាម៉ែត្រចុះឈ្មោះ.Insert("SafeMode", False);

នៅពេលធ្វើបច្ចុប្បន្នភាពការកំណត់ អត្ថបទព្រមានក៏បានលេចឡើងអំពីប្រភពដែលឯកសារកំណត់រចនាសម្ព័ន្ធត្រូវបានទទួល៖ ការពិតគឺថានៅពេលប្រើកំណែម៉ាស៊ីនភ្ញៀវ-ម៉ាស៊ីនមេនៃ 1C ដំណើរការ/របាយការណ៍ខាងក្រៅត្រូវបានបើកក្នុងរបៀបសុវត្ថិភាព ដែលការប្រើប្រាស់មុខងារដែលមានសិទ្ធិត្រូវបានហាមឃាត់។ ហើយរបៀបដែលមានសិទ្ធិត្រូវបានប្រើជាញឹកញាប់ក្នុងការកំណត់រចនាសម្ព័ន្ធធម្មតា៖ ការបង្កើតទម្រង់បោះពុម្ព ការត្រួតពិនិត្យសេវាកម្មផ្សេងៗ (ការចុះឈ្មោះការផ្លាស់ប្តូរ) ជាដើម។ ជាលទ្ធផល សូម្បីតែការប្រើប្រាស់របាយការណ៍ធម្មតានៅលើប្រព័ន្ធគ្រប់គ្រងការចូលប្រើដោយគ្មានទម្រង់ (តាមលំនាំដើម ទម្រង់ទូទៅ "ReportForm" ត្រូវបានប្រើ) និងការរក្សាទុកការកំណត់របាយការណ៍ផ្ទាល់ខ្លួន (ក្នុងថតដែលត្រូវគ្នា) អ្នកនឹងទទួលបានកំហុសអំពីការចូលប្រើមិនគ្រប់គ្រាន់ សិទ្ធិ​ចំពោះ​ចំនួន​ថេរ និង​ប៉ារ៉ាម៉ែត្រ​សម័យ​ផ្សេងៗ​ដែល​បាន​ប្រើ​សម្រាប់​គោល​បំណង​ផ្លូវការ​បន្ទាប់​ពី​បន្ទាត់

SetPrivilegedMode(ពិត);

ខ្ញុំចង់កត់សម្គាល់ភ្លាមៗថាជម្រើសនេះមិនអំណោយផលទេ ប៉ុន្តែដោយសារកាលៈទេសៈផ្សេងៗ វាអាចប្រើក្នុងទម្រង់សាមញ្ញបែបនេះ។ ជាឧទាហរណ៍ ខ្ញុំមានមូលដ្ឋានទិន្នន័យជាច្រើននៅក្នុងទីក្រុងផ្សេងៗគ្នា ដែលជាមូលដ្ឋានទូទៅមួយដែលមានសិទ្ធិមានកំណត់យ៉ាងតឹងរ៉ឹង បិទ USB ។ល។ កន្លែងណាមួយខ្ញុំប្រើគណនេយ្យ 2.0 និងកន្លែងណាមួយ 3.0 ខ្ញុំធ្វើរបាយការណ៍ស្ទើរតែទាំងអស់ដោយប្រើឧបករណ៍ ACS ដោយគ្មានទម្រង់ ដូច្នេះពួកគេ បានបើកនៅក្នុងកំណែទាំងពីរ។ ការរក្សារបាយការណ៏ទាំងអស់នេះសម្រាប់កំណែផ្សេងគ្នា និងមូលដ្ឋានទិន្នន័យផ្សេងគ្នាគឺពឹងផ្អែកលើកម្លាំងពលកម្ម និងឥតប្រយោជន៍ ពីព្រោះ មានគម្រោងប្តូរទៅការកំណត់រចនាសម្ព័ន្ធតែមួយ និងមូលដ្ឋាន...

តោះបង្កើតប្រវត្តិរូប។
នៅក្នុងកុងសូលចង្កោម យើងបង្កើតទម្រង់សុវត្ថិភាព ដែលយើងកំណត់ទង់ "អាចប្រើជាទម្រង់សុវត្ថិភាព Safe Mode"និង " នៅក្នុងផ្នែក "ការចូលប្រើពេញលេញត្រូវបានអនុញ្ញាត៖" "ទៅរបៀបដែលមានសិទ្ធិ" ។

ក្នុងករណីជាច្រើននៃការប្រើប្រាស់របាយការណ៍ និងដំណើរការសាមញ្ញ វិធីសាស្ត្រនេះនឹងអាចអនុវត្តបាន។ សម្រាប់ស្ថានភាពស្មុគ្រស្មាញជាងនេះ វាគ្មានចំណុចណាក្នុងការពិពណ៌នាអំពីដំណើរការនោះទេ ពីព្រោះ វាត្រូវបានគូសបញ្ជាក់នៅក្នុងឯកសារ (សមត្ថភាពក្នុងការកំណត់ទម្រង់សុវត្ថិភាពសម្រាប់ឯកសារខាងក្រៅជាក់លាក់ដោយបញ្ជាក់ចំនួនលេខសំងាត់របស់វា ។ល។)។

P.S. ខ្ញុំបានគិតថាទម្រង់សុវត្ថិភាពដំណើរការតែនៅពេលប្រើ platform និង server license នៅកម្រិត CORP ប៉ុន្តែមុខងារនេះក៏ដំណើរការលើ platform 1C:Enterprise 8.3 (វាអាចត្រូវបានហៅតាមលក្ខខណ្ឌថា PROF ដោយភាពស្រដៀងគ្នាជាមួយនឹងការកំណត់ស្តង់ដារ Basic/PROF/CORP)

បោះពុម្ព (Ctrl+P)

វត្ថុកំណត់រចនាសម្ព័ន្ធ

ប្រសិនបើចាំបាច់ត្រូវប្រើកូដកម្មវិធី “មិនគួរឱ្យទុកចិត្ត” នៅលើម៉ាស៊ីនមេ៖ ដំណើរការខាងក្រៅ ឬកូដកម្មវិធីដែលបានបញ្ចូលដោយអ្នកប្រើប្រាស់សម្រាប់ប្រើក្នុងវិធីសាស្ត្រ Run() និង Calculate() អ្នកអាចប្រើរបៀបប្រតិបត្តិការប្រកបដោយសុវត្ថិភាព។

នៅក្នុងរបៀបសុវត្ថិភាព៖

  • របៀបដែលមានសិទ្ធិ បានលុបចោល.
  • កំពុងប្តូរទៅរបៀបដែលមានសិទ្ធិ មិនអើពើ.
  • ហាមឃាត់ប្រតិបត្តិការដែលនាំឱ្យមានការប្រើប្រាស់មធ្យោបាយខាងក្រៅទាក់ទងនឹង 1C: វេទិកាសហគ្រាស (រួមទាំង analogues ដែលមិនរារាំងនៃវិធីសាស្រ្តដែលបានបញ្ជាក់):
  • យន្តការ COM៖
    • COMObject();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • កំពុងផ្ទុកសមាសធាតុខាងក្រៅ៖
    • LoadExternalComponent();
    • ConnectExternalComponent()។
  • ការចូលប្រើប្រព័ន្ធឯកសារ៖
    • ValueInFile();
    • CopyFile();
    • MergeFiles();
    • MoveFile();
    • SplitFile();
    • CreateDirectory();
    • លុបឯកសារ();
    • ឯកសារថ្មី;
    • xBase ថ្មី;
    • ធាតុ HTML.OpenFile();
    • អានHTML.OpenFile();
    • ReadXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadingFastInfoset.OpenFile();
    • RecordFastInfoset.OpenFile();
    • CanonicalXMLRecord.OpenFile();
    • TransformXSL.LoadFromFile();
    • WriteZipFile.Open();
    • ReadingZipFile.Open();
    • New ReadText(), ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ;
    • ReadText.Open() ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ។
    • NewTextRecord(), ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ;
    • WriteText.Open() ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ។
    • NewTextExtract();
    • ការផ្លាស់ប្តូរលក្ខណៈសម្បត្តិ ExtractText.FileName;
    • ExtractText.Write();
    • រូបភាពថ្មី() ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ។
    • Picture.Write();
    • ថ្មី BinaryData();
    • BinaryData.Write();
    • NewDataRecord(), ប្រសិនបើប៉ារ៉ាម៉ែត្រទីមួយគឺជាខ្សែអក្សរ;
    • New ReadData(), មានប៉ារ៉ាម៉ែត្រទីមួយ - ខ្សែអក្សរមួយ;
    • វិធីសាស្រ្តទាំងអស់នៃវត្ថុ FileStreamManager;
    • ថ្មី FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • TabularDocument.Read();
    • TabularDocument.Write();
    • TabularDocument.Print(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDocument.Read();
    • TextDocument.Write().
  • ការចូលប្រើអ៊ីនធឺណិត៖
    • ការតភ្ជាប់អ៊ីនធឺណិតថ្មី,
    • InternetMail ថ្មី,
    • InternetProxy ថ្មី,
    • ការតភ្ជាប់ HTTP ថ្មី,
    • ការតភ្ជាប់ FTP ថ្មី។

យកចិត្តទុកដាក់! នៅពេលអនុវត្តប្រតិបត្តិការហាមឃាត់ ករណីលើកលែងមួយត្រូវបានបោះចោលនៅពេលដំណើរការ។

ចំណាំ។ របាយការណ៍ខាងក្រៅ និងដំណើរការដែលបានបើកដោយប្រើម៉ឺនុយឯកសារ - បើកត្រូវបានប្រតិបត្តិក្នុងរបៀបសុវត្ថិភាព ប្រសិនបើអ្នកប្រើមិនមានសិទ្ធិចូលប្រើរដ្ឋបាល។

ចំនួននៃការធ្វើឱ្យរបៀបសុវត្ថិភាពត្រូវតែត្រូវគ្នានឹងចំនួននៃការបិទ។ ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើរបៀបសុវត្ថិភាពត្រូវបានបើកនៅក្នុងនីតិវិធី ឬមុខងារ (ម្តង ឬច្រើន) ប៉ុន្តែមិនត្រូវបានបិទទេ ប្រព័ន្ធនឹងបិទដោយស្វ័យប្រវត្តិជាច្រើនដង ដោយសារមានការបើកមិនពេញលេញនៅក្នុងនីតិវិធី ឬមុខងារដែលនៅសល់។

ប្រសិនបើនៅក្នុងនីតិវិធីឬមុខងារហៅវិធីសាស្ត្រ SetSafeMode(មិនពិត)បានធ្វើច្រើនជាងការហៅតាមវិធី SetSafeMode(ពិត)បន្ទាប់មកករណីលើកលែងមួយនឹងត្រូវបានបោះចោល។

ការដំឡើងកម្មវិធីនៃរបៀបសុវត្ថិភាពអាចត្រូវបានទាមទារក្នុងករណីដែលអ្នកអភិវឌ្ឍន៍ការកំណត់រចនាសម្ព័ន្ធមានបំណងប្រើកូដកម្មវិធីភាគីទីបី (ទាក់ទងនឹងការកំណត់រចនាសម្ព័ន្ធ) ភាពជឿជាក់ដែលអ្នកអភិវឌ្ឍន៍មិនអាចធានាបាន។ ឧទាហរណ៍នៃកូដបែបនេះគឺការប្រតិបត្តិនៃវិធីសាស្ត្រ Execute() និង Compute() ក្នុងករណីដែលកូដដែលអាចប្រតិបត្តិបានត្រូវបានទទួលពីពិភពខាងក្រៅ។ ក្នុងករណីនេះ ការអនុវត្តល្អគឺត្រូវកំណត់ Safe Mode មុនពេលប្រតិបត្តិវិធីសាស្ត្រទាំងនេះ៖

// កូដកម្មវិធីត្រូវបានបង្កើតដែលគួរតែត្រូវបានប្រតិបត្តិ // វាអាចទៅរួចដែលកូដត្រូវបានផ្ទុកពីប្រភពខាងក្រៅ // ឬបញ្ចូលដោយដៃ ExecutableCode = GetExecutedCodeFromExternalWorld(); // បើករបៀបសុវត្ថិភាព SetSafeMode(ពិត); // ប្រតិបត្តិកូដដែលអាចមានគ្រោះថ្នាក់បាន Execute(ExecutableCode); // បិទរបៀបសុវត្ថិភាព SetSafeMode(មិនពិត);

ក្នុងករណីខ្លះ ការកំណត់ Safe Mode អាចប៉ះទង្គិចជាមួយការកំណត់មុខងារ Privileged Mode។ ឧទាហរណ៏នៃការប៉ះទង្គិចបែបនេះគឺការបង្ហោះឯកសារដែលមុខងារ Privileged mode នៅពេលប្រកាសទ្រព្យសម្បត្តិត្រូវបានកំណត់ ពីកូដជាភាសាដែលភ្ជាប់មកជាមួយដែលត្រូវបានប្រតិបត្តិក្នុងរបៀបសុវត្ថិភាព។ ក្នុងករណីនេះ របៀបដែលមានសិទ្ធិត្រូវបានបិទ ហើយការព្យាយាមបើកវាត្រូវបានមិនអើពើ។ ជាលទ្ធផល កូដនៅក្នុងភាសាដែលបានបង្កប់ ដែល "រាប់" លើរបៀបដែលមានសិទ្ធិអនុញ្ញាត "ជួប" អវត្តមានរបស់វា ដែលនាំឱ្យមានកំហុសជាមួយនឹងហេតុផលមិនច្បាស់លាស់សម្រាប់រូបរាងរបស់ពួកគេ។ ដើម្បីទប់ស្កាត់ស្ថានភាពនេះ ប្រព័ន្ធ 1C:Enterprise បិទមុខងារសុវត្ថិភាពដោយស្វ័យប្រវត្តិសម្រាប់អ្នកដោះស្រាយព្រឹត្តិការណ៍ដែលមាននៅក្នុងម៉ូឌុលវត្ថុ ឬម៉ូឌុលគ្រប់គ្រង ដោយផ្តល់ថាកូដដែលអាចប្រតិបត្តិបាននៅក្នុងភាសាដែលភ្ជាប់មកជាមួយមិនស្ថិតនៅក្នុងផ្នែកបន្ថែមនៃការកំណត់រចនាសម្ព័ន្ធទេ។ ឧបករណ៍ដោះស្រាយបែបនេះត្រូវបានសម្គាល់នៅក្នុងវិធីពិសេសមួយនៅក្នុងជំនួយការវាក្យសម្ព័ន្ធ។

វាក៏ផ្តល់នូវសមត្ថភាពក្នុងការបិទ Safe Mode ពីភាសាដែលភ្ជាប់មកជាមួយ (ប្រសិនបើកូដកម្មវិធីដែលព្យាយាមបិទវាមិននៅក្នុងផ្នែកបន្ថែមនៃការកំណត់)។ ដើម្បីបិទរបៀបសុវត្ថិភាពមានវិធីសាស្រ្តមួយ។ SetDisableSafeMode(). អ្នក​អាច​ពិនិត្យ​មើល​ថា​របៀប​សុវត្ថិភាព​បច្ចុប្បន្ន​ត្រូវ​បាន​បិទ (ដោយ​ស្វ័យ​ប្រវត្តិ ឬ​ដោយ​ការ​ហៅ​ទៅ​វិធីសាស្ត្រ) ដោយ​ប្រើ​វិធីសាស្ត្រ GetDisableSafeMode()

នៅក្នុងវិធីសាស្រ្តមួយក្នុងភាសាដែលភ្ជាប់មកជាមួយ មិនអាចមានកម្រិតលើសពីមួយកម្រិតនៃការកំណត់របៀបសុវត្ថិភាព (ដោយហៅវិធីសាស្ត្រ SetSafeMode()) និងកំណត់ការបិទរបៀបសុវត្ថិភាព (ដោយស្វ័យប្រវត្តិក្នុងអំឡុងពេលដំណើរការព្រឹត្តិការណ៍វត្ថុទិន្នន័យមេតា។ handlers ឬដោយការហៅទៅកាន់វិធីសាស្ត្រ SetSafeModeDisable())។ នៅពេលព្យាយាមបង្កើនសំបុក ការលើកលែងមួយត្រូវបានបោះចោល៖

// ការប្រើប្រាស់ត្រឹមត្រូវនៃ ProcedureProcedureName() SetDisableSafeMode(True);

SetSafeMode(ពិត); SetSafeMode(មិនពិត); SetDisableSafeMode(មិនពិត); ចុងបញ្ចប់នៃនីតិវិធី // ការប្រើប្រាស់មិនត្រឹមត្រូវនៃ Procedure ProcedureName() SetDisableSafeMode(True);

SetSafeMode(ពិត);

SetDisableSafeMode(មិនពិត); // ករណីលើកលែង EndProcedure ProcedureProcedureName() SetSafeMode(True); SetDisableSafeMode(មិនពិត); // Exception EndProcedureការបើកកម្មវិធីនៃដំណើរការខាងក្រៅត្រូវបានអនុវត្តដោយប្រើវត្ថុបរិបទសកល ExternalProcessing ដែលមានប្រភេទ


អ្នកគ្រប់គ្រងដំណើរការខាងក្រៅ
. សម្រាប់របៀបប្រតិបត្តិការនីមួយៗនៃវេទិកា 1C (របៀបកម្មវិធីធម្មតា និងរបៀបកម្មវិធីដែលបានគ្រប់គ្រង) វិធីសាស្ត្រវត្ថុផ្សេងៗគ្នាត្រូវបានប្រើដើម្បីធ្វើការជាមួយដំណើរការខាងក្រៅ។

កំពុងដំណើរការដំណើរការខាងក្រៅក្នុងរបៀបកម្មវិធីធម្មតា។

នៅក្នុងកម្មវិធីធម្មតា អ្នកត្រូវតែប្រើវិធីសាស្ត្រ Create() នៃ ExternalProcessing object ដែលត្រូវបានឆ្លងកាត់ឈ្មោះពេញនៃឯកសារដំណើរការខាងក្រៅ។ វិធីសាស្រ្តត្រឡប់វត្ថុនៃប្រភេទ

ដំណើរការខាងក្រៅ

វត្ថុនេះគឺជាដំណើរការខាងក្រៅដែលកំពុងត្រូវបានបើក។ ប្រសិនបើអ្នកត្រូវការបើកទម្រង់ដំណើរការខាងក្រៅ បន្ទាប់មកហៅវិធីសាស្ត្រ GetForm() នៅលើវត្ថុដែលបានទទួល ដែលនឹងត្រឡប់ទម្រង់សំខាន់ ហើយបន្ទាប់មកហៅវិធីសាស្ត្រ Open() ដើម្បីបើកវា។
ដំណើរការ = ExternalProcessing.Create(FullFileName);
កំពុងដំណើរការ.GetForm().Open();
នៅក្នុងដំណើរការខាងក្រៅ ទម្រង់សំខាន់ត្រូវតែជាទម្រង់ធម្មតា ហើយទម្រង់ដែលបានគ្រប់គ្រងត្រូវតែជាទម្រង់បន្ថែមជានិច្ច បើមិនដូច្នេះទេវិធីសាស្ត្រ GetForm() នឹងមិនដំណើរការក្នុងរបៀបកម្មវិធីធម្មតាទេ។
មុខងារបញ្ចប់

បើកអតិថិជន
FullFileName = ""; // ឈ្មោះពេញនៃឯកសារដំណើរការខាងក្រៅ។
FileData = ថ្មី BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing" + ExternalProcessingName + ".Form");

របៀបសុវត្ថិភាពសម្រាប់ដំណើរការខាងក្រៅ

វិធីសាស្ត្រ Create() និង Connect() នៃ ExternalProcessing object មានប៉ារ៉ាម៉ែត្រចូល SafeMode ដែលជាសញ្ញានៃការភ្ជាប់ដំណើរការខាងក្រៅនៅក្នុងរបៀបសុវត្ថិភាព។ ប្រសិនបើប៉ារ៉ាម៉ែត្រមិនត្រូវបានបញ្ជាក់ ការតភ្ជាប់នឹងត្រូវបានធ្វើឡើងក្នុងរបៀបសុវត្ថិភាព។
របៀបសុវត្ថិភាពត្រូវបានរចនាឡើងដើម្បីការពារប្រព័ន្ធពីការប្រតិបត្តិកូដកម្មវិធី "មិនគួរឱ្យទុកចិត្ត" នៅលើម៉ាស៊ីនមេ។ គ្រោះថ្នាក់ដែលអាចកើតមានបានមកពីដំណើរការខាងក្រៅ ឬកូដកម្មវិធីដែលបានបញ្ចូលដោយអ្នកប្រើប្រាស់សម្រាប់ប្រើក្នុងវិធីសាស្ត្រ Run() និង Calculate() ។
របៀបសុវត្ថិភាពដាក់កម្រិតដូចខាងក្រោម៖
  • របៀបដែលមានសិទ្ធិត្រូវបានលុបចោលប្រសិនបើវាត្រូវបានដំឡើង។
  • ការព្យាយាមចូលទៅក្នុងរបៀបដែលមានសិទ្ធិត្រូវបានមិនអើពើ។
  • ប្រតិបត្តិការជាមួយវត្ថុ COM ត្រូវបានហាមឃាត់។
  • ការផ្ទុកនិងភ្ជាប់សមាសធាតុខាងក្រៅត្រូវបានហាមឃាត់;
  • ការចូលទៅកាន់ប្រព័ន្ធឯកសារត្រូវបានហាមឃាត់ (លើកលែងតែឯកសារបណ្តោះអាសន្ន);
  • ការចូលប្រើអ៊ីនធឺណិតត្រូវបានហាមឃាត់។
ដំណើរការដែលបានបើកអន្តរកម្មមិនត្រូវបានអនុវត្តនៅក្នុងរបៀបសុវត្ថិភាពទេ ដូច្នេះវាត្រូវបានផ្ដល់អនុសាសន៍ឱ្យអនុវត្តយន្តការសម្រាប់ការបើកដំណើរការខាងក្រៅនៅក្នុងរបៀបសុវត្ថិភាព ក៏ដូចជានៅកម្រិតអនុញ្ញាតដើម្បីហាមឃាត់អ្នកប្រើប្រាស់ពីការបើកដំណើរការខាងក្រៅអន្តរកម្ម។
ដើម្បីហាមឃាត់ការបើកដំណើរការអន្តរកម្ម ក្នុងតួនាទីទាំងអស់ដែលបានកំណត់ទៅអ្នកប្រើប្រាស់ វាចាំបាច់ក្នុងការដកសិទ្ធិ "ការបើកអន្តរកម្មនៃដំណើរការខាងក្រៅ" (សូមមើលរូបភាពទី 1) ។
រូបភាពទី 1. សិទ្ធិក្នុងការបើកអន្តរកម្មដំណើរការ/របាយការណ៍ខាងក្រៅ
សិទ្ធិ "ការបើកអន្តរកម្មនៃដំណើរការខាងក្រៅ" មិនប៉ះពាល់ដល់វត្ថុដំណើរការខាងក្រៅតាមមធ្យោបាយណាមួយឡើយ។

ការបើកកម្មវិធីនៃរបាយការណ៍ខាងក្រៅគឺស្រដៀងគ្នាទៅនឹងដំណើរការខាងក្រៅ ប៉ុន្តែអ្នកគួរតែប្រើវត្ថុបរិបទសកល ExternalReports ដែលមានប្រភេទ អ្នកគ្រប់គ្រងរបាយការណ៍ខាងក្រៅ.

នៅពេលធ្វើបច្ចុប្បន្នភាពការកំណត់ អត្ថបទព្រមានក៏បានលេចឡើងអំពីប្រភពដែលឯកសារកំណត់រចនាសម្ព័ន្ធត្រូវបានទទួល៖ ការពិតគឺថានៅពេលប្រើកំណែម៉ាស៊ីនភ្ញៀវ-ម៉ាស៊ីនមេនៃ 1C ដំណើរការ/របាយការណ៍ខាងក្រៅត្រូវបានបើកក្នុងរបៀបសុវត្ថិភាព ដែលការប្រើប្រាស់មុខងារដែលមានសិទ្ធិត្រូវបានហាមឃាត់។ ហើយរបៀបដែលមានសិទ្ធិត្រូវបានប្រើជាញឹកញាប់ក្នុងការកំណត់រចនាសម្ព័ន្ធធម្មតា៖ ការបង្កើតទម្រង់បោះពុម្ព ការត្រួតពិនិត្យសេវាកម្មផ្សេងៗ (ការចុះឈ្មោះការផ្លាស់ប្តូរ) ជាដើម។ ជាលទ្ធផល សូម្បីតែការប្រើប្រាស់របាយការណ៍ធម្មតានៅលើប្រព័ន្ធគ្រប់គ្រងការចូលប្រើដោយគ្មានទម្រង់ (តាមលំនាំដើម ទម្រង់ទូទៅ "ReportForm" ត្រូវបានប្រើ) និងការរក្សាទុកការកំណត់របាយការណ៍ផ្ទាល់ខ្លួន (ក្នុងថតដែលត្រូវគ្នា) អ្នកនឹងទទួលបានកំហុសអំពីការចូលប្រើមិនគ្រប់គ្រាន់ សិទ្ធិ​ចំពោះ​ចំនួន​ថេរ និង​ប៉ារ៉ាម៉ែត្រ​សម័យ​ផ្សេងៗ​ដែល​បាន​ប្រើ​សម្រាប់​គោល​បំណង​ផ្លូវការ​បន្ទាប់​ពី​បន្ទាត់

SetPrivilegedMode(ពិត);

ខ្ញុំចង់កត់សម្គាល់ភ្លាមៗថាជម្រើសនេះមិនអំណោយផលទេ ប៉ុន្តែដោយសារកាលៈទេសៈផ្សេងៗ វាអាចប្រើក្នុងទម្រង់សាមញ្ញបែបនេះ។ ជាឧទាហរណ៍ ខ្ញុំមានមូលដ្ឋានទិន្នន័យជាច្រើននៅក្នុងទីក្រុងផ្សេងៗគ្នា ដែលជាមូលដ្ឋានទូទៅមួយដែលមានសិទ្ធិមានកំណត់យ៉ាងតឹងរ៉ឹង បិទ USB ។ល។ កន្លែងណាមួយខ្ញុំប្រើគណនេយ្យ 2.0 និងកន្លែងណាមួយ 3.0 ខ្ញុំធ្វើរបាយការណ៍ស្ទើរតែទាំងអស់ដោយប្រើឧបករណ៍ ACS ដោយគ្មានទម្រង់ ដូច្នេះពួកគេ បានបើកនៅក្នុងកំណែទាំងពីរ។ ការរក្សារបាយការណ៏ទាំងអស់នេះសម្រាប់កំណែផ្សេងគ្នា និងមូលដ្ឋានទិន្នន័យផ្សេងគ្នាគឺពឹងផ្អែកលើកម្លាំងពលកម្ម និងឥតប្រយោជន៍ ពីព្រោះ មានគម្រោងប្តូរទៅការកំណត់រចនាសម្ព័ន្ធតែមួយ និងមូលដ្ឋាន...

តោះបង្កើតប្រវត្តិរូប។
នៅក្នុងកុងសូលចង្កោម យើងបង្កើតទម្រង់សុវត្ថិភាព ដែលយើងកំណត់ទង់ "អាចប្រើជាទម្រង់សុវត្ថិភាព Safe Mode"និង " នៅក្នុងផ្នែក "ការចូលប្រើពេញលេញត្រូវបានអនុញ្ញាត៖" "ទៅរបៀបដែលមានសិទ្ធិ" ។

ក្នុងករណីជាច្រើននៃការប្រើប្រាស់របាយការណ៍ និងដំណើរការសាមញ្ញ វិធីសាស្ត្រនេះនឹងអាចអនុវត្តបាន។ សម្រាប់ស្ថានភាពស្មុគ្រស្មាញជាងនេះ វាគ្មានចំណុចណាក្នុងការពិពណ៌នាអំពីដំណើរការនោះទេ ពីព្រោះ វាត្រូវបានគូសបញ្ជាក់នៅក្នុងឯកសារ (សមត្ថភាពក្នុងការកំណត់ទម្រង់សុវត្ថិភាពសម្រាប់ឯកសារខាងក្រៅជាក់លាក់ដោយបញ្ជាក់ចំនួនលេខសំងាត់របស់វា ។ល។)។

P.S. ខ្ញុំបានគិតថាទម្រង់សុវត្ថិភាពដំណើរការតែនៅពេលប្រើ platform និង server license នៅកម្រិត CORP ប៉ុន្តែមុខងារនេះក៏ដំណើរការលើ platform 1C:Enterprise 8.3 (វាអាចត្រូវបានហៅតាមលក្ខខណ្ឌថា PROF ដោយភាពស្រដៀងគ្នាជាមួយនឹងការកំណត់ស្តង់ដារ Basic/PROF/CORP)