Приходится прибегать к помощи народа, ибо заплутались в трех соснах.
В принципе все просто, надо в маршрутной карте в трудовых потребностях для каждого человека рассчитывать норму времени на операцию исходя из некоторых параметров операции (код 1019 и 1020, введены при редакторвании параметров).
Как написать код Javascript?
Пишу
N1 = 0;
EdVr = 0;
if (Operation.Parametr.GetFirst()==0){
do{
if (Operation.Parametr.Code() == '1019')
{N1 =Operation.Parametr.Value();
};
if (Operation.Parametr.Code()=='1020')
{EdVr =Operation.Parametr.Value();
};
}while (Operation.Parametr.GetNext() == 0);
}
Message('N='+N1+' '+EdVr,0);
Но Гал-ка возвращает значения параметров, как будто те, что стоят по умолчанию в настройке параметров
Если добираться из материальных норм, то код
if (Route.FindBynRec(GetCurRoute()) ==0)
{
if (Route.GetFirst() == 0)
{
if (Route.Operation.GetFirst() == 0)
{
if (Route.Operation.ResNorm.GetFirst() ==0)
{
do{ if (Route.Operation.ResNorm.Category()==101)
{
if (Route.Operation.Parametr.FindByCode('1019') == 0)
{N1 =Route.Operation.Parametr.Value();
};
if (Route.Operation.Parametr.FindByCode('1020') == 0)
{EdVr =Route.Operation.Parametr.Value();
};
};
}while (Route.Operation.GetNext() == 0);
}
}
};
};
прокатывает при движении по операциям, но в трудовых уже нет (и смена категории на 102 или убирание этого ифа тоже не помогает).
Что трудовые и материальные отрабатывают по-разному? Или я что-то неверно написал?
Еще раз напомню, нужно в трудовых достать параметры ТО и по ним рассчитать величину нормы времени на операцию.
Получить параметры операции через Javascript
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Отвечаю сам себе.
Срабатывает следующий алгоритм:
1 = 0;
EdVr = 0;
if (Operation.FindByRoute(GetCurNormDoc()) == 0)
do{
zPar = Operation.Parametr;
if (zPar.FindByCode(1019) == 0)
{
N1 = zPar.Value()
}
if (zPar.FindByCode(1020) == 0)
{
EdVr = zPar.Value()
}
if (Operation.ResNorm.FindByCategory(102) == 0)
{
do{
if (Operation.ResNorm.Parametr.FindByCode(30) == 0)
{
wPar = EdVr*N1;
if ((EdVr>0) && (N1>0)){
Operation.ResNorm.Parametr.SetValue(wPar)};
}
}while (Operation.ResNorm.GetNext() == 0);
}
}while(Operation.GetNext() == 0);
НО! САМОЕ ГЛАВНОЕ! ТАКИЕ АЛГОРИТМЫ НАДО ОБЯЗАТЕЛЬНО ВВОДИТЬ ТОЛЬКО В ЗАГОЛОВКЕ МК!!!!!!!! (совет Минска)Вопрос: а зачем тогда возможность пристыковки алгоритмов есть и в ресурсах??????
Срабатывает следующий алгоритм:
1 = 0;
EdVr = 0;
if (Operation.FindByRoute(GetCurNormDoc()) == 0)
do{
zPar = Operation.Parametr;
if (zPar.FindByCode(1019) == 0)
{
N1 = zPar.Value()
}
if (zPar.FindByCode(1020) == 0)
{
EdVr = zPar.Value()
}
if (Operation.ResNorm.FindByCategory(102) == 0)
{
do{
if (Operation.ResNorm.Parametr.FindByCode(30) == 0)
{
wPar = EdVr*N1;
if ((EdVr>0) && (N1>0)){
Operation.ResNorm.Parametr.SetValue(wPar)};
}
}while (Operation.ResNorm.GetNext() == 0);
}
}while(Operation.GetNext() == 0);
НО! САМОЕ ГЛАВНОЕ! ТАКИЕ АЛГОРИТМЫ НАДО ОБЯЗАТЕЛЬНО ВВОДИТЬ ТОЛЬКО В ЗАГОЛОВКЕ МК!!!!!!!! (совет Минска)Вопрос: а зачем тогда возможность пристыковки алгоритмов есть и в ресурсах??????