Обработка серверных событий не заполняет поле

Автор Cerbo, 08.02.17, 16:57:43

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Cerbo

Здравствуйте. Делаю обработку серверных событий для Лоцман КБ. Её смысл в том, что при изменении значений объекта заданного типа, происходил автоматический пересчет одного из атрибутов объекта, на основании заполненных значений других атрибутов. Ниже код:
function Run(las, params, returnCode, errorMessage, flowDirectionCode)

  Dim dsRes
  Dim d, s, kf, NewMas
 
pObjType = params(0, 1)
pObjProduct = params(1, 1)
pObjVersion = params(2, 1)
pAttrName = param(3, 1)
pAttrValue = params(4, 1)
pAttrUnitId = params(5, 1) 
 
If (pObjType = "_Заготовка") Then
      Set dsRes = CreateObject("Dataprovider.Dataset")           
      dsRes = las.GetInfoAboutVersion(pObjType, pObjProduct, pObjVersion, 0, 2, returnCode, errorMessage)
     
      If (returnCode<>0) Then
          errorMessage = "не отработала функция GetInfoAboutVersion"
          flowDirectionCode = 1
      End If
     
  Do While not dsRes.Eof
       If (dsRes.FieldValue("_Name") = "Длина L") Then
d = dsRes.FieldValue("_Value")
   ElseIf (dsRes.FieldValue("_Name") = "Ширина S") Then
s = dsRes.FieldValue("_Value")
   ElseIf (dsRes.FieldValue("_Name") = "Коэффициент") Then
kf = dsRes.FieldValue("_Value")
   End If
Loop
   
NewMas = d*s*kf
 
  las.UpAttrValue pObjType, pObjProduct, pObjVersion, "Масса", NewMas, pAttrUnitId, false, returnCode, errorMessage               

      If ReturnCode<>0 Then
        errorMessage = "Ошибка присваивания атрибута Масса " & errorMessage
        flowDirectionCode = 1
      End If   
     
  End If   
end function


В чем здесь может быть ошибка? Буду очень признателен за помощь.

Manuylov

Лоцман КБ не видел, но думаю также как и в простом Лоцмане.
Значения атрибутов изменяются в рамках checkout (В работе)
т.е. при изменении атрибута объект должен быть взят "В работу".

Cerbo

Обработка подключена к событию "После присваивания значения атрибута". Т.е. в КБ у меня уже открыто окно редактирования объекта. Мне кажется, что здесь не правильно считывается набор данных в dsRes. Однако в чем проблема понять не могу.

stboris

+ Благодарностей: 1