OLE 1Cã·ãã¯ã¯ã©ã€ã¢ã³ã管çã¡ã«ããºã ã¯ããã¹ãŠã®æ©èœãšããŒã¿ãžã®ãã«ã¢ã¯ã»ã¹ãæäŸããŸãã ããã«ããã1CãŸãã¯ãã®å€éšã·ã¹ãã ãšã®çµ±åãã«ã¹ã¿ãã€ãºãããšãã«ãçµã¿èŸŒã¿ããã°ã©ãã³ã°èšèªããŸã£ãã䜿çšããããããã£ãŠãæ§æãæ©èœãããã³ã©ã³ã¿ã€ã ã«å¶éãããªãããã«ããããšãã§ããŸãã
代ããã«ãWin32 OLEãæäœããããã®ã©ã€ãã©ãªãåããææ°ã®èšèªã䜿çšã§ããŸãã ããšãã°ãJavaScriptïŒWin32 OLEã¯Node.JSããµããŒãïŒãŸãã¯RubyïŒå¿
èŠãªã©ã€ãã©ãªã¯æšæºèšèªã©ã€ãã©ãªã®ã»ããã«å«ãŸããŠããŸãïŒã
Rubyã§ã®OLEã€ã³ã¿ãŒãã§ã€ã¹ã®å®éã®çµéšã以äžã«èª¬æããŸãã 説æã¯å®å
šãªãµããããã®ã§ã¯ãªããããŒã¿ã¬ãã«ã§ã®åçŽãªèªååãŸãã¯çµ±åã«å¿
èŠãªãã®ïŒãã£ã¬ã¯ããªããã³ããã¥ã¡ã³ãã®èªã¿åããšæžã蟌ã¿ãèŠæ±ã®å®è¡ïŒã®ã¿ãéžæããŠèª¬æããŸãã
ãªãã§ïŒ
1Cã¯ãã·ã¢ã®èšå€§ãªæ°ã®äŒæ¥ã䜿çšããŠãããã»ãšãã©ã®äŒæ¥ã¯1Cã§äœãã倿Žããããäœããšçµ±åãããããå¿
èŠæ§ãæããŠããŸãã åæã«ãå€ãã®å Žåãé«éã§å®äŸ¡ã§ããããšãå¿
èŠã§ãã
ãã®ããã1Cã«ã¯éåžžã®æ©èœããããŸãã
- ã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒã䜿çšããŠæ§æã倿Žããããšã«ãããã·ã¹ãã ã®ããŒã¿æ§é ã倿ŽããŸãã
- æ§æãŸãã¯å€éšãåŠçãã®äžéšãšããŠãœãããŠã§ã¢ã¢ãžã¥ãŒã«ãä»ããŠã·ã¹ãã ã®ããžãã¯ã倿Žããã
- OLEãŸãã¯COMã€ã³ã¿ãŒãã§ã€ã¹ãä»ãããŠãŒã¶ãŒã®è·å Žã§ã®ã·ã¹ãã ã®ãã·ãã¯ã¯ã©ã€ã¢ã³ãããšã®å¯Ÿè©±ã
ããããããã§ã¯ããã€ãã®ããã«ãããã€ãã®ããããããããã
ãŸããæ§æã倿Žããããªãã®ã¯ããµããŒãããæ§æãåé€ããå¿
èŠããããšæããããããæŽæ°ãå°é£ã«ãªãããã§ãã
第äºã«ãç§ã¯1Cããã°ã©ãã³ã°èšèªãåŠç¿ããŠã1C以å€ã®ã©ããã§ç¡é§ã«ãªã£ãŠãããããç§çãªåé¡ãããã€ã解決ããããããŸããã
ãããŠãããã§OLEã¢ã¯ã»ã¹ãæ¬åœã«åœ¹ç«ã¡ãŸããããã«ããã1Cã¯ã©ã€ã¢ã³ãã§ãã³ã³ãã¥ãŒã¿ãŒã«åº§ã£ãŠãããŠãŒã¶ãŒãã§ããããšïŒããã«ã¯ãã以äžïŒãå®è³ªçã«ãã¹ãŠå®è¡ã§ããããã«ãªããŸãã win32oleã
Rubyã«ã€ããŠã¯ãç¹°ãè¿ãããšã®ã§ããªãå€ãã®æãæããŸããã ããã¯ãåªãããšã³ã·ã¹ãã ãäœãšã³ããªãŒãããå€ã倿°ã®ãªãŒãã³ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã補åãªã©ãåãããçŸãã䟿å©ã§ææãªéçºèšèªã§ãã
ãããŠããããã匷åãªããŒã«ãåŸãããŸã1ïŒç€Ÿå
ã§çŽ1ç§ã®èªååã2ïŒäŒæ¥ã·ã¹ãã ãšå€éšåºç€ãšã®çµ±åã3ïŒãªã©ã ãªã© ãŸããRubyãã¬ãŒã ã¯ãŒã¯ã®åãèããã°ãRailsã§ãããèªååã¯å°ãããªããããããŸããã
OLEãµãŒããŒãš1Cã¯ã©ã€ã¢ã³ãã®èµ·å
éå§ããã«ã¯ãRubyãã€ã³ã¹ããŒã«ãããWindowsã³ã³ãã¥ãŒã¿ãŒãš1Cã·ãã¯ã¯ã©ã€ã¢ã³ããå¿
èŠã§ãã Rubyããã³1Cã®ããŒãžã§ã³ã¯åºæ¬çãªãã®ã§ã¯ãããŸããã以äžã®ãã¹ãŠã¯ãç°ãªãRubyããã³ç°ãªã1CïŒ8.1ã8.2ã8.3ïŒã§ãã¹ããããŠããŸãã ãã¡ããã1Cã¯ã©ã€ã¢ã³ãã¯1CããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ã§ããå¿
èŠãããããµãŒããŒã¢ãã¬ã¹ããã®ãµãŒããŒäžã®ããŒã¿ããŒã¹ã®ååããã®ããŒã¿ããŒã¹å
ã®ãŠãŒã¶ãŒã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããç¥ãå¿
èŠããããŸãã
ããã§cmd.exeã³ã³ãœãŒã«ãèµ·åãããã®äžã®irb Rubyã€ã³ã¿ãŒããªã¿ãŒãéããwin32oleã©ã€ãã©ãªãããŒãããŠäœæ¥ãéå§ã§ããŸãã ããããããã§æåã®åŸ®åŠãªåé¡ãçºçããŸãïŒirbã¯ã³ã³ãœãŒã«ã®ã³ãŒãã£ã³ã°ã§æ©èœãïŒæšæºã®Windowsã³ã³ãœãŒã«ã®å Žåã¯866ã³ãŒãã£ã³ã°ã§ãïŒãOLEã¯WINDOWS-1251ã³ãŒãã£ã³ã°ãæãã§ããããšããã§ãšã©ãŒãçºçããŸãã ãããã£ãŠã次ã®ã³ãã³ãã§ã³ã³ãœãŒã«ã®ãšã³ã³ãŒããåãæ¿ãã䟡å€ããããŸãã
chcp 1251
æåã®ã¹ãããã¯ãOLEãµãŒããŒãååŸããããšã§ãïŒäŸ8.2ã䜿çšïŒã 2ã€ç®ã®åŸ®åŠãªç¹ããããŸãã ãéåžžã®ããµãŒããŒã䜿çšãããšããã§ã«éããŠããã¢ããªã±ãŒã·ã§ã³ã«æ¥ç¶ã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
server=WIN32OLE.connect 'Excel.Application'
1Cã§ã¯ãäœããã®çç±ã§ããã¯æ©èœããŸãããå°ãªããšãç§ã«ãšã£ãŠã¯ããŸããããŸããã§ããã ãããã£ãŠãæ°ããOLEãµãŒããŒãäœæãã1Cã¯ã©ã€ã¢ã³ããæåã§ã¯ãªããOLEãµãŒããŒãä»ããŠéããŸãã
server=WIN32OLE.new "V82.Application" server.Connect("Srvr=\âmyserver\â;Ref=\âmybase\â;Usr=\"me\";Pwd=\"mypassword\"") server.Visible=true
ïŒãµãŒããŒã¯ã1Cã¯ã©ã€ã¢ã³ããé衚瀺ã®ç¶æ
ã§éããæåŸã®è¡ã§è¡šç€ºããŸãããïŒ
ã°ããŒãã«ã³ã³ããã¹ãã§äœæ¥ãã
ãµãŒããŒå€æ°ã§ãWin32OLEã¯ã©ã¹ã®ã«ãŒããªããžã§ã¯ããååŸããŸããã ããã¥ã¡ã³ãã«ãããšãåäžã®
Visibleããããã£ãšã
Connect ã
NewObject ãããã³
Stringã® 3ã€ã®ã¡ãœããããã
ãŸã ã
ãã ãããããä»ããŠã®ã¿ãã°ããŒãã«ã³ã³ããã¹ã1CïŒ1Cèªäœã§ã¯ãªããžã§ã¯ããªãã§çŽæ¥åŒã³åºãããŸãïŒã®ã¡ãœããã«ã¢ã¯ã»ã¹ã§ããŸãã
æåããããã®ã¡ãœããïŒããã³ãã¹ãŠã®ã¡ãœããïŒã®ååã¯ãã·ã¢èªã§ãããããïŒããããä»ããŠïŒçŽæ¥ã¢ã¯ã»ã¹ããããšã¯ã§ããŸããããinvokeã¡ãœããïŒãã©ã¡ãŒã¿ãŒã䜿çšããŠåŒã³åºãå ŽåïŒã䜿çšããããè§ãã£ãïŒãã©ã¡ãŒã¿ãŒã䜿çšããªãå ŽåïŒã䜿çšããå¿
èŠããããŸãïŒ
server.invoke(''[, ...])
äŸã¯ãååŒå
ãã£ã¬ã¯ããªã§ã®èŠçŽ æ€çŽ¢ã§ãã
element=server[''][''].invoke('','000000001')
8.2ã§ã¯ã»ãšãã©ãã¹ãŠã®ã¡ãœããã«è±èªã®å矩èªããããŸããã8.1ã§ã¯ãããã§ãã è±èªã®ã·ããã ãããå Žåã¯ããããã䜿çšããŠéåžžã®ã¡ãœãããšããŠåŒã³åºããŸãã
ãã1ã€ã®åŸ®åŠãªç¹ããããŸãããã©ãããããã1Cãªããžã§ã¯ãã®ã¡ãœããã¯å€§æåãšå°æåãåºå¥ããŸããããããã¥ã¡ã³ããš1Cã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒã§èª¬æãããŠããããã«ã倧æåã§æžãããšãã§ããŸãã ãããããªããåãæ¹æ³ã§Rubyã³ãŒãã§å€§æåã§æžãã®ã䟿å©ã§ãããã®ãããã©ã®ã¡ãœãããRubyã®ãã€ãã£ãã¡ãœããã§ãããå®éã«ã©ã®ã¡ãœãããWIN32OLEã§ã©ãããããŠããããããã«èŠãããšãã§ããŸã
åŒã³åºã
['Directories']ã¯DirectoriesManagerãªããžã§ã¯ãããåŒã³åºã
['Counterparties ']ã¯Counterpartiesãã£ã¬ã¯ããªã®DirectoryManagerãªããžã§ã¯ããã
åŒã³åºãåŒã³åºã
ïŒ 'Find By Code'ïŒã¯ Directoryãªããžã§ã¯ã
ãæäŸããŸãã ãããã®ãªããžã§ã¯ãã¯ãã¹ãŠWIN32OLEã¯ã©ã¹ã®ãªããžã§ã¯ãã«ã©ãããããŠãããããç¹å®ã®äžäŸ¿ãçããŸããRubyãªããžã§ã¯ããæäœããéåžžã®æ¹æ³ã¯æ©èœããŸãããããšãã°ãã©ããããããªããžã§ã¯ãã¯ã©ã¹ãã¡ãœããã®ãªã¹ããªã©ã衚瀺ãããŸããã ããšãã°ãç¹å®ã®åŒã³åºãã䜿çšããå¿
èŠããããŸãã
server.String(element)
ããã«ãäœæ¥ã®éçšã§ãäž»ã«é©çšããããªããžã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ãç¿åŸããå¿
èŠããããŸããïŒãããã®æäœã«ã€ããŠã¯ã以äžã§è©³ãã説æããŸãïŒã
- server ['Directories']ãŸãã¯server.Catalogs ã
- server ['Documents']ãŸãã¯server.Documents ã
ããè€éãªå Žåãããã©ãŒãã³ã¹ãæ¹åããããã«ã1Cã¯ãšãªèšèªã§ã¯ãšãªãèšè¿°ããå¿
èŠãããå ŽåããããŸãã query =
server.NewObjectïŒ 'Request'ïŒãåŒã³åºãããšã§äœæãããŸãã
äžèšã¯ã1C颿°ã®çµ±åãšæ¡åŒµã®åé¡ã解決ããã®ã«ååã§ããã èŠããã«ãããã¯ããã€ãã®ãã£ã¬ã¯ããªãå€éšã·ã¹ãã ã«ã¢ããããŒã/åæãã1Cã®é¢é£ããã¥ã¡ã³ãã®ããã±ãŒãžãå€éšã·ã¹ãã ããèªåçã«åŠçãã1Cããå€éšã·ã¹ãã ã«ããã€ãã®èŠçŽããŒã¿ãåä¿¡ããŸãã
æ®ãã®è³é1Cã¯ãŸã å¿
èŠã§ã¯ãªããããããã§ã¯èæ
®ããŸããããåæ§ã®æ¹æ³ã§åè§£ã§ããŸãã ããã«é¢ããäž»ãªæ
å ±æºã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ãã®ããŒã¿æ§é ããã€ã³ãããã1Cã³ã³ãã£ã®ã¥ã¬ãŒã¿ã§ãããŸãã1Cãªããžã§ã¯ãã®ããããã£ãšã¡ãœããã説æããSyntax-Helperãã«ãã·ã¹ãã ããããŸãã
ã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ãã®è©³çްã
ãã£ã¬ã¯ããª
圌ãã¯ã©ã®ããã«é
眮ãããŠããŸããïŒ
åç
§1Cã¯ïŒå¿
ãããããã§ã¯ãããŸãããïŒéå±€çã§ããå ŽåããããŸãã æ¬¡ã«ãèŠçŽ ã«ã¯åŒã³åºãã«ãã£ãŠåä¿¡ããã芪ããããŸãã
parent=element['']
åç
§ãéå±€çã§ããå ŽåãèŠçŽ ã®éå±€ãŸãã¯ã°ã«ãŒããšèŠçŽ ã®éå±€ãšãã2ã€ã®ãªãã·ã§ã³ããããŸãã ããã«ãããã©ã«ãã§ã¯ã°ã«ãŒããšèŠçŽ ã¯ããŒãã«ãã£ãŠçºè¡ãããŸãããããããœãŒãããã«ã¯ãåŒã³åºããç£èŠããå¿
èŠããããŸãïŒtrueãŸãã¯falseãè¿ãïŒã
element['']
element-groupã¯ãelement-elementãšã¯ç°ãªããæšæºå±æ§ïŒãŸãã¯1Cã®èгç¹ããã¯è©³çްïŒã®ã¿ãæã¡ãŸãã ãã£ã¬ã¯ããªã¯äŸåããŠããå ŽåããããŸãã åç
§ææè
ãããå ŽåããããŸãã æ¬¡ã«ãèŠçŽ ã«ã¯ææè
ããããŸã-åŒã³åºãã«ãã£ãŠååŸãããææè
ãã£ã¬ã¯ããªã®èŠçŽ ïŒ
owner=element['']
ããã§ãã埮åŠã§ãã ãªãŒããŒã¬ã€ãã¯å€å°ç°ãªãå ŽåããããŸãã ãææè
ãé¢ä¿ã¯ãããæå³ã§ã倿
çã§ãã ãã®ãããææè
ãåãåã£ãåŸãäžã«ç€ºãããã«ããã®ã¿ã€ãã調ã¹ãããšãçã«ããªã£ãŠããŸãïŒ
owner.Metadata.FullName ã
ãã£ã¬ã¯ããªã®åèŠçŽ ã«ã¯ãèŠçŽ ã®çªå·ä»ãã§ããæšæºå±æ§CodeïŒCodeïŒããããŸãã éåžžãèŠçŽ ã«ã¯èªåçªå·ãä»ããããŸããããã€ãã®ããã«åŸ®åŠãªç¹ããããŸãã
- åç®ã³ãŒãã¯å€æŽå¯èœ
- èŠçŽ ã³ãŒãã®äžææ§ã¯ã芪å
ãŸãã¯ææè
å
ã®ãã£ã¬ã¯ããªèšå®ã«ãã£ãŠå¶éãããå ŽåããããŸãã
ãã®ãããã³ãŒããã°ããŒãã«åç
§èå¥åãšããŠäœ¿çšããããšã¯åžžã«è¯ãèããšã¯éããŸããã ãã®ããããã£ã¬ã¯ããªå
ã§äžæã§ããã倿Žã§ããªãUUIDã䜿çšããæ¹ãé©åã§ãã
æšæºå±æ§ã®ãªã¹ãïŒ
- ããã¯Group ã IsFolderã§ã -ã°ã«ãŒãèŠçŽ éå±€ãæã€ãã£ã¬ã¯ããªã«å¯ŸããŠã®ã¿æå³ãããã
- ã³ãŒã ã ã³ãŒã -åžžã«ããã«ããã
- åå ã 説æ -åžžã«ããã«ããã
- Parent ã Parent-éå±€ãã£ã¬ã¯ããªã«å¯ŸããŠã®ã¿æå³ããããŸãã
- Owner ã Owner-äŸåãã£ã¬ã¯ããªã«å¯ŸããŠã®ã¿æå³ããããŸãã
- ããŒã¯ã®åé€ -åžžã«ããã
- Link - Ref-åžžã«ååšãããªããžã§ã¯ãReferenceãLinkãè¿ããŸãã GetObjectã¡ãœããã䜿çšããŠããªã³ã¯ããèŠçŽ ãååŸã§ããŸãã ã¢ã€ãã ã®ã¿ã€ãã¯ãã£ã¬ã¯ããªãªããžã§ã¯ãã§ãã ããããåå²ãããçç±ã¯ããŸãæç¢ºã§ã¯ãããŸããããããããã®ç¹å®ã®ã±ãŒã¹ã§å¿
èŠãªãã®ãç§åŠçã«çªãããšã«ãã£ãŠãã€ã§ã倿ã§ããŸãããªããžã§ã¯ããå¿
èŠãªãå Žåã¯ã代ããã«ãªã³ã¯ã詊ããŠãã ããã
- äºåå®çŸ© ã äºåå®çŸ© -äžèŠã䜿çšãããŠããŸããã
ãã£ã¬ã¯ããªã«ãã©ãŒã ãããå Žåããã£ã¬ã¯ããªã®èŠçŽ ã¯ãªã¯ãšã¹ãèŠçŽ .GetForm.Openã䜿çšããŠã¯ã©ã€ã¢ã³ã1Cã§éãããšãã§ããŸãã
ãªã¹ãé²èЧ
SelectãŸãã¯
Select ïŒCounterpartiesãã£ã¬ã¯ããªãªã©ïŒãåŒã³åºãããšã«ããããã£ã¬ã¯ããªã¢ã€ãã ãååŸã§ããŸãã
selector= server[''][''].Select(parent,owner)
ã»ã¬ã¯ã¿ãŒã§ãDirectorySampleãªããžã§ã¯ããååŸããŸãã true / falseãè¿ã
Nextã¡ãœããããããŸãã trueãè¿ãããå Žåããã®èŠçŽ ã®å±æ§ãšã¡ãœãããèŠæ±ã§ãããšããæå³ã§ãã»ã¬ã¯ã¿ã«æ¬¡ã®éžæèŠçŽ ãå«ãŸããŠããããšãæå³ããŸãã
parentãæå®ãããŠããå Žåãæå®ãããææè
ã®ææè
ã§ããã°ãæå®ããã芪ã®éžæãååŸããŸãã ææè
ã®ã¿ã§ãã£ã«ã¿ãªã³ã°ããå Žåã芪ã§ã¯ãªãnilãèšå®ããŸãã
çŽæ¥ã®åå«ã ãã§ãªãããã®èŠªã®äžã®éå±€å
šäœãååŸããå Žåã¯ã
Selectã®ä»£ããã«
Select HierarchicallyãŸãã¯
SelectHierarchicallyãèšè¿°ããŸãã
ãããã®ã¡ãœããã«ã¯Selection屿§ãšOrder屿§ããããŸãããç§ã¯ããããçè§£ããŠããŸããã§ãããéžæãšé åºãå¿
èŠãªå Žåã
Queryã¯ãšãªãäœæããŸããïŒä»¥äžãåç
§ïŒã
æšæºå±æ§ã«å ããŠãèŠçŽ ã«ã¯ç¹å®ã®å±æ§ãããããã®ãªã¹ããšã¿ã€ãã¯ã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒã§è¡šç€ºããå¿
èŠããããŸãã ã¿ã€ãã¯åºæ¬çãªãã®ã§ããã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ã1Cãžã®åç
§ã§ãããŸããŸããã 詳现ãäžèŠãªå Žåã¯ã
server.Stringã¡ãœããã䜿çšããŠä»»æã®åãæååã«å€æã§ããŸãã
屿§ã¯ããªã¢ãŒãã£ãã¯ãã€ãŸã ããã€ãã®ã¿ã€ãããéžæã§ããŸãã ãã®å Žåã¯ãéåžžã©ãããã¿ã€ãã確èªããŸãã
selector[''].Metadata.FullName
屿§ã«å ããŠããããã衚éšåãååšããå ŽåããããŸãã ããŒãã«ããŒãã¯å±æ§ãšåãæ¹æ³ã§ååã§ååŸã§ããå¥åŠãªã»ã¬ã¯ã¿ãŒã¯è¿ãããŸãããããããã¯å
ã®ãããŒãã«ããŒãè¡ããªããžã§ã¯ãã衚瀺ããeachã¡ãœãããæã€ã»ãŒé
åã§ãã ïŒãã ããé
åã§ã¯ãããŸãããããšãã°ãcollectã¡ãœãããšeach_with_indexã¡ãœããã¯ãããŸãããïŒè¡ã«ã¯ãæšæºã®Line
NumberãŸãã¯
LineNumber屿§ã«å ããŠãã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒã§æå®ããã屿§ããããŸãã
åäžã®ã¢ã€ãã ãååŸãã
ããã€ãã®æ¹æ³ããããŸãïŒã³ãŒããååããŸãã¯å±æ§ã«ããæ€çŽ¢ã æåã®ããšã§ååã§ãã-ã³ãŒãã«ããæ€çŽ¢ã
åŒã³åºã
-Find By CodeãŸãã¯
FindByCodeïŒcodeãisfullcodeãparentãownerïŒ ã äž»ãªåŒæ°ãæåã§ãæ®ãã¯ãªãã·ã§ã³ã§ãããã³ãŒãã®äžææ§ã芪ãŸãã¯ææè
ã«ãã£ãŠå¶éãããŠããå Žåã«å¿
èŠã§ãã 2çªç®ã®åŒæ°ãtrueã®å Žåãã³ãŒãã«ã¯ãèŠçŽ ã®ãã¹ãŠã®èŠªã®ã³ãŒãã/æåã§åºåã£ãŠå«ããå¿
èŠããããŸãã
1ã€ã®ã¢ã€ãã ãè¿ãããŸãã
äœæãæžã蟌ã¿ãåé€
æ°ããèŠçŽ ã¯ã
CreateItem ïŒãŸãã¯
CreateItem ïŒããã³
CreateGroup ïŒãŸãã¯
CreateFolder ïŒã¡ãœããã䜿çšããŠäœæãããŸããã©ã¡ãã®ã¡ãœããã«ãåŒæ°ã¯ãããŸããã äŸïŒ
new_element= server[''][''].CreateItem
ç©ºã®æªä¿åã¢ã€ãã ãè¿ããŸãã ã³ãŒãã空çœã®ãŸãŸã«ãããšãä¿åæã«èªåå
¥åãããŸãã
屿§å€ã¯ã
èŠçŽ ['Attribute Name'] = < attribute
value>ãåŒã³åºãããšã«ãã£ãŠå²ãåœãŠãããŸãã ãªã³ã¯å±æ§ã«ã¯ãåç
§ãªããžã§ã¯ããå€ãšããŠå²ãåœãŠãå¿
èŠããããŸããæ¬¡ã«äŸã瀺ããŸãã
new_element['']=element.Ref
æ¥ä»å±æ§ã®èšè¿°ã«ã¯åŸ®åŠãªç¹ããããŸããæ¥ä»ã¯æåå
'yyyymmddhhmmss'ã®åœ¢åŒã§å²ãåœãŠãå¿
èŠããããŸãã
åæãªã³ã¯ã®å±æ§ãæžãããšã«ã¯åŸ®åŠãªç¹ããããŸãã ããã¯åãªãæååã®ããã«èŠããŸãããæååãåãå
¥ããªããããåæãªããžã§ã¯ããªããžã§ã¯ããå®å
šã«åç
§ããå¿
èŠããããŸããæ¬¡ã«äŸã瀺ããŸãã
element['']=server['']['']['']
åŒæ°ãªãã§
WriteãŸãã¯
WriteãåŒã³åºããšãèŠçŽ ãæžã蟌ãŸããŸãã ããšãã°ãã³ãŒãã®äžææ§èŠåã«éåããå Žåããšã©ãŒãè¿ãããå ŽåããããŸãã ãšã©ãŒã¯éåžžã©ããã€ã³ã¿ãŒã»ããããã³åŠçã§ããŸãããŸãã¯ãã¯ã©ã€ã¢ã³ãã®ç®ãéããŠèŠãã ãã§ãããã«è¡šç€ºãããŸãã
èŠçŽ ã®
åé€ã¯ãSetDeletionMarkãŸãã¯
SetDeletionMarkïŒdeletion_markãmark_descendantsïŒãåŒã³åºã
ããšã«ãã£ãŠè¡ãããããšã«ãªã£ãŠããŸãã äž¡æ¹ã®åŒæ°ã¯ããŒã«å€ã§ãæåã®åŒæ°ã¯åé€ãã©ã°ã®å®éã®å€ã§ãã ãããã£ãŠãåãã¡ãœããã䜿çšããŠãåœã®åŒæ°ã䜿çšããŠåé€ã®ãã§ãã¯ãå€ãå¿
èŠããããŸãã 2çªç®ã®ïŒãªãã·ã§ã³ã®ïŒåŒæ°ãtrueã®å ŽåãåŒã³åºãããèŠçŽ ã芪ãŸãã¯ææè
ã§ããèŠçŽ ãããŒã¯ãããŸãã
DeleteãŸãã¯
DeleteãåŒã³åºãããšã«ãããã¢ã€ãã ãå®å
šã«åé€ã§ããŸãã ãã®å Žåãåç
§æŽåæ§ã¯ãã§ãã¯ãããªããããããŒã¿ããŒã¹ãæãªããªã¹ã¯ããããŸãã
ããã¥ã¡ã³ã
圌ãã¯ã©ã®ããã«é
眮ãããŠããŸããïŒ
ããã¥ã¡ã³ãã¯ãçªå·ãšæ¥ä»ã«ãã£ãŠç¹åŸŽä»ããããŸãã çªå·ã®äžææ§ã¯ãæ¡çªæéå
ã«ãã§ãã¯ãããŸãïŒ1幎ã1æ¥ããŸãã¯ãã®ã¿ã€ãã®ããã¥ã¡ã³ãã®ããŒã¹å
ã§ãæéãªãã§äžæã«ããããšãã§ããŸãïŒã
UUIDã䜿çšããŠããã£ã¬ã¯ããªãšã³ããªãšåãæ¹æ³ã§ããã¥ã¡ã³ããèå¥ã§ããŸãã æ°åãšæ¥ä»ã¯å€æŽã§ããŸãããããã«æªãã®ã¯ãããã€ãã®ããã¥ã¡ã³ã屿§ãç·šéããåŸã«çªç¶å€æŽãããå¯èœæ§ãããããã§ãã
ãã£ã¬ã¯ããªèŠçŽ ã«äŒŒãããã¥ã¡ã³ãã«ã¯ãæšæºããã³ç¹å®ã®å±æ§ãããã衚圢åŒã®éšåãæã€ããšãã§ããŸãã ãããã䜿çšããäœæ¥ã¯ãŸã£ããåãã§ãã
æšæºææžå±æ§ïŒ
- çªå· ã çªå· -åžžã«ããã«ããã
- æ¥ä» ã æ¥ä» -åžžã«ããã«ãããæ¥ä»æå»åãI
- ããŒã¯ã®åé€ ã DeletionMark-åžžã«ããã
- Link ã Ref-ã¯åžžã«ååšãããã®æå³ã¯ãã£ã¬ã¯ããªã¢ã€ãã ãžã®ãªã³ã¯ã«å®å
šã«é¡äŒŒããŠããŸãã
- æçš¿æžã¿ ã æçš¿æžã¿ -åžžã«ãããŸãã
ãã£ã¬ã¯ããªèŠçŽ ãšåæ§ã«ãã¯ã©ã€ã¢ã³ãã§ããã¥ã¡ã³ããã©ãŒã ãéãããšãã§ããŸãïŒ
document.GetForm.Open ã
ããã¥ã¡ã³ãã¯æçš¿ããã³é
åžã§ããŸããããã¯ãããããæ¬¡ã®åŒã³åºãã«ãã£ãŠããã¥ã¡ã³ããä¿åããããšãã«è¡ãããŸãã
document.Write(server.DocumentWriteMode.Posting) document.Write(server.DocumentWriteMode.UndoPosting)
ãªã¹ãé²èЧ
ãã®ã¿ã€ãã®ããã¥ã¡ã³ãã®åä¿¡ã¯ã
SelectãŸãã¯
SelectãåŒã³åºãããšã«ãããã£ã¬ã¯ããªèŠçŽ ã®åä¿¡ã«é¡äŒŒããŠããŸãïŒããšãã°ããã€ã€ãŒæ³šæã®ããã¥ã¡ã³ãïŒã
doc_selector= server[''][''].Select(from, to) while doc_selector.Next do
ãã£ã¬ã¯ããªãšåæ§ã«ãNextãåŒã³åºããã³ã«ãdoc_selectorãªããžã§ã¯ãã§æ¬¡ã®èŠçŽ ã䜿çšå¯èœã«ãªããŸãã ãªãã·ã§ã³ã®fromããã³toåŒæ°ã䜿çšããŠãæåå圢åŒãyyyymmddhhmmssãã§ããã¥ã¡ã³ãã®æ¥ä»ç¯å²ãæå®ã§ããŸãã
åäžã®ããã¥ã¡ã³ããååŸãã
çªå·ãŸãã¯è©³çŽ°ã§æ€çŽ¢ã§ããŸãã æåã®ãã®ã¯ç§ã«ãšã£ãŠååã§ãã-çªå·ã§æ€çŽ¢ããŸãã åŒã³åºã
-FindByNumberãŸãã¯
FindByNumberïŒnumberãinterval_dateïŒ ã
ãªãã·ã§ã³ã®åŒæ°interval_dateïŒåœ¢åŒã¯æåå 'yyyymmddhhmmss'ïŒã¯ãçªå·ã®äžææ§ã®ééãèšå®ããããã«å¿
èŠã§ããç®çã®ééã«è©²åœããæ¥ä»ãæžã蟌ãŸããŸãã
äœæãæžã蟌ã¿ãåé€
ãã¹ãŠãåèæžã«éåžžã«äŒŒãŠããŸãã
ããã¥ã¡ã³ãã¯
CreateDocumentãŸãã¯
CreateDocumentãåŒã³åºãããšã«ãã£ãŠäœæãããããŒã¿ããŒã¹ã«ä¿åãããŠããªãæ°ãã空ã®ããã¥ã¡ã³ããååŸããŸãã ä¿åæã«èªåçªå·ä»ããšèªåæ¥ä»å²ãåœãŠãè¡ãããŸãã
èŠçŽ ã¯ã2ã€ã®ãªãã·ã§ã³åŒæ°
ã䜿çšããŠ
WriteãŸãã¯
WriteãåŒã³åºãããšã«ããæžã蟌ãŸããŸãã 1ã€ç®ã¯èšé²ã¢ãŒãã§ãïŒäŒå°ã®æç¡ã«ããããããäžèšãåç
§ïŒãå¯èœãªå€ã¯æ¬¡ã®ãšããã§ãã
server.DocumentWriteMode.Posting
2çªç®ã¯ããã¥ã¡ã³ãã¢ãŒãã§ãå¯èœãªå€ã¯æ¬¡ã®ãšããã§ãã
server.DocumentPostingMode.Regular
ããã¥ã¡ã³ãã®åé€ã¯ããã£ã¬ã¯ããªã¢ã€ãã ã®åé€ã«äŒŒãŠããŸãã
åé€ããŒã¯-åé€
ããŒã¯ãŸãã¯
SetDeletionMarkïŒdeletion_markïŒãèšå®ããŸãã ããŒã«åŒæ°ã¯ãåé€ãã©ã°ã®å€ã§ãã ææžã®å®å
šãªåé€
-DeleteãŸãã¯
DeleteãåŒã³åºããŸãïŒåç
§æŽåæ§ã¯ãã§ãã¯ãããŸããïŒã
ãåãåãã
1CããŒã¿ããŒã¹ãžã®ã¯ãšãªã¯ãSQLã«äŒŒãã¯ãšãªèšèªã§èšè¿°ãããããŸããŸãª1Cãªããžã§ã¯ãããšã³ãã£ãã£ããã³å±æ§ãšããŠè¡šç€ºãããŸãã
äžæ¹ãã¯ãšãª1Cã䜿çšãããšãå¿
èŠãªããŒã¿ãããæ£ç¢ºã«éžæããŠéçŽã§ãããšåæã«ãæ°ããïŒãŸã ãã¹ã¿ãªã³ã°ãããŠããªãïŒã¿ã€ãã®ãªããžã§ã¯ãã䜿çšããŠrubyããã®è€éãªäœæ¥ãè§£ãããšãåé¿ã§ãããšããæå³ã§äŸ¿å©ã§ãã ããã-ããã¥ã¡ã³ããŸãã¯ã€ã³ã¿ãŒãããããã®ãªã¯ãšã¹ãã®äŸã¯ããªã¯ãšã¹ãã®æ¬æãåãªãæååã§ããããã1察1ã§äœ¿çšã§ããŸãã ãŸããã³ãŒãäŸãRubyã«å€æããå¿
èŠããããŸãããããã¯å¿
ãããäºçްãªããšã§ã¯ãããŸããã
ããšãã°ãAccumulation RegistersãWarehouses in Goodsã«ããååº«ã®æ®é«ãå¿
èŠãªå Žåãæ°ããã¿ã€ãã®ãªããžã§ã¯ããè§£æããããããµã³ãã«ãªã¯ãšã¹ããèŠã€ããæ¹ãã¯ããã«ç°¡åã§ããããšãããããŸããã
äžæ¹ãæ§æãã«ããŒã«ã¯ã¯ãšãªèšèªã®èª¬æã¯ãªãã1Cã®ããã¥ã¡ã³ããæå
ã«çšæããå¿
èŠããããŸãã
ãã®ãããæ¬¡ã®åŒã³åºãã«ãã£ãŠæ°ãããªã¯ãšã¹ããäœæãããŸãã
query=server.NewObject('Query')
次ã«ãã¯ãšãªããã¹ããå
¥åããŸããæ¬¡ã«äŸã瀺ããŸãã
query.Text= ' . . .=& .=&'
ããã§ã
ïŒNomenclatureãš
ïŒCHã¯ãªã¯ãšã¹ããã©ã¡ãŒã¿ã§ãããå€ãå²ãåœãŠãå¿
èŠããããŸããæåã¯ãã£ã¬ã¯ããªèŠçŽ ã2çªç®ã¯è¡ã§ãïŒ
nom=server[''][''].FindByCode('0001234567') query.SetParameter('',nom) query.SetParameter('','12345678')
次ã«ã
å®è¡èŠæ±ãšã
ã¢ã³ããŒãèŠæ±ã®çµæãå¿
èŠã§ãã
result=query.Execute.Unload
çµæã«ã¯ã
NumberãŸãã¯
Countã¡ãœãã-èŠã€ãã£ãè¡ã®æ°ãå«ãŸããŸãã è¡çªå·ïŒ0ããå§ãŸãïŒã§
GetãŸãã¯
Getã¡ãœããã«ãã£ãŠçµæããåã
ã®ã¬ã³ãŒããååŸããå¥ã®ã¬ã³ãŒã屿§ã
ååŸããŸã-å床0ãŸãã¯0ããå§ãŸããªã¯ãšã¹ãã®å±æ§çªå·ã§
GetãŸãã¯
Getã¡ãœããã«ãã£ãŠ
ååŸããŸã
sers=(0..result.Count).collect do |i| record=result.Get(i) record.Get(0) end
éèŠïŒSELECTã»ã¯ã·ã§ã³ã§ãªããžã§ã¯ãããªã¯ãšã¹ãããå Žåã察å¿ãã屿§ã§ãªããžã§ã¯ãå
šäœãåãåããŸãã ãã®äŸã§ã¯ãDirectory Referenceã¿ã€ãã®åœåæ³ã·ãªãŒãºã®Directoryã®èŠçŽ ã®é
åããããŸãã ãããŠãCHOICEãNameã§Seriesãæå®ããå Žåããªããžã§ã¯ãã®ä»£ããã«å¯Ÿå¿ããè¡ãååŸããŸãã
ãæž
èŽããããšãããããŸããã