Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Генерация проводок в плагине в товарном блоке

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
asu6



Joined: 15 May 2007
Posts: 6
Location: Kovalko
Occupation: Гапром-Нефть (Вед.инж.пр.)
Interests: Кемерово

PostPosted: 16 May 2007 10:48    Post subject: Генерация проводок в плагине в товарном блоке Reply with quote

Напомните пожалуйста, как сгенерировать проводки в товарном блоке по приходу товара в плагине (БЭСТ -4 9.03)

В расходе работает такая строка :

GenPro(MDOC->DATE, MDOC->DATE, 2, 1,,, {MDOC->(UPPER(Sclad+Vid+Type+CodeDoc+NumDoc))})

а в приходе не отрабатывает (предварительно автоматически с помощью плагина сформированы строки документа и шапка, тип.операция - оперативная )
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 16 May 2007 11:21    Post subject: Reply with quote

Давайте по порядку:
1. Точка вызова - откуда вызываете свой плагин
2. Текущий алиас
3. Текущее состояние алиаса (скоб наложен, фильтр,актьивный индекс)
4. Именно эту строку пишете в плагине ?
Back to top
View user's profile Send private message Send e-mail
asu6



Joined: 15 May 2007
Posts: 6
Location: Kovalko
Occupation: Гапром-Нефть (Вед.инж.пр.)
Interests: Кемерово

PostPosted: 17 May 2007 08:53    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 17 May 2007 13:25    Post subject: Reply with quote

Сегодня у меня встреча важная - завтра посмотрю Ваш вопрос....
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 21 May 2007 19:50    Post subject: Reply with quote

Ну что же давайте теперь разбираться а у Вас в MDOCM есть строчки ?
В приведенном примере Вы привели только MDOC()
Проводки то по MDOCM создаваться должны вообще-
Back to top
View user's profile Send private message Send e-mail
asu6



Joined: 15 May 2007
Posts: 6
Location: Kovalko
Occupation: Гапром-Нефть (Вед.инж.пр.)
Interests: Кемерово

PostPosted: 22 May 2007 06:04    Post subject: Reply with quote

// Добавляем из массива строки

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
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 22 May 2007 13:04    Post subject: Reply with quote

Продолжаем разговор
По поводу точки вызова уточните как конкретно в реестре закупок вызываете.
Дальше взгляните в отладчике на значение переменной
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
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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

Rambler
Rambler's Top100 Рейтинг@Mail.ru