Страница 1 из 1
					
				Неявное описание ТХО Галактика 7.12
				Добавлено: 08 ноя 2005, 08:09
				 scanner
				Подскажите каким образом можно вытащить субсчет из хозоперации накладной, при привязке ТХО счет-фактуры?
При этом не используя написание ТХО API, а только то что есть в галактике.
Была идея использовать lTXOGetField, но как добраться до проводок накладных по которым эта СФ была создана, ума не приложу.
			 
			
					
				
				Добавлено: 08 ноя 2005, 08:26
				 Алексей
				Версия 5.85.02
1. У хоз.операции нет счета, субсчета (либо в ТХО (шаблон), либо в проводке)
2. У С/Ф нет хоз.операций -> нельзя привязывать ТХО к С/Ф
Можно подробнее, что конкретно хотите?
			 
			
					
				
				Добавлено: 08 ноя 2005, 08:30
				 scanner
				Ну обшибся.
Имелось ввиду добраться до проводок накладной и вытащить субсчет.
СФ - имелось ввиду книга покупок/продаж.
			 
			
					
				
				Добавлено: 08 ноя 2005, 08:37
				 Алексей
				Боюсь стандартными средствами не обойтись. Используйте ТХО Апи.
Из книги продаж попадете на отгрузочную С/Ф, из неё в накладную, из накладной в хоз.операцию, и далее в проводки. 
Ищете нужную и берете нужный субсчет.
			 
			
					
				
				Добавлено: 08 ноя 2005, 08:41
				 St.Anislav
				TXO API, и только он. Кстати, накладных к СФ может быть привязано несколько, и теоретически - с разными субсчетами.
			 
			
					
				
				Добавлено: 08 ноя 2005, 08:41
				 scanner
				В том то и дело что компилятора фейсов у нас нет 

 
			 
			
					
				
				Добавлено: 08 ноя 2005, 10:09
				 Spvl
				А накой нужен такой изврат. как правильно заметил  St.Anislav
накладных может быть несколько да еще с разными проводками.
пользуйтесь принципом "Делай проще ....."  Может стоит сформулировать первоначальную проблему. решение подскажут.
			 
			
					
				
				Добавлено: 08 ноя 2005, 10:52
				 scanner
				Для накладных идет обработка спецификации и в зависимости от МЦ создается проводка на тот или иной счет, но как это реализовать для записей в книге покупок/продаж?
			 
			
					
				
				Добавлено: 08 ноя 2005, 10:58
				 Алексей
				Стандартно - ни как. По книге продаж нельзя сделать цикл по МЦ. Там их просто нет.  
Кстати, по каким типам записей в книге продаж нужно делать проводки? Их ведь несколько...
Я из книги попадал в распределение платежа, и там уже бегал по распределению, а из него есть ссылка на позицию накладной/акта.  Но это только по факту продажи (есть С/Ф отгрузка и С/Ф оплата).
			 
			
					
				
				Добавлено: 08 ноя 2005, 11:07
				 scanner
				проводки делаем по СФ-отгрузка
а можно поподробнее про то как вы попадали в расределение платежа?
			 
			
					
				
				Добавлено: 08 ноя 2005, 11:16
				 Алексей
				в ТХО АПИ - CurSoprDoc = nrec записи в книге подаж
          CurSoprDoc      == bookprzk.nrec
and bookprzk.nrec       == spsophoz.cbookprzk
and spsophoz.cspsopr  == spsopr.nrec
			 
			
					
				
				Добавлено: 08 ноя 2005, 11:30
				 scanner
				Ну вот я ж писал что нет ТХО API, а без него можно использовать только прямые переходы к таблицам с помощью lTXOGetField
			 
			
					
				
				Добавлено: 08 ноя 2005, 13:11
				 Алексей
				без ТХО АПИ - нет возможности.
			 
			
					
				
				Добавлено: 08 ноя 2005, 13:43
				 scanner
				значит приехали 

 
			 
			
					
				
				Добавлено: 08 ноя 2005, 14:30
				 Seybukan
				#include TxoApi.vih
VipInterface TXO_KnPok_NEW implements ObjTxoIdentPlugin;
interface  TXO_KnPok_NEW;
  create view
  var
  CurSoprHoz : comp;
  CurSpSopr : comp;
  CurSoprDoc : comp;
  w1, w2 : word;
  wtype   : word ;
  as select
     *
  from
  soprhoz (readonly),katsopr(readonly),KATSOPR MYKATSOPR
  where
  ((
          CurSoprDoc        == BOOKPRZK.Nrec
      AND BOOKPRZK.CSCHFACT == SCHFACT.NREC
      AND SCHFACT.NREC      == KATSOPR.CSCHFACT
      AND KATSOPR.VIDSOPR   == OBOROT.TIDK
      AND KATSOPR.NREC      == OBOROT.CSOPRDOC
      AND CurSoprHoz        == Soprhoz.nrec
      AND BOOKPRZK.CSOPR    == MYKATSOPR.NREC
  ))
  AND SUBSTR(OBOROT.SCHETO,2,2)='19'
 ;
  function GetInfo : string;
{
   GetInfo := 'вах вах';
}
function ParamMaster : string;
{  ParamMaster := '';
}
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
   var sum19:double;
   var sum19V:double;
   CurSoprDoc := buf.cSoprDoc;
   CurSoprHoz := buf.cSoprHoz;
   if getfirst BOOKPRZK= tsOk
      {
      if (getfirst OBOROT=tsok)     // 33
        {
      do {
        sum19:=sum19+OBOROT.SUMOB;
        sum19V:=sum19V+OBOROT.SUMVALUT;
         } while  getnext OBOROT=tsok;
        } //if 33 TxoHeadClear(hTxo);
      TxoDebugMsg(hTxo, 'TXO_KnPok_NEW---', 'sum19 = '+STRING(sum19));
      }
   if getfirst BOOKPRZK= tsOk
      {
     if (getfirst OBOROT=tsok)
        {
      do {
          TxoBodyClear(hTxo);
          TxoBodyAddSchet(hTxo,wFlKau_Auto,oborot.SchetO,oborot.SubOsSch);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[1] , OBOROT.KAUOS[1]);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[2] , OBOROT.KAUOS[2]);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[3] , OBOROT.KAUOS[3]);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[4] , OBOROT.KAUOS[4]);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[5] , OBOROT.KAUOS[5]);
          TxoBodyAddKau(hTxo, wFlKau_Auto, OBOROT.TBLOS[6] , OBOROT.KAUOS[6]);
          TxoBodySetSum(hTxo,Soprhoz.SUMMA*OBOROT.SUMOB/sum19,0,0);
          TxoBodySetSumVal(hTxo,Soprhoz.SUMVALUT*OBOROT.SUMVALUT/sum19V,Soprhoz.KODVALUT);
          TxoBodyInsert(hTxo);
          TxoDebugMsg(hTxo, 'TXO_KnPok_NEW---', 'SUMOB = '+STRING(OBOROT.SUMOB/sum19));
          TxoDebugMsg(hTxo, 'TXO_KnPok_NEW---', 'suBSCH19 = '+STRING(oborot.SubOsSch));
         } while  getnext OBOROT=tsok;
        } //if
       }//if
}
end.