ACP RECALC — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) (Новая страница: «ACP_RECALC - это программа из справочника R266 Пересчет счета-фактуры по RGNUM-y ACP_RECALC(Масси…») |
Hisava (обсуждение | вклад) м (→Текст) |
||
Строка 3: | Строка 3: | ||
[[ACP_RECALC]](Массив RGNUM-ов) | [[ACP_RECALC]](Массив RGNUM-ов) | ||
= Текст = | = Текст = | ||
− | Parameters rarr | + | '''Parameters''' rarr |
local ACP,i,kd,docs,arr_sum,ttl_sum,j,arr_names,sdb | local ACP,i,kd,docs,arr_sum,ttl_sum,j,arr_names,sdb | ||
sdb:=SaveStateDB() | sdb:=SaveStateDB() | ||
Строка 40: | Строка 40: | ||
Next | Next | ||
RestStateDB(sdb) | RestStateDB(sdb) | ||
+ | |||
= Смотрите также = | = Смотрите также = | ||
[[Полезные функции]] | [[Полезные функции]] | ||
[[Функции Delphi]] | [[Функции Delphi]] |
Версия 09:11, 25 июля 2017
ACP_RECALC - это программа из справочника R266
Пересчет счета-фактуры по RGNUM-y
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)