Страница 1 из 1

TxoApi как подставить нужную аналитику в проводку??

Добавлено: 26 ноя 2008, 11:33
Masygreen
День добрый не могу победить проводки или настройки помогите советом :)

Задача проводка вешается на Акт ... акт привязан к ПКП подряда, ПКП подряда привязано к ПКП субподряда, ПКП субподряда к договору субподряда.
Необходимо в проводке указать КАУ2 договор субподряда....

Написал TxoApi ....

Код: Выделить всё

#include TxoApi.vih

#Component "F_TxoApi"

VipInterface Txo_Api_AktSP01 Implements ObjTxoIdentPlugin Licensed(Free);

// Простой интерфейс для обработки накладной
Interface Txo_Api_AktSP01;

// Логическая таблица, описывает стуктуру накладной
create view MainView01
var
  CurSoprDoc    : comp;
  nRecDogovorSP : comp;
as select
   dogovor.nrec
from
   katsopr,dogovor,calplan,calplan calplan1
where
((
comp(CurSoprDoc)==katsopr.nrec
and katsopr.ccalplan == calplan.nrec
and calplan.nrec ==  SPSCHEM.Cdoc
and SPSCHEM.Cschem == DOCSCHEM.Nrec
and DOCSCHEM.Cdoc == calplan1.nrec
and calplan1.cdogovor == dogovor.nrec
and 403==SPSCHEM.Tidk
and 403== SPSCHEM.Tidkbase
))
and 403=DOCSCHEM.Tidkgal
;

function GetInfo : string;
{
   GetInfo := 'МАРТ.ТХО Получение субподрядного договора для акта подряда';
}

function ParamMaster : string;
{
   ParamMaster := '';
}

procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
    // установить ограничения на логическую таблицу
    CurSoprDoc := buf.cSoprDoc;
    _loop katsopr
    {
     _loop calplan
     {
      _loop SPSCHEM
      {
      _loop DOCSCHEM
      {
       _loop calplan1
       {
        _loop dogovor
        {
        nRecDogovorSP:=dogovor.nrec; 
        LogStrToFile('c:\1.txt',dogovor.nrec +'=='+dogovor.nodoc);
        /*лог сделан только для проверки .. возвращает все правильно*/
        }
       }
      }
      }
     }
    }
  TxoBodyClear(hTxo);
  TxoBodyAddKau(hTxo, 0, 2, nRecDogovorSP);
  TxoBodyInsert(hTxo);
}
end.
В натройках Тхо

Код: Выделить всё

КАУ2 режим 0
Алгоритмы

Код: Выделить всё

 &SoprDoc   &Vip[Obj:"API_AKTSP01"]
 &1              TxoSetKau(14,160,&SoprDoc)
Результат 0.... или неправильные алгоритмы или TXOAPI.. подскажите направление

Добавлено: 26 ноя 2008, 12:36
edward_K
TxoBodyAddKau(hTxo, 0, 2, nRecDogovorSP);
а почему 2? это подразделение. см настройка - аналитика скажем во фро.
ключики у вас тоже интересные :)
&soprdoc - это стандартный ключ - не надо ему значение присваивать.
txosetkau тоже нафиг
vip возвращает сумму ( у вас тут 0). Его просто нужно вызвать и все.
а вот циклическую обработку по договорам нужно поставить.
а чтоб со стандартным не мешалось лучше гнать не по avto(1 параметр) а по режиму 0 (160).
И перечитайте доку и посмотрите примеры. Здесь и txoheadaddkau покатит.

Добавлено: 26 ноя 2008, 13:19
Masygreen
как вариант пробовал
TxoBodyAddKau(hTxo, wFlKau_Mode0, cgKau_Dogovor, nRecDogovorSP);

Ключи взяты по аналогии(если проставить число то договор привязывается)

Код: Выделить всё

 &SoprDoc   1898464618163156
 &1              TxoSetKau(14,160,&SoprDoc)
т.е. ключи вообще не надо использовать ??? тогда как вызвать свой алгоритм????

Добавлено: 26 ноя 2008, 14:13
edward_K
просто в любом ключе
&Vip_[Obj:"API_AKTSP01"]*0
ну или сие добавить к алгоритму
раз вы уж через body сделали то "_" обязательно.
еще не забудте режим 0 поставить в аналитике.
не получится уберите TxoBodyClear(hTxo); - обычно после это определяют всю аналитику. Дальше включайте отладку и смотрите на ключики.

Добавлено: 26 ноя 2008, 16:12
Masygreen
Пробовал комбинации

Код: Выделить всё

  TxoBodyClear(hTxo);
  TxoBodyAddKau(hTxo,wFlKau_Mode0, cgKau_Dogovor, nRecDogovorSP);
  TxoBodyInsert(hTxo);

 TxoHeadClear(hTxo);
 TxoHeadAddKau(hTxo,wFlKau_Mode0, cgKau_Dogovor, nRecDogovorSP);
Не помогает .. не пойму как эта байда работает .. хелп тоже особо не просвятил ... меня в принципе устраивает вариант .. ...

Код: Выделить всё

&1 &Vip_[Obj:"API_AKTSP01"]
&2 TxoSetKau(14,160,&1) 
только как вернуть в &1 nRec ?? вообще TXOAPI это позволяет??? или я вообще не там ищу???

Добавлено: 26 ноя 2008, 16:43
Den
в формулу VIP_MYTXO возвращает тока сумму....

Добавлено: 26 ноя 2008, 16:49
edward_K
а поскоку nrec большой то наверное придется бить на части рублевую и валютную и тащить векторную составляющую, а мож и нет. 8)
Проще раз и навсегда разобраться с апихой и зараз задавать по сотне аналитик, а не одну, но в теории ваше желание выполнимо.
Clear в вашем разе не нужно.

Добавлено: 26 ноя 2008, 17:36
Den
еще может TxoBodySetSum нужно. Вроде как с нулевой суммой проводка просто не сформируется...