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

TXOAPI формирование аналитики из внешних атрибутов

Добавлено: 30 мар 2015, 17:08
Руслан
цель : по каждой МЦ в составе ОС необходимо сформировать проводку с аналитикой по счету( договор + организация ) ссылки на которые внесены во внешних атрибутах составляющих ( таб OSMC). все мц входящие в состав относятся к одной группе мц (9002):

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

#include TxoApi.vih
#include ExtAttr.vih
#include KauConst.inc
#include Tpp_Key.inc
#Component "F_TXOAPI"
VipInterface Txo_SostavOS Implements ObjTxoIdentPlugin Licensed(Free);
// интерфейс для расчета  амортизации  по  составляющим
Interface Txo_SostavOS;
// Логическая таблица
create view
var
  CurSoprDoc : comp;
  sostav : boolean;
 as select
 *
from
   spmove                     (readonly)
  ,spmoveos                   (readonly)
  ,katos                        (readonly)
  ,osmc                       (readonly)
  ,katmc                      (readonly)
  ,SPOSMC                     (readonly)
  ,attrval                    (readonly)

where
((
      CurSoprDoc                == SPMove.Nrec
  AND spmove.nrec               == spmoveos.cspmove   (noindex)
  AND spmoveos.CKATOS           == katos.nrec
  AND spmoveos.CKATOS           == osmc.ckatos        (noindex)
  AND katmc.nrec                == osmc.cmc           (noindex)
  AND osmc.nrec                 == SPOSMC.COSMC       (noindex)
  AND cogettune('OS.USER.METUM')== SPOSMC.CNASTROS    (noindex)
  AND OSMC.nrec                 == attrval.cRec       (noindex)
  AND word(3109)                == attrval.wtable     (noindex)
!  comp(00010000000002AFh)   == attrval.cattrnam  договор
!  AND comp(00010000000002AEh)   == attrval.cattrnam  Организация
))
!AND OSMC.cmc  <>  comp(0)
AND OSMC.DATEK <> comp(0)
AND katmc.kgroupmc = '9002'  // фильтр на группу  мц
;

function GetInfo : string;
{
   GetInfo := 'Циклическая обработка состава ОС';
}

function ParamMaster : string;
      {
        Message('!!!');
        ParamMaster :='';
      }

procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
 CurSoprDoc := buf.cSoprDoc;
 TxoAllowRecallStoreCycles (hTxo);
  if(getfirst spmove = tsok)
  {
   _loop spmoveos
     {
      sostav := false;
      _loop osmc
       {
        if(getfirst sposmc = tsok)
         {
          sostav := true;
          TxoBodyClear (hTxo);
             _loop attrval
              {
               if (attrval.cattrnam = comp(00010000000002AFh))   // ссылка на организацию
                {
                 TxoBodyAddKau (hTxo, wFlKau_Auto, 14, attrval.vcomp);
                 TxoDebugMsg (hTxo, 'SostavOS','Dogovor attrval.VSTRING = ' + string(attrval.VSTRING));
                }
               if (attrval.cattrnam = comp(00010000000002AEh))   // ссылка на договор
                {
                 TxoBodyAddKau (hTxo, wFlKau_Auto, 1, attrval.vcomp)
                 TxoDebugMsg (hTxo, 'SostavOS','KatOrg attrval.VSTRING = ' + string(attrval.VSTRING));
                }
               
              }
             TxoDebugMsg (hTxo, 'SostavOS',' SPOSMC.SIZNM = ' + string(SPOSMC.SIZNM));
             TxoBodyAddKau (hTxo, wFlKau_auto, cgKau_KatPodr,katos.CPODR);
             TxoBodySetSum (hTxo, SPOSMC.SIZNM, 0,0);
             TxoBodyInsert (hTxo);
          }
       }
     }
  }
}
end.
В проводке формирование аналитики стоит авто.
Без внешних атрибутов работает, но проводка без аналитики по счету никому не нужна.
Как все таки эту аналитику сформировать в рамках данной задачи ?

Re: TXOAPI формирование аналитики из внешних атрибутов

Добавлено: 31 мар 2015, 06:21
Алексей
при настройке шаблона ТХО указали циклическую аналитику, которую заполняете?

Re: TXOAPI формирование аналитики из внешних атрибутов

Добавлено: 31 мар 2015, 12:00
Руслан
Алексей писал(а):при настройке шаблона ТХО указали циклическую аналитику, которую заполняете?
Да все полностью настроено. аналитика по счету: 1) <авто - Организации> 2) <авто - Договоры>
алгоритм НДЕ : &VIP_[Obj:"SOSTAVOS"]
Циклическая обработка : Подразделения \ Основные средства \ Материальные ценности \ Организации \ Договоры