Страница 1 из 1

Конструктор объекта KauWorkLine и его метод ValueSelect()

Добавлено: 14 июн 2016, 15:08
Один Из Вас
Здравствуйте, форумчане.
Хотим средствами JS получить nRec значения выбранной в интерфейсе системной аналитики. Для этого используем существующий в JS Конструктор объекта KauWorkLine и его метод ValueSelect().
В документации сказано:
Конструктор объекта имеет наименование KauWorkLine
В конструкторе 4 параметра
aRole - роль аналитики
aMainKau - код аналитики
aKau - код элементарной аналитики
aValue - значение аналитики
Данные параметры объединены в одном объекте так как они логически связаны и фактически описывают всю информацию об аналитике
Данный объект имеет 6 методов:
3 метода аналогичны 3 функциям описанным выше и дают наименования соответственно Роли, коду КАУ и значению КАУ
RoleName() - наименование роли
KauName() - наименование кода КАУ
ValueName() - наименование значения КАУ
Обратите внимание, что данные методы не имеют параметров и работают с данными объекта
3 остальных метода - методы выбора значений:
RoleSelect() - выбор роли аналитики
KauSelect() - выбор КАУ аналитики
ValueSelect() - выбор значения аналитики

Однако по факту ValueSelect() возвращает 0 или -1.
Похоже проблема метода ValueSelect() в Boolean, т.к. Number(VIP.ArgValue(5)) д. выдавать nRec?:

Код: Выделить всё

function ValueSelect_()
{
VIP.CallMethod("AnalyticsAndRole", "ValueSelect", this.MainKau, this.Kau, this.Value, "")
this.Kau = VIP.ArgValue(3)
this.Value = VIP.ArgValue(4)
return Boolean(Number(VIP.ArgValue(5)))
}
Поясните, пожалуйста, возможно ли безопасно убрать Boolean или это м. привести к нежелательным последствиям?
Или как иными способами получить nRec выбранной аналитики для дальнейшего использования.

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 14 июн 2016, 23:10
edward_K
Хм. А Вы ту функцию то юзаете?
там еще должна быть

Код: Выделить всё

    fBody.push('function ValueName(aKau, aValue)');
    fBody.push('{');
    fBody.push('  VIP.CallMethod("AnalyticsAndRole", "ValueName", aKau, aValue, "")');
    fBody.push('  return VIP.ArgValue(4)');
    fBody.push('}');
    fBody.push('');
Вот обработки

