Добавлено: Вт Мар 05, 2013 1:09 pm Заголовок сообщения:
Светлана, попробуйте так:
Код:
Sub Template_OnRecalc(op)
'{{ BEGIN_RECALC
' ТУТ ВАШ КОД
'}} END_RECALC
' Num - номер Аналитики "Cтатья движения денежных средств"
' TNum - номер проводки, в которой нужно прописать
Dim i
With op
For i = 1 To .TransList(TNum).Rows
.Trans(TNum, i).MiscId(Num) = .Trans(TNum, i).AgTo.Parent.Params("статья движения ДС").Value2
Next
End With
Добавлено: Вт Мар 05, 2013 1:17 pm Заголовок сообщения:
cветлана писал(а):
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Facts(Date)("Cтатья движения денежных средств").Value2
проводка №4
номер разного "статьи движения ДС " 19
так?
Я не пойму, у вас в ФАКТЕ или в ПАРАМЕТРЕ подразделения хранится значение аналитики "статья движения ДС"? И какой у этого параметра (факта) точное название?
Добавлено: Вт Мар 05, 2013 1:29 pm Заголовок сообщения:
cветлана писал(а):
в параметре
Группа 02. Статьи движения денежных средств
Ну значит открывайте код шаблона и вставьте в вашу процедуру Template_OnRecalc(op) после строки '}} END_RECALC такой код:
Код:
' Num - номер Аналитики "Cтатья движения денежных средств"
' TNum - номер проводки, в которой нужно прописать
Dim i, Num, TNum
Num = 19: TNum = 4
With op
For i = 1 To .TransList(TNum).Rows
.Trans(TNum, i).MiscId(Num) = .Trans(TNum, i).AgTo.Parent.Params("Группа 02. Статьи движения денежных средств").Value2
Next
End With
Должно работать. Но только если у вас один уровень вложенности сотрудников в подразделение
Sub Template_OnEdit(op)
'{{ BEGIN_EDIT
'--Число проводок--
op.TransCount = 4
op.LockUI &H9
'--Блокировки--
op.TransList(4).LockUI &H19
'}} END_EDIT
End Sub
Sub Template_OnRecalc(op)
'{{ BEGIN_RECALC
'--Объекты учета--
op.CopyEntSeries 4, 1
'--Корреспонденты--
op.CopyAgents 4, False, 1, False
op.CopyAgents 4, True, 1, True
'--Суммы--
op.CalcSum "=T1"
op.TransList(4).CalcSum "=$1"
'--Разное--
Op.TransList(4).SetMisc 12, Op.Trans(3).MiscID(12)
Op.TransList(4).SetMisc 11, op.Trans(3).MiscID(11)
End Sub
'}} END_RECALC
Dim i
With op
For i = 1 To .TransList(4).Rows
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Params("Группа 02. Статьи движения денежных средств").Value2
Next
End With
Добавлено: Вт Мар 05, 2013 2:51 pm Заголовок сообщения:
В принципе я это и подозревал. У вас процедура заканчивается раньше времени ))))) надо так:
Код:
Sub Template_OnRecalc(op)
'{{ BEGIN_RECALC
'--Объекты учета--
op.CopyEntSeries 4, 1
'--Корреспонденты--
op.CopyAgents 4, False, 1, False
op.CopyAgents 4, True, 1, True
'--Суммы--
op.CalcSum "=T1"
op.TransList(4).CalcSum "=$1"
'--Разное--
Op.TransList(4).SetMisc 12, Op.Trans(3).MiscID(12)
Op.TransList(4).SetMisc 11, op.Trans(3).MiscID(11)
'}} END_RECALC
Dim i
With op
For i = 1 To .TransList(4).Rows
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Params("Группа 02. Статьи движения денежных средств").Value2
Next
End With
End Sub
Последний раз редактировалось: Oleksandr (Вт Мар 05, 2013 2:57 pm), всего редактировалось 1 раз
Добавлено: Вт Мар 05, 2013 2:57 pm Заголовок сообщения:
Oleksandr писал(а):
В принципе я это и подозревал. Последняя процедура должна быть такой:
Код:
Sub Template_OnRecalc(op)
'{{ BEGIN_RECALC
'--Объекты учета--
op.CopyEntSeries 4, 1
'--Корреспонденты--
op.CopyAgents 4, False, 1, False
op.CopyAgents 4, True, 1, True
'--Суммы--
op.CalcSum "=T1"
op.TransList(4).CalcSum "=$1"
'--Разное--
Op.TransList(4).SetMisc 12, Op.Trans(3).MiscID(12)
Op.TransList(4).SetMisc 11, op.Trans(3).MiscID(11)
'}} END_RECALC
Dim i
With op
For i = 1 To .TransList(4).Rows
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Params("Группа 02. Статьи движения денежных средств").Value2
Next
End With
End Sub
Можно повредничать? Можно?
Вообще-то такой код надо выносить на beforeSave. Вы ж не знаете, сколько строк будет пересчитываться? Если, к примеру, 2 тысячи? Да на каждый recalc?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах