å°ãå (2016 幎ã®ç§)ã1C:Enterprise ãã¯ãããžãŒ ãã©ãããã©ãŒã ã®æ¬¡ã®ããŒãžã§ã³ã®éçºäžã«ãéçºããŒã å
ã§æ°ããæšæºã®ãµããŒãã«ã€ããŠçåãçããŸããã
ç¥ããªã人ã®ããã«èª¬æãããšã1C:Enterprise ã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®ããžãã¹ ã¢ããªã±ãŒã·ã§ã³ãšãããããããŸããŸãª OS ã DBMS äžã§å®è¡ããããã®ã©ã³ã¿ã€ã ãè¿ éã«éçºããããã®ç°å¢ã§ãã äžè¬çã«ã補åã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯ã©ã¹ã¿ ãWindows ããã³ Linux äžã§åäœããŸããã¯ã©ã€ã¢ã³ã http(s) ãŸãã¯ç¬èªã®ãã€ã㪠ãããã³ã«ãä»ããŠãµãŒããŒãšé£æºããWindowsãLinuxãmacOS ã§åäœããŸããŠã§ãã¯ã©ã€ã¢ã³ã ãChromeãInternet ExplorerãMicrosoft EdgeãFirefoxãSafari ãã©ãŠã¶ãŒã§å®è¡ (JavaScript ã§èšè¿°)- éçºç°å¢ ïŒ
ã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒ )ãWindowsãLinuxãmacOS ã§åäœããŸã 管çããŒã« ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãWindowsãLinuxãmacOS äžã§å®è¡ã¢ãã€ã«ã¯ã©ã€ã¢ã³ã ãhttp(s) çµç±ã§ãµãŒããŒã«æ¥ç¶ãAndroidãiOSãWindows ãå®è¡ããŠããã¢ãã€ã« ããã€ã¹ã§åäœããŸãã¢ãã€ã«ãã©ãããã©ãŒã â AndroidãiOSãWindows äžã§å®è¡ã§ãããåææ©èœãåãããªãã©ã€ã³ ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãã¬ãŒã ã¯ãŒã¯- éçºç°å¢
1C:ãšã³ã¿ãŒãã©ã€ãºéçºããŒã« ãJavaã§æžãããŠããŸã - СеÑвеÑ
ã€ã³ã¿ã©ã¯ã·ã§ã³ã·ã¹ãã
ç§ãã¡ã¯ãç°ãªããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«å¯ŸããŠã§ããéãåãã³ãŒããèšè¿°ããããã«ããŠããŸãããµãŒããŒã®ã³ãŒã ããŒã¹ã¯ 99% å ±éã§ãããã¯ã©ã€ã¢ã³ãã®ã³ãŒã ããŒã¹ã¯çŽ 95% ã§ãã 1C:Enterprise ãã¯ãããž ãã©ãããã©ãŒã ã¯äž»ã« C++ ã§èšè¿°ãããŠãããããããã®ã³ãŒãç¹æ§ã以äžã«ç€ºããŸãã
- 10 äžè¡ã® C++ ã³ãŒãã
- 14ãã¡ã€ã«ã
- 60äžã¯ã©ã¹ã
- XNUMXäžéãã®ã¡ãœããã
ãããŠãããããã¹ãŠã C++14 ã«å€æããå¿ èŠããããŸããã ä»æ¥ã¯ããããã©ã®ããã«è¡ã£ããããããŠãã®éçšã§äœãèµ·ãã£ããã«ã€ããŠèª¬æããŸãã
å 責äºé
é ã/éãåäœãããŸããŸãªã©ã€ãã©ãªã®æšæºã¯ã©ã¹ã®å®è£ ã«ãã倧éã®ã¡ã¢ãªæ¶è²» (ã§ã¯ãªã) ã«ã€ããŠä»¥äžã«æžãããŠãããã¹ãŠã®ããšã¯ãXNUMX ã€ã®ããšãæå³ããŸããããã¯ç±³åœã«ãšã£ãŠçå®ã§ãã æšæºå®è£ ãã¿ã¹ã¯ã«æé©ã§ããå¯èœæ§ã¯ååã«ãããŸãã ç§ãã¡ã¯ç¬èªã®ã¿ã¹ã¯ããå§ããŸãããã¯ã©ã€ã¢ã³ãã«å žåçãªããŒã¿ãååŸãããããã«å¯ŸããŠå žåçãªã·ããªãªãå®è¡ããããã©ãŒãã³ã¹ãæ¶è²»ã¡ã¢ãªéãªã©ã確èªããç§ãã¡ãšã¯ã©ã€ã¢ã³ãããã®ãããªçµæã«æºè¶³ããŠãããã©ãããåæããŸããã ã ãããŠåœŒãã¯ããã«å¿ããŠè¡åããŸããã
ç§ãã¡ãæã£ãŠãããã®
æåã«ãMicrosoft Visual Studio 㧠1C:Enterprise 8 ãã©ãããã©ãŒã ã®ã³ãŒããäœæããŸããã ãã®ãããžã§ã¯ã㯠2000 幎代åé ã«å§ãŸããWindows ã®ã¿ã®ããŒãžã§ã³ããããŸããã åœç¶ã®ããšãªããããã以æ¥ã³ãŒãã¯ç©æ¥µçã«éçºãããå€ãã®ã¡ã«ããºã ãå®å šã«æžãçŽãããŸããã ãã ããã³ãŒã㯠1998 幎ã®æšæºã«åŸã£ãŠèšè¿°ãããŠãããããšãã°ã次ã®ããã«ã³ã³ãã€ã«ãæåããããã«ãå³å±±æ¬åŒ§ã¯ã¹ããŒã¹ã§åºåãããŠããŸãã
vector<vector<int> > IntV;
2006 幎ããã©ãããã©ãŒã ããŒãžã§ã³ 8.1 ã®ãªãªãŒã¹ã«äŒŽããLinux ã®ãµããŒããéå§ãããµãŒãããŒãã£ã®æšæºã©ã€ãã©ãªã«åãæ¿ããŸããã
ç§ãã¡ã®æååã¯ã2000 幎代åé ã«è¡šçŸãããæååæé©åã®ã¢ã€ãã¢ã«åºã¥ããŠããŸãã
ç§ãã¡ã®è£œåã©ã€ã³ã§ã¯ã次㮠XNUMX ã€ã®äž»èŠãªæé©åãã¯ãããžãŒã䜿çšãããŸããã
- çãå€ã®å Žåãæååãªããžã§ã¯ãèªäœã®å éšãããã¡ã䜿çšãããŸã (è¿œå ã®ã¡ã¢ãªå²ãåœãŠã¯å¿ èŠãããŸãã)ã
- ãã以å€ã®å Žåã¯ã¡ã«ãã¯ã¹ã䜿çšãããŸã
ã³ããŒãªã³ã©ã€ã ã æååå€ã¯ XNUMX ãæã«ä¿åãããä»£å ¥/å€æŽæã«åç §ã«ãŠã³ã¿ã䜿çšãããŸãã
ãã©ãããã©ãŒã ã®ã³ã³ãã€ã«ãé«éåããããã«ãSTLPort ããªã¢ã³ã (䜿çšããŸããã§ãã) ããã¹ããªãŒã å®è£
ãé€å€ããŸãããããã«ãããã³ã³ãã€ã«ãçŽ 20% é«éã«ãªããŸããã ãã®åŸã䜿çšãå¶éããå¿
èŠããããŸãã
第äžã®æ¹æ³
C++14 æšæºã«ç§»è¡ããéã«ã¯ã次ã®ãªãã·ã§ã³ãæ€èšããŸããã
- å€æŽãã STLPort ã C++14 æšæºã«ã¢ããã°ã¬ãŒãããŸãã ãã®éžæè¢ã¯éåžžã«é£ããã®ã§... STLPort ã®ãµããŒã㯠2010 幎ã«å»æ¢ãããããããã¹ãŠã®ã³ãŒããèªåãã¡ã§æ§ç¯ããå¿ èŠããããŸããã
- C++14 ãšäºææ§ã®ããå¥ã® STL å®è£ ã«ç§»è¡ããŸãã ãã®å®è£ 㯠Windows ãš Linux çšã§ããããšãéåžžã«æãŸããã§ãã
- OSããšã«ã³ã³ãã€ã«ããå Žåã¯ã察å¿ããã³ã³ãã€ã©ã«çµã¿èŸŒãŸããŠããã©ã€ãã©ãªã䜿çšããŠãã ããã
æåã®ãªãã·ã§ã³ã¯ãäœæ¥ãå€ãããããå®å šã«æåŠãããŸããã
ç§ãã¡ã¯ãã°ããã®éãXNUMX çªç®ã®ãªãã·ã§ã³ã«ã€ããŠèããŸããã åè£ãšããŠèãããã
ãããŠç§ãã¡ã¯XNUMXçªç®ã®éãéžã³ãŸããã
ÐеÑÐµÑ ÐŸÐŽ
ãã®ãããSTLPort ã®äœ¿çšãã察å¿ããã³ã³ãã€ã© (Windows ã®å Žå㯠Visual Studio 2015ãLinux ã®å Žå㯠gcc 7ãmacOS ã®å Žå㯠Clang 8) ã®ã©ã€ãã©ãªã«çœ®ãæããå¿ èŠããããŸããã
幞ããªããšã«ãç§ãã¡ã®ã³ãŒãã¯äž»ã«ã¬ã€ãã©ã€ã³ã«åŸã£ãŠæžãããŠãããããããçš®é¡ã®å·§åŠãªããªãã¯ã¯äœ¿çšããŠããŸããã§ããããã®ããããœãŒã¹å ã®åãã¯ã©ã¹ãåå空éãããã³ã€ã³ã¯ã«ãŒãã®ååã眮ãæããã¹ã¯ãªããã®å©ããåããŠãæ°ããã©ã€ãã©ãªãžã®ç§»è¡ã¯æ¯èŒçã¹ã ãŒãºã«é²ã¿ãŸããããã¡ã€ã«ã ãã®ç§»è¡ã«ããã(10 åã®ãã¡) 000 åã®ãœãŒã¹ ãã¡ã€ã«ã圱é¿ãåããŸããã wchar_t 㯠char14_t ã«çœ®ãæããããŸããã ç§ãã¡ã¯ wchar_t ã®äœ¿çšãæŸæ£ããããšã«ããŸããã char000_t ã¯ãã¹ãŠã® OS 㧠16 ãã€ããå¿ èŠãšããWindows ãš Linux éã®ã³ãŒãã®äºææ§ãæãªãããšã¯ãããŸããã
å°ããªåéºãããã€ããããŸããã ããšãã°ãSTLPort ã§ã¯ã€ãã¬ãŒã¿ãèŠçŽ ãžã®ãã€ã³ã¿ã«æé»çã«ãã£ã¹ãã§ããã³ãŒãå ã®ããã€ãã®å Žæã§ããã䜿çšãããŸããã æ°ããã©ã€ãã©ãªã§ã¯ãããè¡ãããšã¯ã§ããªããªãããããã®ããã»ãŒãžãæåã§åæããŠæžãçŽãå¿ èŠããããŸããã
ããã§ã³ãŒãã®ç§»è¡ã¯å®äºããã³ãŒãã¯ãã¹ãŠã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã çšã«ã³ã³ãã€ã«ãããŸããã ãã¹ãã®æéã§ãã
移è¡åŸã®ãã¹ãã§ã¯ãå€ãããŒãžã§ã³ã®ã³ãŒããšæ¯èŒããŠãããã©ãŒãã³ã¹ã®äœäž (å Žæã«ãã£ãŠã¯æ倧 20 ïœ 30%) ãšã¡ã¢ãªæ¶è²»éã®å¢å (æ倧 10 ïœ 15%) ã瀺ãããŸããã ããã¯ç¹ã«ãæšæºæååã®ããã©ãŒãã³ã¹ãæé©ã§ã¯ãªãããšãåå ã§ããã ãããã£ãŠãç§ãã¡ã¯åã³ããããã«å€æŽããç¬èªã®è¡ã䜿çšããå¿ èŠããããŸããã
çµã¿èŸŒã¿ã©ã€ãã©ãªã§ã®ã³ã³ããã®å®è£ ã«é¢ããèå³æ·±ãæ©èœãæããã«ãªããŸãããçµã¿èŸŒã¿ã©ã€ãã©ãªã®ç©ºã® (èŠçŽ ãªã) std::map ãš std::set ãã¡ã¢ãªãå²ãåœãŠãŸãã ãŸããå®è£ æ©èœã«ãããã³ãŒãå ã®ããã€ãã®å Žæã§ããã®ã¿ã€ãã®ç©ºã®ã³ã³ããã倧éã«äœæãããŸãã æšæºã¡ã¢ãª ã³ã³ãã㯠XNUMX ã€ã®ã«ãŒãèŠçŽ ã«å¯ŸããŠå°ãå²ãåœãŠãããŸãããç§ãã¡ã«ãšã£ãŠããã¯éèŠã§ããããšãå€æããŸãããå€ãã®ã·ããªãªã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããã¡ã¢ãªæ¶è²»éãå¢å ããŸãã (STLPort ãšæ¯èŒããŠ)ã ãããã£ãŠãç§ãã¡ã®ã³ãŒãã§ã¯ãçµã¿èŸŒã¿ã©ã€ãã©ãªã®ããã XNUMX çš®é¡ã®ã³ã³ããã Boost ã®å®è£ ã«çœ®ãæããŸããããããã®ã³ã³ããã«ã¯ãã®æ©èœããããŸããã§ãããããã«ãããé床äœäžãšã¡ã¢ãªæ¶è²»éã®å¢å ã®åé¡ã解決ãããŸããã
倧èŠæš¡ãªãããžã§ã¯ãã§å€§èŠæš¡ãªå€æŽãè¡ã£ãåŸã«ããããããšã§ããããœãŒã¹ ã³ãŒãã®æåã®ã€ãã¬ãŒã·ã§ã³ã¯åé¡ãªãåäœããŸããã§ãããããã§ã¯ç¹ã«ãWindows å®è£ ã§ã®ã€ãã¬ãŒã¿ã®ãããã°ã®ãµããŒãã圹ã«ç«ã¡ãŸããã ç§ãã¡ã¯æ®µéçã«åé²ãã2017 幎ã®æ¥ (ããŒãžã§ã³ 8.3.11 1C:Enterprise) ãŸã§ã«ç§»è¡ãå®äºããŸããã
çµæ
C++14 æšæºãžã®ç§»è¡ã«ã¯çŽ 6 ãæããããŸããã ã»ãšãã©ã®å ŽåãXNUMX 人㮠(ãã ãéåžžã«æèœãª) éçºè ãããââãžã§ã¯ãã«åãçµã¿ãæçµæ®µéã§ã¯ UIããµãŒã㌠ã¯ã©ã¹ã¿ãŒãéçºããã³ç®¡çããŒã«ãªã©ã®ç¹å®ã®é åãæ åœããããŒã ã®ä»£è¡šè ãåå ããŸããã
ãã®ç§»è¡ã«ãããæšæºã®ææ°ããŒãžã§ã³ãžã®ç§»è¡äœæ¥ã倧å¹
ã«ç°¡çŽ åãããŸããã ãããã£ãŠãããŒãžã§ã³ 1C:Enterprise 8.3.14 (éçºäžããªãªãŒã¹ã¯æ¥å¹Žåãã«äºå®) ã¯ãã§ã«æšæºã«ç§»è¡ãããŠããŸãã
移è¡åŸãéçºè ã«ã¯ããã«å€ãã®éžæè¢ããããŸãã 以åã«ç¬èªã®ä¿®æ£ããŒãžã§ã³ã® STL ãš XNUMX ã€ã® std åå空éããã£ãå ŽåãçŸåšã¯ std åå空éãš stdx åå空éã«çµã¿èŸŒã¿ã³ã³ãã€ã© ã©ã€ãã©ãªããã®æšæºã¯ã©ã¹ããããããŒã¹ãã§ã¯ã¿ã¹ã¯çšã«æé©åãããè¡ãšã³ã³ãããååšããŸããããŒã¹ãã®ææ°ããŒãžã§ã³ã ãããŠéçºè ã¯ãåé¡ã解決ããã®ã«æé©ãªã¯ã©ã¹ã䜿çšããŸãã
move ã³ã³ã¹ãã©ã¯ã¿ãŒã®ããã€ãã£ããå®è£
ãéçºã«åœ¹ç«ã¡ãŸã (
è»èã®äžãé£ã¶
ããããã移è¡ã®æãäžå¿«ãª (ãã ãé倧ã§ã¯ãªã) çµæã¯ãããªã¥ãŒã ã®å¢å ã«çŽé¢ããããšã§ãã
åºæïŒ habr.com