組み込み言語1Cを使用したドキュメントジェネレーター:エンタープライズ8.3.10

数週間前にフォーラムを読み、レポートのソースコードを分析して「1C:Enterprise 8」を処理する組み込みの1C言語でユニバーサル処理を準備しました。 発生したソースコードの分析は、私のホームページでの売り上げの出現でした。 数千のファイルのマニュアルドキュメントを作成しようとしても失敗しました。
ステップ1:

-1つのモジュールのソースコードを分析するためのテーブルを作成します(テンプレートのデバッグ用):

画像

-ドキュメント内の1つのモジュールのソースコードの機能を表示するレイアウトを作成します。

画像

-1つのモジュールのソースコードを分析する手順を作成します。

&  () (""); = ; .(); .();  =1  .()  =.(); =.(); .=; .=; ;  &  ()  ; .();        (.,"")<>0   .=.-4;  ; =.(); =(.,"("); 1=(.(0)," "); .=1.(1); .=.; ;  (.,"")<>0   .=.-4;  ; =.(); =(.,"("); 1=(.(0)," "); .=1.(1); .=.; ; ; .=.()-2;  &  ()        =.  .  =.(); =..(); .=.; .=.;  (.,"")<>0   (.,"")<>0  =(.,".");  =0  .()-1   +1<.()   (.(+1),5)=""  =..( ("",.()));  .()=0  =..(); .=.(); .=.; .=" "+.(); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; ; ; ; 1=(.,"()");  1.()<=5   (.,"")=0   (.,"")<>0   (1.(1),"")<>0  =..( ("","="+1.(2)));  .()=0  =..(); .="="+1.(2); .=.; ;  =..( ("","="+1.(1)));  .()=0  =..(); .="="+1.(1); .=.; ; ;  =..( ("","="+1.(1)));  .()=0  =..(); .="="+1.(1); .=.; ; ;   (.,"")<>0  =..( ("","="+1.(2)));  .()=0  =..(); .="="+1.(2); .=.; ;  =..( ("","="+1.(2)));  .()=0  =..(); .="="+1.(2); .=.; ; ; ;   (.,"")<>0  =..( ("","="+1.(1.()-3)));  .()=0  =..(); .="="+1.(1.()-3); .=.; ;  =..( ("","="+1.(1.()-3)));  .()=0  =..(); .="="+1.(1.()-3); .=.; ; ; ; ;  (.,"|")<>0  =(.,".");  (.(.()-1),"  ")<>0  =..( ("",(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4)));  .()=0  =..(); .=(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); .=.; .=" "+(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); 1=(.(.()-1),"  "); .=1.(1.()-1); ;  =..( ("",.(.()-1)));  .()=0  =..(); .=.(.()-1); .=.; .=" "+.(.()-1); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; ; ;  (.,"Object")<>0  =(.,(34)); 1=(.(1),"."); =..( ("",1.(1)));  .()=0  =..(); .=1.(1); .=.; .="    "+1.(1); 2=(.,"=");  (2.(0),".")=0  .=(2.(0)); ; ; ; ;  (.,".")<>0   (.,"")<>0  =(.,"."); =..( ("",.(1)));  .()=0  =..(); .=.(1); .=.; .=" "+.(1); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; 1=(.,"()"); 2=(1.(1),","); =..( ("","="+2.(0)));  .()=0  =..(); .="="+2.(0); .=.; ; =..( ("","="+2.(1)));  .()=0  =..(); .="="+2.(1); .=.; ; ;  (.,"|")<>0  =(.,".");  (.(.()-1),"  ")<>0  =..( ("",(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4)));  .()=0  =..(); .=(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); .=.; .=" "+(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ;  =..( ("",.(.()-1)));  .()=0  =..(); .=.(.()-1); .=.; .=" "+.(.()-1); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; ; ;  (.,"Object")<>0  =(.,(34)); 1=(.(1),"."); =..( ("",1.(1)));  .()=0  =..(); .=1.(1); .=.; .="    "+1.(1); 2=(.,"=");  (2.(0),".")=0  .=(2.(0)); ; ; ; ;  (.,"")<>0   (.,"")<>0  =(.,"."); =..( ("",.(1)));  .()=0  =..(); .=.(1); .=.; .=" "+.(1); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; ;  (.,"|")<>0  =(.,".");  (.(.()-1),"  ")<>0  =..( ("",(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4)));  .()=0  =..(); .=(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); .=.; .=" "+(.(.()-1),1,(.(.()-1))-(.(.()-1),"  ")-4); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ;  =..( ("",.(.()-1)));  .()=0  =..(); .=.(.()-1); .=.; .=" "+.(.()-1); 1=(.,"=");  (1.(0),".")=0  .=(1.(0)); ; ; ; ;  (.,"Object")<>0  =(.,(34)); 1=(.(1),"."); =..( ("",1.(1)));  .()=0  =..(); .=1.(1); .=.; .="    "+1.(1); 2=(.,"=");  (2.(0),".")=0  .=(2.(0)); ; ; ; ; ; ;  &  ()           .   (.)<>""   =.  .  =.();  (.,(.)+".")<>0  =(.,"."); 1=(.(1),"=");  (1.(0),"(")=0   (1.(0),(34))=0   (1.(0),"")=0   (1.(0),")")=0   (1.(0),(.))=0  =..( ("",((1.(0)," ",""),";","")));  .()=0  =..(); .=((1.(0)," ",""),";",""); .=.; ; ; ; ; ; ; ; ; ; ; ;  &  ()           .   (.)<>""   =.  .  =.();  (.,(.)+".")<>0  .=; ; ; ; ; ;  &  ()  =  ;  = ("").("");  = .(""); .();  = .(""); .(); = ; ..("");           .  =.( ("",.));  .()=0  =.(); .=.; ; ; ; .(" "); =0;       =+1;  = .(""); .. = ; .. = .; .(); ;  = .(""); .(); = ; ..("");           .      .  =.( ("",.+"."+.));  .()=0  =.(); .=.+"."+.; ; ; ; ; .(" "); =0;       =+1;  = .(""); .. = ; .. = .; .(); ;  = .(""); .(); = ; ..("");           .      .  =.( ("",.+"."+.));  .()=0  =.(); .=.+"."+.; ; ; ; ; .(" "); =0;       =+1;  = .(""); .. = ; .. = .; .(); ;  = .(""); .(); = ; ..("");           .   .=  =.( ("",.));  .()=0  =.(); .=.; ; ; ; ; .(" "); =0;       =+1;  = .(""); .. = ; .. = .; .(); ; . = ; . = ; 
      
      



ステップ2:

-展開および分析のためのすべてのレポートおよび処理ファイルの列挙:

 &  (,,)  = (+"\"+, "*.*",);  =0  .()-1  =.();  .()=   (.,5+())="8.3\"++"\"  1 = (+"\"++"\"+., "*.epf",);  1.()<>0  =.(); .=; .=; .=.;  1=0  1.()-1  1=1.(1);  1.()=   (1.,(1.)-2)<>"(1)"  =..(); .=1.; 4 = (+"\8.3\"++"\"+.+"\"+1., "*.*",);  4.()=0   =  (+"\8.3\"++"\"+.+"\"+1.); ; ; 2 = (+"\8.3\"++"\"+.+"\"+1., "*.*",);  2.()=0   =  (+"\8.3\"++"\"+.+"\"+1.); =+"\8.3\"++"\"+.+"\"+1.; =+"\"++"\"+.+"\"+1.; ("UnpackV8.exe -parse "+(34)++(34)+" "+(34)++(34)); ; ; 2 = (+"\8.3\"++"\"+.+"\"+1., "*.0",);  2.()<>0   2=0  2.()-1  2=2.(2);  2.()=  3 = (+"\8.3\"++"\"+.+"\"+1.+"\"+2., "*.*",);  3.()<>0   3=0  3.()-1  3=3.(3);  3.()=  =..(); .=3.; ; ; ;  =..(); .=2.; ; ; ; ; ; ; ; ; ; ;  &  (,,)  = (+"\"+, "*.*",);  =0  .()-1  =.();  .()=   (.,5+())="8.3\"++"\"  1 = (+"\"++"\"+., "*.erf",);  1.()<>0  =.(); .=; .=; .=.;  1=0  1.()-1  1=1.(1);  1.()=   (1.,(1.)-2)<>"(1)"  =..(); .=1.; 4 = (+"\8.3\"++"\"+.+"\"+1., "*.*",);  4.()=0   =  (+"\8.3\"++"\"+.+"\"+1.); ; ; 2 = (+"\8.3\"++"\"+.+"\"+1., "*.*",);  2.()=0   =  (+"\8.3\"++"\"+.+"\"+1.); =+"\8.3\"++"\"+.+"\"+1.; =+"\"++"\"+.+"\"+1.; ("UnpackV8.exe -parse "+(34)++(34)+" "+(34)++(34)); ; ; 2 = (+"\8.3\"++"\"+.+"\"+1., "*.0",);  2.()<>0   2=0  2.()-1  2=2.(2);  2.()=  =..(); .=2.; ; ; ; ; ; ; ; ; ; ; 
      
      



-DBMSのドキュメントの記録:

 &  (,,,,) =0; =0; =0;        ..()<>0  =..();     .   .=  =+1; ;  ..()<>0  =..(); ; ; ; ;  <>0  = ;  =  .(+"\8.3\"++"\"+()+".sql",.UTF8);  .(+"\8.3\"++"\"+()+".sql",.UTF8); ; ="INSERT INTO u8051_4.apps (`idr`,`name`,`text`,`img`,`url`,`data`,`status`,`idu`,`pop`,`price`) VALUES ("++",'"++"','"; =+"<h1>      ("++")<br></h1>"; =+"<h1>    <a href=http://icanmakeit.ru/index.php?pg=magazin&d="++">"+(,"\"," ( ")+")</a>.<br></h1>"; =+"<br>"; =+"<h4>   :<br></h4>"; .();           .  =.( ("",.));  .()=0  =.(); .=.; ; ; ; .(" "); =0;       =+1; =+()+" "+.+"<br>"; ;  <>0  =+"<br>"; =+"<h4>    :<br></h4>"; .();           .      .  =.( ("",.+"."+.));  .()=0  =.(); .=.+"."+.; ; ; ; ; .(" "); =0;       =+1; =+()+" "+.+"<br>"; ; ; =+"<br>"; =+"<h4>  :<br></h4>"; .();           .      .  =.( ("",.+"."+.));  .()=0  =.(); .=.+"."+.; ; ; ; ; .(" "); =0;       =+1; =+()+" "+.+"<br>"; ;  <>0  =+"<br>"; =+"<h4>      ()   :<br></h4>"; .();           .   .=  =.( ("",.));  .()=0  =.(); .=.; ; ; ; ; .(" "); =0;       =+1; =+()+" "+.+"<br>"; ; ; .();  =  .(+"\8.3\"++"\"+()+".sql",.UTF8);  .(+"\8.3\"++"\"+()+".sql",.UTF8); ; ;  &  () =1; =0;  .()<>0  =.(0);  ..()<>0  =..(0); =+1; .(); .();     .  =.; (); (); (); (); (); ; (.); (.,.,.,.,); ..(0);  =10  =+1; = ;  =  .(+"\8.3\"++"\"+()+".sql",.UTF8);  .(+"\8.3\"++"\"+()+".sql",.UTF8); ; ; ; ;  ..()=0  ("move "+(34)++"\8.3\"++"\"+.+(34)+" "+(34)++"\8.3\OLD\"++"\"+.+(34)); .(0); ;  =10  =0; ; ; 
      
      



ステップ3:

-スクリーンショットを作成するためのすべてのレポートおよび処理ファイルの列挙:

 &  ()  =   = .();  = .();   = .();  = .(); ;   (",", , .);  &  (,,,)  = "";   = (, , , );  = ();  =  =("."+ . +".");  =("."+ . +"."); ; .();  = +"\"++"\"++"\"++".jpg"; Shell =  COM("WScript.Shell");  = """& {[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');" + "$size = [Windows.Forms.SystemInformation]::VirtualScreen;" + "$bitmap = new-object Drawing.Bitmap $size.width, $size.height;" + "$graphics = [Drawing.Graphics]::FromImage($bitmap);" + "$graphics.CopyFromScreen($size.location,[Drawing.Point]::Empty, $size.size);" + "$graphics.Dispose();" + "$bitmap.Save('"++"');" + "$bitmap.Dispose()}"""; WshExec = Shell.Run("PowerShell -Command "+, 0, "True");//0 -   , "True" -        .();  ;  &  ()  = (+"\"+, "*.*",);  =0  .()-1  =.();  .()=   (.,1+())=+"\"  1 = (+"\"++"\"+., "*.*",);  1.()<>0   1=0  1.()-1  1=1.(1); 2 = (+"\"++"\"+., 1.+".jpg",);  2.()=0  (+"\"++"\"+.+"\"+1.+".epf",,.,1.); ; ; ; ; ;  &  ()  = (+"\"+, "*.*",);  =0  .()-1  =.();  .()=   (.,1+())=+"\"  1 = (+"\"++"\"+., "*.*",);  1.()<>0   1=0  1.()-1  1=1.(1); 2 = (+"\"++"\"+., 1.+".jpg",);  2.()=0  (+"\"++"\"+.+"\"+1.+".erf",,.,1.); ; ; ; ; ; 
      
      



どうやって「これ」に来たの?

答えは次のとおりです(心理学者と少し掘り下げた場合):-17年前、私はプログラマーとして会社「Distar Electronics」(Perm)のフレンドリーなチームで「働いていました」。 私はそれをまったく仕事だとは言えません(プログラマーとしての最初の経験)。 残念ながら、私は1C:Enterprise 7.7の開発者の座標を見つけることができません(読み取るDLLの1つである禁断の果実のソースコードを提供してくれたのは彼でした)。



All Articles