VIP ТХО
Добавлено: 21 апр 2012, 17:31
Помогите, пожалуйста....Имеется VIP для ТХО;
К приходной накладной в услугах на другого контрагента всегда ранее привязывался один акт, и данный VIP хорошо отрабатывал: брал один этот акт, аналитику по нему и сумму по нему, и после выполнения алгоритмов выбрасывал проводкой в приходной накладной 19.09-60.01 НДС от этой суммы. Сейчас в услугах на другого контрагента может быть привязано 10 актов сразу к одной приходной накладной. VIP берет аналитику по одному из десяти актов, а сумму (сумму НДС) в проводку ставит по всем десяти актам в сумме. Нужно, чтоб падало 10 проводок с суммами (суммы НДС) по каждому акту… Как это добиться, подскажите пожалуйста…..
Вот VIP:
#include TXO API.vih
//Указываем что наш интерфейс реализует расчет идентификатора ТХО
VipInterface Txo_TheUslNakl implements ObjTxoIdentPlugin licensed(free);
//Простой интерфейс для обработки накладной
Interface Txo_TheUslNakl (,hcTXOWVIPParam);
//Логическая таблица, описывает структуру накладной
Create view NaklView
Var
CurSoprDoc: comp;
As select *
From katsopr,basedoc,katorg,stepdoc,
Synonym katsopr katsoprUsl,
Synonym basedoc basedocUsl,
Synonym katorg katorgUsl,
Synonym stepdoc stepdocUsl,
Synonym dogovor dogovorUsl
Where ((CurSoprDoc/==katsopr.nrec
And katsopr.nrec==katsoprUsl.ckatsopr
!!!Накладная
And katsopr.cgruzform==katorg.nrec
And katsopr.cstepdoc==stepdoc.nrec
And stepdoc.cbasedoc==basedoc.nrec
!!!Акт на услуги
And katsoprUsl.cgruzform==katorgUsl.nrec
And katsoprUsl.cdogovor==dogovorUsl.nrec
And katsoprUsl.cstepdoc==stepdocUsl.nrec
And stepdocUsl.cbasedoc==basedocUsl.nrec
//And katsoprUsl.cSchfact==katorgUsl.nrec
));
Function GetInfo: string;
{
GetInfo:=’Автоматическая установка аналитики по сопутствующему акту услуг’;
}
Function ParamMaster: string;
{
Message(‘Без параметров!’);
ParamMaster:=’’;
}
Procedure StoreCycles(hTxo: longint; buf: TTxoApiInfoDoc);
{
//установить ограничения на логическую таблицу
//CurTidkGal:=buf.TidkGal;
CurSoprDoc:==buf.cSoprDoc;
{
//очистить промежуточный буфер
TxoBodyClear(hTxo);
//закачать кау
//wFIKau_AutoDebit=11;
//wFIKau_Mode0
_loop katsoprUsl
{
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
TxoHeadAddKau(hTxo,wFIKau_Mode0, 14, dogovorUsl.nrec); //кау 2 – договор
TxoHeadAddKau(hTxo,wFIKau_Mode0, 6, basedocUsl.nrec); //кау 3 – ДО
TxoHeadAddKau(hTxo,wFIKau_Mode0, 79, katsoprUsl.cschfact); //кау 3 – сф
//закачать сумму акта/накладной
TxoBodySetSum(hTxo, katsoprUsl.summa,0,0);
//добавить в выгрузку
TxoBodyInsert(hTxo);
}
}
}
Handleevent
End;
End.
К приходной накладной в услугах на другого контрагента всегда ранее привязывался один акт, и данный VIP хорошо отрабатывал: брал один этот акт, аналитику по нему и сумму по нему, и после выполнения алгоритмов выбрасывал проводкой в приходной накладной 19.09-60.01 НДС от этой суммы. Сейчас в услугах на другого контрагента может быть привязано 10 актов сразу к одной приходной накладной. VIP берет аналитику по одному из десяти актов, а сумму (сумму НДС) в проводку ставит по всем десяти актам в сумме. Нужно, чтоб падало 10 проводок с суммами (суммы НДС) по каждому акту… Как это добиться, подскажите пожалуйста…..
Вот VIP:
#include TXO API.vih
//Указываем что наш интерфейс реализует расчет идентификатора ТХО
VipInterface Txo_TheUslNakl implements ObjTxoIdentPlugin licensed(free);
//Простой интерфейс для обработки накладной
Interface Txo_TheUslNakl (,hcTXOWVIPParam);
//Логическая таблица, описывает структуру накладной
Create view NaklView
Var
CurSoprDoc: comp;
As select *
From katsopr,basedoc,katorg,stepdoc,
Synonym katsopr katsoprUsl,
Synonym basedoc basedocUsl,
Synonym katorg katorgUsl,
Synonym stepdoc stepdocUsl,
Synonym dogovor dogovorUsl
Where ((CurSoprDoc/==katsopr.nrec
And katsopr.nrec==katsoprUsl.ckatsopr
!!!Накладная
And katsopr.cgruzform==katorg.nrec
And katsopr.cstepdoc==stepdoc.nrec
And stepdoc.cbasedoc==basedoc.nrec
!!!Акт на услуги
And katsoprUsl.cgruzform==katorgUsl.nrec
And katsoprUsl.cdogovor==dogovorUsl.nrec
And katsoprUsl.cstepdoc==stepdocUsl.nrec
And stepdocUsl.cbasedoc==basedocUsl.nrec
//And katsoprUsl.cSchfact==katorgUsl.nrec
));
Function GetInfo: string;
{
GetInfo:=’Автоматическая установка аналитики по сопутствующему акту услуг’;
}
Function ParamMaster: string;
{
Message(‘Без параметров!’);
ParamMaster:=’’;
}
Procedure StoreCycles(hTxo: longint; buf: TTxoApiInfoDoc);
{
//установить ограничения на логическую таблицу
//CurTidkGal:=buf.TidkGal;
CurSoprDoc:==buf.cSoprDoc;
{
//очистить промежуточный буфер
TxoBodyClear(hTxo);
//закачать кау
//wFIKau_AutoDebit=11;
//wFIKau_Mode0
_loop katsoprUsl
{
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
TxoHeadAddKau(hTxo,wFIKau_Mode0, 14, dogovorUsl.nrec); //кау 2 – договор
TxoHeadAddKau(hTxo,wFIKau_Mode0, 6, basedocUsl.nrec); //кау 3 – ДО
TxoHeadAddKau(hTxo,wFIKau_Mode0, 79, katsoprUsl.cschfact); //кау 3 – сф
//закачать сумму акта/накладной
TxoBodySetSum(hTxo, katsoprUsl.summa,0,0);
//добавить в выгрузку
TxoBodyInsert(hTxo);
}
}
}
Handleevent
End;
End.