|
|
Строка 2: |
Строка 2: |
| Пересчет счета-фактуры по RGNUM-y | | Пересчет счета-фактуры по RGNUM-y |
| [[ACP_RECALC]](Массив RGNUM-ов) | | [[ACP_RECALC]](Массив RGNUM-ов) |
− | = Текст =
| |
− | '''Parameters''' rarr
| |
− | local ACP,i,kd,docs,arr_sum,ttl_sum,j,arr_names,sdb
| |
− | sdb:=SaveStateDB()
| |
− | ACP:=OpenChildDoc('ACP','1','')
| |
− | For i:=1 to Len(rarr)
| |
− | if Empty(rarr[i]); loop; end
| |
− | (ACP)->(SetFilter('KINDDOC="ACP" .and. LVLNUM="1" .and. RGNUM="'+rarr[i]+'"'))
| |
− | if Empty(acp) or (acp)->Eof() or Empty(kd:=(ACP)->CATTR1); loop; end
| |
− | arr_names:=RET_NAKL_NAMES(kd) // Ради имени реквизита, в котором RGNUM счета фактуры
| |
− | if Len(kd)>=4 //Есть ссылка на документ
| |
− | ttl_sum:={0,0,0,0,0,0,0,0,0}
| |
− | docs:=OpenChildDoc(SubStr(kd,1,3),SubStr(kd,4,1),'')
| |
− | if Empty(docs) or (docs)->Eof(); loop; end
| |
− | (docs)->(SetFilter('KINDDOC="'+SubStr(kd,1,3)+'" .and. LVLNUM="'+SubStr(kd,4,1)+'" .and. '+arr_names[8]+'="'+(ACP)->RGNUM+'"'))
| |
− | (docs)->(DBGoTop())
| |
− | While (docs)->(!EoF)
| |
− | arr_sum:=(docs)->(ACP_FROM_DOCS())
| |
− | if (arr_sum[6]+arr_sum[8]+arr_sum[9])>0 or kd<>'MTR2'
| |
− | For j:=1 to 9
| |
− | ttl_sum[j]:=ttl_sum[j]+arr_sum[j]
| |
− | Next
| |
− | endif
| |
− | (docs)->(DBSkip())
| |
− | EndDo
| |
− | (ACP)->(Add_Replace({||Field->ExtSum:=ttl_sum[1],;
| |
− | Field->NDSSum:=ttl_sum[2],;
| |
− | Field->Sum:=ttl_sum[3],;
| |
− | Field->NSPSUM:=ttl_sum[4],;
| |
− | Field->NATTR1:=ttl_sum[5],;
| |
− | Field->NATTR2:=ttl_sum[6],;
| |
− | Field->NATTR3:=ttl_sum[7],;
| |
− | Field->NATTR4:=ttl_sum[8],;
| |
− | Field->NATTR7:=ttl_sum[9]}))
| |
− | MakePrvs(acp,,1)
| |
− | endif
| |
− | Next
| |
− | RestStateDB(sdb)
| |
− |
| |
| = Смотрите также = | | = Смотрите также = |
| [[Полезные функции]] | | [[Полезные функции]] |
| | | |
| [[Функции Delphi]] | | [[Функции Delphi]] |