Re: Проблема с макросом(запуск макроса из другого макроса)
Доброго всем времени суток! Вот такой вопрос возник. Заходим в план производства выбираем макрос оформление сдачи посредством штрих кода, вводим штрих код, на формочке нажимаем кнопку корректировки фактической сдачи, оттуда выбираем макрос для ввода параметров фактической сдачи(мной написанный). Он нормально отрабатывает, параметры добавляет, но после его закрытия появляется пустая форма фактической сдачи и две кнопки ОК и закрыть, жму ок и получаю сообщение из первого макроса "оформление сдачи посредством штрих кода" :
"Layer is not longer valid".
Если проигнорировать то все вроде ОК, но хотелось бы узнать что это такое. Привожу код своего макроса (отдельно он отрабатывает нормально)
"Sub FormMacro_insertParam1(TCSActiveModule)
Dim FI_NNar
Dim FI_Data
Dim FI_Razr
Dim FI_EdNorm
Dim FI_POpBr
Dim FI_NBrig
Dim FI_KUR
LogObject.ScriptTimeOut = 0
FI_NNar=""
FI_Data=date
FI_EdNorm=1
Set wmfact=TCSActiveModule.Properties("WorkMans").AsIDispatch
' wmfact.ShowModal("")
If wmfact.Properties("WORK_CATEGORY_NOTE").IsNull Then
FI_Razr=0
Else
FI_Razr=wmfact.Properties("WORK_CATEGORY_NOTE").AsInteger
End If
FI_NBrig=0
FI_POpBr=0
FI_KUR=0
Set par=TCSActiveModule.Properties("Parameters").AsIDispatch
FI_NNar=TCSApp.InputBox("Ввод параметра...","1. Введите номер наряда:",FI_NNar)
i=par.SetParameterValueByParCode( "TCS_N_NAR", FI_NNar, 0, True )
FI_Data=TCSApp.InputBox("Ввод параметра...","2. Введите дату фактического изг-ния:",FI_Data)
i=par.SetParameterValueByParCode( "FI_DATA", FI_Data, 0, True )
FI_Razr=TCSApp.InputBox("Ввод параметра...","3. Введите разряд работы:",FI_Razr)
i=par.SetParameterValueByParCode( "FI_RAZR", FI_Razr, 0, True )
FI_EdNorm=TCSApp.InputBox("Ввод параметра...","4. Введите код единицы нормир-я:",FI_EdNorm)
i=par.SetParameterValueByParCode( "TCS_WM_EN", FI_EdNorm, 0, True )
FI_NBrig=TCSApp.InputBox("Ввод параметра...","5. Введите номер бригады:",FI_NBrig)
i=par.SetParameterValueByParCode( "FI_NBRIG", FI_NBrig, 0, True )
If TCSActiveModule.Properties("IsSpoilage").AsBoolean=True Then
FI_POpBr=TCSApp.InputBox("Ввод параметра...","6. Процент оплаты брака(0-100):",FI_POpBr)
i=par.SetParameterValueByParCode( "FI_POPBR", FI_POpBr, 0, True )
End If
FI_KUR=TCSApp.InputBox("Ввод параметра...","7. Код увеличения расценки:",FI_KUR)
i=par.SetParameterValueByParCode( "FI_KUR", FI_KUR, 0, True )
TCSActiveModule.Refresh
'TCSActiveModule.ChildModules.ModuleByName("OrderFactParameters").Refresh
Call TCSApp.ShowMessageBox("Сообщение...", "Ввод параметров окончен.")
End Sub"