Оперативный контур "Задолженность контрагента "?
Модераторы: m0p3e, edward_K, Модераторы
Оперативный контур "Задолженность контрагента "?
Подскажите
Существует ли функция, которая вернула бы, задолженность контрагента по оперативному контуру на заданную дату.
Существует ли функция, которая вернула бы, задолженность контрагента по оперативному контуру на заданную дату.
-
- Посетитель
- Сообщения: 46
- Зарегистрирован: 29 мар 2005, 17:49
Re: Оперативный контур
<HTML>Существует объектный интерфейс для этой цели GKonBalObj с функцией GetKontrBalance.
function GetKontrBalance ( _c1: comp; _d1: date; NaklOnlyWas: word; var BalR: double; var BalV: double; var BalB: double ): boolean;
/*
_c1, // nRec контрагента
_d1, // дата, на которую надо рассчитать баланс
NaklOnlyWas, // 1-если надо только по проведенным накладным
BalR, // баланс в национальной валюте
BalV, // баланс в валюте для отчетов
BalB // баланс в базовой валюте
*/
Пример использования :
var gkb : GKonBalObj;
...
GetVipRef(gkb,'GKonBal');
Result := gkb.GetKontrBalance( katOrg.nRec, date( 01, 01, 2100), wGetTune('Rep.SoprKontr'), BalR, BalV, BalB );</HTML>
function GetKontrBalance ( _c1: comp; _d1: date; NaklOnlyWas: word; var BalR: double; var BalV: double; var BalB: double ): boolean;
/*
_c1, // nRec контрагента
_d1, // дата, на которую надо рассчитать баланс
NaklOnlyWas, // 1-если надо только по проведенным накладным
BalR, // баланс в национальной валюте
BalV, // баланс в валюте для отчетов
BalB // баланс в базовой валюте
*/
Пример использования :
var gkb : GKonBalObj;
...
GetVipRef(gkb,'GKonBal');
Result := gkb.GetKontrBalance( katOrg.nRec, date( 01, 01, 2100), wGetTune('Rep.SoprKontr'), BalR, BalV, BalB );</HTML>
Re: Оперативный контур
Огромное спасибо....
Но нельзя ли подробней.
Превый раз столкнулся с объектным интерфейсом
прочитал все в документации но откомпелировать не получается.
var gkb:GKonBalObj;
ошибка:Ожидался тип параметра.
Но нельзя ли подробней.
Превый раз столкнулся с объектным интерфейсом
прочитал все в документации но откомпелировать не получается.
var gkb:GKonBalObj;
ошибка:Ожидался тип параметра.
Re: Оперативный контур
Разобрался ....
Благодарен всем за участие!
Благодарен всем за участие!
-
- Посетитель
- Сообщения: 46
- Зарегистрирован: 05 июл 2005, 18:06
- Откуда: Корпорация Галактика
- Контактная информация:
А я не разобрался. Не работает. Выводит нули и все тут.
Получаю нули. Что может быть не так? Gal 712
Код: Выделить всё
ObjInterface GKonBalObj;
function GetKontrBalance (_c1 : comp; _d1 : date; NaklOnlyWas: word;
var BalR: double; var BalV:double; var BalB: double): boolean;
end;
var GKB : GKonBalObj;
balr,balv,balb:double;
GetVipRef(GKB,'GKonBal');
GKB.GetKontrBalance(kontr_nrec,d1,0,balr,balv,balb);
message(balr+' '+balv+' '+balb);
Искал как сальдо по контрагенту посчитать, наткнулся на этот топик.
Что должно в этой настройке "Накладные в отчете "Расчеты с контрагентами"" стоять, что бы посчиталось: "все" или "только проведённые"? Пробовал код, который где-то Морзе приводил, использовать, но функция выдаёт false и, соответственно, баланс равен 0.
Может, какие-то вихи нужны? 8.1, декабрьские патчи.
Что должно в этой настройке "Накладные в отчете "Расчеты с контрагентами"" стоять, что бы посчиталось: "все" или "только проведённые"? Пробовал код, который где-то Морзе приводил, использовать, но функция выдаёт false и, соответственно, баланс равен 0.
Код: Выделить всё
#define ComponentVersion
ObjInterface GKonBalObj;
function GetKontrBalance (_c1 : comp; _d1 : date; NaklOnlyWas: word;
var BalR: double; var BalV:double; var BalB: double): boolean;
end;
Interface GetBlockForCorgDO, AlwaysReturn;
var DoNrec : comp;
BalR, BalV, BalB, MaxDolgR : double;
GKB : GKonBalObj;
Block : Boolean;
Create View as select * from grnal;
browse www
fields
grnal.nrec;
end;
HandleEvent
cmInit :
{
block:=gkb.GetKontrBalance(10000000000C4h, date(31,12,2009), 0, BalR, BalV, BalB);
Message(block+'*'+BalR+'*'+BalV+'*'+BalB);
Abort;
exit;
};
End;
#undef ComponentVersion
END.
Вот GKonBal.vih (файл 2006-го года, но, скорее всего, подойдет, т. к. информация в текущем L_KontrBal.chm соответствует VIH-у):
Предлагаю использовать этот VIH + свой интерфейс под него слегка поменять...
Код: Выделить всё
//******************************************************************************
// (c) корпорация Галактика
// Галактика 7.12 - Логистика
// Подсчет баланса взаиморасчетов с контрагентом
//******************************************************************************
#ifndef __GKonBal_VIH__
#define __GKonBal_VIH__
#ifdef ComponentVersion
#component "L_KONTRBAL"
#end
//******************************************************************************
#doc
Подсчет баланса взаиморасчетов с контрагентом
#end
ObjInterface GKonBalObj;
//------------------------------------------------------------------------------
#doc
Инициализация переменных для подсчет баланса взаиморасчетов с контрагентом
#end
procedure InitTuneParams; // Внимание!!! InitTuneParams необходимо вызвать сразу после инициализации!!!
//------------------------------------------------------------------------------
#doc
Подсчет баланса взаиморасчетов с контрагентом
#end
Function GetKontrBalance (
_c1 : comp; // код контрагента
_d1 : Date; // дата, на которую надо рассчитать баланс
NaklOnlyWas : word; // 1-если надо только по проведенным накладным
var BalR : double; // баланс в национальной валюте
var BalV : double; // баланс в валюте для отчетов
var BalB : double // баланс в базовой валюте
): boolean;
//------------------------------------------------------------------------------
end;
//******************************************************************************
VipInterface GKonBal implements GKonBalObj
#ifdef ATL51
Licensed (FREE)
#end
;
//******************************************************************************
#end
Спасибо! Только меня смущает, что вначале выскакивает ExObjIfcNoInit, хотя функция возвращает true и что-то считает. Это сильно страшно?
Код: Выделить всё
#define ComponentVersion
#include GKonBal.vih
Interface GetBlockForCorgDO, AlwaysReturn;
var
DoNrec : comp;
BalR, BalV, BalB, MaxDolgR : double;
GKB : GKonBalObj;
Block : Boolean;
Create View as select * from grnal;
browse www
fields
grnal.nrec;
end;
HandleEvent
cmInit :
{
gkb.InitTuneParams;
GetVipRef(GKB,'GKonBal');
block:=gkb.GetKontrBalance(10000000000C4h, date(31,12,2009), 1, BalR, BalV, BalB);
Message(block+'*'+BalR+'*'+BalV+'*'+BalB);
Abort;
exit;
};
End;
#undef ComponentVersion
END.
Лучше так попробуйте:
Код: Выделить всё
GKB: GKonBal;
. . .
GKB.InitTuneParams;
// Без GetVipRef(GKB,'GKonBal');
block:=GKB.GetKontrBalance(10000000000C4h, date(31,12,2009), 1, BalR, BalV, BalB);
. . .
Нет. Так не считает. Опытным путём подобрал эту последовательность:
Код: Выделить всё
GetVipRef(GKB,'GKonBal');
gkb.InitTuneParams;
block:=gkb.GetKontrBalance(10000000000C4h, date(31,12,2009), 1, BalR, BalV, BalB);
а так?
Код: Выделить всё
gkb : GKonBalObj; // cсылка на obj не на vip
GetVipRef(gkb, 'GKonBal');
gkb.InitTuneParams();
block:=gkb.GetKontrBalance(10000000000C4h, date(31,12,2009), 1, BalR, BalV, BalB);