trad писал(а) 07. Июня 2012 :: 12:24:Z1 писал(а) 07. Июня 2012 :: 08:11:в модуле проведения, отмены проведения для расчета rg
да ладно...

rg же хранимками считается
ну вот в той хранимке и создается и используется курсор.
ошибся только в том что
только при отмене проведения.
вот текст одной их них
Create procedure _1sp_RA5007_ClearRecalcDocActs(@IdDoc CHAR(9), @DocDate DATETIME, @CurPeriod DATETIME, @RepeatToTM INTEGER, @SaveTurnsWithMonth INTEGER, @Direct INTEGER) AS
SET NOCOUNT ON
DECLARE @PeriodTA datetime, @Period datetime, @SnapShotPeriod char, @DebetCredit BIT
DECLARE @p0 CHAR(9), @p1 CHAR(9), @p2 CHAR(13), @f0 NUMERIC(18, 2)
SELECT @PeriodTA=CURDATE, @SnapShotPeriod=SNAPSHPER FROM _1SSYSTEM
DECLARE Cur_RA5007 CURSOR FOR SELECT DEBKRED, SP5008, SP5087, SP5009, SP5010 FROM RA5007 WHERE IDDOC=@IdDoc
OPEN Cur_RA5007
FETCH NEXT FROM Cur_RA5007 INTO @DebetCredit, @p0, @p1, @p2, @f0
WHILE @@FETCH_STATUS=0 BEGIN
IF @DebetCredit<>@Direct
SELECT @f0=-@f0
IF @RepeatToTM=1 BEGIN
SELECT @Period=@CurPeriod
WHILE @Period<=@PeriodTA BEGIN
EXECUTE _1sp_RG5007_Change @Period, @p0, @p1, @p2, @f0
EXECUTE _1sp_GetNextPeriod @Period, @SnapShotPeriod, @Period OUTPUT
END
END
ELSE
EXECUTE _1sp_RG5007_Change @CurPeriod, @p0, @p1, @p2, @f0
IF @SaveTurnsWithMonth=1 BEGIN
EXECUTE _1sp_GetBeginOfPeriod @DocDate, 'M', @Period OUTPUT
EXECUTE _1sp_RG5007_Change @Period, @p0, @p1, @p2, @f0
END
FETCH NEXT FROM Cur_RA5007 INTO @DebetCredit, @p0, @p1, @p2, @f0
END
CLOSE Cur_RA5007
DEALLOCATE Cur_RA5007