Код: Выделить всё

    'ValueName': SetArgString(4, #gKauValue(word(GetArgString(2)), comp(GetArgString(3))));
    'ValueSelect':
    {
      var ValueResult : comp; ValueResult := GetArgComp(4);
      var KauResult : word; KauResult := word(GetArgString(3));
      if(#sKauValue(word(GetArgString(2)), KauResult, ValueResult))
      {
        SetArgString(5, '1')
        SetArgString(3, string(KauResult))
        SetArgComp(4, ValueResult)
      }
      else
        SetArgString(5, '0')
    }
То есть с типом функции там все правильно. Если все же ту, то чем вас не устраивает "this.Value"? Редко сталкиваюсь с JS, но думаю должно прокатить. Вопрос только в том, что понимать под "this" в вашем коде.

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 15 июн 2016, 11:17
Один Из Вас
Эдуард, благодарю за внимание к проблеме.
Мы пишем только на JS: просто, удобно и исходники в БД, к тому же другого не знаем. :)
По проблеме дополнительно прилагаю текст JS:

Код: Выделить всё

curObj = new KauWorkLine( rNeed, kauNeedLocal, kauNeed, "0");
curObj.ValueSelect(); 
и преобразованный в VIP (?) код (соотношение впечатляет):

Код: Выделить всё

  // MessageAndVisual - стандартна¤ функци¤
  cmOk = 10; cmCalcel = 11; cmYes = 12; cmNo = 13 
  mfWarning = 0; mfError = 1; mfInformation = 2; mfConfirmation = 3;
  mfYesButton = 256; mfNoButton     = 512; mfOKButton = 1024; mfCancelButton = 2048;
  mfYesNoCancel  = 2816; mfOKCancel = 3072;

function Message(aMessage, aFlag)
{
  VIP.CallMethod("MessageAndVisual", "Message", aMessage, aFlag, 0)
  return Number(VIP.ArgValue(4))
}
  vtRotateVisual = 0; vtNumericVisual = 1; vtIndicatorVisual = 2;
  vfTimer     = 32; vfBreak     = 64; vfConfirm   = 128; vfSilent    = 1;
  vfWait      = 4; vfHigh1     = 16; vfHigh2     = 32;
  vfScreenBottom = 2; vfThread = 256;
function StartNewVisual(iVisualType, iFlags, iHeader, iParam)
{
  VIP.CallMethod("MessageAndVisual", "StartNewVisual", iVisualType, iFlags, iHeader, iParam)
}
function StopVisual(iInfo, iFlags)
{
  VIP.CallMethod("MessageAndVisual", "StopVisual", iInfo, iFlags)
}
function NextVisual()
{
  VIP.CallMethod("MessageAndVisual", "NextVisual", "")
  return Boolean(Number(VIP.ArgValue(2)))
}
function iNextVisual (iHeader)
{
  VIP.CallMethod("MessageAndVisual", "iNextVisual", iHeader, "")
  return Boolean(Number(VIP.ArgValue(3)))
}
function nNextVisual (iNum)
{
  VIP.CallMethod("MessageAndVisual", "nNextVisual", iNum, "")
  return Boolean(Number(VIP.ArgValue(3)))
}
function RestartVisual (iHeader, iParam)
{
  VIP.CallMethod("MessageAndVisual", "RestartVisual", iHeader, iParam)
}
function SetVisualHeader (iHeader) 
{
  VIP.CallMethod("MessageAndVisual", "SetVisualHeader", iHeader)
}
function SetVisualTitle (iTitle )
{
  VIP.CallMethod("MessageAndVisual", "SetVisualTitle", iTitle)
}
function VisualCount ()
{
  VIP.CallMethod("MessageAndVisual", "VisualCount", "")
  return Number(VIP.ArgValue(2))
}
function VisualizationActive ()
{
  VIP.CallMethod("MessageAndVisual", "VisualizationActive", "")
  return Boolean(VIP.ArgValue(2))
}


// AnalyticsAndRole - стандартна¤ функци¤
function RoleName(aRole)
{
  VIP.CallMethod("AnalyticsAndRole", "RoleName", aRole, "")
  return VIP.ArgValue(3)
}
function KauName(aKau)
{
  VIP.CallMethod("AnalyticsAndRole", "KauName", aKau, "")
  return VIP.ArgValue(3)
}
function ValueName(aKau, aValue)
{
  VIP.CallMethod("AnalyticsAndRole", "ValueName", aKau, aValue, "")
  return VIP.ArgValue(4)
}

function RoleName_()
{
  VIP.CallMethod("AnalyticsAndRole", "RoleName", this.Role, "")
  return VIP.ArgValue(3)
}
function KauName_()
{
  VIP.CallMethod("AnalyticsAndRole", "KauName", this.MainKau, "")
  return VIP.ArgValue(3)
}
function ValueName_()
{
  VIP.CallMethod("AnalyticsAndRole", "ValueName", this.Kau, this.Value, "")
  return VIP.ArgValue(4)
}
function RoleSelect_()
{
  VIP.CallMethod("AnalyticsAndRole", "RoleSelect", this.Role, this.MainKau, "")
  this.Role = VIP.ArgValue(2)
  return Boolean(Number(VIP.ArgValue(4)))
}
function KauSelect_()
{
  VIP.CallMethod("AnalyticsAndRole", "KauSelect", this.Role, this.MainKau, "")
  this.MainKau = VIP.ArgValue(3)
  if( VIP.ArgValue(4) = "1" ) this.Value = 0
  return Boolean(Number(VIP.ArgValue(4)))
}
function ValueSelect_()
{
  VIP.CallMethod("AnalyticsAndRole", "ValueSelect", this.MainKau, this.Kau, this.Value, "")
  this.Kau = VIP.ArgValue(3)
  this.Value = VIP.ArgValue(4)
  return Boolean(Number(VIP.ArgValue(5)))
}
// - constructor 
function KauWorkLine(aRole, aMainKau, aKau, aValue)
{
  this.Role = aRole
  this.MainKau = aMainKau
  this.Kau = aKau
  this.Value = aValue
  this.RoleName = RoleName_
  this.KauName = KauName_
  this.ValueName = ValueName_
  this.RoleSelect = RoleSelect_
  this.KauSelect = KauSelect_
  this.ValueSelect = ValueSelect_
}
function GetCodeUserAnVal(aValue)
{
  VIP.CallMethod("AnalyticsAndRole", "GetCodeUserAnVal", aValue, "")
  return VIP.ArgValue(3)
}
function CreateNextKauValueNum(aKau)
{
  VIP.CallMethod("AnalyticsAndRole", "CreateNextKauValueNum", aKau, "")
  return VIP.ArgValue(3)
}
function CreateNewSpKau(aKau, aName, aCode, aLevelCode)
{
  VIP.CallMethod("AnalyticsAndRole", "CreateNewSpKau", aKau, aName, aCode, aLevelCode, "")
  return VIP.ArgValue(6)
}

//*** коды возврата обработчика метода VIP.CallMethod():
VIPDone = 0; VIPNotFound = 1; VIPNeedParam = 2; VIPError = 3
//*** коды контекстов выполнени¤:
rtcEdit = 0; rtcRecalc = 1; rtcError = 2
//*** коды типов объектов:
cgKAU_KatMC = 4; cgKAU_KatUsl = 5;
//*** описание сервисных функций:
function GetResObject()
{ VIP.CallMethod(this.Inter, 'GetResObject', this.NoTable); return VIP.ArgValue(2) }
function GetDocCode()
{ VIP.CallMethod(this.Inter, 'GetDocCode', this.NoTable); return VIP.ArgValue(2) }
function GetObjectDoc()
{ VIP.CallMethod(this.Inter, 'GetObjectDoc', this.NoTable); return VIP.ArgValue(2) }
function GetTypeDoc()
{ VIP.CallMethod(this.Inter, 'GetTypeDoc', this.NoTable); return VIP.ArgValue(2) }
function GetProcent()
{ VIP.CallMethod(this.Inter, 'GetProcent', this.NoTable); return VIP.ArgValue(2) }
function GetNamePS()
{ VIP.CallMethod(this.Inter, 'GetNamePS', this.NoTable); return VIP.ArgValue(2) }
function SetProcent(Value)
{ VIP.CallMethod(this.Inter, 'SetProcent', this.NoTable, Value) }
function InsRecord(Value1, Value2)
{ VIP.CallMethod(this.Inter,'InsRecord', this.NoTable, Value1, Value2) }
function DelRecord(Value)
{ VIP.CallMethod(this.Inter,'DelRecord', this.NoTable, Value) }
function GetOpPeriod()
{ VIP.CallMethod(this.Inter, 'GetOpPeriod', this.NoTable); return new Array(VIP.ArgValue(2),VIP.ArgValue(3),VIP.ArgValue(4),VIP.ArgValue(5)) }
function GetTarStav()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='GetTarStav';VIP.ArgValue(2)=this.NoTable
iCount = GetTarStav.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=GetTarStav.arguments[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2))
}
function SetJobTarif()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='SetJobTarif';VIP.ArgValue(2)=this.NoTable
iCount = SetJobTarif.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=SetJobTarif.arguments[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2))
}
function GetCashMulti()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='GetCashMulti';VIP.ArgValue(2)=this.NoTable
iCount = GetCashMulti.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=GetCashMulti.arguments[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2))
}
function GetNormEd()
{ VIP.CallMethod(this.Inter, 'GetNormEd', this.NoTable);
  var AV1 = parseFloat(VIP.ArgValue(2)); if (isNaN(AV1)) { return new Array(VIP.ArgValue(2),VIP.ArgValue(3),VIP.ArgValue(4)) } else { return new Array(AV1, VIP.ArgValue(3),VIP.ArgValue(4)) } }
