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

получение налоговой ставки НДС.

Добавлено: 12 апр 2006, 08:14
homak
Доброе время суток!
Подскажите, может есть стандартный интерфейс получение ставки НДС по нреку МЦ?

Добавлено: 12 апр 2006, 08:34
Алексей
:) А за какой период вам нужна ставка НДС?

В МЦ есть ссылка на группу налогов, а в ней уже прописаный периоды действия НДС. Какую из ставок ( 20 или 18 ) вы хотите увидеть?

Надо знать дату документа что бы получить какую-то ставку.

Либо нрек позиции а не МЦ.

Думаю стандартного такого ничего не найдёте.

Добавлено: 12 апр 2006, 12:17
hope
Я ставку НДС достаю так:

INTERFACE Poisk_NDS 'Поиск ставки НДС' DoAccept,EscClose, CYAN;
SHOW AT (20,5,60,10);
VAR
st_nds:Double; //
myNrec:Comp; // ссылка на МЦ KatMc.Nrec
myNalog:Comp;
myGrNal:Comp; // SpGrNal.cGrNal;
myIsCustom:Word; // SpGrNal.IsCustom;
CREATE VIEW NN5
AS SELECT *
FROM KatMc, GrNal, SpGrNal, KatNalog
WHERE ((myNrec==KatMc.Nrec
and KatMc.cGrNal==GrNal.Nrec //
and GrNal.Nrec==SpGrNal.cGrNal //
and KatNalog.Nrec==SpGrNal.cNalog //
))
and 'NDS'=KatNalog.Kod
and Cur_Date<=SpGrNal.NalD2 //
and Cur_Date>=SpGrNal.NalD1 //
;
PARAMETERS myNrec, st_nds, myNalog, myGrNal, myIsCustom;

HANDLEEVENT
cmInit:
{
! message('Зашли в Поиск НДС')
IF (modifier GetFirst KatMc = tsOk)
{
IF (modifier GetFirst GrNal = tsOk)
{
IF (modifier GetFirst SpGrNal = tsOk)
{
st_nds:=SpGrNal.Nalog;
myNalog:=SpGrNal.cNalog;
myGrNal:=SpGrNal.cGrNal;
myIsCustom:=SpGrNal.IsCustom;
}
}

}

!message('Сделала Поиск НДС')
CloseInterFace(cmDefault);
Stop;
!abort;
}
end // Hadleevent
END. // Interface

Если что-то неверно - пишите - учту.

Добавлено: 12 апр 2006, 12:31
homak
2 hope
Спасибо !!! то что надо :-)
[/b]

Добавлено: 12 апр 2006, 12:38
Алексей
Интересно. Я так понял этот интерфейс что бы вытаскивать ставку НДС на сегодняшнее число? Т.к. либо 10 либо 18 ?

Добавлено: 12 апр 2006, 13:40
hope
У меня в запросе стоит условие такое:
and Cur_Date<=SpGrNal.NalD2 //
and Cur_Date>=SpGrNal.NalD1 //

Cur_Date - это текущая дата. (мне так нужно).

Если вам на нужно на какую-то другую дату, то замените Cur_Date на вашу переменную с датой, будет например так:
and d1<=SpGrNal.NalD2 //
and d1>=SpGrNal.NalD1 //

Добавлено: 20 окт 2006, 08:59
homak
Не работает фейсик ... по всем МЦ у меня налог выдал ноль ... где то ошибочка закралась :(

Добавлено: 20 окт 2006, 09:59
Мария_Ф
homak
Долго же Вы этот фейсик делали :D

Добавлено: 20 окт 2006, 10:22
homak
Мария_Ф
Я долго до него добирался :D

Добавлено: 20 окт 2006, 11:52
m0p3e

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

Interface NalogsEx;
Create View
var cNalog
As Select *
From KatMc
    ,GrNal
    ,KatNalog
;
Public Function GetStNDS ( cMc : double; dDoc : date ) : Integer;
Begin
  cNalog := coGetTune( 'Nalog.cNalogNDS' );
  GetStNDS := 0;
  If GetFirst KatMc Where (( cMc == KatMc.nrec )) = tsOk
    If GetFirst GrNal Where (( KatMc.cGrNal == GrNal.nrec )) = tsOk
      If GetFirst SpGrNal Where (( GrNal.nrec == SpGrNal.cGrNal
                               and cNalog     == SpGrNal.cNalog
                               and dDoc     >>= SpGrNal.NalD1 (noIndex)
                               and dDoc     <<= SpGrNal.NalD2 (noIndex)
                                )) = tsOk
       GetStNDS := SpGrNal.nalog;
End;
END.
использование
....
var mNal : NalogsEx;
....
CurMcStNDS := mNal.GetStNDS ( McNrec, DatDoc );

Добавлено: 21 окт 2006, 12:33
homak
интерфейс предложенный hope отработал нормально :)
вот тут надо было мне строковый параметр подправить

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

and 'NDS'=KatNalog.Kod 
m0p3e - спасибо за "универсальный" фейс :-)