View previous topic  :: View next topic    
	 
	
	
		Author 
		Message 
	 
	
		asu6  Joined: 15 May 2007 Posts: 6 Location: Kovalko Occupation: Гапром-Нефть (Вед.инж.пр.) Interests: Кемерово 
		
			
				Posted: 16 May 2007 10:48     Post subject: Генерация проводок в плагине в товарном блоке  
				     
			 
			
				 
			 
			
				Напомните пожалуйста, как сгенерировать проводки в товарном блоке по приходу товара в плагине (БЭСТ -4 9.03) 
 
 
В расходе работает такая строка : 
 
 
GenPro(MDOC->DATE, MDOC->DATE, 2, 1,,, {MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc))}) 
 
 
а в приходе не отрабатывает (предварительно автоматически с помощью плагина сформированы строки документа и шапка, тип.операция - оперативная )  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 16 May 2007 11:21     Post subject:   
				     
			 
			
				 
			 
			
				Давайте по порядку:
 
1. Точка вызова - откуда вызываете свой плагин
 
2. Текущий алиас
 
3. Текущее состояние алиаса (скоб наложен, фильтр,актьивный индекс)
 
4. Именно эту строку пишете в плагине ?  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		asu6  Joined: 15 May 2007 Posts: 6 Location: Kovalko Occupation: Гапром-Нефть (Вед.инж.пр.) Interests: Кемерово 
		
			
				Posted: 17 May 2007 08:53     Post subject:   
				     
			 
			
				 
			 
			
				1. В реестре "Закупка " (vid="1"  type="1")
 
2.
 
3.
 
4. Кусок формирования шапки документа
 
 
DBPUSH("MDOC","MDOC")                                                                  
 
Mdoc->(DbAppend())                                                                     
 
Mdoc->Vid:='1'                                                                         
 
Mdoc->Type:='1'                                                                        
 
Mdoc->Sclad:=ScPath                                                                    
 
Mdoc->CodeDoc:='ЗАК'                                                                   
 
Mdoc->NumDoc:=Right(Smena->NumDoc,6)                                                   
 
Mdoc->CodeOper:='01'                                                                   
 
Mdoc->AgentCode:=сAgentCode                                                      
 
Mdoc->AgentName:=сAgentName                                                                  
 
Mdoc->Date:=Smena->Date1                                                               
 
Mdoc->Date1:=Smena->Date1                                                              
 
Mdoc->CodeVal:='РУБ'                                                                   
 
Mdoc->CenaVal:=1                                                                       
 
Mdoc->Input:='1'                                                                       
 
Mdoc->Schet_a:='6007'                                                                
 
Mdoc->Model:=-1                                                                        
 
Mdoc->kolpos:=xkolpos                                                                  
 
Mdoc->SumOut:=ccccc                                                                    
 
Mdoc->Summa:=ccccc                                                                     
 
Mdoc->SumOutr:=ccccc                                                                   
 
Mdoc->Sumr:=ccccc                                                                      
 
Mdoc->Sumrn:=ccccc                                                                     
 
// не прикручен итератор - пока для пробы                                          
 
Mdoc->Pro:=999999                                                                      
 
//                                                                                     
 
Mdoc->(F_DbUnlock())                                                                   
 
GenPro(MDOC->DATE, MDOC->DATE, 2, 1,,, {MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc))}) 
 
DBPOP()  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 17 May 2007 13:25     Post subject:   
				     
			 
			
				 
			 
			
				Сегодня у меня встреча важная - завтра посмотрю Ваш вопрос....  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 21 May 2007 19:50     Post subject:   
				     
			 
			
				 
			 
			
				Ну что же давайте теперь разбираться а у Вас в MDOCM есть строчки ?
 
В приведенном примере Вы привели только MDOC()
 
