ሃይ ሀብር!
በዚህ ጽሑፍ ውስጥ ስለ ውስጡ እንዴት እንደሚሰራ ታሪኩን እንጀምራለን
ይህ ለምን አስደሳች ነው ብለን እናስባለን? በመጀመሪያ፣ የ1C፡ኢንተርፕራይዝ 8 መድረክ ትልቅ (ከ10 ሚሊዮን በላይ የኮድ መስመሮች) በC++ (ደንበኛ፣ አገልጋይ፣ ወዘተ)፣ ጃቫስክሪፕት (የድር ደንበኛ) እና በቅርቡ ደግሞ እና
ስለዚህ እንጀምር። በዚህ ጽሑፍ ውስጥ በመድረክ ውስጥ ጥቅም ላይ የሚውሉትን አንዳንድ ቴክኖሎጂዎች አጠቃላይ እይታ እና የመሬት አቀማመጥን እንገልፃለን, ወደ አተገባበሩ በጥልቀት ውስጥ ሳንገባ. በእርግጥ፣ ለብዙ አሠራሮች፣ ዝርዝር ታሪክ የተለየ ጽሑፍ፣ እና ለአንዳንዶች፣ ሙሉ መጽሐፍ ያስፈልገዋል!
ለመጀመር በመሠረታዊ ነገሮች ላይ መወሰን ጠቃሚ ነው - 1C: የኢንተርፕራይዝ መድረክ ምን እንደሆነ እና ምን ክፍሎች እንዳሉት. የዚህ ጥያቄ መልስ በጣም ቀላል አይደለም, ምክንያቱም "ፕላትፎርም" የሚለው ቃል (ለአጭር ጊዜ, እንደዚያ እንጠራዋለን) የንግድ ሥራ አፕሊኬሽኖችን, የሩጫ አከባቢን እና የአስተዳደር መሳሪያዎችን ለማዳበር ዘዴን ያመለክታል. የሚከተሉት ክፍሎች በግምት ሊለያዩ ይችላሉ-
- የአገልጋይ ክላስተር
- በ http እና በራሱ ሁለትዮሽ ፕሮቶኮል በኩል ከአገልጋዩ ጋር መገናኘት የሚችል "ቀጭን" ደንበኛ
- ደንበኛ በሃርድ ድራይቭ ወይም በአውታረ መረብ አቃፊ ላይ ካለው የውሂብ ጎታ ጋር ባለ ሁለት-ደረጃ አርክቴክቸር ውስጥ ለመስራት
- የድር ደንበኛ
- የመተግበሪያ አገልጋይ አስተዳደር መሳሪያዎች
- የልማት አካባቢ (አዋቅር በመባል ይታወቃል)
- ለ iOS፣ አንድሮይድ እና ዊንዶውስ ፎን (የሞባይል መድረክ 1C) የሩጫ ጊዜ አካባቢ
እነዚህ ሁሉ ክፍሎች፣ ከድር ደንበኛ በስተቀር፣ በC++ ተጽፈዋል። በተጨማሪም ፣ በቅርቡ የታወጀው አለ።
ቤተኛ መተግበሪያዎች
C++03 ቤተኛ መተግበሪያዎችን ለማዘጋጀት ይጠቅማል። ለዊንዶውስ ማይክሮሶፍት ቪዥዋል ሲ ++ 12 (ከዊንዶውስ ኤክስፒ ጋር ተኳሃኝ የሆነ ፕሮፋይል) እንደ ማቀናበሪያ ጥቅም ላይ ይውላል, እና ለሊኑክስ እና አንድሮይድ - gcc 4.8, ለ iOS - clang 5.0. ጥቅም ላይ የዋለው መደበኛ ቤተ-መጽሐፍት ለሁሉም ኦፕሬቲንግ ሲስተሞች እና ማጠናቀቂያዎች ተመሳሳይ ነው - SLTPort. ይህ መፍትሔ የ STL ትግበራ-ተኮር ስህተቶችን እድል ይቀንሳል. STLPort የተቋረጠ እና ከgcc C++11 የነቃ ሁነታ ጋር የማይጣጣም ስለሆነ በአሁኑ ጊዜ ከCLang ጋር ወደተላከው የSTL ትግበራ ለመሸጋገር አቅደናል።
የአገልጋዩ ኮድ መሰረት 99% የተለመደ ነው, የደንበኛው - 95% ነው. ከዚህም በላይ የሞባይል መድረክ እንኳን ከ "ትልቅ" ጋር አንድ አይነት C ++ ኮድ ይጠቀማል, ምንም እንኳን እዚያ ያለው የመዋሃድ መቶኛ በተወሰነ ደረጃ ዝቅተኛ ነው.
እንደ አብዛኛዎቹ የC++ ተጠቃሚዎች የቋንቋውን እና የቤተ-መጻህፍትን ችሎታዎች 100% እንጠቀማለን ብለን አንናገርም። ስለዚህ፣ እኛ በተግባር Boost አንጠቀምም፣ እና ከቋንቋ ባህሪያቱ አንዱ ተለዋዋጭ ዓይነት መውሰድ ነው። በተመሳሳይ ጊዜ እኛ በንቃት እንጠቀማለን-
- STL (በተለይ ሕብረቁምፊዎች፣ መያዣዎች እና ስልተ ቀመሮች)
- ብዙ ውርስ፣ ጨምሮ። ባለብዙ ትግበራ ውርስ
- አብነቶች
- የማይካተቱ
- ብልጥ ጠቋሚዎች (ብጁ ትግበራ)
የበርካታ የበይነገጽ ውርስ (ሙሉ በሙሉ ረቂቅ ክፍሎች) በመጠቀም የአንድ አካል ሞዴል የሚቻል ይሆናል፣ ይህም ከዚህ በታች ይብራራል።
ክፍለ አካላት
ሞዱላሪነትን ለማረጋገጥ ሁሉም ተግባራት ተለዋዋጭ ቤተ-መጻሕፍት (* .dll ለዊንዶውስ * . ለሊኑክስ) ወደ ክፍሎች ይከፈላሉ. በጠቅላላው ከመቶ ሃምሳ በላይ አካላት አሉ፡ የአንዳንዶቹ መግለጫዎች እነሆ፡-
ደጀን
የመድረክ ሜታዳታ ሞተርን ይዟል
አክሰንት
የመተግበሪያ ገንቢዎች የሂሳብ መዝገቦችን ለመገንባት የሚጠቀሙባቸው ነገሮች (የሂሳብ ሠንጠረዥ እና የሂሳብ መመዝገቢያ)
BSl
የተከተተ የቋንቋ ማስፈጸሚያ ሞተር
ኒኮ
የማህደረ ትውስታ አከፋፋይ ብጁ ትግበራ
dbeng8
የፋይል ዳታቤዝ ሞተር. በ ISAM ላይ የተመሰረተ ቀላል የፋይል አገልጋይ ዳታቤዝ ሞተር፣ እሱም ቀላል የSQL ፕሮሰሰርንም ያካትታል
wbase
የዊንዶውስ ተጠቃሚ በይነገጽን ለመተግበር መሰረታዊ ክፍሎችን እና ተግባራትን ይዟል - የመስኮት ክፍሎች ፣ የጂዲአይ መዳረሻ ፣ ወዘተ.
ወደ ብዙ አካላት መከፋፈል ከበርካታ እይታዎች ጠቃሚ ነው-
- መለያየት የተሻለ ንድፍ ያበረታታል, በተለይ የተሻለ ኮድ ማግለል
- ከተለያዩ ክፍሎች ስብስብ የተለያዩ የመላኪያ አማራጮችን በተለዋዋጭነት መሰብሰብ ይችላሉ-
- ለምሳሌ፣ ቀጭን የደንበኛ ጭነት wbase ይይዛል፣ ነገር ግን የኋላ ጀርባ አይኖረውም።
- ነገር ግን በ wbase አገልጋይ ላይ, በተቃራኒው, አይሆንም
- ሁለቱም አማራጮች ኑክ እና ቢኤስኤልን ይይዛሉ
ለዚህ የማስጀመሪያ አማራጭ የሚያስፈልጉት ሁሉም ክፍሎች ፕሮግራሙ ሲጀምር ይጫናሉ። ይህ በተለይ የ SCOM ክፍሎችን ለመመዝገብ አስፈላጊ ነው, ይህም ከዚህ በታች ይብራራል.
ኤስ.ኤም.ኤም.
በዝቅተኛ ደረጃ ላይ ለመበስበስ, የ SCOM ስርዓት ጥቅም ላይ ይውላል, በርዕዮተ ዓለም ከ ATL ጋር ተመሳሳይ የሆነ ቤተ-መጽሐፍት. ከኤቲኤል ጋር ላልሠሩት, ዋና ዋና ችሎታዎችን እና ባህሪያትን በአጭሩ እንዘረዝራለን.
በልዩ ሁኔታ ለተነደፈ SCOM ክፍል፡-
- ስሙን ብቻ እያወቁ (አተገባበሩን ሳይገልጹ) ከሌላ አካል ክፍል እንዲፈጥሩ የሚያስችልዎ የፋብሪካ ዘዴዎችን ያቀርባል።
- የማጣቀሻ ቆጠራ ብልጥ ጠቋሚ መሠረተ ልማት ያቀርባል። የ SCOM ክፍል የህይወት ዘመን በእጅ ክትትል አያስፈልገውም
- አንድ ነገር የተወሰነ በይነገጽ መተግበሩን እና አለመሆኑን ለማወቅ እና ጠቋሚን ወደ ዕቃው ወደ በይነገጽ ጠቋሚ እንዲቀይሩ ያስችልዎታል
- ሁልጊዜ በget_አገልግሎት ዘዴ፣ ወዘተ የሚደረስ የአገልግሎት ዕቃ ይፍጠሩ።
ለምሳሌ፣ JSON ለማንበብ ክፍልን (ለምሳሌ፣ JSONStreamReader) በ json.dll ክፍል ውስጥ መግለጽ ይችላሉ።
ክፍሎች እና ምሳሌዎች ከሌሎች አካላት ሊፈጠሩ ይችላሉ፣ በ SCOM ማሽን ውስጥ መመዝገብ አለባቸው፡-
SCOM_CLASS_ENTRY(JSONStreamReader)
ይህ ማክሮ ልዩ የማይንቀሳቀስ መቅጃ ክፍልን ይገልፃል።
ከዚህ በኋላ ፣ በሌላ አካል ውስጥ የእሱን ምሳሌ መፍጠር ይችላሉ-
IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));
አገልግሎቶችን ለመደገፍ SCOM ተጨማሪ፣ ይልቁንም ውስብስብ መሠረተ ልማት ያቀርባል። ለእሱ ማዕከላዊ የ SCOM ሂደት ፅንሰ-ሀሳብ ነው ፣ እሱም አገልግሎቶችን ለማስኬድ እንደ መያዣ (ማለትም ፣ የአገልግሎት መፈለጊያውን ሚና ይጫወታል) እና እንዲሁም ከአካባቢያዊ ሀብቶች ጋር አስገዳጅነት አለው። የ SCOM ሂደቱ ከስርዓተ ክወናው ክር ጋር የተሳሰረ ነው። ለዚህም ምስጋና ይግባውና በመተግበሪያው ውስጥ እንደዚህ ያሉ አገልግሎቶችን ማግኘት ይችላሉ-
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
በተጨማሪም ፣ ሎጂካዊ (SCOM) ሂደቶችን ከክር ጋር በማገናኘት ከመረጃ ቦታ እይታ አንፃር በተግባር ነፃ የሆኑ በተመሳሳይ ክር ውስጥ የሚሰሩ መተግበሪያዎችን ማግኘት ይችላሉ። የእኛ ቀጭን ደንበኛ በፋይል ዳታቤዝ የሚሠራው በዚህ መንገድ ነው - በአንድ የስርዓተ ክወና ሂደት ውስጥ ሁለት የ SCOM ሂደቶች አሉ ፣ አንደኛው ከደንበኛው ጋር የተገናኘ እና ሁለተኛው ከአገልጋዩ ጋር። ይህ አቀራረብ በአካባቢያዊ የፋይል ዳታቤዝ እና በ "እውነተኛ" የደንበኛ-አገልጋይ ስሪት ውስጥ የሚሰራውን የኮድ አጻጻፍ አንድ ለማድረግ ያስችለናል. ለእንደዚህ አይነት ተመሳሳይነት ያለው ዋጋ ከመጠን በላይ ነው, ነገር ግን ልምምድ እንደሚያሳየው ዋጋ ያለው መሆኑን ያሳያል.
በ SCOM አካል ሞዴል ላይ በመመስረት ሁለቱም የቢዝነስ አመክንዮ እና የ1C፡ ኢንተርፕራይዝ የበይነገጽ ክፍል ተተግብረዋል።
የተጠቃሚ በይነገጽ
በነገራችን ላይ ስለ መገናኛዎች. መደበኛ የዊንዶውስ መቆጣጠሪያዎችን አንጠቀምም፤ የእኛ መቆጣጠሪያዎች በቀጥታ በዊንዶውስ ኤፒአይ ላይ ተፈጻሚ ይሆናሉ። ለሊኑክስ ስሪት በwxWidgets ቤተ-መጽሐፍት በኩል የሚሰራ ንብርብር ተሠርቷል።
የቁጥጥር ቤተ-መጽሐፍት በሌሎች የ1C፡ኢንተርፕራይዝ ክፍሎች ላይ የተመካ አይደለም እና በሌሎች በርካታ ትናንሽ የውስጥ መገልገያዎች ውስጥ እንጠቀማለን።
በ 1C: ኢንተርፕራይዝ ልማት ዓመታት ውስጥ የቁጥሮች ገጽታ ተለውጧል, ነገር ግን በመሠረታዊ መርሆዎች ላይ ከባድ ለውጥ የተከሰተው አንድ ጊዜ ብቻ ነው, በ 2009, ስሪት 8.2 ሲወጣ እና "የሚተዳደሩ ቅጾች" መምጣት. መልክን ከመቀየር በተጨማሪ የቅጽ አቀማመጥ መርህ በመሠረቱ ተቀይሯል - የንጥረ-ነገሮችን ፍሰት-አቀማመጥን የሚደግፍ የፒክሰል-በ-ፒክስል አቀማመጥ ውድቅ ነበር። በተጨማሪም, በአዲሱ ሞዴል, መቆጣጠሪያዎች በቀጥታ ከጎራ እቃዎች ጋር አይሰሩም, ነገር ግን በልዩ DTOs (
እነዚህ ለውጦች የጃቫስክሪፕት መቆጣጠሪያዎችን የC++ አመክንዮ የሚደግም 1C:Enterprise ድረ-ገጽ ደንበኛን መፍጠር አስችለዋል። በቀጭን እና በድር ደንበኞች መካከል የተግባር እኩልነትን ለመጠበቅ እንሞክራለን። ይህ የማይቻል በሚሆንበት ጊዜ ለምሳሌ በጃቫ ስክሪፕት ኤፒአይ ውስንነት ምክንያት (ለምሳሌ ከፋይሎች ጋር የመሥራት ችሎታ በጣም የተገደበ ነው) ብዙውን ጊዜ በ C ++ ውስጥ የተፃፉ የአሳሽ ቅጥያዎችን በመጠቀም አስፈላጊውን ተግባር እንተገብራለን። በአሁኑ ጊዜ ኢንተርኔት ኤክስፕሎረር እና ማይክሮሶፍት ጠርዝ (ዊንዶውስ)፣ ጎግል ክሮም (ዊንዶውስ)፣ ፋየርፎክስ (ዊንዶውስ እና ሊኑክስ) እና ሳፋሪ (ማክኦኤስ) እንደግፋለን።
በተጨማሪም, የሚተዳደሩ ቅጾች ቴክኖሎጂ በ 1C መድረክ ላይ ለሞባይል አፕሊኬሽኖች በይነገጽ ለመፍጠር ጥቅም ላይ ይውላል. በሞባይል መሳሪያዎች ላይ የመቆጣጠሪያዎች አተረጓጎም የሚተገበረው ለስርዓተ ክወናው ተወላጅ የሆኑ ቴክኖሎጂዎችን በመጠቀም ነው, ነገር ግን ለቅጽ አቀማመጥ አመክንዮ እና የበይነገጽ ምላሽ ተመሳሳይ ኮድ በ "ትልቅ" 1C: የድርጅት መድረክ ላይ ጥቅም ላይ ይውላል.
1C በይነገጽ በሊኑክስ ኦኤስ
በተንቀሳቃሽ መሣሪያ ላይ 1C በይነገጽ
በሌሎች መድረኮች ላይ 1C በይነገጽ
1C በይነገጽ በዊንዶውስ ኦኤስ
በይነገጽ 1C - የድር ደንበኛ
ክፍት ምንጭ
ምንም እንኳን መደበኛ ቤተ-መጻሕፍትን ለ C++ ገንቢዎች በዊንዶውስ (MFC, መቆጣጠሪያዎች ከዊንኤፒአይ) ባንጠቀምም, ሁሉንም ክፍሎች በራሳችን አንጽፍም. ቤተ መፃህፍቱ አስቀድሞ ተጠቅሷል
ከፈት ከኤችቲቲፒ እና ኤፍቲፒ ጋር ለመስራት።OpenSSL ከክሪፕቶግራፊ ጋር ለመስራት እና የ TLS ግንኙነቶችን ለመመስረትlibxml2 እና libxslt ለኤክስኤምኤል ትንተናሊቤትፓን ከደብዳቤ ፕሮቶኮሎች (POP3፣ SMTP፣ IMAP) ጋር ለመስራትማስመሰል የኢሜል መልዕክቶችን ለመተንተንsqlite የተጠቃሚ ምዝግብ ማስታወሻዎችን ለማከማቸትICU ለአለምአቀፍነት
ዝርዝሩ ይቀጥላል።
በተጨማሪም፣ በጣም የተሻሻለ ስሪት እንጠቀማለን።
ቤተ መፃህፍቶቹ ከSCOM አካል አደረጃጀት ሞዴል ጋር ተኳሃኝ እንዲሆኑ መላመድ ያስፈልጋሉ።
የ1C መስፋፋት መድረኩን በውስጡ ለሚጠቀሙት ቤተ-መጻሕፍት የጥንካሬ ፈተና እንዲሆን ያደርገዋል። የተለያዩ ተጠቃሚዎች እና ሁኔታዎች በጣም አልፎ አልፎ ጥቅም ላይ በሚውሉ የኮድ ቦታዎች ላይ ስህተቶችን በፍጥነት ያሳያሉ። እኛ እራሳችንን እናርማቸዋለን እና ወደ ቤተመጽሐፍት ደራሲዎች ለመመለስ እንሞክራለን። የመስተጋብር ልምድ በጣም የተለየ ሆኖ ተገኝቷል።
ገንቢዎች
መደምደሚያ
በአንቀጹ ውስጥ የ 1C: የድርጅት መድረክ እድገትን በርካታ ዋና ዋና ጉዳዮችን ነካን። በአንቀጹ ውስን ወሰን ውስጥ ፣ በእኛ አስተያየት ፣ አንዳንድ አስደሳች ጉዳዮችን ብቻ ነክተናል።
የተለያዩ የመድረክ አሠራሮችን አጠቃላይ መግለጫ ማግኘት ይቻላል
ወደፊት በሚወጡት መጣጥፎች ላይ የትኞቹ ርዕሶች ትኩረት ሊሰጡህ ይችላሉ?
የ1C የሞባይል መድረክ እንዴት ነው የሚተገበረው?
የድር ደንበኛ ውስጣዊ መዋቅር መግለጫ?
ወይም ደግሞ ለአዲስ የተለቀቁ ባህሪያትን የመምረጥ ሂደት፣ ማዳበር እና መሞከር ሊፈልጉ ይችላሉ?
በአስተያየቶቹ ውስጥ ይፃፉ!
ምንጭ: hab.com