ដោយប្រើ "ការគ្រប់គ្រងពាណិជ្ជកម្ម 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)