Список форумов Акцент Акцент
официальный форум разработчика программы Акцент
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

список макросов Акцент
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:09 pm    Заголовок сообщения: Ответить с цитатой

Светлана, попробуйте так: Very Happy

Код:
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

End Sub
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:14 pm    Заголовок сообщения: Ответить с цитатой

.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Facts(Date)("Cтатья движения денежных средств").Value2

проводка №4
номер разного "статьи движения ДС " 19
так?
Вернуться к началу
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:17 pm    Заголовок сообщения: Ответить с цитатой

cветлана писал(а):
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Facts(Date)("Cтатья движения денежных средств").Value2

проводка №4
номер разного "статьи движения ДС " 19
так?


Я не пойму, у вас в ФАКТЕ или в ПАРАМЕТРЕ подразделения хранится значение аналитики "статья движения ДС"? И какой у этого параметра (факта) точное название?
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:18 pm    Заголовок сообщения: Ответить с цитатой

Sub Template_OnRecalc(op)



Dim i
With op
For i = 1 To .TransList(4).Rows
.Trans(4, i).MiscId(19) = .Trans(4, i).AgTo.Parent.Params("статья движения ДС").Value2
Next
End With

End Sub


Последний раз редактировалось: cветлана (Вт Мар 05, 2013 1:27 pm), всего редактировалось 2 раз(а)
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:22 pm    Заголовок сообщения: Ответить с цитатой

в параметре
Группа 02. Статьи движения денежных средств
Вернуться к началу
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 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


Должно работать. Но только если у вас один уровень вложенности сотрудников в подразделение
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:32 pm    Заголовок сообщения: Ответить с цитатой

Требуется объект: 'op'
Вернуться к началу
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:37 pm    Заголовок сообщения: Ответить с цитатой

cветлана писал(а):
Требуется объект: 'op'

Это вам после каких действий такую ошибку выдает?
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:38 pm    Заголовок сообщения: Ответить с цитатой

сохраняю шаблон , он спрашивает перепровести
перепроводит и ругается
Вернуться к началу
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Вт Мар 05, 2013 1:56 pm    Заголовок сообщения: Ответить с цитатой

Oleksandr писал(а):
AllexL писал(а):
.AgFromBind.parent.FactValue

У AgentBind нет свойства Parent, как и у Agent нет FactValue

Если факт, то так: .Trans(TNum, i).MiscId(Num) = .Trans(TNum, i).AgTo.Parent.Facts(Date)("Cтатья движения денежных средств").Value2

Да, забыл стереть Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 1:59 pm    Заголовок сообщения: Ответить с цитатой

cветлана писал(а):
сохраняю шаблон , он спрашивает перепровести
перепроводит и ругается

а выложите код шаблона полностью
Вернуться к началу
cветлана
Гость





СообщениеДобавлено: Вт Мар 05, 2013 2:43 pm    Заголовок сообщения: Ответить с цитатой

Sub Template_OnApply(op)
'{{ BEGIN_APPLY
'--Число проводок--
op.TransCount = 4
'--Общие--
op.FormID = 31
op.Name2 = "ст. 22 Прочие удержания зарплаты"
'--Счета--
op.TransList(1).SetAccDb 560
op.TransList(2).SetAccDb 560
op.TransList(3).SetAccDb 1165
op.TransList(4).SetAccDb 560
op.TransList(4).SetAccCr 1165
'}} END_APPLY
End Sub

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
Вернуться к началу
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 2:51 pm    Заголовок сообщения: Ответить с цитатой

Razz В принципе я это и подозревал. У вас процедура заканчивается раньше времени ))))) надо так:

Код:
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 раз
Вернуться к началу
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Вт Мар 05, 2013 2:57 pm    Заголовок сообщения: Ответить с цитатой

Oleksandr писал(а):
Razz В принципе я это и подозревал. Последняя процедура должна быть такой:

Код:
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? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Oleksandr
Гость





СообщениеДобавлено: Вт Мар 05, 2013 3:02 pm    Заголовок сообщения: Ответить с цитатой

AllexL писал(а):

Вообще-то такой код надо выносить на beforeSave. Вы ж не знаете, сколько строк будет пересчитываться? Если, к примеру, 2 тысячи? Да на каждый recalc? Smile

Согласен! Либо на onApply
Вернуться к началу
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0 Часовой пояс: GMT + 2
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Страница 4 из 8

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group