Проводки то по MDOCM создаваться должны вообще-  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		asu6  Joined: 15 May 2007 Posts: 6 Location: Kovalko Occupation: Гапром-Нефть (Вед.инж.пр.) Interests: Кемерово 
		
			
				Posted: 22 May 2007 06:04     Post subject:   
				     
			 
			
				 
			 
			
				// Добавляем из массива строки
 
 
               While iii<=iiLen
 
                  xCol:=Val(Substr(ySmena001[iii],24,3))
 
                  xSumma:=Val(Substr(ySmena001[iii],27,15))
 
                  ccccc:=ccccc+xSumma
 
                  xCol2:=xCol
 
                  If xCol=0
 
                     xCena:=0
 
                  Else
 
		     xCena:=xSumma/xCol
 
                  Endif
 
                  ggGrup:=Left(ySmena001[iii],5)
 
                  nnNum:=Substr(ySmena001[iii],6,13)
 
                  ppPartia:="     "
 
                  // Добавление партии в справочник партий - другой источник поступления
 
 
		  DBPUSH("SPR_PART","TAG_NUM","",{"UPPER(Grup+Nnum+Code)",Upper(ggGrup+nnNum+"Г")})
 
                  SPR_PART->(DbGoBottom())
 
                  ppPartia:=SPR_PART->Code
 
                  If ppPartia="     "
 
                     ppPartia:="Г0001"
 
                  Else
 
                     ppPartia:="Г"+Padl(Alltrim(Str(Val(Right(ppPartia,4))+1)),4,'0')
 
                  Endif
 
                  DBPOP()
 
                  DBPUSH("SPR_PART","TAG_NUM")
 
                  SPR_PART->(DbAppend())
 
                  SPR_PART->Grup:=ggGrup
 
                  SPR_PART->Nnum:=nnNum
 
                  SPR_PART->Code:=ppPartia
 
                  SPR_PART->Name:="ТТН "+Right(Smena->NumDoc,6)+" АЗК "+Alltrim(ScPath)
 
                  SPR_PART->Ag_Schet:="6007"
 
                  SPR_PART->Ag_Code:=Smena->AgentCode
 
                  SPR_PART->Agent_Code:=Smena->AgentCode
 
                  SPR_PART->Ag_Name:=Parta
 
                  SPR_PART->Val_Code:="USD"
 
                  SPR_PART->Data_p:=Smena->Date1
 
                  SPR_PART->Cena_p:=xCena
 
                  SPR_PART->Cena_f:=xCena
 
                  SPR_PART->Cena_Fn:=xCena
 
                  SPR_PART->Kol_tek:=xCol
 
                  SPR_PART->Kol_all:=xCol
 
                  spr_part->(F_DbUnlock()) 
 
                  //spr_part->(F_DbUnlock()) 
 
                  DBPOP()
 
                  // Поиск наименования в картотеке
 
                  nomenkll:=""
 
                  //-----------
 
                  Dbpush("Mlabel","NNUM")
 
                  If Mlabel->(DbSeek(Upper(nnNum)))
 
                     nomenkll:=Mlabel->Name
 
                  Endif
 
                  dbpop()
 
                  //-----------
 
 
 
                  // Добавление в картотеку
 
                    // заголовок по партии
 
                  DbPush("MKART","MKART")
 
                  Mkart->(DbAppend())
 
                  Mkart->Sclad:=ScPath  
 
                  Mkart->Grup:= ggGrup     
 
                  Mkart->Nnum:= nnNum   
 
                  Mkart->Koltek:=xCol
 
                  Mkart->Schet:="4103100"
 
                  Mkart->Name:=nomenkll
 
                  Mkart->(F_DbUnlock()) 
 
                    // по складу
 
                  Mkart->(DbAppend())
 
                  Mkart->Sclad:=ScPath  
 
                  Mkart->Grup:= ggGrup     
 
                  Mkart->Nnum:= nnNum   
 
                  Mkart->Koltek:=xCol
 
                  Mkart->Schet:="4103100"
 
                  Mkart->Name:=nomenkll
 
                  Mkart->Partia:=ppPartia
 
                  Mkart->(F_DbUnlock()) 
 
                  DBPOP()
 
                  DBPUSH("MDOCM","MDOCM")
 
                  Mdocm->(DbAppend())
 
                  Mdocm->Vid:='1'
 
                  Mdocm->Type:='1'
 
                  Mdocm->Sclad:=ScPath
 
                  Mdocm->CodeDoc:='ЗАК'
 
                  Mdocm->NumDoc:=Right(Smena->NumDoc,6)
 
                  Mdocm->CodeOper:='01'
 
                  Mdocm->Date:=Smena->Date1
 
                  Mdocm->CodeVal:='РУБ'
 
                  Mdocm->AgentCode:=Smena->AgentCode
 
                  Mdocm->Schet_a:='6007'
 
                  Mdocm->Schet:="4103100"
 
                  Mdocm->Grup   :=ggGrup 
 
                  Mdocm->Nnum   :=nnNum 
 
                  Mdocm->Partia :=ppPartia 
 
                  Mdocm->Kol:=xCol2
 
                  Mdocm->KolOut:=xCol2
 
                  Mdocm->Cenaout:=xCena
 
                  Mdocm->Cena0n:=xCena
 
                  Mdocm->SumOut :=xSumma
 
                  Mdocm->SumOutR:=xSumma
 
                  
 
                  Mdocm->SumFact:=xSumma
 
                  Mdocm->Sumn:=xSumma
 
                  Mdocm->Ed1:=Substr(ySmena001[iii],19,3)
 
                  Mdocm->Ed2:=Substr(ySmena001[iii],19,3)
 
                  //Mdocm->SumRn:=xSumma
 
                  Mdocm->Input:='1'
 
 
                  xkolpos:=xkolpos+1
 
                  Mdocm->NumStr:=xkolpos
 
                  Mdocm->(F_DbUnlock()) 
 
                  DbPop()
 
                  iii:=iii+1
 
               Enddo
 
и далее строки из прошлого листинг  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 22 May 2007 13:04     Post subject:   
				     
			 
			
				 
			 
			
				Продолжаем разговор    
 
По поводу точки вызова уточните как конкретно в реестре закупок вызываете.
 
Дальше взгляните в отладчике на значение переменной
 
plAct
 
Дальше попробуйте сами смастерить массив aMat в цикле по mdocm
 
по алгоритму
 
   	  Code:  	 		              aMat := {{}}
 
                IF(LEN(aMat[LEN(aMat)])>999,AADD(aMat,{}),) // (aMat{{}})
 
                AADD(aMat[LEN(aMat)],;
 
                     MakeMat(IF(MDocM->Type=="$",Kol0,KolOut),Ed1,IF(MDocM->Type=="$",Kol0,Kol),CenaOut,Ed2,;
 
                             SumOut,SumOutR,SumFact,Sum,Iznos,;
 
                             Period,MLabel->Ed,Schet,Kol1,CodeDoc1,;
 
                             NumDoc1,Sclad1,Kol2,KolBr,KolNed,;
 
                             Oper_Fact,0,,,Date1,;
 
                             ,MDocM->SumN)) 	 
 
 
Далее посмотрите на массив который Вам вернет
 
 
               	  Code:  	 		  aPro := AddPro({},aMat,,{}) 	 
 
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		 
	 
  
	 
	    
	   
	
You cannot  post new topics in this forum You cannot  reply to topics in this forum You cannot  edit your posts in this forum You cannot  delete your posts in this forum You cannot  vote in polls in this forum  
   
 
Powered by phpBB  © phpBB Group