ãããããã«ïŒ
ãã®èšäºã§ã¯ãå
éšã§ã©ã®ããã«æ©èœãããã«ã€ããŠã®è©±ãå§ããŸã
ãªããããèå³æ·±ããšæãã®ã§ãããã? ãŸãã1C:Enterprise 8 ãã©ãããã©ãŒã ã¯ãC++ (ã¯ã©ã€ã¢ã³ãããµãŒããŒãªã©)ãJavaScript (Web ã¯ã©ã€ã¢ã³ã)ããããŠæè¿ã§ã¯ã倧èŠæš¡ãª (10 äžè¡ä»¥äžã®ã³ãŒã) ã¢ããªã±ãŒã·ã§ã³ã§ããããã§ãã
ããã§ã¯å§ããŸãããã ãã®èšäºã§ã¯ãå®è£
ã«ã€ããŠã¯æ·±ãæãäžããã«ããã©ãããã©ãŒã ã§äœ¿çšãããŠããããã€ãã®ãã¯ãããžãŒã®æŠèŠã説æããæŠèŠã説æããŸãã å®éãå€ãã®ã¡ã«ããºã ã§ã¯ã詳现ãªã¹ããŒãªãŒã説æããã«ã¯å¥ã®èšäºãå¿
èŠã«ãªããå Žåã«ãã£ãŠã¯ XNUMX åã®æ¬ãå¿
èŠã«ãªããŸãã
ãŸãã1C:Enterprise ãã©ãããã©ãŒã ãšã¯äœããã©ã®ã³ã³ããŒãã³ãã§æ§æãããŠããããšããåºæ¬çãªäºé
ã決å®ããããšãéèŠã§ãã ãã®è³ªåã«å¯Ÿããçãã¯ããã»ã©åçŽã§ã¯ãããŸããããªããªããããã©ãããã©ãŒã ããšããçšèª (ç°¡æœã«ããããã«ããã®ããã«åŒã³ãŸã) ã¯ãããžãã¹ ã¢ããªã±ãŒã·ã§ã³ãã©ã³ã¿ã€ã ç°å¢ãããã³ç®¡çããŒã«ãéçºããããã®æ段ãæãããã§ãã 次ã®ã³ã³ããŒãã³ãã倧ãŸãã«åºå¥ã§ããŸãã
- ãµãŒããŒã¯ã©ã¹ã¿ãŒ
- http ããã³ç¬èªã®ãã€ã㪠ãããã³ã«ãä»ããŠãµãŒããŒã«æ¥ç¶ã§ãããã·ã³ãã¯ã©ã€ã¢ã³ã
- ããŒã¿ããŒã¹ãããŒã ãã©ã€ããŸãã¯ãããã¯ãŒã¯ ãã©ã«ããŒã«ãã XNUMX å±€ã¢ãŒããã¯ãã£ã§äœæ¥ããããã®ã¯ã©ã€ã¢ã³ã
- ãŠã§ãã¯ã©ã€ã¢ã³ã
- ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒç®¡çããŒã«
- éçºç°å¢ (ã³ã³ãã£ã®ã¥ã¬ãŒã¿ãšåŒã°ããŸã)
- iOSãAndroidãWindows Phone ã®ã©ã³ã¿ã€ã ç°å¢ (ã¢ãã€ã« ãã©ãããã©ãŒã 1C)
Web ã¯ã©ã€ã¢ã³ããé€ããããã®éšåã¯ãã¹ãŠ C++ ã§æžãããŠããŸãã ããã«ãæè¿çºè¡šãããã®ã¯ã
ãã€ãã£ãã¢ããª
C++03 ã¯ãã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®éçºã«äœ¿çšãããŸãã Windows ã®å Žåã¯ãMicrosoft Visual C++ 12 (Windows XP ãšäºææ§ã®ãããããã¡ã€ã«) ãã³ã³ãã€ã©ãšããŠäœ¿çšãããLinux ããã³ Android ã®å Žå㯠gcc 4.8ãiOS ã®å Žå㯠Clang 5.0 ã䜿çšãããŸãã 䜿çšãããæšæºã©ã€ãã©ãªã¯ããã¹ãŠã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãšã³ã³ãã€ã©ã§åã STLPort ã§ãã ãã®ãœãªã¥ãŒã·ã§ã³ã«ãããSTL å®è£
åºæã®ãšã©ãŒãçºçããå¯èœæ§ã軜æžãããŸãã STLPort ã¯å»æ¢ãããgcc ã® C++11 察å¿ã¢ãŒããšäºææ§ããªããããçŸåšãCLang ã«å梱ãããŠãã STL å®è£
ã«ç§»è¡ããããšãèšç»ããŠããŸãã
ãµãŒããŒã®ã³ãŒãããŒã¹ã®å
±éæ§ã¯ 99%ãã¯ã©ã€ã¢ã³ãã®ã³ãŒãããŒã¹ã®å
±éæ§ã¯ 95% ã§ãã ããã«ãã¢ãã€ã« ãã©ãããã©ãŒã ã§ãã倧ããªããã©ãããã©ãŒã ãšåã C++ ã³ãŒãã䜿çšãããŠããŸãããçµ±åã®å²åã¯è¥å¹²äœããªããŸãã
ã»ãšãã©ã® C++ ãŠãŒã¶ãŒãšåæ§ã«ãç§ãã¡ã¯èšèªãšãã®ã©ã€ãã©ãªã®æ©èœã 100% 䜿çšãããšã¯äž»åŒµããŸããã ãããã£ãŠãå®éã«ã¯ Boost ã䜿çšãããèšèªæ©èœã® XNUMX ã€ã¯åçåãã£ã¹ãã§ãã åæã«ã以äžãç©æ¥µçã«äœ¿çšããŸãã
- STL (ç¹ã«æååãã³ã³ãããã¢ã«ãŽãªãºã )
- å€éç¶æ¿ã è€æ°ã®å®è£ ã®ç¶æ¿
- ãã¿ãŒã³
- äŸå€
- ã¹ããŒã ãã€ã³ã¿ãŒ (ã«ã¹ã¿ã å®è£ )
ã€ã³ã¿ãŒãã§ãŒã¹ (å®å šã«æœè±¡ã¯ã©ã¹) ã®å€éç¶æ¿ã䜿çšããããšã«ãããã³ã³ããŒãã³ã ã¢ãã«ãå¯èœã«ãªããŸããããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
ã³ã³ããŒãã³ã
ã¢ãžã¥ãŒã«æ§ã確ä¿ããããã«ããã¹ãŠã®æ©èœã¯åçã©ã€ãã©ãª (Windows ã®å Žå㯠*.dllãLinux ã®å Žå㯠*.so) ã§ããã³ã³ããŒãã³ãã«åå²ãããŠããŸãã åèš XNUMX ãè¶ ããã³ã³ããŒãã³ããããããã®äžéšã«ã€ããŠä»¥äžã«èª¬æããŸãã
ããã¯ãšã³ã
ãã©ãããã©ãŒã ã¡ã¿ããŒã¿ãšã³ãžã³ãå«ãŸããŠããŸã
ã¢ã¯ã»ã³ã
ã¢ããªã±ãŒã·ã§ã³éçºè
ãäŒèšèšé² (åå®ç§ç®è¡šãšäŒèšå°åž³) ãäœæããããã«äœ¿çšãããªããžã§ã¯ã
BSL
çµã¿èŸŒã¿èšèªå®è¡ãšã³ãžã³
æ žå
µåš
ã¡ã¢ãª ã¢ãã±ãŒã¿ã®ã«ã¹ã¿ã å®è£
ããã³8
ãã¡ã€ã«ããŒã¿ããŒã¹ãšã³ãžã³ã ISAM ã«åºã¥ãã·ã³ãã«ãªãã¡ã€ã« ãµãŒã㌠ããŒã¿ããŒã¹ ãšã³ãžã³ãã·ã³ãã«ãª SQL ããã»ããµãå«ãŸããŠããŸãã
wbase
Windows ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ (ãŠã£ã³ã㊠ã¯ã©ã¹ãGDI ã¢ã¯ã»ã¹ãªã©) ãå®è£
ããããã®åºæ¬ã¯ã©ã¹ãšé¢æ°ãå«ãŸããŠããŸãã
è€æ°ã®ã³ã³ããŒãã³ãã«åå²ãããšã次ã®ãããªããã€ãã®èŠ³ç¹ãã圹ç«ã¡ãŸãã
- åé¢ã«ãããããåªããèšèšãç¹ã«ããåªããã³ãŒãåé¢ãä¿é²ãããŸãã
- äžé£ã®ã³ã³ããŒãã³ããããããŸããŸãªé
ä¿¡ãªãã·ã§ã³ãæè»ã«çµã¿ç«ãŠãããšãã§ããŸãã
- ããšãã°ãã·ã³ ã¯ã©ã€ã¢ã³ã ã€ã³ã¹ããŒã«ã«ã¯ wbase ãå«ãŸããŸãããããã¯ãšã³ãã¯å«ãŸããŸããã
- ããããwbase ãµãŒããŒã§ã¯ãéã«ãããã§ã¯ãããŸããã
- ãã¡ãããã©ã¡ãã®ãªãã·ã§ã³ã«ã nuke ãš bsl ãå«ãŸããŸã
ãã®èµ·åãªãã·ã§ã³ã«å¿ èŠãªãã¹ãŠã®ã³ã³ããŒãã³ãã¯ãããã°ã©ã ã®èµ·åæã«ããŒããããŸãã ããã¯ç¹ã«ã以äžã§èª¬æãã SCOM ã¯ã©ã¹ãç»é²ããããã«å¿ èŠã§ãã
SCOM
äžäœã¬ãã«ã§ã®å解ã«ã¯ãATL ãšã€ããªãã®ãŒã䌌ãŠããã©ã€ãã©ãªã§ãã SCOM ã·ã¹ãã ã䜿çšãããŸãã ATL ã䜿çšããããšããªã人ã®ããã«ãäž»ãªæ©èœãç°¡åã«ãªã¹ãããŸãã
ç¹å¥ã«èšèšããã SCOM ã¯ã©ã¹ã®å Žå:
- (å®è£ ãå ¬éããã«) ååã ããç¥ã£ãŠããå¥ã®ã³ã³ããŒãã³ãããã¯ã©ã¹ãäœæã§ãããã¡ã¯ã㪠ã¡ãœãããæäŸããŸãã
- åç §ã«ãŠã³ãã®ã¹ããŒã ãã€ã³ã¿ãŒ ã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããŸãã SCOM ã¯ã©ã¹ã®æå¹æéãæåã§ç£èŠããå¿ èŠã¯ãããŸãã
- ãªããžã§ã¯ããç¹å®ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠãããã©ããã確èªãããªããžã§ã¯ããžã®ãã€ã³ã¿ãã€ã³ã¿ãŒãã§ã€ã¹ãžã®ãã€ã³ã¿ã«èªåçã«å€æã§ããŸãã
- get_service ã¡ãœãããªã©ãéããŠåžžã«ã¢ã¯ã»ã¹ã§ãããµãŒãã¹ ãªããžã§ã¯ããäœæããŸãã
ããšãã°ãjson.dll ã³ã³ããŒãã³ãã« JSON ãèªã¿åãããã®ã¯ã©ã¹ (ããšãã°ãJSONStreamReader) ãèšè¿°ããããšãã§ããŸãã
ã¯ã©ã¹ãšã€ã³ã¹ã¿ã³ã¹ã¯ä»ã®ã³ã³ããŒãã³ãããäœæã§ããŸãããããã㯠SCOM ãã·ã³ã«ç»é²ããå¿
èŠããããŸãã
SCOM_CLASS_ENTRY(JSONStreamReader)
ãã®ãã¯ãã¯ç¹å¥ãªéçã¬ã³ãŒã㌠ã¯ã©ã¹ãèšè¿°ããŸãããã®ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ãŒã¯ãã³ã³ããŒãã³ããã¡ã¢ãªã«ããŒãããããšãã«åŒã³åºãããŸãã
ãã®åŸãå¥ã®ã³ã³ããŒãã³ãã§ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸãã
IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));
ãµãŒãã¹ããµããŒãããããã«ãSCOM ã¯è¿œå ã®ããªãè€éãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããŸãã ãã®äžå¿ãšãªãã®ã¯ SCOM ããã»ã¹ã®æŠå¿µã§ããããã¯ããµãŒãã¹ãå®è¡ããããã®ã³ã³ãããŒãšããŠæ©èœã (ã€ãŸãããµãŒãã¹ ãã±ãŒã¿ãŒã®åœ¹å²ãæãããŸã)ãããŒã«ã©ã€ãºããããªãœãŒã¹ãžã®ãã€ã³ãã£ã³ã°ãå«ãŸããŠããŸãã SCOM ããã»ã¹ã¯ OS ã¹ã¬ããã«é¢é£ä»ããããŠããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³å ã§æ¬¡ã®ãããªãµãŒãã¹ãåããããšãã§ããŸãã
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
ããã«ãã¹ã¬ããã«é¢é£ä»ããããè«ç (SCOM) ããã»ã¹ãåãæ¿ããããšã«ãããæ å ±ç©ºéã®èŠ³ç¹ããå®è³ªçã«ç¬ç«ããã¢ããªã±ãŒã·ã§ã³ãåãã¹ã¬ããå ã§å®è¡ã§ããŸãã ããã¯ãã·ã³ ã¯ã©ã€ã¢ã³ãããã¡ã€ã« ããŒã¿ããŒã¹ãæäœããæ¹æ³ã§ããXNUMX ã€ã® OS ããã»ã¹å ã« XNUMX ã€ã® SCOM ããã»ã¹ããããXNUMX ã€ã¯ã¯ã©ã€ã¢ã³ãã«é¢é£ä»ãããããã XNUMX ã€ã¯ãµãŒããŒã«é¢é£ä»ããããŸãã ãã®ã¢ãããŒãã«ãããããŒã«ã« ãã¡ã€ã« ããŒã¿ããŒã¹ãšãå®éã®ãã¯ã©ã€ã¢ã³ã/ãµãŒã㌠ããŒãžã§ã³ã®äž¡æ¹ã§æ©èœããã³ãŒãã®èšè¿°ãçµ±äžããããšãã§ããŸãã ãã®ãããªåäžæ§ãå®çŸããã«ã¯è«žçµè²»ãããããŸãããå®è·µããŠã¿ããšããã ãã®äŸ¡å€ãããããšãããããŸãã
SCOM ã³ã³ããŒãã³ã ã¢ãã«ã«åºã¥ããŠã1C: Enterprise ã®ããžãã¹ ããžãã¯ãšã€ã³ã¿ãŒãã§ã€ã¹éšåã®äž¡æ¹ãå®è£ ãããŠããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹
ãšããã§ã€ã³ã¿ãŒãã§ãŒã¹ã«ã€ããŠã æšæºã® Windows ã³ã³ãããŒã«ã¯äœ¿çšãããã³ã³ãããŒã«ã¯ Windows API ã«çŽæ¥å®è£
ãããŸãã Linux ããŒãžã§ã³ã®å ŽåãwxWidgets ã©ã€ãã©ãªãéããŠæ©èœããã¬ã€ã€ãŒãäœæãããŸããã
ã³ã³ãããŒã«ã®ã©ã€ãã©ãªã¯ 1C:Enterprise ã®ä»ã®éšåã«äŸåãããä»ã®ããã€ãã®å°ããªå
éšãŠãŒãã£ãªãã£ã§äœ¿çšãããŸãã
1C:Enterprise ã®é·å¹Žã®éçºãéããŠãã³ã³ãããŒã«ã®å€èŠ³ã¯å€åããŸããããååã®é倧ãªå€æŽã¯ 2009 幎ã®ããŒãžã§ã³ 8.2 ã®ãªãªãŒã¹ãšããããŒãžã ãã©ãŒã ãã®åºçŸã® XNUMX 床ã ãçºçããŸããã å€èŠ³ã®å€æŽã«å ããŠããã©ãŒã ã¬ã€ã¢ãŠãã®ååãæ ¹æ¬çã«å€ãããŸãããèŠçŽ ã®ãã¯ã»ã«ããšã®é
眮ãæåŠãããèŠçŽ ã®ãã㌠ã¬ã€ã¢ãŠããæ¡çšãããŸããã ããã«ãæ°ããã¢ãã«ã§ã¯ãã³ã³ãããŒã«ã¯ãã¡ã€ã³ ãªããžã§ã¯ãã§ã¯çŽæ¥åäœãããç¹å¥ãª DTO ã§åäœããŸã (
ãããã®å€æŽã«ãããJavaScript ã³ã³ãããŒã«ã® C++ ããžãã¯ãè€è£œãã 1C:Enterprise Web ã¯ã©ã€ã¢ã³ããäœæã§ããããã«ãªããŸããã ç§ãã¡ã¯ãã·ã³ ã¯ã©ã€ã¢ã³ããš Web ã¯ã©ã€ã¢ã³ãã®éã§æ©èœã®åçæ§ãç¶æããããåªããŠããŸãã å©çšå¯èœãª JavaScript API ã®å¶é (ããšãã°ããã¡ã€ã«ãæäœã§ããæ©èœãéåžžã«å¶éãããŠãããªã©) ã«ãããããäžå¯èœãªå Žåãå€ãã®å ŽåãC++ ã§èšè¿°ããããã©ãŠã¶æ¡åŒµæ©èœã䜿çšããŠå¿
èŠãªæ©èœãå®è£
ããŸãã çŸåšãInternet Explorer ãš Microsoft Edge (Windows)ãGoogle Chrome (Windows)ãFirefox (Windows ããã³ Linux)ãSafari (MacOS) ããµããŒãããŠããŸãã
ããã«ããããŒãžã ãã©ãŒã ãã¯ãããžãŒã䜿çšããŠã1C ãã©ãããã©ãŒã äžã§ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³çšã®ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããŸãã ã¢ãã€ã« ããã€ã¹ã§ã¯ãã³ã³ãããŒã«ã¯ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«ãã€ãã£ããªãã¯ãããžã䜿çšããŠæç»ãããŸããããã©ãŒã ã¬ã€ã¢ãŠã ããžãã¯ãšã€ã³ã¿ãŒãã§ã€ã¹ã®å¿çã«ã¯ãã倧èŠæš¡ãªã1C:Enterprise ãã©ãããã©ãŒã ãšåãã³ãŒãã䜿çšãããŸãã
Linux OS äžã® 1C ã€ã³ã¿ãŒãã§ã€ã¹
ã¢ãã€ã«ããã€ã¹äžã®1Cã€ã³ã¿ãŒãã§ãŒã¹
ä»ã®ãã©ãããã©ãŒã ã® 1C ã€ã³ã¿ãŒãã§ã€ã¹
Windows OSäžã®1Cã€ã³ã¿ãŒãã§ãŒã¹
ã€ã³ã¿ãŒãã§ãŒã¹ 1C - Web ã¯ã©ã€ã¢ã³ã
ãªãŒãã³ãœãŒã¹
Windows ã§ã® C++ éçºè
åãã®æšæºã©ã€ãã©ãª (MFCãWinAPI ããã®ã³ã³ãããŒã«) ã¯äœ¿çšããŸãããããã¹ãŠã®ã³ã³ããŒãã³ããèªåãã¡ã§äœæããããã§ã¯ãããŸããã å³æžé€šã«ã€ããŠã¯ãã§ã«èšåãããŠããŸã
curl HTTP ããã³ FTP ãæäœãããããOpenSSLã® æå·åã®æäœãš TLS æ¥ç¶ã®ç¢ºç«çšlibxml2 ãš libxslt XML解æçšãªããã³ ã¡ãŒã«ãããã³ã« (POP3ãSMTPãIMAP) ã䜿çšããå Žåæš¡å£ é»åã¡ãŒã«ã¡ãã»ãŒãžã解æããã«ã¯ã¹ã¯ã©ã€ã ãŠãŒã¶ãŒãã°ã®ä¿åçšICU åœéåã«åããŠ
ãªã¹ãã¯ç¶ããŸãã
ããã«ãé«åºŠã«ä¿®æ£ãããããŒãžã§ã³ã䜿çšããŸã
ã©ã€ãã©ãªã¯ãSCOM ã³ã³ããŒãã³ãæ§æã¢ãã«ãšäºææ§ãæãããããã«é©å¿ãããå¿
èŠããããŸããã
1C ã®è延ã«ããããã©ãããã©ãŒã ã¯ãããã§äœ¿çšãããã©ã€ãã©ãªã®åŒ·åºŠããã¹ãããåªãããã¹ããšãªããŸãã ããŸããŸãªãŠãŒã¶ãŒãšã·ããªãªã§ã¯ãã³ãŒãã®æããŸãã«äœ¿çšãããé åã§ãã£ãŠããšã©ãŒãããã«æããã«ãªããŸãã ç§ãã¡ã¯ããããèªåãã¡ã§ä¿®æ£ããã©ã€ãã©ãªã®èè
ã«è¿ãããã«åªããŠããŸãã ã€ã³ã¿ã©ã¯ã·ã§ã³ã®çµéšã¯å€§ããç°ãªãããšãããããŸãã
éçºè
ãŸãšã
ãã®èšäºã§ã¯ã1C: Enterprise ãã©ãããã©ãŒã ã®éçºã®ããã€ãã®äž»èŠãªåŽé¢ã«ã€ããŠè§ŠããŸããã ãã®èšäºã®éãããç¯å²ã®äžã§ãç§ãã¡ã®æèŠã§ã¯ãããã€ãã®èå³æ·±ãåŽé¢ã®ã¿ã«è§ŠããŸããã
ããŸããŸãªãã©ãããã©ãŒã ã®ã¡ã«ããºã ã®æŠèŠã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ä»åŸã®èšäºã§èå³ã®ãããããã¯ã¯äœã§ãã?
1C ã¢ãã€ã« ãã©ãããã©ãŒã ã¯ã©ã®ããã«å®è£
ãããŸãã?
Webã¯ã©ã€ã¢ã³ãã®å
éšæ§é ã®èª¬æ?
ãããšããæ°ãããªãªãŒã¹ã®æ©èœã®éžæãéçºããã¹ãã®ããã»ã¹ã«èå³ãããã§ãããã?
ã³ã¡ã³ãã«æžããŠãã ããïŒ
åºæïŒ habr.com