function GetDopInfo(sFieldName)
{ VIP.CallMethod(this.Inter,'GetDopInfo', this.NoTable, sFieldName); return VIP.ArgValue(2) }
function GetProdObject()
{ VIP.CallMethod(this.Inter, 'GetProdObject', this.NoTable); return VIP.ArgValue(2) }
function SetObject()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='SetObject';VIP.ArgValue(2)=this.NoTable
iCount = SetObject.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=SetObject.arguments[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2))
}
function GetDocKind()
{ VIP.CallMethod(this.Inter,'GetDocKind', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetResKind()
{ VIP.CallMethod(this.Inter, 'GetResKind', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetProdKind()
{ VIP.CallMethod(this.Inter, 'GetProdKind', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetCode()
{ VIP.CallMethod(this.Inter,'GetCode', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetMode()
{ VIP.CallMethod(this.Inter,'GetMode', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetModeType()
{ VIP.CallMethod(this.Inter,'GetModeType', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetModeSrcLink()
{ VIP.CallMethod(this.Inter,'GetModeSrcLink', this.NoTable); return VIP.ArgValue(2) }
function FindName(Name)
{ VIP.CallMethod(this.Inter,'FindName', this.NoTable, Name); return parseFloat(VIP.ArgValue(2)) }
function FindCode(Code)
{ VIP.CallMethod(this.Inter,'FindCode', this.NoTable, Code); return parseFloat(VIP.ArgValue(2)) }
function SetOwnerLink(OwnerLink)
{ VIP.CallMethod(this.Inter,'SetOwnerLink', this.NoTable, OwnerLink); return parseFloat(VIP.ArgValue(2)) }
function SetOwner(OwnerType, OwnerLink)
{ VIP.CallMethod(this.Inter,'SetOwner', this.NoTable, OwnerType, OwnerLink); return parseFloat(VIP.ArgValue(2)) }
function OwnerStruct()
{ iCount=OwnerStruct.arguments.length;this.fld=new Array(iCount);
for(var i=0;i<iCount;i++){this.fld[i]=OwnerStruct.arguments[i]} }
function SetOwnerEx(OwnerInfo)
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='SetOwnerEx';VIP.ArgValue(2)=this.NoTable
iCount = OwnerInfo.fld.length;
for(var i=0;i<iCount;i++){VIP.ArgValue(3+i)=OwnerInfo.fld[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2)) }
function GetOwner()
{ VIP.CallMethod(this.Inter,'GetOwner', this.NoTable); return VIP.ArgValue(2) }
function GetNavigation()
{ VIP.CallMethod(this.Inter,'GetNavigation', this.NoTable); return VIP.ArgValue(2) }
function SetNavigation(Value)
{ VIP.CallMethod(this.Inter,'SetNavigation', this.NoTable, Value) }
function GetFirst()
{ VIP.CallMethod(this.Inter,'GetFirst', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetNext()
{ VIP.CallMethod(this.Inter,'GetNext', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetLast()
{ VIP.CallMethod(this.Inter,'GetLast', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetPrev()
{ VIP.CallMethod(this.Inter,'GetPrev', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function GetnRec()
{ VIP.CallMethod(this.Inter,'GetnRec', this.NoTable); return VIP.ArgValue(2) }
function GetValue()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='GetValue';VIP.ArgValue(2)=this.NoTable
iCount = GetValue.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=GetValue.arguments[i]}
VIP.CallMethodEx(); if (iCount) {return VIP.ArgValue(2)}
else { var AV = parseFloat(VIP.ArgValue(2)); if (isNaN(AV)) { return VIP.ArgValue(2) } else { return AV }}
}
function GetValueAnal()
{ VIP.CallMethod(this.Inter,'GetValueAnal', this.NoTable); return VIP.ArgValue(2) }
function SetValue(Value)
{ VIP.CallMethod(this.Inter,'SetValue', this.NoTable, Value) }
function GetActive()
{ VIP.CallMethod(this.Inter,'GetActive', this.NoTable); return parseFloat(VIP.ArgValue(2)) }
function CheckActive(onDate)
{ VIP.CallMethod(this.Inter,'CheckActive',this.NoTable,onDate); return parseFloat(VIP.ArgValue(2)) }
function GetCountMtResByFC(adProdCount, acProdMsrUnit, awKAURes, acRes, acResMsrUnit, awFlOptimizationForDB)
{ VIP.CallMethod(this.Inter,'GetCountMtResByFC',this.NoTable,adProdCount, acProdMsrUnit, awKAURes, acRes, acResMsrUnit, awFlOptimizationForDB); return parseFloat(VIP.ArgValue(2)) }
function CheckCatRes(CatRes, cGroupRes)
{ VIP.CallMethod(this.Inter,'CheckCatRes', this.NoTable, CatRes, cGroupRes); return parseFloat(VIP.ArgValue(2)) }
function ObjAnIndex(AnRole, AnCode)
{ VIP.CallMethod(this.Inter,'ObjAnIndex', this.NoTable, AnRole, AnCode); return parseFloat(VIP.ArgValue(2)) }
function ObjAnRole(AnIndex)
{ VIP.CallMethod(this.Inter,'ObjAnRole', this.NoTable, AnIndex); return VIP.ArgValue(2) }
function ObjAnCode(AnIndex)
{ VIP.CallMethod(this.Inter,'ObjAnCode', this.NoTable, AnIndex); return parseFloat(VIP.ArgValue(2)) }
function ObjAnVal(AnIndex)
{ VIP.CallMethod(this.Inter,'ObjAnVal', this.NoTable, AnIndex); return VIP.ArgValue(2) }
function SetAnParam()
{ VIP.CallMethod();VIP.ArgValue(0)=this.Inter;VIP.ArgValue(1)='SetAnParam';VIP.ArgValue(2)=this.NoTable
iCount = SetAnParam.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=SetAnParam.arguments[i]}
VIP.CallMethodEx(); return parseFloat(VIP.ArgValue(2))
}
function GetContext()
{ VIP.CallMethod('iJSWork','GetContext'); return parseFloat(VIP.ArgValue(2))}
function ShowMessage()
{
iCount = ShowMessage.arguments.length
Value='';for(var i=0;i<iCount;i++){Value+= ' ' + ShowMessage.arguments[i]}
VIP.CallMethod('iSFService','ShowMessage', Value)
}
//*** конец описани¤ сервисных функций
//*** описание объекта аналитика:
function GetAnValue(AnCode, AnVal_nRec)
{ VIP.CallMethod('iSFAnalitics','GetAnValue', '0', AnCode, AnVal_nRec)
  return VIP.ArgValue(2) }
function PackInterval(AnCode, Value)
{ VIP.CallMethod('iSFAnalitics','PackInterval', '0', AnCode, Value)
  return VIP.ArgValue(2) }
function FindByAnalit()
{ VIP.CallMethod();VIP.ArgValue(0)='iSFAnalitics';VIP.ArgValue(1)='FindByAnalit';VIP.ArgValue(2)=this.NoTable
iCount = FindByAnalit.arguments.length
for (var i=0;i<iCount;i++){VIP.ArgValue(3+i)=FindByAnalit.arguments[i]}
VIP.CallMethodEx(); return VIP.ArgValue(2) }
function GetSpKauNrecByName(AnCode, AnValName)
{ VIP.CallMethod('iSFAnalitics','GetSpKauNrecByName', '0', AnCode, AnValName); return VIP.ArgValue(2) }
function GetSpKauNrecByCode(AnCode, AnValCode)
{ VIP.CallMethod('iSFAnalitics','GetSpKauNrecByCode', '0', AnCode, AnValCode); return VIP.ArgValue(2) }
function GetSpKauCodeByNrec(AnNrec)
{ VIP.CallMethod('iSFAnalitics','GetSpKauCodeByNrec', '0', AnNrec); return VIP.ArgValue(2) }
function GetSpKauNameByNrec(AnNrec)
{ VIP.CallMethod('iSFAnalitics','GetSpKauNameByNrec', '0', AnNrec); return VIP.ArgValue(2) }
function GetRole(Return_nRec)
{ VIP.CallMethod(this.Inter,'GetRole', this.NoTable, Return_nRec); return VIP.ArgValue(2) }
function GetValueAn(Return_nRec)
{ VIP.CallMethod(this.Inter,'GetValueAn', this.NoTable, Return_nRec)
  return VIP.ArgValue(2) }
function Anal()
{
this.Inter = 'iSFAnalitics'
this.NoTable = 0
this.Role = GetRole
this.Code = GetCode
this.Value = GetValueAn
this.FindByRole = FindName
this.FindByCode = FindCode
this.SetOwner = SetOwner
this.GetFirst = GetFirst
this.GetNext = GetNext
this.GetLast = GetLast
this.GetPrev = GetPrev
}
//*** конец описани¤ объекта аналитика
Analitic = new Anal()
//***

// —ервисные функции и объекты

// константы
cWayAccOu = "281474976711422"
rNeed = "4611953288463057457"
kauNeed = "37"
kauNeedLocal = "10114"
// объекты
var ResultOfNavigation = false;
var PositionOfNavigation = "";
function NavigateCallMethod()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdCallMethod"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.ArgValue(3) = ""
  VIP.ArgValue(4) = ""
  iCount = NavigateCallMethod.arguments.length        
  for(var i=0;i<iCount;i++)                           
  VIP.ArgValue(3+i) = NavigateCallMethod.arguments[i] 
  VIP.CallMethodEx();
  ResultOfNavigation = Boolean(VIP.ArgValue(3))
  PositionOfNavigation = VIP.ArgValue(4)
  this.reread()
  return ResultOfNavigation
}
function ObjectConstFirst()
{
  return this.NavigateCallMethod(20001)
}
function ObjectConstNext()
{
  return this.NavigateCallMethod(20002)
}
function ObjectConstLast()
{
  return this.NavigateCallMethod(20003)
}
function ObjectConstPrev()
{                         
  return this.NavigateCallMethod(20004)
}                         
function ObjectConstPos(Pos)
{                         
  return this.NavigateCallMethod(20005, Pos)
}                         
function rereadtMnPlan()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdReread"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.CallMethodEx();
  this.nRec = VIP.ArgValue(3)
  this.Name = VIP.ArgValue(4)
}
function rewritetMnPlan()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdRewrite"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.ArgValue(3) = this.nRec
  VIP.ArgValue(4) = this.Name
  VIP.CallMethodEx();
}
function toWayAccOu(toWayAccOu_Par_1)
{
  VIP.CallMethod("StdObjectConst","StdCallMethod", this.EntityNumber, 4004, toWayAccOu_Par_1)
}
function tMnPlan(EntityNumber) // constructor tMnPlan
{
  this.EntityNumber = EntityNumber
  this.TableNumber = "1"
  this.NavigateCallMethod = NavigateCallMethod
  this.getFirst = ObjectConstFirst
  this.getNext = ObjectConstNext
  this.getLast = ObjectConstLast
  this.getPrev = ObjectConstPrev
  this.setPosition = ObjectConstPos
  this.reread = rereadtMnPlan
  this.rewrite = rewritetMnPlan
  this.toWayAccOu = toWayAccOu
}
var MnPlan = new tMnPlan("1")
var MnPlanIn = new tMnPlan("2")
function rereadtSpMnPlan()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdReread"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.CallMethodEx();
  this.nRec = VIP.ArgValue(3)
  this.cObj = VIP.ArgValue(4)
  this.cTypeObj = VIP.ArgValue(5)
  this.cKatOtpEd = VIP.ArgValue(6)
}
function rewritetSpMnPlan()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdRewrite"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.ArgValue(3) = this.nRec
  VIP.ArgValue(4) = this.cObj
  VIP.ArgValue(5) = this.cTypeObj
  VIP.ArgValue(6) = this.cKatOtpEd
  VIP.CallMethodEx();
}
function toMnPlan(toMnPlan_Par_1)
{
  VIP.CallMethod("StdObjectConst","StdCallMethod", this.EntityNumber, 4001, toMnPlan_Par_1)
}
function newSpMnPlan(newSpMnPlan_Par_1)
{
  return this.NavigateCallMethod(4004, newSpMnPlan_Par_1)
}
function delSpMnPlan()
{
  VIP.CallMethod("StdObjectConst","StdCallMethod", this.EntityNumber, 4003)
}
function tSpMnPlan(EntityNumber) // constructor tSpMnPlan
{
  this.EntityNumber = EntityNumber
  this.TableNumber = "2"
  this.NavigateCallMethod = NavigateCallMethod
  this.getFirst = ObjectConstFirst
  this.getNext = ObjectConstNext
  this.getLast = ObjectConstLast
  this.getPrev = ObjectConstPrev
  this.setPosition = ObjectConstPos
  this.reread = rereadtSpMnPlan
  this.rewrite = rewritetSpMnPlan
  this.toMnPlan = toMnPlan
  this.newSpMnPlan = newSpMnPlan
  this.delSpMnPlan = delSpMnPlan
}
var SpMnPlanIn = new tSpMnPlan("3")
var SpMnPlan = new tSpMnPlan("4")
function rereadtSpMnPl()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdReread"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.CallMethodEx();
  this.nRec = VIP.ArgValue(3)
  this.cSpMnPlan = VIP.ArgValue(4)
  this.cView = VIP.ArgValue(5)
  this.cV1 = VIP.ArgValue(6)
  this.cV2 = VIP.ArgValue(7)
  this.cV3 = VIP.ArgValue(8)
  this.cV4 = VIP.ArgValue(9)
  this.KolIn = Number(VIP.ArgValue(10))
  this.Kol = Number(VIP.ArgValue(11))
}
function rewritetSpMnPl()
{
  VIP.ArgValue(0) = "StdObjectConst"
  VIP.ArgValue(1) = "StdRewrite"
  VIP.ArgValue(2) = this.EntityNumber
  VIP.ArgValue(3) = this.nRec
  VIP.ArgValue(4) = this.cSpMnPlan
  VIP.ArgValue(5) = this.cView
  VIP.ArgValue(6) = this.cV1
  VIP.ArgValue(7) = this.cV2
  VIP.ArgValue(8) = this.cV3
  VIP.ArgValue(9) = this.cV4
  VIP.ArgValue(10) = this.KolIn
  VIP.ArgValue(11) = this.Kol
  VIP.CallMethodEx();
}
function toSpMnPlan(toSpMnPlan_Par_1)
{
  VIP.CallMethod("StdObjectConst","StdCallMethod", this.EntityNumber, 4003, toSpMnPlan_Par_1)
}
function newSpMnPl(newSpMnPl_Par_1, newSpMnPl_Par_2, newSpMnPl_Par_3, newSpMnPl_Par_4, newSpMnPl_Par_5, newSpMnPl_Par_6)
{
  return this.NavigateCallMethod(4053, newSpMnPl_Par_1, newSpMnPl_Par_2, newSpMnPl_Par_3, newSpMnPl_Par_4, newSpMnPl_Par_5, newSpMnPl_Par_6)
}
function delSpMnPl()
{
  VIP.CallMethod("StdObjectConst","StdCallMethod", this.EntityNumber, 4052)
}
function tSpMnPl(EntityNumber) // constructor tSpMnPl
{
  this.EntityNumber = EntityNumber
  this.TableNumber = "3"
  this.NavigateCallMethod = NavigateCallMethod
  this.getFirst = ObjectConstFirst
  this.getNext = ObjectConstNext
  this.getLast = ObjectConstLast
  this.getPrev = ObjectConstPrev
  this.setPosition = ObjectConstPos
  this.reread = rereadtSpMnPl
  this.rewrite = rewritetSpMnPl
  this.toSpMnPlan = toSpMnPlan
  this.newSpMnPl = newSpMnPl
  this.delSpMnPl = delSpMnPl
}
var SpMnPlIn = new tSpMnPl("5")
var SpMnPl = new tSpMnPl("6")
// “екст скрипта
curObj = new KauWorkLine( rNeed, kauNeedLocal, kauNeed, "0");
curObj.ValueSelect();
function curMnPlan()
{ return "281474976712138" }
Если Вы, Эдуард, подтвердите безобидность удаления Boolean, по мы со ссылкой на заинтересованное галактическое сообщество будем просить ТП внести соответсвующее изменение в библиотеку JS. Ещё раз благодарю Вас.

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 15 июн 2016, 12:15
edward_K
Я вам зачем код привел?
там возвращается только 0 или 1 - посмотрите внимательно. То, что вам нужно в this.value.

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 15 июн 2016, 14:32
Один Из Вас
Хорошо. Осталось узнать как на JS вытащить this.Value равный VIP.ArgValue(4) :)

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 15 июн 2016, 14:55
edward_K
Ну я подозреваю, что это будет curObj.Value - только вот ValueSelect как то наверное неправильно вызываете.

Re: Конструктор объекта KauWorkLine и его метод ValueSelect(

Добавлено: 15 июн 2016, 15:15
Один Из Вас
В документации есть пример:

Код: Выделить всё

Пример:
aaa = new KauWorkLine("0", "0", "0", "0") 
aaa.RoleSelect() 
aaa.KauSelect() 
aaa.ValueSelect() 
Debug.Print(aaa.RoleName()) 
Debug.Print(aaa.KauName()) 
Debug.Print(aaa.ValueName()) 
Обратите внимание как связанно работают методы.
RoleSelect() - выбирает значение из всего каталога ролей потому, что код КАУ еще не определен
KauSelect() - выбирает коды только из тех КАУ, которые связанные с выбранной ранее ролью
ValueSelect() - выбирает значение аналитик для выбранного ранее кода КАУ
Мы действовали по аналогии, согласно полученных инструкций. Ожидали что аналогично aaa.ValueSelect() вернет nRec.
Похоже ошиблись. :( А м.б. выход на nRec есть? :)