Страница 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.